@adamancyzhang/claude-orchestrator 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +179 -186
  2. package/dist/cli/commands.d.ts +6 -17
  3. package/dist/cli/commands.js +106 -172
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/config.d.ts +22 -14
  6. package/dist/config.js +47 -20
  7. package/dist/config.js.map +1 -1
  8. package/dist/index.js +110 -246
  9. package/dist/index.js.map +1 -1
  10. package/dist/leader/decision-engine.d.ts +35 -0
  11. package/dist/leader/decision-engine.js +102 -0
  12. package/dist/leader/decision-engine.js.map +1 -0
  13. package/dist/leader/index.js +12 -2
  14. package/dist/leader/index.js.map +1 -1
  15. package/dist/leader/recovery.d.ts +2 -0
  16. package/dist/leader/recovery.js +37 -22
  17. package/dist/leader/recovery.js.map +1 -1
  18. package/dist/leader/state.d.ts +2 -1
  19. package/dist/leader/state.js +39 -2
  20. package/dist/leader/state.js.map +1 -1
  21. package/dist/leader/task-generator.d.ts +34 -0
  22. package/dist/leader/task-generator.js +93 -0
  23. package/dist/leader/task-generator.js.map +1 -0
  24. package/dist/leader/tui.js +8 -5
  25. package/dist/leader/tui.js.map +1 -1
  26. package/dist/leader/watcher.d.ts +3 -1
  27. package/dist/leader/watcher.js +14 -2
  28. package/dist/leader/watcher.js.map +1 -1
  29. package/dist/models/schemas.d.ts +60 -96
  30. package/dist/models/schemas.js +27 -44
  31. package/dist/models/schemas.js.map +1 -1
  32. package/dist/modules/message-router.d.ts +1 -3
  33. package/dist/modules/message-router.js +3 -26
  34. package/dist/modules/message-router.js.map +1 -1
  35. package/dist/modules/registry.js +3 -3
  36. package/dist/modules/registry.js.map +1 -1
  37. package/dist/modules/task-queue.d.ts +1 -1
  38. package/dist/modules/task-queue.js +28 -2
  39. package/dist/modules/task-queue.js.map +1 -1
  40. package/dist/skills/CLAUDE.md +155 -0
  41. package/dist/skills/claude-code-developer/SKILL.md +325 -0
  42. package/dist/skills/claude-orchestrator/SKILL.md +180 -0
  43. package/dist/skills/task-acceptance/SKILL.md +201 -0
  44. package/dist/skills/task-execution/SKILL.md +142 -0
  45. package/dist/skills/task-planning/SKILL.md +188 -0
  46. package/dist/skills/task-review/SKILL.md +220 -0
  47. package/dist/skills/task-traceability/SKILL.md +154 -0
  48. package/dist/skills/task-verification/SKILL.md +194 -0
  49. package/dist/templates/leader-decide.md +59 -0
  50. package/dist/templates/leader-decompose.md +69 -0
  51. package/dist/templates/worker-accept.md +46 -0
  52. package/dist/templates/worker-build.md +45 -0
  53. package/dist/templates/worker-plan.md +43 -0
  54. package/dist/templates/worker-review.md +46 -0
  55. package/dist/templates/worker-verify.md +47 -0
  56. package/dist/utils/exec.d.ts +5 -0
  57. package/dist/utils/exec.js +25 -0
  58. package/dist/utils/exec.js.map +1 -1
  59. package/dist/worker/watcher.d.ts +3 -0
  60. package/dist/worker/watcher.js +72 -2
  61. package/dist/worker/watcher.js.map +1 -1
  62. package/dist/zk/client.d.ts +0 -5
  63. package/dist/zk/client.js +0 -27
  64. package/dist/zk/client.js.map +1 -1
  65. package/dist/zk/paths.d.ts +8 -10
  66. package/dist/zk/paths.js +1 -6
  67. package/dist/zk/paths.js.map +1 -1
  68. package/dist/zk/watcher.d.ts +0 -2
  69. package/dist/zk/watcher.js +0 -3
  70. package/dist/zk/watcher.js.map +1 -1
  71. package/package.json +2 -2
  72. package/dist/modules/context-store.d.ts +0 -10
  73. package/dist/modules/context-store.js +0 -25
  74. package/dist/modules/context-store.js.map +0 -1
  75. package/dist/templates/leader.md +0 -10
  76. package/dist/templates/worker.md +0 -8
@@ -5,106 +5,76 @@ import { ZkClient } from "../zk/client.js";
5
5
  import { InstanceRegistry } from "../modules/registry.js";
6
6
  import { TaskQueue } from "../modules/task-queue.js";
7
7
  import { MessageRouter } from "../modules/message-router.js";
8
- import { ContextStore } from "../modules/context-store.js";
9
- import { resolveInstanceId, saveInstanceId, saveInstanceConfig, loadInstanceConfig, loadInstanceId, loadGlobalConfig } from "../config.js";
8
+ import { loadConfig, loadInstanceConfig, saveInstanceConfig, saveInstanceId, loadInstanceId, loadGlobalConfig, resolveInstanceId } from "../config.js";
10
9
  import { output } from "../utils/output.js";
11
10
  import { WorkerWatcher } from "../worker/watcher.js";
11
+ const VALID_ROLES = ["planner", "builder", "verifier", "reviewer", "accepter", "leader"];
12
12
  async function withZk(hosts, fn) {
13
13
  const zk = new ZkClient(hosts);
14
14
  await zk.connect();
15
15
  const registry = new InstanceRegistry(zk);
16
16
  const taskQueue = new TaskQueue(zk);
17
17
  const messageRouter = new MessageRouter(zk);
18
- const contextStore = new ContextStore(zk);
19
18
  try {
20
- return await fn({ zk, registry, taskQueue, messageRouter, contextStore });
19
+ return await fn({ zk, registry, taskQueue, messageRouter });
21
20
  }
22
21
  finally {
23
22
  await zk.disconnect();
24
23
  }
25
24
  }
