@polpo-ai/core 0.1.0
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/LICENSE +21 -0
- package/dist/adapter.d.ts +61 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +9 -0
- package/dist/adapter.js.map +1 -0
- package/dist/agent-manager.d.ts +36 -0
- package/dist/agent-manager.d.ts.map +1 -0
- package/dist/agent-manager.js +176 -0
- package/dist/agent-manager.js.map +1 -0
- package/dist/approval-manager.d.ts +49 -0
- package/dist/approval-manager.d.ts.map +1 -0
- package/dist/approval-manager.js +325 -0
- package/dist/approval-manager.js.map +1 -0
- package/dist/approval-store.d.ts +19 -0
- package/dist/approval-store.d.ts.map +1 -0
- package/dist/approval-store.js +2 -0
- package/dist/approval-store.js.map +1 -0
- package/dist/checkpoint-store.d.ts +20 -0
- package/dist/checkpoint-store.d.ts.map +1 -0
- package/dist/checkpoint-store.js +2 -0
- package/dist/checkpoint-store.js.map +1 -0
- package/dist/config-store.d.ts +13 -0
- package/dist/config-store.d.ts.map +1 -0
- package/dist/config-store.js +2 -0
- package/dist/config-store.js.map +1 -0
- package/dist/cron.d.ts +29 -0
- package/dist/cron.d.ts.map +1 -0
- package/dist/cron.js +105 -0
- package/dist/cron.js.map +1 -0
- package/dist/delay-store.d.ts +21 -0
- package/dist/delay-store.d.ts.map +1 -0
- package/dist/delay-store.js +2 -0
- package/dist/delay-store.js.map +1 -0
- package/dist/escalation-manager.d.ts +31 -0
- package/dist/escalation-manager.d.ts.map +1 -0
- package/dist/escalation-manager.js +281 -0
- package/dist/escalation-manager.js.map +1 -0
- package/dist/event-bus.d.ts +18 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +2 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/events.d.ts +377 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +9 -0
- package/dist/events.js.map +1 -0
- package/dist/hooks.d.ts +185 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +152 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/log-store.d.ts +31 -0
- package/dist/log-store.d.ts.map +1 -0
- package/dist/log-store.js +6 -0
- package/dist/log-store.js.map +1 -0
- package/dist/memory-store.d.ts +17 -0
- package/dist/memory-store.d.ts.map +1 -0
- package/dist/memory-store.js +2 -0
- package/dist/memory-store.js.map +1 -0
- package/dist/notification-router-port.d.ts +11 -0
- package/dist/notification-router-port.d.ts.map +1 -0
- package/dist/notification-router-port.js +2 -0
- package/dist/notification-router-port.js.map +1 -0
- package/dist/notification-store.d.ts +58 -0
- package/dist/notification-store.d.ts.map +1 -0
- package/dist/notification-store.js +9 -0
- package/dist/notification-store.js.map +1 -0
- package/dist/orchestrator-context.d.ts +87 -0
- package/dist/orchestrator-context.d.ts.map +1 -0
- package/dist/orchestrator-context.js +2 -0
- package/dist/orchestrator-context.js.map +1 -0
- package/dist/peer-store.d.ts +29 -0
- package/dist/peer-store.d.ts.map +1 -0
- package/dist/peer-store.js +6 -0
- package/dist/peer-store.js.map +1 -0
- package/dist/quality-controller.d.ts +46 -0
- package/dist/quality-controller.d.ts.map +1 -0
- package/dist/quality-controller.js +373 -0
- package/dist/quality-controller.js.map +1 -0
- package/dist/run-store.d.ts +31 -0
- package/dist/run-store.d.ts.map +1 -0
- package/dist/run-store.js +2 -0
- package/dist/run-store.js.map +1 -0
- package/dist/scheduler.d.ts +35 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +195 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/schemas.d.ts +104 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +200 -0
- package/dist/schemas.js.map +1 -0
- package/dist/session-store.d.ts +50 -0
- package/dist/session-store.d.ts.map +1 -0
- package/dist/session-store.js +6 -0
- package/dist/session-store.js.map +1 -0
- package/dist/sla-monitor.d.ts +30 -0
- package/dist/sla-monitor.d.ts.map +1 -0
- package/dist/sla-monitor.js +156 -0
- package/dist/sla-monitor.js.map +1 -0
- package/dist/state-machine.d.ts +8 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +23 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/task-manager.d.ts +38 -0
- package/dist/task-manager.d.ts.map +1 -0
- package/dist/task-manager.js +308 -0
- package/dist/task-manager.js.map +1 -0
- package/dist/task-store.d.ts +33 -0
- package/dist/task-store.d.ts.map +1 -0
- package/dist/task-store.js +2 -0
- package/dist/task-store.js.map +1 -0
- package/dist/task-watcher.d.ts +38 -0
- package/dist/task-watcher.d.ts.map +1 -0
- package/dist/task-watcher.js +103 -0
- package/dist/task-watcher.js.map +1 -0
- package/dist/types.d.ts +1073 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +35 -0
- package/dist/types.js.map +1 -0
- package/package.json +170 -0
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event type definitions for Polpo.
|
|
3
|
+
* Pure type declarations — no runtime dependencies.
|
|
4
|
+
*
|
|
5
|
+
* The TypedEmitter class (which extends Node.js EventEmitter) lives in the
|
|
6
|
+
* shell layer (src/core/events.ts), not here.
|
|
7
|
+
*/
|
|
8
|
+
import type { Task, TaskStatus, DimensionScore, MissionStatus, MissionReport, ChannelType, PeerIdentity } from "./types.js";
|
|
9
|
+
export interface PolpoEventMap {
|
|
10
|
+
"task:created": {
|
|
11
|
+
task: Task;
|
|
12
|
+
};
|
|
13
|
+
"task:transition": {
|
|
14
|
+
taskId: string;
|
|
15
|
+
from: TaskStatus;
|
|
16
|
+
to: TaskStatus;
|
|
17
|
+
task: Task;
|
|
18
|
+
};
|
|
19
|
+
"task:updated": {
|
|
20
|
+
taskId: string;
|
|
21
|
+
task: Task;
|
|
22
|
+
};
|
|
23
|
+
"task:removed": {
|
|
24
|
+
taskId: string;
|
|
25
|
+
};
|
|
26
|
+
"agent:spawned": {
|
|
27
|
+
taskId: string;
|
|
28
|
+
agentName: string;
|
|
29
|
+
taskTitle: string;
|
|
30
|
+
};
|
|
31
|
+
"agent:finished": {
|
|
32
|
+
taskId: string;
|
|
33
|
+
agentName: string;
|
|
34
|
+
exitCode: number;
|
|
35
|
+
duration: number;
|
|
36
|
+
sessionId?: string;
|
|
37
|
+
};
|
|
38
|
+
"agent:activity": {
|
|
39
|
+
taskId: string;
|
|
40
|
+
agentName: string;
|
|
41
|
+
tool?: string;
|
|
42
|
+
file?: string;
|
|
43
|
+
summary?: string;
|
|
44
|
+
};
|
|
45
|
+
"assessment:started": {
|
|
46
|
+
taskId: string;
|
|
47
|
+
};
|
|
48
|
+
"assessment:progress": {
|
|
49
|
+
taskId: string;
|
|
50
|
+
message: string;
|
|
51
|
+
};
|
|
52
|
+
"assessment:check:started": {
|
|
53
|
+
taskId: string;
|
|
54
|
+
index: number;
|
|
55
|
+
total: number;
|
|
56
|
+
type: string;
|
|
57
|
+
label: string;
|
|
58
|
+
};
|
|
59
|
+
"assessment:check:complete": {
|
|
60
|
+
taskId: string;
|
|
61
|
+
index: number;
|
|
62
|
+
total: number;
|
|
63
|
+
type: string;
|
|
64
|
+
label: string;
|
|
65
|
+
passed: boolean;
|
|
66
|
+
message?: string;
|
|
67
|
+
};
|
|
68
|
+
"assessment:complete": {
|
|
69
|
+
taskId: string;
|
|
70
|
+
passed: boolean;
|
|
71
|
+
scores?: DimensionScore[];
|
|
72
|
+
globalScore?: number;
|
|
73
|
+
message?: string;
|
|
74
|
+
};
|
|
75
|
+
"assessment:corrected": {
|
|
76
|
+
taskId: string;
|
|
77
|
+
corrections: number;
|
|
78
|
+
};
|
|
79
|
+
"orchestrator:started": {
|
|
80
|
+
project: string;
|
|
81
|
+
agents: string[];
|
|
82
|
+
};
|
|
83
|
+
"orchestrator:tick": {
|
|
84
|
+
pending: number;
|
|
85
|
+
running: number;
|
|
86
|
+
done: number;
|
|
87
|
+
failed: number;
|
|
88
|
+
queued: number;
|
|
89
|
+
};
|
|
90
|
+
"orchestrator:deadlock": {
|
|
91
|
+
taskIds: string[];
|
|
92
|
+
};
|
|
93
|
+
"orchestrator:shutdown": Record<string, never>;
|
|
94
|
+
"task:retry": {
|
|
95
|
+
taskId: string;
|
|
96
|
+
attempt: number;
|
|
97
|
+
maxRetries: number;
|
|
98
|
+
};
|
|
99
|
+
"task:retry:blocked": {
|
|
100
|
+
taskId: string;
|
|
101
|
+
reason: string;
|
|
102
|
+
};
|
|
103
|
+
"task:fix": {
|
|
104
|
+
taskId: string;
|
|
105
|
+
attempt: number;
|
|
106
|
+
maxFix: number;
|
|
107
|
+
};
|
|
108
|
+
"task:maxRetries": {
|
|
109
|
+
taskId: string;
|
|
110
|
+
};
|
|
111
|
+
"task:question": {
|
|
112
|
+
taskId: string;
|
|
113
|
+
question: string;
|
|
114
|
+
};
|
|
115
|
+
"task:answered": {
|
|
116
|
+
taskId: string;
|
|
117
|
+
question: string;
|
|
118
|
+
answer: string;
|
|
119
|
+
};
|
|
120
|
+
"deadlock:detected": {
|
|
121
|
+
taskIds: string[];
|
|
122
|
+
resolvableCount: number;
|
|
123
|
+
};
|
|
124
|
+
"deadlock:resolving": {
|
|
125
|
+
taskId: string;
|
|
126
|
+
failedDepId: string;
|
|
127
|
+
};
|
|
128
|
+
"deadlock:resolved": {
|
|
129
|
+
taskId: string;
|
|
130
|
+
failedDepId: string;
|
|
131
|
+
action: "absorb" | "retry";
|
|
132
|
+
reason: string;
|
|
133
|
+
};
|
|
134
|
+
"deadlock:unresolvable": {
|
|
135
|
+
taskId: string;
|
|
136
|
+
reason: string;
|
|
137
|
+
};
|
|
138
|
+
"task:timeout": {
|
|
139
|
+
taskId: string;
|
|
140
|
+
elapsed: number;
|
|
141
|
+
timeout: number;
|
|
142
|
+
};
|
|
143
|
+
"agent:stale": {
|
|
144
|
+
taskId: string;
|
|
145
|
+
agentName: string;
|
|
146
|
+
idleMs: number;
|
|
147
|
+
action: "warning" | "killed";
|
|
148
|
+
};
|
|
149
|
+
"task:recovered": {
|
|
150
|
+
taskId: string;
|
|
151
|
+
title: string;
|
|
152
|
+
previousStatus: TaskStatus;
|
|
153
|
+
};
|
|
154
|
+
"mission:saved": {
|
|
155
|
+
missionId: string;
|
|
156
|
+
name: string;
|
|
157
|
+
status: MissionStatus;
|
|
158
|
+
};
|
|
159
|
+
"mission:executed": {
|
|
160
|
+
missionId: string;
|
|
161
|
+
group: string;
|
|
162
|
+
taskCount: number;
|
|
163
|
+
};
|
|
164
|
+
"mission:completed": {
|
|
165
|
+
missionId: string;
|
|
166
|
+
group: string;
|
|
167
|
+
allPassed: boolean;
|
|
168
|
+
report: MissionReport;
|
|
169
|
+
};
|
|
170
|
+
"mission:resumed": {
|
|
171
|
+
missionId: string;
|
|
172
|
+
name: string;
|
|
173
|
+
retried: number;
|
|
174
|
+
pending: number;
|
|
175
|
+
};
|
|
176
|
+
"mission:deleted": {
|
|
177
|
+
missionId: string;
|
|
178
|
+
deletedTasks?: number;
|
|
179
|
+
};
|
|
180
|
+
"session:created": {
|
|
181
|
+
sessionId: string;
|
|
182
|
+
title?: string;
|
|
183
|
+
};
|
|
184
|
+
"message:added": {
|
|
185
|
+
sessionId: string;
|
|
186
|
+
messageId: string;
|
|
187
|
+
role: "user" | "assistant";
|
|
188
|
+
};
|
|
189
|
+
"approval:requested": {
|
|
190
|
+
requestId: string;
|
|
191
|
+
gateId: string;
|
|
192
|
+
gateName: string;
|
|
193
|
+
taskId?: string;
|
|
194
|
+
missionId?: string;
|
|
195
|
+
};
|
|
196
|
+
"approval:resolved": {
|
|
197
|
+
requestId: string;
|
|
198
|
+
status: "approved" | "rejected";
|
|
199
|
+
resolvedBy?: string;
|
|
200
|
+
};
|
|
201
|
+
"approval:rejected": {
|
|
202
|
+
requestId: string;
|
|
203
|
+
taskId?: string;
|
|
204
|
+
feedback: string;
|
|
205
|
+
rejectionCount: number;
|
|
206
|
+
resolvedBy?: string;
|
|
207
|
+
};
|
|
208
|
+
"approval:timeout": {
|
|
209
|
+
requestId: string;
|
|
210
|
+
action: "approve" | "reject";
|
|
211
|
+
};
|
|
212
|
+
"escalation:triggered": {
|
|
213
|
+
taskId: string;
|
|
214
|
+
level: number;
|
|
215
|
+
handler: string;
|
|
216
|
+
target?: string;
|
|
217
|
+
};
|
|
218
|
+
"escalation:resolved": {
|
|
219
|
+
taskId: string;
|
|
220
|
+
level: number;
|
|
221
|
+
action: string;
|
|
222
|
+
};
|
|
223
|
+
"escalation:human": {
|
|
224
|
+
taskId: string;
|
|
225
|
+
message: string;
|
|
226
|
+
channels?: string[];
|
|
227
|
+
};
|
|
228
|
+
"sla:warning": {
|
|
229
|
+
entityId: string;
|
|
230
|
+
entityType: "task" | "mission";
|
|
231
|
+
deadline: string;
|
|
232
|
+
elapsed: number;
|
|
233
|
+
remaining: number;
|
|
234
|
+
percentUsed: number;
|
|
235
|
+
};
|
|
236
|
+
"sla:violated": {
|
|
237
|
+
entityId: string;
|
|
238
|
+
entityType: "task" | "mission";
|
|
239
|
+
deadline: string;
|
|
240
|
+
overdueMs: number;
|
|
241
|
+
};
|
|
242
|
+
"sla:met": {
|
|
243
|
+
entityId: string;
|
|
244
|
+
entityType: "task" | "mission";
|
|
245
|
+
deadline: string;
|
|
246
|
+
marginMs: number;
|
|
247
|
+
};
|
|
248
|
+
"checkpoint:reached": {
|
|
249
|
+
missionId?: string;
|
|
250
|
+
group: string;
|
|
251
|
+
checkpointName: string;
|
|
252
|
+
message?: string;
|
|
253
|
+
afterTasks: string[];
|
|
254
|
+
blocksTasks: string[];
|
|
255
|
+
reachedAt: string;
|
|
256
|
+
};
|
|
257
|
+
"checkpoint:resumed": {
|
|
258
|
+
missionId?: string;
|
|
259
|
+
group: string;
|
|
260
|
+
checkpointName: string;
|
|
261
|
+
};
|
|
262
|
+
"delay:started": {
|
|
263
|
+
missionId?: string;
|
|
264
|
+
group: string;
|
|
265
|
+
delayName: string;
|
|
266
|
+
duration: string;
|
|
267
|
+
message?: string;
|
|
268
|
+
afterTasks: string[];
|
|
269
|
+
blocksTasks: string[];
|
|
270
|
+
startedAt: string;
|
|
271
|
+
expiresAt: string;
|
|
272
|
+
};
|
|
273
|
+
"delay:expired": {
|
|
274
|
+
missionId?: string;
|
|
275
|
+
group: string;
|
|
276
|
+
delayName: string;
|
|
277
|
+
};
|
|
278
|
+
"quality:gate:passed": {
|
|
279
|
+
missionId: string;
|
|
280
|
+
gateName: string;
|
|
281
|
+
avgScore?: number;
|
|
282
|
+
};
|
|
283
|
+
"quality:gate:failed": {
|
|
284
|
+
missionId: string;
|
|
285
|
+
gateName: string;
|
|
286
|
+
avgScore?: number;
|
|
287
|
+
reason: string;
|
|
288
|
+
};
|
|
289
|
+
"quality:threshold:failed": {
|
|
290
|
+
missionId: string;
|
|
291
|
+
avgScore: number;
|
|
292
|
+
threshold: number;
|
|
293
|
+
};
|
|
294
|
+
"schedule:triggered": {
|
|
295
|
+
scheduleId: string;
|
|
296
|
+
missionId: string;
|
|
297
|
+
expression: string;
|
|
298
|
+
};
|
|
299
|
+
"schedule:created": {
|
|
300
|
+
scheduleId: string;
|
|
301
|
+
missionId: string;
|
|
302
|
+
nextRunAt?: string;
|
|
303
|
+
};
|
|
304
|
+
"schedule:completed": {
|
|
305
|
+
scheduleId: string;
|
|
306
|
+
missionId: string;
|
|
307
|
+
};
|
|
308
|
+
"notification:sent": {
|
|
309
|
+
ruleId: string;
|
|
310
|
+
channel: string;
|
|
311
|
+
event: string;
|
|
312
|
+
};
|
|
313
|
+
"notification:failed": {
|
|
314
|
+
ruleId: string;
|
|
315
|
+
channel: string;
|
|
316
|
+
error: string;
|
|
317
|
+
};
|
|
318
|
+
"config:reloaded": {
|
|
319
|
+
timestamp: string;
|
|
320
|
+
};
|
|
321
|
+
"gateway:started": {
|
|
322
|
+
channels: ChannelType[];
|
|
323
|
+
};
|
|
324
|
+
"gateway:stopped": Record<string, never>;
|
|
325
|
+
"peer:paired": {
|
|
326
|
+
peer: PeerIdentity;
|
|
327
|
+
channel: ChannelType;
|
|
328
|
+
};
|
|
329
|
+
"peer:message": {
|
|
330
|
+
peerId: string;
|
|
331
|
+
channel: ChannelType;
|
|
332
|
+
text: string;
|
|
333
|
+
sessionId: string;
|
|
334
|
+
};
|
|
335
|
+
"peer:blocked": {
|
|
336
|
+
peerId: string;
|
|
337
|
+
channel: ChannelType;
|
|
338
|
+
reason: string;
|
|
339
|
+
};
|
|
340
|
+
"peer:presence": {
|
|
341
|
+
peerId: string;
|
|
342
|
+
channel: ChannelType;
|
|
343
|
+
status: "online" | "offline";
|
|
344
|
+
};
|
|
345
|
+
"watcher:created": {
|
|
346
|
+
watcherId: string;
|
|
347
|
+
taskId: string;
|
|
348
|
+
targetStatus: TaskStatus;
|
|
349
|
+
};
|
|
350
|
+
"watcher:fired": {
|
|
351
|
+
watcherId: string;
|
|
352
|
+
taskId: string;
|
|
353
|
+
targetStatus: TaskStatus;
|
|
354
|
+
actionType: string;
|
|
355
|
+
};
|
|
356
|
+
"watcher:removed": {
|
|
357
|
+
watcherId: string;
|
|
358
|
+
};
|
|
359
|
+
"action:triggered": {
|
|
360
|
+
ruleId: string;
|
|
361
|
+
actionType: string;
|
|
362
|
+
result?: string;
|
|
363
|
+
error?: string;
|
|
364
|
+
};
|
|
365
|
+
"file:changed": {
|
|
366
|
+
path: string;
|
|
367
|
+
dir: string;
|
|
368
|
+
action: "created" | "modified" | "deleted" | "renamed";
|
|
369
|
+
source: "agent" | "server" | "chat";
|
|
370
|
+
};
|
|
371
|
+
"log": {
|
|
372
|
+
level: "info" | "warn" | "error" | "debug";
|
|
373
|
+
message: string;
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
export type PolpoEvent = keyof PolpoEventMap;
|
|
377
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event type definitions for Polpo.
|
|
3
|
+
* Pure type declarations — no runtime dependencies.
|
|
4
|
+
*
|
|
5
|
+
* The TypedEmitter class (which extends Node.js EventEmitter) lives in the
|
|
6
|
+
* shell layer (src/core/events.ts), not here.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { Task, AgentConfig, Mission, MissionReport, TaskResult, AssessmentResult, TaskExpectation, ExpectedOutcome, RetryPolicy, ScopedNotificationRules } from "./types.js";
|
|
2
|
+
export type LifecycleHook = "task:create" | "task:spawn" | "task:transition" | "task:complete" | "task:fail" | "task:retry" | "mission:execute" | "mission:complete" | "assessment:run" | "assessment:complete" | "quality:gate" | "quality:sla" | "schedule:trigger" | "orchestrator:tick" | "orchestrator:shutdown";
|
|
3
|
+
export interface HookPayloads {
|
|
4
|
+
"task:create": {
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
assignTo: string;
|
|
8
|
+
expectations?: TaskExpectation[];
|
|
9
|
+
expectedOutcomes?: ExpectedOutcome[];
|
|
10
|
+
dependsOn?: string[];
|
|
11
|
+
group?: string;
|
|
12
|
+
missionId?: string;
|
|
13
|
+
maxDuration?: number;
|
|
14
|
+
retryPolicy?: RetryPolicy;
|
|
15
|
+
notifications?: ScopedNotificationRules;
|
|
16
|
+
sideEffects?: boolean;
|
|
17
|
+
draft?: boolean;
|
|
18
|
+
};
|
|
19
|
+
"task:spawn": {
|
|
20
|
+
task: Task;
|
|
21
|
+
agent: AgentConfig;
|
|
22
|
+
};
|
|
23
|
+
"task:transition": {
|
|
24
|
+
taskId: string;
|
|
25
|
+
from: string;
|
|
26
|
+
to: string;
|
|
27
|
+
task: Task;
|
|
28
|
+
};
|
|
29
|
+
"task:complete": {
|
|
30
|
+
taskId: string;
|
|
31
|
+
task: Task;
|
|
32
|
+
result?: TaskResult;
|
|
33
|
+
assessment?: AssessmentResult;
|
|
34
|
+
};
|
|
35
|
+
"task:fail": {
|
|
36
|
+
taskId: string;
|
|
37
|
+
task: Task;
|
|
38
|
+
result?: TaskResult;
|
|
39
|
+
reason?: string;
|
|
40
|
+
};
|
|
41
|
+
"task:retry": {
|
|
42
|
+
taskId: string;
|
|
43
|
+
task: Task;
|
|
44
|
+
attempt: number;
|
|
45
|
+
maxRetries: number;
|
|
46
|
+
};
|
|
47
|
+
"mission:execute": {
|
|
48
|
+
missionId: string;
|
|
49
|
+
mission: Mission;
|
|
50
|
+
taskCount: number;
|
|
51
|
+
};
|
|
52
|
+
"mission:complete": {
|
|
53
|
+
missionId: string;
|
|
54
|
+
mission: Mission;
|
|
55
|
+
allPassed: boolean;
|
|
56
|
+
report: MissionReport;
|
|
57
|
+
};
|
|
58
|
+
"assessment:run": {
|
|
59
|
+
taskId: string;
|
|
60
|
+
task: Task;
|
|
61
|
+
};
|
|
62
|
+
"assessment:complete": {
|
|
63
|
+
taskId: string;
|
|
64
|
+
task: Task;
|
|
65
|
+
assessment: AssessmentResult;
|
|
66
|
+
passed: boolean;
|
|
67
|
+
};
|
|
68
|
+
"quality:gate": {
|
|
69
|
+
missionId: string;
|
|
70
|
+
gateName: string;
|
|
71
|
+
avgScore?: number;
|
|
72
|
+
allPassed: boolean;
|
|
73
|
+
tasks: Array<{
|
|
74
|
+
taskId: string;
|
|
75
|
+
title: string;
|
|
76
|
+
status: string;
|
|
77
|
+
score?: number;
|
|
78
|
+
}>;
|
|
79
|
+
};
|
|
80
|
+
"quality:sla": {
|
|
81
|
+
entityId: string;
|
|
82
|
+
entityType: "task" | "mission";
|
|
83
|
+
deadline: string;
|
|
84
|
+
status: "warning" | "violated";
|
|
85
|
+
percentUsed: number;
|
|
86
|
+
};
|
|
87
|
+
"schedule:trigger": {
|
|
88
|
+
scheduleId: string;
|
|
89
|
+
missionId: string;
|
|
90
|
+
expression: string;
|
|
91
|
+
};
|
|
92
|
+
"orchestrator:tick": {
|
|
93
|
+
pending: number;
|
|
94
|
+
running: number;
|
|
95
|
+
done: number;
|
|
96
|
+
failed: number;
|
|
97
|
+
};
|
|
98
|
+
"orchestrator:shutdown": Record<string, never>;
|
|
99
|
+
}
|
|
100
|
+
export type HookPhase = "before" | "after";
|
|
101
|
+
export interface HookContext<T = unknown> {
|
|
102
|
+
/** Which hook point fired. */
|
|
103
|
+
readonly hook: LifecycleHook;
|
|
104
|
+
/** "before" hooks can cancel/modify; "after" hooks are observe-only. */
|
|
105
|
+
readonly phase: HookPhase;
|
|
106
|
+
/** The payload — mutable reference for "before" hooks. */
|
|
107
|
+
data: T;
|
|
108
|
+
/** Cancel the operation (only available in "before" hooks). */
|
|
109
|
+
cancel(reason?: string): void;
|
|
110
|
+
/** Whether any handler has called cancel(). */
|
|
111
|
+
readonly cancelled: boolean;
|
|
112
|
+
/** Reason provided to cancel(), if any. */
|
|
113
|
+
readonly cancelReason?: string;
|
|
114
|
+
/** ISO timestamp when the hook was triggered. */
|
|
115
|
+
readonly timestamp: string;
|
|
116
|
+
}
|
|
117
|
+
export type HookHandler<T = unknown> = (ctx: HookContext<T>) => void | Promise<void>;
|
|
118
|
+
export interface HookRegistration<K extends LifecycleHook = LifecycleHook> {
|
|
119
|
+
/** Which lifecycle hook to listen to. */
|
|
120
|
+
hook: K;
|
|
121
|
+
/** "before" runs before the operation (can cancel/modify), "after" runs after. */
|
|
122
|
+
phase: HookPhase;
|
|
123
|
+
/** The handler function. */
|
|
124
|
+
handler: HookHandler<HookPayloads[K]>;
|
|
125
|
+
/** Lower priority runs first. Default: 100. */
|
|
126
|
+
priority?: number;
|
|
127
|
+
/** Optional name for debugging/logging. */
|
|
128
|
+
name?: string;
|
|
129
|
+
}
|
|
130
|
+
export interface BeforeHookResult<T> {
|
|
131
|
+
/** True if any handler called cancel(). */
|
|
132
|
+
cancelled: boolean;
|
|
133
|
+
/** Reason provided to cancel(), if any. */
|
|
134
|
+
cancelReason?: string;
|
|
135
|
+
/** The (possibly modified) payload. */
|
|
136
|
+
data: T;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Central registry for lifecycle hooks.
|
|
140
|
+
*
|
|
141
|
+
* "before" hooks run before an operation and can cancel or modify the payload.
|
|
142
|
+
* "after" hooks run after the operation completes (fire-and-forget, observe-only).
|
|
143
|
+
*
|
|
144
|
+
* Handlers are sorted by priority (ascending) and run sequentially.
|
|
145
|
+
* Async handlers are awaited — a slow hook delays the operation.
|
|
146
|
+
*/
|
|
147
|
+
export declare class HookRegistry {
|
|
148
|
+
private registrations;
|
|
149
|
+
/**
|
|
150
|
+
* Register a lifecycle hook handler.
|
|
151
|
+
* Returns an unsubscribe function.
|
|
152
|
+
*/
|
|
153
|
+
register<K extends LifecycleHook>(reg: HookRegistration<K>): () => void;
|
|
154
|
+
/**
|
|
155
|
+
* Run all "before" hooks for a lifecycle point.
|
|
156
|
+
* Returns whether the operation was cancelled and the (possibly modified) data.
|
|
157
|
+
*
|
|
158
|
+
* Handlers run sequentially in priority order.
|
|
159
|
+
* If a handler calls `cancel()`, remaining handlers still run but the operation is blocked.
|
|
160
|
+
*/
|
|
161
|
+
runBefore<K extends LifecycleHook>(hook: K, data: HookPayloads[K]): Promise<BeforeHookResult<HookPayloads[K]>>;
|
|
162
|
+
/**
|
|
163
|
+
* Run all "after" hooks for a lifecycle point.
|
|
164
|
+
* Fire-and-forget: errors are logged but never propagate.
|
|
165
|
+
* "after" hooks cannot cancel or modify anything.
|
|
166
|
+
*/
|
|
167
|
+
runAfter<K extends LifecycleHook>(hook: K, data: HookPayloads[K]): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Synchronous variant of runBefore — for hot paths where async is not feasible.
|
|
170
|
+
* Only runs synchronous handlers; async handlers are skipped with a warning.
|
|
171
|
+
*/
|
|
172
|
+
runBeforeSync<K extends LifecycleHook>(hook: K, data: HookPayloads[K]): BeforeHookResult<HookPayloads[K]>;
|
|
173
|
+
/** Get the count of registered handlers (for diagnostics). */
|
|
174
|
+
get size(): number;
|
|
175
|
+
/** List all registered hooks (for diagnostics). */
|
|
176
|
+
list(): Array<{
|
|
177
|
+
hook: LifecycleHook;
|
|
178
|
+
phase: HookPhase;
|
|
179
|
+
priority: number;
|
|
180
|
+
name?: string;
|
|
181
|
+
}>;
|
|
182
|
+
/** Remove all registered hooks. */
|
|
183
|
+
clear(): void;
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAIlL,MAAM,MAAM,aAAa,GAErB,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,YAAY,GAEZ,iBAAiB,GACjB,kBAAkB,GAElB,gBAAgB,GAChB,qBAAqB,GAErB,cAAc,GACd,aAAa,GAEb,kBAAkB,GAElB,mBAAmB,GACnB,uBAAuB,CAAC;AAI5B,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;QACjC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;QACrC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,aAAa,CAAC,EAAE,uBAAuB,CAAC;QACxC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,YAAY,EAAE;QACZ,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;IACF,eAAe,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,UAAU,CAAC,EAAE,gBAAgB,CAAC;KAC/B,CAAC;IACF,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,iBAAiB,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,kBAAkB,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;IACF,qBAAqB,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,UAAU,EAAE,gBAAgB,CAAC;QAC7B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,cAAc,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjF,CAAC;IACF,aAAa,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,kBAAkB,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,mBAAmB,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAChD;AAID,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3C,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,0DAA0D;IAC1D,IAAI,EAAE,CAAC,CAAC;IACR,+DAA+D;IAC/D,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAErF,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IACvE,yCAAyC;IACzC,IAAI,EAAE,CAAC,CAAC;IACR,kFAAkF;IAClF,KAAK,EAAE,SAAS,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC;CACT;AAYD;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAA4B;IAEjD;;;OAGG;IACH,QAAQ,CAAC,CAAC,SAAS,aAAa,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAmBvE;;;;;;OAMG;IACG,SAAS,CAAC,CAAC,SAAS,aAAa,EACrC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAkC7C;;;;OAIG;IACG,QAAQ,CAAC,CAAC,SAAS,aAAa,EACpC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;OAGG;IACH,aAAa,CAAC,CAAC,SAAS,aAAa,EACnC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACpB,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAmCpC,8DAA8D;IAC9D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,mDAAmD;IACnD,IAAI,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IASzF,mCAAmC;IACnC,KAAK,IAAI,IAAI;CAGd"}
|