opencastle 0.10.7 → 0.12.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 (132) hide show
  1. package/README.md +4 -0
  2. package/bin/cli.mjs +4 -0
  3. package/dist/cli/convoy/events.d.ts +10 -0
  4. package/dist/cli/convoy/events.d.ts.map +1 -0
  5. package/dist/cli/convoy/events.js +27 -0
  6. package/dist/cli/convoy/events.js.map +1 -0
  7. package/dist/cli/convoy/events.test.d.ts +2 -0
  8. package/dist/cli/convoy/events.test.d.ts.map +1 -0
  9. package/dist/cli/convoy/events.test.js +94 -0
  10. package/dist/cli/convoy/events.test.js.map +1 -0
  11. package/dist/cli/convoy/store.d.ts +23 -0
  12. package/dist/cli/convoy/store.d.ts.map +1 -0
  13. package/dist/cli/convoy/store.js +210 -0
  14. package/dist/cli/convoy/store.js.map +1 -0
  15. package/dist/cli/convoy/store.test.d.ts +2 -0
  16. package/dist/cli/convoy/store.test.d.ts.map +1 -0
  17. package/dist/cli/convoy/store.test.js +387 -0
  18. package/dist/cli/convoy/store.test.js.map +1 -0
  19. package/dist/cli/convoy/types.d.ts +56 -0
  20. package/dist/cli/convoy/types.d.ts.map +1 -0
  21. package/dist/cli/convoy/types.js +2 -0
  22. package/dist/cli/convoy/types.js.map +1 -0
  23. package/dist/cli/dashboard.d.ts.map +1 -1
  24. package/dist/cli/dashboard.js +5 -1
  25. package/dist/cli/dashboard.js.map +1 -1
  26. package/dist/cli/init.test.js +1 -1
  27. package/dist/cli/init.test.js.map +1 -1
  28. package/dist/cli/lesson.d.ts +17 -0
  29. package/dist/cli/lesson.d.ts.map +1 -0
  30. package/dist/cli/lesson.js +294 -0
  31. package/dist/cli/lesson.js.map +1 -0
  32. package/dist/cli/log.d.ts +7 -0
  33. package/dist/cli/log.d.ts.map +1 -0
  34. package/dist/cli/log.js +131 -0
  35. package/dist/cli/log.js.map +1 -0
  36. package/dist/cli/run/executor.js.map +1 -1
  37. package/dist/cli/run/executor.test.js +1 -0
  38. package/dist/cli/run/executor.test.js.map +1 -1
  39. package/dist/cli/run/loop-executor.d.ts +3 -0
  40. package/dist/cli/run/loop-executor.d.ts.map +1 -0
  41. package/dist/cli/run/loop-executor.js +155 -0
  42. package/dist/cli/run/loop-executor.js.map +1 -0
  43. package/dist/cli/run/loop-reporter.d.ts +6 -0
  44. package/dist/cli/run/loop-reporter.d.ts.map +1 -0
  45. package/dist/cli/run/loop-reporter.js +112 -0
  46. package/dist/cli/run/loop-reporter.js.map +1 -0
  47. package/dist/cli/run/reporter.d.ts.map +1 -1
  48. package/dist/cli/run/reporter.js +28 -1
  49. package/dist/cli/run/reporter.js.map +1 -1
  50. package/dist/cli/run/schema.d.ts +4 -0
  51. package/dist/cli/run/schema.d.ts.map +1 -1
  52. package/dist/cli/run/schema.js +178 -50
  53. package/dist/cli/run/schema.js.map +1 -1
  54. package/dist/cli/run/schema.test.js +598 -1
  55. package/dist/cli/run/schema.test.js.map +1 -1
  56. package/dist/cli/run.d.ts.map +1 -1
  57. package/dist/cli/run.js +84 -3
  58. package/dist/cli/run.js.map +1 -1
  59. package/dist/cli/types.d.ts +78 -1
  60. package/dist/cli/types.d.ts.map +1 -1
  61. package/dist/cli/update.d.ts.map +1 -1
  62. package/dist/cli/update.js +54 -1
  63. package/dist/cli/update.js.map +1 -1
  64. package/package.json +3 -2
  65. package/src/cli/convoy/events.test.ts +118 -0
  66. package/src/cli/convoy/events.ts +41 -0
  67. package/src/cli/convoy/store.test.ts +446 -0
  68. package/src/cli/convoy/store.ts +308 -0
  69. package/src/cli/convoy/types.ts +68 -0
  70. package/src/cli/dashboard.ts +5 -1
  71. package/src/cli/init.test.ts +1 -1
  72. package/src/cli/lesson.ts +312 -0
  73. package/src/cli/log.ts +133 -0
  74. package/src/cli/run/executor.test.ts +1 -0
  75. package/src/cli/run/executor.ts +8 -8
  76. package/src/cli/run/loop-executor.ts +199 -0
  77. package/src/cli/run/loop-reporter.ts +125 -0
  78. package/src/cli/run/reporter.ts +30 -1
  79. package/src/cli/run/schema.test.ts +704 -3
  80. package/src/cli/run/schema.ts +206 -56
  81. package/src/cli/run.ts +82 -5
  82. package/src/cli/types.ts +87 -1
  83. package/src/cli/update.ts +62 -1
  84. package/src/dashboard/dist/index.html +14 -15
  85. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  86. package/src/dashboard/scripts/generate-seed-data.ts +23 -43
  87. package/src/dashboard/seed-data/events.ndjson +104 -0
  88. package/src/dashboard/src/pages/index.astro +14 -15
  89. package/src/orchestrator/agents/api-designer.agent.md +1 -1
  90. package/src/orchestrator/agents/architect.agent.md +1 -1
  91. package/src/orchestrator/agents/content-engineer.agent.md +1 -1
  92. package/src/orchestrator/agents/copywriter.agent.md +1 -1
  93. package/src/orchestrator/agents/data-expert.agent.md +1 -1
  94. package/src/orchestrator/agents/database-engineer.agent.md +1 -1
  95. package/src/orchestrator/agents/developer.agent.md +1 -1
  96. package/src/orchestrator/agents/devops-expert.agent.md +1 -1
  97. package/src/orchestrator/agents/documentation-writer.agent.md +1 -1
  98. package/src/orchestrator/agents/performance-expert.agent.md +1 -1
  99. package/src/orchestrator/agents/release-manager.agent.md +1 -1
  100. package/src/orchestrator/agents/security-expert.agent.md +1 -1
  101. package/src/orchestrator/agents/seo-specialist.agent.md +1 -1
  102. package/src/orchestrator/agents/session-guard.agent.md +9 -21
  103. package/src/orchestrator/agents/team-lead.agent.md +8 -34
  104. package/src/orchestrator/agents/testing-expert.agent.md +1 -1
  105. package/src/orchestrator/agents/ui-ux-expert.agent.md +1 -1
  106. package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +11 -12
  107. package/src/orchestrator/customizations/DISPUTES.md +2 -2
  108. package/src/orchestrator/customizations/README.md +1 -3
  109. package/src/orchestrator/customizations/logs/README.md +66 -14
  110. package/src/orchestrator/instructions/ai-optimization.instructions.md +21 -132
  111. package/src/orchestrator/instructions/general.instructions.md +35 -181
  112. package/src/orchestrator/plugins/nx/SKILL.md +1 -1
  113. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +4 -8
  114. package/src/orchestrator/prompts/bug-fix.prompt.md +4 -4
  115. package/src/orchestrator/prompts/implement-feature.prompt.md +3 -3
  116. package/src/orchestrator/prompts/quick-refinement.prompt.md +3 -3
  117. package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +1 -1
  118. package/src/orchestrator/skills/agent-hooks/SKILL.md +11 -11
  119. package/src/orchestrator/skills/decomposition/SKILL.md +1 -1
  120. package/src/orchestrator/skills/fast-review/SKILL.md +4 -19
  121. package/src/orchestrator/skills/git-workflow/SKILL.md +72 -0
  122. package/src/orchestrator/skills/memory-merger/SKILL.md +1 -1
  123. package/src/orchestrator/skills/observability-logging/SKILL.md +129 -0
  124. package/src/orchestrator/skills/orchestration-protocols/SKILL.md +2 -2
  125. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +4 -7
  126. package/src/orchestrator/skills/self-improvement/SKILL.md +13 -26
  127. package/src/orchestrator/skills/team-lead-reference/SKILL.md +2 -2
  128. package/src/orchestrator/customizations/logs/delegations.ndjson +0 -1
  129. package/src/orchestrator/customizations/logs/panels.ndjson +0 -1
  130. package/src/orchestrator/customizations/logs/reviews.ndjson +0 -0
  131. package/src/orchestrator/customizations/logs/sessions.ndjson +0 -1
  132. /package/src/orchestrator/customizations/logs/{disputes.ndjson → events.ndjson} +0 -0
@@ -0,0 +1,387 @@
1
+ import { mkdtempSync, rmSync } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { DatabaseSync } from 'node:sqlite';
5
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
6
+ import { createConvoyStore } from './store.js';
7
+ // ── helpers ───────────────────────────────────────────────────────────────────
8
+ let tmpDir;
9
+ let dbPath;
10
+ let store;
11
+ beforeEach(() => {
12
+ tmpDir = mkdtempSync(join(tmpdir(), 'convoy-test-'));
13
+ dbPath = join(tmpDir, 'test.db');
14
+ store = createConvoyStore(dbPath);
15
+ });
16
+ afterEach(() => {
17
+ store.close();
18
+ rmSync(tmpDir, { recursive: true, force: true });
19
+ });
20
+ function makeConvoy(overrides = {}) {
21
+ return {
22
+ id: 'convoy-1',
23
+ name: 'Test Convoy',
24
+ spec_hash: 'abc123',
25
+ status: 'pending',
26
+ branch: null,
27
+ created_at: new Date().toISOString(),
28
+ spec_yaml: 'name: test',
29
+ ...overrides,
30
+ };
31
+ }
32
+ function makeTask(overrides = {}) {
33
+ return {
34
+ id: 'task-1',
35
+ convoy_id: 'convoy-1',
36
+ phase: 0,
37
+ prompt: 'Do something',
38
+ agent: 'developer',
39
+ model: null,
40
+ timeout_ms: 1_800_000,
41
+ status: 'pending',
42
+ retries: 0,
43
+ max_retries: 1,
44
+ files: null,
45
+ depends_on: null,
46
+ ...overrides,
47
+ };
48
+ }
49
+ function makeWorker(overrides = {}) {
50
+ return {
51
+ id: 'worker-1',
52
+ task_id: null,
53
+ adapter: 'copilot',
54
+ pid: null,
55
+ session_id: null,
56
+ status: 'spawned',
57
+ worktree: null,
58
+ created_at: new Date().toISOString(),
59
+ ...overrides,
60
+ };
61
+ }
62
+ // ── DB creation and WAL mode ──────────────────────────────────────────────────
63
+ describe('DB creation', () => {
64
+ it('creates the database file at the given path', async () => {
65
+ const { existsSync } = await import('node:fs');
66
+ expect(existsSync(dbPath)).toBe(true);
67
+ });
68
+ it('sets WAL journal mode', () => {
69
+ const db = new DatabaseSync(dbPath);
70
+ const row = db.prepare('PRAGMA journal_mode').get();
71
+ db.close();
72
+ expect(row.journal_mode).toBe('wal');
73
+ });
74
+ it('sets schema version to 1', () => {
75
+ const db = new DatabaseSync(dbPath);
76
+ const row = db.prepare('PRAGMA user_version').get();
77
+ db.close();
78
+ expect(row.user_version).toBe(1);
79
+ });
80
+ it('creates all required tables', () => {
81
+ const db = new DatabaseSync(dbPath);
82
+ const tables = db
83
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name")
84
+ .all();
85
+ db.close();
86
+ const names = tables.map(t => t.name).sort();
87
+ expect(names).toContain('convoy');
88
+ expect(names).toContain('task');
89
+ expect(names).toContain('worker');
90
+ expect(names).toContain('event');
91
+ });
92
+ it('reopening an existing DB does not reset schema version', () => {
93
+ store.close();
94
+ const store2 = createConvoyStore(dbPath);
95
+ const db = new DatabaseSync(dbPath);
96
+ const row = db.prepare('PRAGMA user_version').get();
97
+ db.close();
98
+ store2.close();
99
+ // Reassign so afterEach does not double-close
100
+ store = createConvoyStore(dbPath);
101
+ expect(row.user_version).toBe(1);
102
+ });
103
+ });
104
+ // ── convoy CRUD ───────────────────────────────────────────────────────────────
105
+ describe('convoy CRUD', () => {
106
+ it('inserts and retrieves a convoy record', () => {
107
+ const record = makeConvoy();
108
+ store.insertConvoy(record);
109
+ const retrieved = store.getConvoy('convoy-1');
110
+ expect(retrieved).toBeDefined();
111
+ expect(retrieved.id).toBe('convoy-1');
112
+ expect(retrieved.name).toBe('Test Convoy');
113
+ expect(retrieved.status).toBe('pending');
114
+ expect(retrieved.started_at).toBeNull();
115
+ expect(retrieved.finished_at).toBeNull();
116
+ });
117
+ it('returns undefined for missing convoy', () => {
118
+ expect(store.getConvoy('does-not-exist')).toBeUndefined();
119
+ });
120
+ it('updates convoy status', () => {
121
+ store.insertConvoy(makeConvoy());
122
+ store.updateConvoyStatus('convoy-1', 'running');
123
+ expect(store.getConvoy('convoy-1').status).toBe('running');
124
+ });
125
+ it('updates convoy status with started_at', () => {
126
+ const ts = '2026-01-01T00:00:00.000Z';
127
+ store.insertConvoy(makeConvoy());
128
+ store.updateConvoyStatus('convoy-1', 'running', { started_at: ts });
129
+ const retrieved = store.getConvoy('convoy-1');
130
+ expect(retrieved.status).toBe('running');
131
+ expect(retrieved.started_at).toBe(ts);
132
+ });
133
+ it('updates convoy status with finished_at', () => {
134
+ const ts = '2026-01-01T01:00:00.000Z';
135
+ store.insertConvoy(makeConvoy());
136
+ store.updateConvoyStatus('convoy-1', 'done', { finished_at: ts });
137
+ const retrieved = store.getConvoy('convoy-1');
138
+ expect(retrieved.status).toBe('done');
139
+ expect(retrieved.finished_at).toBe(ts);
140
+ });
141
+ });
142
+ // ── task CRUD ─────────────────────────────────────────────────────────────────
143
+ describe('task CRUD', () => {
144
+ beforeEach(() => {
145
+ store.insertConvoy(makeConvoy());
146
+ });
147
+ it('inserts and retrieves a task record', () => {
148
+ store.insertTask(makeTask());
149
+ const retrieved = store.getTask('task-1', 'convoy-1');
150
+ expect(retrieved).toBeDefined();
151
+ expect(retrieved.id).toBe('task-1');
152
+ expect(retrieved.convoy_id).toBe('convoy-1');
153
+ expect(retrieved.status).toBe('pending');
154
+ expect(retrieved.worker_id).toBeNull();
155
+ expect(retrieved.output).toBeNull();
156
+ });
157
+ it('returns undefined for missing task', () => {
158
+ expect(store.getTask('does-not-exist', 'convoy-1')).toBeUndefined();
159
+ });
160
+ it('stores JSON fields as strings', () => {
161
+ const task = makeTask({
162
+ id: 'task-json',
163
+ files: JSON.stringify(['src/a.ts', 'src/b.ts']),
164
+ depends_on: JSON.stringify(['task-prev']),
165
+ });
166
+ store.insertTask(task);
167
+ const retrieved = store.getTask('task-json', 'convoy-1');
168
+ expect(JSON.parse(retrieved.files)).toEqual(['src/a.ts', 'src/b.ts']);
169
+ expect(JSON.parse(retrieved.depends_on)).toEqual(['task-prev']);
170
+ });
171
+ it('retrieves all tasks for a convoy ordered by phase', () => {
172
+ store.insertTask(makeTask({ id: 'task-2', phase: 1 }));
173
+ store.insertTask(makeTask({ id: 'task-1', phase: 0 }));
174
+ const tasks = store.getTasksByConvoy('convoy-1');
175
+ expect(tasks).toHaveLength(2);
176
+ expect(tasks[0].phase).toBe(0);
177
+ expect(tasks[1].phase).toBe(1);
178
+ });
179
+ it('updates task status', () => {
180
+ store.insertTask(makeTask());
181
+ store.updateTaskStatus('task-1', 'convoy-1', 'running');
182
+ expect(store.getTask('task-1', 'convoy-1').status).toBe('running');
183
+ });
184
+ it('updates task status with extra fields', () => {
185
+ const ts = '2026-01-01T00:00:00.000Z';
186
+ store.insertTask(makeTask());
187
+ store.updateTaskStatus('task-1', 'convoy-1', 'done', {
188
+ output: 'Task complete',
189
+ exit_code: 0,
190
+ finished_at: ts,
191
+ retries: 1,
192
+ });
193
+ const task = store.getTask('task-1', 'convoy-1');
194
+ expect(task.status).toBe('done');
195
+ expect(task.output).toBe('Task complete');
196
+ expect(task.exit_code).toBe(0);
197
+ expect(task.finished_at).toBe(ts);
198
+ expect(task.retries).toBe(1);
199
+ });
200
+ });
201
+ // ── getReadyTasks ─────────────────────────────────────────────────────────────
202
+ describe('getReadyTasks', () => {
203
+ beforeEach(() => {
204
+ store.insertConvoy(makeConvoy());
205
+ });
206
+ it('returns a pending task with no dependencies', () => {
207
+ store.insertTask(makeTask({ id: 'task-a', depends_on: null }));
208
+ const ready = store.getReadyTasks('convoy-1');
209
+ expect(ready.map(t => t.id)).toContain('task-a');
210
+ });
211
+ it('returns a pending task with empty depends_on array', () => {
212
+ store.insertTask(makeTask({ id: 'task-a', depends_on: JSON.stringify([]) }));
213
+ const ready = store.getReadyTasks('convoy-1');
214
+ expect(ready.map(t => t.id)).toContain('task-a');
215
+ });
216
+ it('returns a task when its single dependency is done', () => {
217
+ store.insertTask(makeTask({ id: 'task-dep', depends_on: null }));
218
+ store.insertTask(makeTask({ id: 'task-a', depends_on: JSON.stringify(['task-dep']) }));
219
+ store.updateTaskStatus('task-dep', 'convoy-1', 'done');
220
+ const ready = store.getReadyTasks('convoy-1');
221
+ expect(ready.map(t => t.id)).toContain('task-a');
222
+ });
223
+ it('does not return a task when its single dependency is not done', () => {
224
+ store.insertTask(makeTask({ id: 'task-dep', depends_on: null }));
225
+ store.insertTask(makeTask({ id: 'task-a', depends_on: JSON.stringify(['task-dep']) }));
226
+ // task-dep stays pending
227
+ const ready = store.getReadyTasks('convoy-1');
228
+ expect(ready.map(t => t.id)).not.toContain('task-a');
229
+ });
230
+ it('returns a task when all multiple dependencies are done', () => {
231
+ store.insertTask(makeTask({ id: 'dep-1', depends_on: null }));
232
+ store.insertTask(makeTask({ id: 'dep-2', depends_on: null }));
233
+ store.insertTask(makeTask({ id: 'task-a', depends_on: JSON.stringify(['dep-1', 'dep-2']) }));
234
+ store.updateTaskStatus('dep-1', 'convoy-1', 'done');
235
+ store.updateTaskStatus('dep-2', 'convoy-1', 'done');
236
+ const ready = store.getReadyTasks('convoy-1');
237
+ expect(ready.map(t => t.id)).toContain('task-a');
238
+ });
239
+ it('does not return a task when only some of multiple dependencies are done', () => {
240
+ store.insertTask(makeTask({ id: 'dep-1', depends_on: null }));
241
+ store.insertTask(makeTask({ id: 'dep-2', depends_on: null }));
242
+ store.insertTask(makeTask({ id: 'task-a', depends_on: JSON.stringify(['dep-1', 'dep-2']) }));
243
+ store.updateTaskStatus('dep-1', 'convoy-1', 'done');
244
+ // dep-2 stays pending
245
+ const ready = store.getReadyTasks('convoy-1');
246
+ expect(ready.map(t => t.id)).not.toContain('task-a');
247
+ });
248
+ it('does not return tasks that are already running', () => {
249
+ store.insertTask(makeTask({ id: 'task-a', depends_on: null }));
250
+ store.updateTaskStatus('task-a', 'convoy-1', 'running');
251
+ const ready = store.getReadyTasks('convoy-1');
252
+ expect(ready.map(t => t.id)).not.toContain('task-a');
253
+ });
254
+ it('does not return tasks that are already done', () => {
255
+ store.insertTask(makeTask({ id: 'task-a', depends_on: null }));
256
+ store.updateTaskStatus('task-a', 'convoy-1', 'done');
257
+ const ready = store.getReadyTasks('convoy-1');
258
+ expect(ready.map(t => t.id)).not.toContain('task-a');
259
+ });
260
+ it('returns empty array when no tasks are ready', () => {
261
+ store.insertTask(makeTask({ id: 'dep-1', depends_on: null, status: 'running' }));
262
+ store.insertTask(makeTask({ id: 'task-a', depends_on: JSON.stringify(['dep-1']) }));
263
+ const ready = store.getReadyTasks('convoy-1');
264
+ expect(ready.map(t => t.id)).not.toContain('task-a');
265
+ });
266
+ it('returns empty array for a convoy with no tasks', () => {
267
+ const ready = store.getReadyTasks('convoy-1');
268
+ expect(ready).toHaveLength(0);
269
+ });
270
+ });
271
+ // ── worker CRUD ───────────────────────────────────────────────────────────────
272
+ describe('worker CRUD', () => {
273
+ it('inserts and retrieves a worker record', () => {
274
+ store.insertWorker(makeWorker());
275
+ const retrieved = store.getWorker('worker-1');
276
+ expect(retrieved).toBeDefined();
277
+ expect(retrieved.id).toBe('worker-1');
278
+ expect(retrieved.adapter).toBe('copilot');
279
+ expect(retrieved.status).toBe('spawned');
280
+ expect(retrieved.finished_at).toBeNull();
281
+ expect(retrieved.last_heartbeat).toBeNull();
282
+ });
283
+ it('returns undefined for missing worker', () => {
284
+ expect(store.getWorker('does-not-exist')).toBeUndefined();
285
+ });
286
+ it('updates worker status', () => {
287
+ store.insertWorker(makeWorker());
288
+ store.updateWorkerStatus('worker-1', 'running');
289
+ expect(store.getWorker('worker-1').status).toBe('running');
290
+ });
291
+ it('updates worker status with finished_at and pid', () => {
292
+ const ts = '2026-01-01T01:00:00.000Z';
293
+ store.insertWorker(makeWorker());
294
+ store.updateWorkerStatus('worker-1', 'done', { finished_at: ts, pid: 12345 });
295
+ const worker = store.getWorker('worker-1');
296
+ expect(worker.status).toBe('done');
297
+ expect(worker.finished_at).toBe(ts);
298
+ expect(worker.pid).toBe(12345);
299
+ });
300
+ it('updates worker last_heartbeat', () => {
301
+ const ts = '2026-01-01T00:30:00.000Z';
302
+ store.insertWorker(makeWorker());
303
+ store.updateWorkerStatus('worker-1', 'running', { last_heartbeat: ts });
304
+ expect(store.getWorker('worker-1').last_heartbeat).toBe(ts);
305
+ });
306
+ });
307
+ // ── event CRUD ────────────────────────────────────────────────────────────────
308
+ describe('event CRUD', () => {
309
+ beforeEach(() => {
310
+ store.insertConvoy(makeConvoy());
311
+ });
312
+ it('inserts and retrieves events for a convoy', () => {
313
+ store.insertEvent({
314
+ convoy_id: 'convoy-1',
315
+ task_id: null,
316
+ worker_id: null,
317
+ type: 'convoy_started',
318
+ data: JSON.stringify({ msg: 'hello' }),
319
+ created_at: new Date().toISOString(),
320
+ });
321
+ const events = store.getEvents('convoy-1');
322
+ expect(events).toHaveLength(1);
323
+ expect(events[0].type).toBe('convoy_started');
324
+ expect(events[0].convoy_id).toBe('convoy-1');
325
+ expect(JSON.parse(events[0].data)).toEqual({ msg: 'hello' });
326
+ });
327
+ it('returns events ordered by id (insertion order)', () => {
328
+ const now = new Date().toISOString();
329
+ store.insertEvent({ convoy_id: 'convoy-1', task_id: null, worker_id: null, type: 'first', data: null, created_at: now });
330
+ store.insertEvent({ convoy_id: 'convoy-1', task_id: null, worker_id: null, type: 'second', data: null, created_at: now });
331
+ store.insertEvent({ convoy_id: 'convoy-1', task_id: null, worker_id: null, type: 'third', data: null, created_at: now });
332
+ const events = store.getEvents('convoy-1');
333
+ expect(events.map(e => e.type)).toEqual(['first', 'second', 'third']);
334
+ });
335
+ it('returns empty array for convoy with no events', () => {
336
+ expect(store.getEvents('convoy-1')).toHaveLength(0);
337
+ });
338
+ it('assigns autoincrement id', () => {
339
+ const now = new Date().toISOString();
340
+ store.insertEvent({ convoy_id: 'convoy-1', task_id: null, worker_id: null, type: 'ev', data: null, created_at: now });
341
+ store.insertEvent({ convoy_id: 'convoy-1', task_id: null, worker_id: null, type: 'ev2', data: null, created_at: now });
342
+ const events = store.getEvents('convoy-1');
343
+ expect(typeof events[0].id).toBe('number');
344
+ expect(events[1].id).toBeGreaterThan(events[0].id);
345
+ });
346
+ });
347
+ // ── withTransaction ───────────────────────────────────────────────────────────
348
+ describe('withTransaction', () => {
349
+ beforeEach(() => {
350
+ store.insertConvoy(makeConvoy());
351
+ });
352
+ it('commits on success and returns the result', () => {
353
+ const result = store.withTransaction(() => {
354
+ store.insertTask(makeTask());
355
+ return 'done';
356
+ });
357
+ expect(result).toBe('done');
358
+ expect(store.getTask('task-1', 'convoy-1')).toBeDefined();
359
+ });
360
+ it('rolls back on error and re-throws', () => {
361
+ expect(() => {
362
+ store.withTransaction(() => {
363
+ store.insertTask(makeTask());
364
+ throw new Error('forced error');
365
+ });
366
+ }).toThrow('forced error');
367
+ expect(store.getTask('task-1', 'convoy-1')).toBeUndefined();
368
+ });
369
+ it('supports nested data operations inside transaction', () => {
370
+ const ts = new Date().toISOString();
371
+ store.withTransaction(() => {
372
+ store.insertTask(makeTask({ id: 'task-alpha' }));
373
+ store.updateTaskStatus('task-alpha', 'convoy-1', 'running', { started_at: ts });
374
+ });
375
+ const task = store.getTask('task-alpha', 'convoy-1');
376
+ expect(task.status).toBe('running');
377
+ expect(task.started_at).toBe(ts);
378
+ });
379
+ });
380
+ // ── close ─────────────────────────────────────────────────────────────────────
381
+ describe('close', () => {
382
+ it('closes without error when DB is open', () => {
383
+ const freshStore = createConvoyStore(join(tmpDir, 'fresh.db'));
384
+ expect(() => freshStore.close()).not.toThrow();
385
+ });
386
+ });
387
+ //# sourceMappingURL=store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../../src/cli/convoy/store.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ export type ConvoyStatus = 'pending' | 'running' | 'done' | 'failed' | 'gate-failed';
2
+ export type ConvoyTaskStatus = 'pending' | 'assigned' | 'running' | 'done' | 'failed' | 'timed-out' | 'skipped';
3
+ export type WorkerStatus = 'spawned' | 'running' | 'done' | 'failed' | 'killed';
4
+ export interface ConvoyRecord {
5
+ id: string;
6
+ name: string;
7
+ spec_hash: string;
8
+ status: ConvoyStatus;
9
+ branch: string | null;
10
+ created_at: string;
11
+ started_at: string | null;
12
+ finished_at: string | null;
13
+ spec_yaml: string;
14
+ }
15
+ export interface TaskRecord {
16
+ id: string;
17
+ convoy_id: string;
18
+ phase: number;
19
+ prompt: string;
20
+ agent: string;
21
+ model: string | null;
22
+ timeout_ms: number;
23
+ status: ConvoyTaskStatus;
24
+ worker_id: string | null;
25
+ worktree: string | null;
26
+ output: string | null;
27
+ exit_code: number | null;
28
+ started_at: string | null;
29
+ finished_at: string | null;
30
+ retries: number;
31
+ max_retries: number;
32
+ files: string | null;
33
+ depends_on: string | null;
34
+ }
35
+ export interface WorkerRecord {
36
+ id: string;
37
+ task_id: string | null;
38
+ adapter: string;
39
+ pid: number | null;
40
+ session_id: string | null;
41
+ status: WorkerStatus;
42
+ worktree: string | null;
43
+ created_at: string;
44
+ finished_at: string | null;
45
+ last_heartbeat: string | null;
46
+ }
47
+ export interface EventRecord {
48
+ id?: number;
49
+ convoy_id: string | null;
50
+ task_id: string | null;
51
+ worker_id: string | null;
52
+ type: string;
53
+ data: string | null;
54
+ created_at: string;
55
+ }
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEpF,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,QAAQ,GACR,WAAW,GACX,SAAS,CAAA;AAEb,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE/E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,gBAAgB,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/convoy/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAkG5C,wBAA8B,SAAS,CAAC,EACtC,OAAO,EACP,IAAI,GACL,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA6H5B"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAqG5C,wBAA8B,SAAS,CAAC,EACtC,OAAO,EACP,IAAI,GACL,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8H5B"}
@@ -15,10 +15,13 @@ const MIME_TYPES = {
15
15
  '.woff2': 'font/woff2',
16
16
  };
