agent-working-memory 0.5.6 → 0.6.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/README.md +73 -44
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +40 -1
- package/dist/api/routes.js.map +1 -1
- package/dist/cli.js +401 -1
- package/dist/cli.js.map +1 -1
- package/dist/coordination/mcp-tools.d.ts.map +1 -1
- package/dist/coordination/mcp-tools.js +10 -5
- package/dist/coordination/mcp-tools.js.map +1 -1
- package/dist/coordination/routes.d.ts.map +1 -1
- package/dist/coordination/routes.js +155 -16
- package/dist/coordination/routes.js.map +1 -1
- package/dist/coordination/schema.d.ts.map +1 -1
- package/dist/coordination/schema.js +35 -1
- package/dist/coordination/schema.js.map +1 -1
- package/dist/coordination/schemas.d.ts +21 -2
- package/dist/coordination/schemas.d.ts.map +1 -1
- package/dist/coordination/schemas.js +16 -0
- package/dist/coordination/schemas.js.map +1 -1
- package/dist/coordination/stale.d.ts +2 -0
- package/dist/coordination/stale.d.ts.map +1 -1
- package/dist/coordination/stale.js +5 -0
- package/dist/coordination/stale.js.map +1 -1
- package/dist/engine/activation.d.ts.map +1 -1
- package/dist/engine/activation.js +119 -23
- package/dist/engine/activation.js.map +1 -1
- package/dist/engine/consolidation.d.ts.map +1 -1
- package/dist/engine/consolidation.js +27 -6
- package/dist/engine/consolidation.js.map +1 -1
- package/dist/index.js +81 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +61 -3
- package/dist/mcp.js.map +1 -1
- package/dist/storage/sqlite.d.ts +18 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +50 -5
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/types/engram.d.ts +24 -0
- package/dist/types/engram.d.ts.map +1 -1
- package/dist/types/engram.js.map +1 -1
- package/package.json +3 -1
- package/src/api/routes.ts +50 -1
- package/src/cli.ts +454 -1
- package/src/coordination/mcp-tools.ts +10 -5
- package/src/coordination/routes.ts +209 -19
- package/src/coordination/schema.ts +27 -1
- package/src/coordination/schemas.ts +19 -0
- package/src/coordination/stale.ts +8 -0
- package/src/engine/activation.ts +125 -23
- package/src/engine/consolidation.ts +29 -6
- package/src/index.ts +74 -3
- package/src/mcp.ts +72 -3
- package/src/storage/sqlite.ts +54 -5
- package/src/types/engram.ts +28 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* All tables use coord_ prefix to avoid collision with AWM core tables.
|
|
7
7
|
*/
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
9
|
-
import { checkinSchema, checkoutSchema, pulseSchema, assignCreateSchema, assignmentQuerySchema, assignmentClaimSchema, assignmentUpdateSchema, assignmentIdParamSchema, lockAcquireSchema, lockReleaseSchema, commandCreateSchema, commandWaitQuerySchema, findingCreateSchema, findingsQuerySchema, findingIdParamSchema, eventsQuerySchema, staleQuerySchema, workersQuerySchema, } from './schemas.js';
|
|
9
|
+
import { checkinSchema, checkoutSchema, pulseSchema, nextSchema, assignCreateSchema, assignmentQuerySchema, assignmentClaimSchema, assignmentUpdateSchema, assignmentIdParamSchema, lockAcquireSchema, lockReleaseSchema, commandCreateSchema, commandWaitQuerySchema, findingCreateSchema, findingsQuerySchema, findingIdParamSchema, decisionsQuerySchema, eventsQuerySchema, staleQuerySchema, workersQuerySchema, } from './schemas.js';
|
|
10
10
|
import { detectStale, cleanupStale } from './stale.js';
|
|
11
11
|
/** Pretty timestamp for coordination logs. */
|
|
12
12
|
function ts() {
|
|
@@ -30,13 +30,21 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
30
30
|
return reply.code(400).send({ error: parsed.error.issues[0].message });
|
|
31
31
|
const { name, role, pid, metadata, capabilities, workspace } = parsed.data;
|
|
32
32
|
const capsJson = capabilities ? JSON.stringify(capabilities) : null;
|
|
33
|
+
// Look up ANY existing agent with same name+workspace — including dead ones (upsert)
|
|
33
34
|
const existing = workspace
|
|
34
|
-
? db.prepare(`SELECT id, status FROM coord_agents WHERE name = ? AND workspace = ?
|
|
35
|
-
: db.prepare(`SELECT id, status FROM coord_agents WHERE name = ? AND workspace IS NULL
|
|
35
|
+
? db.prepare(`SELECT id, status FROM coord_agents WHERE name = ? AND workspace = ? ORDER BY last_seen DESC LIMIT 1`).get(name, workspace)
|
|
36
|
+
: db.prepare(`SELECT id, status FROM coord_agents WHERE name = ? AND workspace IS NULL ORDER BY last_seen DESC LIMIT 1`).get(name);
|
|
36
37
|
if (existing) {
|
|
38
|
+
const wasDead = existing.status === 'dead';
|
|
37
39
|
db.prepare(`UPDATE coord_agents SET last_seen = datetime('now'), status = CASE WHEN status = 'dead' THEN 'idle' ELSE status END, pid = COALESCE(?, pid), capabilities = COALESCE(?, capabilities) WHERE id = ?`).run(pid ?? null, capsJson, existing.id);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
const eventType = wasDead ? 'reconnected' : 'heartbeat';
|
|
41
|
+
const detail = wasDead ? `${name} reconnected (was dead)` : `heartbeat from ${name}`;
|
|
42
|
+
db.prepare(`INSERT INTO coord_events (agent_id, event_type, detail) VALUES (?, ?, ?)`).run(existing.id, eventType, detail);
|
|
43
|
+
if (wasDead)
|
|
44
|
+
coordLog(`${name} reconnected (reusing UUID ${existing.id.slice(0, 8)})`);
|
|
45
|
+
const action = wasDead ? 'reconnected' : 'heartbeat';
|
|
46
|
+
const status = wasDead ? 'idle' : existing.status;
|
|
47
|
+
return reply.send({ agentId: existing.id, action, status, workspace });
|
|
40
48
|
}
|
|
41
49
|
const id = randomUUID();
|
|
42
50
|
db.prepare(`INSERT INTO coord_agents (id, name, role, pid, status, metadata, capabilities, workspace) VALUES (?, ?, ?, ?, 'idle', ?, ?, ?)`).run(id, name, role ?? 'worker', pid ?? null, metadata ? JSON.stringify(metadata) : null, capsJson, workspace ?? null);
|
|
@@ -66,14 +74,78 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
66
74
|
db.prepare(`UPDATE coord_agents SET last_seen = datetime('now') WHERE id = ?`).run(agentId);
|
|
67
75
|
return reply.send({ ok: true });
|
|
68
76
|
});
|
|
77
|
+
// ─── Next (combined checkin + commands + assignment poll) ───────
|
|
78
|
+
app.post('/next', async (req, reply) => {
|
|
79
|
+
const parsed = nextSchema.safeParse(req.body);
|
|
80
|
+
if (!parsed.success)
|
|
81
|
+
return reply.code(400).send({ error: parsed.error.issues[0].message });
|
|
82
|
+
const { name, workspace, role, capabilities } = parsed.data;
|
|
83
|
+
const capsJson = capabilities ? JSON.stringify(capabilities) : null;
|
|
84
|
+
// Step 1: Upsert agent (checkin / heartbeat) — including dead agents (reuse UUID)
|
|
85
|
+
const existing = workspace
|
|
86
|
+
? db.prepare(`SELECT id, status FROM coord_agents WHERE name = ? AND workspace = ? ORDER BY last_seen DESC LIMIT 1`).get(name, workspace)
|
|
87
|
+
: db.prepare(`SELECT id, status FROM coord_agents WHERE name = ? AND workspace IS NULL ORDER BY last_seen DESC LIMIT 1`).get(name);
|
|
88
|
+
let agentId;
|
|
89
|
+
if (existing) {
|
|
90
|
+
agentId = existing.id;
|
|
91
|
+
const wasDead = existing.status === 'dead';
|
|
92
|
+
db.prepare(`UPDATE coord_agents SET last_seen = datetime('now'), status = CASE WHEN status = 'dead' THEN 'idle' ELSE status END, capabilities = COALESCE(?, capabilities) WHERE id = ?`).run(capsJson, agentId);
|
|
93
|
+
const eventType = wasDead ? 'reconnected' : 'heartbeat';
|
|
94
|
+
const detail = wasDead ? `${name} reconnected via /next` : `heartbeat from ${name}`;
|
|
95
|
+
db.prepare(`INSERT INTO coord_events (agent_id, event_type, detail) VALUES (?, ?, ?)`).run(agentId, eventType, detail);
|
|
96
|
+
if (wasDead)
|
|
97
|
+
coordLog(`${name} reconnected via /next (reusing UUID ${agentId.slice(0, 8)})`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
agentId = randomUUID();
|
|
101
|
+
db.prepare(`INSERT INTO coord_agents (id, name, role, pid, status, metadata, capabilities, workspace) VALUES (?, ?, ?, NULL, 'idle', NULL, ?, ?)`).run(agentId, name, role ?? 'worker', capsJson, workspace ?? null);
|
|
102
|
+
db.prepare(`INSERT INTO coord_events (agent_id, event_type, detail) VALUES (?, 'registered', ?)`).run(agentId, `${name} joined as ${role ?? 'worker'} via /next`);
|
|
103
|
+
coordLog(`${name} registered via /next (${role ?? 'worker'})${capabilities ? ' [' + capabilities.join(', ') + ']' : ''}`);
|
|
104
|
+
}
|
|
105
|
+
// Step 2: Get active commands
|
|
106
|
+
const activeCommands = workspace
|
|
107
|
+
? db.prepare(`SELECT id, command, reason, issued_by, issued_at, workspace
|
|
108
|
+
FROM coord_commands WHERE cleared_at IS NULL AND (workspace = ? OR workspace IS NULL)
|
|
109
|
+
ORDER BY issued_at DESC`).all(workspace)
|
|
110
|
+
: db.prepare(`SELECT id, command, reason, issued_by, issued_at, workspace
|
|
111
|
+
FROM coord_commands WHERE cleared_at IS NULL
|
|
112
|
+
ORDER BY issued_at DESC`).all();
|
|
113
|
+
// Step 3: Get or auto-claim assignment
|
|
114
|
+
let assignment = db.prepare(`SELECT * FROM coord_assignments WHERE agent_id = ? AND status IN ('assigned', 'in_progress') ORDER BY created_at DESC LIMIT 1`).get(agentId);
|
|
115
|
+
if (!assignment) {
|
|
116
|
+
const agentWorkspace = workspace ?? null;
|
|
117
|
+
// Priority-ordered dispatch: higher priority first, then FIFO.
|
|
118
|
+
// Skip assignments blocked by incomplete dependencies.
|
|
119
|
+
const blockedFilter = `AND (blocked_by IS NULL OR blocked_by IN (SELECT id FROM coord_assignments WHERE status = 'completed'))`;
|
|
120
|
+
const pending = agentWorkspace
|
|
121
|
+
? db.prepare(`SELECT * FROM coord_assignments WHERE status = 'pending' AND (workspace = ? OR workspace IS NULL) ${blockedFilter} ORDER BY priority DESC, created_at ASC LIMIT 1`).get(agentWorkspace)
|
|
122
|
+
: db.prepare(`SELECT * FROM coord_assignments WHERE status = 'pending' ${blockedFilter} ORDER BY priority DESC, created_at ASC LIMIT 1`).get();
|
|
123
|
+
if (pending) {
|
|
124
|
+
const claimed = db.prepare(`UPDATE coord_assignments SET agent_id = ?, status = 'assigned', started_at = datetime('now') WHERE id = ? AND status = 'pending'`).run(agentId, pending.id);
|
|
125
|
+
if (claimed.changes > 0) {
|
|
126
|
+
db.prepare(`UPDATE coord_agents SET status = 'working', current_task = ? WHERE id = ?`).run(pending.id, agentId);
|
|
127
|
+
db.prepare(`INSERT INTO coord_events (agent_id, event_type, detail) VALUES (?, 'assignment_claimed', ?)`).run(agentId, `auto-claimed assignment ${pending.id} via /next`);
|
|
128
|
+
assignment = db.prepare(`SELECT * FROM coord_assignments WHERE id = ?`).get(pending.id);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Read current agent status after all mutations
|
|
133
|
+
const agentRow = db.prepare(`SELECT status FROM coord_agents WHERE id = ?`).get(agentId);
|
|
134
|
+
return reply.send({
|
|
135
|
+
agentId,
|
|
136
|
+
status: agentRow.status,
|
|
137
|
+
assignment: assignment ?? null,
|
|
138
|
+
commands: activeCommands,
|
|
139
|
+
});
|
|
140
|
+
});
|
|
69
141
|
// ─── Assignments ────────────────────────────────────────────────
|
|
70
142
|
app.post('/assign', async (req, reply) => {
|
|
71
143
|
const parsed = assignCreateSchema.safeParse(req.body);
|
|
72
144
|
if (!parsed.success)
|
|
73
145
|
return reply.code(400).send({ error: parsed.error.issues[0].message });
|
|
74
|
-
const { agentId, task, description, workspace } = parsed.data;
|
|
146
|
+
const { agentId, task, description, workspace, priority, blocked_by } = parsed.data;
|
|
75
147
|
const id = randomUUID();
|
|
76
|
-
db.prepare(`INSERT INTO coord_assignments (id, agent_id, task, description, status, workspace) VALUES (?, ?, ?, ?, ?, ?)`).run(id, agentId ?? null, task, description ?? null, agentId ? 'assigned' : 'pending', workspace ?? null);
|
|
148
|
+
db.prepare(`INSERT INTO coord_assignments (id, agent_id, task, description, status, priority, blocked_by, workspace) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(id, agentId ?? null, task, description ?? null, agentId ? 'assigned' : 'pending', priority, blocked_by ?? null, workspace ?? null);
|
|
77
149
|
if (agentId) {
|
|
78
150
|
db.prepare(`UPDATE coord_agents SET status = 'working', current_task = ? WHERE id = ?`).run(id, agentId);
|
|
79
151
|
}
|
|
@@ -89,7 +161,15 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
89
161
|
return reply.code(201).send({ assignmentId: id, status: agentId ? 'assigned' : 'pending' });
|
|
90
162
|
});
|
|
91
163
|
app.get('/assignment', async (req, reply) => {
|
|
92
|
-
const
|
|
164
|
+
const q = assignmentQuerySchema.parse(req.query);
|
|
165
|
+
let agentId = req.headers['x-agent-id'] ?? q.agentId;
|
|
166
|
+
// Fallback: resolve agentId from name + workspace
|
|
167
|
+
if (!agentId && q.name) {
|
|
168
|
+
const found = q.workspace
|
|
169
|
+
? db.prepare(`SELECT id FROM coord_agents WHERE name = ? AND workspace = ? AND status != 'dead'`).get(q.name, q.workspace)
|
|
170
|
+
: db.prepare(`SELECT id FROM coord_agents WHERE name = ? AND workspace IS NULL AND status != 'dead'`).get(q.name);
|
|
171
|
+
agentId = found?.id;
|
|
172
|
+
}
|
|
93
173
|
if (!agentId) {
|
|
94
174
|
return reply.send({ assignment: null });
|
|
95
175
|
}
|
|
@@ -98,9 +178,10 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
98
178
|
return reply.send({ assignment: active });
|
|
99
179
|
const agentRow = db.prepare(`SELECT workspace FROM coord_agents WHERE id = ?`).get(agentId);
|
|
100
180
|
const agentWorkspace = agentRow?.workspace;
|
|
181
|
+
const blockedFilter = `AND (blocked_by IS NULL OR blocked_by IN (SELECT id FROM coord_assignments WHERE status = 'completed'))`;
|
|
101
182
|
const pending = agentWorkspace
|
|
102
|
-
? db.prepare(`SELECT * FROM coord_assignments WHERE status = 'pending' AND (workspace = ? OR workspace IS NULL) ORDER BY created_at ASC LIMIT 1`).get(agentWorkspace)
|
|
103
|
-
: db.prepare(`SELECT * FROM coord_assignments WHERE status = 'pending' ORDER BY created_at ASC LIMIT 1`).get();
|
|
183
|
+
? db.prepare(`SELECT * FROM coord_assignments WHERE status = 'pending' AND (workspace = ? OR workspace IS NULL) ${blockedFilter} ORDER BY priority DESC, created_at ASC LIMIT 1`).get(agentWorkspace)
|
|
184
|
+
: db.prepare(`SELECT * FROM coord_assignments WHERE status = 'pending' ${blockedFilter} ORDER BY priority DESC, created_at ASC LIMIT 1`).get();
|
|
104
185
|
if (pending) {
|
|
105
186
|
const claimed = db.prepare(`UPDATE coord_assignments SET agent_id = ?, status = 'assigned', started_at = datetime('now') WHERE id = ? AND status = 'pending'`).run(agentId, pending.id);
|
|
106
187
|
if (claimed.changes > 0) {
|
|
@@ -128,9 +209,20 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
128
209
|
db.prepare(`INSERT INTO coord_events (agent_id, event_type, detail) VALUES (?, 'assignment_claimed', ?)`).run(agentId, `claimed assignment ${id}`);
|
|
129
210
|
return reply.send({ ok: true, assignmentId: id });
|
|
130
211
|
});
|
|
131
|
-
function handleAssignmentUpdate(id, status, result) {
|
|
212
|
+
function handleAssignmentUpdate(id, status, result, commitSha) {
|
|
213
|
+
// Verification gate: completed status requires structured proof of work
|
|
214
|
+
if (status === 'completed') {
|
|
215
|
+
if (!result || result.trim().length < 20) {
|
|
216
|
+
return { error: 'completion requires a result summary — minimum 20 characters describing what was done' };
|
|
217
|
+
}
|
|
218
|
+
// Must mention at least one of: commit/SHA, build, audit, test, verified, fix, created, updated, implemented
|
|
219
|
+
const actionWords = /\b(commit|sha|[0-9a-f]{7,40}|build|audit|test|verified|fix|created|updated|implemented|added|refactored|documented)\b/i;
|
|
220
|
+
if (!actionWords.test(result)) {
|
|
221
|
+
return { error: 'completion result must describe the work done — include what was committed, built, tested, or verified' };
|
|
222
|
+
}
|
|
223
|
+
}
|
|
132
224
|
if (['completed', 'failed'].includes(status)) {
|
|
133
|
-
db.prepare(`UPDATE coord_assignments SET status = ?, result = ?, completed_at = datetime('now') WHERE id = ?`).run(status, result ?? null, id);
|
|
225
|
+
db.prepare(`UPDATE coord_assignments SET status = ?, result = ?, commit_sha = ?, completed_at = datetime('now') WHERE id = ?`).run(status, result ?? null, commitSha ?? null, id);
|
|
134
226
|
}
|
|
135
227
|
else {
|
|
136
228
|
db.prepare(`UPDATE coord_assignments SET status = ?, result = ? WHERE id = ?`).run(status, result ?? null, id);
|
|
@@ -141,19 +233,43 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
141
233
|
db.prepare(`UPDATE coord_agents SET status = 'idle', current_task = NULL WHERE id = ?`).run(assignment.agent_id);
|
|
142
234
|
}
|
|
143
235
|
}
|
|
144
|
-
|
|
236
|
+
const eventDetail = ['completed', 'failed'].includes(status)
|
|
237
|
+
? `${id} → ${status}${commitSha ? ' [' + commitSha + ']' : ''}: ${(result ?? '').slice(0, 300)}`
|
|
238
|
+
: `${id} → ${status}`;
|
|
239
|
+
db.prepare(`INSERT INTO coord_events (agent_id, event_type, detail) VALUES ((SELECT agent_id FROM coord_assignments WHERE id = ?), 'assignment_update', ?)`).run(id, eventDetail);
|
|
145
240
|
// Log completion/failure with agent name and task
|
|
146
241
|
if (['completed', 'failed'].includes(status)) {
|
|
147
242
|
const info = db.prepare(`SELECT a.task, g.name AS agent_name FROM coord_assignments a LEFT JOIN coord_agents g ON a.agent_id = g.id WHERE a.id = ?`).get(id);
|
|
148
243
|
coordLog(`${info?.agent_name ?? 'unknown'} ${status}: ${info?.task?.slice(0, 80) ?? id}`);
|
|
149
244
|
}
|
|
245
|
+
return {};
|
|
150
246
|
}
|
|
247
|
+
app.get('/assignment/:id', async (req, reply) => {
|
|
248
|
+
const { id } = assignmentIdParamSchema.parse(req.params);
|
|
249
|
+
const assignment = db.prepare(`SELECT a.*, g.name AS agent_name FROM coord_assignments a LEFT JOIN coord_agents g ON a.agent_id = g.id WHERE a.id = ?`).get(id);
|
|
250
|
+
if (!assignment)
|
|
251
|
+
return reply.code(404).send({ error: 'assignment not found' });
|
|
252
|
+
return reply.send({ assignment });
|
|
253
|
+
});
|
|
254
|
+
// List all non-completed assignments with priority and blocked_by status
|
|
255
|
+
app.get('/assignments', async (req, reply) => {
|
|
256
|
+
const assignments = db.prepare(`SELECT a.*, g.name AS agent_name,
|
|
257
|
+
CASE WHEN a.blocked_by IS NOT NULL AND a.blocked_by NOT IN (SELECT id FROM coord_assignments WHERE status = 'completed')
|
|
258
|
+
THEN 1 ELSE 0 END AS is_blocked
|
|
259
|
+
FROM coord_assignments a
|
|
260
|
+
LEFT JOIN coord_agents g ON a.agent_id = g.id
|
|
261
|
+
WHERE a.status NOT IN ('completed', 'failed')
|
|
262
|
+
ORDER BY a.priority DESC, a.created_at ASC`).all();
|
|
263
|
+
return reply.send({ assignments });
|
|
264
|
+
});
|
|
151
265
|
app.post('/assignment/:id/update', async (req, reply) => {
|
|
152
266
|
const { id } = assignmentIdParamSchema.parse(req.params);
|
|
153
267
|
const parsed = assignmentUpdateSchema.safeParse(req.body);
|
|
154
268
|
if (!parsed.success)
|
|
155
269
|
return reply.code(400).send({ error: parsed.error.issues[0].message });
|
|
156
|
-
handleAssignmentUpdate(id, parsed.data.status, parsed.data.result);
|
|
270
|
+
const gate = handleAssignmentUpdate(id, parsed.data.status, parsed.data.result, parsed.data.commit_sha);
|
|
271
|
+
if (gate.error)
|
|
272
|
+
return reply.code(400).send({ error: gate.error });
|
|
157
273
|
return reply.send({ ok: true });
|
|
158
274
|
});
|
|
159
275
|
app.patch('/assignment/:id', async (req, reply) => {
|
|
@@ -161,7 +277,9 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
161
277
|
const parsed = assignmentUpdateSchema.safeParse(req.body);
|
|
162
278
|
if (!parsed.success)
|
|
163
279
|
return reply.code(400).send({ error: parsed.error.issues[0].message });
|
|
164
|
-
handleAssignmentUpdate(id, parsed.data.status, parsed.data.result);
|
|
280
|
+
const gate = handleAssignmentUpdate(id, parsed.data.status, parsed.data.result, parsed.data.commit_sha);
|
|
281
|
+
if (gate.error)
|
|
282
|
+
return reply.code(400).send({ error: gate.error });
|
|
165
283
|
return reply.send({ ok: true });
|
|
166
284
|
});
|
|
167
285
|
app.put('/assignment/:id', async (req, reply) => {
|
|
@@ -169,7 +287,9 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
169
287
|
const parsed = assignmentUpdateSchema.safeParse(req.body);
|
|
170
288
|
if (!parsed.success)
|
|
171
289
|
return reply.code(400).send({ error: parsed.error.issues[0].message });
|
|
172
|
-
handleAssignmentUpdate(id, parsed.data.status, parsed.data.result);
|
|
290
|
+
const gate = handleAssignmentUpdate(id, parsed.data.status, parsed.data.result, parsed.data.commit_sha);
|
|
291
|
+
if (gate.error)
|
|
292
|
+
return reply.code(400).send({ error: gate.error });
|
|
173
293
|
return reply.send({ ok: true });
|
|
174
294
|
});
|
|
175
295
|
// ─── Locks ──────────────────────────────────────────────────────
|
|
@@ -327,6 +447,25 @@ export function registerCoordinationRoutes(app, db) {
|
|
|
327
447
|
const total = db.prepare(`SELECT COUNT(*) as total FROM coord_findings WHERE status = 'open'`).get();
|
|
328
448
|
return reply.send({ total: total.total, bySeverity, byCategory });
|
|
329
449
|
});
|
|
450
|
+
// ─── Decisions (cross-agent propagation) ────────────────────────
|
|
451
|
+
app.get('/decisions', async (req, reply) => {
|
|
452
|
+
const q = decisionsQuerySchema.safeParse(req.query);
|
|
453
|
+
const { since_id, assignment_id, limit } = q.success ? q.data : { since_id: 0, assignment_id: undefined, limit: 20 };
|
|
454
|
+
let sql = `
|
|
455
|
+
SELECT d.id, d.author_id, a.name AS author_name, d.assignment_id, d.tags, d.summary, d.created_at
|
|
456
|
+
FROM coord_decisions d JOIN coord_agents a ON d.author_id = a.id
|
|
457
|
+
WHERE d.id > ?
|
|
458
|
+
`;
|
|
459
|
+
const params = [since_id];
|
|
460
|
+
if (assignment_id) {
|
|
461
|
+
sql += ` AND d.assignment_id = ?`;
|
|
462
|
+
params.push(assignment_id);
|
|
463
|
+
}
|
|
464
|
+
sql += ` ORDER BY d.created_at ASC LIMIT ?`;
|
|
465
|
+
params.push(limit);
|
|
466
|
+
const decisions = db.prepare(sql).all(...params);
|
|
467
|
+
return reply.send({ decisions });
|
|
468
|
+
});
|
|
330
469
|
// ─── Status ─────────────────────────────────────────────────────
|
|
331
470
|
app.get('/status', async (_req, reply) => {
|
|
332
471
|
const agents = db.prepare(`SELECT id, name, role, status, current_task, last_seen,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/coordination/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/coordination/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/coordination/schema.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/coordination/schema.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAoG3C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAOlE"}
|
|
@@ -21,6 +21,10 @@ CREATE TABLE IF NOT EXISTS coord_agents (
|
|
|
21
21
|
workspace TEXT
|
|
22
22
|
);
|
|
23
23
|
|
|
24
|
+
-- Prevent duplicate agent registrations for the same name+workspace
|
|
25
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_coord_agents_name_workspace
|
|
26
|
+
ON coord_agents (name, COALESCE(workspace, ''));
|
|
27
|
+
|
|
24
28
|
-- Coordination: assignments
|
|
25
29
|
CREATE TABLE IF NOT EXISTS coord_assignments (
|
|
26
30
|
id TEXT PRIMARY KEY,
|
|
@@ -28,12 +32,16 @@ CREATE TABLE IF NOT EXISTS coord_assignments (
|
|
|
28
32
|
task TEXT NOT NULL,
|
|
29
33
|
description TEXT,
|
|
30
34
|
status TEXT NOT NULL DEFAULT 'pending',
|
|
35
|
+
priority INTEGER NOT NULL DEFAULT 0,
|
|
36
|
+
blocked_by TEXT,
|
|
31
37
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
32
38
|
started_at TEXT,
|
|
33
39
|
completed_at TEXT,
|
|
34
40
|
result TEXT,
|
|
41
|
+
commit_sha TEXT,
|
|
35
42
|
workspace TEXT,
|
|
36
|
-
FOREIGN KEY (agent_id) REFERENCES coord_agents(id)
|
|
43
|
+
FOREIGN KEY (agent_id) REFERENCES coord_agents(id),
|
|
44
|
+
FOREIGN KEY (blocked_by) REFERENCES coord_assignments(id)
|
|
37
45
|
);
|
|
38
46
|
|
|
39
47
|
-- Coordination: file locks
|
|
@@ -72,6 +80,19 @@ CREATE TABLE IF NOT EXISTS coord_findings (
|
|
|
72
80
|
FOREIGN KEY (agent_id) REFERENCES coord_agents(id)
|
|
73
81
|
);
|
|
74
82
|
|
|
83
|
+
-- Coordination: cross-agent decision propagation
|
|
84
|
+
CREATE TABLE IF NOT EXISTS coord_decisions (
|
|
85
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
86
|
+
author_id TEXT NOT NULL,
|
|
87
|
+
assignment_id TEXT,
|
|
88
|
+
tags TEXT,
|
|
89
|
+
summary TEXT NOT NULL,
|
|
90
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
91
|
+
FOREIGN KEY (author_id) REFERENCES coord_agents(id)
|
|
92
|
+
);
|
|
93
|
+
CREATE INDEX IF NOT EXISTS idx_coord_decisions_assignment
|
|
94
|
+
ON coord_decisions (assignment_id, created_at);
|
|
95
|
+
|
|
75
96
|
-- Coordination: event audit trail
|
|
76
97
|
CREATE TABLE IF NOT EXISTS coord_events (
|
|
77
98
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
@@ -87,5 +108,18 @@ CREATE TABLE IF NOT EXISTS coord_events (
|
|
|
87
108
|
*/
|
|
88
109
|
export function initCoordinationTables(db) {
|
|
89
110
|
db.exec(COORDINATION_TABLES);
|
|
111
|
+
// Migrations: add columns to existing coord_assignments tables
|
|
112
|
+
try {
|
|
113
|
+
db.exec(`ALTER TABLE coord_assignments ADD COLUMN commit_sha TEXT`);
|
|
114
|
+
}
|
|
115
|
+
catch { /* exists */ }
|
|
116
|
+
try {
|
|
117
|
+
db.exec(`ALTER TABLE coord_assignments ADD COLUMN priority INTEGER NOT NULL DEFAULT 0`);
|
|
118
|
+
}
|
|
119
|
+
catch { /* exists */ }
|
|
120
|
+
try {
|
|
121
|
+
db.exec(`ALTER TABLE coord_assignments ADD COLUMN blocked_by TEXT`);
|
|
122
|
+
}
|
|
123
|
+
catch { /* exists */ }
|
|
90
124
|
}
|
|
91
125
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/coordination/schema.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;GAIG;AAIH,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/coordination/schema.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;GAIG;AAIH,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgG3B,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAqB;IAC1D,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE7B,+DAA+D;IAC/D,IAAI,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACnG,IAAI,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACvH,IAAI,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AACrG,CAAC"}
|
|
@@ -10,8 +10,8 @@ export declare const agentRoleEnum: z.ZodEnum<{
|
|
|
10
10
|
}>;
|
|
11
11
|
export declare const agentStatusEnum: z.ZodEnum<{
|
|
12
12
|
working: "working";
|
|
13
|
-
idle: "idle";
|
|
14
13
|
dead: "dead";
|
|
14
|
+
idle: "idle";
|
|
15
15
|
}>;
|
|
16
16
|
export declare const assignmentStatusEnum: z.ZodEnum<{
|
|
17
17
|
in_progress: "in_progress";
|
|
@@ -72,11 +72,24 @@ export declare const assignCreateSchema: z.ZodObject<{
|
|
|
72
72
|
task: z.ZodString;
|
|
73
73
|
description: z.ZodOptional<z.ZodString>;
|
|
74
74
|
workspace: z.ZodOptional<z.ZodString>;
|
|
75
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
76
|
+
blocked_by: z.ZodOptional<z.ZodString>;
|
|
75
77
|
}, z.core.$strip>;
|
|
76
78
|
export declare const assignmentQuerySchema: z.ZodObject<{
|
|
77
79
|
agentId: z.ZodOptional<z.ZodString>;
|
|
80
|
+
name: z.ZodOptional<z.ZodString>;
|
|
78
81
|
workspace: z.ZodOptional<z.ZodString>;
|
|
79
82
|
}, z.core.$strip>;
|
|
83
|
+
export declare const nextSchema: z.ZodObject<{
|
|
84
|
+
name: z.ZodString;
|
|
85
|
+
workspace: z.ZodOptional<z.ZodString>;
|
|
86
|
+
role: z.ZodDefault<z.ZodEnum<{
|
|
87
|
+
worker: "worker";
|
|
88
|
+
orchestrator: "orchestrator";
|
|
89
|
+
"dev-lead": "dev-lead";
|
|
90
|
+
}>>;
|
|
91
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
92
|
+
}, z.core.$strip>;
|
|
80
93
|
export declare const assignmentClaimSchema: z.ZodObject<{
|
|
81
94
|
agentId: z.ZodString;
|
|
82
95
|
}, z.core.$strip>;
|
|
@@ -88,6 +101,7 @@ export declare const assignmentUpdateSchema: z.ZodObject<{
|
|
|
88
101
|
failed: "failed";
|
|
89
102
|
}>;
|
|
90
103
|
result: z.ZodOptional<z.ZodString>;
|
|
104
|
+
commit_sha: z.ZodOptional<z.ZodString>;
|
|
91
105
|
}, z.core.$strip>;
|
|
92
106
|
export declare const lockAcquireSchema: z.ZodObject<{
|
|
93
107
|
agentId: z.ZodString;
|
|
@@ -184,6 +198,11 @@ export declare const findingIdParamSchema: z.ZodObject<{
|
|
|
184
198
|
export declare const pulseSchema: z.ZodObject<{
|
|
185
199
|
agentId: z.ZodString;
|
|
186
200
|
}, z.core.$strip>;
|
|
201
|
+
export declare const decisionsQuerySchema: z.ZodObject<{
|
|
202
|
+
since_id: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
203
|
+
assignment_id: z.ZodOptional<z.ZodString>;
|
|
204
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
205
|
+
}, z.core.$strip>;
|
|
187
206
|
export declare const eventsQuerySchema: z.ZodObject<{
|
|
188
207
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
189
208
|
}, z.core.$strip>;
|
|
@@ -200,8 +219,8 @@ export declare const workersQuerySchema: z.ZodObject<{
|
|
|
200
219
|
capability: z.ZodOptional<z.ZodString>;
|
|
201
220
|
status: z.ZodOptional<z.ZodEnum<{
|
|
202
221
|
working: "working";
|
|
203
|
-
idle: "idle";
|
|
204
222
|
dead: "dead";
|
|
223
|
+
idle: "idle";
|
|
205
224
|
}>>;
|
|
206
225
|
workspace: z.ZodOptional<z.ZodString>;
|
|
207
226
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/coordination/schemas.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;EAAiD,CAAC;AAC5E,eAAO,MAAM,eAAe;;;;EAAsC,CAAC;AACnE,eAAO,MAAM,oBAAoB;;;;;EAA4D,CAAC;AAC9F,eAAO,MAAM,WAAW;;;;;EAA0D,CAAC;AACnF,eAAO,MAAM,mBAAmB;;;;;EAAgD,CAAC;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;EAI9B,CAAC;AACH,eAAO,MAAM,iBAAiB;;;EAA+B,CAAC;AAI9D,eAAO,MAAM,aAAa;;;;;;;;;;;iBAOxB,CAAC;AAEH,eAAO,MAAM,cAAc;;iBAEzB,CAAC;AAIH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/coordination/schemas.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;EAAiD,CAAC;AAC5E,eAAO,MAAM,eAAe;;;;EAAsC,CAAC;AACnE,eAAO,MAAM,oBAAoB;;;;;EAA4D,CAAC;AAC9F,eAAO,MAAM,WAAW;;;;;EAA0D,CAAC;AACnF,eAAO,MAAM,mBAAmB;;;;;EAAgD,CAAC;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;EAI9B,CAAC;AACH,eAAO,MAAM,iBAAiB;;;EAA+B,CAAC;AAI9D,eAAO,MAAM,aAAa;;;;;;;;;;;iBAOxB,CAAC;AAEH,eAAO,MAAM,cAAc;;iBAEzB,CAAC;AAIH,eAAO,MAAM,kBAAkB;;;;;;;iBAO7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;iBAKrB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;iBAEhC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;iBAIjC,CAAC;AAIH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAIH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAIH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK9B,CAAC;AAIH,eAAO,MAAM,uBAAuB;;iBAAsC,CAAC;AAC3E,eAAO,MAAM,oBAAoB;;iBAAuD,CAAC;AAIzF,eAAO,MAAM,WAAW;;iBAEtB,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAIH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;iBAI7B,CAAC"}
|
|
@@ -35,17 +35,27 @@ export const assignCreateSchema = z.object({
|
|
|
35
35
|
task: z.string().min(1).max(1000),
|
|
36
36
|
description: z.string().max(5000).optional(),
|
|
37
37
|
workspace: z.string().max(50).optional(),
|
|
38
|
+
priority: z.number().int().min(0).max(10).default(0),
|
|
39
|
+
blocked_by: z.string().uuid().optional(),
|
|
38
40
|
});
|
|
39
41
|
export const assignmentQuerySchema = z.object({
|
|
40
42
|
agentId: z.string().uuid().optional(),
|
|
43
|
+
name: z.string().min(1).max(50).optional(),
|
|
41
44
|
workspace: z.string().max(50).optional(),
|
|
42
45
|
});
|
|
46
|
+
export const nextSchema = z.object({
|
|
47
|
+
name: z.string().min(1).max(50),
|
|
48
|
+
workspace: z.string().max(50).optional(),
|
|
49
|
+
role: agentRoleEnum.default('worker'),
|
|
50
|
+
capabilities: z.array(z.string().max(50)).max(20).optional(),
|
|
51
|
+
});
|
|
43
52
|
export const assignmentClaimSchema = z.object({
|
|
44
53
|
agentId: z.string().uuid(),
|
|
45
54
|
});
|
|
46
55
|
export const assignmentUpdateSchema = z.object({
|
|
47
56
|
status: assignmentStatusEnum,
|
|
48
57
|
result: z.string().max(10000).optional(),
|
|
58
|
+
commit_sha: z.string().max(100).optional(),
|
|
49
59
|
});
|
|
50
60
|
// ─── Locks ──────────────────────────────────────────────────────
|
|
51
61
|
export const lockAcquireSchema = z.object({
|
|
@@ -93,6 +103,12 @@ export const findingIdParamSchema = z.object({ id: z.coerce.number().int().posit
|
|
|
93
103
|
export const pulseSchema = z.object({
|
|
94
104
|
agentId: z.string().uuid(),
|
|
95
105
|
});
|
|
106
|
+
// ─── Decisions ─────────────────────────────────────────────────
|
|
107
|
+
export const decisionsQuerySchema = z.object({
|
|
108
|
+
since_id: z.coerce.number().int().min(0).default(0),
|
|
109
|
+
assignment_id: z.string().max(100).optional(),
|
|
110
|
+
limit: z.coerce.number().int().min(1).max(200).default(20),
|
|
111
|
+
});
|
|
96
112
|
// ─── Status / Events ────────────────────────────────────────────
|
|
97
113
|
export const eventsQuerySchema = z.object({
|
|
98
114
|
limit: z.coerce.number().int().min(1).max(200).default(50),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/coordination/schemas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/coordination/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ export declare function cleanupStale(db: Database.Database, thresholdSeconds: nu
|
|
|
19
19
|
};
|
|
20
20
|
/** Prune heartbeat events older than 1 hour. Keeps assignment, registered, and command events permanently. */
|
|
21
21
|
export declare function pruneOldHeartbeats(db: Database.Database): number;
|
|
22
|
+
/** Purge dead agents older than 24 hours to prevent table bloat. */
|
|
23
|
+
export declare function purgeDeadAgents(db: Database.Database, maxAgeHours?: number): number;
|
|
22
24
|
/** Clean slate on startup: mark all live agents dead, release locks, clear commands. */
|
|
23
25
|
export declare function cleanSlate(db: Database.Database): void;
|
|
24
26
|
export {};
|