@adamancyzhang/claude-orchestrator 0.3.1 → 0.3.3

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 (61) hide show
  1. package/README.md +76 -77
  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.md +1 -1
  40. package/dist/skills/claude-orchestrator/SKILL.md +124 -60
  41. package/dist/templates/{leader-decompose.md → worker-decompose.md} +6 -8
  42. package/dist/templates/worker-evaluate.md +41 -0
  43. package/dist/utils/exec.js +2 -0
  44. package/dist/utils/exec.js.map +1 -1
  45. package/dist/utils/logger.d.ts +10 -0
  46. package/dist/utils/logger.js +22 -0
  47. package/dist/utils/logger.js.map +1 -0
  48. package/dist/worker/evaluator.d.ts +13 -0
  49. package/dist/worker/evaluator.js +112 -0
  50. package/dist/worker/evaluator.js.map +1 -0
  51. package/dist/worker/watcher.d.ts +11 -5
  52. package/dist/worker/watcher.js +98 -84
  53. package/dist/worker/watcher.js.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/leader/decision-engine.d.ts +0 -35
  56. package/dist/leader/decision-engine.js +0 -102
  57. package/dist/leader/decision-engine.js.map +0 -1
  58. package/dist/leader/task-generator.d.ts +0 -34
  59. package/dist/leader/task-generator.js +0 -93
  60. package/dist/leader/task-generator.js.map +0 -1
  61. package/dist/templates/leader-decide.md +0 -59
