@adamancyzhang/claude-orchestrator 0.2.8 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +179 -186
  2. package/dist/cli/commands.d.ts +13 -20
  3. package/dist/cli/commands.js +171 -288
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/config.d.ts +25 -11
  6. package/dist/config.js +49 -13
  7. package/dist/config.js.map +1 -1
  8. package/dist/index.js +122 -215
  9. package/dist/index.js.map +1 -1
  10. package/dist/leader/decision-engine.d.ts +35 -0
  11. package/dist/leader/decision-engine.js +102 -0
  12. package/dist/leader/decision-engine.js.map +1 -0
  13. package/dist/leader/event-bus.d.ts +11 -0
  14. package/dist/leader/event-bus.js +21 -0
  15. package/dist/leader/event-bus.js.map +1 -0
  16. package/dist/leader/index.d.ts +7 -0
  17. package/dist/leader/index.js +96 -0
  18. package/dist/leader/index.js.map +1 -0
  19. package/dist/leader/monitor.d.ts +14 -0
  20. package/dist/leader/monitor.js +55 -0
  21. package/dist/leader/monitor.js.map +1 -0
  22. package/dist/leader/orchestrator.d.ts +14 -0
  23. package/dist/leader/orchestrator.js +83 -0
  24. package/dist/leader/orchestrator.js.map +1 -0
  25. package/dist/leader/recovery.d.ts +11 -0
  26. package/dist/leader/recovery.js +61 -0
  27. package/dist/leader/recovery.js.map +1 -0
  28. package/dist/leader/state.d.ts +24 -0
  29. package/dist/leader/state.js +122 -0
  30. package/dist/leader/state.js.map +1 -0
  31. package/dist/leader/task-generator.d.ts +34 -0
  32. package/dist/leader/task-generator.js +93 -0
  33. package/dist/leader/task-generator.js.map +1 -0
  34. package/dist/leader/tui.d.ts +5 -0
  35. package/dist/leader/tui.js +136 -0
  36. package/dist/leader/tui.js.map +1 -0
  37. package/dist/leader/watcher.d.ts +18 -0
  38. package/dist/leader/watcher.js +89 -0
  39. package/dist/leader/watcher.js.map +1 -0
  40. package/dist/models/schemas.d.ts +111 -100
  41. package/dist/models/schemas.js +54 -45
  42. package/dist/models/schemas.js.map +1 -1
  43. package/dist/modules/message-router.d.ts +2 -2
  44. package/dist/modules/message-router.js +10 -16
  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 +4 -1
  49. package/dist/modules/task-queue.js +114 -10
  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 +180 -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/leader-decide.md +59 -0
  61. package/dist/templates/leader-decompose.md +69 -0
  62. package/dist/templates/worker-accept.md +46 -0
  63. package/dist/templates/worker-build.md +45 -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 +8 -0
  68. package/dist/utils/exec.js +45 -0
  69. package/dist/utils/exec.js.map +1 -0
  70. package/dist/worker/watcher.d.ts +19 -0
  71. package/dist/worker/watcher.js +152 -0
  72. package/dist/worker/watcher.js.map +1 -0
  73. package/dist/zk/client.d.ts +5 -5
  74. package/dist/zk/client.js +16 -26
  75. package/dist/zk/client.js.map +1 -1
  76. package/dist/zk/paths.d.ts +9 -9
  77. package/dist/zk/paths.js +4 -5
  78. package/dist/zk/paths.js.map +1 -1
  79. package/dist/zk/watcher.d.ts +0 -2
  80. package/dist/zk/watcher.js +0 -3
  81. package/dist/zk/watcher.js.map +1 -1
  82. package/package.json +3 -6
  83. package/dist/modules/context-store.d.ts +0 -10
  84. package/dist/modules/context-store.js +0 -25
  85. package/dist/modules/context-store.js.map +0 -1
  86. package/dist/modules/message-watcher.d.ts +0 -12
  87. package/dist/modules/message-watcher.js +0 -133
  88. package/dist/modules/message-watcher.js.map +0 -1
  89. package/dist/server.d.ts +0 -2
  90. package/dist/server.js +0 -490
  91. package/dist/server.js.map +0 -1
@@ -1,9 +1,11 @@
1
1
  import { z } from "zod";
