@adamancyzhang/claude-orchestrator 0.3.1 → 0.3.2

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 (60) hide show
  1. package/README.md +68 -59
  2. package/dist/cli/commands.d.ts +2 -2
  3. package/dist/cli/commands.js +51 -24
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/config.d.ts +8 -2
  6. package/dist/config.js +6 -2
  7. package/dist/config.js.map +1 -1
  8. package/dist/executor/runner.d.ts +19 -0
  9. package/dist/executor/runner.js +59 -0
  10. package/dist/executor/runner.js.map +1 -0
  11. package/dist/executor/template.d.ts +12 -0
  12. package/dist/executor/template.js +42 -0
  13. package/dist/executor/template.js.map +1 -0
  14. package/dist/hooks/engine.d.ts +22 -0
  15. package/dist/hooks/engine.js +50 -0
  16. package/dist/hooks/engine.js.map +1 -0
  17. package/dist/index.js +16 -15
  18. package/dist/index.js.map +1 -1
  19. package/dist/leader/chain-router.d.ts +22 -0
  20. package/dist/leader/chain-router.js +163 -0
  21. package/dist/leader/chain-router.js.map +1 -0
  22. package/dist/leader/event-bus.d.ts +1 -1
  23. package/dist/leader/event-bus.js +1 -1
  24. package/dist/leader/event-bus.js.map +1 -1
  25. package/dist/leader/index.d.ts +1 -2
  26. package/dist/leader/index.js +30 -18
  27. package/dist/leader/index.js.map +1 -1
  28. package/dist/leader/state.js +9 -0
  29. package/dist/leader/state.js.map +1 -1
  30. package/dist/leader/tui.d.ts +8 -0
  31. package/dist/leader/tui.js +66 -4
  32. package/dist/leader/tui.js.map +1 -1
  33. package/dist/leader/watcher.d.ts +4 -5
  34. package/dist/leader/watcher.js +8 -25
  35. package/dist/leader/watcher.js.map +1 -1
  36. package/dist/models/schemas.d.ts +256 -0
  37. package/dist/models/schemas.js +25 -0
  38. package/dist/models/schemas.js.map +1 -1
  39. package/dist/skills/claude-orchestrator/SKILL.md +124 -60
  40. package/dist/templates/{leader-decompose.md → worker-decompose.md} +6 -8
  41. package/dist/templates/worker-evaluate.md +41 -0
  42. package/dist/utils/exec.js +2 -0
  43. package/dist/utils/exec.js.map +1 -1
  44. package/dist/utils/logger.d.ts +10 -0
  45. package/dist/utils/logger.js +22 -0
  46. package/dist/utils/logger.js.map +1 -0
  47. package/dist/worker/evaluator.d.ts +13 -0
  48. package/dist/worker/evaluator.js +112 -0
  49. package/dist/worker/evaluator.js.map +1 -0
  50. package/dist/worker/watcher.d.ts +11 -5
  51. package/dist/worker/watcher.js +98 -84
  52. package/dist/worker/watcher.js.map +1 -1
  53. package/package.json +1 -1
  54. package/dist/leader/decision-engine.d.ts +0 -35
  55. package/dist/leader/decision-engine.js +0 -102
  56. package/dist/leader/decision-engine.js.map +0 -1
  57. package/dist/leader/task-generator.d.ts +0 -34
  58. package/dist/leader/task-generator.js +0 -93
  59. package/dist/leader/task-generator.js.map +0 -1
  60. package/dist/templates/leader-decide.md +0 -59
package/README.md CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  Behind the scenes, ZooKeeper acts as the coordination backbone: ephemeral nodes for instance heartbeat, sequential nodes for FIFO task ordering, and watches for real-time change notification.
24
24
 
25
- v0.3.0 introduces a **Leader-Worker CLI-native architecture**: no MCP server, no HTTP. The Leader runs a read-only TUI monitoring the team, while Workers connect directly to ZooKeeper and process messages via `claude -p`. All messaging happens through the CLI.
25
+ v0.3.1 delivers a **Leader-Worker CLI-native architecture**: no MCP server, no HTTP. The Leader runs a read-only TUI and acts as a pure message/task router — it never calls `claude -p`. Workers connect directly to ZooKeeper, process messages via `claude -p`, self-evaluate their output, and send structured decisions back to the Leader. All AI intelligence lives in Workers; the Leader only handles mechanical forwarding, task distribution, and recovery. Built-in Claude Code skills (task-planning, task-execution, task-verification, task-review, task-acceptance, task-traceability) enforce a standardized responsibility chain for every task.
26
26
 
27
27
  ```
28
28
  ┌─────────────────────────────────────────────────┐
@@ -66,10 +66,10 @@ docker-compose up -d
66
66
  claude-orchestrator setup --leader --name Tom
67
67
 
68
68
  # For each Worker (the doers):
69
- claude-orchestrator setup --name Jerry --role developer
69
+ claude-orchestrator setup --name Jerry --role builder
70
70
  ```
71
71
 
72
- This creates `.claude-orchestrator/agents/` with message templates and writes project + global config.
72
+ This creates `.claude-orchestrator/agents/` with message templates, `.claude/skills/` with responsibility-chain skills, and writes project + global config.
73
73
 
