opencode-swarm-plugin 0.39.1 → 0.42.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.
Files changed (82) hide show
  1. package/.hive/analysis/eval-failure-analysis-2025-12-25.md +331 -0
  2. package/.hive/analysis/session-data-quality-audit.md +320 -0
  3. package/.hive/eval-results.json +481 -24
  4. package/.hive/issues.jsonl +76 -11
  5. package/.hive/memories.jsonl +159 -1
  6. package/.opencode/eval-history.jsonl +315 -0
  7. package/.turbo/turbo-build.log +5 -5
  8. package/CHANGELOG.md +207 -0
  9. package/README.md +2 -0
  10. package/SCORER-ANALYSIS.md +598 -0
  11. package/bin/eval-gate.test.ts +158 -0
  12. package/bin/eval-gate.ts +74 -0
  13. package/bin/swarm.test.ts +1054 -719
  14. package/bin/swarm.ts +577 -0
  15. package/dist/compaction-hook.d.ts +10 -1
  16. package/dist/compaction-hook.d.ts.map +1 -1
  17. package/dist/compaction-observability.d.ts +173 -0
  18. package/dist/compaction-observability.d.ts.map +1 -0
  19. package/dist/compaction-prompt-scoring.d.ts +1 -0
  20. package/dist/compaction-prompt-scoring.d.ts.map +1 -1
  21. package/dist/eval-capture.d.ts +93 -0
  22. package/dist/eval-capture.d.ts.map +1 -1
  23. package/dist/eval-runner.d.ts +134 -0
  24. package/dist/eval-runner.d.ts.map +1 -0
  25. package/dist/hive.d.ts.map +1 -1
  26. package/dist/index.d.ts +65 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +84043 -28070
  29. package/dist/memory-tools.d.ts +70 -2
  30. package/dist/memory-tools.d.ts.map +1 -1
  31. package/dist/memory.d.ts +37 -0
  32. package/dist/memory.d.ts.map +1 -1
  33. package/dist/observability-tools.d.ts +64 -0
  34. package/dist/observability-tools.d.ts.map +1 -1
  35. package/dist/plugin.js +83570 -27466
  36. package/dist/schemas/task.d.ts +3 -3
  37. package/dist/swarm-orchestrate.d.ts.map +1 -1
  38. package/dist/swarm-prompts.d.ts +32 -1
  39. package/dist/swarm-prompts.d.ts.map +1 -1
  40. package/docs/planning/ADR-009-oh-my-opencode-patterns.md +353 -0
  41. package/evals/ARCHITECTURE.md +1189 -0
  42. package/evals/README.md +113 -0
  43. package/evals/example.eval.ts +3 -4
  44. package/evals/fixtures/compaction-prompt-cases.ts +6 -0
  45. package/evals/scorers/coordinator-discipline.evalite-test.ts +163 -0
  46. package/evals/scorers/coordinator-discipline.ts +82 -2
  47. package/evals/scorers/index.test.ts +146 -0
  48. package/evals/scorers/index.ts +104 -0
  49. package/evals/swarm-decomposition.eval.ts +13 -4
  50. package/examples/commands/swarm.md +291 -21
  51. package/package.json +4 -3
  52. package/src/compaction-hook.ts +258 -110
  53. package/src/compaction-observability.integration.test.ts +139 -0
  54. package/src/compaction-observability.test.ts +187 -0
  55. package/src/compaction-observability.ts +324 -0
  56. package/src/compaction-prompt-scorers.test.ts +10 -9
  57. package/src/compaction-prompt-scoring.ts +7 -5
  58. package/src/eval-capture.test.ts +204 -1
  59. package/src/eval-capture.ts +194 -2
  60. package/src/eval-runner.test.ts +223 -0
  61. package/src/eval-runner.ts +402 -0
  62. package/src/hive.ts +57 -22
  63. package/src/index.ts +54 -1
  64. package/src/memory-tools.test.ts +84 -0
  65. package/src/memory-tools.ts +68 -3
  66. package/src/memory.test.ts +2 -2
  67. package/src/memory.ts +122 -49
  68. package/src/observability-tools.test.ts +13 -0
  69. package/src/observability-tools.ts +277 -0
  70. package/src/swarm-orchestrate.test.ts +162 -0
  71. package/src/swarm-orchestrate.ts +7 -5
  72. package/src/swarm-prompts.test.ts +168 -4
  73. package/src/swarm-prompts.ts +228 -7
  74. package/.env +0 -2
  75. package/.turbo/turbo-test.log +0 -481
  76. package/.turbo/turbo-typecheck.log +0 -1
  77. package/dist/beads.d.ts +0 -386
  78. package/dist/beads.d.ts.map +0 -1
  79. package/dist/schemas/bead-events.d.ts +0 -698
  80. package/dist/schemas/bead-events.d.ts.map +0 -1
  81. package/dist/schemas/bead.d.ts +0 -255
  82. package/dist/schemas/bead.d.ts.map +0 -1
@@ -1,698 +0,0 @@
1
- /**
2
- * Event Types for Beads Event Sourcing
3
- *
4
- * These events form an audit trail for all bead operations.
5
- * Events are NOT replayed for state reconstruction (beads uses hybrid CRUD + audit trail).
6
- * Events enable:
7
- * - Full audit history
8
- * - Debugging distributed swarm operations
9
- * - Learning from bead lifecycle patterns
10
- * - Integration with swarm-mail coordination
11
- *
12
- * Design notes:
13
- * - 75% reusable infrastructure from swarm-mail
14
- * - Events stay local (PGLite/SQLite), not written to JSONL
15
- * - JSONL export happens from projection snapshots (proven git merge driver)
16
- * - Follows same BaseEventSchema pattern as swarm-mail
17
- */
18
- import { z } from "zod";
19
- /**
20
- * Base fields present on all bead events
21
- */
22
- export declare const BaseBeadEventSchema: z.ZodObject<{
23
- id: z.ZodOptional<z.ZodNumber>;
24
- type: z.ZodString;
25
- project_key: z.ZodString;
26
- timestamp: z.ZodNumber;
27
- sequence: z.ZodOptional<z.ZodNumber>;
28
- }, z.core.$strip>;
29
- /**
30
- * Bead created
31
- *
32
- * Emitted when:
33
- * - User calls `bd create`
34
- * - Swarm epic decomposition creates subtasks
35
- * - Agent spawns new beads during work
36
- */
37
- export declare const BeadCreatedEventSchema: z.ZodObject<{
38
- id: z.ZodOptional<z.ZodNumber>;
39
- project_key: z.ZodString;
40
- timestamp: z.ZodNumber;
41
- sequence: z.ZodOptional<z.ZodNumber>;
42
- type: z.ZodLiteral<"bead_created">;
43
- bead_id: z.ZodString;
44
- title: z.ZodString;
45
- description: z.ZodOptional<z.ZodString>;
46
- issue_type: z.ZodEnum<{
47
- bug: "bug";
48
- feature: "feature";
49
- task: "task";
50
- epic: "epic";
51
- chore: "chore";
52
- }>;
53
- priority: z.ZodNumber;
54
- parent_id: z.ZodOptional<z.ZodString>;
55
- created_by: z.ZodOptional<z.ZodString>;
56
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
57
- }, z.core.$strip>;
58
- /**
59
- * Bead updated (generic field changes)
60
- *
61
- * Emitted for non-status field updates: title, description, priority
62
- */
63
- export declare const BeadUpdatedEventSchema: z.ZodObject<{
64
- id: z.ZodOptional<z.ZodNumber>;
65
- project_key: z.ZodString;
66
- timestamp: z.ZodNumber;
67
- sequence: z.ZodOptional<z.ZodNumber>;
68
- type: z.ZodLiteral<"bead_updated">;
69
- bead_id: z.ZodString;
70
- updated_by: z.ZodOptional<z.ZodString>;
71
- changes: z.ZodObject<{
72
- title: z.ZodOptional<z.ZodObject<{
73
- old: z.ZodString;
74
- new: z.ZodString;
75
- }, z.core.$strip>>;
76
- description: z.ZodOptional<z.ZodObject<{
77
- old: z.ZodString;
78
- new: z.ZodString;
79
- }, z.core.$strip>>;
80
- priority: z.ZodOptional<z.ZodObject<{
81
- old: z.ZodNumber;
82
- new: z.ZodNumber;
83
- }, z.core.$strip>>;
84
- }, z.core.$strip>;
85
- }, z.core.$strip>;
86
- /**
87
- * Bead status changed
88
- *
89
- * Separate event for status transitions to enable workflow analysis.
90
- * Tracks state machine: open → in_progress → (blocked | closed)
91
- */
92
- export declare const BeadStatusChangedEventSchema: z.ZodObject<{
93
- id: z.ZodOptional<z.ZodNumber>;
94
- project_key: z.ZodString;
95
- timestamp: z.ZodNumber;
96
- sequence: z.ZodOptional<z.ZodNumber>;
97
- type: z.ZodLiteral<"bead_status_changed">;
98
- bead_id: z.ZodString;
99
- from_status: z.ZodEnum<{
100
- open: "open";
101
- in_progress: "in_progress";
102
- blocked: "blocked";
103
- closed: "closed";
104
- }>;
105
- to_status: z.ZodEnum<{
106
- open: "open";
107
- in_progress: "in_progress";
108
- blocked: "blocked";
109
- closed: "closed";
110
- }>;
111
- changed_by: z.ZodOptional<z.ZodString>;
112
- reason: z.ZodOptional<z.ZodString>;
113
- }, z.core.$strip>;
114
- /**
115
- * Bead closed
116
- *
117
- * Explicit close event (subset of status_changed for convenience).
118
- * Includes closure reason for audit trail.
119
- */
120
- export declare const BeadClosedEventSchema: z.ZodObject<{
121
- id: z.ZodOptional<z.ZodNumber>;
122
- project_key: z.ZodString;
123
- timestamp: z.ZodNumber;
124
- sequence: z.ZodOptional<z.ZodNumber>;
125
- type: z.ZodLiteral<"bead_closed">;
126
- bead_id: z.ZodString;
127
- reason: z.ZodString;
128
- closed_by: z.ZodOptional<z.ZodString>;
129
- files_touched: z.ZodOptional<z.ZodArray<z.ZodString>>;
130
- duration_ms: z.ZodOptional<z.ZodNumber>;
131
- }, z.core.$strip>;
132
- /**
133
- * Bead reopened
134
- *
135
- * Emitted when closed bead is reopened.
136
- */
137
- export declare const BeadReopenedEventSchema: z.ZodObject<{
138
- id: z.ZodOptional<z.ZodNumber>;
139
- project_key: z.ZodString;
140
- timestamp: z.ZodNumber;
141
- sequence: z.ZodOptional<z.ZodNumber>;
142
- type: z.ZodLiteral<"bead_reopened">;
143
- bead_id: z.ZodString;
144
- reason: z.ZodOptional<z.ZodString>;
145
- reopened_by: z.ZodOptional<z.ZodString>;
146
- }, z.core.$strip>;
147
- /**
148
- * Bead deleted
149
- *
150
- * Hard delete event (rare - beads are usually closed, not deleted).
151
- * Useful for cleaning up spurious/duplicate beads.
152
- */
153
- export declare const BeadDeletedEventSchema: z.ZodObject<{
154
- id: z.ZodOptional<z.ZodNumber>;
155
- project_key: z.ZodString;
156
- timestamp: z.ZodNumber;
157
- sequence: z.ZodOptional<z.ZodNumber>;
158
- type: z.ZodLiteral<"bead_deleted">;
159
- bead_id: z.ZodString;
160
- reason: z.ZodOptional<z.ZodString>;
161
- deleted_by: z.ZodOptional<z.ZodString>;
162
- }, z.core.$strip>;
163
- /**
164
- * Dependency added between beads
165
- *
166
- * Supports 4 relationship types:
167
- * - blocks: This bead blocks the target
168
- * - blocked-by: This bead is blocked by the target
169
- * - related: Informational link
170
- * - discovered-from: Bead spawned from investigation of target
171
- */
172
- export declare const BeadDependencyAddedEventSchema: z.ZodObject<{
173
- id: z.ZodOptional<z.ZodNumber>;
174
- project_key: z.ZodString;
175
- timestamp: z.ZodNumber;
176
- sequence: z.ZodOptional<z.ZodNumber>;
177
- type: z.ZodLiteral<"bead_dependency_added">;
178
- bead_id: z.ZodString;
179
- dependency: z.ZodObject<{
180
- id: z.ZodString;
181
- type: z.ZodEnum<{
182
- blocks: "blocks";
183
- "blocked-by": "blocked-by";
184
- related: "related";
185
- "discovered-from": "discovered-from";
186
- }>;
187
- }, z.core.$strip>;
188
- added_by: z.ZodOptional<z.ZodString>;
189
- reason: z.ZodOptional<z.ZodString>;
190
- }, z.core.$strip>;
191
- /**
192
- * Dependency removed
193
- *
194
- * Emitted when dependency is no longer relevant or was added in error.
195
- */
196
- export declare const BeadDependencyRemovedEventSchema: z.ZodObject<{
197
- id: z.ZodOptional<z.ZodNumber>;
198
- project_key: z.ZodString;
199
- timestamp: z.ZodNumber;
200
- sequence: z.ZodOptional<z.ZodNumber>;
201
- type: z.ZodLiteral<"bead_dependency_removed">;
202
- bead_id: z.ZodString;
203
- dependency: z.ZodObject<{
204
- id: z.ZodString;
205
- type: z.ZodEnum<{
206
- blocks: "blocks";
207
- "blocked-by": "blocked-by";
208
- related: "related";
209
- "discovered-from": "discovered-from";
210
- }>;
211
- }, z.core.$strip>;
212
- removed_by: z.ZodOptional<z.ZodString>;
213
- reason: z.ZodOptional<z.ZodString>;
214
- }, z.core.$strip>;
215
- /**
216
- * Label added to bead
217
- *
218
- * Labels are string tags for categorization/filtering.
219
- * Common labels: "p0", "needs-review", "blocked-external", "tech-debt"
220
- */
221
- export declare const BeadLabelAddedEventSchema: z.ZodObject<{
222
- id: z.ZodOptional<z.ZodNumber>;
223
- project_key: z.ZodString;
224
- timestamp: z.ZodNumber;
225
- sequence: z.ZodOptional<z.ZodNumber>;
226
- type: z.ZodLiteral<"bead_label_added">;
227
- bead_id: z.ZodString;
228
- label: z.ZodString;
229
- added_by: z.ZodOptional<z.ZodString>;
230
- }, z.core.$strip>;
231
- /**
232
- * Label removed from bead
233
- */
234
- export declare const BeadLabelRemovedEventSchema: z.ZodObject<{
235
- id: z.ZodOptional<z.ZodNumber>;
236
- project_key: z.ZodString;
237
- timestamp: z.ZodNumber;
238
- sequence: z.ZodOptional<z.ZodNumber>;
239
- type: z.ZodLiteral<"bead_label_removed">;
240
- bead_id: z.ZodString;
241
- label: z.ZodString;
242
- removed_by: z.ZodOptional<z.ZodString>;
243
- }, z.core.$strip>;
244
- /**
245
- * Comment added to bead
246
- *
247
- * Supports agent-to-agent communication, human notes, and progress updates.
248
- */
249
- export declare const BeadCommentAddedEventSchema: z.ZodObject<{
250
- id: z.ZodOptional<z.ZodNumber>;
251
- project_key: z.ZodString;
252
- timestamp: z.ZodNumber;
253
- sequence: z.ZodOptional<z.ZodNumber>;
254
- type: z.ZodLiteral<"bead_comment_added">;
255
- bead_id: z.ZodString;
256
- comment_id: z.ZodOptional<z.ZodNumber>;
257
- author: z.ZodString;
258
- body: z.ZodString;
259
- parent_comment_id: z.ZodOptional<z.ZodNumber>;
260
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
261
- }, z.core.$strip>;
262
- /**
263
- * Comment updated (edit)
264
- */
265
- export declare const BeadCommentUpdatedEventSchema: z.ZodObject<{
266
- id: z.ZodOptional<z.ZodNumber>;
267
- project_key: z.ZodString;
268
- timestamp: z.ZodNumber;
269
- sequence: z.ZodOptional<z.ZodNumber>;
270
- type: z.ZodLiteral<"bead_comment_updated">;
271
- bead_id: z.ZodString;
272
- comment_id: z.ZodNumber;
273
- old_body: z.ZodString;
274
- new_body: z.ZodString;
275
- updated_by: z.ZodString;
276
- }, z.core.$strip>;
277
- /**
278
- * Comment deleted
279
- */
280
- export declare const BeadCommentDeletedEventSchema: z.ZodObject<{
281
- id: z.ZodOptional<z.ZodNumber>;
282
- project_key: z.ZodString;
283
- timestamp: z.ZodNumber;
284
- sequence: z.ZodOptional<z.ZodNumber>;
285
- type: z.ZodLiteral<"bead_comment_deleted">;
286
- bead_id: z.ZodString;
287
- comment_id: z.ZodNumber;
288
- deleted_by: z.ZodString;
289
- reason: z.ZodOptional<z.ZodString>;
290
- }, z.core.$strip>;
291
- /**
292
- * Child bead added to epic
293
- *
294
- * Emitted when:
295
- * - Epic created with subtasks (batch event for each child)
296
- * - User manually adds child via `bd add-child`
297
- * - Agent spawns additional subtask during work
298
- */
299
- export declare const BeadEpicChildAddedEventSchema: z.ZodObject<{
300
- id: z.ZodOptional<z.ZodNumber>;
301
- project_key: z.ZodString;
302
- timestamp: z.ZodNumber;
303
- sequence: z.ZodOptional<z.ZodNumber>;
304
- type: z.ZodLiteral<"bead_epic_child_added">;
305
- bead_id: z.ZodString;
306
- child_id: z.ZodString;
307
- child_index: z.ZodOptional<z.ZodNumber>;
308
- added_by: z.ZodOptional<z.ZodString>;
309
- }, z.core.$strip>;
310
- /**
311
- * Child bead removed from epic
312
- *
313
- * Rare - usually happens when subtask is merged/consolidated.
314
- */
315
- export declare const BeadEpicChildRemovedEventSchema: z.ZodObject<{
316
- id: z.ZodOptional<z.ZodNumber>;
317
- project_key: z.ZodString;
318
- timestamp: z.ZodNumber;
319
- sequence: z.ZodOptional<z.ZodNumber>;
320
- type: z.ZodLiteral<"bead_epic_child_removed">;
321
- bead_id: z.ZodString;
322
- child_id: z.ZodString;
323
- removed_by: z.ZodOptional<z.ZodString>;
324
- reason: z.ZodOptional<z.ZodString>;
325
- }, z.core.$strip>;
326
- /**
327
- * Epic eligible for closure
328
- *
329
- * Emitted when all child beads are closed.
330
- * Triggers coordinator review for epic closure.
331
- */
332
- export declare const BeadEpicClosureEligibleEventSchema: z.ZodObject<{
333
- id: z.ZodOptional<z.ZodNumber>;
334
- project_key: z.ZodString;
335
- timestamp: z.ZodNumber;
336
- sequence: z.ZodOptional<z.ZodNumber>;
337
- type: z.ZodLiteral<"bead_epic_closure_eligible">;
338
- bead_id: z.ZodString;
339
- child_ids: z.ZodArray<z.ZodString>;
340
- total_duration_ms: z.ZodOptional<z.ZodNumber>;
341
- all_files_touched: z.ZodOptional<z.ZodArray<z.ZodString>>;
342
- }, z.core.$strip>;
343
- /**
344
- * Bead assigned to agent
345
- *
346
- * Links beads to swarm-mail's agent tracking.
347
- * Emitted when agent calls `beads_start` or swarm spawns worker.
348
- */
349
- export declare const BeadAssignedEventSchema: z.ZodObject<{
350
- id: z.ZodOptional<z.ZodNumber>;
351
- project_key: z.ZodString;
352
- timestamp: z.ZodNumber;
353
- sequence: z.ZodOptional<z.ZodNumber>;
354
- type: z.ZodLiteral<"bead_assigned">;
355
- bead_id: z.ZodString;
356
- agent_name: z.ZodString;
357
- task_description: z.ZodOptional<z.ZodString>;
358
- }, z.core.$strip>;
359
- /**
360
- * Bead work started
361
- *
362
- * Separate from status change to track actual work start time.
363
- * Useful for duration/velocity metrics.
364
- */
365
- export declare const BeadWorkStartedEventSchema: z.ZodObject<{
366
- id: z.ZodOptional<z.ZodNumber>;
367
- project_key: z.ZodString;
368
- timestamp: z.ZodNumber;
369
- sequence: z.ZodOptional<z.ZodNumber>;
370
- type: z.ZodLiteral<"bead_work_started">;
371
- bead_id: z.ZodString;
372
- agent_name: z.ZodString;
373
- reserved_files: z.ZodOptional<z.ZodArray<z.ZodString>>;
374
- }, z.core.$strip>;
375
- /**
376
- * Bead compacted
377
- *
378
- * Emitted when bead's event history is compressed (rare).
379
- * Follows steveyegge/beads pattern - old events archived, projection preserved.
380
- */
381
- export declare const BeadCompactedEventSchema: z.ZodObject<{
382
- id: z.ZodOptional<z.ZodNumber>;
383
- project_key: z.ZodString;
384
- timestamp: z.ZodNumber;
385
- sequence: z.ZodOptional<z.ZodNumber>;
386
- type: z.ZodLiteral<"bead_compacted">;
387
- bead_id: z.ZodString;
388
- events_archived: z.ZodNumber;
389
- new_start_sequence: z.ZodNumber;
390
- }, z.core.$strip>;
391
- export declare const BeadEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
392
- id: z.ZodOptional<z.ZodNumber>;
393
- project_key: z.ZodString;
394
- timestamp: z.ZodNumber;
395
- sequence: z.ZodOptional<z.ZodNumber>;
396
- type: z.ZodLiteral<"bead_created">;
397
- bead_id: z.ZodString;
398
- title: z.ZodString;
399
- description: z.ZodOptional<z.ZodString>;
400
- issue_type: z.ZodEnum<{
401
- bug: "bug";
402
- feature: "feature";
403
- task: "task";
404
- epic: "epic";
405
- chore: "chore";
406
- }>;
407
- priority: z.ZodNumber;
408
- parent_id: z.ZodOptional<z.ZodString>;
409
- created_by: z.ZodOptional<z.ZodString>;
410
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
411
- }, z.core.$strip>, z.ZodObject<{
412
- id: z.ZodOptional<z.ZodNumber>;
413
- project_key: z.ZodString;
414
- timestamp: z.ZodNumber;
415
- sequence: z.ZodOptional<z.ZodNumber>;
416
- type: z.ZodLiteral<"bead_updated">;
417
- bead_id: z.ZodString;
418
- updated_by: z.ZodOptional<z.ZodString>;
419
- changes: z.ZodObject<{
420
- title: z.ZodOptional<z.ZodObject<{
421
- old: z.ZodString;
422
- new: z.ZodString;
423
- }, z.core.$strip>>;
424
- description: z.ZodOptional<z.ZodObject<{
425
- old: z.ZodString;
426
- new: z.ZodString;
427
- }, z.core.$strip>>;
428
- priority: z.ZodOptional<z.ZodObject<{
429
- old: z.ZodNumber;
430
- new: z.ZodNumber;
431
- }, z.core.$strip>>;
432
- }, z.core.$strip>;
433
- }, z.core.$strip>, z.ZodObject<{
434
- id: z.ZodOptional<z.ZodNumber>;
435
- project_key: z.ZodString;
436
- timestamp: z.ZodNumber;
437
- sequence: z.ZodOptional<z.ZodNumber>;
438
- type: z.ZodLiteral<"bead_status_changed">;
439
- bead_id: z.ZodString;
440
- from_status: z.ZodEnum<{
441
- open: "open";
442
- in_progress: "in_progress";
443
- blocked: "blocked";
444
- closed: "closed";
445
- }>;
446
- to_status: z.ZodEnum<{
447
- open: "open";
448
- in_progress: "in_progress";
449
- blocked: "blocked";
450
- closed: "closed";
451
- }>;
452
- changed_by: z.ZodOptional<z.ZodString>;
453
- reason: z.ZodOptional<z.ZodString>;
454
- }, z.core.$strip>, z.ZodObject<{
455
- id: z.ZodOptional<z.ZodNumber>;
456
- project_key: z.ZodString;
457
- timestamp: z.ZodNumber;
458
- sequence: z.ZodOptional<z.ZodNumber>;
459
- type: z.ZodLiteral<"bead_closed">;
460
- bead_id: z.ZodString;
461
- reason: z.ZodString;
462
- closed_by: z.ZodOptional<z.ZodString>;
463
- files_touched: z.ZodOptional<z.ZodArray<z.ZodString>>;
464
- duration_ms: z.ZodOptional<z.ZodNumber>;
465
- }, z.core.$strip>, z.ZodObject<{
466
- id: z.ZodOptional<z.ZodNumber>;
467
- project_key: z.ZodString;
468
- timestamp: z.ZodNumber;
469
- sequence: z.ZodOptional<z.ZodNumber>;
470
- type: z.ZodLiteral<"bead_reopened">;
471
- bead_id: z.ZodString;
472
- reason: z.ZodOptional<z.ZodString>;
473
- reopened_by: z.ZodOptional<z.ZodString>;
474
- }, z.core.$strip>, z.ZodObject<{
475
- id: z.ZodOptional<z.ZodNumber>;
476
- project_key: z.ZodString;
477
- timestamp: z.ZodNumber;
478
- sequence: z.ZodOptional<z.ZodNumber>;
479
- type: z.ZodLiteral<"bead_deleted">;
480
- bead_id: z.ZodString;
481
- reason: z.ZodOptional<z.ZodString>;
482
- deleted_by: z.ZodOptional<z.ZodString>;
483
- }, z.core.$strip>, z.ZodObject<{
484
- id: z.ZodOptional<z.ZodNumber>;
485
- project_key: z.ZodString;
486
- timestamp: z.ZodNumber;
487
- sequence: z.ZodOptional<z.ZodNumber>;
488
- type: z.ZodLiteral<"bead_dependency_added">;
489
- bead_id: z.ZodString;
490
- dependency: z.ZodObject<{
491
- id: z.ZodString;
492
- type: z.ZodEnum<{
493
- blocks: "blocks";
494
- "blocked-by": "blocked-by";
495
- related: "related";
496
- "discovered-from": "discovered-from";
497
- }>;
498
- }, z.core.$strip>;
499
- added_by: z.ZodOptional<z.ZodString>;
500
- reason: z.ZodOptional<z.ZodString>;
501
- }, z.core.$strip>, z.ZodObject<{
502
- id: z.ZodOptional<z.ZodNumber>;
503
- project_key: z.ZodString;
504
- timestamp: z.ZodNumber;
505
- sequence: z.ZodOptional<z.ZodNumber>;
506
- type: z.ZodLiteral<"bead_dependency_removed">;
507
- bead_id: z.ZodString;
508
- dependency: z.ZodObject<{
509
- id: z.ZodString;
510
- type: z.ZodEnum<{
511
- blocks: "blocks";
512
- "blocked-by": "blocked-by";
513
- related: "related";
514
- "discovered-from": "discovered-from";
515
- }>;
516
- }, z.core.$strip>;
517
- removed_by: z.ZodOptional<z.ZodString>;
518
- reason: z.ZodOptional<z.ZodString>;
519
- }, z.core.$strip>, z.ZodObject<{
520
- id: z.ZodOptional<z.ZodNumber>;
521
- project_key: z.ZodString;
522
- timestamp: z.ZodNumber;
523
- sequence: z.ZodOptional<z.ZodNumber>;
524
- type: z.ZodLiteral<"bead_label_added">;
525
- bead_id: z.ZodString;
526
- label: z.ZodString;
527
- added_by: z.ZodOptional<z.ZodString>;
528
- }, z.core.$strip>, z.ZodObject<{
529
- id: z.ZodOptional<z.ZodNumber>;
530
- project_key: z.ZodString;
531
- timestamp: z.ZodNumber;
532
- sequence: z.ZodOptional<z.ZodNumber>;
533
- type: z.ZodLiteral<"bead_label_removed">;
534
- bead_id: z.ZodString;
535
- label: z.ZodString;
536
- removed_by: z.ZodOptional<z.ZodString>;
537
- }, z.core.$strip>, z.ZodObject<{
538
- id: z.ZodOptional<z.ZodNumber>;
539
- project_key: z.ZodString;
540
- timestamp: z.ZodNumber;
541
- sequence: z.ZodOptional<z.ZodNumber>;
542
- type: z.ZodLiteral<"bead_comment_added">;
543
- bead_id: z.ZodString;
544
- comment_id: z.ZodOptional<z.ZodNumber>;
545
- author: z.ZodString;
546
- body: z.ZodString;
547
- parent_comment_id: z.ZodOptional<z.ZodNumber>;
548
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
549
- }, z.core.$strip>, z.ZodObject<{
550
- id: z.ZodOptional<z.ZodNumber>;
551
- project_key: z.ZodString;
552
- timestamp: z.ZodNumber;
553
- sequence: z.ZodOptional<z.ZodNumber>;
554
- type: z.ZodLiteral<"bead_comment_updated">;
555
- bead_id: z.ZodString;
556
- comment_id: z.ZodNumber;
557
- old_body: z.ZodString;
558
- new_body: z.ZodString;
559
- updated_by: z.ZodString;
560
- }, z.core.$strip>, z.ZodObject<{
561
- id: z.ZodOptional<z.ZodNumber>;
562
- project_key: z.ZodString;
563
- timestamp: z.ZodNumber;
564
- sequence: z.ZodOptional<z.ZodNumber>;
565
- type: z.ZodLiteral<"bead_comment_deleted">;
566
- bead_id: z.ZodString;
567
- comment_id: z.ZodNumber;
568
- deleted_by: z.ZodString;
569
- reason: z.ZodOptional<z.ZodString>;
570
- }, z.core.$strip>, z.ZodObject<{
571
- id: z.ZodOptional<z.ZodNumber>;
572
- project_key: z.ZodString;
573
- timestamp: z.ZodNumber;
574
- sequence: z.ZodOptional<z.ZodNumber>;
575
- type: z.ZodLiteral<"bead_epic_child_added">;
576
- bead_id: z.ZodString;
577
- child_id: z.ZodString;
578
- child_index: z.ZodOptional<z.ZodNumber>;
579
- added_by: z.ZodOptional<z.ZodString>;
580
- }, z.core.$strip>, z.ZodObject<{
581
- id: z.ZodOptional<z.ZodNumber>;
582
- project_key: z.ZodString;
583
- timestamp: z.ZodNumber;
584
- sequence: z.ZodOptional<z.ZodNumber>;
585
- type: z.ZodLiteral<"bead_epic_child_removed">;
586
- bead_id: z.ZodString;
587
- child_id: z.ZodString;
588
- removed_by: z.ZodOptional<z.ZodString>;
589
- reason: z.ZodOptional<z.ZodString>;
590
- }, z.core.$strip>, z.ZodObject<{
591
- id: z.ZodOptional<z.ZodNumber>;
592
- project_key: z.ZodString;
593
- timestamp: z.ZodNumber;
594
- sequence: z.ZodOptional<z.ZodNumber>;
595
- type: z.ZodLiteral<"bead_epic_closure_eligible">;
596
- bead_id: z.ZodString;
597
- child_ids: z.ZodArray<z.ZodString>;
598
- total_duration_ms: z.ZodOptional<z.ZodNumber>;
599
- all_files_touched: z.ZodOptional<z.ZodArray<z.ZodString>>;
600
- }, z.core.$strip>, z.ZodObject<{
601
- id: z.ZodOptional<z.ZodNumber>;
602
- project_key: z.ZodString;
603
- timestamp: z.ZodNumber;
604
- sequence: z.ZodOptional<z.ZodNumber>;
605
- type: z.ZodLiteral<"bead_assigned">;
606
- bead_id: z.ZodString;
607
- agent_name: z.ZodString;
608
- task_description: z.ZodOptional<z.ZodString>;
609
- }, z.core.$strip>, z.ZodObject<{
610
- id: z.ZodOptional<z.ZodNumber>;
611
- project_key: z.ZodString;
612
- timestamp: z.ZodNumber;
613
- sequence: z.ZodOptional<z.ZodNumber>;
614
- type: z.ZodLiteral<"bead_work_started">;
615
- bead_id: z.ZodString;
616
- agent_name: z.ZodString;
617
- reserved_files: z.ZodOptional<z.ZodArray<z.ZodString>>;
618
- }, z.core.$strip>, z.ZodObject<{
619
- id: z.ZodOptional<z.ZodNumber>;
620
- project_key: z.ZodString;
621
- timestamp: z.ZodNumber;
622
- sequence: z.ZodOptional<z.ZodNumber>;
623
- type: z.ZodLiteral<"bead_compacted">;
624
- bead_id: z.ZodString;
625
- events_archived: z.ZodNumber;
626
- new_start_sequence: z.ZodNumber;
627
- }, z.core.$strip>], "type">;
628
- export type BeadEvent = z.infer<typeof BeadEventSchema>;
629
- export type BeadCreatedEvent = z.infer<typeof BeadCreatedEventSchema>;
630
- export type BeadUpdatedEvent = z.infer<typeof BeadUpdatedEventSchema>;
631
- export type BeadStatusChangedEvent = z.infer<typeof BeadStatusChangedEventSchema>;
632
- export type BeadClosedEvent = z.infer<typeof BeadClosedEventSchema>;
633
- export type BeadReopenedEvent = z.infer<typeof BeadReopenedEventSchema>;
634
- export type BeadDeletedEvent = z.infer<typeof BeadDeletedEventSchema>;
635
- export type BeadDependencyAddedEvent = z.infer<typeof BeadDependencyAddedEventSchema>;
636
- export type BeadDependencyRemovedEvent = z.infer<typeof BeadDependencyRemovedEventSchema>;
637
- export type BeadLabelAddedEvent = z.infer<typeof BeadLabelAddedEventSchema>;
638
- export type BeadLabelRemovedEvent = z.infer<typeof BeadLabelRemovedEventSchema>;
639
- export type BeadCommentAddedEvent = z.infer<typeof BeadCommentAddedEventSchema>;
640
- export type BeadCommentUpdatedEvent = z.infer<typeof BeadCommentUpdatedEventSchema>;
641
- export type BeadCommentDeletedEvent = z.infer<typeof BeadCommentDeletedEventSchema>;
642
- export type BeadEpicChildAddedEvent = z.infer<typeof BeadEpicChildAddedEventSchema>;
643
- export type BeadEpicChildRemovedEvent = z.infer<typeof BeadEpicChildRemovedEventSchema>;
644
- export type BeadEpicClosureEligibleEvent = z.infer<typeof BeadEpicClosureEligibleEventSchema>;
645
- export type BeadAssignedEvent = z.infer<typeof BeadAssignedEventSchema>;
646
- export type BeadWorkStartedEvent = z.infer<typeof BeadWorkStartedEventSchema>;
647
- export type BeadCompactedEvent = z.infer<typeof BeadCompactedEventSchema>;
648
- /**
649
- * Create a bead event with timestamp and validate
650
- *
651
- * Usage:
652
- * ```typescript
653
- * const event = createBeadEvent("bead_created", {
654
- * project_key: "/path/to/repo",
655
- * bead_id: "bd-123",
656
- * title: "Add auth",
657
- * issue_type: "feature",
658
- * priority: 2
659
- * });
660
- * ```
661
- */
662
- export declare function createBeadEvent<T extends BeadEvent["type"]>(type: T, data: Omit<Extract<BeadEvent, {
663
- type: T;
664
- }>, "type" | "timestamp" | "id" | "sequence">): Extract<BeadEvent, {
665
- type: T;
666
- }>;
667
- /**
668
- * Type guard for specific bead event types
669
- *
670
- * Usage:
671
- * ```typescript
672
- * if (isBeadEventType(event, "bead_closed")) {
673
- * console.log(event.reason); // TypeScript knows this is BeadClosedEvent
674
- * }
675
- * ```
676
- */
677
- export declare function isBeadEventType<T extends BeadEvent["type"]>(event: BeadEvent, type: T): event is Extract<BeadEvent, {
678
- type: T;
679
- }>;
680
- /**
681
- * Extract bead ID from event (convenience helper)
682
- *
683
- * All bead events have bead_id field (or it's the epic's bead_id for epic events).
684
- */
685
- export declare function getBeadIdFromEvent(event: BeadEvent): string;
686
- /**
687
- * Check if event represents a state transition
688
- */
689
- export declare function isStateTransitionEvent(event: BeadEvent): event is BeadStatusChangedEvent | BeadClosedEvent | BeadReopenedEvent;
690
- /**
691
- * Check if event represents an epic operation
692
- */
693
- export declare function isEpicEvent(event: BeadEvent): event is BeadEpicChildAddedEvent | BeadEpicChildRemovedEvent | BeadEpicClosureEligibleEvent;
694
- /**
695
- * Check if event was triggered by an agent (vs human user)
696
- */
697
- export declare function isAgentEvent(event: BeadEvent): boolean;
698
- //# sourceMappingURL=bead-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bead-events.d.ts","sourceRoot":"","sources":["../../src/schemas/bead-events.ts"],"names":[],"mappings":"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"}