2
- export declare const InstanceStatus: z.ZodEnum<["idle", "busy", "blocked"]>;
2
+ export declare const InstanceStatus: z.ZodEnum<["idle", "busy"]>;
3
3
  export type InstanceStatus = z.infer<typeof InstanceStatus>;
4
- export declare const InstanceRole: z.ZodEnum<["architect", "developer", "tester", "general"]>;
4
+ export declare const InstanceRole: z.ZodEnum<["planner", "builder", "verifier", "reviewer", "accepter", "leader"]>;
5
5
  export type InstanceRole = z.infer<typeof InstanceRole>;
6
- export declare const TaskStatus: z.ZodEnum<["pending", "claimed", "completed"]>;
6
+ export declare const TaskLink: z.ZodEnum<["plan", "build", "verify", "review", "accept"]>;
7
+ export type TaskLink = z.infer<typeof TaskLink>;
8
+ export declare const TaskStatus: z.ZodEnum<["pending", "claimed", "completed", "blocked", "failed"]>;
7
9
  export type TaskStatus = z.infer<typeof TaskStatus>;
8
10
  export declare const TaskPriority: z.ZodNumber;
9
11
  export type TaskPriority = z.infer<typeof TaskPriority>;
@@ -13,24 +15,27 @@ export type MessageType = z.infer<typeof MessageType>;
13
15
  export declare const InstanceSchema: z.ZodObject<{
14
16
  id: z.ZodString;
15
17
  name: z.ZodString;
16
- role: z.ZodDefault<z.ZodEnum<["architect", "developer", "tester", "general"]>>;
17
- status: z.ZodDefault<z.ZodEnum<["idle", "busy", "blocked"]>>;
18
+ role: z.ZodDefault<z.ZodEnum<["planner", "builder", "verifier", "reviewer", "accepter", "leader"]>>;
19
+ status: z.ZodDefault<z.ZodEnum<["idle", "busy"]>>;
18
20
  current_task_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
19
21
  connected_since: z.ZodString;
22
+ work_dir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
20
23
  }, "strip", z.ZodTypeAny, {
21
- status: "idle" | "busy" | "blocked";
24
+ status: "idle" | "busy";
22
25
  id: string;
23
26
  name: string;
24
- role: "architect" | "developer" | "tester" | "general";
27
+ role: "planner" | "builder" | "verifier" | "reviewer" | "accepter" | "leader";
25
28
  current_task_id: string | null;
26
29
  connected_since: string;
30
+ work_dir: string | null;
27
31
  }, {
28
32
  id: string;
29
33
  name: string;
30
34
  connected_since: string;
31
- status?: "idle" | "busy" | "blocked" | undefined;
32
- role?: "architect" | "developer" | "tester" | "general" | undefined;
35
+ status?: "idle" | "busy" | undefined;
36
+ role?: "planner" | "builder" | "verifier" | "reviewer" | "accepter" | "leader" | undefined;
33
37
  current_task_id?: string | null | undefined;
38
+ work_dir?: string | null | undefined;
34
39
  }>;
35
40
  export type Instance = z.infer<typeof InstanceSchema>;
36
41
  export declare const TaskSchema: z.ZodObject<{
@@ -38,7 +43,7 @@ export declare const TaskSchema: z.ZodObject<{
38
43
  title: z.ZodString;
39
44
  description: z.ZodDefault<z.ZodString>;
40
45
  priority: z.ZodDefault<z.ZodNumber>;
41
- status: z.ZodDefault<z.ZodEnum<["pending", "claimed", "completed"]>>;
46
+ status: z.ZodDefault<z.ZodEnum<["pending", "claimed", "completed", "blocked", "failed"]>>;
42
47
  created_by: z.ZodDefault<z.ZodString>;
43
48
  assigned_to: z.ZodDefault<z.ZodNullable<z.ZodString>>;
44
49
  created_at: z.ZodString;
@@ -46,8 +51,20 @@ export declare const TaskSchema: z.ZodObject<{
46
51
  completed_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
47
52
  claimed_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
48
53
  result: z.ZodDefault<z.ZodNullable<z.ZodString>>;
54
+ link: z.ZodDefault<z.ZodNullable<z.ZodEnum<["plan", "build", "verify", "review", "accept"]>>>;
55
+ chain_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
56
+ retry_count: z.ZodDefault<z.ZodNumber>;
57
+ blocked_reason: z.ZodDefault<z.ZodNullable<z.ZodString>>;
58
+ fail_reason: z.ZodDefault<z.ZodNullable<z.ZodString>>;
59
+ created_by_name: z.ZodDefault<z.ZodString>;
60
+ assigned_to_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
61
+ completed_by_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
62
+ duration_seconds: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
63
+ depends_on: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
64
+ blocked_by: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
49
65
  }, "strip", z.ZodTypeAny, {
50
- status: "pending" | "claimed" | "completed";
66
+ link: "plan" | "build" | "verify" | "review" | "accept" | null;
67
+ status: "pending" | "claimed" | "completed" | "blocked" | "failed";
51
68
  id: string;
52
69
  title: string;
53
70
  description: string;
@@ -59,10 +76,21 @@ export declare const TaskSchema: z.ZodObject<{
59
76
  completed_at: string | null;
60
77
  claimed_by: string | null;
61
78
  result: string | null;
79
+ chain_id: string | null;
80
+ retry_count: number;
81
+ blocked_reason: string | null;
82
+ fail_reason: string | null;
83
+ created_by_name: string;
84
+ assigned_to_name: string | null;
85
+ completed_by_name: string | null;
86
+ duration_seconds: number | null;
87
+ depends_on: string[];
88
+ blocked_by: string[];
62
89
  }, {
63
90
  title: string;
64
91
  created_at: string;
65
- status?: "pending" | "claimed" | "completed" | undefined;
92
+ link?: "plan" | "build" | "verify" | "review" | "accept" | null | undefined;
93
+ status?: "pending" | "claimed" | "completed" | "blocked" | "failed" | undefined;
66
94
  id?: string | undefined;
67
95
  description?: string | undefined;
68
96
  priority?: number | undefined;
@@ -72,6 +100,16 @@ export declare const TaskSchema: z.ZodObject<{
72
100
  completed_at?: string | null | undefined;
73
101
  claimed_by?: string | null | undefined;
74
102
  result?: string | null | undefined;
103
+ chain_id?: string | null | undefined;
104
+ retry_count?: number | undefined;
105
+ blocked_reason?: string | null | undefined;
106
+ fail_reason?: string | null | undefined;
107
+ created_by_name?: string | undefined;
108
+ assigned_to_name?: string | null | undefined;
109
+ completed_by_name?: string | null | undefined;
110
+ duration_seconds?: number | null | undefined;
111
+ depends_on?: string[] | undefined;
112
+ blocked_by?: string[] | undefined;
75
113
  }>;
76
114
  export type Task = z.infer<typeof TaskSchema>;
77
115
  export declare const MessageSchema: z.ZodObject<{
@@ -79,51 +117,62 @@ export declare const MessageSchema: z.ZodObject<{
79
117
  type: z.ZodDefault<z.ZodEnum<["direct", "broadcast", "help"]>>;
80
118
  from_instance: z.ZodDefault<z.ZodString>;
81
119
  from_name: z.ZodDefault<z.ZodString>;
120
+ from_role: z.ZodDefault<z.ZodString>;
82
121
  to_instance: z.ZodDefault<z.ZodNullable<z.ZodString>>;
122
+ to_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
83
123
  content: z.ZodString;
84
124
  created_at: z.ZodString;
85
125
  read: z.ZodDefault<z.ZodBoolean>;
126
+ link: z.ZodDefault<z.ZodNullable<z.ZodString>>;
127
+ task_title: z.ZodDefault<z.ZodNullable<z.ZodString>>;
128
+ task_description: z.ZodDefault<z.ZodNullable<z.ZodString>>;
129
+ task_criteria: z.ZodDefault<z.ZodNullable<z.ZodString>>;
130
+ task_doc_path: z.ZodDefault<z.ZodNullable<z.ZodString>>;
131
+ result_path: z.ZodDefault<z.ZodNullable<z.ZodString>>;
132
+ reply_to: z.ZodDefault<z.ZodNullable<z.ZodString>>;
86
133
  }, "strip", z.ZodTypeAny, {
134
+ link: string | null;
87
135
  type: "direct" | "broadcast" | "help";
88
136
  id: string;
89
137
  created_at: string;
90
138
  from_instance: string;
91
139
  from_name: string;
140
+ from_role: string;
92
141
  to_instance: string | null;
142
+ to_name: string | null;
93
143
  content: string;
94
144
  read: boolean;
145
+ task_title: string | null;
146
+ task_description: string | null;
147
+ task_criteria: string | null;
148
+ task_doc_path: string | null;
149
+ result_path: string | null;
150
+ reply_to: string | null;
95
151
  }, {
96
152
  created_at: string;
97
153
  content: string;
154
+ link?: string | null | undefined;
98
155
  type?: "direct" | "broadcast" | "help" | undefined;
99
156
  id?: string | undefined;
100
157
  from_instance?: string | undefined;
101
158
  from_name?: string | undefined;
159
+ from_role?: string | undefined;
102
160
  to_instance?: string | null | undefined;
161
+ to_name?: string | null | undefined;
103
162
  read?: boolean | undefined;
163
+ task_title?: string | null | undefined;
164
+ task_description?: string | null | undefined;
165
+ task_criteria?: string | null | undefined;
166
+ task_doc_path?: string | null | undefined;
167
+ result_path?: string | null | undefined;
168
+ reply_to?: string | null | undefined;
104
169
  }>;
105
170
  export type Message = z.infer<typeof MessageSchema>;
106
- export declare const ContextEntrySchema: z.ZodObject<{
107
- key: z.ZodString;
108
- value: z.ZodString;
109
- updated_by: z.ZodDefault<z.ZodString>;
110
- updated_at: z.ZodString;
111
- }, "strip", z.ZodTypeAny, {
112
- value: string;
113
- key: string;
114
- updated_by: string;
115
- updated_at: string;
116
- }, {
117
- value: string;
118
- key: string;
119
- updated_at: string;
120
- updated_by?: string | undefined;
121
- }>;
122
- export type ContextEntry = z.infer<typeof ContextEntrySchema>;
123
171
  export declare function createInstance(overrides: {
124
172
  id?: string;
125
173
  name: string;
126
174
  role?: InstanceRole;
175
+ workDir?: string;
127
176
  }): Instance;
128
177
  export declare function createTask(overrides: {
129
178
  title: string;
@@ -131,44 +180,41 @@ export declare function createTask(overrides: {
131
180
  priority?: number;
132
181
  created_by?: string;
133
182
  assigned_to?: string | null;
183
+ created_by_name?: string;
184
+ assigned_to_name?: string | null;
185
+ link?: string | null;
186
+ chain_id?: string | null;
187
+ depends_on?: string[];
188
+ blocked_by?: string[];
134
189
  }): Task;
135
190
  export declare function createMessage(overrides: {
136
191
  type?: MessageType;
137
192
  from_instance: string;
138
193
  from_name: string;
194
+ from_role?: string;
139
195
  to_instance: string;
196
+ to_name?: string | null;
140
197
  content: string;
198
+ task_doc_path?: string | null;
199
+ result_path?: string | null;
200
+ reply_to?: string | null;
201
+ task_title?: string | null;
202
+ task_description?: string | null;
203
+ task_criteria?: string | null;
204
+ link?: string | null;
141
205
  }): Message;
142
- export declare function createContextEntry(overrides: {
143
- key: string;
144
- value: string;
145
- updated_by?: string;
146
- }): ContextEntry;
147
206
  export declare const RegisterInstanceInput: z.ZodObject<{
148
207
  name: z.ZodString;
149
- role: z.ZodDefault<z.ZodEnum<["architect", "developer", "tester", "general"]>>;
208
+ role: z.ZodEnum<["planner", "builder", "verifier", "reviewer", "accepter", "leader"]>;
150
209
  instance_id: z.ZodOptional<z.ZodString>;
151
- work_dir: z.ZodOptional<z.ZodString>;
152
210
  }, "strip", z.ZodTypeAny, {
153
211
  name: string;
154
- role: "architect" | "developer" | "tester" | "general";
212
+ role: "planner" | "builder" | "verifier" | "reviewer" | "accepter" | "leader";
155
213
  instance_id?: string | undefined;
156
- work_dir?: string | undefined;
157
214
  }, {
158
215
  name: string;
159
- role?: "architect" | "developer" | "tester" | "general" | undefined;
216
+ role: "planner" | "builder" | "verifier" | "reviewer" | "accepter" | "leader";
160
217
  instance_id?: string | undefined;
161
- work_dir?: string | undefined;
162
- }>;
163
- export declare const HeartbeatInput: z.ZodObject<{
164
- instance_id: z.ZodString;
165
- current_task: z.ZodOptional<z.ZodString>;
166
- }, "strip", z.ZodTypeAny, {
167
- instance_id: string;
168
- current_task?: string | undefined;
169
- }, {
170
- instance_id: string;
171
- current_task?: string | undefined;
172
218
  }>;
173
219
  export declare const PushTaskInput: z.ZodObject<{
174
220
  title: z.ZodString;
@@ -176,16 +222,28 @@ export declare const PushTaskInput: z.ZodObject<{
176
222
  priority: z.ZodDefault<z.ZodNumber>;
177
223
  instance_id: z.ZodDefault<z.ZodString>;
178
224
  assignee: z.ZodOptional<z.ZodString>;
225
+ link: z.ZodOptional<z.ZodString>;
226
+ chain_id: z.ZodOptional<z.ZodString>;
227
+ depends_on: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
228
+ blocked_by: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
179
229
  }, "strip", z.ZodTypeAny, {
180
230
  title: string;
181
231
  description: string;
182
232
  priority: number;
233
+ depends_on: string[];
234
+ blocked_by: string[];
183
235
  instance_id: string;
236
+ link?: string | undefined;
237
+ chain_id?: string | undefined;
184
238
  assignee?: string | undefined;
185
239
  }, {
186
240
  title: string;
241
+ link?: string | undefined;
187
242
  description?: string | undefined;
188
243
  priority?: number | undefined;
244
+ chain_id?: string | undefined;
245
+ depends_on?: string[] | undefined;
246
+ blocked_by?: string[] | undefined;
189
247
  instance_id?: string | undefined;
190
248
  assignee?: string | undefined;
191
249
  }>;
@@ -222,8 +280,10 @@ export declare const SendMessageInput: z.ZodObject<{
222
280
  to_instance: z.ZodOptional<z.ZodString>;
223
281
  to_name: z.ZodOptional<z.ZodString>;
224
282
  broadcast: z.ZodDefault<z.ZodBoolean>;
283
+ help: z.ZodDefault<z.ZodBoolean>;
225
284
  }, "strip", z.ZodTypeAny, {
226
285
  broadcast: boolean;
286
+ help: boolean;
227
287
  content: string;
228
288
  instance_id: string;
229
289
  to_instance?: string | undefined;
@@ -232,6 +292,7 @@ export declare const SendMessageInput: z.ZodObject<{
232
292
  content: string;
233
293
  instance_id: string;
234
294
  broadcast?: boolean | undefined;
295
+ help?: boolean | undefined;
235
296
  to_instance?: string | undefined;
236
297
  to_name?: string | undefined;
237
298
  }>;
@@ -242,16 +303,6 @@ export declare const PollMessagesInput: z.ZodObject<{
242
303
  }, {
243
304
  instance_id: string;
244
305
  }>;
245
- export declare const WaitForMessageInput: z.ZodObject<{
246
- instance_id: z.ZodString;
247
- timeout_seconds: z.ZodDefault<z.ZodNumber>;
248
- }, "strip", z.ZodTypeAny, {
249
- instance_id: string;
250
- timeout_seconds: number;
251
- }, {
252
- instance_id: string;
253
- timeout_seconds?: number | undefined;
254
- }>;
255
306
  export declare const MarkReadInput: z.ZodObject<{
256
307
  instance_id: z.ZodString;
257
308
  message_id: z.ZodString;
@@ -272,43 +323,3 @@ export declare const DismissMessageInput: z.ZodObject<{
272
323
  instance_id: string;
273
324
  message_id: string;
274
325
  }>;
275
- export declare const RequestHelpInput: z.ZodObject<{
276
- instance_id: z.ZodString;
277
- question: z.ZodString;
278
- context: z.ZodOptional<z.ZodString>;
279
- }, "strip", z.ZodTypeAny, {
280
- instance_id: string;
281
- question: string;
282
- context?: string | undefined;
283
- }, {
284
- instance_id: string;
285
- question: string;
286
- context?: string | undefined;
287
- }>;
288
- export declare const SetContextInput: z.ZodObject<{
289
- key: z.ZodString;
290
- value: z.ZodString;
291
- instance_id: z.ZodDefault<z.ZodString>;
292
- }, "strip", z.ZodTypeAny, {
293
- value: string;
294
- key: string;
295
- instance_id: string;
296
- }, {
297
- value: string;
298
- key: string;
299
- instance_id?: string | undefined;
300
- }>;
301
- export declare const GetContextInput: z.ZodObject<{
302
- key: z.ZodString;
303
- }, "strip", z.ZodTypeAny, {
304
- key: string;
305
- }, {
306
- key: string;
307
- }>;
308
- export declare const DeleteContextInput: z.ZodObject<{
309
- key: z.ZodString;
310
- }, "strip", z.ZodTypeAny, {
311
- key: string;
312
- }, {
313
- key: string;
314
- }>;
@@ -1,8 +1,9 @@
1
1
  import { z } from "zod";
2
2
  // ── Enums ──
3
- export const InstanceStatus = z.enum(["idle", "busy", "blocked"]);
4
- export const InstanceRole = z.enum(["architect", "developer", "tester", "general"]);
5
- export const TaskStatus = z.enum(["pending", "claimed", "completed"]);
3
+ export const InstanceStatus = z.enum(["idle", "busy"]);
4
+ export const InstanceRole = z.enum(["planner", "builder", "verifier", "reviewer", "accepter", "leader"]);
5
+ export const TaskLink = z.enum(["plan", "build", "verify", "review", "accept"]);
6
+ export const TaskStatus = z.enum(["pending", "claimed", "completed", "blocked", "failed"]);
6
7
  export const TaskPriority = z.number().int().min(0).max(2);
7
8
  export const TaskPriorityName = {
8
9
  0: "HIGH",
@@ -17,10 +18,11 @@ function utcNow() {
17
18
  export const InstanceSchema = z.object({
18
19
  id: z.string(),
19
20
  name: z.string(),
20
- role: InstanceRole.default("general"),
21
+ role: InstanceRole.default("builder"),
21
22
  status: InstanceStatus.default("idle"),
22
23
  current_task_id: z.string().nullable().default(null),
23
24
  connected_since: z.string(),
25
+ work_dir: z.string().nullable().default(null),
24
26
  });
25
27
  export const TaskSchema = z.object({
26
28
  id: z.string().default(""),
@@ -35,32 +37,47 @@ export const TaskSchema = z.object({
35
37
  completed_at: z.string().nullable().default(null),
36
38
  claimed_by: z.string().nullable().default(null),
37
39
  result: z.string().nullable().default(null),
40
+ link: TaskLink.nullable().default(null),
41
+ chain_id: z.string().nullable().default(null),
42
+ retry_count: z.number().int().default(0),
43
+ blocked_reason: z.string().nullable().default(null),
44
+ fail_reason: z.string().nullable().default(null),
45
+ created_by_name: z.string().default(""),
46
+ assigned_to_name: z.string().nullable().default(null),
47
+ completed_by_name: z.string().nullable().default(null),
48
+ duration_seconds: z.number().nullable().default(null),
49
+ depends_on: z.array(z.string()).default([]),
50
+ blocked_by: z.array(z.string()).default([]),
38
51
  });
39
52
  export const MessageSchema = z.object({
40
53
  id: z.string().default(""),
41
54
  type: MessageType.default("direct"),
42
55
  from_instance: z.string().default(""),
43
56
  from_name: z.string().default(""),
57
+ from_role: z.string().default(""),
44
58
  to_instance: z.string().nullable().default(null),
59
+ to_name: z.string().nullable().default(null),
45
60
  content: z.string(),
46
61
  created_at: z.string(),
47
62
  read: z.boolean().default(false),
48
- });
49
- export const ContextEntrySchema = z.object({
50
- key: z.string(),
51
- value: z.string(),
52
- updated_by: z.string().default(""),
53
- updated_at: z.string(),
63
+ link: z.string().nullable().default(null),
64
+ task_title: z.string().nullable().default(null),
65
+ task_description: z.string().nullable().default(null),
66
+ task_criteria: z.string().nullable().default(null),
67
+ task_doc_path: z.string().nullable().default(null),
68
+ result_path: z.string().nullable().default(null),
69
+ reply_to: z.string().nullable().default(null),
54
70
  });
55
71
  // ── Factory helpers (mirrors Python Field(default_factory=...)) ──
56
72
  export function createInstance(overrides) {
57
73
  return InstanceSchema.parse({
58
74
  id: overrides.id ?? crypto.randomUUID().replace(/-/g, ""),
59
75
  name: overrides.name,
60
- role: overrides.role ?? "general",
76
+ role: overrides.role ?? "builder",
61
77
  status: "idle",
62
78
  current_task_id: null,
63
79
  connected_since: utcNow(),
80
+ work_dir: overrides.workDir ?? null,
64
81
  });
65
82
  }
66
83
  export function createTask(overrides) {
@@ -77,6 +94,17 @@ export function createTask(overrides) {
77
94
  completed_at: null,
78
95
  claimed_by: null,
79
96
  result: null,
97
+ link: overrides.link ?? null,
98
+ chain_id: overrides.chain_id ?? null,
99
+ retry_count: 0,
100
+ blocked_reason: null,
101
+ fail_reason: null,
102
+ created_by_name: overrides.created_by_name ?? "",
103
+ assigned_to_name: overrides.assigned_to_name ?? null,
104
+ completed_by_name: null,
105
+ duration_seconds: null,
106
+ depends_on: overrides.depends_on ?? [],
107
+ blocked_by: overrides.blocked_by ?? [],
80
108
  });
81
109
  }
82
110
  export function createMessage(overrides) {
@@ -85,30 +113,26 @@ export function createMessage(overrides) {
85
113
  type: overrides.type ?? "direct",
86
114
  from_instance: overrides.from_instance,
87
115
  from_name: overrides.from_name,
116
+ from_role: overrides.from_role ?? "",
88
117
  to_instance: overrides.to_instance,
118
+ to_name: overrides.to_name ?? null,
89
119
  content: overrides.content,
90
120
  created_at: utcNow(),
91
121
  read: false,
92
- });
93
- }
94
- export function createContextEntry(overrides) {
95
- return ContextEntrySchema.parse({
96
- key: overrides.key,
97
- value: overrides.value,
98
- updated_by: overrides.updated_by ?? "",
99
- updated_at: utcNow(),
122
+ link: overrides.link ?? null,
123
+ task_title: overrides.task_title ?? null,
124
+ task_description: overrides.task_description ?? null,
125
+ task_criteria: overrides.task_criteria ?? null,
126
+ task_doc_path: overrides.task_doc_path ?? null,
127
+ result_path: overrides.result_path ?? null,
128
+ reply_to: overrides.reply_to ?? null,
100
129
  });
101
130
  }
102
131
  // ── Tool input schemas ──
103
132
  export const RegisterInstanceInput = z.object({
104
133
  name: z.string().min(1),
105
- role: InstanceRole.default("general"),
134
+ role: InstanceRole,
106
135
  instance_id: z.string().optional(),
107
- work_dir: z.string().optional(),
108
- });
109
- export const HeartbeatInput = z.object({
110
- instance_id: z.string(),
111
- current_task: z.string().optional(),
112
136
  });
113
137
  export const PushTaskInput = z.object({
114
138
  title: z.string().min(1),
@@ -116,6 +140,10 @@ export const PushTaskInput = z.object({
116
140
  priority: TaskPriority.default(1),
117
141
  instance_id: z.string().default(""),
118
142
  assignee: z.string().optional(),
143
+ link: z.string().optional(),
144
+ chain_id: z.string().optional(),
145
+ depends_on: z.array(z.string()).default([]),
146
+ blocked_by: z.array(z.string()).default([]),
119
147
  });
120
148
  export const ClaimTaskInput = z.object({
121
149
  instance_id: z.string(),
@@ -134,14 +162,11 @@ export const SendMessageInput = z.object({
134
162
  to_instance: z.string().optional(),
135
163
  to_name: z.string().optional(),
136
164
  broadcast: z.boolean().default(false),
165
+ help: z.boolean().default(false),
137
166
  });
138
167
  export const PollMessagesInput = z.object({
139
168
  instance_id: z.string(),
140
169
  });
141
- export const WaitForMessageInput = z.object({
142
- instance_id: z.string(),
143
- timeout_seconds: z.number().int().min(1).default(30),
144
- });
145
170
  export const MarkReadInput = z.object({
146
171
  instance_id: z.string(),
147
172
  message_id: z.string(),
@@ -150,20 +175,4 @@ export const DismissMessageInput = z.object({
150
175
  instance_id: z.string(),
151
176
  message_id: z.string(),
152
177
  });
153
- export const RequestHelpInput = z.object({
154
- instance_id: z.string(),
155
- question: z.string().min(1),
156
- context: z.string().optional(),
157
- });
158
- export const SetContextInput = z.object({
159
- key: z.string().min(1),
160
- value: z.string(),
161
- instance_id: z.string().default(""),
162
- });
163
- export const GetContextInput = z.object({
164
- key: z.string(),
165
- });
166
- export const DeleteContextInput = z.object({
167
- key: z.string(),
168
- });
169
178
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/models/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/models/schemas.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import { type Message } from "../models/schemas.js";
3
3
  export declare class MessageRouter {
4
4
  private zk;
5
5
  constructor(zk: ZkClient);
6
- send(fromInstance: string, fromName: string, content: string, toInstance?: string, broadcast?: boolean, toName?: string): Promise<Message[]>;
6
+ send(fromInstance: string, fromName: string, content: string, toInstance?: string, broadcast?: boolean, toName?: string, help?: boolean): Promise<Message[]>;
7
7
  poll(instanceId: string): Promise<Message[]>;
8
8
  waitForMessage(instanceId: string, timeoutSeconds?: number): Promise<Message[]>;
9
9
  markRead(instanceId: string, messageId: string): Promise<void>;
10
10
  dismissMessage(instanceId: string, messageId: string): Promise<void>;
11
- requestHelp(fromInstance: string, fromName: string, question: string, ctx?: string): Promise<Message[]>;
12
11
  }
12
+ export declare function renderTemplate(templatePath: string, variables: Record<string, string>): Promise<string>;
@@ -1,3 +1,4 @@
1
+ import * as fs from "node:fs";
1
2
  import { MessageSchema, createMessage, } from "../models/schemas.js";
2
3
  function utcNow() {
3
4
  return new Date().toISOString();
@@ -7,7 +8,7 @@ export class MessageRouter {
7
8
  constructor(zk) {
8
9
  this.zk = zk;
9
10
  }
10
- async send(fromInstance, fromName, content, toInstance, broadcast = false, toName) {
11
+ async send(fromInstance, fromName, content, toInstance, broadcast = false, toName, help = false) {
11
12
  const messages = [];
12
13
  // Name-based addressing: resolve to_name to instance_id
13
14
  if (toName) {
@@ -24,9 +25,9 @@ export class MessageRouter {
24
25
  toInstance = match.id;
25
26
  }
26
27
  }
27
- let msgType = broadcast ? "broadcast" : "direct";
28
+ let msgType = help ? "help" : (broadcast ? "broadcast" : "direct");
28
29
  let targets;
29
- if (broadcast) {
30
+ if (broadcast || help) {
30
31
  const instances = await this.zk.listInstances();
31
32
  targets = instances
32
33
  .map((i) => i.id)
@@ -91,19 +92,12 @@ export class MessageRouter {
91
92
  async dismissMessage(instanceId, messageId) {
92
93
  await this.zk.deleteMessage(instanceId, messageId);
93
94
  }
94
- async requestHelp(fromInstance, fromName, question, ctx) {
95
- let content = question;
96
- if (ctx) {
97
- content = `${question}\n\nContext:\n${ctx}`;
98
- }
99
- // Set message type to "help" by modifying after creation
100
- const messages = await this.send(fromInstance, fromName, content, undefined, true);
101
- // Update type to "help" for each message
102
- for (const msg of messages) {
103
- msg.type = "help";
104
- await this.zk.updateMessage(msg.to_instance, msg.id, msg);
105
- }
106
- return messages;
95
+ }
96
+ export async function renderTemplate(templatePath, variables) {
97
+ let content = await fs.promises.readFile(templatePath, "utf-8");
98
+ for (const [key, value] of Object.entries(variables)) {
99
+ content = content.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value);
107
100
  }
101
+ return content;
108
102
  }
109
103
  //# sourceMappingURL=message-router.js.map