@a5c-ai/agent-mux-adapters 0.3.0 → 0.4.1

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 (164) hide show
  1. package/README.md +3 -1
  2. package/dist/agent-mux-remote-adapter.d.ts.map +1 -1
  3. package/dist/agent-mux-remote-adapter.js +4 -0
  4. package/dist/agent-mux-remote-adapter.js.map +1 -1
  5. package/dist/amp-adapter.d.ts +32 -0
  6. package/dist/amp-adapter.d.ts.map +1 -0
  7. package/dist/amp-adapter.js +412 -0
  8. package/dist/amp-adapter.js.map +1 -0
  9. package/dist/babysitter-adapter.d.ts +29 -0
  10. package/dist/babysitter-adapter.d.ts.map +1 -0
  11. package/dist/babysitter-adapter.js +338 -0
  12. package/dist/babysitter-adapter.js.map +1 -0
  13. package/dist/base-adapter-helpers.d.ts +8 -0
  14. package/dist/base-adapter-helpers.d.ts.map +1 -0
  15. package/dist/base-adapter-helpers.js +68 -0
  16. package/dist/base-adapter-helpers.js.map +1 -0
  17. package/dist/base-adapter.d.ts +21 -9
  18. package/dist/base-adapter.d.ts.map +1 -1
  19. package/dist/base-adapter.js +136 -67
  20. package/dist/base-adapter.js.map +1 -1
  21. package/dist/claude-adapter.d.ts +14 -3
  22. package/dist/claude-adapter.d.ts.map +1 -1
  23. package/dist/claude-adapter.js +224 -24
  24. package/dist/claude-adapter.js.map +1 -1
  25. package/dist/claude-agent-sdk-adapter.d.ts +40 -0
  26. package/dist/claude-agent-sdk-adapter.d.ts.map +1 -0
  27. package/dist/claude-agent-sdk-adapter.js +839 -0
  28. package/dist/claude-agent-sdk-adapter.js.map +1 -0
  29. package/dist/claude-code/runtime-hooks/ephemeral-config.d.ts +12 -0
  30. package/dist/claude-code/runtime-hooks/ephemeral-config.d.ts.map +1 -0
  31. package/dist/claude-code/runtime-hooks/ephemeral-config.js +143 -0
  32. package/dist/claude-code/runtime-hooks/ephemeral-config.js.map +1 -0
  33. package/dist/claude-code/runtime-hooks/hook-socket-server.d.ts +10 -0
  34. package/dist/claude-code/runtime-hooks/hook-socket-server.d.ts.map +1 -0
  35. package/dist/claude-code/runtime-hooks/hook-socket-server.js +79 -0
  36. package/dist/claude-code/runtime-hooks/hook-socket-server.js.map +1 -0
  37. package/dist/claude-code/runtime-hooks/lifecycle.d.ts +3 -0
  38. package/dist/claude-code/runtime-hooks/lifecycle.d.ts.map +1 -0
  39. package/dist/claude-code/runtime-hooks/lifecycle.js +24 -0
  40. package/dist/claude-code/runtime-hooks/lifecycle.js.map +1 -0
  41. package/dist/claude-remote-control-adapter.d.ts +43 -0
  42. package/dist/claude-remote-control-adapter.d.ts.map +1 -0
  43. package/dist/claude-remote-control-adapter.js +505 -0
  44. package/dist/claude-remote-control-adapter.js.map +1 -0
  45. package/dist/codex-adapter.d.ts.map +1 -1
  46. package/dist/codex-adapter.js +128 -17
  47. package/dist/codex-adapter.js.map +1 -1
  48. package/dist/codex-sdk-adapter.d.ts +32 -0
  49. package/dist/codex-sdk-adapter.d.ts.map +1 -0
  50. package/dist/codex-sdk-adapter.js +388 -0
  51. package/dist/codex-sdk-adapter.js.map +1 -0
  52. package/dist/codex-sdk-mocks.d.ts +51 -0
  53. package/dist/codex-sdk-mocks.d.ts.map +1 -0
  54. package/dist/codex-sdk-mocks.js +97 -0
  55. package/dist/codex-sdk-mocks.js.map +1 -0
  56. package/dist/codex-websocket-adapter.d.ts +34 -0
  57. package/dist/codex-websocket-adapter.d.ts.map +1 -0
  58. package/dist/codex-websocket-adapter.js +398 -0
  59. package/dist/codex-websocket-adapter.js.map +1 -0
  60. package/dist/codex-websocket-connection.d.ts +78 -0
  61. package/dist/codex-websocket-connection.d.ts.map +1 -0
  62. package/dist/codex-websocket-connection.js +733 -0
  63. package/dist/codex-websocket-connection.js.map +1 -0
  64. package/dist/copilot-adapter.d.ts.map +1 -1
  65. package/dist/copilot-adapter.js +11 -3
  66. package/dist/copilot-adapter.js.map +1 -1
  67. package/dist/cursor-adapter.d.ts +3 -1
  68. package/dist/cursor-adapter.d.ts.map +1 -1
  69. package/dist/cursor-adapter.js +10 -3
  70. package/dist/cursor-adapter.js.map +1 -1
  71. package/dist/droid-adapter.d.ts +32 -0
  72. package/dist/droid-adapter.d.ts.map +1 -0
  73. package/dist/droid-adapter.js +378 -0
  74. package/dist/droid-adapter.js.map +1 -0
  75. package/dist/gemini-adapter.d.ts +3 -1
  76. package/dist/gemini-adapter.d.ts.map +1 -1
  77. package/dist/gemini-adapter.js +10 -3
  78. package/dist/gemini-adapter.js.map +1 -1
  79. package/dist/hermes-adapter.d.ts.map +1 -1
  80. package/dist/hermes-adapter.js +10 -2
  81. package/dist/hermes-adapter.js.map +1 -1
  82. package/dist/index.d.ts +13 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +13 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/mcp-plugins.d.ts +5 -3
  87. package/dist/mcp-plugins.d.ts.map +1 -1
  88. package/dist/mcp-plugins.js +58 -24
  89. package/dist/mcp-plugins.js.map +1 -1
  90. package/dist/omp-adapter.d.ts.map +1 -1
  91. package/dist/omp-adapter.js +10 -3
  92. package/dist/omp-adapter.js.map +1 -1
  93. package/dist/openclaw-adapter.d.ts +3 -1
  94. package/dist/openclaw-adapter.d.ts.map +1 -1
  95. package/dist/openclaw-adapter.js +11 -4
  96. package/dist/openclaw-adapter.js.map +1 -1
  97. package/dist/opencode-adapter.d.ts +5 -3
  98. package/dist/opencode-adapter.d.ts.map +1 -1
  99. package/dist/opencode-adapter.js +179 -63
  100. package/dist/opencode-adapter.js.map +1 -1
  101. package/dist/opencode-http-adapter.d.ts +43 -0
  102. package/dist/opencode-http-adapter.d.ts.map +1 -0
  103. package/dist/opencode-http-adapter.js +374 -0
  104. package/dist/opencode-http-adapter.js.map +1 -0
  105. package/dist/opencode-http-connection.d.ts +33 -0
  106. package/dist/opencode-http-connection.d.ts.map +1 -0
  107. package/dist/opencode-http-connection.js +198 -0
  108. package/dist/opencode-http-connection.js.map +1 -0
  109. package/dist/pi-adapter.d.ts.map +1 -1
  110. package/dist/pi-adapter.js +9 -2
  111. package/dist/pi-adapter.js.map +1 -1
  112. package/dist/pi-sdk-adapter.d.ts +46 -0
  113. package/dist/pi-sdk-adapter.d.ts.map +1 -0
  114. package/dist/pi-sdk-adapter.js +553 -0
  115. package/dist/pi-sdk-adapter.js.map +1 -0
  116. package/dist/programmatic-adapter-base.d.ts +88 -0
  117. package/dist/programmatic-adapter-base.d.ts.map +1 -0
  118. package/dist/programmatic-adapter-base.js +169 -0
  119. package/dist/programmatic-adapter-base.js.map +1 -0
  120. package/dist/provider-translation.d.ts +10 -0
  121. package/dist/provider-translation.d.ts.map +1 -0
  122. package/dist/provider-translation.js +2 -0
  123. package/dist/provider-translation.js.map +1 -0
  124. package/dist/qwen-adapter.d.ts +3 -1
  125. package/dist/qwen-adapter.d.ts.map +1 -1
  126. package/dist/qwen-adapter.js +10 -3
  127. package/dist/qwen-adapter.js.map +1 -1
  128. package/dist/remote-adapter-base.d.ts +85 -0
  129. package/dist/remote-adapter-base.d.ts.map +1 -0
  130. package/dist/remote-adapter-base.js +102 -0
  131. package/dist/remote-adapter-base.js.map +1 -0
  132. package/dist/session-fs.d.ts +15 -5
  133. package/dist/session-fs.d.ts.map +1 -1
  134. package/dist/session-fs.js +249 -0
  135. package/dist/session-fs.js.map +1 -1
  136. package/dist/shared/runtime-hooks-virtual.d.ts +3 -0
  137. package/dist/shared/runtime-hooks-virtual.d.ts.map +1 -0
  138. package/dist/shared/runtime-hooks-virtual.js +13 -0
  139. package/dist/shared/runtime-hooks-virtual.js.map +1 -0
  140. package/dist/translate-for-harness.d.ts +6 -0
  141. package/dist/translate-for-harness.d.ts.map +1 -0
  142. package/dist/translate-for-harness.js +36 -0
  143. package/dist/translate-for-harness.js.map +1 -0
  144. package/dist/translations/claude-translation.d.ts +4 -0
  145. package/dist/translations/claude-translation.d.ts.map +1 -0
  146. package/dist/translations/claude-translation.js +50 -0
  147. package/dist/translations/claude-translation.js.map +1 -0
  148. package/dist/translations/codex-translation.d.ts +4 -0
  149. package/dist/translations/codex-translation.d.ts.map +1 -0
  150. package/dist/translations/codex-translation.js +32 -0
  151. package/dist/translations/codex-translation.js.map +1 -0
  152. package/dist/translations/gemini-translation.d.ts +4 -0
  153. package/dist/translations/gemini-translation.d.ts.map +1 -0
  154. package/dist/translations/gemini-translation.js +20 -0
  155. package/dist/translations/gemini-translation.js.map +1 -0
  156. package/dist/translations/generic-openai-translation.d.ts +4 -0
  157. package/dist/translations/generic-openai-translation.d.ts.map +1 -0
  158. package/dist/translations/generic-openai-translation.js +19 -0
  159. package/dist/translations/generic-openai-translation.js.map +1 -0
  160. package/dist/translations/opencode-translation.d.ts +4 -0
  161. package/dist/translations/opencode-translation.d.ts.map +1 -0
  162. package/dist/translations/opencode-translation.js +51 -0
  163. package/dist/translations/opencode-translation.js.map +1 -0
  164. package/package.json +4 -2
