Skip to content

feat(acp): implement Providers API (providers/list, providers/set, providers/disable) #4455

@bug-ops

Description

@bug-ops

Description

ACP schema 0.13.2 introduced a Providers API allowing IDE clients to enumerate and switch LLM providers at runtime via ACP messages. Zeph needs to expose its [[llm.providers]] through this API.

Spec

See specs/013-acp/spec.md Providers API section, gap tracker item I4.

Design constraint (impedance mismatch — must be resolved before implementation)

Zeph resolves providers at startup from the age vault ([[llm.providers]] in config.toml). ACP Providers API is runtime-dynamic. The design must answer:

  • Is providers/set a session-scoped override or a persistent config mutation?
  • How does vault-resolved key material interact with a runtime provider switch?
  • Does providers/disable mean "remove from pool" or "unavailable to this session"?

This design question must be answered in specs/013-acp/spec.md before implementation begins.

Acceptance criteria

  • Design note in spec resolved (session-scoped vs persistent)
  • providers/list returns current [[llm.providers]] roster with active/disabled state
  • providers/set switches active provider for the current session
  • providers/disable marks a provider unavailable for the current session
  • TUI reflects active provider change in status line
  • Integration test: IDE client sets provider → agent uses it for next LLM call

Suggested next step

Run /rust-agents:team-develop spec-driven to resolve the design note, then /rust-agents:team-develop new-feature.

Metadata

Metadata

Assignees

Labels

P2High value, medium complexityenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions