@autodidacticon/orchestrator 0.1.0 → 0.3.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.
- package/README.md +60 -33
- package/dist/src/agent/mcp-shim.js +1 -1
- package/dist/src/agent/server.js +11 -6
- package/dist/src/agent/server.js.map +1 -1
- package/dist/src/brief/compose.js +8 -1
- package/dist/src/brief/compose.js.map +1 -1
- package/dist/src/config.js +23 -3
- package/dist/src/config.js.map +1 -1
- package/dist/src/graph/load.js +4 -0
- package/dist/src/graph/load.js.map +1 -1
- package/dist/src/import/mapping.js +29 -5
- package/dist/src/import/mapping.js.map +1 -1
- package/dist/src/index.js +8 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/launch/launch.js +5 -1
- package/dist/src/launch/launch.js.map +1 -1
- package/dist/src/log.js +20 -0
- package/dist/src/log.js.map +1 -0
- package/dist/src/loop/orchestrator.js +94 -3
- package/dist/src/loop/orchestrator.js.map +1 -1
- package/dist/src/loop/tick.js +2 -1
- package/dist/src/loop/tick.js.map +1 -1
- package/dist/src/main.js +115 -33
- package/dist/src/main.js.map +1 -1
- package/dist/src/operator/cli.js +40 -2
- package/dist/src/operator/cli.js.map +1 -1
- package/dist/src/operator/mcp-server.js +41 -9
- package/dist/src/operator/mcp-server.js.map +1 -1
- package/dist/src/operator/mcp.js +1 -1
- package/dist/src/operator/routes.js +62 -5
- package/dist/src/operator/routes.js.map +1 -1
- package/dist/src/runner/claude-code.js +1 -1
- package/dist/src/runner/claude-code.js.map +1 -1
- package/dist/src/runner/command.js +24 -0
- package/dist/src/runner/command.js.map +1 -0
- package/dist/src/runner/selection.js +20 -0
- package/dist/src/runner/selection.js.map +1 -0
- package/dist/src/runner/subprocess.js +7 -1
- package/dist/src/runner/subprocess.js.map +1 -1
- package/dist/src/runs/childEnv.js +32 -0
- package/dist/src/runs/childEnv.js.map +1 -0
- package/dist/src/runs/lifecycle.js +102 -5
- package/dist/src/runs/lifecycle.js.map +1 -1
- package/dist/src/runs/resolve.js +217 -0
- package/dist/src/runs/resolve.js.map +1 -0
- package/dist/src/runs/runDir.js +63 -13
- package/dist/src/runs/runDir.js.map +1 -1
- package/dist/src/state/store.js.map +1 -1
- package/dist/src/toolchain/branch.js +19 -0
- package/dist/src/toolchain/branch.js.map +1 -0
- package/dist/src/toolchain/detect.js +115 -0
- package/dist/src/toolchain/detect.js.map +1 -0
- package/dist/src/toolchain/tools.js +56 -0
- package/dist/src/toolchain/tools.js.map +1 -0
- package/dist/src/verify/verifier.js +9 -3
- package/dist/src/verify/verifier.js.map +1 -1
- package/hosts/claude-code/.claude-plugin/plugin.json +1 -1
- package/hosts/claude-code/package-lock.json +1247 -0
- package/hosts/claude-code/package.json +1 -1
- package/hosts/claude-code/skills/import/SKILL.md +66 -14
- package/hosts/claude-code/skills/run/SKILL.md +83 -21
- package/hosts/claude-code/skills/work/SKILL.md +25 -6
- package/hosts/claude-code/workflows/work.js +23 -9
- package/package.json +1 -1
package/dist/src/main.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* Daemon entrypoint.
|
|
4
|
-
* orchestrator --config orchestrator.yaml [--reap-on-exit]
|
|
4
|
+
* orchestrator [--repo <path>] [--config orchestrator.yaml] [--reap-on-exit] [--mode m] [--default-mode m] [--set key=value]...
|
|
5
5
|
* SIGTERM/SIGINT: graceful stop (agents keep running for adoption) unless --reap-on-exit.
|
|
6
6
|
*/
|
|
7
|
-
import { readFileSync } from 'node:fs';
|
|
7
|
+
import { readFileSync, writeFileSync } from 'node:fs';
|
|
8
8
|
import { mkdir } from 'node:fs/promises';
|
|
9
9
|
import { parse as parseYaml } from 'yaml';
|
|
10
10
|
import path from 'node:path';
|
|
@@ -18,26 +18,36 @@ import { registerOperatorRoutes } from './operator/routes.js';
|
|
|
18
18
|
import { ClaudeCodeRunner } from './runner/claude-code.js';
|
|
19
19
|
import { SqliteStore } from './state/sqlite.js';
|
|
20
20
|
import { GitVerifierBackend } from './verify/verifier.js';
|
|
21
|
-
import { ensureRunDir, readRepoConfigRaw, resolveRepoPath, resolveRunConfig, runIdFor, writeDaemonJson, writeExitRecord } from './runs/runDir.js';
|
|
21
|
+
import { DAEMON_PID, ensureRunDir, readRepoConfigRaw, resolveFileConfig, resolveRepoPath, resolveRunConfig, runIdFor, writeConfigJson, writeDaemonJson, writeExitRecord } from './runs/runDir.js';
|
|
22
|
+
import { configSummary, mergeOverrides, parseSetFlags, readOverrides, reportOf } from './runs/resolve.js';
|
|
22
23
|
import { digestOf } from './operator/routes.js';
|
|
23
24
|
import { runIdOf, setRunId } from './state/store.js';
|
|
24
25
|
import { randomUUID } from 'node:crypto';
|
|
25
26
|
import { revParse } from './workspace/git.js';
|
|
26
27
|
import { GitWorkspace } from './workspace/git-workspace.js';
|
|
27
28
|
import { isEntrypoint } from './entry.js';
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
import { makeStderrLogger } from './log.js';
|
|
30
|
+
/** Text by default; one JSON object per line with ORCH_LOG_FORMAT=json. */
|
|
31
|
+
export const stderrLogger = makeStderrLogger();
|
|
32
|
+
/** How long a signalled shutdown may wait for the in-flight tick and verifier job before exiting anyway. */
|
|
33
|
+
const SHUTDOWN_GRACE_MS = 8_000;
|
|
33
34
|
export const USAGE = `orchestrator: the daemon.
|
|
34
35
|
|
|
35
|
-
orchestrator [--repo <path>] [--config orchestrator.yaml] [--reap-on-exit] [--mode spawn|pull|mixed] [--default-mode spawn|pull|mixed]
|
|
36
|
+
orchestrator [--repo <path>] [--config orchestrator.yaml] [--reap-on-exit] [--mode spawn|pull|mixed] [--default-mode spawn|pull|mixed] [--set key=value]...
|
|
36
37
|
|
|
37
38
|
With --repo (or inside a repository), run data lives under ORCH_HOME
|
|
38
39
|
(~/.orchestrator) keyed by the repository path, and <repo>/orchestrator.yaml is
|
|
39
40
|
read when present. With --config, the file's dataDir and graphPath are used.
|
|
40
41
|
|
|
42
|
+
No file is needed: the check command, the integration branch, and the tools
|
|
43
|
+
agents may run are detected from the repository root, and every value records
|
|
44
|
+
where it came from (argument, file, pinned, detected, default) in
|
|
45
|
+
<runDir>/config.json and in status. --set key=value stores a durable override
|
|
46
|
+
for the run before resolving; keys: checkCommand, integrationBranch (start-only),
|
|
47
|
+
capacity, allowedTools (a JSON array, or one rule per flag), runnerCommand. An
|
|
48
|
+
unknown key or a bad value is a usage error (exit 2). While checkCommand is
|
|
49
|
+
unresolved, submitted work is held until it is set (orchestrator-ctl config).
|
|
50
|
+
|
|
41
51
|
Runs one orchestration for one repository: loads the graph file, launches
|
|
42
52
|
agents up to capacity, verifies and publishes their work, and serves the agent
|
|
43
53
|
and operator APIs on loopback. SIGTERM stops it gracefully; agents keep running
|
|
@@ -55,6 +65,7 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
55
65
|
'reap-on-exit': { type: 'boolean', default: false },
|
|
56
66
|
mode: { type: 'string' },
|
|
57
67
|
'default-mode': { type: 'string' },
|
|
68
|
+
set: { type: 'string', multiple: true },
|
|
58
69
|
help: { type: 'boolean', short: 'h', default: false },
|
|
59
70
|
},
|
|
60
71
|
});
|
|
@@ -62,22 +73,34 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
62
73
|
process.stdout.write(USAGE);
|
|
63
74
|
return;
|
|
64
75
|
}
|
|
65
|
-
let
|
|
76
|
+
let flags;
|
|
77
|
+
try {
|
|
78
|
+
flags = parseSetFlags(values.set ?? []);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
process.stderr.write(`${err instanceof Error ? err.message : String(err)}\n\n${USAGE}`);
|
|
82
|
+
process.exit(2);
|
|
83
|
+
}
|
|
66
84
|
let runId;
|
|
67
85
|
let fileSetsMode = false;
|
|
86
|
+
let dataDir;
|
|
87
|
+
let resolveWith;
|
|
68
88
|
if (values.config) {
|
|
69
|
-
|
|
70
|
-
|
|
89
|
+
const file = values.config;
|
|
90
|
+
dataDir = (await loadConfig(file)).dataDir;
|
|
91
|
+
fileSetsMode = rawRunnerMode(file) !== undefined;
|
|
92
|
+
resolveWith = (opts) => resolveFileConfig(file, opts);
|
|
71
93
|
}
|
|
72
94
|
else {
|
|
73
95
|
const repo = await resolveRepoPath({ repo: values.repo });
|
|
74
96
|
ensureRunDir(repo);
|
|
75
|
-
|
|
97
|
+
dataDir = (await resolveRunConfig(repo, process.env, { detect: false })).config.dataDir;
|
|
76
98
|
runId = runIdFor(repo);
|
|
77
99
|
fileSetsMode = readRepoConfigRaw(repo)?.['runner']?.mode !== undefined;
|
|
100
|
+
resolveWith = (opts) => resolveRunConfig(repo, process.env, opts);
|
|
78
101
|
}
|
|
79
|
-
await mkdir(
|
|
80
|
-
const store = new SqliteStore(path.join(
|
|
102
|
+
await mkdir(dataDir, { recursive: true });
|
|
103
|
+
const store = new SqliteStore(path.join(dataDir, 'store.sqlite'));
|
|
81
104
|
// The run id names this run in tracker comments; by repository under a run directory, otherwise once per store.
|
|
82
105
|
if (runId)
|
|
83
106
|
setRunId(store, runId);
|
|
@@ -96,21 +119,58 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
96
119
|
if (!store.getKv('runner.mode') && !fileSetsMode)
|
|
97
120
|
store.setKv('runner.mode', mode);
|
|
98
121
|
}
|
|
99
|
-
|
|
122
|
+
// Arguments are durable overrides: merged over the store's document for resolution and persisted once the start is accepted, so a restart without flags keeps them and a refused start leaves nothing behind. See specs/toolchain-discovery "Resolution order and provenance".
|
|
123
|
+
const overrides = mergeOverrides(readOverrides(store), flags);
|
|
124
|
+
const pinned = store.getKv('integrationBranch') || undefined;
|
|
125
|
+
const resolved = await resolveWith({ overrides, pinned });
|
|
126
|
+
const config = resolved.config;
|
|
127
|
+
// The branch the run first used is pinned; only an explicit layer can name another one, and only on an untouched run. See specs/toolchain-discovery "Integration branch detection and pinning".
|
|
128
|
+
if (pinned && config.integrationBranch !== pinned) {
|
|
129
|
+
const launches = store.listLaunches().length;
|
|
130
|
+
const jobs = store.listJobs().length;
|
|
131
|
+
if (launches || jobs) {
|
|
132
|
+
const msg = `integration branch change refused: this run is pinned to ${pinned} and ${resolved.provenance.integrationBranch === 'file' ? 'orchestrator.yaml' : 'an argument'} names ${config.integrationBranch}; keep ${pinned} for this run (start without --set integrationBranch, or remove the key from orchestrator.yaml), or start from a fresh run directory to use ${config.integrationBranch}`;
|
|
133
|
+
stderrLogger.error(msg, { pinned, requested: config.integrationBranch, source: resolved.provenance.integrationBranch, launches, jobs });
|
|
134
|
+
store.close();
|
|
135
|
+
throw new Error(msg);
|
|
136
|
+
}
|
|
137
|
+
stderrLogger.info('integration branch re-pinned on an untouched run', { from: pinned, to: config.integrationBranch, source: resolved.provenance.integrationBranch });
|
|
138
|
+
store.setKv('integrationBranch', config.integrationBranch);
|
|
100
139
|
store.setKv('baselineHead', await revParse(config.repoPath, config.integrationBranch));
|
|
101
|
-
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
if (!pinned)
|
|
143
|
+
store.setKv('integrationBranch', config.integrationBranch);
|
|
144
|
+
if (!store.getKv('baselineHead'))
|
|
145
|
+
store.setKv('baselineHead', await revParse(config.repoPath, config.integrationBranch));
|
|
146
|
+
}
|
|
147
|
+
if (Object.keys(flags).length)
|
|
148
|
+
store.setKv('config.overrides', JSON.stringify(overrides));
|
|
149
|
+
const report = reportOf(resolved, Date.now());
|
|
150
|
+
writeConfigJson(dataDir, report);
|
|
151
|
+
store.appendEvent({ kind: 'config.resolved', payload: configSummary(report) }, Date.now());
|
|
152
|
+
stderrLogger.info('configuration resolved', configSummary(report));
|
|
153
|
+
// The runner command, its allow list, and the check command are read from the effective configuration at every spawn and at every job start. See specs/toolchain-discovery "Runtime overrides and start-only keys".
|
|
154
|
+
let orch;
|
|
155
|
+
const runner = new ClaudeCodeRunner({
|
|
156
|
+
command: () => orch.effective().config.runnerCommand,
|
|
157
|
+
allowedTools: () => orch.effective().allowedTools.value,
|
|
158
|
+
logDir: path.join(config.dataDir, 'logs'),
|
|
159
|
+
retryWindowMs: config.retryWindowMs,
|
|
160
|
+
});
|
|
102
161
|
const workspace = new GitWorkspace(config.repoPath, config.integrationBranch, path.join(config.dataDir, 'worktrees'));
|
|
103
162
|
const verifier = new GitVerifierBackend({
|
|
104
163
|
repo: config.repoPath,
|
|
105
164
|
integrationBranch: config.integrationBranch,
|
|
106
165
|
tempRoot: path.join(config.dataDir, 'verify'),
|
|
107
|
-
checkCommand: config.checkCommand,
|
|
166
|
+
checkCommand: () => orch.effective().config.checkCommand,
|
|
108
167
|
checkTimeoutMs: config.checkTimeoutMs,
|
|
109
168
|
baselineSha: store.getKv('baselineHead'),
|
|
110
169
|
});
|
|
111
|
-
|
|
170
|
+
orch = new Orchestrator({
|
|
112
171
|
store,
|
|
113
172
|
config,
|
|
173
|
+
resolved,
|
|
114
174
|
graphSource: new FileGraphSource(config.graphPath),
|
|
115
175
|
runner,
|
|
116
176
|
workspace,
|
|
@@ -118,49 +178,71 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
118
178
|
briefValidator: new SlotValidator(config.briefSlots),
|
|
119
179
|
log: stderrLogger,
|
|
120
180
|
});
|
|
181
|
+
orch.onConfigChanged = (r) => {
|
|
182
|
+
try {
|
|
183
|
+
writeConfigJson(dataDir, r);
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
stderrLogger.warn('could not write config.json', { err: String(err) });
|
|
187
|
+
}
|
|
188
|
+
};
|
|
121
189
|
const server = new ApiServer(orch);
|
|
122
190
|
registerOperatorRoutes(server, orch);
|
|
123
191
|
// Reuse the recorded port when the config does not pin one, so agents launched before a restart reconnect.
|
|
124
192
|
const recorded = Number(store.getKv('apiPort') ?? 0);
|
|
193
|
+
// The advertised URL is apiBaseUrl when set (a cluster Service), else the bind address. See specs/cluster-runtime.
|
|
194
|
+
const listenOpts = { bind: config.apiBind, baseUrl: config.apiBaseUrl };
|
|
125
195
|
let url;
|
|
126
196
|
try {
|
|
127
|
-
url = await server.listen(config.apiPort || recorded);
|
|
197
|
+
url = await server.listen(config.apiPort || recorded, listenOpts);
|
|
128
198
|
}
|
|
129
199
|
catch (err) {
|
|
130
200
|
if (config.apiPort)
|
|
131
201
|
throw err;
|
|
132
202
|
stderrLogger.warn('recorded port unavailable, picking a new one', { recorded, err: String(err) });
|
|
133
|
-
url = await server.listen(0);
|
|
203
|
+
url = await server.listen(0, listenOpts);
|
|
134
204
|
}
|
|
135
205
|
store.setKv('apiBaseUrl', url);
|
|
136
206
|
store.setKv('apiPort', String(server.port));
|
|
207
|
+
// The daemon writes its own pid file as well, so a run directory nobody spawned from (a container) carries both files; in a container they are inert. See specs/operator-control "Container mode".
|
|
208
|
+
writeFileSync(path.join(config.dataDir, DAEMON_PID), `${process.pid}\n`, 'utf8');
|
|
137
209
|
writeDaemonJson(config.dataDir, { pid: process.pid, url, port: server.port, startedAt: Date.now(), repo: config.repoPath });
|
|
138
210
|
stderrLogger.info('listening', { url, pid: process.pid, dataDir: config.dataDir });
|
|
139
211
|
let stopping = false;
|
|
140
|
-
const shutdown = async (cause) => {
|
|
212
|
+
const shutdown = async (cause, by) => {
|
|
141
213
|
if (stopping)
|
|
142
214
|
return;
|
|
143
215
|
stopping = true;
|
|
144
216
|
const reap = Boolean(values['reap-on-exit']);
|
|
145
|
-
stderrLogger.info('shutting down', { cause, reap });
|
|
146
|
-
await orch.stop({ reap });
|
|
147
|
-
await server.close();
|
|
148
217
|
// The exit record says why the daemon is gone; a dead pid without one is a crash. See specs/operator-control "Exit record".
|
|
149
218
|
const reason = cause === 'idle' ? 'idle' : cause === 'route' ? 'stop' : 'signal';
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
219
|
+
const recordExit = () => {
|
|
220
|
+
try {
|
|
221
|
+
writeExitRecord(config.dataDir, { at: Date.now(), reason, reap, digest: digestOf(orch), ...(by ? { by } : {}) });
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
stderrLogger.warn('could not write the exit record', { err: String(err) });
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
stderrLogger.info('shutting down', { cause, reap, ...(by ? { by } : {}) });
|
|
228
|
+
// A container runtime kills the process after its grace period; a check still running past ours is abandoned and restarts from queued on the next start. See specs/crash-recovery.
|
|
229
|
+
setTimeout(() => {
|
|
230
|
+
stderrLogger.warn('shutdown grace elapsed; exiting with work in flight', { graceMs: SHUTDOWN_GRACE_MS });
|
|
231
|
+
recordExit();
|
|
232
|
+
process.exit(0);
|
|
233
|
+
}, SHUTDOWN_GRACE_MS).unref();
|
|
234
|
+
await orch.stop({ reap });
|
|
235
|
+
await server.close();
|
|
236
|
+
recordExit();
|
|
156
237
|
store.close();
|
|
238
|
+
stderrLogger.info('stopped', { cause, reason });
|
|
157
239
|
process.exit(0);
|
|
158
240
|
};
|
|
159
241
|
process.on('SIGTERM', () => void shutdown('SIGTERM'));
|
|
160
242
|
process.on('SIGINT', () => void shutdown('SIGINT'));
|
|
161
|
-
orch.requestShutdown = (reason, reap) => {
|
|
243
|
+
orch.requestShutdown = (reason, reap, by) => {
|
|
162
244
|
values['reap-on-exit'] = Boolean(reap) || Boolean(values['reap-on-exit']);
|
|
163
|
-
void shutdown(reason === 'idle' ? 'idle' : 'route');
|
|
245
|
+
void shutdown(reason === 'idle' ? 'idle' : 'route', by);
|
|
164
246
|
};
|
|
165
247
|
await orch.start();
|
|
166
248
|
}
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/src/operator/cli.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Operator CLI over the daemon's HTTP API.
|
|
4
4
|
* orchestrator-ctl status
|
|
5
|
+
* orchestrator-ctl config [--check-command <cmd>] [--capacity <n>] [--allow <rule>]... [--runner-command <cmd>] [--model <name>] [--effort <level>] [--clear <key>]...
|
|
5
6
|
* orchestrator-ctl answer <task> <text>
|
|
6
7
|
* orchestrator-ctl cancel <task> [--release] [--reason <text>]
|
|
7
8
|
* orchestrator-ctl reopen <task> [--cascade]
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
import path from 'node:path';
|
|
25
26
|
import { parseArgs } from 'node:util';
|
|
26
27
|
import { daemonState, listRuns, reviveDaemon, startDaemon, stopDaemon } from '../runs/lifecycle.js';
|
|
28
|
+
import { parseSetFlags } from '../runs/resolve.js';
|
|
27
29
|
import { resolveRepoPath, runPaths } from '../runs/runDir.js';
|
|
28
30
|
import { SqliteStore } from '../state/sqlite.js';
|
|
29
31
|
import { isEntrypoint } from '../entry.js';
|
|
@@ -75,10 +77,14 @@ export async function call(base, method, route, body) {
|
|
|
75
77
|
}
|
|
76
78
|
export const USAGE = `orchestrator-ctl: operate a running orchestrator.
|
|
77
79
|
|
|
78
|
-
orchestrator-ctl start [--repo <path>]
|
|
80
|
+
orchestrator-ctl start [--repo <path>] [--set key=value]... start the daemon for a repository (idempotent);
|
|
81
|
+
--set checkCommand=..., integrationBranch=..., capacity=..., allowedTools=..., runnerCommand=..., model=..., effort=...
|
|
79
82
|
orchestrator-ctl stop [--reap] [--repo <path>]
|
|
80
83
|
orchestrator-ctl runs list runs under ORCH_HOME
|
|
81
84
|
orchestrator-ctl status
|
|
85
|
+
orchestrator-ctl config the resolved configuration: every key with its value and source, the toolchain, needsConfig
|
|
86
|
+
orchestrator-ctl config [--check-command <cmd>] [--capacity <n>] [--allow <rule>]... [--runner-command <cmd>] [--model <name>] [--effort <level>] [--clear <key>]...
|
|
87
|
+
model and effort are the worker defaults (claude-opus-5-5 at medium); effort is low, medium, high, xhigh, or max
|
|
82
88
|
orchestrator-ctl answer <task> <text>
|
|
83
89
|
orchestrator-ctl cancel <task> [--release] [--reason <text>]
|
|
84
90
|
orchestrator-ctl reopen <task> [--cascade] cascade resets started dependents and returns the plan
|
|
@@ -132,11 +138,19 @@ export async function runCli(argv) {
|
|
|
132
138
|
payload: { type: 'string' },
|
|
133
139
|
task: { type: 'string' },
|
|
134
140
|
access: { type: 'string' },
|
|
141
|
+
set: { type: 'string', multiple: true },
|
|
142
|
+
'check-command': { type: 'string' },
|
|
143
|
+
capacity: { type: 'string' },
|
|
144
|
+
allow: { type: 'string', multiple: true },
|
|
145
|
+
'runner-command': { type: 'string' },
|
|
146
|
+
model: { type: 'string' },
|
|
147
|
+
effort: { type: 'string' },
|
|
148
|
+
clear: { type: 'string', multiple: true },
|
|
135
149
|
},
|
|
136
150
|
});
|
|
137
151
|
const [cmd, a, ...rest] = positionals;
|
|
138
152
|
if (cmd === 'start') {
|
|
139
|
-
const r = await startDaemon({ repo: values.repo });
|
|
153
|
+
const r = await startDaemon({ repo: values.repo, ...(values.set?.length ? { overrides: parseSetFlags(values.set) } : {}) });
|
|
140
154
|
return { status: 200, body: r };
|
|
141
155
|
}
|
|
142
156
|
if (cmd === 'stop') {
|
|
@@ -150,6 +164,30 @@ export async function runCli(argv) {
|
|
|
150
164
|
switch (cmd) {
|
|
151
165
|
case 'status':
|
|
152
166
|
return call(base, 'GET', '/v1/status');
|
|
167
|
+
case 'config': {
|
|
168
|
+
// One PUT for every flag given; `--allow` appends to the rules already set by argument. See specs/operator-control "Configuration route".
|
|
169
|
+
const patch = {};
|
|
170
|
+
for (const k of values.clear ?? [])
|
|
171
|
+
patch[k] = null;
|
|
172
|
+
if (values['check-command'] !== undefined)
|
|
173
|
+
patch['checkCommand'] = values['check-command'];
|
|
174
|
+
if (values.capacity !== undefined)
|
|
175
|
+
patch['capacity'] = Number(values.capacity);
|
|
176
|
+
if (values['runner-command'] !== undefined)
|
|
177
|
+
patch['runnerCommand'] = values['runner-command'];
|
|
178
|
+
if (values.model !== undefined)
|
|
179
|
+
patch['model'] = values.model;
|
|
180
|
+
if (values.effort !== undefined)
|
|
181
|
+
patch['effort'] = values.effort;
|
|
182
|
+
if (values.allow?.length) {
|
|
183
|
+
const cur = await call(base, 'GET', '/v1/config');
|
|
184
|
+
const existing = patch['allowedTools'] === null ? [] : (cur.body.overrides?.allowedTools ?? []);
|
|
185
|
+
patch['allowedTools'] = [...existing, ...values.allow.filter((r) => !existing.includes(r))];
|
|
186
|
+
}
|
|
187
|
+
if (!Object.keys(patch).length)
|
|
188
|
+
return call(base, 'GET', '/v1/config');
|
|
189
|
+
return call(base, 'PUT', '/v1/config', patch);
|
|
190
|
+
}
|
|
153
191
|
case 'answer':
|
|
154
192
|
return call(base, 'POST', `/v1/tasks/${a}/answer`, { text: rest.join(' ') });
|
|
155
193
|
case 'cancel':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/operator/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/operator/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@ import { z } from 'zod';
|
|
|
7
7
|
import { mapIssues, ImportError, importOptionsSchema, issueRecordSchema, trackerSchema } from '../import/mapping.js';
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
9
9
|
import { ancestorPids } from '../runs/ancestry.js';
|
|
10
|
-
import { daemonState, listRuns, reviveDaemon, startDaemon, stopDaemon } from '../runs/lifecycle.js';
|
|
10
|
+
import { daemonState, listRuns, remoteDaemonUrl, reviveDaemon, startDaemon, stopDaemon } from '../runs/lifecycle.js';
|
|
11
|
+
import { EFFORT_LEVELS } from '../runner/selection.js';
|
|
11
12
|
import { resolveRepoPath, runPaths } from '../runs/runDir.js';
|
|
12
13
|
/** The cap keeps every tool call under Claude Code's two-minute foreground limit; ORCH_WAIT_CAP_MS shortens it for tests. */
|
|
13
14
|
export const WAIT_CAP_MS = Number(process.env['ORCH_WAIT_CAP_MS'] ?? 90_000);
|
|
@@ -19,6 +20,7 @@ export const TOOL_NAMES = [
|
|
|
19
20
|
'answer', 'cancel', 'reopen', 'unblock', 'accept', 'reject', 'pause', 'resume', 'logs',
|
|
20
21
|
'outbox', 'ack', 'nudge', 'proposals', 'accept_proposal', 'reject_proposal',
|
|
21
22
|
'claim', 'release', 'launch_heartbeat', 'launch_report', 'launch_block', 'launch_inbox', 'launch_log',
|
|
23
|
+
'configure',
|
|
22
24
|
];
|
|
23
25
|
export function clampWait(ms) {
|
|
24
26
|
if (ms === undefined || !Number.isFinite(ms))
|
|
@@ -54,6 +56,12 @@ export class OperatorClient {
|
|
|
54
56
|
}
|
|
55
57
|
/** The daemon's URL, reviving it after an idle exit or a crash; refused after an explicit stop or for a repository with no run directory. */
|
|
56
58
|
async url() {
|
|
59
|
+
// A remote daemon (ORCH_URL on a non-loopback host) is used as is, without an attachment (its pids are not ours); reviveDaemon reports it unreachable rather than spawning one here.
|
|
60
|
+
const remote = remoteDaemonUrl(this.ctx.env);
|
|
61
|
+
if (remote) {
|
|
62
|
+
await reviveDaemon({ env: this.ctx.env });
|
|
63
|
+
return remote;
|
|
64
|
+
}
|
|
57
65
|
const repo = await this.repo();
|
|
58
66
|
const paths = runPaths(repo, this.ctx.env);
|
|
59
67
|
const state = await daemonState(paths.runDir);
|
|
@@ -165,26 +173,50 @@ export async function startOperatorServer(argv, env = process.env) {
|
|
|
165
173
|
const client = new OperatorClient({ repo: values.repo, env });
|
|
166
174
|
const { McpServer } = await import('@modelcontextprotocol/sdk/server/mcp.js');
|
|
167
175
|
const { StdioServerTransport } = await import('@modelcontextprotocol/sdk/server/stdio.js');
|
|
168
|
-
const server = new McpServer({ name: 'orchestrator-operator', version: '0.
|
|
176
|
+
const server = new McpServer({ name: 'orchestrator-operator', version: '0.3.0' });
|
|
169
177
|
const task = { task: z.string().describe('Task id as it appears in the graph, e.g. ENG-123') };
|
|
170
178
|
const milestone = { milestone: z.string().describe('Milestone id') };
|
|
171
179
|
server.registerTool('start', {
|
|
172
|
-
description: 'Start the daemon for this repository (idempotent). Returns url, pid, run directory, graph path,
|
|
173
|
-
inputSchema: {
|
|
174
|
-
|
|
180
|
+
description: 'Start the daemon for this repository (idempotent). Returns url, pid, run directory, graph path, the runner mode in force, and the resolved configuration: config (every key as { value, source }: argument, file, pinned, detected, default, or unresolved), toolchain (what detection found in the repository root), needsConfig (keys no layer supplied; checkCommand there means submitted work is held until it is set), and applied / rejected for the configuration arguments. mode: spawn (the daemon runs headless agents), pull (workers claim launches; this session works them through the run skill), or mixed; applied to a daemon already running too. Without mode, a run started from this plugin defaults to pull unless orchestrator.yaml sets runner.mode or the run chose a mode before; a running daemon keeps its mode. Configuration arguments become durable overrides for the run: passed to a daemon this call spawns, applied through the configuration route to one already running; integrationBranch is start-only and lands under rejected on a running daemon. After an idle exit or a crash every other tool revives the daemon by itself.',
|
|
181
|
+
inputSchema: {
|
|
182
|
+
mode: z.enum(['spawn', 'pull', 'mixed']).optional(),
|
|
183
|
+
checkCommand: z.string().optional().describe('The command the verifier runs on every rebased submission, e.g. "npm test".'),
|
|
184
|
+
integrationBranch: z.string().optional().describe('Start-only: the branch work is published to; pinned for the run once chosen.'),
|
|
185
|
+
capacity: z.number().int().optional().describe('Agents in parallel.'),
|
|
186
|
+
allowedTools: z.array(z.string()).optional().describe('Rules appended to the derived allow list for spawned agents, e.g. "Bash(docker:*)".'),
|
|
187
|
+
runnerCommand: z.string().optional().describe('The runner command template; {allowedTools}, {model}, and {effort} are filled at spawn.'),
|
|
188
|
+
model: z.string().optional().describe('The worker model for launches prepared from now on (default claude-opus-5-5); a task payload or a model:<name> label overrides it per task.'),
|
|
189
|
+
effort: z.enum(EFFORT_LEVELS).optional().describe('The worker effort for launches prepared from now on (default medium); a task payload or an effort:<level> label overrides it per task.'),
|
|
190
|
+
},
|
|
191
|
+
}, async (a) => guarded(async () => {
|
|
192
|
+
const { mode, ...rest } = a;
|
|
193
|
+
const overrides = Object.fromEntries(Object.entries(rest).filter(([, v]) => v !== undefined));
|
|
194
|
+
return { status: 200, body: await startDaemon({ repo: values.repo, env, mode, ...(mode ? {} : { defaultMode: 'pull' }), ...(Object.keys(overrides).length ? { overrides } : {}) }) };
|
|
195
|
+
}));
|
|
196
|
+
server.registerTool('configure', {
|
|
197
|
+
description: 'Set or clear configuration overrides on the running daemon through the configuration route: checkCommand (applies to every verifier job that starts checking afterwards), capacity (the next admission pass), allowedTools and runnerCommand (every launch spawned afterwards), model and effort (every launch prepared afterwards; defaults claude-opus-5-5 at medium; effort is low, medium, high, xhigh, or max; a task payload or a model:/effort: label overrides them per task). A value sets the key; null clears it so the value falls back to the file, detection, or the default. Returns the new config block with applied; a 400 names an invalid key and value, a 409 names a start-only key (integrationBranch belongs to start).',
|
|
198
|
+
inputSchema: {
|
|
199
|
+
checkCommand: z.string().nullable().optional(),
|
|
200
|
+
capacity: z.number().int().nullable().optional(),
|
|
201
|
+
allowedTools: z.array(z.string()).nullable().optional(),
|
|
202
|
+
runnerCommand: z.string().nullable().optional(),
|
|
203
|
+
model: z.string().nullable().optional(),
|
|
204
|
+
effort: z.enum(EFFORT_LEVELS).nullable().optional(),
|
|
205
|
+
},
|
|
206
|
+
}, async (a) => guarded(() => client.call('PUT', '/v1/config', Object.fromEntries(Object.entries(a).filter(([, v]) => v !== undefined)))));
|
|
175
207
|
server.registerTool('stop', { description: 'Stop the daemon. Agents keep running for adoption unless reap is true.', inputSchema: { reap: z.boolean().optional() } }, async (a) => guarded(async () => {
|
|
176
208
|
const r = await stopDaemon({ repo: values.repo, env, reap: a.reap });
|
|
177
209
|
return { status: r.stopped ? 200 : 409, body: r };
|
|
178
210
|
}));
|
|
179
|
-
server.registerTool('status', { description: 'Current run status: sets by state, stall roots, open questions, milestones awaiting review, run facts, stuck tasks, pause reason, cost and budgets, per-launch health (with interruptions, the kept releases a task absorbed), deferred: ready tasks held back because their scope overlaps a running, waiting, submitted, or claimable task (each with the ids it overlaps), idle: whether the daemon is quiescent and how long it has been idle against its exit window,
|
|
211
|
+
server.registerTool('status', { description: 'Current run status: sets by state, stall roots, open questions, milestones awaiting review, run facts, stuck tasks, pause reason, cost and budgets, per-launch health (with interruptions, the kept releases a task absorbed), deferred: ready tasks held back because their scope overlaps a running, waiting, submitted, or claimable task (each with the ids it overlaps), idle: whether the daemon is quiescent and how long it has been idle against its exit window, attachments: the sessions attached and the launches each holds, config: every configuration key as { value, source } (allowedTools with its parts and whether the runner command applies it; model and effort likewise, each live launch also listing its own model and effort), toolchain: the detection record for the repository root, and needsConfig: keys no layer supplied (checkCommand there holds submitted work until configure sets it). Present even before a graph is loaded.', inputSchema: {} }, async () => guarded(() => client.call('GET', '/v1/status')));
|
|
180
212
|
server.registerTool('runs', { description: 'List every run under ORCH_HOME with its repository, daemon liveness, and, for a daemon that is gone, its exit record (idle, stop, or signal with the last digest) or none after a crash.', inputSchema: {} }, async () => guarded(async () => ({ status: 200, body: { runs: await listRuns(env) } })));
|
|
181
213
|
server.registerTool('import_issues', {
|
|
182
|
-
description: 'Map normalized tracker issues to the run graph and import it. Children of root become tasks; blockedBy becomes deps; blockers outside the set, done, cancelled and in-progress issues become external nodes; root becomes a gated milestone. Acceptance criteria are parsed from the description under the configured heading.',
|
|
214
|
+
description: 'Map normalized tracker issues to the run graph and import it. Children of root become tasks; blockedBy becomes deps; blockers outside the set, done, cancelled and in-progress issues become external nodes (done and cancelled ones already satisfied); root becomes a gated milestone. Acceptance criteria are parsed from the description under the configured heading. Records come from any tracker the session can read: Linear, Jira, or GitHub Issues (ids GH-<number>, urls on every record).',
|
|
183
215
|
inputSchema: {
|
|
184
216
|
root: z.string(),
|
|
185
217
|
issues: z.array(issueRecordSchema),
|
|
186
218
|
options: importOptionsSchema.partial().optional(),
|
|
187
|
-
tracker: trackerSchema.optional().describe('The tracker these issues came from; recorded by the daemon so the run skill can mirror states and comments back.'),
|
|
219
|
+
tracker: trackerSchema.optional().describe('The tracker these issues came from; recorded by the daemon so the run skill can mirror states and comments back. kind linear | atlassian | github; workspace is the Linear workspace, the Jira site, or the GitHub owner/repo; inProgressLabel (github only) names the label that stands for in progress.'),
|
|
188
220
|
},
|
|
189
221
|
}, async (a) => guarded(async () => {
|
|
190
222
|
let mapped;
|
|
@@ -201,7 +233,7 @@ export async function startOperatorServer(argv, env = process.env) {
|
|
|
201
233
|
}));
|
|
202
234
|
server.registerTool('import_graph', { description: 'Import a graph file verbatim (YAML or JSON content) or as a node list.', inputSchema: { content: z.string().optional(), nodes: z.array(z.record(z.unknown())).optional() } }, async (a) => guarded(() => client.call('PUT', '/v1/graph', a)));
|
|
203
235
|
server.registerTool('wait', {
|
|
204
|
-
description: `Block until something happens. Returns events after afterSeq (default: now), the latest seq, and a digest (openQuestions, awaitingReview, finished, stalled, stuck, pausedReason, deferred: the count of ready tasks held back by scope overlap, outboxPending, trackerErrors). until: question | review | finished | stalled | any; any also returns on launch.stuck, launch.unstuck, and budget.exceeded. timeoutMs default ${WAIT_DEFAULT_MS}, cap ${WAIT_CAP_MS}. Loop on this instead of polling status.`,
|
|
236
|
+
description: `Block until something happens. Returns events after afterSeq (default: now), the latest seq, and a digest (openQuestions, awaitingReview, finished, stalled, stuck, pausedReason, deferred: the count of ready tasks held back by scope overlap, needsConfig: configuration keys still unresolved, with checkCommand meaning submitted work is held until configure sets it, outboxPending, trackerErrors). until: question | review | finished | stalled | any; any also returns on launch.stuck, launch.unstuck, and budget.exceeded. timeoutMs default ${WAIT_DEFAULT_MS}, cap ${WAIT_CAP_MS}. Loop on this instead of polling status.`,
|
|
205
237
|
inputSchema: { afterSeq: z.number().int().nonnegative().optional(), timeoutMs: z.number().int().nonnegative().optional(), until: z.enum(['question', 'review', 'finished', 'stalled', 'any']).optional() },
|
|
206
238
|
}, async (a) => guarded(() => client.wait(a)));
|
|
207
239
|
server.registerTool('review', { description: 'Review bundle for a submitted gated milestone: pinned sha, version, tag, diff stat, closure task summaries, acceptance criteria.', inputSchema: milestone }, async (a) => guarded(() => client.call('GET', `/v1/milestones/${encodeURIComponent(a.milestone)}/review`)));
|