74
74
  ### 4. Start the Leader
75
75
 
@@ -83,11 +83,10 @@ The Leader TUI is read-only — it shows who's online, what tasks are pending/in
83
83
  ### 5. Register a Worker
84
84
 
85
85
  ```bash
86
- # Persistent mode stays connected and processes messages automatically:
87
- claude-orchestrator register --name Jerry --role developer --work-dir /path/to/project
88
-
89
- # One-shot mode just register, no persistent watcher:
90
- claude-orchestrator register --name Jerry --role developer
86
+ # Reads name/role from .claude-orchestrator/config.json (set during setup).
87
+ # Starts Worker Watcher listens for messages and auto-processes via claude -p:
88
+ claude-orchestrator register
89
+ # Press Ctrl+C to stop and unregister
91
90
  ```
92
91
 
93
92
  ### 6. Go
@@ -97,7 +96,7 @@ Now the Leader TUI shows Jerry online. You can push tasks, send messages, and ma
97
96
  ```bash
98
97
  claude-orchestrator push-task --title "Implement login endpoint" --priority 0
99
98
  claude-orchestrator send-message --to-name Jerry --content "Starting on the auth module?"
100
- claude-orchestrator list-tasks --status pending
99
+ claude-orchestrator poll-task
101
100
  ```
102
101
 
103
102
  ---
@@ -108,45 +107,34 @@ claude-orchestrator list-tasks --status pending
108
107
 
109
108
  | Component | What it does | ZK magic |
110
109
  |-----------|-------------|----------|
111
- | **Leader** | Read-only TUI, monitors team, recovers orphaned tasks | `/leader` EPHEMERAL — only one Leader at a time |
112
- | **Worker** | Persistent ZK connection, auto-processes messages via `claude -p` | Ephemeral nodes → auto-cleanup on disconnect |
110
+ | **Leader** | Read-only TUI, mechanical message/task router, recovers orphaned tasks. No AI calls. | `/leader` EPHEMERAL — only one Leader at a time |
111
+ | **Worker** | Persistent ZK connection, auto-processes messages via `claude -p`, self-evaluates output | Ephemeral nodes → auto-cleanup on disconnect |
113
112
  | **Task Queue** | Push → Claim → In Progress → Complete (or Block/Fail/Retry) | Sequential nodes for FIFO, ephemeral claims for atomic locks |
114
113
  | **Message Router** | P2P messages, broadcast, help requests, templates | Persistent-sequential nodes, ZK watches for push |
115
114
  | **Context Store** | Shared key-value storage, watch for changes | Persistent nodes, cross-instance visibility |
116
115
 
117
116
  ### CLI-Native — No MCP Server
118
117
 
119
- v0.3.0 removes the centralized MCP Server entirely. Leader and Workers each connect directly to ZooKeeper. Messages are delivered via ZK watches that trigger `$COMMAND -p "$MSG" | tee $CACHE_DIR/{key}.log` on the recipient. This eliminates 3 layers of indirection (MCP protocol, SSE, HTTP) and makes every node self-contained.
118
+ v0.3.x removes the centralized MCP Server entirely. Leader and Workers each connect directly to ZooKeeper. The Leader is a pure router: it forwards requirements to Planner Workers, creates tasks from structured definitions, and mechanically executes EvalDecision JSON from Workers. AI intelligence (task decomposition, self-evaluation) runs exclusively on Workers via `claude -p`. This eliminates 3 layers of indirection (MCP protocol, SSE, HTTP) and makes every node self-contained.
120
119
 
121
- ### CLI Commands (25)
120
+ ### CLI Commands (15)
122
121
 
123
122
  | Command | What it does |
124
123
  |---------|-------------|
125
124
  | `leader` | Start Leader node with read-only TUI |
126
- | `setup` | Initialize environment: templates, config, agent directory |
125
+ | `setup` | Initialize environment: templates, skills, config |
127
126
  | `register` | Join the swarm. With `--work-dir`: persistent message watcher |
128
- | `heartbeat` | Stay alive, optionally report current task |
129
- | `status` | Health check (ZK connection) |
130
- | `list-instances` | See who's online |
127
+ | `unregister` | Explicitly unregister an instance |
131
128
  | `push-task` | Create a task (optionally assign to someone) |
132
129
  | `claim-task` | Grab the next task — atomic, no two instances can claim the same one |
133
130
  | `complete-task` | Mark a task done with results |
131
+ | `poll-task` | Check your claimed tasks |
134
132
  | `task-block` | Mark a claimed task as blocked (with reason) |
135
133
  | `task-fail` | Mark a claimed task as failed (with reason) |
136
134
  | `task-retry` | Re-queue a failed task for retry (retry_count + 1, max 3) |
