@moxxy/plugin-provider-acp 0.0.0-stage → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/LICENSE +21 -0
  2. package/dist/acp-session.d.ts +201 -0
  3. package/dist/acp-session.d.ts.map +1 -0
  4. package/dist/acp-session.js +812 -0
  5. package/dist/acp-session.js.map +1 -0
  6. package/dist/agent-provider.d.ts +71 -0
  7. package/dist/agent-provider.d.ts.map +1 -0
  8. package/dist/agent-provider.js +203 -0
  9. package/dist/agent-provider.js.map +1 -0
  10. package/dist/agents.d.ts +23 -0
  11. package/dist/agents.d.ts.map +1 -0
  12. package/dist/agents.js +21 -0
  13. package/dist/agents.js.map +1 -0
  14. package/dist/constants.d.ts +31 -0
  15. package/dist/constants.d.ts.map +1 -0
  16. package/dist/constants.js +31 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/executable.d.ts +47 -0
  19. package/dist/executable.d.ts.map +1 -0
  20. package/dist/executable.js +106 -0
  21. package/dist/executable.js.map +1 -0
  22. package/dist/index.d.ts +10 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +69 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/login.d.ts +48 -0
  27. package/dist/login.d.ts.map +1 -0
  28. package/dist/login.js +180 -0
  29. package/dist/login.js.map +1 -0
  30. package/dist/opencode-api.d.ts +32 -0
  31. package/dist/opencode-api.d.ts.map +1 -0
  32. package/dist/opencode-api.js +86 -0
  33. package/dist/opencode-api.js.map +1 -0
  34. package/dist/opencode-helpers.d.ts +49 -0
  35. package/dist/opencode-helpers.d.ts.map +1 -0
  36. package/dist/opencode-helpers.js +175 -0
  37. package/dist/opencode-helpers.js.map +1 -0
  38. package/dist/protocol.d.ts +143 -0
  39. package/dist/protocol.d.ts.map +1 -0
  40. package/dist/protocol.js +7 -0
  41. package/dist/protocol.js.map +1 -0
  42. package/dist/rules.d.ts +47 -0
  43. package/dist/rules.d.ts.map +1 -0
  44. package/dist/rules.js +84 -0
  45. package/dist/rules.js.map +1 -0
  46. package/dist/translate.d.ts +50 -0
  47. package/dist/translate.d.ts.map +1 -0
  48. package/dist/translate.js +290 -0
  49. package/dist/translate.js.map +1 -0
  50. package/package.json +81 -3
  51. package/src/acp-session.ts +892 -0
  52. package/src/agent-cli.test.ts +76 -0
  53. package/src/agent-provider.test.ts +1137 -0
  54. package/src/agent-provider.ts +234 -0
  55. package/src/agents.ts +37 -0
  56. package/src/constants.ts +36 -0
  57. package/src/event-coverage.test.ts +65 -0
  58. package/src/executable.test.ts +89 -0
  59. package/src/executable.ts +143 -0
  60. package/src/fake-opencode.testkit.ts +755 -0
  61. package/src/fixtures/acp-session-updates.json +19 -0
  62. package/src/index.test.ts +69 -0
  63. package/src/index.ts +83 -0
  64. package/src/login.test.ts +155 -0
  65. package/src/login.ts +222 -0
  66. package/src/opencode-api.ts +105 -0
  67. package/src/opencode-helpers.test.ts +76 -0
  68. package/src/opencode-helpers.ts +195 -0
  69. package/src/protocol.ts +104 -0
  70. package/src/rules.test.ts +107 -0
  71. package/src/rules.ts +102 -0
  72. package/src/translate.test.ts +253 -0
  73. package/src/translate.ts +318 -0
  74. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-session.js","sourceRoot":"","sources":["../src/acp-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { type AgentActivity, type AgentStepEvent, type AgentTurnStart, type AgentStepRequest, type LLMProvider, type ModelDescriptor, type ProviderEvent, type ProviderRequest } from '@moxxy/sdk';
