@the-open-engine/zeroshot 6.4.0 → 6.5.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 (144) hide show
  1. package/cli/commands/providers.js +11 -5
  2. package/cli/index.js +79 -16
  3. package/cli/lib/first-run.js +14 -3
  4. package/docker/zeroshot-cluster/Dockerfile +11 -1
  5. package/lib/agent-cli-provider/acp-stdio-runner.d.ts +4 -0
  6. package/lib/agent-cli-provider/acp-stdio-runner.d.ts.map +1 -0
  7. package/lib/agent-cli-provider/acp-stdio-runner.js +259 -0
  8. package/lib/agent-cli-provider/acp-stdio-runner.js.map +1 -0
  9. package/lib/agent-cli-provider/adapters/acp.d.ts +23 -0
  10. package/lib/agent-cli-provider/adapters/acp.d.ts.map +1 -0
  11. package/lib/agent-cli-provider/adapters/acp.js +373 -0
  12. package/lib/agent-cli-provider/adapters/acp.js.map +1 -0
  13. package/lib/agent-cli-provider/adapters/claude.d.ts.map +1 -1
  14. package/lib/agent-cli-provider/adapters/claude.js +2 -29
  15. package/lib/agent-cli-provider/adapters/claude.js.map +1 -1
  16. package/lib/agent-cli-provider/adapters/copilot-parser.d.ts +3 -0
  17. package/lib/agent-cli-provider/adapters/copilot-parser.d.ts.map +1 -0
  18. package/lib/agent-cli-provider/adapters/copilot-parser.js +154 -0
  19. package/lib/agent-cli-provider/adapters/copilot-parser.js.map +1 -0
  20. package/lib/agent-cli-provider/adapters/copilot.d.ts +3 -0
  21. package/lib/agent-cli-provider/adapters/copilot.d.ts.map +1 -0
  22. package/lib/agent-cli-provider/adapters/copilot.js +176 -0
  23. package/lib/agent-cli-provider/adapters/copilot.js.map +1 -0
  24. package/lib/agent-cli-provider/adapters/gateway.d.ts +6 -0
  25. package/lib/agent-cli-provider/adapters/gateway.d.ts.map +1 -0
  26. package/lib/agent-cli-provider/adapters/gateway.js +161 -0
  27. package/lib/agent-cli-provider/adapters/gateway.js.map +1 -0
  28. package/lib/agent-cli-provider/adapters/gemini.d.ts.map +1 -1
  29. package/lib/agent-cli-provider/adapters/gemini.js +9 -2
  30. package/lib/agent-cli-provider/adapters/gemini.js.map +1 -1
  31. package/lib/agent-cli-provider/adapters/index.d.ts.map +1 -1
  32. package/lib/agent-cli-provider/adapters/index.js +6 -34
  33. package/lib/agent-cli-provider/adapters/index.js.map +1 -1
  34. package/lib/agent-cli-provider/adapters/opencode.d.ts.map +1 -1
  35. package/lib/agent-cli-provider/adapters/opencode.js +5 -1
  36. package/lib/agent-cli-provider/adapters/opencode.js.map +1 -1
  37. package/lib/agent-cli-provider/adapters/pi.d.ts +3 -0
  38. package/lib/agent-cli-provider/adapters/pi.d.ts.map +1 -0
  39. package/lib/agent-cli-provider/adapters/pi.js +331 -0
  40. package/lib/agent-cli-provider/adapters/pi.js.map +1 -0
  41. package/lib/agent-cli-provider/claude-command.d.ts +6 -0
  42. package/lib/agent-cli-provider/claude-command.d.ts.map +1 -0
  43. package/lib/agent-cli-provider/claude-command.js +43 -0
  44. package/lib/agent-cli-provider/claude-command.js.map +1 -0
  45. package/lib/agent-cli-provider/contract-actions.d.ts.map +1 -1
  46. package/lib/agent-cli-provider/contract-actions.js +13 -17
  47. package/lib/agent-cli-provider/contract-actions.js.map +1 -1
  48. package/lib/agent-cli-provider/contract-invoke.d.ts.map +1 -1
  49. package/lib/agent-cli-provider/contract-invoke.js +10 -3
  50. package/lib/agent-cli-provider/contract-invoke.js.map +1 -1
  51. package/lib/agent-cli-provider/contract-options.d.ts.map +1 -1
  52. package/lib/agent-cli-provider/contract-options.js +57 -2
  53. package/lib/agent-cli-provider/contract-options.js.map +1 -1
  54. package/lib/agent-cli-provider/contract-support.d.ts +1 -0
  55. package/lib/agent-cli-provider/contract-support.d.ts.map +1 -1
  56. package/lib/agent-cli-provider/contract-support.js +25 -3
  57. package/lib/agent-cli-provider/contract-support.js.map +1 -1
  58. package/lib/agent-cli-provider/errors.d.ts +1 -0
  59. package/lib/agent-cli-provider/errors.d.ts.map +1 -1
  60. package/lib/agent-cli-provider/errors.js +14 -5
  61. package/lib/agent-cli-provider/errors.js.map +1 -1
  62. package/lib/agent-cli-provider/gateway-client.d.ts +32 -0
  63. package/lib/agent-cli-provider/gateway-client.d.ts.map +1 -0
  64. package/lib/agent-cli-provider/gateway-client.js +135 -0
  65. package/lib/agent-cli-provider/gateway-client.js.map +1 -0
  66. package/lib/agent-cli-provider/gateway-runner.d.ts +9 -0
  67. package/lib/agent-cli-provider/gateway-runner.d.ts.map +1 -0
  68. package/lib/agent-cli-provider/gateway-runner.js +294 -0
  69. package/lib/agent-cli-provider/gateway-runner.js.map +1 -0
  70. package/lib/agent-cli-provider/gateway-tools.d.ts +14 -0
  71. package/lib/agent-cli-provider/gateway-tools.d.ts.map +1 -0
  72. package/lib/agent-cli-provider/gateway-tools.js +495 -0
  73. package/lib/agent-cli-provider/gateway-tools.js.map +1 -0
  74. package/lib/agent-cli-provider/index.d.ts +3 -2
  75. package/lib/agent-cli-provider/index.d.ts.map +1 -1
  76. package/lib/agent-cli-provider/index.js +14 -1
  77. package/lib/agent-cli-provider/index.js.map +1 -1
  78. package/lib/agent-cli-provider/invoke-evidence.d.ts +2 -2
  79. package/lib/agent-cli-provider/invoke-evidence.d.ts.map +1 -1
  80. package/lib/agent-cli-provider/invoke-evidence.js +17 -3
  81. package/lib/agent-cli-provider/invoke-evidence.js.map +1 -1
  82. package/lib/agent-cli-provider/provider-registry.d.ts +437 -0
  83. package/lib/agent-cli-provider/provider-registry.d.ts.map +1 -0
  84. package/lib/agent-cli-provider/provider-registry.js +411 -0
  85. package/lib/agent-cli-provider/provider-registry.js.map +1 -0
  86. package/lib/agent-cli-provider/single-agent-runtime.d.ts +7 -0
  87. package/lib/agent-cli-provider/single-agent-runtime.d.ts.map +1 -1
  88. package/lib/agent-cli-provider/single-agent-runtime.js +139 -19
  89. package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -1
  90. package/lib/agent-cli-provider/types.d.ts +106 -4
  91. package/lib/agent-cli-provider/types.d.ts.map +1 -1
  92. package/lib/agent-cli-provider/types.js.map +1 -1
  93. package/lib/docker-config.js +24 -13
  94. package/lib/provider-defaults.js +15 -4
  95. package/lib/provider-detection.js +2 -0
  96. package/lib/provider-names.js +32 -12
  97. package/lib/repo-settings.js +15 -1
  98. package/lib/settings/claude-auth.js +3 -6
  99. package/lib/settings.js +17 -2
  100. package/lib/setup-apply.js +300 -0
  101. package/lib/setup-journal.js +109 -0
  102. package/lib/setup-plan.js +406 -0
  103. package/lib/setup-undo.js +88 -0
  104. package/lib/start-cluster.js +12 -1
  105. package/lib/stream-json-parser.js +7 -5
  106. package/package.json +29 -1
  107. package/scripts/live-provider-smoke.js +221 -0
  108. package/src/agent/agent-lifecycle.js +5 -4
  109. package/src/agent/agent-quality-gate-schema.js +2 -2
  110. package/src/agent/agent-task-executor.js +41 -2
  111. package/src/agent-cli-provider/acp-stdio-runner.ts +314 -0
  112. package/src/agent-cli-provider/adapters/acp.ts +493 -0
  113. package/src/agent-cli-provider/adapters/claude.ts +2 -32
  114. package/src/agent-cli-provider/adapters/copilot-parser.ts +166 -0
  115. package/src/agent-cli-provider/adapters/copilot.ts +231 -0
  116. package/src/agent-cli-provider/adapters/gateway.ts +186 -0
  117. package/src/agent-cli-provider/adapters/gemini.ts +9 -2
  118. package/src/agent-cli-provider/adapters/index.ts +5 -36
  119. package/src/agent-cli-provider/adapters/opencode.ts +4 -1
  120. package/src/agent-cli-provider/adapters/pi.ts +410 -0
  121. package/src/agent-cli-provider/claude-command.ts +47 -0
  122. package/src/agent-cli-provider/contract-actions.ts +14 -17
  123. package/src/agent-cli-provider/contract-invoke.ts +12 -3
  124. package/src/agent-cli-provider/contract-options.ts +72 -3
  125. package/src/agent-cli-provider/contract-support.ts +30 -3
  126. package/src/agent-cli-provider/errors.ts +14 -4
  127. package/src/agent-cli-provider/gateway-client.ts +170 -0
  128. package/src/agent-cli-provider/gateway-runner.ts +353 -0
  129. package/src/agent-cli-provider/gateway-tools.ts +616 -0
  130. package/src/agent-cli-provider/index.ts +28 -0
  131. package/src/agent-cli-provider/invoke-evidence.ts +24 -3
  132. package/src/agent-cli-provider/provider-registry.ts +515 -0
  133. package/src/agent-cli-provider/single-agent-runtime.ts +192 -18
  134. package/src/agent-cli-provider/types.ts +145 -4
  135. package/src/config-validator.js +33 -15
  136. package/src/isolation-manager.js +124 -19
  137. package/src/orchestrator.js +23 -10
  138. package/src/preflight.js +83 -30
  139. package/src/providers/capabilities.js +15 -42
  140. package/src/providers/index.js +52 -72
  141. package/src/worktree-claude-config.js +17 -0
  142. package/task-lib/commands/run.js +1 -0
  143. package/task-lib/provider-helper-runtime.js +11 -0
  144. package/task-lib/runner.js +7 -0
@@ -0,0 +1,411 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.providerAliasMap = exports.knownProviderNames = exports.providerAliases = exports.providerIds = exports.providerRegistry = void 0;
4
+ exports.normalizeProviderName = normalizeProviderName;
5
+ exports.listProviderRegistryEntries = listProviderRegistryEntries;
6
+ exports.findProviderRegistryEntry = findProviderRegistryEntry;
7
+ exports.getProviderRegistryEntry = getProviderRegistryEntry;
8
+ exports.resolveProviderCommand = resolveProviderCommand;
9
+ exports.supportsProviderCapability = supportsProviderCapability;
10
+ const acp_1 = require("./adapters/acp");
11
+ const claude_1 = require("./adapters/claude");
12
+ const codex_1 = require("./adapters/codex");
13
+ const copilot_1 = require("./adapters/copilot");
14
+ const gateway_1 = require("./adapters/gateway");
15
+ const gemini_1 = require("./adapters/gemini");
16
+ const opencode_1 = require("./adapters/opencode");
17
+ const pi_1 = require("./adapters/pi");
18
+ const claude_command_1 = require("./claude-command");
19
+ const STANDARD_CAPABILITIES = {
20
+ dockerIsolation: true,
21
+ worktreeIsolation: true,
22
+ mcpServers: true,
23
+ streamJson: true,
24
+ thinkingMode: true,
25
+ };
26
+ const CLAUDE_DOCKER_ENV_PASSTHROUGH = [
27
+ 'ANTHROPIC_API_KEY',
28
+ 'AWS_BEARER_TOKEN_BEDROCK',
29
+ 'AWS_REGION',
30
+ 'CLAUDE_CODE_USE_BEDROCK',
31
+ ];
32
+ const SPAWN_INVOKE = Object.freeze({ lane: 'spawn' });
33
+ const ACP_STDIO_INVOKE = Object.freeze({
34
+ lane: 'acp-stdio',
35
+ transport: 'stdio',
36
+ });
37
+ const kiroAdapter = (0, acp_1.createAcpAdapter)({
38
+ provider: 'kiro',
39
+ displayName: 'Kiro',
40
+ binary: 'kiro-cli',
41
+ commandArgs: ['acp'],
42
+ credentialEnvKeys: ['KIRO_API_KEY'],
43
+ supportsPromptImages: true,
44
+ supportsLoadSession: false,
45
+ supportsSessionCancel: true,
46
+ supportsSessionSetModel: false,
47
+ supportsSessionSetMode: false,
48
+ retryableErrorPatterns: [
49
+ /\brate(?:[ _])?limit\b/i,
50
+ /\btemporar(?:y|ily)\b/i,
51
+ /\btimeout\b/i,
52
+ /\bunavailable\b/i,
53
+ ],
54
+ permanentErrorPatterns: [
55
+ /\bauth(?:entication)?\b/i,
56
+ /\bapi[_ -]?key\b/i,
57
+ /\bforbidden\b/i,
58
+ /\bunauthorized\b/i,
59
+ /\bcancelled\b/i,
60
+ /\bmalformed\b/i,
61
+ /\bunsupported\b/i,
62
+ ],
63
+ });
64
+ exports.providerRegistry = [
65
+ {
66
+ id: 'claude',
67
+ aliases: ['anthropic'],
68
+ displayName: 'Claude',
69
+ binary: 'claude',
70
+ command: { kind: 'configured-claude' },
71
+ invoke: SPAWN_INVOKE,
72
+ installInstructions: 'npm install -g @anthropic-ai/claude-code\nOr (macOS): brew install claude',
73
+ authInstructions: 'claude login',
74
+ credentialPaths: ['~/.claude'],
75
+ credentialEnvKeys: claude_1.claudeAdapter.credentialEnvKeys,
76
+ settingsFields: ['anthropicApiKey', 'bedrockApiKey', 'bedrockRegion'],
77
+ capabilities: {
78
+ ...STANDARD_CAPABILITIES,
79
+ jsonSchema: true,
80
+ reasoningEffort: false,
81
+ },
82
+ docs: {
83
+ label: 'Claude',
84
+ setupHeading: 'Claude Setup',
85
+ },
86
+ docker: {
87
+ mount: {
88
+ host: '~/.claude',
89
+ container: '$HOME/.claude',
90
+ readonly: true,
91
+ },
92
+ envPassthrough: CLAUDE_DOCKER_ENV_PASSTHROUGH,
93
+ },
94
+ defaultLevels: {
95
+ min: claude_1.claudeAdapter.defaultMinLevel,
96
+ default: claude_1.claudeAdapter.defaultLevel,
97
+ max: claude_1.claudeAdapter.defaultMaxLevel,
98
+ },
99
+ adapter: claude_1.claudeAdapter,
100
+ },
101
+ {
102
+ id: 'codex',
103
+ aliases: ['openai'],
104
+ displayName: 'Codex',
105
+ binary: 'codex',
106
+ command: { kind: 'fixed', command: 'codex', args: ['exec'] },
107
+ invoke: SPAWN_INVOKE,
108
+ installInstructions: 'npm install -g @openai/codex',
109
+ authInstructions: 'codex login',
110
+ credentialPaths: ['~/.config/codex', '~/.codex'],
111
+ credentialEnvKeys: codex_1.codexAdapter.credentialEnvKeys,
112
+ settingsFields: [],
113
+ capabilities: {
114
+ ...STANDARD_CAPABILITIES,
115
+ jsonSchema: true,
116
+ reasoningEffort: true,
117
+ },
118
+ docs: {
119
+ label: 'Codex',
120
+ setupHeading: 'Codex Setup',
121
+ },
122
+ docker: {
123
+ mount: {
124
+ host: '~/.config/codex',
125
+ container: '$HOME/.config/codex',
126
+ readonly: true,
127
+ },
128
+ install: 'npm install -g @openai/codex',
129
+ envPassthrough: [],
130
+ },
131
+ defaultLevels: {
132
+ min: codex_1.codexAdapter.defaultMinLevel,
133
+ default: codex_1.codexAdapter.defaultLevel,
134
+ max: codex_1.codexAdapter.defaultMaxLevel,
135
+ },
136
+ adapter: codex_1.codexAdapter,
137
+ },
138
+ {
139
+ id: 'gateway',
140
+ aliases: [],
141
+ displayName: 'Gateway',
142
+ binary: 'node',
143
+ command: { kind: 'fixed', command: 'node', args: [] },
144
+ invoke: SPAWN_INVOKE,
145
+ installInstructions: 'Bundled with Zeroshot; no external provider CLI install is required.',
146
+ authInstructions: 'Configure providerSettings.gateway.baseUrl, apiKey, model, and toolPolicy in Zeroshot settings.',
147
+ credentialPaths: [],
148
+ credentialEnvKeys: gateway_1.gatewayAdapter.credentialEnvKeys,
149
+ settingsFields: ['baseUrl', 'apiKey', 'headers', 'model', 'toolPolicy'],
150
+ settingsDefaults: gateway_1.gatewaySettingsDefaults,
151
+ settingsValidator: gateway_1.validateGatewaySettings,
152
+ capabilities: {
153
+ ...STANDARD_CAPABILITIES,
154
+ mcpServers: false,
155
+ jsonSchema: false,
156
+ reasoningEffort: false,
157
+ },
158
+ docs: {
159
+ label: 'Gateway',
160
+ setupHeading: 'Gateway Setup',
161
+ },
162
+ docker: {
163
+ mount: {
164
+ host: '~/.zeroshot',
165
+ container: '$HOME/.zeroshot',
166
+ readonly: true,
167
+ },
168
+ envPassthrough: [],
169
+ },
170
+ defaultLevels: {
171
+ min: gateway_1.gatewayAdapter.defaultMinLevel,
172
+ default: gateway_1.gatewayAdapter.defaultLevel,
173
+ max: gateway_1.gatewayAdapter.defaultMaxLevel,
174
+ },
175
+ adapter: gateway_1.gatewayAdapter,
176
+ },
177
+ {
178
+ id: 'gemini',
179
+ aliases: ['google'],
180
+ displayName: 'Gemini',
181
+ binary: 'gemini',
182
+ command: { kind: 'fixed', command: 'gemini', args: [] },
183
+ invoke: SPAWN_INVOKE,
184
+ installInstructions: 'npm install -g @google/gemini-cli',
185
+ authInstructions: 'gemini auth login',
186
+ credentialPaths: ['~/.config/gcloud', '~/.config/gemini', '~/.gemini'],
187
+ credentialEnvKeys: gemini_1.geminiAdapter.credentialEnvKeys,
188
+ settingsFields: [],
189
+ capabilities: {
190
+ ...STANDARD_CAPABILITIES,
191
+ jsonSchema: 'experimental',
192
+ reasoningEffort: false,
193
+ },
194
+ docs: {
195
+ label: 'Gemini',
196
+ setupHeading: 'Gemini Setup',
197
+ },
198
+ docker: {
199
+ mount: {
200
+ host: '~/.config/gemini',
201
+ container: '$HOME/.config/gemini',
202
+ readonly: true,
203
+ },
204
+ install: 'npm install -g @google/gemini-cli',
205
+ envPassthrough: [],
206
+ },
207
+ defaultLevels: {
208
+ min: gemini_1.geminiAdapter.defaultMinLevel,
209
+ default: gemini_1.geminiAdapter.defaultLevel,
210
+ max: gemini_1.geminiAdapter.defaultMaxLevel,
211
+ },
212
+ adapter: gemini_1.geminiAdapter,
213
+ },
214
+ {
215
+ id: 'opencode',
216
+ aliases: [],
217
+ displayName: 'Opencode',
218
+ binary: 'opencode',
219
+ command: { kind: 'fixed', command: 'opencode', args: ['run'] },
220
+ invoke: SPAWN_INVOKE,
221
+ installInstructions: 'See https://opencode.ai for installation instructions.',
222
+ authInstructions: 'opencode auth login',
223
+ credentialPaths: ['~/.local/share/opencode'],
224
+ credentialEnvKeys: opencode_1.opencodeAdapter.credentialEnvKeys,
225
+ settingsFields: [],
226
+ capabilities: {
227
+ ...STANDARD_CAPABILITIES,
228
+ jsonSchema: 'experimental',
229
+ reasoningEffort: true,
230
+ },
231
+ docs: {
232
+ label: 'Opencode',
233
+ setupHeading: 'Opencode Setup',
234
+ },
235
+ docker: {
236
+ mount: {
237
+ host: '~/.local/share/opencode',
238
+ container: '$HOME/.local/share/opencode',
239
+ readonly: true,
240
+ },
241
+ envPassthrough: [],
242
+ },
243
+ defaultLevels: {
244
+ min: opencode_1.opencodeAdapter.defaultMinLevel,
245
+ default: opencode_1.opencodeAdapter.defaultLevel,
246
+ max: opencode_1.opencodeAdapter.defaultMaxLevel,
247
+ },
248
+ adapter: opencode_1.opencodeAdapter,
249
+ },
250
+ {
251
+ id: 'pi',
252
+ aliases: [],
253
+ displayName: 'Pi',
254
+ binary: 'pi',
255
+ command: { kind: 'fixed', command: 'pi', args: [] },
256
+ invoke: SPAWN_INVOKE,
257
+ installInstructions: 'npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.80.3',
258
+ authInstructions: 'pi\n/login',
259
+ credentialPaths: ['~/.pi'],
260
+ credentialEnvKeys: pi_1.piAdapter.credentialEnvKeys,
261
+ settingsFields: [],
262
+ availabilityProbe: 'help-or-version',
263
+ capabilities: {
264
+ ...STANDARD_CAPABILITIES,
265
+ mcpServers: false,
266
+ jsonSchema: false,
267
+ reasoningEffort: false,
268
+ },
269
+ docs: {
270
+ label: 'Pi',
271
+ setupHeading: 'Pi Setup',
272
+ },
273
+ docker: {
274
+ mount: {
275
+ host: '~/.pi',
276
+ container: '$HOME/.pi',
277
+ readonly: true,
278
+ },
279
+ envPassthrough: [],
280
+ },
281
+ defaultLevels: {
282
+ min: pi_1.piAdapter.defaultMinLevel,
283
+ default: pi_1.piAdapter.defaultLevel,
284
+ max: pi_1.piAdapter.defaultMaxLevel,
285
+ },
286
+ adapter: pi_1.piAdapter,
287
+ },
288
+ {
289
+ id: 'kiro',
290
+ aliases: [],
291
+ displayName: 'Kiro',
292
+ binary: 'kiro-cli',
293
+ command: { kind: 'fixed', command: 'kiro-cli', args: ['acp'] },
294
+ invoke: ACP_STDIO_INVOKE,
295
+ installInstructions: 'See https://kiro.dev/docs/cli/',
296
+ authInstructions: 'See https://kiro.dev/docs/cli/authentication/',
297
+ credentialPaths: ['~/.kiro'],
298
+ credentialEnvKeys: kiroAdapter.credentialEnvKeys,
299
+ settingsFields: [],
300
+ capabilities: {
301
+ ...STANDARD_CAPABILITIES,
302
+ mcpServers: false,
303
+ jsonSchema: false,
304
+ reasoningEffort: false,
305
+ },
306
+ docs: {
307
+ label: 'Kiro',
308
+ setupHeading: 'Kiro Setup',
309
+ },
310
+ docker: {
311
+ mount: {
312
+ host: '~/.kiro',
313
+ container: '$HOME/.kiro',
314
+ readonly: true,
315
+ },
316
+ envPassthrough: ['KIRO_API_KEY'],
317
+ },
318
+ defaultLevels: {
319
+ min: kiroAdapter.defaultMinLevel,
320
+ default: kiroAdapter.defaultLevel,
321
+ max: kiroAdapter.defaultMaxLevel,
322
+ },
323
+ adapter: kiroAdapter,
324
+ },
325
+ {
326
+ id: 'copilot',
327
+ aliases: [],
328
+ displayName: 'Copilot',
329
+ binary: 'copilot',
330
+ command: { kind: 'fixed', command: 'copilot', args: [] },
331
+ invoke: SPAWN_INVOKE,
332
+ installInstructions: 'npm install -g @github/copilot',
333
+ // Docker/CI can't use the keychain token; export COPILOT_GITHUB_TOKEN instead.
334
+ authInstructions: 'copilot\n/login\n(Docker/CI: export COPILOT_GITHUB_TOKEN=<token>)',
335
+ credentialPaths: ['~/.copilot'],
336
+ credentialEnvKeys: copilot_1.copilotAdapter.credentialEnvKeys,
337
+ settingsFields: [],
338
+ availabilityProbe: 'help-or-version',
339
+ // MCP servers pass through via the `--additional-mcp-config` CLI flag (see copilot adapter
340
+ // addMcpArgs). No native output-schema or reasoning-effort flag.
341
+ capabilities: {
342
+ ...STANDARD_CAPABILITIES,
343
+ mcpServers: true,
344
+ jsonSchema: false,
345
+ reasoningEffort: false,
346
+ },
347
+ docs: {
348
+ label: 'Copilot',
349
+ setupHeading: 'Copilot Setup',
350
+ },
351
+ docker: {
352
+ mount: {
353
+ host: '~/.copilot',
354
+ container: '$HOME/.copilot',
355
+ readonly: true,
356
+ },
357
+ install: 'npm install -g @github/copilot',
358
+ envPassthrough: ['COPILOT_GITHUB_TOKEN', 'GH_TOKEN', 'GITHUB_TOKEN'],
359
+ credentialInMount: false, // token is in the OS keychain, not ~/.copilot
360
+ },
361
+ defaultLevels: {
362
+ min: copilot_1.copilotAdapter.defaultMinLevel,
363
+ default: copilot_1.copilotAdapter.defaultLevel,
364
+ max: copilot_1.copilotAdapter.defaultMaxLevel,
365
+ },
366
+ adapter: copilot_1.copilotAdapter,
367
+ },
368
+ ];
369
+ exports.providerIds = exports.providerRegistry.map((entry) => entry.id);
370
+ exports.providerAliases = exports.providerRegistry.flatMap((entry) => entry.aliases);
371
+ exports.knownProviderNames = exports.providerRegistry.flatMap((entry) => [entry.id, ...entry.aliases]);
372
+ exports.providerAliasMap = Object.freeze(exports.providerRegistry.reduce((result, entry) => {
373
+ result[entry.id] = entry.id;
374
+ for (const alias of entry.aliases) {
375
+ result[alias] = entry.id;
376
+ }
377
+ return result;
378
+ }, {}));
379
+ function normalizeProviderName(name) {
380
+ const normalized = name.toLowerCase();
381
+ return exports.providerAliasMap[normalized] ?? name;
382
+ }
383
+ function listProviderRegistryEntries() {
384
+ return exports.providerRegistry;
385
+ }
386
+ function findProviderRegistryEntry(name) {
387
+ if (!name)
388
+ return undefined;
389
+ const normalized = normalizeProviderName(name);
390
+ return exports.providerRegistry.find((entry) => entry.id === normalized);
391
+ }
392
+ function getProviderRegistryEntry(name) {
393
+ const entry = findProviderRegistryEntry(name);
394
+ if (entry)
395
+ return entry;
396
+ throw new Error(`Unknown provider: ${name}. Valid: ${exports.providerIds.join(', ')}`);
397
+ }
398
+ function resolveProviderCommand(name) {
399
+ const entry = getProviderRegistryEntry(name);
400
+ if (entry.command.kind === 'configured-claude') {
401
+ return (0, claude_command_1.resolveClaudeCommand)();
402
+ }
403
+ return {
404
+ command: entry.command.command,
405
+ args: entry.command.args,
406
+ };
407
+ }
408
+ function supportsProviderCapability(name, capability) {
409
+ return getProviderRegistryEntry(name).capabilities[capability] === true;
410
+ }
411
+ //# sourceMappingURL=provider-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/agent-cli-provider/provider-registry.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export interface PreparedSingleAgentProviderCommand {
10
10
  readonly options: BuildProviderCommandOptions;
11
11
  readonly cliFeatures: CliFeatureOverrides;
12
12
  }
13
+ export interface RuntimeProviderProbe {
14
+ readonly available: boolean;
15
+ readonly helpText: string;
16
+ readonly versionText: string;
17
+ readonly capabilities: ProviderCliFeatures;
18
+ }
13
19
  export declare function prepareSingleAgentProviderCommand(input: SingleAgentProviderCommandInput): PreparedSingleAgentProviderCommand;
14
20
  export declare function detectRuntimeProviderCliFeatures(provider: string): ProviderCliFeatures;
21
+ export declare function probeRuntimeProviderCli(provider: string): RuntimeProviderProbe;
15
22
  //# sourceMappingURL=single-agent-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"single-agent-runtime.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/single-agent-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,EAIX,eAAe,EACf,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AAcjB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAoBD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,+BAA+B,GACrC,kCAAkC,CAcpC;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAKtF"}
1
+ {"version":3,"file":"single-agent-runtime.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/single-agent-runtime.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,EAKX,eAAe,EACf,mBAAmB,EAIpB,MAAM,SAAS,CAAC;AAejB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;CAC5C;AAqBD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,+BAA+B,GACrC,kCAAkC,CAkBpC;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAEtF;AAgDD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CA0B9E"}
@@ -2,8 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareSingleAgentProviderCommand = prepareSingleAgentProviderCommand;
4
4
  exports.detectRuntimeProviderCliFeatures = detectRuntimeProviderCliFeatures;
5
+ exports.probeRuntimeProviderCli = probeRuntimeProviderCli;
5
6
  const adapters_1 = require("./adapters");
7
+ const gateway_tools_1 = require("./gateway-tools");
6
8
  const json_1 = require("./json");
9
+ const provider_registry_1 = require("./provider-registry");
7
10
  const MODEL_LEVELS = ['level1', 'level2', 'level3'];
8
11
  const REASONING_EFFORTS = ['low', 'medium', 'high', 'xhigh'];
9
12
  const settingsModule = require('../../lib/settings');
@@ -11,14 +14,16 @@ const providerDetectionModule = require('../../lib/provider-detection');
11
14
  const claudeAuthModule = require('../../lib/settings/claude-auth');
12
15
  const loadSettingsFn = moduleFunction(settingsModule, 'loadSettings');
13
16
  const getClaudeCommandFn = moduleFunction(settingsModule, 'getClaudeCommand');
17
+ const commandExistsFn = moduleFunction(providerDetectionModule, 'commandExists');
14
18
  const getHelpOutputFn = moduleFunction(providerDetectionModule, 'getHelpOutput');
19
+ const getVersionOutputFn = moduleFunction(providerDetectionModule, 'getVersionOutput');
15
20
  const resolveClaudeAuthFn = moduleFunction(claudeAuthModule, 'resolveClaudeAuth');
