@adamancyzhang/claude-orchestrator 0.3.0 → 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 (93) hide show
  1. package/README.md +203 -201
  2. package/dist/cli/commands.d.ts +6 -17
  3. package/dist/cli/commands.js +133 -172
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/config.d.ts +28 -14
  6. package/dist/config.js +51 -20
  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 +115 -250
  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 +35 -13
  27. package/dist/leader/index.js.map +1 -1
  28. package/dist/leader/recovery.d.ts +2 -0
  29. package/dist/leader/recovery.js +37 -22
  30. package/dist/leader/recovery.js.map +1 -1
  31. package/dist/leader/state.d.ts +2 -1
  32. package/dist/leader/state.js +48 -2
  33. package/dist/leader/state.js.map +1 -1
  34. package/dist/leader/tui.d.ts +8 -0
  35. package/dist/leader/tui.js +74 -9
  36. package/dist/leader/tui.js.map +1 -1
  37. package/dist/leader/watcher.d.ts +4 -3
  38. package/dist/leader/watcher.js +8 -13
  39. package/dist/leader/watcher.js.map +1 -1
  40. package/dist/models/schemas.d.ts +307 -87
  41. package/dist/models/schemas.js +51 -43
  42. package/dist/models/schemas.js.map +1 -1
  43. package/dist/modules/message-router.d.ts +1 -3
  44. package/dist/modules/message-router.js +3 -26
  45. package/dist/modules/message-router.js.map +1 -1
  46. package/dist/modules/registry.js +3 -3
  47. package/dist/modules/registry.js.map +1 -1
  48. package/dist/modules/task-queue.d.ts +1 -1
  49. package/dist/modules/task-queue.js +28 -2
  50. package/dist/modules/task-queue.js.map +1 -1
  51. package/dist/skills/CLAUDE.md +155 -0
  52. package/dist/skills/claude-code-developer/SKILL.md +325 -0
  53. package/dist/skills/claude-orchestrator/SKILL.md +244 -0
  54. package/dist/skills/task-acceptance/SKILL.md +201 -0
  55. package/dist/skills/task-execution/SKILL.md +142 -0
  56. package/dist/skills/task-planning/SKILL.md +188 -0
  57. package/dist/skills/task-review/SKILL.md +220 -0
  58. package/dist/skills/task-traceability/SKILL.md +154 -0
  59. package/dist/skills/task-verification/SKILL.md +194 -0
  60. package/dist/templates/worker-accept.md +46 -0
  61. package/dist/templates/worker-build.md +45 -0
  62. package/dist/templates/worker-decompose.md +67 -0
  63. package/dist/templates/worker-evaluate.md +41 -0
  64. package/dist/templates/worker-plan.md +43 -0
  65. package/dist/templates/worker-review.md +46 -0
  66. package/dist/templates/worker-verify.md +47 -0
  67. package/dist/utils/exec.d.ts +5 -0
  68. package/dist/utils/exec.js +27 -0
  69. package/dist/utils/exec.js.map +1 -1
  70. package/dist/utils/logger.d.ts +10 -0
  71. package/dist/utils/logger.js +22 -0
  72. package/dist/utils/logger.js.map +1 -0
  73. package/dist/worker/evaluator.d.ts +13 -0
  74. package/dist/worker/evaluator.js +112 -0
  75. package/dist/worker/evaluator.js.map +1 -0
  76. package/dist/worker/watcher.d.ts +13 -4
  77. package/dist/worker/watcher.js +108 -24
  78. package/dist/worker/watcher.js.map +1 -1
  79. package/dist/zk/client.d.ts +0 -5
  80. package/dist/zk/client.js +0 -27
  81. package/dist/zk/client.js.map +1 -1
  82. package/dist/zk/paths.d.ts +8 -10
  83. package/dist/zk/paths.js +1 -6
  84. package/dist/zk/paths.js.map +1 -1
  85. package/dist/zk/watcher.d.ts +0 -2
  86. package/dist/zk/watcher.js +0 -3
  87. package/dist/zk/watcher.js.map +1 -1
  88. package/package.json +2 -2
  89. package/dist/modules/context-store.d.ts +0 -10
  90. package/dist/modules/context-store.js +0 -25
  91. package/dist/modules/context-store.js.map +0 -1
  92. package/dist/templates/leader.md +0 -10
  93. package/dist/templates/worker.md +0 -8