@@ -0,0 +1,41 @@
1
+ You are {{name}}, a self-evaluation specialist. Your role is {{preset_role}}. You just completed a task in the Plan → Build → Verify → Review → Accept responsibility chain. Evaluate your own output and decide the next action.
2
+
3
+ ## Your Task
4
+
5
+ - **Link**: {{link}}
6
+ - **Title**: {{task_title}}
7
+ - **Description**: {{task_description}}
8
+ - **Completion Criteria**: {{task_criteria}}
9
+
10
+ ## Your Result
11
+
12
+ The result of your work is at {{task_result_path}}. Review it objectively.
13
+
14
+ ## Decision Rules
15
+
16
+ 1. **Evaluate your output against the completion criteria.**
17
+ - Criteria fully met → `activate_next` (proceed to next link in the chain)
18
+ - Criteria partially met → `feedback` (describe what's missing so you or another worker can fix it)
19
+ - Criteria not met at all → `feedback` with clear explanation of what went wrong
20
+
21
+ 2. **Check chain position.**
22
+ - If this was the Accept link and it passes → `close_chain`
23
+ - Otherwise → activate the next link
24
+
25
+ ## Output Format
26
+
27
+ Output exactly one JSON decision. Write the result to {{result_path}}.
28
+
29
+ ```json
30
+ {
31
+ "decision": "activate_next" | "feedback" | "close_chain",
32
+ "reason": "<one-line explanation of the evaluation>",
33
+ "feedback": "<only if feedback: specific guidance on what to improve>",
34
+ "nextLink": "<the next link to activate, e.g. build|verify|review|accept>",
35
+ "suggestedWorker": null
36
+ }
37
+ ```
38
+
39
+ Output ONLY the JSON. No explanation.
40
+
41
+ After evaluating, include the full JSON decision as your completion report so the Leader can mechanically execute the decision.
@@ -5,6 +5,8 @@ export async function execWithTee(command, message, logPath, cwd) {
5
5
  await fs.promises.mkdir(path.dirname(logPath), { recursive: true });
6
6
  const escapedMsg = message.replace(/'/g, "'\\''");
7
7
  const shellCmd = `exec ${command} -p '${escapedMsg}' | tee -a '${logPath}'`;
8
+ const msgPreview = message.length > 100 ? message.slice(0, 100) + "..." : message;
9
+ console.log(`\n[Exec] ${command} -p '${msgPreview}' | tee -a '${logPath}'`);
8
10
  return new Promise((resolve) => {
9
11
  const child = spawn("sh", ["-c", shellCmd], {
10
12
  cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class Logger {
2
+ private tag;
3
+ private static debugEnabled;
4
+ static enableDebug(): void;
5
+ static isDebug(): boolean;
6
+ constructor(tag: string);
7
+ info(msg: string): void;
8
+ error(msg: string, err?: unknown): void;
9
+ debug(msg: string): void;
10
+ }
@@ -0,0 +1,22 @@
1
+ export class Logger {
2
+ tag;
3
+ static debugEnabled = false;
4
+ static enableDebug() { Logger.debugEnabled = true; }
5
+ static isDebug() { return Logger.debugEnabled; }
6
+ constructor(tag) {
7
+ this.tag = tag;
8
+ }
9
+ info(msg) {
10
+ console.log(`[${this.tag}] ${msg}`);
11
+ }
12
+ error(msg, err) {
13
+ const extra = err instanceof Error ? `: ${err.message}` : err !== undefined ? `: ${err}` : "";
14
+ console.error(`[${this.tag}] ${msg}${extra}`);
15
+ }
16
+ debug(msg) {
17
+ if (Logger.debugEnabled) {
18
+ console.log(`[${this.tag}] [DEBUG] ${msg}`);
19
+ }
20
+ }
21
+ }
22
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IAMG;IALZ,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IAEpC,MAAM,CAAC,WAAW,KAAW,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,KAAc,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzD,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEnC,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,GAAa;QAC9B,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAW;QACf,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { TemplateEngine } from "../executor/template.js";
2
+ import { ClaudeRunner } from "../executor/runner.js";
3
+ declare const CHAIN_LINKS: string[];
4
+ export declare class SelfEvaluator {
5
+ private templateEngine;
6
+ private runner;
7
+ private instanceName;
8
+ private instanceRole;
9
+ private logger;
10
+ constructor(templateEngine: TemplateEngine, runner: ClaudeRunner, instanceName: string, instanceRole: string);
11
+ evaluate(link: string, msgVars: Record<string, string>, taskResultPath: string, uniqueKey: string): Promise<string>;
12
+ }
13
+ export { CHAIN_LINKS };
@@ -0,0 +1,112 @@
1
+ import * as fs from "node:fs";
2
+ import { Logger } from "../utils/logger.js";
3
+ import { EvalDecisionSchema } from "../models/schemas.js";
4
+ const CHAIN_LINKS = ["plan", "build", "verify", "review", "accept"];
5
+ const MAX_RETRIES = 3;
6
+ const NEXT_LINKS = {
7
+ plan: "build", build: "verify", verify: "review",
8
+ review: "accept", accept: null,
9
+ };
10
+ export class SelfEvaluator {
11
+ templateEngine;
12
+ runner;
13
+ instanceName;
14
+ instanceRole;
15
+ logger = new Logger("SelfEvaluator");
16
+ constructor(templateEngine, runner, instanceName, instanceRole) {
17
+ this.templateEngine = templateEngine;
18
+ this.runner = runner;
19
+ this.instanceName = instanceName;
20
+ this.instanceRole = instanceRole;
21
+ }
22
+ async evaluate(link, msgVars, taskResultPath, uniqueKey) {
23
+ let evalTemplate;
24
+ try {
25
+ evalTemplate = await this.templateEngine.loadFile("worker-evaluate.md");
26
+ }
27
+ catch {
28
+ evalTemplate = [
29
+ `You are {{name}}, a Worker with role {{preset_role}}.`,
30
+ `Evaluate your own output for the {{link}} task and decide the next step.`,
31
+ ``,
32
+ `## Task`,
33
+ `- **Title**: {{task_title}}`,
34
+ `- **Description**: {{task_description}}`,
35
+ `- **Criteria**: {{task_criteria}}`,
36
+ ``,
37
+ `## Your Result`,
38
+ `Read the result from {{task_result_path}}.`,
39
+ ``,
40
+ `## Output Format`,
41
+ `Write the evaluation result to {{result_path}}. Output exactly one JSON decision:`,
42
+ `\`\`\`json`,
43
+ `{"decision": "activate_next" | "feedback" | "close_chain", "reason": "...", "nextLink": "build|verify|review|accept"}`,
44
+ `\`\`\``,
45
+ `Output ONLY the JSON.`,
46
+ ].join("\n");
47
+ }
48
+ const baseVars = {
49
+ name: this.instanceName,
50
+ preset_role: this.instanceRole,
51
+ link,
52
+ task_result_path: taskResultPath,
53
+ work_dir: "",
54
+ time: new Date().toISOString(),
55
+ ...msgVars,
56
+ };
57
+ const formatHint = [
58
+ ``,
59
+ `## IMPORTANT: Format Correction`,
60
+ `Your previous output was invalid JSON or did not match the required schema.`,
61
+ `You MUST output ONLY valid JSON with exactly these fields:`,
62
+ `\`\`\`json`,
63
+ `{"decision": "activate_next"|"feedback"|"close_chain", "reason": "<string>", "nextLink": "<string>", "feedback": "<string>"}`,
64
+ `\`\`\``,
65
+ `No markdown fences, no extra text, no trailing commas. Pure JSON only.`,
66
+ ].join("\n");
67
+ for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
68
+ const attemptKey = `${uniqueKey}-${attempt}`;
69
+ const evalResultPath = this.runner.evalResultPath(attemptKey);
70
+ const evalLogPath = this.runner.evalLogPath(attemptKey);
71
+ let prompt = this.templateEngine.render(evalTemplate, {
72
+ ...baseVars,
73
+ result_path: evalResultPath,
74
+ });
75
+ if (attempt > 0) {
76
+ prompt += formatHint;
77
+ }
78
+ this.logger.info(`Self-evaluation attempt ${attempt + 1}/${MAX_RETRIES}...`);
79
+ await this.runner.run(prompt, evalLogPath);
80
+ try {
81
+ const content = await fs.promises.readFile(evalResultPath, "utf-8");
82
+ if (!content.trim())
83
+ continue;
84
+ const cleaned = content.trim()
85
+ .replace(/```json\s*/g, "")
86
+ .replace(/```\s*/g, "")
87
+ .trim();
88
+ const parsed = JSON.parse(cleaned);
89
+ const validated = EvalDecisionSchema.parse(parsed);
90
+ return JSON.stringify(validated);
91
+ }
92
+ catch (err) {
93
+ this.logger.error(`Attempt ${attempt + 1} invalid`, err);
94
+ }
95
+ }
96
+ this.logger.error(`All ${MAX_RETRIES} evaluation attempts failed, using fallback`);
97
+ const nextLink = NEXT_LINKS[link];
98
+ if (nextLink) {
99
+ return JSON.stringify({
100
+ decision: "activate_next",
101
+ reason: `Auto-advance from ${link} (after ${MAX_RETRIES} eval failures)`,
102
+ nextLink,
103
+ });
104
+ }
105
+ return JSON.stringify({
106
+ decision: "close_chain",
107
+ reason: `Accept link completed (after ${MAX_RETRIES} eval failures)`,
108
+ });
109
+ }
110
+ }
111
+ export { CHAIN_LINKS };
112
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/worker/evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,25 @@
1
1
  import { ZkClient } from "../zk/client.js";
2
+ import { HookEngine } from "../hooks/engine.js";
3
+ import { TemplateEngine } from "../executor/template.js";
4
+ import { ClaudeRunner } from "../executor/runner.js";
5
+ import { SelfEvaluator } from "./evaluator.js";
2
6
  export declare class WorkerWatcher {
3
7
  private zk;
4
8
  private instanceId;
5
- private workDir;
6
- private command;
7
- private cacheDir;
8
9
  private leaderInstanceId;
10
+ private hooks;
11
+ private templateEngine;
12
+ private runner;
13
+ private evaluator;
9
14
  private inFlight;
10
- private templates;
11
15
  private instanceName;
12
16
  private instanceRole;
17
+ private logger;
13
18
  stopped: boolean;
14
- constructor(zk: ZkClient, instanceId: string, workDir: string, command: string, cacheDir: string, leaderInstanceId: string);
19
+ constructor(zk: ZkClient, instanceId: string, leaderInstanceId: string, hooks: HookEngine, templateEngine: TemplateEngine, runner: ClaudeRunner, evaluator: SelfEvaluator);
15
20
  start(): Promise<void>;
16
21
  private watchLoop;
17
22
  private processMessage;
23
+ private sendCompletionReport;
18
24
  stop(): void;
19
25
  }
@@ -1,51 +1,38 @@
1
1
  import * as fs from "node:fs";
2
- import path from "node:path";
3
2
  import * as paths from "../zk/paths.js";
4
3
  import { MessageSchema } from "../models/schemas.js";
5
- import { execWithTee } from "../utils/exec.js";
6
- import { expandHomeDir } from "../config.js";
7
- const LINK_TEMPLATES = ["plan", "build", "verify", "review", "accept"];
4
+ import { Logger } from "../utils/logger.js";
5
+ import { CHAIN_LINKS } from "./evaluator.js";
8
6
  export class WorkerWatcher {
9
7
  zk;
10
8
  instanceId;
11
- workDir;
12
- command;
13
- cacheDir;
14
9
  leaderInstanceId;
10
+ hooks;
11
+ templateEngine;
12
+ runner;
13
+ evaluator;
15
14
  inFlight = new Set();
16
- templates = {};
17
15
  instanceName = "";
18
16
  instanceRole = "";
17
+ logger = new Logger("WorkerWatcher");
19
18
  stopped = false;
20
- constructor(zk, instanceId, workDir, command, cacheDir, leaderInstanceId) {
19
+ constructor(zk, instanceId, leaderInstanceId, hooks, templateEngine, runner, evaluator) {
21
20
  this.zk = zk;
22
21
  this.instanceId = instanceId;
23
- this.workDir = workDir;
24
- this.command = command;
25
- this.cacheDir = cacheDir;
26
22
  this.leaderInstanceId = leaderInstanceId;
23
+ this.hooks = hooks;
24
+ this.templateEngine = templateEngine;
25
+ this.runner = runner;
26
+ this.evaluator = evaluator;
27
27
  }
28
28
  async start() {
29
- // Load instance metadata
30
29
  const instData = await this.zk.getInstance(this.instanceId);
31
30
  this.instanceName = instData?.name ?? this.instanceId.slice(0, 8);
32
31
  this.instanceRole = instData?.role ?? "builder";
33
- // Load link templates from agents dir
34
- const agentsDir = path.join(this.workDir, ".claude-orchestrator", "agents");
35
- for (const link of LINK_TEMPLATES) {
36
- try {
37
- this.templates[link] = await fs.promises.readFile(path.join(agentsDir, `worker-${link}.md`), "utf-8");
38
- }
39
- catch {
40
- this.templates[link] = `You are a Worker.\n\n## Task\n\n{{content}}`;
41
- }
42
- }
32
+ await this.templateEngine.loadAll();
43
33
  await this.zk.mkdirp(paths.messageDirPath(this.instanceId));
44
- console.log(`Watching for messages on instance ${this.instanceId.slice(0, 8)}...`);
45
- console.log(`Work dir: ${this.workDir}`);
46
- console.log(`Command: ${this.command}`);
47
- console.log(`CACHE_DIR: ${path.join(expandHomeDir(this.cacheDir), this.leaderInstanceId)}`);
48
- console.log("Press Ctrl+C to stop.\n");
34
+ this.logger.info(`Watching for messages on instance ${this.instanceId.slice(0, 8)}...`);
35
+ this.logger.info("Press Ctrl+C to stop.");
49
36
  this.watchLoop();
50
37
  }
51
38
  async watchLoop() {
@@ -76,64 +63,47 @@ export class WorkerWatcher {
76
63
  return;
77
64
  this.inFlight.add(msgId);
78
65
  const fromLabel = msg.from_name || msg.from_instance?.slice(0, 8) || "unknown";
79
- const timestamp = new Date().toLocaleTimeString();
80
66
  const link = msg.link ?? "_generic";
81
67
  const uniqueKey = `task-${msgId}-${Date.now().toString(36)}`;
82
- const resolvedCacheDir = expandHomeDir(path.join(this.cacheDir, this.leaderInstanceId));
83
- const resultPath = path.join(resolvedCacheDir, `${uniqueKey}-result.md`);
84
- const logPath = path.join(resolvedCacheDir, `${uniqueKey}.log`);
85
- // Select and render template
86
- const template = this.templates[link];
87
- let prompt;
88
- if (template) {
89
- prompt = template
90
- .replace(/\{\{name\}\}/g, this.instanceName)
91
- .replace(/\{\{preset_role\}\}/g, this.instanceRole)
92
- .replace(/\{\{task_title\}\}/g, msg.task_title ?? "")
93
- .replace(/\{\{task_description\}\}/g, msg.task_description ?? msg.content)
94
- .replace(/\{\{task_criteria\}\}/g, msg.task_criteria ?? "")
95
- .replace(/\{\{task_doc_path\}\}/g, msg.task_doc_path ?? "")
96
- .replace(/\{\{result_path\}\}/g, resultPath)
97
- .replace(/\{\{work_dir\}\}/g, this.workDir)
98
- .replace(/\{\{time\}\}/g, new Date().toISOString())
99
- .replace(/\{\{content\}\}/g, msg.content);
100
- }
101
- else {
102
- prompt = msg.content;
103
- }
104
- console.log(`[${timestamp}] Message from ${fromLabel} (${msg.type}):`);
105
- console.log(` ${msg.content.slice(0, 200)}`);
68
+ const logPath = this.runner.logPath(uniqueKey);
69
+ const resultPath = this.runner.resultPath(uniqueKey);
70
+ const template = this.templateEngine.get(link);
71
+ const prompt = template
72
+ ? this.templateEngine.render(template, {
73
+ name: this.instanceName,
74
+ preset_role: this.instanceRole,
75
+ task_title: msg.task_title ?? "",
76
+ task_description: msg.task_description ?? msg.content,
77
+ task_criteria: msg.task_criteria ?? "",
78
+ task_doc_path: msg.task_doc_path ?? "",
79
+ result_path: resultPath,
80
+ work_dir: "",
81
+ time: new Date().toISOString(),
82
+ content: msg.content,
83
+ })
84
+ : msg.content;
85
+ this.logger.info(`Message from ${fromLabel} (${msg.type}): ${msg.content.slice(0, 200)}`);
86
+ if (link !== "_generic")
87
+ this.logger.info(` Link: ${link}`);
88
+ this.logger.info("Processing...");
89
+ const hookCtx = {
90
+ instanceId: this.instanceId,
91
+ instanceName: this.instanceName,
92
+ instanceRole: this.instanceRole,
93
+ messageId: msgId,
94
+ messageType: msg.type,
95
+ messageContent: msg.content,
96
+ fromInstance: msg.from_instance,
97
+ fromName: msg.from_name,
98
+ toInstance: msg.to_instance ?? "",
99
+ workDir: "",
100
+ link: link !== "_generic" ? link : null,
101
+ };
102
+ this.hooks.fire("worker_message_start", hookCtx);
103
+ const result = await this.runner.run(prompt, logPath);
104
+ this.hooks.fire("worker_message_end", { ...hookCtx, logPath, exitCode: result.code });
106
105
  if (link !== "_generic") {
107
- console.log(` Link: ${link}`);
108
- }
109
- console.log(`[${timestamp}] Processing...`);
110
- await execWithTee(this.command, prompt, logPath, this.workDir);
111
- // Send completion report to leader (only for linked task messages)
112
- if (link !== "_generic") {
113
- try {
114
- const report = [
115
- `Link: ${link}`,
116
- `Status: completed`,
117
- `Result Path: ${resultPath}`,
118
- `Task completed. Leader, please review and decide next step.`,
119
- ].join("\n");
120
- await this.zk.createMessage(this.leaderInstanceId, {
121
- type: "direct",
122
- from_instance: this.instanceId,
123
- from_name: this.instanceName,
124
- from_role: this.instanceRole,
125
- to_instance: this.leaderInstanceId,
126
- content: report,
127
- created_at: new Date().toISOString(),
128
- read: false,
129
- result_path: resultPath,
130
- link,
131
- });
132
- console.log(`[${timestamp}] Completion report sent to Leader.`);
133
- }
134
- catch (err) {
135
- console.error(`[${timestamp}] Failed to send completion report: ${err}`);
136
- }
106
+ await this.sendCompletionReport(link, msg, resultPath, uniqueKey);
137
107
  }
138
108
  try {
139
109
  msg.read = true;
@@ -143,7 +113,51 @@ export class WorkerWatcher {
143
113
  // best effort
144
114
  }
145
115
  this.inFlight.delete(msgId);
146
- console.log(`[${timestamp}] Done. Log: ${logPath}`);
116
+ this.logger.info(`Done. Log: ${logPath}`);
117
+ }
118
+ async sendCompletionReport(link, msg, resultPath, uniqueKey) {
119
+ try {
120
+ let reportContent;
121
+ let reportLink = link;
122
+ if (link === "decompose") {
123
+ try {
124
+ reportContent = await fs.promises.readFile(resultPath, "utf-8");
125
+ reportLink = "task_defs";
126
+ }
127
+ catch {
128
+ reportContent = `Link: ${link}\nStatus: completed\nResult Path: ${resultPath}`;
129
+ }
130
+ }
131
+ else if (CHAIN_LINKS.includes(link)) {
132
+ const msgVars = {
133
+ task_title: msg.task_title ?? "",
134
+ task_description: msg.task_description ?? "",
135
+ task_criteria: msg.task_criteria ?? "",
136
+ task_doc_path: msg.task_doc_path ?? "",
137
+ content: msg.content,
138
+ };
139
+ reportContent = await this.evaluator.evaluate(link, msgVars, resultPath, uniqueKey);
140
+ }
141
+ else {
142
+ reportContent = `Link: ${link}\nStatus: completed\nResult Path: ${resultPath}\nTask completed.`;
143
+ }
144
+ await this.zk.createMessage(this.leaderInstanceId, {
145
+ type: "direct",
146
+ from_instance: this.instanceId,
147
+ from_name: this.instanceName,
148
+ from_role: this.instanceRole,
149
+ to_instance: this.instanceId,
150
+ content: reportContent,
151
+ created_at: new Date().toISOString(),
152
+ read: false,
153
+ result_path: resultPath,
154
+ link: reportLink,
155
+ });
156
+ this.logger.info("Completion report sent.");
157
+ }
158
+ catch (err) {
159
+ this.logger.error("Failed to send completion report", err);
160
+ }
147
161
  }
148
162
  stop() {
149
163
  this.stopped = true;
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/worker/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/worker/watcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adamancyzhang/claude-orchestrator",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Multi-agent orchestration CLI backed by ZooKeeper — register, assign tasks, communicate, share context",
5
5
  "repository": "github:adamancyzhang/claude-orchestrator-server",
6
6
  "license": "MIT",
@@ -1,35 +0,0 @@
1
- import { ZkClient } from "../zk/client.js";
2
- import { TaskQueue } from "../modules/task-queue.js";
3
- import { MessageRouter } from "../modules/message-router.js";
4
- import type { Message } from "../models/schemas.js";
5
- export interface DecisionContext {
6
- teamStatus: object;
7
- taskQueues: object;
8
- chainStatus: object;
9
- }
10
- export interface Decision {
11
- decision: "pass" | "feedback" | "reject";
12
- reason: string;
13
- feedbackToWorker?: string;
14
- nextAction: {
15
- action: "activate_next_link" | "reassign" | "close_chain" | "broadcast_help" | "none";
16
- nextLink: string | null;
17
- suggestedWorker: string | null;
18
- messageToWorker: string | null;
19
- };
20
- }
21
- export declare class DecisionEngine {
22
- private zk;
23
- private taskQueue;
24
- private messageRouter;
25
- private command;
26
- private cacheDir;
27
- private leaderInstanceId;
28
- private template;
29
- private templatePath;
30
- constructor(zk: ZkClient, taskQueue: TaskQueue, messageRouter: MessageRouter, command: string, cacheDir: string, leaderInstanceId: string, templatePath?: string);
31
- private loadTemplate;
32
- evaluate(report: Message, context: DecisionContext): Promise<Decision>;
33
- private executeDecision;
34
- private parseOutput;
35
- }