137
- | `list-tasks` | View tasks by status (pending/claimed/in_progress/completed/blocked/failed) |
138
- | `send-message` | DM another instance by name or broadcast to all |
139
- | `poll-messages` | Check your inbox |
140
- | `wait-for-message` | Long-poll — block until a message arrives |
141
- | `dismiss-message` | Delete a message from your inbox |
142
- | `request-help` | Broadcast a question to the whole team |
143
- | `set-context` | Write a shared key-value entry |
144
- | `get-context` | Read a shared key-value entry |
145
- | `delete-context` | Remove a shared context key |
146
- | `list-context-keys` | List all context keys |
147
- | `watch-context` | Watch a context key for changes (blocks until change) |
148
- | `watch-tasks` | Watch for new tasks (blocks until new task) |
149
- | `unregister` | Explicitly unregister an instance |
135
+ | `send-message` | DM another instance by name |
136
+ | `poll-message` | Check your inbox |
137
+ | `delete-message` | Delete a message from your inbox |
150
138
  | `config` | Show current configuration |
151
139
 
152
140
  All CLI commands return JSON. Every command supports `--zookeeper` / `-z` (or `ZK_HOSTS` env var) for pointing at a remote ZooKeeper.
@@ -165,12 +153,12 @@ claude-orchestrator leader --name Tom
165
153
 
166
154
  **Jerry registers as a Worker:**
167
155
  ```bash
168
- claude-orchestrator register --name Jerry --role developer --work-dir ~/project
156
+ claude-orchestrator register
169
157
  ```
170
158
  ```
171
159
  TUI updates:
172
- [TEAM] Jerry joined (developer)
173
- [EVENT] 9:15:03 PM Jerry joined (developer)
160
+ [TEAM] Jerry joined (builder)
161
+ [EVENT] 9:15:03 PM Jerry joined (builder)
174
162
  ```
175
163
 
176
164
  **Tom assigns work (from another terminal):**
@@ -286,7 +274,7 @@ npm run build
286
274
  claude-orchestrator leader
287
275
 
288
276
  # Or use the CLI directly
289
- claude-orchestrator status
277
+ claude-orchestrator config
290
278
  ```
291
279
 
292
280
  ### Run Tests
@@ -299,17 +287,18 @@ npm test
299
287
 
300
288
  ## Skills for Claude Code
301
289
 
302
- The repo includes Claude Code skills that make the orchestrator even easier to use:
290
+ The repo includes Claude Code skills that enforce a standardized **responsibility chain**: Plan → Build → Verify → Review → Accept. Each link has a dedicated skill, grounded on the `task-traceability` foundation layer. The `setup` command installs all skills into `.claude/skills/`.
303
291
 
304
- | Skill | What it does |
305
- |-------|-------------|
306
- | `claude-orchestrator` | Full CLI reference all 25 commands with examples |
307
- | `orchestrator-setup` | Auto-configure environment and agent templates |
308
- | `orchestrator-register` | Guided registration flow |
309
- | `orchestrator-status` | Dashboard: health, instances, tasks |
310
- | `orchestrator-communicate` | Message patterns: poll, DM, broadcast |
311
- | `orchestrator-help` | Help-request workflow |
312
- | `orchestrator-agent` | Autonomous agent loop: check claim work complete |
292
+ | Skill | Role | What it does |
293
+ |-------|------|-------------|
294
+ | `task-planning` | Planner | Analyze requirements, define blueprints, break down tasks, push to queue |
295
+ | `task-execution` | Builder | Claim tasks, implement against blueprints, commit code with traceability |
296
+ | `task-verification` | Verifier | Independently verify Builder output against Plan criteria |
297
+ | `task-review` | Reviewer | Review full chain (Plan→Build→Verify) for design consistency |
298
+ | `task-acceptance` | Accepter | Validate final deliverable against business criteria, sign Go/No-Go |
299
+ | `task-traceability` | Foundation | Trace → Execute → Map → Evidence → Record — all roles |
300
+ | `claude-orchestrator` | Infrastructure | Full CLI reference all 15 commands with examples |
301
+ | `claude-code-developer` | Infrastructure | Hooks, settings, MCP, CLI reference for extending Claude Code |
313
302
 
314
303
  ---
315
304
 
@@ -332,11 +321,12 @@ Zero external database. All state lives in ZooKeeper.
332
321
 
333
322
  | Role | Value | Typical behavior |
334
323
  |------|-------|-----------------|
335
- | Leader | `leader` | Runs TUI, monitors team, recovers orphaned tasks |
336
- | Architect | `architect` | Sets standards, designs tasks, reviews results |
337
- | Developer | `developer` | Claims tasks, writes code, submits PRs |
338
- | Tester | `tester` | Claims test tasks, E2E verification |
339
- | General | `general` | Any role |
324
+ | Leader | `leader` | Runs TUI, mechanical message/task routing, recovers orphaned tasks |
325
+ | Planner | `planner` | Decomposes requirements into task chains, defines blueprints |
326
+ | Builder | `builder` | Claims build tasks, writes code, submits PRs |
327
+ | Verifier | `verifier` | Claims verify tasks, checks Builder output against Plan |
328
+ | Reviewer | `reviewer` | Claims review tasks, quality gate for design consistency |
329
+ | Accepter | `accepter` | Claims accept tasks, final Go/No-Go validation |
340
330
 
341
331
  ---
342
332
 
@@ -355,24 +345,34 @@ Zero external database. All state lives in ZooKeeper.
355
345
 
356
346
  ```