@@ -4,6 +4,7 @@
4
4
  import * as os from 'node:os';
5
5
  import * as path from 'node:path';
6
6
  import { BaseAgentAdapter } from './base-adapter.js';
7
+ import { createVirtualRuntimeHookCapabilities } from './shared/runtime-hooks-virtual.js';
7
8
  import { mcpListPlugins, mcpInstallPlugin, mcpUninstallPlugin } from './mcp-plugins.js';
8
9
  import { readAuthConfigIdentity } from './auth-config.js';
9
10
  import { listJsonlFiles, parseJsonlSessionFile, readJsonFile, writeJsonFileAtomic, } from './session-fs.js';
@@ -12,36 +13,40 @@ export class OpenCodeAdapter extends BaseAgentAdapter {
12
13
  displayName = 'OpenCode';
13
14
  cliCommand = 'opencode';
14
15
  minVersion = '0.1.0';
15
- hostEnvSignals = ['OPENCODE_SESSION', 'OPENCODE_RUN_ID'];
16
+ hostEnvSignals = ['OPENCODE_SESSION_ID', 'OPENCODE_CONFIG'];
16
17
  capabilities = {
17
18
  agent: 'opencode',
18
19
  canResume: true,
19
- canFork: false,
20
+ canFork: true,
20
21
  supportsMultiTurn: true,
21
- sessionPersistence: 'sqlite',
22
+ sessionPersistence: 'file',
22
23
  supportsTextStreaming: true,
23
24
  supportsToolCallStreaming: true,
24
- supportsThinkingStreaming: true,
25
+ supportsThinkingStreaming: false,
25
26
  supportsNativeTools: true,
26
27
  supportsMCP: true,
27
28
  supportsParallelToolCalls: true,
28
29
  requiresToolApproval: true,
29
30
  approvalModes: ['yolo', 'prompt'],
30
- supportsThinking: true,
31
- thinkingEffortLevels: ['low', 'medium', 'high'],
31
+ runtimeHooks: createVirtualRuntimeHookCapabilities(),
32
+ supportsThinking: false,
33
+ thinkingEffortLevels: [],
32
34
  supportsThinkingBudgetTokens: false,
33
- supportsJsonMode: false,
34
- supportsStructuredOutput: false,
35
- supportsSkills: false,
36
- supportsAgentsMd: false,
37
- skillsFormat: null,
38
- supportsSubagentDispatch: false,
39
- supportsParallelExecution: false,
40
- supportsInteractiveMode: true,
41
- supportsStdinInjection: true,
42
- supportsImageInput: false,
35
+ supportsJsonMode: true,
36
+ supportsStructuredOutput: true,
37
+ structuredSessionTransport: 'restart-per-turn',
38
+ sessionControlPlane: 'self-managed',
39
+ supportsSkills: true,
40
+ supportsAgentsMd: true,
41
+ skillsFormat: 'file',
42
+ supportsSubagentDispatch: true,
43
+ supportsParallelExecution: true,
44
+ maxParallelTasks: 5,
45
+ supportsInteractiveMode: false,
46
+ supportsStdinInjection: false,
47
+ supportsImageInput: true,
43
48
  supportsImageOutput: false,
44
- supportsFileAttachments: false,
49
+ supportsFileAttachments: true,
45
50
  supportsPlugins: true,
46
51
  pluginFormats: ['mcp-server'],
47
52
  pluginRegistries: [{ name: 'mcp', url: 'https://modelcontextprotocol.io', searchable: false }],
@@ -49,42 +54,73 @@ export class OpenCodeAdapter extends BaseAgentAdapter {
49
54
  requiresGitRepo: false,
50
55
  requiresPty: false,
51
56
  authMethods: [
52
- { type: 'api_key', name: 'Anthropic API Key', description: 'ANTHROPIC_API_KEY environment variable' },
53
- { type: 'api_key', name: 'OpenAI API Key', description: 'OPENAI_API_KEY environment variable' },
57
+ { type: 'api_key', name: 'API Key', description: 'Provider API keys via opencode auth' },
58
+ { type: 'oauth', name: 'OAuth', description: 'Provider OAuth via opencode auth' },
54
59
  ],
55
- authFiles: ['.config/opencode/opencode.json'],
60
+ authFiles: ['.config/opencode/config.json', '.opencode/config.json'],
56
61
  installMethods: [
57
- { platform: 'all', type: 'npm', command: 'npm install -g opencode-ai' },
58
- { platform: 'darwin', type: 'brew', command: 'brew install opencode-ai' },
62
+ { platform: 'all', type: 'npm', command: 'npm install -g @anomalyco/opencode' },
63
+ { platform: 'darwin', type: 'brew', command: 'brew install --cask opencode' },
64
+ { platform: 'all', type: 'curl', command: 'curl -fsSL https://opencode.ai/install | bash' },
59
65
  ],
60
66
  };
61
67
  models = [
62
68
  {
63
69
  agent: 'opencode',
64
- modelId: 'claude-sonnet-4-20250514',
65
- displayName: 'Claude Sonnet 4 (via OpenCode)',
70
+ modelId: 'claude-3-5-sonnet-20241022',
71
+ modelAlias: 'claude-sonnet',
72
+ displayName: 'Claude 3.5 Sonnet',
66
73
  deprecated: false,
67
74
  contextWindow: 200000,
68
- maxOutputTokens: 16384,
69
- supportsThinking: true,
70
- thinkingEffortLevels: ['low', 'medium', 'high'],
75
+ maxOutputTokens: 8192,
76
+ inputPricePerMillion: 3,
77
+ outputPricePerMillion: 15,
78
+ supportsThinking: false,
79
+ thinkingEffortLevels: [],
71
80
  supportsToolCalling: true,
72
81
  supportsParallelToolCalls: true,
73
82
  supportsToolCallStreaming: true,
74
- supportsJsonMode: false,
75
- supportsStructuredOutput: false,
83
+ supportsJsonMode: true,
84
+ supportsStructuredOutput: true,
76
85
  supportsTextStreaming: true,
77
- supportsThinkingStreaming: true,
78
- supportsImageInput: false,
86
+ supportsThinkingStreaming: false,
87
+ supportsImageInput: true,
79
88
  supportsImageOutput: false,
80
- supportsFileInput: false,
89
+ supportsFileInput: true,
81
90
  cliArgKey: '--model',
82
- cliArgValue: 'claude-sonnet-4-20250514',
83
- lastUpdated: '2025-05-14',
91
+ cliArgValue: 'claude-3-5-sonnet-20241022',
92
+ lastUpdated: '2024-10-22',
93
+ source: 'bundled',
94
+ },
95
+ {
96
+ agent: 'opencode',
97
+ modelId: 'gpt-4o',
98
+ modelAlias: 'gpt-4o',
99
+ displayName: 'GPT-4o',
100
+ deprecated: false,
101
+ contextWindow: 128000,
102
+ maxOutputTokens: 4096,
103
+ inputPricePerMillion: 2.5,
104
+ outputPricePerMillion: 10,
105
+ supportsThinking: false,
106
+ thinkingEffortLevels: [],
107
+ supportsToolCalling: true,
108
+ supportsParallelToolCalls: true,
109
+ supportsToolCallStreaming: true,
110
+ supportsJsonMode: true,
111
+ supportsStructuredOutput: true,
112
+ supportsTextStreaming: true,
113
+ supportsThinkingStreaming: false,
114
+ supportsImageInput: true,
115
+ supportsImageOutput: false,
116
+ supportsFileInput: true,
117
+ cliArgKey: '--model',
118
+ cliArgValue: 'gpt-4o',
119
+ lastUpdated: '2024-05-13',
84
120
  source: 'bundled',
85
121
  },
86
122
  ];
87
- defaultModelId = 'claude-sonnet-4-20250514';
123
+ defaultModelId = 'claude-3-5-sonnet-20241022';
88
124
  configSchema = {
89
125
  agent: 'opencode',
90
126
  version: 1,
@@ -95,17 +131,49 @@ export class OpenCodeAdapter extends BaseAgentAdapter {
95
131
  };
96
132
  buildSpawnArgs(options) {
97
133
  const args = [];
134
+ // OpenCode uses 'run' subcommand for non-interactive execution
135
+ args.push('run');
136
+ // Model selection
98
137
  if (options.model) {
99
138
  args.push('--model', options.model);
100
139
  }
101
- const prompt = Array.isArray(options.prompt) ? options.prompt.join('\n') : options.prompt;
102
- args.push('--message', prompt);
140
+ // Session management
141
+ const sessionId = this.resolveSessionId(options);
142
+ if (sessionId) {
143
+ if (options.forkSessionId) {
144
+ // Fork from existing session
145
+ args.push('--fork', options.forkSessionId);
146
+ }
147
+ else {
148
+ // Resume or create session
149
+ args.push('--session', sessionId);
150
+ if (options.sessionId && !options.forkSessionId) {
151
+ args.push('--continue');
152
+ }
153
+ }
154
+ }
155
+ // Max turns
156
+ if (options.maxTurns != null) {
157
+ args.push('--max-turns', String(options.maxTurns));
158
+ }
159
+ // System prompt
160
+ if (options.systemPrompt) {
161
+ args.push('--system', options.systemPrompt);
162
+ }
163
+ // JSON output for parsing
164
+ args.push('--format', 'json');
165
+ // Main prompt
166
+ const { prompt, stdin } = this.buildPromptTransport(options);
167
+ if (stdin === undefined) {
168
+ args.push('--prompt', prompt);
169
+ }
103
170
  return {
104
171
  command: this.cliCommand,
105
172
  args,
106
173
  env: this.buildEnvFromOptions(options),
107
174
  cwd: options.cwd ?? process.cwd(),
108
175
  usePty: false,
176
+ stdin,
109
177
  timeout: options.timeout,
110
178
  inactivityTimeout: options.inactivityTimeout,
111
179
  };
@@ -118,52 +186,96 @@ export class OpenCodeAdapter extends BaseAgentAdapter {
118
186
  const ts = Date.now();
119
187
  const base = { runId: context.runId, agent: this.agent, timestamp: ts };
120
188
  const type = obj['type'];
121
- if (type === 'text' || type === 'content') {
122
- const content = (obj['content'] ?? obj['text'] ?? '');
189
+ const event = obj['event'];
190
+ // Handle OpenCode's event-based format
191
+ if (event === 'message' || type === 'message') {
192
+ const content = (obj['content'] ?? obj['data'] ?? '');
123
193
  if (content) {
124
194
  return { ...base, type: 'text_delta', delta: content, accumulated: content };
125
195
  }
126
196
  }
127
- if (type === 'tool_call') {
197
+ if (event === 'tool_start' || type === 'tool_start' || event === 'tool_call' || type === 'tool_call') {
128
198
  return {
129
199
  ...base,
130
200
  type: 'tool_call_start',
131
- toolCallId: (obj['id'] ?? ''),
132
- toolName: (obj['name'] ?? ''),
133
- inputAccumulated: JSON.stringify(obj['input'] ?? {}),
201
+ toolCallId: (obj['id'] ?? obj['tool_id'] ?? ''),
202
+ toolName: (obj['name'] ?? obj['tool_name'] ?? ''),
203
+ inputAccumulated: JSON.stringify(obj['input'] ?? obj['arguments'] ?? {}),
134
204
  };
135
205
  }
136
- if (type === 'error') {
206
+ if (event === 'tool_result' || type === 'tool_result') {
207
+ return {
208
+ ...base,
209
+ type: 'tool_result',
210
+ toolCallId: (obj['id'] ?? obj['tool_id'] ?? ''),
211
+ toolName: (obj['name'] ?? obj['tool_name'] ?? ''),
212
+ output: obj['result'] ?? obj['output'] ?? '',
213
+ durationMs: (obj['duration'] ?? 0),
214
+ };
215
+ }
216
+ if (event === 'session_start' || type === 'session_start') {
217
+ return {
218
+ ...base,
219
+ type: 'session_start',
220
+ sessionId: (obj['session_id'] ?? ''),
221
+ resumed: (obj['resumed'] ?? false),
222
+ };
223
+ }
224
+ if (event === 'session_end' || type === 'session_end') {
225
+ const events = [];
226
+ // Final message if present
227
+ const finalMessage = (obj['final_message'] ?? obj['message'] ?? '');
228
+ if (finalMessage) {
229
+ events.push({ ...base, type: 'message_stop', text: finalMessage });
230
+ }
231
+ // Cost information
232
+ const usage = obj['usage'];
233
+ if (usage) {
234
+ const cost = this.assembleCostRecord(usage);
235
+ if (cost) {
236
+ events.push({ ...base, type: 'cost', cost });
237
+ }
238
+ }
239
+ return events.length > 0 ? events : null;
240
+ }
241
+ if (event === 'error' || type === 'error') {
137
242
  return {
138
243
  ...base,
139
244
  type: 'error',
140
245
  code: 'INTERNAL',
141
- message: (obj['message'] ?? 'Unknown error'),
142
- recoverable: false,
246
+ message: (obj['message'] ?? obj['error'] ?? 'Unknown error'),
247
+ recoverable: (obj['recoverable'] ?? false),
143
248
  };
144
249
  }
250
+ // Legacy format fallback
251
+ if (type === 'text' || type === 'content') {
252
+ const content = (obj['content'] ?? obj['text'] ?? '');
253
+ if (content) {
254
+ return { ...base, type: 'text_delta', delta: content, accumulated: content };
255
+ }
256
+ }
145
257
  return null;
146
258
  }
147
259
  async detectAuth() {
148
- if (process.env['ANTHROPIC_API_KEY']) {
149
- return {
150
- status: 'authenticated',
151
- method: 'api_key',
152
- identity: `anthropic:...${process.env['ANTHROPIC_API_KEY'].slice(-4)}`,
153
- };
154
- }
155
- if (process.env['OPENAI_API_KEY']) {
260
+ // Check for provider API keys in environment
261
+ const anthropicKey = process.env['ANTHROPIC_API_KEY'];
262
+ const openaiKey = process.env['OPENAI_API_KEY'];
263
+ const googleKey = process.env['GOOGLE_API_KEY'];
264
+ if (anthropicKey || openaiKey || googleKey) {
265
+ const provider = anthropicKey ? 'anthropic' : openaiKey ? 'openai' : 'google';
266
+ const key = anthropicKey || openaiKey || googleKey;
156
267
  return {
157
268
  status: 'authenticated',
158
269
  method: 'api_key',
159
- identity: `openai:...${process.env['OPENAI_API_KEY'].slice(-4)}`,
270
+ identity: `${provider}:...${key.slice(-4)}`,
160
271
  };
161
272
  }
273
+ // Check OpenCode configuration files
162
274
  const home = os.homedir();
163
275
  const found = await readAuthConfigIdentity([
276
+ path.join(home, '.config', 'opencode', 'config.json'),
277
+ path.join(home, '.opencode', 'config.json'),
164
278
  path.join(home, '.config', 'opencode', 'auth.json'),
165
- path.join(home, '.opencode', 'auth.json'),
166
- path.join(home, '.opencode', 'credentials.json'),
167
279
  ]);
168
280
  if (found) {
169
281
  return { status: 'authenticated', method: found.method, identity: found.identity };
@@ -175,20 +287,24 @@ export class OpenCodeAdapter extends BaseAgentAdapter {
175
287
  agent: 'opencode',
176
288
  providerName: 'OpenCode',
177
289
  steps: [
178
- { step: 1, description: 'Set an API key for your preferred provider' },
179
- { step: 2, description: 'For Anthropic: export ANTHROPIC_API_KEY=sk-ant-...', command: 'export ANTHROPIC_API_KEY=sk-ant-...' },
180
- { step: 3, description: 'For OpenAI: export OPENAI_API_KEY=sk-...', command: 'export OPENAI_API_KEY=sk-...' },
290
+ { step: 1, description: 'Configure authentication using OpenCode CLI', command: 'opencode auth' },
291
+ { step: 2, description: 'Alternatively, set provider API keys directly' },
292
+ { step: 3, description: 'For Anthropic: export ANTHROPIC_API_KEY=sk-ant-...', command: 'export ANTHROPIC_API_KEY=sk-ant-...' },
293
+ { step: 4, description: 'For OpenAI: export OPENAI_API_KEY=sk-...', command: 'export OPENAI_API_KEY=sk-...' },
294
+ { step: 5, description: 'For Google: export GOOGLE_API_KEY=...', command: 'export GOOGLE_API_KEY=...' },
181
295
  ],
182
296
  envVars: [
183
297
  { name: 'ANTHROPIC_API_KEY', description: 'Anthropic API key', required: false },
184
298
  { name: 'OPENAI_API_KEY', description: 'OpenAI API key', required: false },
299
+ { name: 'GOOGLE_API_KEY', description: 'Google API key', required: false },
185
300
  ],
186
- documentationUrls: ['https://github.com/opencode-ai/opencode'],
301
+ documentationUrls: ['https://github.com/anomalyco/opencode'],
302
+ loginCommand: 'opencode auth',
187
303
  verifyCommand: 'opencode --version',
188
304
  };
189
305
  }
190
306
  sessionDir(_cwd) {
191
- return path.join(os.homedir(), '.local', 'share', 'opencode');
307
+ return path.join(os.homedir(), '.config', 'opencode', 'sessions');
192
308
  }
193
309
  async parseSessionFile(filePath) {
194
310
  const parsed = await parseJsonlSessionFile(filePath, 'opencode');
@@ -224,7 +340,7 @@ export class OpenCodeAdapter extends BaseAgentAdapter {
224
340
  async installPlugin(pluginId, options) {
225
341
  return mcpInstallPlugin(this.pluginsPath(), pluginId, options);
226
342
  }
227
- async uninstallPlugin(pluginId) {
343
+ async uninstallPlugin(pluginId, options) {
228
344
  return mcpUninstallPlugin(this.pluginsPath(), pluginId);
229
345
  }
230
346
  }
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-adapter.js","sourceRoot":"","sources":["../src/opencode-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-adapter.js","sourceRoot":"","sources":["../src/opencode-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * OpenCodeHttpAdapter — HTTP server-based OpenCode integration.
3
+ *
4
+ * Uses 'opencode serve' + REST API for full OpenCode capabilities including
5
+ * real-time streaming via Server-Sent Events (SSE).
6
+ */
7
+ import type { AgentCapabilities, ModelCapabilities, AgentConfigSchema, AuthState, AuthSetupGuidance, Session, RunOptions, RemoteConnection, HttpConnection, ServerOptions, ServerInfo, ServerHealth, AgentConfig, InstalledPlugin, PluginInstallOptions } from '@a5c-ai/agent-mux-core';
8
+ import { BaseRemoteAdapter } from './remote-adapter-base.js';
9
+ /**
10
+ * HTTP-based OpenCode adapter using server mode for full capabilities.
11
+ */
12
+ export declare class OpenCodeHttpAdapter extends BaseRemoteAdapter {
13
+ readonly agent: "opencode-http";
14
+ readonly displayName = "OpenCode (HTTP)";
15
+ readonly connectionType: "http";
16
+ readonly minVersion = "0.1.0";
17
+ readonly hostEnvSignals: readonly ["OPENCODE_SESSION_ID", "OPENCODE_CONFIG"];
18
+ readonly capabilities: AgentCapabilities;
19
+ readonly models: ModelCapabilities[];
20
+ readonly defaultModelId = "claude-3-5-sonnet-20241022";
21
+ readonly configSchema: AgentConfigSchema;
22
+ connect(options: RunOptions): Promise<HttpConnection>;
23
+ disconnect(connection: RemoteConnection): Promise<void>;
24
+ startServer(options?: ServerOptions): Promise<ServerInfo>;
25
+ stopServer(serverInfo: ServerInfo): Promise<void>;
26
+ healthCheck(serverInfo: ServerInfo): Promise<ServerHealth>;
27
+ detectAuth(): Promise<AuthState>;
28
+ getAuthGuidance(): AuthSetupGuidance;
29
+ sessionDir(_cwd?: string): string;
30
+ parseSessionFile(filePath: string): Promise<Session>;
31
+ listSessionFiles(_cwd?: string): Promise<string[]>;
32
+ readConfig(_cwd?: string): Promise<AgentConfig>;
33
+ writeConfig(config: Partial<AgentConfig>, _cwd?: string): Promise<void>;
34
+ private pluginsPath;
35
+ listPlugins(): Promise<InstalledPlugin[]>;
36
+ installPlugin(pluginId: string, options?: PluginInstallOptions): Promise<InstalledPlugin>;
37
+ uninstallPlugin(pluginId: string, options?: {
38
+ global?: boolean;
39
+ }): Promise<void>;
40
+ private ensureServer;
41
+ private waitForServerReady;
42
+ }
43
+ //# sourceMappingURL=opencode-http-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-http-adapter.d.ts","sourceRoot":"","sources":["../src/opencode-http-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,UAAU,EACV,YAAY,EAEZ,WAAW,EAEX,eAAe,EACf,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAO7D;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;IACxD,QAAQ,CAAC,KAAK,EAAG,eAAe,CAAU;IAC1C,QAAQ,CAAC,WAAW,qBAAqB;IACzC,QAAQ,CAAC,cAAc,EAAG,MAAM,CAAU;IAC1C,QAAQ,CAAC,UAAU,WAAW;IAC9B,QAAQ,CAAC,cAAc,sDAAuD;IAE9E,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAiDtC;IAEF,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAuDlC;IAEF,QAAQ,CAAC,cAAc,gCAAgC;IAEvD,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAOtC;IAEI,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBrD,UAAU,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAyCzD,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjD,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IA6B1D,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IA6BtC,eAAe,IAAI,iBAAiB;IAsBpC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAI3B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIlD,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAc/C,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7E,OAAO,CAAC,WAAW;IAIb,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAIzC,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAIrB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAMxE,YAAY;YAaZ,kBAAkB;CAuBjC"}