16
21
  function prepareSingleAgentProviderCommand(input) {
22
+ const baseOptions = input.options ?? {};
17
23
  const settings = loadRuntimeSettings();
18
24
  const adapter = adapterForRuntimeInput(input.provider, settings);
19
- const providerSettings = runtimeProviderSettings(settings, adapter.id);
20
- const baseOptions = input.options ?? {};
21
- const cliFeatures = baseOptions.cliFeatures ?? detectRuntimeProviderCliFeatures(adapter.id);
25
+ const providerSettings = runtimeProviderSettings(settings, adapter.id, baseOptions.cwd ?? process.cwd());
26
+ const cliFeatures = resolveRuntimeCliFeatures(adapter.id, baseOptions.cliFeatures);
22
27
  const authEnv = baseOptions.authEnv ?? resolveRuntimeAuthEnv(adapter.id, settings);
23
28
  const options = buildRuntimeOptions(baseOptions, adapter, providerSettings, cliFeatures, authEnv);
24
29
  return {
@@ -29,21 +34,111 @@ function prepareSingleAgentProviderCommand(input) {
29
34
  };
30
35
  }
31
36
  function detectRuntimeProviderCliFeatures(provider) {
37
+ return probeRuntimeProviderCli(provider).capabilities;
38
+ }
39
+ function resolveRuntimeCliFeatures(provider, overrides) {
40
+ if (provider === 'gateway') {
41
+ return {
42
+ ...detectRuntimeProviderCliFeatures(provider),
43
+ ...overrides,
44
+ supportsBundledRunner: true,
45
+ };
46
+ }
47
+ if ((0, provider_registry_1.getProviderRegistryEntry)(provider).invoke.lane !== 'acp-stdio') {
48
+ return overrides ?? detectRuntimeProviderCliFeatures(provider);
49
+ }
50
+ const detected = detectRuntimeProviderCliFeatures(provider);
51
+ if (overrides === undefined)
52
+ return detected;
53
+ return mergeAcpFailClosedCliFeatures(detected, overrides);
54
+ }
55
+ function mergeAcpFailClosedCliFeatures(detected, overrides) {
56
+ if (!('supportsAcpStdio' in detected))
57
+ return overrides;
58
+ return {
59
+ ...detected,
60
+ ...overrides,
61
+ supportsAcpStdio: detected.supportsAcpStdio && overrides.supportsAcpStdio !== false,
62
+ supportsPromptImages: detected.supportsPromptImages && overrides.supportsPromptImages !== false,
63
+ supportsLoadSession: detected.supportsLoadSession && overrides.supportsLoadSession !== false,
64
+ supportsSessionCancel: detected.supportsSessionCancel && overrides.supportsSessionCancel !== false,
65
+ supportsSessionSetModel: detected.supportsSessionSetModel && overrides.supportsSessionSetModel !== false,
66
+ supportsSessionSetMode: detected.supportsSessionSetMode && overrides.supportsSessionSetMode !== false,
67
+ supportsRemoteTransport: false,
68
+ supportsCustomTransport: false,
69
+ supportsPermissionRequests: false,
70
+ supportsFsTools: false,
71
+ supportsTerminalTools: false,
72
+ };
73
+ }
74
+ function probeRuntimeProviderCli(provider) {
32
75
  const adapter = (0, adapters_1.getProviderAdapter)(provider);
76
+ if (adapter.id === 'gateway') {
77
+ return probeGatewayProvider(adapter);
78
+ }
33
79
  const helpCommand = runtimeHelpCommand(adapter.id);
34
- const helpText = stringResult(getHelpOutputFn(helpCommand.command, helpCommand.args));
35
- return adapter.detectCliFeatures(helpText);
80
+ const commandAvailable = booleanResult(commandExistsFn(helpCommand.command));
81
+ if (!commandAvailable) {
82
+ return {
83
+ available: false,
84
+ helpText: '',
85
+ versionText: '',
86
+ capabilities: adapter.detectCliFeatures(''),
87
+ };
88
+ }
89
+ const helpText = stringResult(getHelpOutputFn(helpCommand.command, helpCommand.args)).trim();
90
+ const versionText = stringResult(getVersionOutputFn(helpCommand.command, helpCommand.args)).trim();
91
+ const availabilityProbe = (0, provider_registry_1.getProviderRegistryEntry)(adapter.id).availabilityProbe ?? 'command';
92
+ return {
93
+ available: availabilityProbe === 'help-or-version' ? Boolean(helpText || versionText) : true,
94
+ helpText,
95
+ versionText,
96
+ capabilities: adapter.detectCliFeatures(helpText),
97
+ };
36
98
  }
37
99
  function buildRuntimeOptions(baseOptions, adapter, providerSettings, cliFeatures, authEnv) {
100
+ const modelSpec = resolveRuntimeModelSpec(adapter, baseOptions.modelSpec, providerSettings);
101
+ const gateway = resolveRuntimeGatewayOptions(adapter.id, baseOptions, providerSettings, modelSpec);
38
102
  const resolved = {
39
103
  ...baseOptions,
40
- modelSpec: resolveRuntimeModelSpec(adapter, baseOptions.modelSpec, providerSettings),
104
+ modelSpec,
105
+ ...(gateway === undefined ? {} : { gateway }),
41
106
  cliFeatures,
42
107
  };
108
+ if (baseOptions.jsonSchema && !(0, provider_registry_1.supportsProviderCapability)(adapter.id, 'jsonSchema')) {
109
+ if (!shouldIncludeAuthEnv(baseOptions, authEnv)) {
110
+ return { ...resolved, strictSchema: false };
111
+ }
112
+ return { ...resolved, authEnv, strictSchema: false };
113
+ }
43
114
  if (!shouldIncludeAuthEnv(baseOptions, authEnv))
44
115
  return resolved;
45
116
  return { ...resolved, authEnv };
46
117
  }
118
+ function resolveRuntimeGatewayOptions(provider, baseOptions, providerSettings, modelSpec) {
119
+ if (provider !== 'gateway')
120
+ return undefined;
121
+ const cwd = baseOptions.cwd ?? process.cwd();
122
+ const settingsGateway = providerSettings.gateway ?? {};
123
+ const requestGateway = baseOptions.gateway ?? {};
124
+ const mergedHeaders = requestGateway.headers === undefined
125
+ ? settingsGateway.headers
126
+ : { ...(settingsGateway.headers ?? {}), ...requestGateway.headers };
127
+ const mergedGateway = {
128
+ ...(requestGateway.baseUrl ?? settingsGateway.baseUrl
129
+ ? { baseUrl: requestGateway.baseUrl ?? settingsGateway.baseUrl }
130
+ : {}),
131
+ ...(requestGateway.apiKey ?? settingsGateway.apiKey
132
+ ? { apiKey: requestGateway.apiKey ?? settingsGateway.apiKey }
133
+ : {}),
134
+ ...(mergedHeaders === undefined ? {} : { headers: mergedHeaders }),
135
+ model: requestGateway.model ?? modelSpec.model ?? settingsGateway.model ?? null,
136
+ ...(requestGateway.toolPolicy ?? settingsGateway.toolPolicy
137
+ ? { toolPolicy: requestGateway.toolPolicy ?? settingsGateway.toolPolicy }
138
+ : {}),
139
+ };
140
+ return (0, gateway_tools_1.resolveGatewayConfiguration)(mergedGateway, 'options.gateway', cwd);
141
+ }
47
142
  function shouldIncludeAuthEnv(baseOptions, authEnv) {
48
143
  return baseOptions.authEnv !== undefined || Object.keys(authEnv).length > 0;
49
144
  }
@@ -77,7 +172,7 @@ function adapterForRuntimeInput(provider, settings) {
77
172
  const configured = provider ?? optionalString(settings.defaultProvider, 'settings.defaultProvider');
78
173
  return (0, adapters_1.getProviderAdapter)(configured ?? 'claude');
79
174
  }
80
- function runtimeProviderSettings(settings, provider) {
175
+ function runtimeProviderSettings(settings, provider, cwd) {
81
176
  const allSettings = optionalRecord(settings.providerSettings, 'settings.providerSettings');
82
177
  const providerValue = allSettings?.[provider];
83
178
  if (providerValue === undefined)
@@ -85,21 +180,41 @@ function runtimeProviderSettings(settings, provider) {
85
180
  const providerSettings = requiredRecord(providerValue, `settings.providerSettings.${provider}`);
86
181
  const defaultLevel = optionalModelLevel(providerSettings.defaultLevel, `settings.providerSettings.${provider}.defaultLevel`);
87
182
  const levelOverrides = levelOverridesFromUnknown(providerSettings.levelOverrides, `settings.providerSettings.${provider}.levelOverrides`);
88
- if (defaultLevel === undefined)
89
- return { levelOverrides };
90
- return { defaultLevel, levelOverrides };
183
+ const gateway = provider === 'gateway'
184
+ ? (0, gateway_tools_1.normalizeGatewayBuildOptions)(providerSettings, 'settings.providerSettings.gateway', cwd)
185
+ : undefined;
186
+ if (defaultLevel === undefined) {
187
+ return gateway === undefined ? { levelOverrides } : { levelOverrides, gateway };
188
+ }
189
+ return gateway === undefined ? { defaultLevel, levelOverrides } : { defaultLevel, levelOverrides, gateway };
91
190
  }
92
191
  function runtimeHelpCommand(provider) {
93
- if (provider === 'claude')
94
- return getClaudeRuntimeCommand();
95
- if (provider === 'codex')
96
- return { command: 'codex', args: ['exec'] };
97
- if (provider === 'opencode')
98
- return { command: 'opencode', args: ['run'] };
99
- return { command: 'gemini', args: [] };
192
+ if (provider === 'claude') {
193
+ return commandPartsFromUnknown(getClaudeCommandFn(), 'getClaudeCommand');
194
+ }
195
+ return (0, provider_registry_1.resolveProviderCommand)(provider);
100
196
  }
101
- function getClaudeRuntimeCommand() {
102
- return commandPartsFromUnknown(getClaudeCommandFn(), 'getClaudeCommand');
197
+ function probeGatewayProvider(adapter) {
198
+ const capabilities = adapter.detectCliFeatures('');
199
+ try {
200
+ const settings = loadRuntimeSettings();
201
+ const providerSettings = runtimeProviderSettings(settings, 'gateway', process.cwd());
202
+ (0, gateway_tools_1.resolveGatewayConfiguration)(providerSettings.gateway, 'settings.providerSettings.gateway', process.cwd());
203
+ return {
204
+ available: true,
205
+ helpText: 'Bundled gateway runner',
206
+ versionText: process.version,
207
+ capabilities,
208
+ };
209
+ }
210
+ catch {
211
+ return {
212
+ available: false,
213
+ helpText: 'Bundled gateway runner',
214
+ versionText: process.version,
215
+ capabilities,
216
+ };
217
+ }
103
218
  }
104
219
  function loadRuntimeSettings() {
105
220
  const settings = loadSettingsFn();
@@ -225,4 +340,9 @@ function stringResult(value) {
225
340
  return value;
226
341
  throw new Error('Provider help output must be a string.');
227
342
  }
343
+ function booleanResult(value) {
344
+ if (typeof value === 'boolean')
345
+ return value;
346
+ throw new Error('Provider availability probe must return a boolean.');
347
+ }
228
348
  //# sourceMappingURL=single-agent-runtime.js.map