@@ -37,7 +37,62 @@ function workerStatusColor(status) {
37
37
  return DIM;
38
38
  }
39
39
  export class LeaderTui {
40
+ inputBuffer = "";
41
+ inputCallback = null;
42
+ rawMode = false;
43
+ constructor() {
44
+ this.setupInput();
45
+ }
46
+ onInput(cb) {
47
+ this.inputCallback = cb;
48
+ }
49
+ enableRawMode() {
50
+ if (this.rawMode)
51
+ return;
52
+ if (process.stdin.isTTY) {
53
+ process.stdin.setRawMode(true);
54
+ process.stdin.resume();
55
+ this.rawMode = true;
56
+ }
57
+ }
58
+ disableRawMode() {
59
+ if (!this.rawMode)
60
+ return;
61
+ process.stdin.setRawMode(false);
62
+ process.stdin.pause();
63
+ this.rawMode = false;
64
+ }
65
+ setupInput() {
66
+ process.stdin.on("data", (data) => {
67
+ const key = data.toString();
68
+ if (key === "\x03") {
69
+ // Ctrl+C — let SIGINT handler deal with it
70
+ process.kill(process.pid, "SIGINT");
71
+ return;
72
+ }
73
+ if (key === "\r" || key === "\n") {
74
+ if (this.inputBuffer.trim() && this.inputCallback) {
75
+ this.inputCallback(this.inputBuffer.trim());
76
+ }
77
+ this.inputBuffer = "";
78
+ return;
79
+ }
80
+ if (key === "\x7f" || key === "\x08") {
81
+ this.inputBuffer = this.inputBuffer.slice(0, -1);
82
+ return;
83
+ }
84
+ if (key === "\x1b") {
85
+ this.inputBuffer = "";
86
+ return;
87
+ }
88
+ // Printable characters only
89
+ if (key >= " ") {
90
+ this.inputBuffer += key;
91
+ }
92
+ });
93
+ }
40
94
  render(state) {
95
+ this.enableRawMode();
41
96
  const cols = process.stdout.columns || 120;
42
97
  const rows = process.stdout.rows || 30;
43
98
  const halfW = Math.floor((cols - 4) / 2);
@@ -51,11 +106,13 @@ export class LeaderTui {
51
106
  teamLines.push(` ${DIM}No workers online${RESET}`);
52
107
  }
53
108
  else {
54
- const header = `${BOLD}${padRight("Name", 16)}${padRight("Role", 14)}${padRight("Status", 10)}Current Task${RESET}`;
109
+ const header = `${BOLD}${padRight("Name", 14)}${padRight("Preset", 12)}${padRight("Current Role", 16)}${padRight("Status", 8)}Current Task${RESET}`;
55
110
  teamLines.push(` ${header}`);
56
111
  for (const w of state.workers.slice(0, 8)) {
57
- const statusColored = `${workerStatusColor(w.status)}${padRight(w.status, 9)}${RESET}`;
58
- const line = ` ${padRight(truncate(w.name, 15), 16)}${padRight(w.role, 14)}${statusColored}${truncate(w.currentTaskId ?? "-", teamWidth - 44)}`;
112
+ const statusColored = `${workerStatusColor(w.status)}${padRight(w.status, 7)}${RESET}`;
113
+ const currentRole = w.currentRole ?? `${DIM}(idle)${RESET}`;
114
+ const cross = w.currentRole && w.currentRole !== w.presetRole ? `${MAGENTA}◀←${RESET} ` : "";
115
+ const line = ` ${padRight(truncate(w.name, 13), 14)}${padRight(w.presetRole, 12)}${cross}${padRight(currentRole, 16)}${statusColored}${truncate(w.currentTaskId ?? "-", teamWidth - 54)}`;
59
116
  teamLines.push(line);
60
117
  }
61
118
  if (state.workers.length > 8) {
@@ -75,10 +132,11 @@ export class LeaderTui {
75
132
  }
76
133
  else {
77
134
  for (const t of pendTasks) {
78
- const title = truncate(t.title ?? "", halfW - 10);
135
+ const title = truncate(t.title ?? "", halfW - 16);
79
136
  const prio = t.priority === 0 ? `${RED}HIGH${RESET}` :
80
137
  t.priority === 1 ? `${YELLOW}MED${RESET}` : `${DIM}LOW${RESET}`;
81
- pendLines.push(` ${prio} ${title}`);
138
+ const link = t.link ? `${CYAN}[${t.link.charAt(0).toUpperCase() + t.link.slice(1)}]${RESET} ` : "";
139
+ pendLines.push(` ${link}${prio} ${title}`);
82
140
  }
83
141
  }
84
142
  // Right: In Progress
@@ -107,9 +165,10 @@ export class LeaderTui {
107
165
  for (let i = 0; i < leftBox.length; i++) {
108
166
  out += leftBox[i] + " " + rightBox[i] + "\n";
109
167
  }
110
- // ── Event Log (bottom) ──
111
- const remainingH = rows - teamBoxH - (taskH + 2) - 3;
112
- const logH = Math.max(remainingH, 5);
168
+ // ── Event Log ──
169
+ const inputSectionH = 4; // input box height
170
+ const remainingH = rows - teamBoxH - (taskH + 2) - 3 - inputSectionH;
171
+ const logH = Math.max(remainingH, 3);
113
172
  const logLines = [];
114
173
  logLines.push(` ${BOLD}EVENT LOG${RESET}`);
115
174
  logLines.push(` ${DIM}${"─".repeat(cols - 4)}${RESET}`);
@@ -120,13 +179,19 @@ export class LeaderTui {
120
179
  while (logLines.length < logH - 1)
121
180
  logLines.push("");
122
181
  out += box(cols - 2, ...logLines);
182
+ // ── Input Line ──
183
+ const inputPrompt = `> ${this.inputBuffer}█`;
184
+ const inputHint = this.inputBuffer.length === 0 ? `${DIM}Type a message and press Enter to send${RESET}` : "";
185
+ const inputBox = box(cols - 2, inputPrompt, inputHint || " ");
186
+ out += inputBox;
123
187
  // ── Footer ──
124
188
  const idShort = state.leaderInstanceId.slice(0, 8);
125
- const footer = `${DIM}Leader: ${state.leaderName} | Instance: ${idShort} | CACHE_DIR: ${state.cacheDir} | Press Ctrl+C to stop${RESET}`;
189
+ const footer = `${DIM}Leader: ${state.leaderName} | Instance: ${idShort} | CACHE_DIR: ${state.cacheDir} | Ctrl+C to stop${RESET}`;
126
190
  out += `\n${footer}`;
127
191
  process.stdout.write(out);
128
192
  }
129
193
  destroy() {
194
+ this.disableRawMode();
130
195
  process.stdout.write(SHOW_CURSOR + CLEAR);
131
196
  }
132
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/leader/tui.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,MAAM,CAAC;AACnB,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;AACrC,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC;AAClC,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC;AAElC,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;AAC1B,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;AACzB,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AACxB,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;AACzB,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC;AAC3B,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;AAC5B,MAAM,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC;AAC1B,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC;AAC7B,MAAM,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC;AAE1B,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACjC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAG,KAAe;IAC5C,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;IAC1D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,KAAkB;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzC,IAAI,GAAG,GAAG,KAAK,GAAG,WAAW,CAAC;QAE9B,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QACvC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,oBAAoB,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,KAAK,EAAE,CAAC;YACpH,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;gBACvF,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC;gBAChJ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;QAEpC,2CAA2C;QAC3C,gBAAgB;QAChB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,mBAAmB,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAe,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAI,CAAC,CAAC,QAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC;oBACpD,CAAC,CAAC,QAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC;gBACzF,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,KAAK,EAAE,CAAC,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,uBAAuB,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAe,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,QAAQ,CAAE,CAAC,CAAC,UAAqB,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;gBACtE,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,OAAO,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/C,CAAC;QAED,2BAA2B;QAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;QAElC,eAAe;QACf,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,KAAK,CAAC,UAAU,gBAAgB,OAAO,iBAAiB,KAAK,CAAC,QAAQ,0BAA0B,KAAK,EAAE,CAAC;QACxI,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC;QAErB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/leader/tui.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { ZkClient } from "../zk/client.js";
2
2
  import { LeaderEventBus } from "./event-bus.js";
3
+ import type { ChainRouter } from "./chain-router.js";
3
4
  export declare class LeaderWatcher {
4
5
  private zk;
5
6
  private eventBus;
6
7
  private leaderInstanceId;
7
- private command;
8
- private cacheDir;
8
+ private chainRouter;
9
9
  private inFlight;
10
10
  private stopped;
11
- constructor(zk: ZkClient, eventBus: LeaderEventBus, leaderInstanceId: string, command: string, cacheDir: string);
11
+ private logger;
12
+ constructor(zk: ZkClient, eventBus: LeaderEventBus, leaderInstanceId: string, chainRouter: ChainRouter);
12
13
  start(): Promise<void>;
13
14
  private watchLoop;
14
15
  private processMessage;
@@ -1,22 +1,19 @@
1
- import path from "node:path";
2
1
  import * as paths from "../zk/paths.js";
3
2
  import { MessageSchema } from "../models/schemas.js";
4
- import { execWithTee } from "../utils/exec.js";
5
- import { expandHomeDir } from "../config.js";
3
+ import { Logger } from "../utils/logger.js";
6
4
  export class LeaderWatcher {
7
5
  zk;
8
6
  eventBus;
9
7
  leaderInstanceId;
10
- command;
11
- cacheDir;
8
+ chainRouter;
12
9
  inFlight = new Set();
13
10
  stopped = false;
14
- constructor(zk, eventBus, leaderInstanceId, command, cacheDir) {
11
+ logger = new Logger("LeaderWatcher");
12
+ constructor(zk, eventBus, leaderInstanceId, chainRouter) {
15
13
  this.zk = zk;
16
14
  this.eventBus = eventBus;
17
15
  this.leaderInstanceId = leaderInstanceId;
18
- this.command = command;
19
- this.cacheDir = cacheDir;
16
+ this.chainRouter = chainRouter;
20
17
  }
21
18
  async start() {
22
19
  await this.zk.mkdirp(paths.messageDirPath(this.leaderInstanceId));
@@ -50,16 +47,14 @@ export class LeaderWatcher {
50
47
  return;
51
48
  this.inFlight.add(msgId);
52
49
  const fromLabel = msg.from_name || msg.from_instance?.slice(0, 8) || "unknown";
53
- const uniqueKey = `msg-${msgId}-${Date.now().toString(36)}`;
50
+ this.logger.info(`Message from ${fromLabel} (${msg.type}): ${msg.content.slice(0, 100)}`);
54
51
  this.eventBus.emit({
55
52
  type: "message_received",
56
53
  from: fromLabel,
57
54
  content: msg.content,
58
55
  msgId,
59
56
  });
60
- const resolvedCacheDir = expandHomeDir(this.cacheDir);
61
- const logPath = path.join(resolvedCacheDir, this.leaderInstanceId, `${uniqueKey}.log`);
62
- await execWithTee(this.command, msg.content, logPath);
57
+ await this.chainRouter.route(msg);
63
58
  try {
64
59
  msg.read = true;
65
60
  await this.zk.updateMessage(this.leaderInstanceId, msgId, msg);
@@ -68,7 +63,7 @@ export class LeaderWatcher {
68
63
  // best effort
69
64
  }
70
65
  this.inFlight.delete(msgId);
71
- this.eventBus.emit({ type: "message_processed", msgId, logPath });
66
+ this.eventBus.emit({ type: "message_processed", msgId });
72
67
  }
73
68
  stop() {
74
69
  this.stopped = true;
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/leader/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/leader/watcher.ts"],"names":[],"mappings":"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"}