17
17
  const DATA_FILES = [
18
+ 'events.ndjson',
19
+ // Legacy individual files — kept for backwards compatibility
18
20
  'sessions.ndjson',
19
21
  'delegations.ndjson',
20
22
  'panels.ndjson',
21
23
  'reviews.ndjson',
24
+ 'disputes.ndjson',
22
25
  ];
23
26
  function parseArgs(args) {
24
27
  let port = 4300;
@@ -92,7 +95,8 @@ export default async function dashboard({ pkgRoot, args, }) {
92
95
  // Check if any log files exist (for messaging)
93
96
  let hasLogs = false;
94
97
  if (!seed) {
95
- for (const f of DATA_FILES) {
98
+ const checkFiles = ['events.ndjson', ...DATA_FILES];
99
+ for (const f of checkFiles) {
96
100
  if (await fileExists(join(logsDir, f))) {
97
101
  hasLogs = true;
98
102
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
@@ -303,7 +303,7 @@ describe('VS Code adapter install', () => {
303
303
  await adapter.install(PKG_ROOT, tempDir, STACK_EMPTY, EMPTY_REPO_INFO);
304
304
  const logsDir = join(tempDir, '.github', 'customizations', 'logs');
305
305
  expect(existsSync(logsDir)).toBe(true);
306
- for (const file of ['sessions.ndjson', 'delegations.ndjson', 'reviews.ndjson', 'panels.ndjson', 'disputes.ndjson']) {
306
+ for (const file of ['events.ndjson']) {
307
307
  expect(existsSync(join(logsDir, file))).toBe(true);
308
308
  }
309
309
  });