2
+ import { AgentSessionPool } from '@moxxy/agent-connection-kit';
3
+ import { AcpAgentSession, type StartAcpAgent } from './acp-session.js';
4
+ import { type AcpAgentSpec } from './agents.js';
5
+ import type { ReadAgentMcpServers, ReadAgentRules } from './rules.js';
6
+ export declare function acpModel(id: string): ModelDescriptor;
7
+ export interface AcpAgentProviderConfig {
8
+ readonly agent?: AcpAgentSpec;
9
+ /** The person's agent CLI; resolved from PATH when left out. */
10
+ readonly executable?: string;
11
+ /** Persisted provider-item model (`plugins.provider.items.opencode.model`). */
12
+ readonly model?: string;
13
+ readonly defaultModel?: string;
14
+ /** Runner workspace, supplied on activation. */
15
+ readonly cwd?: string;
16
+ /** The models the person's agent offers (`opencode models`), read when the connection is switched on. */
17
+ readonly models?: ReadonlyArray<string>;
18
+ /** How the agent is started; spawns the person's `opencode acp` by default. */
19
+ readonly startAgent?: StartAcpAgent;
20
+ /** How the person's agent runs; reads `opencode debug agent` by default. */
21
+ readonly readRules?: ReadAgentRules;
22
+ /** The person's own MCP servers; reads `opencode debug config` by default. */
23
+ readonly readMcpServers?: ReadAgentMcpServers;
24
+ /** The live agent sessions; shared across the process by default. */
25
+ readonly sessions?: AgentSessionPool<AcpAgentSession>;
26
+ }
27
+ /** The live ACP agent sessions of this process, one per Moxxy conversation. */
28
+ export declare function acpSessions(): AgentSessionPool<AcpAgentSession>;
29
+ /**
30
+ * An agent connection over the Agent Client Protocol: the agent (OpenCode)
31
+ * does each turn itself, unmodified (its instructions, config, tools, skills,
32
+ * permission rules and MCP servers). Moxxy adds only its own MCP server to
33
+ * the session, and nothing to the prompt.
34
+ */
35
+ export declare class AcpAgentProvider implements LLMProvider {
36
+ private readonly config;
37
+ readonly name: string;
38
+ readonly agentName: string;
39
+ readonly models: ModelDescriptor[];
40
+ /** No plan hand-off and no goal of its own: Moxxy's plan and goal modes steer it. */
41
+ readonly agentOwns: {
42
+ readonly plan: false;
43
+ readonly goal: false;
44
+ };
45
+ private readonly agent;
46
+ private readonly defaultModel;
47
+ private readonly start;
48
+ private readonly readRules;
49
+ private readonly readMcpServers;
50
+ constructor(config?: AcpAgentProviderConfig);
51
+ /** Any model the agent names can be picked; it gets the same description as the rest. */
52
+ prepareModel(model: string): Promise<void>;
53
+ agentStep(req: AgentStepRequest): AsyncIterable<AgentStepEvent>;
54
+ /**
55
+ * A subagent OpenCode ran in the background finished while no Moxxy turn
56
+ * runs, and OpenCode answered it by itself: Moxxy opens a turn to show that.
57
+ */
58
+ onAgentTurn(listener: (start: AgentTurnStart) => void): () => void;
59
+ /** What OpenCode's background subagents do, recorded at once. */
60
+ onAgentActivity(listener: (activity: AgentActivity) => void): () => void;
61
+ /** Stop one subagent OpenCode runs in the background in the conversation. */
62
+ stopBackgroundWork(sessionId: string, workId: string): Promise<boolean>;
63
+ private sessions;
64
+ /** One-off text (summaries, skill drafts): a session of its own in plan mode, without Moxxy's tools. */
65
+ stream(req: ProviderRequest): AsyncIterable<ProviderEvent>;
66
+ countTokens(req: Pick<ProviderRequest, 'model' | 'messages' | 'system' | 'tools'>): Promise<number>;
67
+ /** The conversation's running agent, or a new one (loading its session) when there is none that fits. */
68
+ private lease;
69
+ }
70
+ export declare function createAcpAgentClient(config?: AcpAgentProviderConfig): LLMProvider;
71
+ //# sourceMappingURL=agent-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-provider.d.ts","sourceRoot":"","sources":["../src/agent-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAkE,MAAM,6BAA6B,CAAC;AAC/H,OAAO,EAAE,eAAe,EAA2C,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAmBtE,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,CAEpD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,yGAAyG;IACzG,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;CACvD;AAID,+EAA+E;AAC/E,wBAAgB,WAAW,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAG/D;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAYtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IACnC,qFAAqF;IACrF,QAAQ,CAAC,SAAS;;;MAAyC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAExB,MAAM,GAAE,sBAA2B;IAYhE,yFAAyF;IACnF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAAC,cAAc,CAAC;IAgBtE;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;IAIlE,iEAAiE;IACjE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAIxE,6EAA6E;IACvE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7E,OAAO,CAAC,QAAQ;IAIhB,wGAAwG;IACjG,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC;IA+C3D,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAazG,yGAAyG;YAC3F,KAAK;CAoBpB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,sBAA2B,GAAG,WAAW,CAErF"}
@@ -0,0 +1,203 @@
1
+ import { estimateTextTokens, } from '@moxxy/sdk';
2
+ import { AgentSessionPool, Inbox, JsonRpcLineClient, oneOffPrompt } from '@moxxy/agent-connection-kit';
3
+ import { AcpAgentSession, CLIENT_CAPABILITIES } from './acp-session.js';
4
+ import { OPENCODE_AGENT } from './agents.js';
5
+ import { spawnOpenCodeAcp } from './executable.js';
6
+ import { readOpenCodeMcpServers, readOpenCodeRules } from './login.js';
7
+ import { ACP_PROTOCOL_VERSION } from './protocol.js';
8
+ import { toTokenUsage } from './translate.js';
9
+ const NON_TEXT_BLOCK_TOKENS = 256;
10
+ const MAX_LIVE_SESSIONS = 8;
11
+ /** The agent picks its own window per model; this only sizes Moxxy's view of the conversation. */
12
+ const CONTEXT_WINDOW = 200_000;
13
+ const agentCapabilities = {
14
+ contextWindow: CONTEXT_WINDOW,
15
+ supportsTools: true,
16
+ supportsStreaming: true,
17
+ supportsImages: true,
18
+ supportsDocuments: false,
19
+ supportsAudio: false,
20
+ supportsReasoning: true,
21
+ };
22
+ export function acpModel(id) {
23
+ return { id, ...agentCapabilities };
24
+ }
25
+ let sharedSessions;
26
+ /** The live ACP agent sessions of this process, one per Moxxy conversation. */
27
+ export function acpSessions() {
28
+ sharedSessions ??= new AgentSessionPool({ limit: MAX_LIVE_SESSIONS });
29
+ return sharedSessions;
30
+ }
31
+ /**
32
+ * An agent connection over the Agent Client Protocol: the agent (OpenCode)
33
+ * does each turn itself, unmodified (its instructions, config, tools, skills,
34
+ * permission rules and MCP servers). Moxxy adds only its own MCP server to
35
+ * the session, and nothing to the prompt.
36
+ */
37
+ export class AcpAgentProvider {
38
+ config;
39
+ name;
40
+ agentName;
41
+ models;
42
+ /** No plan hand-off and no goal of its own: Moxxy's plan and goal modes steer it. */
43
+ agentOwns = { plan: false, goal: false };
44
+ agent;
45
+ defaultModel;
46
+ start;
47
+ readRules;
48
+ readMcpServers;
49
+ constructor(config = {}) {
50
+ this.config = config;
51
+ this.agent = config.agent ?? OPENCODE_AGENT;
52
+ this.name = this.agent.providerId;
53
+ this.agentName = this.agent.label;
54
+ this.defaultModel = config.model ?? config.defaultModel ?? this.agent.defaultModel;
55
+ const ids = config.models && config.models.length > 0 ? config.models : [this.defaultModel];
56
+ this.models = [...new Set([this.defaultModel, ...ids])].map(acpModel);
57
+ this.start = config.startAgent ?? spawnOpenCodeAcp(config.executable ?? 'opencode');
58
+ this.readRules = config.readRules ?? readOpenCodeRules(config.executable ?? 'opencode');
59
+ this.readMcpServers = config.readMcpServers ?? readOpenCodeMcpServers(config.executable ?? 'opencode');
60
+ }
61
+ /** Any model the agent names can be picked; it gets the same description as the rest. */
62
+ async prepareModel(model) {
63
+ if (model && !this.models.some((descriptor) => descriptor.id === model))
64
+ this.models.push(acpModel(model));
65
+ }
66
+ async *agentStep(req) {
67
+ let lease;
68
+ try {
69
+ lease = await this.lease(req);
70
+ }
71
+ catch (err) {
72
+ if (!req.signal.aborted)
73
+ yield { type: 'error', message: messageOf(err), retryable: false };
74
+ return;
75
+ }
76
+ try {
77
+ yield* lease.session.turn(req);
78
+ }
79
+ finally {
80
+ if (lease.session.isAlive)
81
+ lease.release();
82
+ else
83
+ await lease.discard();
84
+ }
85
+ }
86
+ /**
87
+ * A subagent OpenCode ran in the background finished while no Moxxy turn
88
+ * runs, and OpenCode answered it by itself: Moxxy opens a turn to show that.
89
+ */
90
+ onAgentTurn(listener) {
91
+ return this.sessions().onAgentTurn(listener);
92
+ }
93
+ /** What OpenCode's background subagents do, recorded at once. */
94
+ onAgentActivity(listener) {
95
+ return this.sessions().onActivity(listener);
96
+ }
97
+ /** Stop one subagent OpenCode runs in the background in the conversation. */
98
+ async stopBackgroundWork(sessionId, workId) {
99
+ const live = this.sessions().running(sessionId);
100
+ return live ? live.stopWork(workId) : false;
101
+ }
102
+ sessions() {
103
+ return this.config.sessions ?? acpSessions();
104
+ }
105
+ /** One-off text (summaries, skill drafts): a session of its own in plan mode, without Moxxy's tools. */
106
+ async *stream(req) {
107
+ const model = req.model || this.defaultModel;
108
+ yield { type: 'message_start', model };
109
+ const cwd = this.config.cwd ?? process.cwd();
110
+ let usage;
111
+ let connection;
112
+ try {
113
+ connection = await this.start({ cwd });
114
+ const client = new JsonRpcLineClient({ readable: connection.readable, writable: connection.writable, jsonrpc: true });
115
+ const deltas = new Inbox();
116
+ client.onNotification((method, params) => {
117
+ const update = params?.update;
118
+ if (method === 'session/update' && update?.sessionUpdate === 'agent_message_chunk' && update.content?.type === 'text' && typeof update.content.text === 'string') {
119
+ deltas.push(update.content.text);
120
+ }
121
+ });
122
+ await client.request('initialize', { protocolVersion: ACP_PROTOCOL_VERSION, clientCapabilities: CLIENT_CAPABILITIES });
123
+ const session = await client.request('session/new', { cwd, mcpServers: [] });
124
+ const sessionId = session.sessionId;
125
+ if (!sessionId)
126
+ throw new Error(`${this.agent.label} started no session.`);
127
+ for (const option of session.configOptions ?? []) {
128
+ const wanted = option.category === 'model' ? model : option.category === 'mode' ? 'plan' : undefined;
129
+ if (wanted && option.currentValue !== wanted && (option.options ?? []).some((o) => o.value === wanted)) {
130
+ await client.request('session/set_config_option', { sessionId, configId: option.id, value: wanted });
131
+ }
132
+ }
133
+ const { system, prompt } = oneOffPrompt(req);
134
+ const text = [system, prompt].filter(Boolean).join('\n\n');
135
+ const stop = () => client.notify('session/cancel', { sessionId });
136
+ req.signal?.addEventListener('abort', stop, { once: true });
137
+ const answered = client.request('session/prompt', { sessionId, prompt: [{ type: 'text', text }] }).finally(() => deltas.push(null));
138
+ try {
139
+ for (let delta = await deltas.next(); delta !== null; delta = await deltas.next())
140
+ yield { type: 'text_delta', delta };
141
+ const result = await answered;
142
+ if (result.usage)
143
+ usage = toTokenUsage(result.usage);
144
+ }
145
+ finally {
146
+ req.signal?.removeEventListener('abort', stop);
147
+ }
148
+ }
149
+ catch (err) {
150
+ if (!req.signal?.aborted)
151
+ yield { type: 'error', message: messageOf(err), retryable: false };
152
+ return;
153
+ }
154
+ finally {
155
+ connection?.close();
156
+ }
157
+ yield { type: 'message_end', stopReason: 'end_turn', ...(usage ? { usage } : {}) };
158
+ }
159
+ async countTokens(req) {
160
+ let text = req.system ?? '';
161
+ let nonTextBlocks = 0;
162
+ for (const message of req.messages) {
163
+ for (const block of message.content) {
164
+ if (block.type === 'text')
165
+ text += block.text;
166
+ else
167
+ nonTextBlocks += 1;
168
+ }
169
+ }
170
+ for (const tool of req.tools ?? [])
171
+ text += tool.name + tool.description;
172
+ return estimateTextTokens(text) + nonTextBlocks * NON_TEXT_BLOCK_TOKENS;
173
+ }
174
+ /** The conversation's running agent, or a new one (loading its session) when there is none that fits. */
175
+ async lease(req) {
176
+ const settings = {
177
+ agent: this.agent,
178
+ start: this.start,
179
+ readRules: this.readRules,
180
+ readMcpServers: this.readMcpServers,
181
+ cwd: req.cwd,
182
+ tools: req.allTools ?? req.tools,
183
+ ...(req.skills ? { skills: req.skills } : {}),
184
+ ...(req.resumeSessionId ? { resume: req.resumeSessionId } : {}),
185
+ onAgentTurn: (name, workId) => this.sessions().agentTurn({ sessionId: req.sessionId, name, ...(workId ? { workId } : {}) }),
186
+ onActivity: (events) => this.sessions().activity({ sessionId: req.sessionId, events }),
187
+ };
188
+ const sessions = this.sessions();
189
+ const create = () => AcpAgentSession.start(settings);
190
+ const lease = await sessions.acquire(req.sessionId, { signal: req.signal, create });
191
+ if (lease.session.isAlive && lease.session.fits(settings))
192
+ return lease;
193
+ await lease.discard();
194
+ return sessions.acquire(req.sessionId, { signal: req.signal, create });
195
+ }
196
+ }
197
+ export function createAcpAgentClient(config = {}) {
198
+ return new AcpAgentProvider(config);
199
+ }
200
+ function messageOf(err) {
201
+ return err instanceof Error ? err.message : String(err);
202
+ }
203
+ //# sourceMappingURL=agent-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-provider.js","sourceRoot":"","sources":["../src/agent-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** What differs between agents that speak ACP. OpenCode is the only one so far. */
2
+ export interface AcpAgentSpec {
3
+ readonly providerId: string;
4
+ /** The agent's name in messages ("OpenCode stopped."). */
5
+ readonly label: string;
6
+ readonly defaultModel: string;
7
+ /** The name Moxxy's MCP server has in the agent's session. */
8
+ readonly mcpServerName: string;
9
+ /** How the agent names a tool of Moxxy's MCP server: those calls are recorded by Moxxy when it runs them. */
10
+ readonly moxxyToolPrefix: string;
11
+ /** Moxxy tools the agent has its own of, so they are not lent over MCP; the person's Moxxy skills come as a `load_skill` of their own. */
12
+ readonly ownTools: ReadonlySet<string>;
13
+ /** What the person runs to sign the agent in to a model provider. */
14
+ readonly loginCommand: string;
15
+ }
16
+ /**
17
+ * OpenCode (`opencode acp`). It has its own file, shell, web-fetch, todo,
18
+ * skill and sub-agent tools. It has no question tool over ACP, no plan hand-off
19
+ * and no goal, so Moxxy lends `ask_user`, `plan_complete` and the goal tools,
20
+ * and `recall`, which searches Moxxy's record of the whole conversation.
21
+ */
22
+ export declare const OPENCODE_AGENT: AcpAgentSpec;
23
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,6GAA6G;IAC7G,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,0IAA0I;IAC1I,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,YAY5B,CAAC"}
package/dist/agents.js ADDED
@@ -0,0 +1,21 @@
1
+ import { MOXXY_MCP_SERVER, OPENCODE_DEFAULT_MODEL, OPENCODE_PROVIDER_ID } from './constants.js';
2
+ /**
3
+ * OpenCode (`opencode acp`). It has its own file, shell, web-fetch, todo,
4
+ * skill and sub-agent tools. It has no question tool over ACP, no plan hand-off
5
+ * and no goal, so Moxxy lends `ask_user`, `plan_complete` and the goal tools,
6
+ * and `recall`, which searches Moxxy's record of the whole conversation.
7
+ */
8
+ export const OPENCODE_AGENT = {
9
+ providerId: OPENCODE_PROVIDER_ID,
10
+ label: 'OpenCode',
11
+ defaultModel: OPENCODE_DEFAULT_MODEL,
12
+ mcpServerName: MOXXY_MCP_SERVER,
13
+ moxxyToolPrefix: `${MOXXY_MCP_SERVER}_`,
14
+ ownTools: new Set([
15
+ 'Read', 'Edit', 'Write', 'Bash', 'Grep', 'Glob', 'Sleep', 'Wait', 'StopJob',
16
+ 'web_fetch', 'session_recall',
17
+ 'load_skill', 'reload_skills', 'synthesize_skill', 'load_tool',
18
+ ]),
19
+ loginCommand: 'opencode auth login',
20
+ };
21
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAkBhG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,UAAU,EAAE,oBAAoB;IAChC,KAAK,EAAE,UAAU;IACjB,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,gBAAgB;IAC/B,eAAe,EAAE,GAAG,gBAAgB,GAAG;IACvC,QAAQ,EAAE,IAAI,GAAG,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS;QAC3E,WAAW,EAAE,gBAAgB;QAC7B,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW;KAC/D,CAAC;IACF,YAAY,EAAE,qBAAqB;CACpC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /** Provider name in the registry / model picker / provider config. */
2
+ export declare const OPENCODE_PROVIDER_ID = "opencode";
3
+ /** Human-readable upstream service, shown in login and setup surfaces. */
4
+ export declare const OPENCODE_SERVICE_NAME = "OpenCode";
5
+ /** Optional executable override for login/status surfaces that do not carry provider config. */
6
+ export declare const OPENCODE_EXECUTABLE_ENV = "OPENCODE_EXECUTABLE";
7
+ /** What a fresh OpenCode runs; the person's own default wins when they set one. */
8
+ export declare const OPENCODE_DEFAULT_MODEL = "opencode/big-pickle";
9
+ /**
10
+ * What the picker offers before OpenCode is switched on and lists the person's own. Only the free model OpenCode
11
+ * keeps: its promotional free models come and go (space-bunny-free was one), and the daily compat check fails
12
+ * when one listed here is no longer offered.
13
+ */
14
+ export declare const OPENCODE_FREE_MODELS: ReadonlyArray<string>;
15
+ /** The name Moxxy's MCP server has in the agent's session; OpenCode calls its tools `moxxy_<tool>`. */
16
+ export declare const MOXXY_MCP_SERVER = "moxxy";
17
+ export declare const OPENCODE_ACP_ARGS: readonly ["acp"];
18
+ /** Where `opencode acp` serves its HTTP API: Moxxy reads OpenCode's background subagents there, which ACP does not report. */
19
+ export declare const OPENCODE_API_HOST = "127.0.0.1";
20
+ export declare const OPENCODE_API_USERNAME = "opencode";
21
+ export declare const OPENCODE_SERVER_USERNAME_ENV = "OPENCODE_SERVER_USERNAME";
22
+ export declare const OPENCODE_SERVER_PASSWORD_ENV = "OPENCODE_SERVER_PASSWORD";
23
+ /** OpenCode 1.19's switch for subagents that work on after its turn (`task` with `background: true`). */
24
+ export declare const OPENCODE_BACKGROUND_SUBAGENTS_ENV = "OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS";
25
+ export declare const OPENCODE_MODELS_ARGS: readonly ["models"];
26
+ export declare const OPENCODE_DEBUG_AGENT_ARGS: readonly ["debug", "agent"];
27
+ export declare const OPENCODE_DEBUG_CONFIG_ARGS: readonly ["debug", "config"];
28
+ export declare const OPENCODE_AUTH_LIST_ARGS: readonly ["auth", "list"];
29
+ export declare const OPENCODE_AUTH_LOGIN_ARGS: readonly ["auth", "login"];
30
+ export declare const OPENCODE_AUTH_LOGOUT_ARGS: readonly ["auth", "logout"];
31
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD,gGAAgG;AAChG,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAA4B,CAAC;AAEpF,uGAAuG;AACvG,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,eAAO,MAAM,iBAAiB,kBAAmB,CAAC;AAClD,8HAA8H;AAC9H,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,yGAAyG;AACzG,eAAO,MAAM,iCAAiC,+CAA+C,CAAC;AAC9F,eAAO,MAAM,oBAAoB,qBAAsB,CAAC;AACxD,eAAO,MAAM,yBAAyB,6BAA8B,CAAC;AACrE,eAAO,MAAM,0BAA0B,8BAA+B,CAAC;AACvE,eAAO,MAAM,uBAAuB,2BAA4B,CAAC;AACjE,eAAO,MAAM,wBAAwB,4BAA6B,CAAC;AACnE,eAAO,MAAM,yBAAyB,6BAA8B,CAAC"}
@@ -0,0 +1,31 @@
1
+ /** Provider name in the registry / model picker / provider config. */
2
+ export const OPENCODE_PROVIDER_ID = 'opencode';
3
+ /** Human-readable upstream service, shown in login and setup surfaces. */
4
+ export const OPENCODE_SERVICE_NAME = 'OpenCode';
5
+ /** Optional executable override for login/status surfaces that do not carry provider config. */
6
+ export const OPENCODE_EXECUTABLE_ENV = 'OPENCODE_EXECUTABLE';
7
+ /** What a fresh OpenCode runs; the person's own default wins when they set one. */
8
+ export const OPENCODE_DEFAULT_MODEL = 'opencode/big-pickle';
9
+ /**
10
+ * What the picker offers before OpenCode is switched on and lists the person's own. Only the free model OpenCode
11
+ * keeps: its promotional free models come and go (space-bunny-free was one), and the daily compat check fails
12
+ * when one listed here is no longer offered.
13
+ */
14
+ export const OPENCODE_FREE_MODELS = [OPENCODE_DEFAULT_MODEL];
15
+ /** The name Moxxy's MCP server has in the agent's session; OpenCode calls its tools `moxxy_<tool>`. */
16
+ export const MOXXY_MCP_SERVER = 'moxxy';
17
+ export const OPENCODE_ACP_ARGS = ['acp'];
18
+ /** Where `opencode acp` serves its HTTP API: Moxxy reads OpenCode's background subagents there, which ACP does not report. */
19
+ export const OPENCODE_API_HOST = '127.0.0.1';
20
+ export const OPENCODE_API_USERNAME = 'opencode';
21
+ export const OPENCODE_SERVER_USERNAME_ENV = 'OPENCODE_SERVER_USERNAME';
22
+ export const OPENCODE_SERVER_PASSWORD_ENV = 'OPENCODE_SERVER_PASSWORD';
23
+ /** OpenCode 1.19's switch for subagents that work on after its turn (`task` with `background: true`). */
24
+ export const OPENCODE_BACKGROUND_SUBAGENTS_ENV = 'OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS';
25
+ export const OPENCODE_MODELS_ARGS = ['models'];
26
+ export const OPENCODE_DEBUG_AGENT_ARGS = ['debug', 'agent'];
27
+ export const OPENCODE_DEBUG_CONFIG_ARGS = ['debug', 'config'];
28
+ export const OPENCODE_AUTH_LIST_ARGS = ['auth', 'list'];
29
+ export const OPENCODE_AUTH_LOGIN_ARGS = ['auth', 'login'];
30
+ export const OPENCODE_AUTH_LOGOUT_ARGS = ['auth', 'logout'];
31
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAEhD,gGAAgG;AAChG,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA0B,CAAC,sBAAsB,CAAC,CAAC;AAEpF,uGAAuG;AACvG,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,CAAU,CAAC;AAClD,8HAA8H;AAC9H,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AACvE,MAAM,CAAC,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AACvE,yGAAyG;AACzG,MAAM,CAAC,MAAM,iCAAiC,GAAG,4CAA4C,CAAC;AAC9F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAQ,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type ExecutableTarget } from '@moxxy/sdk/server';
2
+ import { type AgentCliTargetOptions } from '@moxxy/agent-connection-kit';
3
+ import type { StartAcpAgent } from './acp-session.js';
4
+ import type { OpenCodeApi } from './opencode-api.js';
5
+ export interface OpenCodeTargetOptions extends AgentCliTargetOptions {
6
+ readonly find?: (command: string) => string | null;
7
+ }
8
+ /**
9
+ * How to start the person's OpenCode without a shell. A Windows npm install
10
+ * puts an `opencode.cmd` shim on PATH, which only a shell can run; the
11
+ * `opencode.exe` it points at is started directly instead. The other
12
+ * installers (scoop, choco, the install script) put `opencode.exe` on PATH.
13
+ */
14
+ export declare function opencodeTarget(command: string, opts?: OpenCodeTargetOptions): ExecutableTarget;
15
+ export interface OpenCodeAcpLaunch {
16
+ readonly args: ReadonlyArray<string>;
17
+ readonly env: Readonly<Record<string, string>>;
18
+ /** OpenCode's HTTP API, when this OpenCode serves it beside ACP. */
19
+ readonly api?: OpenCodeApi;
20
+ }
21
+ /**
22
+ * Whether `opencode acp` serves OpenCode's HTTP API beside ACP. OpenCode 1
23
+ * does, on `--port` / `--hostname`; OpenCode 2 runs a private server with no
24
+ * port and refuses those flags. An unreadable version is started as OpenCode
25
+ * 2 is, since `acp` alone starts on both.
26
+ */
27
+ export declare function opencodeServesApiBesideAcp(version: string | null): boolean;
28
+ /**
29
+ * How `opencode acp` is started. Given a `server`, OpenCode serves its HTTP
30
+ * API on that port behind that password, so Moxxy can read the subagents
31
+ * OpenCode runs in the background, which ACP does not report, and nothing
32
+ * else on the computer can use the API. Background subagents are switched on
33
+ * unless the person switched them off.
34
+ */
35
+ export declare function opencodeAcpLaunch(opts: {
36
+ readonly server?: {
37
+ readonly port: number;
38
+ readonly password: string;
39
+ };
40
+ /** The environment OpenCode inherits (`process.env`). */
41
+ readonly inherited: Readonly<Record<string, string | undefined>>;
42
+ /** Settings of this start (the restart that asks before changes). */
43
+ readonly env?: Readonly<Record<string, string>>;
44
+ }): OpenCodeAcpLaunch;
45
+ /** Starts `opencode acp` in the conversation folder, speaking ACP on stdio. */
46
+ export declare function spawnOpenCodeAcp(command: string): StartAcpAgent;
47
+ //# sourceMappingURL=executable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executable.d.ts","sourceRoot":"","sources":["../src/executable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAOL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAUrC,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACpD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,qBAA0B,GAAG,gBAAgB,CAIlG;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,oEAAoE;IACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IACjE,qEAAqE;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD,GAAG,iBAAiB,CAmBpB;AAcD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAsC/D"}