26
- export async function cmdStatus(zkHosts) {
27
- await withZk(zkHosts, async ({ zk, registry }) => {
28
- const connected = zk.connected;
29
- const instances = await registry.listAll();
30
- output({
31
- status: connected ? "healthy" : "degraded",
32
- zookeeper: connected ? "connected" : "disconnected",
33
- instances_online: instances.length,
34
- });
35
- });
36
- }
37
- export async function cmdRegister(zkHosts, instanceId, name, role, workDir) {
38
- const config = loadInstanceConfig();
39
- const resolvedName = name || config.name;
40
- if (!resolvedName) {
41
- output({ error: "No instance name provided. Use --name or run 'claude-orchestrator setup --name <name>' first." }, true);
25
+ export async function cmdRegister(zkHosts) {
26
+ // Read from project config only — no CLI args, no global fallback
27
+ const projectConfig = loadInstanceConfig();
28
+ const name = projectConfig.name;
29
+ const role = projectConfig.role;
30
+ if (!name) {
31
+ output({ error: "name is required in .claude-orchestrator/config.json" }, true);
42
32
  return;
43
33
  }
44
- const resolvedRole = role || config.role || "general";
45
- const resolvedId = instanceId || loadInstanceId() || undefined;
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);
52
- saveInstanceId(instance.id);
53
- saveInstanceConfig({ name: resolvedName, role: resolvedRole });
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.");
34
+ if (!role || !VALID_ROLES.includes(role)) {
35
+ output({
36
+ error: `invalid role '${role || "(missing)"}', must be one of: ${VALID_ROLES.join(", ")}`,
37
+ }, true);
81
38
  return;
82
39
  }
83
- // ── Mode 2: no work_dir → one-shot register ──
84
- await withZk(zkHosts, async ({ registry }) => {
85
- const instance = await registry.register(resolvedName, resolvedRole, resolvedId);
86
- saveInstanceId(instance.id);
87
- saveInstanceConfig({ name: resolvedName, role: resolvedRole });
88
- output(instance);
89
- });
90
- }
91
- export async function cmdHeartbeat(zkHosts, cliInstanceId, currentTask) {
92
- await withZk(zkHosts, async ({ registry }) => {
93
- const instanceId = resolveInstanceId(cliInstanceId);
94
- await registry.heartbeat(instanceId, currentTask);
95
- output({ status: "ok", instance_id: instanceId });
96
- });
97
- }
98
- export async function cmdListInstances(zkHosts) {
99
- await withZk(zkHosts, async ({ registry }) => {
100
- const instances = await registry.listAll();
101
- output(instances);
40
+ const resolvedConfig = loadConfig({});
41
+ const instanceId = projectConfig.instance_id || undefined;
42
+ const zk = new ZkClient(zkHosts);
43
+ await zk.connect();
44
+ const registry = new InstanceRegistry(zk);
45
+ const instance = await registry.register(name, role, instanceId);
46
+ saveInstanceId(instance.id);
47
+ if (!projectConfig.instance_id) {
48
+ saveInstanceConfig({ name, role, instance_id: instance.id });
49
+ }
50
+ output(instance);
51
+ // Resolve leader instance ID for CACHE_DIR path
52
+ const leaderData = await zk.getLeader();
53
+ const leaderInstanceId = leaderData?.instance_id ?? instance.id;
54
+ const watcher = new WorkerWatcher(zk, instance.id, process.cwd(), resolvedConfig.cliCommand, resolvedConfig.cacheDir, leaderInstanceId);
55
+ const onSigint = () => {
56
+ watcher.stop();
57
+ };
58
+ process.on("SIGINT", onSigint);
59
+ await watcher.start();
60
+ // Block until stopped
61
+ await new Promise((resolve) => {
62
+ const check = setInterval(() => {
63
+ if (watcher.stopped) {
64
+ clearInterval(check);
65
+ resolve();
66
+ }
67
+ }, 200);
102
68
  });
69
+ await registry.unregister(instance.id);
70
+ await zk.disconnect();
71
+ process.removeListener("SIGINT", onSigint);
72
+ console.log("Unregistered. Goodbye.");
103
73
  }
104
- export async function cmdPushTask(zkHosts, cliInstanceId, title, description, priority, assignee) {
74
+ export async function cmdPushTask(zkHosts, cliInstanceId, title, description, priority, assignee, link, chainId, dependsOn, blockedBy) {
105
75
  await withZk(zkHosts, async ({ taskQueue }) => {
106
76
  const instanceId = cliInstanceId ?? "";
107
- const task = await taskQueue.push(title, description, priority, instanceId, assignee);
77
+ const task = await taskQueue.push(title, description, priority, instanceId, assignee, undefined, undefined, link ?? null, chainId ?? null, dependsOn ?? [], blockedBy ?? []);
108
78
  output(task);
109
79
  });
110
80
  }
@@ -127,13 +97,13 @@ export async function cmdCompleteTask(zkHosts, cliInstanceId, taskId, result) {
127
97
  output(task);
128
98
  });
129
99
  }
130
- export async function cmdListTasks(zkHosts, statusFilter) {
100
+ export async function cmdPollTask(zkHosts, statusFilter) {
131
101
  await withZk(zkHosts, async ({ taskQueue }) => {
132
102
  const tasks = await taskQueue.listTasks(statusFilter);
133
103
  output(tasks);
134
104
  });
135
105
  }
136
- export async function cmdSendMessage(zkHosts, cliInstanceId, content, toInstance, broadcast = false, toName) {
106
+ export async function cmdSendMessage(zkHosts, cliInstanceId, content, toInstance, broadcast = false, toName, help = false) {
137
107
  await withZk(zkHosts, async ({ registry, messageRouter }) => {
138
108
  const instanceId = cliInstanceId || loadInstanceId() || "";
139
109
  let fromName;
@@ -144,105 +114,23 @@ export async function cmdSendMessage(zkHosts, cliInstanceId, content, toInstance
144
114
  else {
145
115
  fromName = "CLI";
146
116
  }
147
- const messages = await messageRouter.send(instanceId, fromName, content, toInstance, broadcast, toName);
117
+ const messages = await messageRouter.send(instanceId, fromName, content, toInstance, broadcast, toName, help);
148
118
  const targets = messages.map((m) => m.to_instance);
149
119
  output({ sent_to: targets, message_count: targets.length });
150
120
  });
151
121
  }
152
- export async function cmdPollMessages(zkHosts, cliInstanceId) {
122
+ export async function cmdPollMessage(zkHosts, cliInstanceId) {
153
123
  await withZk(zkHosts, async ({ messageRouter }) => {
154
124
  const instanceId = resolveInstanceId(cliInstanceId);
155
125
  const messages = await messageRouter.poll(instanceId);
156
126
  output(messages);
157
127
  });
158
128
  }
159
- export async function cmdWaitForMessage(zkHosts, cliInstanceId, timeout) {
160
- await withZk(zkHosts, async ({ messageRouter }) => {
161
- const instanceId = resolveInstanceId(cliInstanceId);
162
- const messages = await messageRouter.waitForMessage(instanceId, timeout);
163
- output(messages.length > 0 ? messages : { status: "timeout", message: "No messages received." });
164
- });
165
- }
166
- export async function cmdDismissMessage(zkHosts, cliInstanceId, messageId) {
129
+ export async function cmdDeleteMessage(zkHosts, cliInstanceId, messageId) {
167
130
  await withZk(zkHosts, async ({ messageRouter }) => {
168
131
  const instanceId = resolveInstanceId(cliInstanceId);
169
132
  await messageRouter.dismissMessage(instanceId, messageId);
170
- output({ status: "dismissed", message_id: messageId });
171
- });
172
- }
173
- export async function cmdRequestHelp(zkHosts, cliInstanceId, question, ctx) {
174
- await withZk(zkHosts, async ({ registry, messageRouter }) => {
175
- const instanceId = cliInstanceId || loadInstanceId() || "";
176
- let fromName;
177
- if (instanceId) {
178
- const inst = await registry.get(instanceId);
179
- fromName = inst?.name ?? instanceId.slice(0, 8);
180
- }
181
- else {
182
- fromName = "CLI";
183
- }
184
- const messages = await messageRouter.requestHelp(instanceId, fromName, question, ctx);
185
- const targets = messages.map((m) => m.to_instance);
186
- output({ sent_to: targets, message_count: targets.length });
187
- });
188
- }
189
- export async function cmdSetContext(zkHosts, cliInstanceId, key, value) {
190
- await withZk(zkHosts, async ({ contextStore }) => {
191
- const instanceId = cliInstanceId ?? "";
192
- const entry = await contextStore.set(key, value, instanceId);
193
- output(entry);
194
- });
195
- }
196
- export async function cmdGetContext(zkHosts, key) {
197
- await withZk(zkHosts, async ({ contextStore }) => {
198
- const value = await contextStore.get(key);
199
- if (value === null) {
200
- output({ key, value: null, status: "not_found" });
201
- }
202
- else {
203
- output({ key, value });
204
- }
205
- });
206
- }
207
- export async function cmdDeleteContext(zkHosts, key) {
208
- await withZk(zkHosts, async ({ contextStore }) => {
209
- await contextStore.delete(key);
210
- output({ key, status: "deleted" });
211
- });
212
- }
213
- export async function cmdListContextKeys(zkHosts) {
214
- await withZk(zkHosts, async ({ contextStore }) => {
215
- const keys = await contextStore.listKeys();
216
- output({ keys, count: keys.length });
217
- });
218
- }
219
- export async function cmdWatchContext(zkHosts, key) {
220
- await withZk(zkHosts, async ({ zk }) => {
221
- const value = await zk.watchContextKey(key, (newData) => {
222
- output({ key, value: newData?.value ?? null, event: "changed" });
223
- process.exit(0);
224
- });
225
- if (value === null) {
226
- output({ key, value: null, message: `Watching key '${key}' for changes... (Ctrl+C to stop)` });
227
- }
228
- else {
229
- output({ key, value: value.value, message: `Watching key '${key}' for changes... (Ctrl+C to stop)` });
230
- }
231
- // Keep process alive waiting for watch callback
232
- await new Promise(() => { });
233
- });
234
- }
235
- export async function cmdWatchTasks(zkHosts) {
236
- await withZk(zkHosts, async ({ zk }) => {
237
- const children = await zk.watchPendingTasks((newChildren) => {
238
- output({ event: "tasks_changed", pending_count: newChildren.length, tasks: newChildren });
239
- process.exit(0);
240
- });
241
- output({
242
- pending_count: children.length,
243
- message: "Watching for new tasks... (Ctrl+C to stop)",
244
- });
245
- await new Promise(() => { });
133
+ output({ status: "deleted", message_id: messageId });
246
134
  });
247
135
  }
248
136
  export async function cmdUnregister(zkHosts, cliInstanceId) {
@@ -255,15 +143,25 @@ export async function cmdUnregister(zkHosts, cliInstanceId) {
255
143
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
256
144
  export async function cmdSetup(options) {
257
145
  const { leader, name, role, cacheDir, command, global: isGlobal } = options;
258
- const resolvedRole = leader ? "leader" : (role || "general");
146
+ const resolvedRole = leader ? "leader" : (role || "builder");
259
147
  const resolvedName = name || (leader ? "Leader" : undefined);
260
- const defaultCommand = "claude --dangerously-skip-permissions -v";
148
+ const defaultCliCommand = "claude --dangerously-skip-permissions --permission-mode dontAsk";
261
149
  const defaultCacheDir = "~/.claude-orchestrator/sessions";
262
- // ── Write global config with command and cache_dir ──
150
+ // ── Write global config ──
263
151
  const existingGlobal = loadGlobalConfig();
152
+ const globalZk = existingGlobal.zookeeper || { url: "127.0.0.1:2181", root_path: "/claude-orchestrator", auth: null };
153
+ const prevCommands = existingGlobal.commands;
264
154
  saveInstanceConfig({
265
- command: command || existingGlobal.command || defaultCommand,
155
+ commands: {
156
+ "claude-cli": command || prevCommands?.["claude-cli"] || defaultCliCommand,
157
+ "leader-sync": prevCommands?.["leader-sync"] ?? null,
158
+ },
266
159
  cache_dir: cacheDir || existingGlobal.cache_dir || defaultCacheDir,
160
+ zookeeper: {
161
+ url: globalZk.url || "127.0.0.1:2181",
162
+ root_path: globalZk.root_path || "/claude-orchestrator",
163
+ auth: globalZk.auth ?? null,
164
+ },
267
165
  }, true);
268
166
  if (isGlobal) {
269
167
  output({
@@ -284,8 +182,13 @@ export async function cmdSetup(options) {
284
182
  const templateDir = path.join(__dirname, "..", "templates");
285
183
  const agentsDir = path.join(process.cwd(), ".claude-orchestrator", "agents");
286
184
  const templates = {
287
- "leader.md": path.join(templateDir, "leader.md"),
288
- "worker.md": path.join(templateDir, "worker.md"),
185
+ "leader-decompose.md": path.join(templateDir, "leader-decompose.md"),
186
+ "leader-decide.md": path.join(templateDir, "leader-decide.md"),
187
+ "worker-plan.md": path.join(templateDir, "worker-plan.md"),
188
+ "worker-build.md": path.join(templateDir, "worker-build.md"),
189
+ "worker-verify.md": path.join(templateDir, "worker-verify.md"),
190
+ "worker-review.md": path.join(templateDir, "worker-review.md"),
191
+ "worker-accept.md": path.join(templateDir, "worker-accept.md"),
289
192
  };
290
193
  const written = [];
291
194
  const skipped = [];
@@ -301,15 +204,46 @@ export async function cmdSetup(options) {
301
204
  written.push(filename);
302
205
  }
303
206
  }
207
+ // ── Copy skills to .claude/skills/ ──
208
+ const skillsSrcDir = path.join(__dirname, "..", "skills");
209
+ const skillsDstDir = path.join(process.cwd(), ".claude", "skills");
210
+ const skillsWritten = [];
211
+ const skillsSkipped = [];
212
+ if (fs.existsSync(skillsSrcDir)) {
213
+ const skillNames = fs.readdirSync(skillsSrcDir, { withFileTypes: true })
214
+ .filter(d => d.isDirectory())
215
+ .map(d => d.name);
216
+ for (const skillName of skillNames) {
217
+ const srcSkillPath = path.join(skillsSrcDir, skillName, "SKILL.md");
218
+ const dstSkillDir = path.join(skillsDstDir, skillName);
219
+ const dstSkillPath = path.join(dstSkillDir, "SKILL.md");
220
+ if (!fs.existsSync(srcSkillPath))
221
+ continue;
222
+ fs.mkdirSync(dstSkillDir, { recursive: true });
223
+ if (fs.existsSync(dstSkillPath)) {
224
+ skillsSkipped.push(skillName);
225
+ }
226
+ else {
227
+ const content = fs.readFileSync(srcSkillPath, "utf-8");
228
+ fs.writeFileSync(dstSkillPath, content);
229
+ skillsWritten.push(skillName);
230
+ }
231
+ }
232
+ }
304
233
  const result = {
305
234
  status: "configured",
306
235
  project_config: path.join(process.cwd(), ".claude-orchestrator", "config.json"),
307
236
  templates_dir: agentsDir,
237
+ skills_dir: skillsDstDir,
308
238
  };
309
239
  if (written.length > 0)
310
240
  result["templates_written"] = written;
311
241
  if (skipped.length > 0)
312
242
  result["templates_skipped"] = skipped;
243
+ if (skillsWritten.length > 0)
244
+ result["skills_written"] = skillsWritten;
245
+ if (skillsSkipped.length > 0)
246
+ result["skills_skipped"] = skillsSkipped;
313
247
  if (!resolvedName)
314
248
  result["warning"] = "No name provided. Use --name to set instance name.";
315
249
  output(result);
@@ -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,30 +1,38 @@
1
1
  export declare const GLOBAL_CONFIG_DIR: string;
2
2
  export declare const GLOBAL_CONFIG_FILE: string;
3
+ export interface ZkConfig {
4
+ url: string;
5
+ root_path: string;
6
+ auth: string | null;
7
+ }
8
+ export interface CommandsConfig {
9
+ "claude-cli"?: string;
10
+ "leader-sync"?: string | null;
11
+ }
3
12
  export interface InstanceConfig {
4
13
  instance_id?: string;
5
14
  name?: string;
6
15
  role?: string;
7
- command?: string;
16
+ commands?: CommandsConfig;
8
17
  cache_dir?: string;
9
- port?: string;
10
- host?: string;
18
+ zookeeper?: ZkConfig;
11
19
  }
12
- export interface Config {
13
- zkHosts: string;
14
- port: number;
15
- host: string;
20
+ export interface ResolvedConfig {
21
+ zk: ZkConfig;
22
+ cacheDir: string;
23
+ cliCommand: string;
24
+ leaderSync: string | null;
16
25
  instanceId?: string;
26
+ name?: string;
27
+ role?: string;
17
28
  }
18
29
  export declare function loadConfig(cliOpts: {
19
30
  zookeeper?: string;
20
- port?: string;
21
- host?: string;
22
- instanceId?: string;
23
- }): Config;
31
+ }): ResolvedConfig;
24
32
  export declare function saveInstanceConfig(config: InstanceConfig, global?: boolean): void;
25
33
  export declare function loadInstanceConfig(): InstanceConfig;
26
- export declare function saveInstanceId(instanceId: string, global?: boolean): void;
27
- export declare function loadInstanceId(): string | null;
28
34
  export declare function loadGlobalConfig(): InstanceConfig;
29
- export declare function expandHomeDir(p: string): string;
35
+ export declare function saveInstanceId(instanceId: string): void;
36
+ export declare function loadInstanceId(): string | null;
30
37
  export declare function resolveInstanceId(cliInstanceId?: string): string;
38
+ export declare function expandHomeDir(p: string): string;
package/dist/config.js CHANGED
@@ -9,14 +9,38 @@ function projectConfigDir() {
9
9
  function projectConfigFile() {
10
10
  return path.join(projectConfigDir(), "config.json");
11
11
  }
12
+ function defaultZkConfig() {
13
+ return { url: "127.0.0.1:2181", root_path: "/claude-orchestrator", auth: null };
14
+ }
15
+ function defaultCacheDir() {
16
+ return "~/.claude-orchestrator/sessions";
17
+ }
18
+ function defaultCliCommand() {
19
+ return "claude --dangerously-skip-permissions --permission-mode dontAsk";
20
+ }
12
21
  export function loadConfig(cliOpts) {
13
- const zkHosts = cliOpts.zookeeper ||
14
- process.env.ZK_HOSTS ||
15
- "127.0.0.1:2181";
16
- const port = parseInt(cliOpts.port || process.env.ORCHESTRATOR_PORT || "3100", 10);
17
- const host = cliOpts.host || process.env.ORCHESTRATOR_HOST || "127.0.0.1";
18
- const instanceId = cliOpts.instanceId || loadInstanceId() || undefined;
19
- return { zkHosts, port, host, instanceId };
22
+ const global = loadGlobalConfig();
23
+ const project = loadProjectConfig();
24
+ // ZK config from global, with CLI/env override for url
25
+ const zk = {
26
+ ...defaultZkConfig(),
27
+ ...global.zookeeper,
28
+ };
29
+ if (cliOpts.zookeeper) {
30
+ zk.url = cliOpts.zookeeper;
31
+ }
32
+ else if (process.env.ZK_HOSTS) {
33
+ zk.url = process.env.ZK_HOSTS;
34
+ }
35
+ const cacheDir = global.cache_dir || defaultCacheDir();
36
+ // Command: project overrides global
37
+ const mergedCommands = project.commands || global.commands;
38
+ const cliCommand = mergedCommands?.["claude-cli"] || defaultCliCommand();
39
+ const leaderSync = mergedCommands?.["leader-sync"] ?? null;
40
+ const instanceId = project.instance_id;
41
+ const name = project.name;
42
+ const role = project.role;
43
+ return { zk, cacheDir, cliCommand, leaderSync, instanceId, name, role };
20
44
  }
21
45
  function readConfigFile(filePath) {
22
46
  try {
@@ -40,26 +64,23 @@ export function saveInstanceConfig(config, global = false) {
40
64
  writeConfigFile(filePath, { ...existing, ...config });
41
65
  }
42
66
  export function loadInstanceConfig() {
43
- const project = readConfigFile(projectConfigFile());
44
- const global = readConfigFile(GLOBAL_CONFIG_FILE);
67
+ const project = loadProjectConfig();
68
+ const global = loadGlobalConfig();
45
69
  return { ...global, ...project };
46
70
  }
47
- export function saveInstanceId(instanceId, global = false) {
48
- saveInstanceConfig({ instance_id: instanceId }, global);
71
+ export function loadGlobalConfig() {
72
+ return readConfigFile(GLOBAL_CONFIG_FILE);
73
+ }
74
+ function loadProjectConfig() {
75
+ return readConfigFile(projectConfigFile());
76
+ }
77
+ export function saveInstanceId(instanceId) {
78
+ saveInstanceConfig({ instance_id: instanceId }, false);
49
79
  }
50
80
  export function loadInstanceId() {
51
81
  const config = loadInstanceConfig();
52
82
  return config.instance_id || null;
53
83
  }
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
- }
63
84
  export function resolveInstanceId(cliInstanceId) {
64
85
  const resolved = cliInstanceId || loadInstanceId();
65
86
  if (!resolved) {
@@ -68,4 +89,10 @@ export function resolveInstanceId(cliInstanceId) {
68
89
  }
69
90
  return resolved;
70
91
  }
92
+ export function expandHomeDir(p) {
93
+ if (p.startsWith("~")) {
94
+ return path.join(os.homedir(), p.slice(1));
95
+ }
96
+ return p;
97
+ }
71
98
  //# sourceMappingURL=config.js.map
@@ -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":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAgC9E,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,iCAAiC,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,iEAAiE,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAE1B;IACC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,uDAAuD;IACvD,MAAM,EAAE,GAAa;QACnB,GAAG,eAAe,EAAE;QACpB,GAAG,MAAM,CAAC,SAAS;KACpB,CAAC;IACF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,eAAe,EAAE,CAAC;IAEvD,oCAAoC;IACpC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC3D,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC,YAAY,CAAC,IAAI,iBAAiB,EAAE,CAAC;IACzE,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAE3D,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,MAAsB;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAsB,EAAE,MAAM,GAAG,KAAK;IACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,eAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,kBAAkB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAAsB;IACtD,MAAM,QAAQ,GAAG,aAAa,IAAI,cAAc,EAAE,CAAC;IACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,kEAAkE;YAChE,wBAAwB,CAC3B,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}