357
347
  ├── src/
358
- │ ├── index.ts # CLI entry point (commander, 25 commands)
348
+ │ ├── index.ts # CLI entry point (commander, 15 commands)
359
349
  │ ├── config.ts # Configuration handling
360
350
  │ ├── cli/
361
351
  │ │ └── commands.ts # CLI subcommand implementations
362
- │ ├── leader/ # Leader node (v0.3.0)
352
+ │ ├── leader/ # Leader node (v0.3.1)
363
353
  │ │ ├── index.ts # startup / shutdown orchestration
364
354
  │ │ ├── tui.ts # ANSI-based read-only TUI
365
- │ │ ├── event-bus.ts # typed EventEmitter
355
+ │ │ ├── event-bus.ts # typed EventEmitter (13 events)
366
356
  │ │ ├── state.ts # centralized LeaderState
367
357
  │ │ ├── monitor.ts # WorkerMonitor — join/leave detection
368
358
  │ │ ├── orchestrator.ts # TaskOrchestrator — lifecycle tracking
369
359
  │ │ ├── recovery.ts # TaskRecovery — orphan recovery (max 3 retries)
370
- │ │ └── watcher.ts # LeaderWatcher — message processing
371
- ├── worker/ # Worker node (v0.3.0)
372
- │ └── watcher.ts # WorkerWatcher persistent message loop
360
+ │ │ ├── watcher.ts # LeaderWatcher — message processing
361
+ │ └── chain-router.ts # ChainRouter mechanical routing (no AI)
362
+ ├── worker/ # Worker node (v0.3.1)
363
+ │ │ ├── watcher.ts # WorkerWatcher — ZK watch loop + orchestration
364
+ │ │ └── evaluator.ts # SelfEvaluator — built-in self-evaluation
365
+ │ ├── executor/ # Template execution engine
366
+ │ │ ├── template.ts # TemplateEngine — loading + rendering
367
+ │ │ └── runner.ts # ClaudeRunner — CLI execution wrapper
373
368
  │ ├── templates/ # Built-in agent templates
374
- │ │ ├── leader.md # Leader message template
375
- │ │ └── worker.md # Worker completion report template
369
+ │ │ ├── worker-decompose.md # Planner decompose prompt
370
+ │ │ ├── worker-evaluate.md # Worker self-evaluation prompt
371
+ │ │ ├── worker-plan.md # Planner template (task-traceability + task-acceptance)
372
+ │ │ ├── worker-build.md # Builder template (task-traceability)
373
+ │ │ ├── worker-verify.md # Verifier template (task-traceability)
374
+ │ │ ├── worker-review.md # Reviewer template (task-traceability)
375
+ │ │ └── worker-accept.md # Accepter template (task-traceability + task-acceptance)
376
376
  │ ├── zk/
377
377
  │ │ ├── client.ts # ZooKeeper connection management
378
378
  │ │ ├── paths.ts # ZK path constants
@@ -386,7 +386,8 @@ Zero external database. All state lives in ZooKeeper.
386
386
  │ │ └── schemas.ts # Zod schemas and inferred types
387
387
  │ └── utils/
388
388
  │ ├── exec.ts # Shell execution (execWithTee)
389
- └── output.ts # CLI output formatting
389
+ ├── output.ts # CLI output formatting
390
+ │ └── logger.ts # Tagged logger for contextual output
390
391
  ├── bin/
391
392
  │ └── claude-orchestrator # npm CLI entry (Node.js)
392
393
  ├── scripts/
@@ -395,7 +396,15 @@ Zero external database. All state lives in ZooKeeper.
395
396
  │ ├── start-worker.sh # Worker launcher
396
397
  │ ├── stop-all.sh # Tear down
397
398
  │ └── publish.sh # npm publish pipeline
398
- ├── skills/ # Claude Code skills
399
+ ├── skills/ # Claude Code skills (8 skills, responsibility chain)
400
+ │ ├── task-planning/ # Planner skill
401
+ │ ├── task-execution/ # Builder skill
402
+ │ ├── task-verification/ # Verifier skill
403
+ │ ├── task-review/ # Reviewer skill
404
+ │ ├── task-acceptance/ # Accepter skill
405
+ │ ├── task-traceability/ # Foundation layer skill
406
+ │ ├── claude-orchestrator/ # CLI reference skill
407
+ │ └── claude-code-developer/ # Claude Code extension skill
399
408
  ├── docs/
400
409
  │ ├── v0.1.0/ # Archived Python v0.1.0 docs
401
410
  │ ├── v0.2.0/ # Archived MCP-based v0.2.x docs
@@ -1,9 +1,9 @@
1
- export declare function cmdRegister(zkHosts: string): Promise<void>;
1
+ export declare function cmdRegister(zkHosts: string, debug?: boolean): Promise<void>;
2
2
  export declare function cmdPushTask(zkHosts: string, cliInstanceId: string | undefined, title: string, description: string, priority: number, assignee?: string, link?: string, chainId?: string, dependsOn?: string[], blockedBy?: string[]): Promise<void>;
3
3
  export declare function cmdClaimTask(zkHosts: string, cliInstanceId: string | undefined): Promise<void>;
4
4
  export declare function cmdCompleteTask(zkHosts: string, cliInstanceId: string | undefined, taskId: string, result: string): Promise<void>;
5
5
  export declare function cmdPollTask(zkHosts: string, statusFilter?: string): Promise<void>;
6
- export declare function cmdSendMessage(zkHosts: string, cliInstanceId: string | undefined, content: string, toInstance?: string, broadcast?: boolean, toName?: string, help?: boolean): Promise<void>;
6
+ export declare function cmdSendMessage(zkHosts: string, cliInstanceId: string | undefined, content: string): Promise<void>;
7
7
  export declare function cmdPollMessage(zkHosts: string, cliInstanceId: string | undefined): Promise<void>;
8
8
  export declare function cmdDeleteMessage(zkHosts: string, cliInstanceId: string | undefined, messageId: string): Promise<void>;
9
9
  export declare function cmdUnregister(zkHosts: string, cliInstanceId: string | undefined): Promise<void>;
@@ -7,8 +7,13 @@ import { TaskQueue } from "../modules/task-queue.js";
7
7
  import { MessageRouter } from "../modules/message-router.js";
8
8
  import { loadConfig, loadInstanceConfig, saveInstanceConfig, saveInstanceId, loadInstanceId, loadGlobalConfig, resolveInstanceId } from "../config.js";
9
9
  import { output } from "../utils/output.js";
10
+ import { Logger } from "../utils/logger.js";
11
+ import { HookEngine } from "../hooks/engine.js";
10
12
  import { WorkerWatcher } from "../worker/watcher.js";
11
- const VALID_ROLES = ["planner", "builder", "verifier", "reviewer", "accepter", "leader"];
13
+ import { TemplateEngine } from "../executor/template.js";
14
+ import { ClaudeRunner } from "../executor/runner.js";
15
+ import { SelfEvaluator } from "../worker/evaluator.js";
16
+ const VALID_ROLES = ["planner", "builder", "verifier", "reviewer", "accepter"];
12
17
  async function withZk(hosts, fn) {
13
18
  const zk = new ZkClient(hosts);
14
19
  await zk.connect();
@@ -22,7 +27,9 @@ async function withZk(hosts, fn) {
22
27
  await zk.disconnect();
23
28
  }
24
29
  }
25
- export async function cmdRegister(zkHosts) {
30
+ export async function cmdRegister(zkHosts, debug = false) {
31
+ if (debug)
32
+ Logger.enableDebug();
26
33
  // Read from project config only — no CLI args, no global fallback
27
34
  const projectConfig = loadInstanceConfig();
28
35
  const name = projectConfig.name;
@@ -51,7 +58,14 @@ export async function cmdRegister(zkHosts) {
51
58
  // Resolve leader instance ID for CACHE_DIR path
52
59
  const leaderData = await zk.getLeader();
53
60
  const leaderInstanceId = leaderData?.instance_id ?? instance.id;
54
- const watcher = new WorkerWatcher(zk, instance.id, process.cwd(), resolvedConfig.cliCommand, resolvedConfig.cacheDir, leaderInstanceId);
61
+ const workDir = process.cwd();
62
+ const agentsDir = path.join(workDir, ".claude-orchestrator", "agents");
63
+ const hooks = new HookEngine();
64
+ hooks.load(resolvedConfig.hooks);
65
+ const templateEngine = new TemplateEngine(agentsDir);
66
+ const runner = new ClaudeRunner(resolvedConfig.cliCommand, resolvedConfig.cacheDir, leaderInstanceId, workDir);
67
+ const evaluator = new SelfEvaluator(templateEngine, runner, name, role);
68
+ const watcher = new WorkerWatcher(zk, instance.id, leaderInstanceId, hooks, templateEngine, runner, evaluator);
55
69
  const onSigint = () => {
56
70
  watcher.stop();
57
71
  };
@@ -66,10 +80,11 @@ export async function cmdRegister(zkHosts) {
66
80
  }
67
81
  }, 200);
68
82
  });
83
+ const logger = new Logger("CLI");
69
84
  await registry.unregister(instance.id);
70
85
  await zk.disconnect();
71
86
  process.removeListener("SIGINT", onSigint);
72
- console.log("Unregistered. Goodbye.");
87
+ logger.info("Unregistered. Goodbye.");
73
88
  }
74
89
  export async function cmdPushTask(zkHosts, cliInstanceId, title, description, priority, assignee, link, chainId, dependsOn, blockedBy) {
75
90
  await withZk(zkHosts, async ({ taskQueue }) => {
@@ -103,7 +118,7 @@ export async function cmdPollTask(zkHosts, statusFilter) {
103
118
  output(tasks);
104
119
  });
105
120
  }
106
- export async function cmdSendMessage(zkHosts, cliInstanceId, content, toInstance, broadcast = false, toName, help = false) {
121
+ export async function cmdSendMessage(zkHosts, cliInstanceId, content) {
107
122
  await withZk(zkHosts, async ({ registry, messageRouter }) => {
108
123
  const instanceId = cliInstanceId || loadInstanceId() || "";
109
124
  let fromName;
@@ -114,7 +129,13 @@ export async function cmdSendMessage(zkHosts, cliInstanceId, content, toInstance
114
129
  else {
115
130
  fromName = "CLI";
116
131
  }
117
- const messages = await messageRouter.send(instanceId, fromName, content, toInstance, broadcast, toName, help);
132
+ const instances = await registry.listAll();
133
+ const leader = instances.find((i) => i.role === "leader");
134
+ if (!leader) {
135
+ throw new Error("No leader instance found");
136
+ }
137
+ const leaderId = leader.id;
138
+ const messages = await messageRouter.send(instanceId, fromName, content, leaderId, false, undefined, false);
118
139
  const targets = messages.map((m) => m.to_instance);
119
140
  output({ sent_to: targets, message_count: targets.length });
120
141
  });
@@ -151,10 +172,16 @@ export async function cmdSetup(options) {
151
172
  const existingGlobal = loadGlobalConfig();
152
173
  const globalZk = existingGlobal.zookeeper || { url: "127.0.0.1:2181", root_path: "/claude-orchestrator", auth: null };
153
174
  const prevCommands = existingGlobal.commands;
175
+ const prevHooks = existingGlobal.hooks;
154
176
  saveInstanceConfig({
155
177
  commands: {
156
178
  "claude-cli": command || prevCommands?.["claude-cli"] || defaultCliCommand,
157
- "leader-sync": prevCommands?.["leader-sync"] ?? null,
179
+ },
180
+ hooks: prevHooks || {
181
+ leader_message_start: null,
182
+ leader_message_end: null,
183
+ worker_message_start: null,
184
+ worker_message_end: null,
158
185
  },
159
186
  cache_dir: cacheDir || existingGlobal.cache_dir || defaultCacheDir,
160
187
  zookeeper: {
@@ -182,8 +209,8 @@ export async function cmdSetup(options) {
182
209
  const templateDir = path.join(__dirname, "..", "templates");
183
210
  const agentsDir = path.join(process.cwd(), ".claude-orchestrator", "agents");
184
211
  const templates = {
185
- "leader-decompose.md": path.join(templateDir, "leader-decompose.md"),
186
- "leader-decide.md": path.join(templateDir, "leader-decide.md"),
212
+ "worker-decompose.md": path.join(templateDir, "worker-decompose.md"),
213
+ "worker-evaluate.md": path.join(templateDir, "worker-evaluate.md"),
187
214
  "worker-plan.md": path.join(templateDir, "worker-plan.md"),
188
215
  "worker-build.md": path.join(templateDir, "worker-build.md"),
189
216
  "worker-verify.md": path.join(templateDir, "worker-verify.md"),
@@ -207,27 +234,29 @@ export async function cmdSetup(options) {
207
234
  // ── Copy skills to .claude/skills/ ──
208
235
  const skillsSrcDir = path.join(__dirname, "..", "skills");
209
236
  const skillsDstDir = path.join(process.cwd(), ".claude", "skills");
237
+ const SKILLS_TO_COPY = [
238
+ "task-planning",
239
+ "task-execution",
240
+ "task-verification",
241
+ "task-review",
242
+ "task-acceptance",
243
+ "task-traceability",
244
+ ];
210
245
  const skillsWritten = [];
211
- const skillsSkipped = [];
212
246
  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) {
247
+ for (const skillName of SKILLS_TO_COPY) {
217
248
  const srcSkillPath = path.join(skillsSrcDir, skillName, "SKILL.md");
218
249
  const dstSkillDir = path.join(skillsDstDir, skillName);
219
250
  const dstSkillPath = path.join(dstSkillDir, "SKILL.md");
220
251
  if (!fs.existsSync(srcSkillPath))
221
252
  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);
253
+ if (fs.existsSync(dstSkillDir)) {
254
+ fs.rmSync(dstSkillDir, { recursive: true, force: true });
230
255
  }
256
+ fs.mkdirSync(dstSkillDir, { recursive: true });
257
+ const content = fs.readFileSync(srcSkillPath, "utf-8");
258
+ fs.writeFileSync(dstSkillPath, content);
259
+ skillsWritten.push(skillName);
231
260
  }
232
261
  }
233
262
  const result = {
@@ -242,8 +271,6 @@ export async function cmdSetup(options) {
242
271
  result["templates_skipped"] = skipped;
243
272
  if (skillsWritten.length > 0)
244
273
  result["skills_written"] = skillsWritten;
245
- if (skillsSkipped.length > 0)
246
- result["skills_skipped"] = skillsSkipped;
247
274
  if (!resolvedName)
248
275
  result["warning"] = "No name provided. Use --name to set instance name.";
249
276
  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":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAiB,MAAM,cAAc,CAAC;AACtK,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AAExF,KAAK,UAAU,MAAM,CACnB,KAAa,EACb,EAKgB;IAEhB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9D,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,KAAK,GAAG,KAAK;IAC9D,IAAI,KAAK;QAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,kEAAkE;IAClE,MAAM,aAAa,GAAG,kBAAkB,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IAEhC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,EAAE,KAAK,EAAE,sDAAsD,EAAE,EAAE,IAAI,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAE,WAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC;YACL,KAAK,EAAE,iBAAiB,IAAI,IAAI,WAAW,sBAAsB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1F,EAAE,IAAI,CAAC,CAAC;QACT,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,IAAI,SAAS,CAAC;IAE1D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAC/B,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjB,gDAAgD;IAChD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;IACxC,MAAM,gBAAgB,GAAI,UAAU,EAAE,WAAsB,IAAI,QAAQ,CAAC,EAAE,CAAC;IAE5E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAEjC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,YAAY,CAC7B,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,QAAQ,EACvB,gBAAgB,EAChB,OAAO,CACR,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,aAAa,CACjC,cAAc,EACd,MAAM,EACN,IAAI,EACJ,IAAI,CACL,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,aAAa,CAC/B,EAAE,EACF,QAAQ,CAAC,EAAE,EACX,gBAAgB,EAChB,KAAK,EACL,cAAc,EACd,MAAM,EACN,SAAS,CACV,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,sBAAsB;IACtB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,aAAiC,EACjC,KAAa,EACb,WAAmB,EACnB,QAAgB,EAChB,QAAiB,EACjB,IAAa,EACb,OAAgB,EAChB,SAAoB,EACpB,SAAoB;IAEpB,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,aAAa,IAAI,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC7K,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,aAAiC;IAEjC,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,aAAiC,EACjC,MAAc,EACd,MAAc;IAEd,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,YAAqB;IAErB,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,aAAiC,EACjC,OAAe;IAEf,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,aAAa,IAAI,cAAc,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,QAAgB,CAAC;QACrB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAY,CAAC;QAErC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CACvC,UAAU,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,CACN,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,aAAiC;IAEjC,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAChD,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,aAAiC,EACjC,SAAiB;IAEjB,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAChD,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,aAAiC;IAEjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAEpD,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3C,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAQ9B;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE5E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,iBAAiB,GAAG,iEAAiE,CAAC;IAC5F,MAAM,eAAe,GAAG,iCAAiC,CAAC;IAE1D,4BAA4B;IAC5B,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;IAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;IACvC,kBAAkB,CAChB;QACE,QAAQ,EAAE;YACR,YAAY,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC,YAAY,CAAC,IAAI,iBAAiB;SAC3E;QACD,KAAK,EAAE,SAAS,IAAI;YAClB,oBAAoB,EAAE,IAAI;YAC1B,kBAAkB,EAAE,IAAI;YACxB,oBAAoB,EAAE,IAAI;YAC1B,kBAAkB,EAAE,IAAI;SACzB;QACD,SAAS,EAAE,QAAQ,IAAI,cAAc,CAAC,SAAS,IAAI,eAAe;QAClE,SAAS,EAAE;YACT,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,gBAAgB;YACrC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,sBAAsB;YACvD,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;SAC5B;KACF,EACD,IAAI,CACL,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,gBAAgB,EAAE;YAC1B,OAAO,EAAE,kGAAkG;SAC5G,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,6BAA6B;IAC7B,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,IAAI,YAAY;QAAE,aAAa,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;IACvD,aAAa,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;IACrC,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEzC,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAE7E,MAAM,SAAS,GAA2B;QACxC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;QACpE,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC;QAClE,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC1D,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAC5D,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;QAC9D,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;QAC9D,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;KAC/D,CAAC;IAEF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG;QACrB,eAAe;QACf,gBAAgB;QAChB,mBAAmB;QACnB,aAAa;QACb,iBAAiB;QACjB,mBAAmB;KACpB,CAAC;IAEF,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAExD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS;YAE3C,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACxC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAA4B;QACtC,MAAM,EAAE,YAAY;QACpB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,EAAE,aAAa,CAAC;QAC/E,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,YAAY;KACzB,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;IAC9D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;IACvE,IAAI,CAAC,YAAY;QAAE,MAAM,CAAC,SAAS,CAAC,GAAG,oDAAoD,CAAC;IAE5F,MAAM,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,aAAiC,EACjC,MAAc,EACd,MAAc;IAEd,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,aAAiC,EACjC,MAAc,EACd,MAAc;IAEd,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,cAAkC,EAClC,MAAc;IAEd,MAAM,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/config.d.ts CHANGED
@@ -7,13 +7,19 @@ export interface ZkConfig {
7
7
  }
8
8
  export interface CommandsConfig {
9
9
  "claude-cli"?: string;
10
- "leader-sync"?: string | null;
10
+ }
11
+ export interface HooksConfig {
12
+ leader_message_start?: string | null;
13
+ leader_message_end?: string | null;
14
+ worker_message_start?: string | null;
15
+ worker_message_end?: string | null;
11
16
  }
12
17
  export interface InstanceConfig {
13
18
  instance_id?: string;
14
19
  name?: string;
15
20
  role?: string;
16
21
  commands?: CommandsConfig;
22
+ hooks?: HooksConfig;
17
23
  cache_dir?: string;
18
24
  zookeeper?: ZkConfig;
19
25
  }
@@ -21,7 +27,7 @@ export interface ResolvedConfig {
21
27
  zk: ZkConfig;
22
28
  cacheDir: string;
23
29
  cliCommand: string;
24
- leaderSync: string | null;
30
+ hooks: HooksConfig;
25
31
  instanceId?: string;
26
32
  name?: string;
27
33
  role?: string;
package/dist/config.js CHANGED
@@ -36,11 +36,15 @@ export function loadConfig(cliOpts) {
36
36
  // Command: project overrides global
37
37
  const mergedCommands = project.commands || global.commands;
38
38
  const cliCommand = mergedCommands?.["claude-cli"] || defaultCliCommand();
39
- const leaderSync = mergedCommands?.["leader-sync"] ?? null;
39
+ // Hooks: project overrides global
40
+ const hooks = {
41
+ ...global.hooks,
42
+ ...project.hooks,
43
+ };
40
44
  const instanceId = project.instance_id;
41
45
  const name = project.name;
42
46
  const role = project.role;
43
- return { zk, cacheDir, cliCommand, leaderSync, instanceId, name, role };
47
+ return { zk, cacheDir, cliCommand, hooks, instanceId, name, role };
44
48
  }
45
49
  function readConfigFile(filePath) {
46
50
  try {
@@ -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;AAuC9E,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;IAEzE,kCAAkC;IAClC,MAAM,KAAK,GAAgB;QACzB,GAAG,MAAM,CAAC,KAAK;QACf,GAAG,OAAO,CAAC,KAAK;KACjB,CAAC;IAEF,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,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrE,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"}
@@ -0,0 +1,19 @@
1
+ export declare class ClaudeRunner {
2
+ private command;
3
+ private cacheDir;
4
+ private leaderInstanceId;
5
+ private workDir;
6
+ private logger;
7
+ private resolvedCache;
8
+ constructor(command: string, cacheDir: string, leaderInstanceId: string, workDir: string);
9
+ private dateDir;
10
+ ensureDir(dir: string): void;
11
+ taskDocPath(taskId: string): string;
12
+ logPath(uniqueKey: string): string;
13
+ resultPath(uniqueKey: string): string;
14
+ evalLogPath(uniqueKey: string): string;
15
+ evalResultPath(uniqueKey: string): string;
16
+ run(prompt: string, logPath: string): Promise<{
17
+ code: number;
18
+ }>;
19
+ }
@@ -0,0 +1,59 @@
1
+ import * as fs from "node:fs";
2
+ import path from "node:path";
3
+ import { execWithTee } from "../utils/exec.js";
4
+ import { expandHomeDir } from "../config.js";
5
+ import { Logger } from "../utils/logger.js";
6
+ export class ClaudeRunner {
7
+ command;
8
+ cacheDir;
9
+ leaderInstanceId;
10
+ workDir;
11
+ logger = new Logger("ClaudeRunner");
12
+ resolvedCache;
13
+ constructor(command, cacheDir, leaderInstanceId, workDir) {
14
+ this.command = command;
15
+ this.cacheDir = cacheDir;
16
+ this.leaderInstanceId = leaderInstanceId;
17
+ this.workDir = workDir;
18
+ this.resolvedCache = expandHomeDir(path.join(this.cacheDir, this.leaderInstanceId));
19
+ }
20
+ dateDir() {
21
+ return new Date().toISOString().slice(0, 10);
22
+ }
23
+ ensureDir(dir) {
24
+ fs.mkdirSync(dir, { recursive: true });
25
+ }
26
+ taskDocPath(taskId) {
27
+ const dir = path.join(this.resolvedCache, "tasks", this.dateDir());
28
+ this.ensureDir(dir);
29
+ return path.join(dir, `${taskId}.md`);
30
+ }
31
+ logPath(uniqueKey) {
32
+ const dir = path.join(this.resolvedCache, "logs", this.dateDir());
33
+ this.ensureDir(dir);
34
+ return path.join(dir, `${uniqueKey}.log`);
35
+ }
36
+ resultPath(uniqueKey) {
37
+ const dir = path.join(this.resolvedCache, "results", this.dateDir());
38
+ this.ensureDir(dir);
39
+ return path.join(dir, `${uniqueKey}-result.md`);
40
+ }
41
+ evalLogPath(uniqueKey) {
42
+ const dir = path.join(this.resolvedCache, "eval", this.dateDir());
43
+ this.ensureDir(dir);
44
+ return path.join(dir, `${uniqueKey}-eval.log`);
45
+ }
46
+ evalResultPath(uniqueKey) {
47
+ const dir = path.join(this.resolvedCache, "eval", this.dateDir());
48
+ this.ensureDir(dir);
49
+ return path.join(dir, `${uniqueKey}-eval-result.md`);
50
+ }
51
+ async run(prompt, logPath) {
52
+ if (Logger.isDebug()) {
53
+ this.logger.debug(`Prompt (${prompt.length} chars):\n${prompt.slice(0, 1000)}${prompt.length > 1000 ? "\n... (truncated)" : ""}`);
54
+ this.logger.debug(`Log: ${logPath}`);
55
+ }
56
+ return execWithTee(this.command, prompt, logPath, this.workDir);
57
+ }
58
+ }
59
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/executor/runner.ts"],"names":[],"mappings":"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"}