Closed
Labels
2.0coreAnything pertaining to core functionality of the application (opencode server stuff)Anything pertaining to core functionality of the application (opencode server stuff)
Description
Auth/plugin prompt definitions still use the integration/provider prompt-specific shapes (text/select prompts plus inputs as Record<string, string>). Convert these contracts to use the shared Form schema shape instead.
Context:
- Current schema-level conditions are when: { key, op: eq | neq, value }, which maps directly to Form.When.
- The plugin authoring API still exposes deprecated condition?: (inputs: Record<string, string>) => boolean. That cannot be represented directly in serialized Form schema.
- In-repo prompt implementations appear to use when rather than function conditions, but compatibility/authoring ergonomics need a decision.
Scope:
- Replace auth/integration prompt-specific schema with Form field/form shape where appropriate.
- Update generated client surfaces and app/TUI auth prompt renderers.
- Decide whether deprecated function condition should be removed, evaluated before form exposure, or represented via a richer serializable condition model.
Question to resolve:
- Is simple Form.When sufficient, or do we need a condition-based logic flow beyond one-field eq/neq?
Metadata
Metadata
Assignees
Labels
2.0coreAnything pertaining to core functionality of the application (opencode server stuff)Anything pertaining to core functionality of the application (opencode server stuff)
Activity
neriousy commentedon Oct 21, 2026
Done in #40997: integration auth methods now declare
form: Form.Fieldsand receive aForm.Answer. The function-basedconditionwas removed in favor of serializableForm.Whenconditions.