Skip to content

feat(server): OpenCode + ACP/Cursor providers + config overlay - #12

Merged
johnnyhuy merged 2 commits into
mainfrom
feat/more-providers
Aug 5, 2026
Merged

feat(server): OpenCode + ACP/Cursor providers + config overlay#12
johnnyhuy merged 2 commits into
mainfrom
feat/more-providers

Conversation

@johnnyhuy

Copy link
Copy Markdown
Contributor

Summary

  • OpenCode provider (@opencode-ai/sdk): lazily spawns one shared opencode serve, creates sessions per workspace cwd, routes SSE events to per-session sinks, normalises tool calls/text/reasoning/status. listModels() is runtime-discovered from provider.list.
  • Generic ACP provider (@agentclientprotocol/sdk): spawns any ACP-speaking agent binary over stdio NDJSON, streams session/updates into AgentEvents, auto-approves permissions once while emitting an observability event, toolSnapshotTransformer hook per docs/providers.md. Cursor ships as the first consumer (cursor-agent acp).
  • Config overlay: ~/.supaplane/config.json agents.providers map — extends: "claude"|"opencode"|"cursor" for aliases, extends: "acp" + command for any user-defined agent. Overlay providers are advertised in hello_ack and provider.list.

Consequences

  • New deps in @echohello/server: @opencode-ai/sdk, @agentclientprotocol/sdk.
  • Provider binaries spawn lazily on first session, so missing opencode/cursor-agent binaries don't break daemon boot; provider.diagnostic surfaces availability.

Testing

  • 44/44 server tests pass — new: opencode mapper unit tests, config-overlay tests, provider-factory tests, daemon E2E proving overlay providers are registered + advertised
  • bun run typecheck clean, bun run lint 0 errors

johnnyhuy and others added 2 commits August 6, 2026 09:00
OpenCode provider on @opencode-ai/sdk (shared opencode serve, SSE event
routing per session, tool-call normaliser) and a generic ACP provider on
@agentclientprotocol/sdk (stdio NDJSON, permission auto-approve-once with
observability event, toolSnapshotTransformer hook) with cursor-agent as
the first ACP consumer.

Co-authored-by: opencode-agent <hello@sst.dev>
Loads agents.providers overrides at boot (extends claude/opencode/cursor
for aliases, extends acp + command for generic ACP agents) and merges
them over the built-ins via a provider factory. Overlay providers are
advertised in hello_ack and provider.list.

Co-authored-by: opencode-agent <hello@sst.dev>
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​opencode-ai/​sdk@​1.18.141001007597100
Added@​agentclientprotocol/​sdk@​1.3.01001009498100

View full report

@johnnyhuy
johnnyhuy merged commit ebc92fd into main Aug 5, 2026
7 checks passed
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(server): opencode + acp/cursor providers

OpenCode provider on @opencode-ai/sdk (shared opencode serve, SSE event
routing per session, tool-call normaliser) and a generic ACP provider on
@agentclientprotocol/sdk (stdio NDJSON, permission auto-approve-once with
observability event, toolSnapshotTransformer hook) with cursor-agent as
the first ACP consumer.

Co-authored-by: opencode-agent <hello@sst.dev>

* feat(server): ~/.supaplane/config.json provider overlay

Loads agents.providers overrides at boot (extends claude/opencode/cursor
for aliases, extends acp + command for generic ACP agents) and merges
them over the built-ins via a provider factory. Overlay providers are
advertised in hello_ack and provider.list.

Co-authored-by: opencode-agent <hello@sst.dev>

---------

Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(server): opencode + acp/cursor providers

OpenCode provider on @opencode-ai/sdk (shared opencode serve, SSE event
routing per session, tool-call normaliser) and a generic ACP provider on
@agentclientprotocol/sdk (stdio NDJSON, permission auto-approve-once with
observability event, toolSnapshotTransformer hook) with cursor-agent as
the first ACP consumer.

Co-authored-by: opencode-agent <hello@sst.dev>

* feat(server): ~/.supaplane/config.json provider overlay

Loads agents.providers overrides at boot (extends claude/opencode/cursor
for aliases, extends acp + command for generic ACP agents) and merges
them over the built-ins via a provider factory. Overlay providers are
advertised in hello_ack and provider.list.

Co-authored-by: opencode-agent <hello@sst.dev>

---------

Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(server): opencode + acp/cursor providers

OpenCode provider on @opencode-ai/sdk (shared opencode serve, SSE event
routing per session, tool-call normaliser) and a generic ACP provider on
@agentclientprotocol/sdk (stdio NDJSON, permission auto-approve-once with
observability event, toolSnapshotTransformer hook) with cursor-agent as
the first ACP consumer.

Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>

* feat(server): ~/.supaplane/config.json provider overlay

Loads agents.providers overrides at boot (extends claude/opencode/cursor
for aliases, extends acp + command for generic ACP agents) and merges
them over the built-ins via a provider factory. Overlay providers are
advertised in hello_ack and provider.list.

Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>

---------

Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
* feat(server): opencode + acp/cursor providers

OpenCode provider on @opencode-ai/sdk (shared opencode serve, SSE event
routing per session, tool-call normaliser) and a generic ACP provider on
@agentclientprotocol/sdk (stdio NDJSON, permission auto-approve-once with
observability event, toolSnapshotTransformer hook) with cursor-agent as
the first ACP consumer.

Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>

* feat(server): ~/.supaplane/config.json provider overlay

Loads agents.providers overrides at boot (extends claude/opencode/cursor
for aliases, extends acp + command for generic ACP agents) and merges
them over the built-ins via a provider factory. Overlay providers are
advertised in hello_ack and provider.list.

Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>

---------

Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
This was referenced Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant