@adamancyzhang/claude-orchestrator 0.2.8 → 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.
Files changed (62) hide show
  1. package/dist/cli/commands.d.ts +8 -4
  2. package/dist/cli/commands.js +111 -162
  3. package/dist/cli/commands.js.map +1 -1
  4. package/dist/config.d.ts +6 -0
  5. package/dist/config.js +11 -2
  6. package/dist/config.js.map +1 -1
  7. package/dist/index.js +71 -28
  8. package/dist/index.js.map +1 -1
  9. package/dist/leader/event-bus.d.ts +11 -0
  10. package/dist/leader/event-bus.js +21 -0
  11. package/dist/leader/event-bus.js.map +1 -0
  12. package/dist/leader/index.d.ts +7 -0
  13. package/dist/leader/index.js +86 -0
  14. package/dist/leader/index.js.map +1 -0
  15. package/dist/leader/monitor.d.ts +14 -0
  16. package/dist/leader/monitor.js +55 -0
  17. package/dist/leader/monitor.js.map +1 -0
  18. package/dist/leader/orchestrator.d.ts +14 -0
  19. package/dist/leader/orchestrator.js +83 -0
  20. package/dist/leader/orchestrator.js.map +1 -0
  21. package/dist/leader/recovery.d.ts +9 -0
  22. package/dist/leader/recovery.js +46 -0
  23. package/dist/leader/recovery.js.map +1 -0
  24. package/dist/leader/state.d.ts +23 -0
  25. package/dist/leader/state.js +85 -0
  26. package/dist/leader/state.js.map +1 -0
  27. package/dist/leader/tui.d.ts +5 -0
  28. package/dist/leader/tui.js +133 -0
  29. package/dist/leader/tui.js.map +1 -0
  30. package/dist/leader/watcher.d.ts +16 -0
  31. package/dist/leader/watcher.js +77 -0
  32. package/dist/leader/watcher.js.map +1 -0
  33. package/dist/models/schemas.d.ts +64 -17
  34. package/dist/models/schemas.js +29 -3
  35. package/dist/models/schemas.js.map +1 -1
  36. package/dist/modules/message-router.d.ts +2 -0
  37. package/dist/modules/message-router.js +17 -0
  38. package/dist/modules/message-router.js.map +1 -1
  39. package/dist/modules/task-queue.d.ts +4 -1
  40. package/dist/modules/task-queue.js +87 -9
  41. package/dist/modules/task-queue.js.map +1 -1
  42. package/dist/templates/leader.md +10 -0
  43. package/dist/templates/worker.md +8 -0
  44. package/dist/utils/exec.d.ts +3 -0
  45. package/dist/utils/exec.js +20 -0
  46. package/dist/utils/exec.js.map +1 -0
  47. package/dist/worker/watcher.d.ts +16 -0
  48. package/dist/worker/watcher.js +82 -0
  49. package/dist/worker/watcher.js.map +1 -0
  50. package/dist/zk/client.d.ts +5 -0
  51. package/dist/zk/client.js +18 -1
  52. package/dist/zk/client.js.map +1 -1
  53. package/dist/zk/paths.d.ts +2 -0
  54. package/dist/zk/paths.js +4 -0
  55. package/dist/zk/paths.js.map +1 -1
  56. package/package.json +3 -6
  57. package/dist/modules/message-watcher.d.ts +0 -12
  58. package/dist/modules/message-watcher.js +0 -133
  59. package/dist/modules/message-watcher.js.map +0 -1
  60. package/dist/server.d.ts +0 -2
  61. package/dist/server.js +0 -490
  62. package/dist/server.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  export declare function cmdStatus(zkHosts: string): Promise<void>;
2
- export declare function cmdRegister(zkHosts: string, instanceId: string | undefined, name?: string, role?: string): Promise<void>;
2
+ export declare function cmdRegister(zkHosts: string, instanceId: string | undefined, name?: string, role?: string, workDir?: string): Promise<void>;
3
3
  export declare function cmdHeartbeat(zkHosts: string, cliInstanceId: string | undefined, currentTask?: string): Promise<void>;
4
4
  export declare function cmdListInstances(zkHosts: string): Promise<void>;
5
5
  export declare function cmdPushTask(zkHosts: string, cliInstanceId: string | undefined, title: string, description: string, priority: number, assignee?: string): Promise<void>;
