@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.
- package/README.md +179 -186
- package/dist/cli/commands.d.ts +13 -20
- package/dist/cli/commands.js +171 -288
- package/dist/cli/commands.js.map +1 -1
- package/dist/config.d.ts +25 -11
- package/dist/config.js +49 -13
- package/dist/config.js.map +1 -1
- package/dist/index.js +122 -215
- package/dist/index.js.map +1 -1
- package/dist/leader/decision-engine.d.ts +35 -0
- package/dist/leader/decision-engine.js +102 -0
- package/dist/leader/decision-engine.js.map +1 -0
- package/dist/leader/event-bus.d.ts +11 -0
- package/dist/leader/event-bus.js +21 -0
- package/dist/leader/event-bus.js.map +1 -0
- package/dist/leader/index.d.ts +7 -0
- package/dist/leader/index.js +96 -0
- package/dist/leader/index.js.map +1 -0
- package/dist/leader/monitor.d.ts +14 -0
- package/dist/leader/monitor.js +55 -0
- package/dist/leader/monitor.js.map +1 -0
- package/dist/leader/orchestrator.d.ts +14 -0
- package/dist/leader/orchestrator.js +83 -0
- package/dist/leader/orchestrator.js.map +1 -0
- package/dist/leader/recovery.d.ts +11 -0
- package/dist/leader/recovery.js +61 -0
- package/dist/leader/recovery.js.map +1 -0
- package/dist/leader/state.d.ts +24 -0
- package/dist/leader/state.js +122 -0
- package/dist/leader/state.js.map +1 -0
- package/dist/leader/task-generator.d.ts +34 -0
- package/dist/leader/task-generator.js +93 -0
- package/dist/leader/task-generator.js.map +1 -0
- package/dist/leader/tui.d.ts +5 -0
- package/dist/leader/tui.js +136 -0
- package/dist/leader/tui.js.map +1 -0
- package/dist/leader/watcher.d.ts +18 -0
- package/dist/leader/watcher.js +89 -0
- package/dist/leader/watcher.js.map +1 -0
- package/dist/models/schemas.d.ts +111 -100
- package/dist/models/schemas.js +54 -45
- package/dist/models/schemas.js.map +1 -1
- package/dist/modules/message-router.d.ts +2 -2
- package/dist/modules/message-router.js +10 -16
- package/dist/modules/message-router.js.map +1 -1
- package/dist/modules/registry.js +3 -3
- package/dist/modules/registry.js.map +1 -1
- package/dist/modules/task-queue.d.ts +4 -1
- package/dist/modules/task-queue.js +114 -10
- package/dist/modules/task-queue.js.map +1 -1
- package/dist/skills/CLAUDE.md +155 -0
- package/dist/skills/claude-code-developer/SKILL.md +325 -0
- package/dist/skills/claude-orchestrator/SKILL.md +180 -0
- package/dist/skills/task-acceptance/SKILL.md +201 -0
- package/dist/skills/task-execution/SKILL.md +142 -0
- package/dist/skills/task-planning/SKILL.md +188 -0
- package/dist/skills/task-review/SKILL.md +220 -0
- package/dist/skills/task-traceability/SKILL.md +154 -0
- package/dist/skills/task-verification/SKILL.md +194 -0
- package/dist/templates/leader-decide.md +59 -0
- package/dist/templates/leader-decompose.md +69 -0
- package/dist/templates/worker-accept.md +46 -0
- package/dist/templates/worker-build.md +45 -0
- package/dist/templates/worker-plan.md +43 -0
- package/dist/templates/worker-review.md +46 -0
- package/dist/templates/worker-verify.md +47 -0
- package/dist/utils/exec.d.ts +8 -0
- package/dist/utils/exec.js +45 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/worker/watcher.d.ts +19 -0
- package/dist/worker/watcher.js +152 -0
- package/dist/worker/watcher.js.map +1 -0
- package/dist/zk/client.d.ts +5 -5
- package/dist/zk/client.js +16 -26
- package/dist/zk/client.js.map +1 -1
- package/dist/zk/paths.d.ts +9 -9
- package/dist/zk/paths.js +4 -5
- package/dist/zk/paths.js.map +1 -1
- package/dist/zk/watcher.d.ts +0 -2
- package/dist/zk/watcher.js +0 -3
- package/dist/zk/watcher.js.map +1 -1
- package/package.json +3 -6
- package/dist/modules/context-store.d.ts +0 -10
- package/dist/modules/context-store.js +0 -25
- package/dist/modules/context-store.js.map +0 -1
- package/dist/modules/message-watcher.d.ts +0 -12
- package/dist/modules/message-watcher.js +0 -133
- package/dist/modules/message-watcher.js.map +0 -1
- package/dist/server.d.ts +0 -2
- package/dist/server.js +0 -490
- package/dist/server.js.map +0 -1
package/dist/models/schemas.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const InstanceStatus: z.ZodEnum<["idle", "busy"
|
|
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<["
|
|
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
|
|
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<["
|
|
17
|
-
status: z.ZodDefault<z.ZodEnum<["idle", "busy"
|
|
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"
|
|
24
|
+
status: "idle" | "busy";
|
|
22
25
|
id: string;
|
|
23
26
|
name: string;
|
|
24
|
-
role: "
|
|
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" |
|
|
32
|
-
role?: "
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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: "
|
|
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
|
|
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
|
-
}>;
|
package/dist/models/schemas.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
// ── Enums ──
|
|
3
|
-
export const InstanceStatus = z.enum(["idle", "busy"
|
|
4
|
-
export const InstanceRole = z.enum(["
|
|
5
|
-
export const
|
|
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("
|
|
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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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 ?? "
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc;AAEd,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|