@the-open-engine/zeroshot 6.6.0 → 6.7.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.
- package/bin/zeroshot-cluster-worker.js +16 -0
- package/cli/commands/providers.js +4 -1
- package/cli/index.js +153 -24
- package/docs/openengine-cluster-protocol/v1/legacy-worker.md +117 -0
- package/lib/agent-cli-provider/adapters/claude.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/claude.js +23 -10
- package/lib/agent-cli-provider/adapters/claude.js.map +1 -1
- package/lib/agent-cli-provider/adapters/codex.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/codex.js +4 -0
- package/lib/agent-cli-provider/adapters/codex.js.map +1 -1
- package/lib/agent-cli-provider/adapters/common.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/common.js +2 -1
- package/lib/agent-cli-provider/adapters/common.js.map +1 -1
- package/lib/agent-cli-provider/contract-options.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-options.js +2 -1
- package/lib/agent-cli-provider/contract-options.js.map +1 -1
- package/lib/agent-cli-provider/index.d.ts +1 -1
- package/lib/agent-cli-provider/index.d.ts.map +1 -1
- package/lib/agent-cli-provider/index.js.map +1 -1
- package/lib/agent-cli-provider/provider-registry.d.ts +1 -1
- package/lib/agent-cli-provider/provider-registry.js +1 -1
- package/lib/agent-cli-provider/provider-registry.js.map +1 -1
- package/lib/agent-cli-provider/single-agent-runtime.js +6 -2
- package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -1
- package/lib/agent-cli-provider/types.d.ts +3 -1
- package/lib/agent-cli-provider/types.d.ts.map +1 -1
- package/lib/agent-cli-provider/types.js.map +1 -1
- package/lib/cluster-worker/contracts.js +194 -0
- package/lib/cluster-worker/engine-adapter.js +300 -0
- package/lib/cluster-worker/executable.js +229 -0
- package/lib/cluster-worker/index.d.ts +227 -0
- package/lib/cluster-worker/index.js +294 -0
- package/lib/cluster-worker/object-utils.js +17 -0
- package/lib/cluster-worker/process-stdio.js +37 -0
- package/lib/cluster-worker/profiles.js +81 -0
- package/lib/cluster-worker/runtime-engine.js +50 -0
- package/lib/cluster-worker/runtime-support.js +298 -0
- package/lib/cluster-worker/state-machine.js +147 -0
- package/lib/cluster-worker/terminal-normalizer.js +95 -0
- package/lib/cluster-worker/worker-internals.js +20 -0
- package/lib/detached-startup.js +127 -11
- package/lib/process-liveness.js +26 -0
- package/lib/settings.js +1 -0
- package/lib/start-cluster.js +93 -18
- package/package.json +8 -2
- package/protocol/openengine-cluster/v1/worker.schema.json +1174 -0
- package/scripts/assert-release-published.js +65 -11
- package/scripts/run-lint-staged-no-stash.js +68 -0
- package/src/agent/agent-lifecycle.js +368 -91
- package/src/agent/agent-task-executor.js +384 -101
- package/src/agent-cli-provider/adapters/claude.ts +29 -11
- package/src/agent-cli-provider/adapters/codex.ts +4 -0
- package/src/agent-cli-provider/adapters/common.ts +2 -1
- package/src/agent-cli-provider/contract-options.ts +2 -1
- package/src/agent-cli-provider/index.ts +1 -0
- package/src/agent-cli-provider/provider-registry.ts +1 -1
- package/src/agent-cli-provider/single-agent-runtime.ts +8 -2
- package/src/agent-cli-provider/types.ts +3 -1
- package/src/agent-wrapper.js +9 -2
- package/src/config-validator.js +10 -11
- package/src/orchestrator.js +482 -67
- package/task-lib/attachable-watcher.js +10 -1
- package/task-lib/commands/kill.js +34 -9
- package/task-lib/commands/status.js +13 -3
- package/task-lib/process-termination.js +202 -0
- package/task-lib/runner.js +8 -20
- package/task-lib/store.js +28 -6
- package/task-lib/watcher.js +14 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const {
|
|
5
|
+
bindProcessLifecycle,
|
|
6
|
+
redirectConsoleToStderr,
|
|
7
|
+
} = require('../lib/cluster-worker/process-stdio');
|
|
8
|
+
|
|
9
|
+
// stdout is the worker protocol transport. Route ambient engine logging away
|
|
10
|
+
// from it before constructing the production adapter.
|
|
11
|
+
redirectConsoleToStderr();
|
|
12
|
+
|
|
13
|
+
const { runClusterWorkerExecutable } = require('../lib/cluster-worker/executable');
|
|
14
|
+
|
|
15
|
+
const runtime = runClusterWorkerExecutable();
|
|
16
|
+
bindProcessLifecycle(runtime);
|
|
@@ -122,7 +122,10 @@ async function setupCommand(args) {
|
|
|
122
122
|
const modelChoice = await question(rl, `Model for ${level} (${catalog.join(', ')}): `);
|
|
123
123
|
if (modelChoice) levelOverrides[level] = { model: modelChoice };
|
|
124
124
|
if (!providerSupportsCapability(provider, 'reasoningEffort')) continue;
|
|
125
|
-
const reasoning = await question(
|
|
125
|
+
const reasoning = await question(
|
|
126
|
+
rl,
|
|
127
|
+
`Reasoning for ${level} (low|medium|high|xhigh|max): `
|
|
128
|
+
);
|
|
126
129
|
if (reasoning) {
|
|
127
130
|
levelOverrides[level] = {
|
|
128
131
|
...(levelOverrides[level] || {}),
|
package/cli/index.js
CHANGED
|
@@ -73,9 +73,13 @@ const { runInspectCommand } = require('./commands/inspect');
|
|
|
73
73
|
const { runCmdproof } = require('./commands/cmdproof');
|
|
74
74
|
const {
|
|
75
75
|
markDetachedSetupFailed,
|
|
76
|
+
patchDetachedResumeCluster,
|
|
76
77
|
registerDetachedSetupCluster,
|
|
77
78
|
removeDetachedSetupCluster,
|
|
79
|
+
revertDetachedResumeCluster,
|
|
80
|
+
waitForResumeOwnership,
|
|
78
81
|
} = require('../lib/detached-startup');
|
|
82
|
+
const { isProcessRunning: isClusterProcessAlive } = require('../lib/process-liveness');
|
|
79
83
|
// Setup wizard removed - use: zeroshot settings set <key> <value>
|
|
80
84
|
const { checkForUpdates, printLegacyDistroNotice } = require('./lib/update-checker');
|
|
81
85
|
const { checkBinDirOnPath, printPathWarning } = require('../lib/path-check');
|
|
@@ -245,12 +249,12 @@ function printDetachedClusterStart(options, clusterId, logPath) {
|
|
|
245
249
|
console.log(`Attach: zeroshot attach ${clusterId}`);
|
|
246
250
|
}
|
|
247
251
|
|
|
248
|
-
function createDaemonLogFile(
|
|
252
|
+
function createDaemonLogFile(logName) {
|
|
249
253
|
const storageDir = path.join(os.homedir(), '.zeroshot');
|
|
250
254
|
if (!fs.existsSync(storageDir)) {
|
|
251
255
|
fs.mkdirSync(storageDir, { recursive: true });
|
|
252
256
|
}
|
|
253
|
-
const logPath = path.join(storageDir, `${
|
|
257
|
+
const logPath = path.join(storageDir, `${logName}-daemon.log`);
|
|
254
258
|
return fs.openSync(logPath, 'w');
|
|
255
259
|
}
|
|
256
260
|
|
|
@@ -291,17 +295,32 @@ function buildDaemonEnv(options, clusterId, targetCwd, stdinText) {
|
|
|
291
295
|
};
|
|
292
296
|
}
|
|
293
297
|
|
|
294
|
-
|
|
298
|
+
// Generic detached-child primitive shared by `run --detach` and
|
|
299
|
+
// `resume --detach`: spawn a re-invocation of this same CLI (same argv) with
|
|
300
|
+
// daemon env vars set, detach it from this process, and return its PID.
|
|
301
|
+
// Callers own registering/patching cluster state around the spawn - this
|
|
302
|
+
// function knows nothing about run vs. resume.
|
|
303
|
+
function spawnDetachedChild(env, cwd, logFd) {
|
|
295
304
|
const { spawn } = require('child_process');
|
|
296
|
-
const logFd = createDaemonLogFile(clusterId);
|
|
297
|
-
const targetCwd = detectGitRepoRoot();
|
|
298
|
-
const logPath = path.join(os.homedir(), '.zeroshot', `${clusterId}-daemon.log`);
|
|
299
305
|
const daemon = spawn(process.execPath, process.argv.slice(1), {
|
|
300
306
|
detached: true,
|
|
301
307
|
stdio: ['ignore', logFd, logFd],
|
|
302
|
-
cwd
|
|
303
|
-
env
|
|
308
|
+
cwd,
|
|
309
|
+
env,
|
|
304
310
|
});
|
|
311
|
+
daemon.unref();
|
|
312
|
+
return daemon;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
async function spawnDetachedCluster(options, clusterId, stdinText) {
|
|
316
|
+
const logFd = createDaemonLogFile(clusterId);
|
|
317
|
+
const targetCwd = detectGitRepoRoot();
|
|
318
|
+
const logPath = path.join(os.homedir(), '.zeroshot', `${clusterId}-daemon.log`);
|
|
319
|
+
const daemon = spawnDetachedChild(
|
|
320
|
+
buildDaemonEnv(options, clusterId, targetCwd, stdinText),
|
|
321
|
+
targetCwd,
|
|
322
|
+
logFd
|
|
323
|
+
);
|
|
305
324
|
await registerDetachedSetupCluster({
|
|
306
325
|
clusterId,
|
|
307
326
|
pid: daemon.pid,
|
|
@@ -310,11 +329,53 @@ async function spawnDetachedCluster(options, clusterId, stdinText) {
|
|
|
310
329
|
runOptions: options,
|
|
311
330
|
cwd: targetCwd,
|
|
312
331
|
});
|
|
313
|
-
daemon.unref();
|
|
314
332
|
fs.closeSync(logFd);
|
|
315
333
|
printDetachedClusterStart(options, clusterId, logPath);
|
|
316
334
|
}
|
|
317
335
|
|
|
336
|
+
// Resume's daemon env is deliberately NOT buildDaemonEnv: run-only keys like
|
|
337
|
+
// ZEROSHOT_DOCKER/ZEROSHOT_WORKTREE/ZEROSHOT_PR are derived by resume from
|
|
338
|
+
// the cluster's own persisted state, and spreading them here would fight
|
|
339
|
+
// that. The resumed process needs only to know it's the daemon and which
|
|
340
|
+
// cluster it owns; `id`/`prompt` already travel as plain argv (commander
|
|
341
|
+
// re-parses the same argv in the child), not through env.
|
|
342
|
+
function buildResumeDaemonEnv(clusterId, targetCwd) {
|
|
343
|
+
return {
|
|
344
|
+
...process.env,
|
|
345
|
+
ZEROSHOT_DAEMON: '1',
|
|
346
|
+
ZEROSHOT_CLUSTER_ID: clusterId,
|
|
347
|
+
ZEROSHOT_CWD: targetCwd,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Parent-side half of `resume --detach`: spawn the daemon, then atomically
|
|
352
|
+
// hand it ownership of the cluster record (patchDetachedResumeCluster).
|
|
353
|
+
// If another live daemon already owns this cluster (a concurrent resume
|
|
354
|
+
// won the race), abort and kill the child we just spawned rather than
|
|
355
|
+
// leaving a duplicate process running.
|
|
356
|
+
async function spawnDetachedResume(clusterId) {
|
|
357
|
+
const logFd = createDaemonLogFile(`${clusterId}-resume`);
|
|
358
|
+
const targetCwd = detectGitRepoRoot();
|
|
359
|
+
const logPath = path.join(os.homedir(), '.zeroshot', `${clusterId}-resume-daemon.log`);
|
|
360
|
+
const storageDir = path.join(os.homedir(), '.zeroshot');
|
|
361
|
+
const daemon = spawnDetachedChild(buildResumeDaemonEnv(clusterId, targetCwd), targetCwd, logFd);
|
|
362
|
+
|
|
363
|
+
try {
|
|
364
|
+
await patchDetachedResumeCluster({ clusterId, daemonPid: daemon.pid, storageDir });
|
|
365
|
+
} catch (patchError) {
|
|
366
|
+
try {
|
|
367
|
+
process.kill(daemon.pid, 'SIGTERM');
|
|
368
|
+
} catch {
|
|
369
|
+
// Already gone - nothing to clean up.
|
|
370
|
+
}
|
|
371
|
+
fs.closeSync(logFd);
|
|
372
|
+
throw patchError;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
fs.closeSync(logFd);
|
|
376
|
+
return { pid: daemon.pid, logPath };
|
|
377
|
+
}
|
|
378
|
+
|
|
318
379
|
function resolveClusterId(generateName) {
|
|
319
380
|
const clusterId = process.env.ZEROSHOT_CLUSTER_ID || generateName('cluster');
|
|
320
381
|
process.env.ZEROSHOT_CLUSTER_ID = clusterId;
|
|
@@ -377,14 +438,13 @@ function applyModelOverrideToConfig(config, modelOverride, providerOverride, set
|
|
|
377
438
|
|
|
378
439
|
if (providerName === 'claude') {
|
|
379
440
|
const { validateModelAgainstMax, VALID_MODELS } = require('../lib/settings');
|
|
380
|
-
if (
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
process.exit(1);
|
|
441
|
+
if (VALID_MODELS.includes(modelOverride)) {
|
|
442
|
+
try {
|
|
443
|
+
validateModelAgainstMax(modelOverride, settings.maxModel);
|
|
444
|
+
} catch (err) {
|
|
445
|
+
console.error(chalk.red(`Error: ${err.message}`));
|
|
446
|
+
process.exit(1);
|
|
447
|
+
}
|
|
388
448
|
}
|
|
389
449
|
}
|
|
390
450
|
|
|
@@ -2684,7 +2744,7 @@ taskCmd
|
|
|
2684
2744
|
.option('--provider <provider>', `Provider to use (${PROVIDER_CHOICES})`)
|
|
2685
2745
|
.option('--model <model>', 'Model id override for the provider')
|
|
2686
2746
|
.option('--model-level <level>', 'Model level override (level1, level2, level3)')
|
|
2687
|
-
.option('--reasoning-effort <effort>', 'Reasoning effort (low, medium, high, xhigh)')
|
|
2747
|
+
.option('--reasoning-effort <effort>', 'Reasoning effort (low, medium, high, xhigh, max)')
|
|
2688
2748
|
.option('-r, --resume <sessionId>', 'Resume a specific Claude session (claude only)')
|
|
2689
2749
|
.option('-c, --continue', 'Continue the most recent Claude session (claude only)')
|
|
2690
2750
|
.option(
|
|
@@ -3188,10 +3248,12 @@ program
|
|
|
3188
3248
|
.description('Resume a failed task or cluster')
|
|
3189
3249
|
.option('-d, --detach', 'Resume in background (daemon mode)')
|
|
3190
3250
|
.action(async (id, prompt, options) => {
|
|
3251
|
+
let orchestrator = null;
|
|
3252
|
+
let keepOrchestratorOpen = false;
|
|
3191
3253
|
try {
|
|
3192
3254
|
// Try cluster first, then task (both use same ID format: "adjective-noun-number")
|
|
3193
3255
|
const OrchestratorModule = require('../src/orchestrator');
|
|
3194
|
-
|
|
3256
|
+
orchestrator = await OrchestratorModule.create();
|
|
3195
3257
|
|
|
3196
3258
|
// Check if cluster exists
|
|
3197
3259
|
const cluster = orchestrator.getCluster(id);
|
|
@@ -3214,9 +3276,70 @@ program
|
|
|
3214
3276
|
provider: providerName,
|
|
3215
3277
|
});
|
|
3216
3278
|
|
|
3279
|
+
// === DETACH HANDOFF: hand the resume off to a daemon and return ===
|
|
3280
|
+
// This is the parent's half only - it never calls orchestrator.resume()
|
|
3281
|
+
// itself. Fail fast here (before spawning anything) on the same
|
|
3282
|
+
// liveness check orchestrator.resume() would otherwise apply, so a
|
|
3283
|
+
// cluster that's genuinely still running doesn't waste a daemon spawn.
|
|
3284
|
+
if (shouldRunDetached(options)) {
|
|
3285
|
+
if (cluster.state === 'running' && isClusterProcessAlive(cluster.pid)) {
|
|
3286
|
+
throw new Error(
|
|
3287
|
+
`Cluster ${id} is still running. Use 'zeroshot stop' first if you want to restart it.`
|
|
3288
|
+
);
|
|
3289
|
+
}
|
|
3290
|
+
orchestrator.close();
|
|
3291
|
+
const { pid, logPath } = await spawnDetachedResume(id);
|
|
3292
|
+
console.log(chalk.green(`✓ Resume daemon started for ${id}`));
|
|
3293
|
+
console.log(` Daemon PID: ${pid}`);
|
|
3294
|
+
console.log(` Daemon log: ${logPath}`);
|
|
3295
|
+
console.log('');
|
|
3296
|
+
console.log(chalk.dim(`Monitor: zeroshot logs ${id} -f`));
|
|
3297
|
+
console.log(chalk.dim(`Status: zeroshot status ${id}`));
|
|
3298
|
+
return;
|
|
3299
|
+
}
|
|
3300
|
+
|
|
3301
|
+
// === DAEMON SIDE: this process IS the spawned resume daemon ===
|
|
3302
|
+
// Wait for the parent's atomic pid/state patch to name *this* PID as
|
|
3303
|
+
// owner before touching the cluster - closes the gap between spawn()
|
|
3304
|
+
// returning a PID and that patch landing, so a daemon that lost a
|
|
3305
|
+
// concurrent resume --detach race never gets to call resume() at all.
|
|
3306
|
+
const isResumeDaemon =
|
|
3307
|
+
Boolean(options.detach) &&
|
|
3308
|
+
process.env.ZEROSHOT_DAEMON === '1' &&
|
|
3309
|
+
process.env.ZEROSHOT_CLUSTER_ID === id;
|
|
3310
|
+
|
|
3311
|
+
if (isResumeDaemon) {
|
|
3312
|
+
const storageDir = path.join(os.homedir(), '.zeroshot');
|
|
3313
|
+
const owned = await waitForResumeOwnership({
|
|
3314
|
+
clusterId: id,
|
|
3315
|
+
daemonPid: process.pid,
|
|
3316
|
+
storageDir,
|
|
3317
|
+
});
|
|
3318
|
+
if (!owned) {
|
|
3319
|
+
console.error(
|
|
3320
|
+
chalk.red(
|
|
3321
|
+
`Resume daemon for ${id} never received ownership handoff from parent process; aborting.`
|
|
3322
|
+
)
|
|
3323
|
+
);
|
|
3324
|
+
process.exit(1);
|
|
3325
|
+
}
|
|
3326
|
+
}
|
|
3327
|
+
|
|
3217
3328
|
// Resume cluster
|
|
3218
3329
|
console.log(chalk.cyan(`Resuming cluster ${id}...`));
|
|
3219
|
-
|
|
3330
|
+
let result;
|
|
3331
|
+
try {
|
|
3332
|
+
result = await orchestrator.resume(id, prompt);
|
|
3333
|
+
} catch (resumeError) {
|
|
3334
|
+
if (isResumeDaemon) {
|
|
3335
|
+
await revertDetachedResumeCluster({
|
|
3336
|
+
clusterId: id,
|
|
3337
|
+
storageDir: path.join(os.homedir(), '.zeroshot'),
|
|
3338
|
+
error: resumeError,
|
|
3339
|
+
});
|
|
3340
|
+
}
|
|
3341
|
+
throw resumeError;
|
|
3342
|
+
}
|
|
3220
3343
|
|
|
3221
3344
|
console.log(chalk.green(`✓ Cluster resumed`));
|
|
3222
3345
|
if (result.resumeType === 'failure') {
|
|
@@ -3232,8 +3355,10 @@ program
|
|
|
3232
3355
|
}
|
|
3233
3356
|
}
|
|
3234
3357
|
|
|
3235
|
-
// === DAEMON MODE:
|
|
3236
|
-
if (
|
|
3358
|
+
// === DAEMON MODE: stay alive in the background, let signals stop the cluster ===
|
|
3359
|
+
if (isResumeDaemon) {
|
|
3360
|
+
setupDaemonCleanup(orchestrator, id);
|
|
3361
|
+
keepOrchestratorOpen = true;
|
|
3237
3362
|
console.log('');
|
|
3238
3363
|
console.log(chalk.dim(`Follow logs with: zeroshot logs ${id} -f`));
|
|
3239
3364
|
return;
|
|
@@ -3352,7 +3477,11 @@ program
|
|
|
3352
3477
|
}
|
|
3353
3478
|
} catch (error) {
|
|
3354
3479
|
console.error(chalk.red('Error resuming:'), error.message);
|
|
3355
|
-
process.
|
|
3480
|
+
process.exitCode = 1;
|
|
3481
|
+
} finally {
|
|
3482
|
+
if (orchestrator && !keepOrchestratorOpen) {
|
|
3483
|
+
orchestrator.close();
|
|
3484
|
+
}
|
|
3356
3485
|
}
|
|
3357
3486
|
});
|
|
3358
3487
|
|
|
@@ -5731,4 +5860,4 @@ if (require.main === module) {
|
|
|
5731
5860
|
});
|
|
5732
5861
|
}
|
|
5733
5862
|
|
|
5734
|
-
module.exports = { renderRecentMessagesToTerminal, resolveRunMode };
|
|
5863
|
+
module.exports = { applyModelOverrideToConfig, renderRecentMessagesToTerminal, resolveRunMode };
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Legacy Zeroshot cluster worker
|
|
2
|
+
|
|
3
|
+
`createLegacyClusterWorker()` exposes the current Node Zeroshot engine as the bounded
|
|
4
|
+
`legacy.zeroshot.ship@1` worker. It is an implementation binding for a parent process, not an Open
|
|
5
|
+
Engine Cluster Protocol transport or a graph executor.
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
const { createLegacyClusterWorker } = require('@the-open-engine/zeroshot/lib/cluster-worker');
|
|
9
|
+
|
|
10
|
+
const worker = createLegacyClusterWorker({
|
|
11
|
+
profileRegistry,
|
|
12
|
+
artifactResolver,
|
|
13
|
+
artifactReceiptSink,
|
|
14
|
+
engineAdapter,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
await worker.start({
|
|
18
|
+
source: 'issue',
|
|
19
|
+
issue: 'https://github.com/example/project/issues/123',
|
|
20
|
+
artifacts: [],
|
|
21
|
+
isolationProfile: 'isolation.worktree@1',
|
|
22
|
+
providerProfile: 'provider.default@1',
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
for await (const event of worker.events()) {
|
|
26
|
+
// Live lifecycle transitions only; no durable cursor or replay guarantee.
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const receipt = await worker.result();
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The five public operations are `start(request)`, `status()`, `events()`, `stop()`, and `result()`.
|
|
33
|
+
One facade owns at most one cluster. There is no guidance, permission, authentication, writable
|
|
34
|
+
attach, or arbitrary-input operation.
|
|
35
|
+
|
|
36
|
+
## Closed input
|
|
37
|
+
|
|
38
|
+
Requests validate against the generated `LegacyShipRequest` schema. They select exactly one source:
|
|
39
|
+
|
|
40
|
+
- `issue`: nonempty `issue`, no prompt, and no artifacts;
|
|
41
|
+
- `prompt`: nonempty `prompt`, no issue, and no artifacts;
|
|
42
|
+
- `artifact`: one or more byte-free `ArtifactRef` receipts and no issue or prompt.
|
|
43
|
+
|
|
44
|
+
`isolationProfile` and `providerProfile` are opaque registry handles. Unknown fields are rejected,
|
|
45
|
+
so payloads cannot carry credentials, tokens, environment maps, endpoints, models, timeouts,
|
|
46
|
+
filesystem paths, commands, or launch flags. The production deployment registry resolves only
|
|
47
|
+
worktree, Docker, PR, or ship isolation. A missing, unknown, or non-isolated profile fails before
|
|
48
|
+
the engine allocates a ledger, worktree, or container.
|
|
49
|
+
|
|
50
|
+
Artifact input fails before allocation unless the embedding product injects a real resolver. After
|
|
51
|
+
the engine allocates the worktree or Docker workspace but before any agent starts, that resolver
|
|
52
|
+
materializes declared receipts as read-only content inside the allocated isolation and returns an
|
|
53
|
+
engine-private, byte-free manifest. Echoing receipts without making their content readable is not a
|
|
54
|
+
resolver. Artifact receipt sinks convert declared durable output to canonical byte-free receipts.
|
|
55
|
+
Without a sink, successful output contains an empty artifact list. Raw provider and agent output
|
|
56
|
+
remains engine diagnostic data and never enters the stable result.
|
|
57
|
+
|
|
58
|
+
## Lifecycle and termination
|
|
59
|
+
|
|
60
|
+
The monotonic lifecycle is `idle`, `starting`, `running`, optional `stopping`, then exactly one of
|
|
61
|
+
`completed`, `failed`, `timed_out`, `stopped`, or `malformed`. Completion and failure are folded from
|
|
62
|
+
the engine cluster record and durable `CLUSTER_COMPLETE` or `CLUSTER_FAILED` ledger messages. PID
|
|
63
|
+
liveness can add diagnostics but cannot manufacture success.
|
|
64
|
+
|
|
65
|
+
Completion, declared failure, malformed output, the registry-owned execution deadline, and explicit
|
|
66
|
+
stop race under one terminal latch. The first accepted authority is immutable; late messages do not
|
|
67
|
+
change the receipt or emit another terminal event. Profile resolution, artifact staging, engine
|
|
68
|
+
start, and artifact receipt collection all remain within that deadline and can be preempted by
|
|
69
|
+
explicit stop. Completion becomes authoritative only after its canonical receipt has been bounded
|
|
70
|
+
and validated, so a stalled receipt sink cannot suppress timeout or stop. Profile resolution,
|
|
71
|
+
artifact staging, and receipt collection receive one cancellation signal. If an injected operation
|
|
72
|
+
ignores that signal and completes late, its registry `release` or port `cleanup` hook retains
|
|
73
|
+
resource ownership and runs after the terminal receipt is fixed. A late operation or cleanup
|
|
74
|
+
failure is reported through the injected cleanup-failure reporter, or as a process warning when no
|
|
75
|
+
reporter is configured; it is never silently discarded or allowed to rewrite terminal truth.
|
|
76
|
+
|
|
77
|
+
A synchronous pre-allocation rejection leaves the facade idle and releases its one-start claim.
|
|
78
|
+
`stop()` and `result()` then reject as not started, and the caller may retry with a valid request.
|
|
79
|
+
|
|
80
|
+
`stop()` delegates to the engine stop path and waits no longer than the deployment profile's
|
|
81
|
+
shutdown deadline. It reports `effective: false` when the engine rejects or does not acknowledge
|
|
82
|
+
stop in time. The acknowledgement deadline does not abandon resource ownership: if engine
|
|
83
|
+
allocation occurs later while start is still pending, background cleanup stops that cluster. Stop
|
|
84
|
+
always reports
|
|
85
|
+
`externalEffectsRolledBack: false`: provider, repository, or tool side effects may already have
|
|
86
|
+
happened.
|
|
87
|
+
|
|
88
|
+
Engine completion must contain either a canonical `LegacyShipResult` or an explicit bounded summary.
|
|
89
|
+
Engine failures must contain a valid closed error-code/reason pair. Missing completion data, invalid
|
|
90
|
+
failure values, and invalid failure pairs terminate as `malformed`; the facade never fills them with
|
|
91
|
+
success or crash defaults. Engine status observation is synchronous so a durable-ledger observation
|
|
92
|
+
failure can immediately fail closed instead of becoming an unobserved rejected promise.
|
|
93
|
+
|
|
94
|
+
## Executable
|
|
95
|
+
|
|
96
|
+
`zeroshot-cluster-worker` reads bounded NDJSON commands from stdin and writes only NDJSON protocol
|
|
97
|
+
frames to stdout. Diagnostics use stderr. A process owns one worker resource.
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{"id":"1","method":"start","params":{"request":{"source":"prompt","prompt":"Run task","artifacts":[],"isolationProfile":"isolation.docker@1","providerProfile":"provider.default@1"}}}
|
|
101
|
+
{"id":"2","method":"status","params":{}}
|
|
102
|
+
{"id":"3","method":"events","params":{}}
|
|
103
|
+
{"id":"4","method":"result","params":{}}
|
|
104
|
+
{"id":"5","method":"stop","params":{}}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Responses are `{ "type": "response", "id", "ok", "result" }` or contain a closed error object.
|
|
108
|
+
An `events` subscription also receives `{ "type": "event", "id", "event" }` frames. Arrays,
|
|
109
|
+
malformed or oversized JSON, unknown methods, unknown parameters, and duplicate starts fail closed.
|
|
110
|
+
EOF, SIGINT, and SIGTERM request explicit stop and wait no longer than the shutdown deadline. They do
|
|
111
|
+
not imply rollback. Cleanup that settles inside that executable deadline is drained; if allocation
|
|
112
|
+
never registers or settles, the process invokes its internal adapter-release port and exits at the
|
|
113
|
+
deadline without adding a sixth public worker operation.
|
|
114
|
+
|
|
115
|
+
`result` and `stop` race the in-flight `start` operation against terminal receipt availability. A
|
|
116
|
+
startup timeout or allocated-engine start failure therefore returns canonical terminal truth even
|
|
117
|
+
when the adapter's original start promise never fulfills.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/claude.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/claude.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,eAAe,EAGrB,MAAM,UAAU,CAAC;AA2MlB,eAAO,MAAM,aAAa,EAAE,eAkB3B,CAAC"}
|
|
@@ -2,14 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.claudeAdapter = void 0;
|
|
4
4
|
const json_1 = require("../json");
|
|
5
|
-
const types_1 = require("../types");
|
|
6
5
|
const claude_command_1 = require("../claude-command");
|
|
7
6
|
const common_1 = require("./common");
|
|
8
7
|
const claude_parser_1 = require("./claude-parser");
|
|
9
8
|
const MODEL_CATALOG = {
|
|
10
9
|
haiku: { rank: 1 },
|
|
10
|
+
'claude-haiku-4-5': { rank: 1 },
|
|
11
|
+
'claude-haiku-4-5-20251001': { rank: 1 },
|
|
11
12
|
sonnet: { rank: 2 },
|
|
13
|
+
'claude-sonnet-4-5': { rank: 2 },
|
|
14
|
+
'claude-sonnet-4-5-20250929': { rank: 2 },
|
|
15
|
+
'claude-sonnet-4-6': { rank: 2 },
|
|
16
|
+
'claude-sonnet-5': { rank: 2 },
|
|
12
17
|
opus: { rank: 3 },
|
|
18
|
+
'claude-opus-4-5': { rank: 3 },
|
|
19
|
+
'claude-opus-4-5-20251101': { rank: 3 },
|
|
20
|
+
'claude-opus-4-6': { rank: 3 },
|
|
21
|
+
'claude-opus-4-7': { rank: 3 },
|
|
22
|
+
'claude-opus-4-8': { rank: 3 },
|
|
23
|
+
fable: { rank: 3 },
|
|
24
|
+
'claude-fable-5': { rank: 3 },
|
|
25
|
+
'claude-mythos-5': { rank: 3 },
|
|
26
|
+
'claude-mythos-preview': { rank: 3 },
|
|
13
27
|
};
|
|
14
28
|
const LEVEL_MAPPING = {
|
|
15
29
|
level1: { rank: 1, model: 'haiku' },
|
|
@@ -28,6 +42,7 @@ function detectCliFeatures(helpText) {
|
|
|
28
42
|
supportsIncludePartials: unknown ? true : /--include-partial-messages/.test(help),
|
|
29
43
|
supportsVerbose: unknown ? true : /--verbose/.test(help),
|
|
30
44
|
supportsModel: unknown ? true : /--model/.test(help),
|
|
45
|
+
supportsEffort: unknown ? true : /--effort/.test(help),
|
|
31
46
|
unknown,
|
|
32
47
|
};
|
|
33
48
|
}
|
|
@@ -58,6 +73,9 @@ function addModelArgs(args, options) {
|
|
|
58
73
|
if (options.modelSpec?.model && features.supportsModel !== false) {
|
|
59
74
|
args.push('--model', options.modelSpec.model);
|
|
60
75
|
}
|
|
76
|
+
if (options.modelSpec?.reasoningEffort && features.supportsEffort !== false) {
|
|
77
|
+
args.push('--effort', options.modelSpec.reasoningEffort);
|
|
78
|
+
}
|
|
61
79
|
}
|
|
62
80
|
function addAutoApproveArgs(args, options) {
|
|
63
81
|
const features = (0, common_1.optionFeatures)(options);
|
|
@@ -88,6 +106,9 @@ function collectWarnings(options) {
|
|
|
88
106
|
if (options.autoApprove && features.supportsAutoApprove === false) {
|
|
89
107
|
warnings.push((0, common_1.warning)('claude', 'claude-auto-approve', 'Claude CLI does not support --dangerously-skip-permissions; continuing without auto-approve.'));
|
|
90
108
|
}
|
|
109
|
+
if (options.modelSpec?.reasoningEffort && features.supportsEffort === false) {
|
|
110
|
+
warnings.push((0, common_1.warning)('claude', 'claude-reasoning', 'Claude CLI does not support --effort; skipping reasoningEffort.'));
|
|
111
|
+
}
|
|
91
112
|
return warnings;
|
|
92
113
|
}
|
|
93
114
|
function buildCommand(context, options = {}) {
|
|
@@ -119,15 +140,7 @@ function resolveModelSpec(level, overrides) {
|
|
|
119
140
|
});
|
|
120
141
|
}
|
|
121
142
|
function validateModelId(modelId) {
|
|
122
|
-
|
|
123
|
-
return (0, common_1.validateModelIdFromCatalog)('claude', MODEL_CATALOG, modelId);
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
if (modelId && (modelId === 'opus-4.6' || modelId === 'claude-opus-4-6')) {
|
|
127
|
-
throw new types_1.InvalidProviderModelError(`Invalid model "${modelId}" for provider "claude". Use canonical model ids: haiku, sonnet, opus.`);
|
|
128
|
-
}
|
|
129
|
-
throw error;
|
|
130
|
-
}
|
|
143
|
+
return (0, common_1.validateModelIdFromCatalog)('claude', MODEL_CATALOG, modelId);
|
|
131
144
|
}
|
|
132
145
|
function classifyError(error) {
|
|
133
146
|
return (0, common_1.classifyBaseProviderError)(error, [/no messages returned/i, /\boverloaded\b/i, /\brate[_ -]?limit\b/i], [/invalid_request_error/i, /model_not_available/i]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/claude.ts"],"names":[],"mappings":";;;AAAA,kCAAwC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,eAAe,EAGrB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,eAAe,EAGrB,MAAM,UAAU,CAAC;AA6LlB,eAAO,MAAM,YAAY,EAAE,eAkB1B,CAAC"}
|
|
@@ -7,6 +7,10 @@ const codex_parser_1 = require("./codex-parser");
|
|
|
7
7
|
const MODEL_CATALOG = {
|
|
8
8
|
'gpt-5.4': { rank: 2 },
|
|
9
9
|
'gpt-5.5': { rank: 3 },
|
|
10
|
+
'gpt-5.6': { rank: 3 },
|
|
11
|
+
'gpt-5.6-sol': { rank: 3 },
|
|
12
|
+
'gpt-5.6-terra': { rank: 2 },
|
|
13
|
+
'gpt-5.6-luna': { rank: 1 },
|
|
10
14
|
};
|
|
11
15
|
const LEVEL_MAPPING = {
|
|
12
16
|
level1: { rank: 1, model: 'gpt-5.4', reasoningEffort: 'medium' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":";;;AAAA,sCAAgF;AAchF,qCASkB;AAClB,iDAAiD;AAEjD,MAAM,aAAa,GAAgD;IACjE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACtB,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/common.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAElB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,mBAAmB,CAK3E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACpD,GAAG,WAAW,CAYd;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAE5F;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,2BAA2B,GACnC,eAAe,EAAE,CASnB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,iBAAiB,EAAE,CAEjG;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC7F;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,GAAG,iBAAiB,CAU3F;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EACpD,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,MAAM,GAAG,IAAI,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/common.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAElB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,mBAAmB,CAK3E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACpD,GAAG,WAAW,CAYd;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAE5F;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,2BAA2B,GACnC,eAAe,EAAE,CASnB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,iBAAiB,EAAE,CAEjG;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC7F;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,GAAG,iBAAiB,CAU3F;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EACpD,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,MAAM,GAAG,IAAI,GAAG,SAAS,CAO3B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,mBAAmB,CAMrB;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,2BAA2B,GAAG,SAAS,GAC/C,mBAAmB,CAErB"}
|
|
@@ -60,7 +60,8 @@ function validateModelIdFromCatalog(provider, catalog, modelId) {
|
|
|
60
60
|
return modelId;
|
|
61
61
|
if (catalog[modelId] !== undefined)
|
|
62
62
|
return modelId;
|
|
63
|
-
|
|
63
|
+
const validModels = Object.keys(catalog).join(', ');
|
|
64
|
+
throw new types_1.InvalidProviderModelError(`Invalid model "${modelId}" for provider "${provider}". Valid models: ${validModels}.`);
|
|
64
65
|
}
|
|
65
66
|
function classifyBaseProviderError(error, retryablePatterns, permanentPatterns) {
|
|
66
67
|
return (0, errors_1.classifyErrorWithPatterns)(error, [...(0, errors_1.baseRetryableErrorPatterns)(), ...retryablePatterns], [...(0, errors_1.basePermanentErrorPatterns)(), ...permanentPatterns]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/common.ts"],"names":[],"mappings":";;AAuBA,8CAKC;AAED,kCAqBC;AAED,0BAEC;AAED,8EAYC;AAED,sCAEC;AAUD,gEAUC;AAED,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-options.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/contract-options.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,2BAA2B,EAM5B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"contract-options.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/contract-options.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,2BAA2B,EAM5B,MAAM,SAAS,CAAC;AAyDjB,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CAY1E"}
|
|
@@ -7,7 +7,7 @@ const contract_env_1 = require("./contract-env");
|
|
|
7
7
|
const gateway_tools_1 = require("./gateway-tools");
|
|
8
8
|
const OUTPUT_FORMATS = ['text', 'json', 'stream-json'];
|
|
9
9
|
const MODEL_LEVELS = ['level1', 'level2', 'level3'];
|
|
10
|
-
const REASONING_EFFORTS = ['low', 'medium', 'high', 'xhigh'];
|
|
10
|
+
const REASONING_EFFORTS = ['low', 'medium', 'high', 'xhigh', 'max'];
|
|
11
11
|
const CLI_FEATURE_FIELDS = [
|
|
12
12
|
'supportsOutputFormat',
|
|
13
13
|
'supportsStreamJson',
|
|
@@ -16,6 +16,7 @@ const CLI_FEATURE_FIELDS = [
|
|
|
16
16
|
'supportsIncludePartials',
|
|
17
17
|
'supportsVerbose',
|
|
18
18
|
'supportsModel',
|
|
19
|
+
'supportsEffort',
|
|
19
20
|
'supportsJson',
|
|
20
21
|
'supportsOutputSchema',
|
|
21
22
|
'supportsDir',
|