@@ -19,10 +19,14 @@ export declare function cmdWatchContext(zkHosts: string, key: string): Promise<v
19
19
  export declare function cmdWatchTasks(zkHosts: string): Promise<void>;
20
20
  export declare function cmdUnregister(zkHosts: string, cliInstanceId: string | undefined): Promise<void>;
21
21
  export declare function cmdSetup(options: {
22
- port: string;
23
- host: string;
22
+ leader: boolean;
24
23
  name?: string;
25
24
  role?: string;
25
+ cacheDir?: string;
26
+ command?: string;
26
27
  global: boolean;
27
- withHook: boolean;
28
+ instanceId?: string;
28
29
  }): Promise<void>;
30
+ export declare function cmdTaskBlock(zkHosts: string, cliInstanceId: string | undefined, taskId: string, reason: string): Promise<void>;
31
+ export declare function cmdTaskFail(zkHosts: string, cliInstanceId: string | undefined, taskId: string, reason: string): Promise<void>;
32
+ export declare function cmdTaskRetry(zkHosts: string, _cliInstanceId: string | undefined, taskId: string): Promise<void>;
@@ -1,14 +1,14 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import * as os from "node:os";
4
- import * as http from "node:http";
3
+ import { fileURLToPath } from "node:url";
5
4
  import { ZkClient } from "../zk/client.js";
6
5
  import { InstanceRegistry } from "../modules/registry.js";
7
6
  import { TaskQueue } from "../modules/task-queue.js";
8
7
  import { MessageRouter } from "../modules/message-router.js";
9
8
  import { ContextStore } from "../modules/context-store.js";
10
- import { resolveInstanceId, saveInstanceId, saveInstanceConfig, loadInstanceConfig, loadInstanceId } from "../config.js";
9
+ import { resolveInstanceId, saveInstanceId, saveInstanceConfig, loadInstanceConfig, loadInstanceId, loadGlobalConfig } from "../config.js";
11
10
  import { output } from "../utils/output.js";
11
+ import { WorkerWatcher } from "../worker/watcher.js";
12
12
  async function withZk(hosts, fn) {
13
13
  const zk = new ZkClient(hosts);
14
14
  await zk.connect();
@@ -23,77 +23,6 @@ async function withZk(hosts, fn) {
23
23
  await zk.disconnect();
24
24
  }
25
25
  }
26
- function registerViaHttp(host, port, name, role, instanceId) {
27
- const body = JSON.stringify({ name, role, instance_id: instanceId });
28
- return new Promise((resolve, reject) => {
29
- const req = http.request({
30
- hostname: host,
31
- port: parseInt(port, 10),
32
- path: "/register",
33
- method: "POST",
34
- headers: {
35
- "Content-Type": "application/json",
36
- "Content-Length": Buffer.byteLength(body),
37
- },
38
- timeout: 5000,
39
- }, (res) => {
40
- let data = "";
41
- res.on("data", (chunk) => (data += chunk));
42
- res.on("end", () => {
43
- if (res.statusCode === 200) {
44
- try {
45
- resolve(JSON.parse(data));
46
- }
47
- catch {
48
- reject(new Error(`Invalid JSON response: ${data}`));
49
- }
50
- }
51
- else {
52
- reject(new Error(`HTTP ${res.statusCode}: ${data}`));
53
- }
54
- });
55
- });
56
- req.on("error", reject);
57
- req.on("timeout", () => {
58
- req.destroy();
59
- reject(new Error("timeout"));
60
- });
61
- req.write(body);
62
- req.end();
63
- });
64
- }
65
- function unregisterViaHttp(host, port, instanceId) {
66
- const body = JSON.stringify({ instance_id: instanceId });
67
- return new Promise((resolve, reject) => {
68
- const req = http.request({
69
- hostname: host,
70
- port: parseInt(port, 10),
71
- path: "/unregister",
72
- method: "POST",
73
- headers: {
74
- "Content-Type": "application/json",
75
- "Content-Length": Buffer.byteLength(body),
76
- },
77
- timeout: 5000,
78
- }, (res) => {
79
- if (res.statusCode === 200) {
80
- resolve();
81
- }
82
- else {
83
- let data = "";
84
- res.on("data", (chunk) => (data += chunk));
85
- res.on("end", () => reject(new Error(`HTTP ${res.statusCode}: ${data}`)));
86
- }
87
- });
88
- req.on("error", reject);
89
- req.on("timeout", () => {
90
- req.destroy();
91
- reject(new Error("timeout"));
92
- });
93
- req.write(body);
94
- req.end();
95
- });
96
- }
97
26
  export async function cmdStatus(zkHosts) {
98
27
  await withZk(zkHosts, async ({ zk, registry }) => {
99
28
  const connected = zk.connected;
@@ -105,7 +34,7 @@ export async function cmdStatus(zkHosts) {
105
34
  });
106
35
  });
107
36
  }
108
- export async function cmdRegister(zkHosts, instanceId, name, role) {
37
+ export async function cmdRegister(zkHosts, instanceId, name, role, workDir) {
109
38
  const config = loadInstanceConfig();
110
39
  const resolvedName = name || config.name;
111
40
  if (!resolvedName) {
@@ -114,19 +43,44 @@ export async function cmdRegister(zkHosts, instanceId, name, role) {
114
43
  }
115
44
  const resolvedRole = role || config.role || "general";
116
45
  const resolvedId = instanceId || loadInstanceId() || undefined;
117
- // Try MCP server REST endpoint first (uses server's persistent ZK connection)
118
- const host = config.host || "127.0.0.1";
119
- const port = config.port || "3100";
120
- try {
121
- const instance = await registerViaHttp(host, port, resolvedName, resolvedRole, resolvedId);
46
+ // ── Mode 1: with work_dir persistent local watcher ──
47
+ if (workDir) {
48
+ const zk = new ZkClient(zkHosts);
49
+ await zk.connect();
50
+ const registry = new InstanceRegistry(zk);
51
+ const instance = await registry.register(resolvedName, resolvedRole, resolvedId);
122
52
  saveInstanceId(instance.id);
123
53
  saveInstanceConfig({ name: resolvedName, role: resolvedRole });
124
54
  output(instance);
55
+ // Resolve leader instance ID for CACHE_DIR path
56
+ const leaderData = await zk.getLeader();
57
+ const leaderInstanceId = leaderData?.instance_id ?? instance.id;
58
+ // Get config defaults
59
+ const globalConfig = loadGlobalConfig();
60
+ const command = globalConfig.command || "claude --dangerously-skip-permissions -v";
61
+ const cacheDir = globalConfig.cache_dir || "~/.claude-orchestrator/sessions";
62
+ const watcher = new WorkerWatcher(zk, instance.id, workDir, command, cacheDir, leaderInstanceId);
63
+ const onSigint = () => {
64
+ watcher.stop();
65
+ };
66
+ process.on("SIGINT", onSigint);
67
+ await watcher.start();
68
+ // Block until stopped
69
+ await new Promise((resolve) => {
70
+ const check = setInterval(() => {
71
+ if (watcher.stopped) {
72
+ clearInterval(check);
73
+ resolve();
74
+ }
75
+ }, 200);
76
+ });
77
+ await registry.unregister(instance.id);
78
+ await zk.disconnect();
79
+ process.removeListener("SIGINT", onSigint);
80
+ console.log("Unregistered. Goodbye.");
125
81
  return;
126
82
  }
127
- catch {
128
- // Server not reachable — fall back to direct ZK
129
- }
83
+ // ── Mode 2: no work_dir → one-shot register ──
130
84
  await withZk(zkHosts, async ({ registry }) => {
131
85
  const instance = await registry.register(resolvedName, resolvedRole, resolvedId);
132
86
  saveInstanceId(instance.id);
@@ -293,96 +247,91 @@ export async function cmdWatchTasks(zkHosts) {
293
247
  }
294
248
  export async function cmdUnregister(zkHosts, cliInstanceId) {
295
249
  const instanceId = resolveInstanceId(cliInstanceId);
296
- // Try MCP server REST endpoint first
297
- const config = loadInstanceConfig();
298
- const host = config.host || "127.0.0.1";
299
- const port = config.port || "3100";
300
- try {
301
- await unregisterViaHttp(host, port, instanceId);
302
- output({ status: "unregistered", instance_id: instanceId });
303
- return;
304
- }
305
- catch {
306
- // Server not reachable — fall back to direct ZK
307
- }
308
250
  await withZk(zkHosts, async ({ registry }) => {
309
251
  await registry.unregister(instanceId);
310
252
  output({ status: "unregistered", instance_id: instanceId });
311
253
  });
312
254
  }
255
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
313
256
  export async function cmdSetup(options) {
314
- const { port, host, name, role, global: isGlobal, withHook } = options;
315
- const claudeDir = isGlobal
316
- ? path.join(os.homedir(), ".claude")
317
- : path.join(process.cwd(), ".claude");
318
- const mcpFile = path.join(claudeDir, "mcp.json");
319
- const entry = {
320
- type: "http",
321
- url: `http://${host}:${port}/mcp`,
322
- };
323
- if (name) {
324
- const headers = {
325
- "X-Instance-Name": name,
326
- };
327
- if (role) {
328
- headers["X-Instance-Role"] = role;
329
- }
330
- entry["headers"] = headers;
257
+ const { leader, name, role, cacheDir, command, global: isGlobal } = options;
258
+ const resolvedRole = leader ? "leader" : (role || "general");
259
+ const resolvedName = name || (leader ? "Leader" : undefined);
260
+ const defaultCommand = "claude --dangerously-skip-permissions -v";
261
+ const defaultCacheDir = "~/.claude-orchestrator/sessions";
262
+ // ── Write global config with command and cache_dir ──
263
+ const existingGlobal = loadGlobalConfig();
264
+ saveInstanceConfig({
265
+ command: command || existingGlobal.command || defaultCommand,
266
+ cache_dir: cacheDir || existingGlobal.cache_dir || defaultCacheDir,
267
+ }, true);
268
+ if (isGlobal) {
269
+ output({
270
+ status: "configured",
271
+ global: true,
272
+ config: loadGlobalConfig(),
273
+ message: "Global config written. Run with --leader or in a project to create templates and project config.",
274
+ });
275
+ return;
331
276
  }
332
- // Write .claude/mcp.json
333
- let mcpConfig = {};
334
- if (fs.existsSync(mcpFile)) {
335
- try {
336
- mcpConfig = JSON.parse(fs.readFileSync(mcpFile, "utf-8"));
337
- }
338
- catch {
339
- output({ error: `Failed to parse existing ${mcpFile}` }, true);
340
- return;
277
+ // ── Write project config ──
278
+ const projectConfig = {};
279
+ if (resolvedName)
280
+ projectConfig["name"] = resolvedName;
281
+ projectConfig["role"] = resolvedRole;
282
+ saveInstanceConfig(projectConfig, false);
283
+ // ── Copy templates to .claude-orchestrator/agents/ ──
284
+ const templateDir = path.join(__dirname, "..", "templates");
285
+ const agentsDir = path.join(process.cwd(), ".claude-orchestrator", "agents");
286
+ const templates = {
287
+ "leader.md": path.join(templateDir, "leader.md"),
288
+ "worker.md": path.join(templateDir, "worker.md"),
289
+ };
290
+ const written = [];
291
+ const skipped = [];
292
+ for (const [filename, srcPath] of Object.entries(templates)) {
293
+ const destPath = path.join(agentsDir, filename);
294
+ fs.mkdirSync(agentsDir, { recursive: true });
295
+ if (fs.existsSync(destPath)) {
296
+ skipped.push(filename);
341
297
  }
342
- }
343
- mcpConfig.mcpServers = mcpConfig.mcpServers || {};
344
- mcpConfig.mcpServers["orchestrator"] = entry;
345
- fs.mkdirSync(claudeDir, { recursive: true });
346
- fs.writeFileSync(mcpFile, JSON.stringify(mcpConfig, null, 2) + "\n");
347
- // Save instance config for auto-registration
348
- if (name || role) {
349
- saveInstanceConfig({ name, role, port, host }, isGlobal);
350
- }
351
- // Optionally create SessionStart + Stop hooks
352
- if (withHook) {
353
- const settingsFile = path.join(claudeDir, "settings.json");
354
- let settings = {};
355
- if (fs.existsSync(settingsFile)) {
356
- try {
357
- settings = JSON.parse(fs.readFileSync(settingsFile, "utf-8"));
358
- }
359
- catch {
360
- output({ error: `Failed to parse existing ${settingsFile}` }, true);
361
- return;
362
- }
298
+ else {
299
+ const content = fs.readFileSync(srcPath, "utf-8");
300
+ fs.writeFileSync(destPath, content);
301
+ written.push(filename);
363
302
  }
364
- settings.hooks = settings.hooks || {};
365
- const addHook = (hookType, command) => {
366
- const existing = (settings.hooks[hookType] || []);
367
- const alreadyExists = existing.some((h) => {
368
- const hooks = h?.hooks;
369
- return hooks?.[0]?.command === command;
370
- });
371
- if (!alreadyExists) {
372
- existing.push({ matcher: "", hooks: [{ type: "command", command }] });
373
- settings.hooks[hookType] = existing;
374
- }
375
- };
376
- addHook("SessionStart", "claude-orchestrator register");
377
- addHook("SessionEnd", "claude-orchestrator unregister");
378
- fs.writeFileSync(settingsFile, JSON.stringify(settings, null, 2) + "\n");
379
303
  }
380
- output({
304
+ const result = {
381
305
  status: "configured",
382
- file: mcpFile,
383
- entry,
384
- ...(withHook ? { hooks: ["SessionStart: claude-orchestrator register", "SessionEnd: claude-orchestrator unregister"] } : {}),
385
- ...(name ? { instance_config: `saved to ${isGlobal ? "~/.claude-orchestrator" : ".claude-orchestrator"}/config.json` } : {}),
306
+ project_config: path.join(process.cwd(), ".claude-orchestrator", "config.json"),
307
+ templates_dir: agentsDir,
308
+ };
309
+ if (written.length > 0)
310
+ result["templates_written"] = written;
311
+ if (skipped.length > 0)
312
+ result["templates_skipped"] = skipped;
313
+ if (!resolvedName)
314
+ result["warning"] = "No name provided. Use --name to set instance name.";
315
+ output(result);
316
+ }
317
+ export async function cmdTaskBlock(zkHosts, cliInstanceId, taskId, reason) {
318
+ await withZk(zkHosts, async ({ taskQueue }) => {
319
+ const instanceId = resolveInstanceId(cliInstanceId);
320
+ const task = await taskQueue.block(instanceId, taskId, reason);
321
+ output(task);
322
+ });
323
+ }
324
+ export async function cmdTaskFail(zkHosts, cliInstanceId, taskId, reason) {
325
+ await withZk(zkHosts, async ({ taskQueue }) => {
326
+ const instanceId = resolveInstanceId(cliInstanceId);
327
+ const task = await taskQueue.fail(instanceId, taskId, reason);
328
+ output(task);
329
+ });
330
+ }
331
+ export async function cmdTaskRetry(zkHosts, _cliInstanceId, taskId) {
332
+ await withZk(zkHosts, async ({ taskQueue }) => {
333
+ const task = await taskQueue.retry(taskId);
334
+ output(task);
386
335
  });
387
336
  }
388
337
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,7 +1,11 @@
1
+ export declare const GLOBAL_CONFIG_DIR: string;
2
+ export declare const GLOBAL_CONFIG_FILE: string;
1
3
  export interface InstanceConfig {
2
4
  instance_id?: string;
3
5
  name?: string;
4
6
  role?: string;
7
+ command?: string;
8
+ cache_dir?: string;
5
9
  port?: string;
6
10
  host?: string;
7
11
  }
@@ -21,4 +25,6 @@ export declare function saveInstanceConfig(config: InstanceConfig, global?: bool
21
25
  export declare function loadInstanceConfig(): InstanceConfig;
22
26
  export declare function saveInstanceId(instanceId: string, global?: boolean): void;
23
27
  export declare function loadInstanceId(): string | null;
28
+ export declare function loadGlobalConfig(): InstanceConfig;
29
+ export declare function expandHomeDir(p: string): string;
24
30
  export declare function resolveInstanceId(cliInstanceId?: string): string;
package/dist/config.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import * as os from "node:os";
4
- const GLOBAL_CONFIG_DIR = path.join(os.homedir(), ".claude-orchestrator");
5
- const GLOBAL_CONFIG_FILE = path.join(GLOBAL_CONFIG_DIR, "config.json");
4
+ export const GLOBAL_CONFIG_DIR = path.join(os.homedir(), ".claude-orchestrator");
5
+ export const GLOBAL_CONFIG_FILE = path.join(GLOBAL_CONFIG_DIR, "config.json");
6
6
  function projectConfigDir() {
7
7
  return path.join(process.cwd(), ".claude-orchestrator");
8
8
  }
@@ -51,6 +51,15 @@ export function loadInstanceId() {
51
51
  const config = loadInstanceConfig();
52
52
  return config.instance_id || null;
53
53
  }
54
+ export function loadGlobalConfig() {
55
+ return readConfigFile(GLOBAL_CONFIG_FILE);
56
+ }
57
+ export function expandHomeDir(p) {
58
+ if (p.startsWith("~")) {
59
+ return path.join(os.homedir(), p.slice(1));
60
+ }
61
+ return p;
62
+ }
54
63
  export function resolveInstanceId(cliInstanceId) {
55
64
  const resolved = cliInstanceId || loadInstanceId();
56
65
  if (!resolved) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
- import { loadConfig, loadInstanceId } from "./config.js";
4
- import { cmdStatus, cmdRegister, cmdHeartbeat, cmdListInstances, cmdPushTask, cmdClaimTask, cmdCompleteTask, cmdListTasks, cmdSendMessage, cmdPollMessages, cmdWaitForMessage, cmdDismissMessage, cmdRequestHelp, cmdSetContext, cmdGetContext, cmdDeleteContext, cmdListContextKeys, cmdWatchContext, cmdWatchTasks, cmdUnregister, cmdSetup, } from "./cli/commands.js";
3
+ import { loadInstanceId, loadGlobalConfig } from "./config.js";
4
+ import { cmdStatus, cmdRegister, cmdHeartbeat, cmdListInstances, cmdPushTask, cmdClaimTask, cmdCompleteTask, cmdListTasks, cmdSendMessage, cmdPollMessages, cmdWaitForMessage, cmdDismissMessage, cmdRequestHelp, cmdSetContext, cmdGetContext, cmdDeleteContext, cmdListContextKeys, cmdWatchContext, cmdWatchTasks, cmdUnregister, cmdSetup, cmdTaskBlock, cmdTaskFail, cmdTaskRetry, } from "./cli/commands.js";
5
5
  import { output } from "./utils/output.js";
6
6
  import { readFileSync } from "node:fs";
7
7
  import { fileURLToPath } from "node:url";
@@ -42,14 +42,15 @@ program
42
42
  });
43
43
  program
44
44
  .command("register")
45
- .description("Register this instance with the orchestrator")
45
+ .description("Register this instance and listen for messages (Ctrl+C to stop)")
46
46
  .option("--name <name>", "Display name (reads from config if omitted)")
47
47
  .option("--role <role>", "Instance role (reads from config if omitted)")
48
+ .option("--work-dir <path>", "Working directory for claude -p message processing")
48
49
  .action(async function () {
49
50
  try {
50
- const { name, role } = getSubOpts(this);
51
+ const { name, role, workDir } = getSubOpts(this);
51
52
  const { zookeeper, instanceId } = getOpts(this);
52
- await cmdRegister(zookeeper, instanceId, name, role);
53
+ await cmdRegister(zookeeper, instanceId, name, role, workDir);
53
54
  }
54
55
  catch (e) {
55
56
  output({ error: String(e) }, true);
@@ -127,7 +128,7 @@ program
127
128
  program
128
129
  .command("list-tasks")
129
130
  .description("List tasks, optionally filtered by status")
130
- .option("--status <status>", "Filter: pending, claimed, completed")
131
+ .option("--status <status>", "Filter: pending, claimed, in_progress, completed, blocked, failed")
131
132
  .action(async function () {
132
133
  try {
133
134
  const { status } = getSubOpts(this);
@@ -314,37 +315,79 @@ program
314
315
  });
315
316
  program
316
317
  .command("setup")
317
- .description("Configure Claude Code MCP connection in the working directory")
318
- .option("--port <port>", "Orchestrator server port (default: 3100)", "3100")
319
- .option("--host <host>", "Orchestrator server host (default: 127.0.0.1)", "127.0.0.1")
320
- .option("--name <name>", "Instance name for X-Instance-Name header")
321
- .option("--role <role>", "Instance role for X-Instance-Role header")
322
- .option("--global", "Write to ~/.claude/mcp.json instead of local .claude/mcp.json", false)
323
- .option("--with-hook", "Add SessionStart hook to auto-register on Claude Code startup", false)
318
+ .description("Initialize orchestrator environment and agent templates")
319
+ .option("--leader", "Initialize as Leader environment", false)
320
+ .option("--name <name>", "Instance display name")
321
+ .option("--role <role>", "Instance role (developer/tester/architect/general)")
322
+ .option("--cache-dir <path>", "Shared cache directory (default: ~/.claude-orchestrator/sessions)")
323
+ .option("--command <cmd>", "Claude CLI command (default: claude --dangerously-skip-permissions -v)")
324
+ .option("--global", "Write config only to ~/.claude-orchestrator/", false)
324
325
  .action(async function () {
325
- const { port, host, name, role, global: isGlobal, withHook } = getSubOpts(this);
326
- await cmdSetup({ port, host, name, role, global: isGlobal, withHook });
326
+ const { leader, name, role, cacheDir, command, global: isGlobal } = getSubOpts(this);
327
+ const { instanceId } = getOpts(this);
328
+ await cmdSetup({ leader, name, role, cacheDir, command, global: isGlobal, instanceId });
327
329
  });
328
330
  program
329
- .command("server")
330
- .description("Start MCP server")
331
- .option("--port <port>", "Server port (env: ORCHESTRATOR_PORT)", process.env.ORCHESTRATOR_PORT || "3100")
332
- .option("--host <host>", "Server host (env: ORCHESTRATOR_HOST)", process.env.ORCHESTRATOR_HOST || "127.0.0.1")
333
- .option("--name <name>", "Instance name for the server")
334
- .option("--role <role>", "Instance role for the server")
331
+ .command("task-block")
332
+ .description("Mark a claimed task as blocked")
333
+ .requiredOption("--task-id <id>", "Task ID")
334
+ .requiredOption("--reason <text>", "Blocking reason")
335
335
  .action(async function () {
336
- const { port, host, name, role } = getSubOpts(this);
337
- const { zookeeper } = getOpts(this);
338
- const { startServer } = await import("./server.js");
339
- const config = loadConfig({ zookeeper, port, host });
340
336
  try {
341
- await startServer(config);
337
+ const { taskId, reason } = getSubOpts(this);
338
+ const { zookeeper, instanceId } = getOpts(this);
339
+ await cmdTaskBlock(zookeeper, instanceId, taskId, reason);
340
+ }
341
+ catch (e) {
342
+ output({ error: String(e) }, true);
343
+ }
344
+ });
345
+ program
346
+ .command("task-fail")
347
+ .description("Mark a claimed task as failed")
348
+ .requiredOption("--task-id <id>", "Task ID")
349
+ .requiredOption("--reason <text>", "Failure reason")
350
+ .action(async function () {
351
+ try {
352
+ const { taskId, reason } = getSubOpts(this);
353
+ const { zookeeper, instanceId } = getOpts(this);
354
+ await cmdTaskFail(zookeeper, instanceId, taskId, reason);
355
+ }
356
+ catch (e) {
357
+ output({ error: String(e) }, true);
358
+ }
359
+ });
360
+ program
361
+ .command("task-retry")
362
+ .description("Re-queue a failed task for retry")
363
+ .requiredOption("--task-id <id>", "Task ID to retry")
364
+ .action(async function () {
365
+ try {
366
+ const { taskId } = getSubOpts(this);
367
+ const { zookeeper, instanceId } = getOpts(this);
368
+ await cmdTaskRetry(zookeeper, instanceId, taskId);
342
369
  }
343
370
  catch (e) {
344
- console.error("Failed to start server:", e);
345
- process.exit(1);
371
+ output({ error: String(e) }, true);
346
372
  }
347
373
  });
374
+ program
375
+ .command("leader")
376
+ .description("Start Leader node (TUI orchestration console)")
377
+ .option("--name <name>", "Leader display name")
378
+ .action(async function () {
379
+ const { name } = getSubOpts(this);
380
+ const { zookeeper, instanceId } = getOpts(this);
381
+ const { startLeader } = await import("./leader/index.js");
382
+ const globalConfig = loadGlobalConfig();
383
+ await startLeader({
384
+ zkHosts: zookeeper,
385
+ name,
386
+ instanceId,
387
+ command: globalConfig.command,
388
+ cacheDir: globalConfig.cache_dir,
389
+ });
390
+ });
348
391
  // ── Main entry ──
349
392
  async function main() {
350
393
  program.parse();