Skip to content

convert the auth plugin prompts to use form shape, consider adding a condition based logic flow #34950

Closed

Description

@rekram1-node

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?

Activity

  1. self-assigned this
    on Jul 2, 2026
  2. added
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on Jul 2, 2026
  3. neriousy commented on Oct 21, 2026

    @neriousy
    Member

    Done in #40997: integration auth methods now declare form: Form.Fields and receive a Form.Answer. The function-based condition was removed in favor of serializable Form.When conditions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

2.0coreAnything pertaining to core functionality of the application (opencode server stuff)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions