waymark-hub 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +176 -0
- package/dashboard/README.md +71 -0
- package/dashboard/index.html +520 -0
- package/dashboard/server.mjs +343 -0
- package/dashboard/vendor/tailwind.js +83 -0
- package/dist/cli/benchmark.d.ts +3 -0
- package/dist/cli/benchmark.d.ts.map +1 -0
- package/dist/cli/benchmark.js +222 -0
- package/dist/cli/benchmark.js.map +1 -0
- package/dist/cli/waymark.d.ts +3 -0
- package/dist/cli/waymark.d.ts.map +1 -0
- package/dist/cli/waymark.js +216 -0
- package/dist/cli/waymark.js.map +1 -0
- package/dist/context/builder.d.ts +67 -0
- package/dist/context/builder.d.ts.map +1 -0
- package/dist/context/builder.js +270 -0
- package/dist/context/builder.js.map +1 -0
- package/dist/db/client.d.ts +5 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +67 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/migrations/001_initial.sql +85 -0
- package/dist/db/migrations/002_usage_experiments.sql +52 -0
- package/dist/db/migrations/003_agent_identity.sql +37 -0
- package/dist/db/migrations/004_memory_lifecycle.sql +25 -0
- package/dist/db/migrations/005_task_coordination.sql +17 -0
- package/dist/db/schema.d.ts +132 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +3 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +164 -0
- package/dist/server.js.map +1 -0
- package/dist/telemetry/tokens.d.ts +9 -0
- package/dist/telemetry/tokens.d.ts.map +1 -0
- package/dist/telemetry/tokens.js +23 -0
- package/dist/telemetry/tokens.js.map +1 -0
- package/dist/tools/agents.d.ts +3 -0
- package/dist/tools/agents.d.ts.map +1 -0
- package/dist/tools/agents.js +126 -0
- package/dist/tools/agents.js.map +1 -0
- package/dist/tools/context.d.ts +3 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +53 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/memory.d.ts +3 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +273 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/projects.d.ts +3 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +92 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/sessions.d.ts +3 -0
- package/dist/tools/sessions.d.ts.map +1 -0
- package/dist/tools/sessions.js +113 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/tasks.d.ts +3 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +304 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/telemetry.d.ts +3 -0
- package/dist/tools/telemetry.d.ts.map +1 -0
- package/dist/tools/telemetry.js +291 -0
- package/dist/tools/telemetry.js.map +1 -0
- package/docs/AGENT_IDENTITY.md +67 -0
- package/docs/BENCHMARKING.md +161 -0
- package/docs/CONTEXT.md +95 -0
- package/docs/MEMORY_LIFECYCLE.md +65 -0
- package/docs/TASK_COORDINATION.md +27 -0
- package/package.json +70 -0
- package/scripts/hooks/session-start-resume.cjs +70 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerMemoryTools = registerMemoryTools;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const client_js_1 = require("../db/client.js");
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
const memoryStatus = zod_1.z.enum(['active', 'superseded', 'stale', 'archived']);
|
|
8
|
+
const feedbackRating = zod_1.z.enum([
|
|
9
|
+
'used',
|
|
10
|
+
'not_used',
|
|
11
|
+
'helpful',
|
|
12
|
+
'irrelevant',
|
|
13
|
+
'stale',
|
|
14
|
+
'incorrect',
|
|
15
|
+
'too_verbose',
|
|
16
|
+
]);
|
|
17
|
+
function registerMemoryTools(server) {
|
|
18
|
+
server.registerTool('memory_write', {
|
|
19
|
+
description: 'Create or replace a named memory node (project-scoped, or global if no project_id).',
|
|
20
|
+
inputSchema: zod_1.z.object({
|
|
21
|
+
project_id: zod_1.z.string().optional().describe('omit for global'),
|
|
22
|
+
name: zod_1.z.string().describe('kebab-case slug'),
|
|
23
|
+
description: zod_1.z.string().describe('one-line summary'),
|
|
24
|
+
type: zod_1.z.enum(['user', 'feedback', 'project', 'reference', 'handoff', 'decision'])
|
|
25
|
+
.default('project'),
|
|
26
|
+
body: zod_1.z.string().describe('markdown body'),
|
|
27
|
+
tags: zod_1.z.array(zod_1.z.string()).optional(),
|
|
28
|
+
surface: zod_1.z.string().default('claude-code'),
|
|
29
|
+
agent_id: zod_1.z.string().optional(),
|
|
30
|
+
origin_session: zod_1.z.string().optional(),
|
|
31
|
+
status: memoryStatus.optional(),
|
|
32
|
+
importance: zod_1.z.number().int().min(0).max(100).optional(),
|
|
33
|
+
confidence: zod_1.z.number().int().min(0).max(100).optional(),
|
|
34
|
+
source_type: zod_1.z.string().optional(),
|
|
35
|
+
source_ref: zod_1.z.string().optional(),
|
|
36
|
+
valid_from: zod_1.z.string().optional(),
|
|
37
|
+
valid_until: zod_1.z.string().optional(),
|
|
38
|
+
supersedes_id: zod_1.z.string().optional().describe('id this record replaces'),
|
|
39
|
+
last_verified_at: zod_1.z.string().optional(),
|
|
40
|
+
}),
|
|
41
|
+
}, ({ project_id, name, description, type, body, tags, surface, agent_id, origin_session, status, importance, confidence, source_type, source_ref, valid_from, valid_until, supersedes_id, last_verified_at, }) => {
|
|
42
|
+
const db = (0, client_js_1.getDb)();
|
|
43
|
+
const tagsJson = tags ? JSON.stringify(tags) : null;
|
|
44
|
+
const now = new Date().toISOString();
|
|
45
|
+
if (agent_id && !db.prepare('SELECT 1 FROM agents WHERE id = ?').get(agent_id)) {
|
|
46
|
+
return { content: [{ type: 'text', text: `Agent "${agent_id}" not found.` }], isError: true };
|
|
47
|
+
}
|
|
48
|
+
if (supersedes_id && !db.prepare('SELECT 1 FROM memory_nodes WHERE id = ?').get(supersedes_id)) {
|
|
49
|
+
return {
|
|
50
|
+
content: [{ type: 'text', text: `Memory node "${supersedes_id}" not found.` }],
|
|
51
|
+
isError: true,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const existing = db.prepare('SELECT id FROM memory_nodes WHERE name = ? AND (project_id = ? OR (project_id IS NULL AND ? IS NULL))').get(name, project_id ?? null, project_id ?? null);
|
|
55
|
+
if (existing) {
|
|
56
|
+
if (supersedes_id === existing.id) {
|
|
57
|
+
return { content: [{ type: 'text', text: 'A memory cannot supersede itself.' }], isError: true };
|
|
58
|
+
}
|
|
59
|
+
db.transaction(() => {
|
|
60
|
+
db.prepare(`
|
|
61
|
+
UPDATE memory_nodes SET
|
|
62
|
+
description = ?, type = ?, body = ?, tags = ?,
|
|
63
|
+
surface = ?, created_by_agent = COALESCE(?, created_by_agent),
|
|
64
|
+
origin_session = ?, status = COALESCE(?, status),
|
|
65
|
+
importance = COALESCE(?, importance),
|
|
66
|
+
confidence = COALESCE(?, confidence),
|
|
67
|
+
source_type = COALESCE(?, source_type),
|
|
68
|
+
source_ref = COALESCE(?, source_ref),
|
|
69
|
+
valid_from = COALESCE(?, valid_from),
|
|
70
|
+
valid_until = COALESCE(?, valid_until),
|
|
71
|
+
supersedes_id = COALESCE(?, supersedes_id),
|
|
72
|
+
last_verified_at = COALESCE(?, last_verified_at),
|
|
73
|
+
updated_at = ?
|
|
74
|
+
WHERE id = ?
|
|
75
|
+
`).run(description, type, body, tagsJson, surface, agent_id ?? null, origin_session ?? null, status ?? null, importance ?? null, confidence ?? null, source_type ?? null, source_ref ?? null, valid_from ?? null, valid_until ?? null, supersedes_id ?? null, last_verified_at ?? null, now, existing.id);
|
|
76
|
+
if (supersedes_id) {
|
|
77
|
+
db.prepare("UPDATE memory_nodes SET status = 'superseded', updated_at = ? WHERE id = ?").run(now, supersedes_id);
|
|
78
|
+
}
|
|
79
|
+
})();
|
|
80
|
+
const row = db.prepare('SELECT * FROM memory_nodes WHERE id = ?').get(existing.id);
|
|
81
|
+
return { content: [{ type: 'text', text: JSON.stringify(row, null, 2) }] };
|
|
82
|
+
}
|
|
83
|
+
const id = (0, crypto_1.randomUUID)();
|
|
84
|
+
db.transaction(() => {
|
|
85
|
+
db.prepare(`
|
|
86
|
+
INSERT INTO memory_nodes
|
|
87
|
+
(
|
|
88
|
+
id, project_id, surface, name, description, type, body, tags,
|
|
89
|
+
origin_session, created_at, updated_at, created_by_agent,
|
|
90
|
+
status, importance, confidence, source_type, source_ref,
|
|
91
|
+
valid_from, valid_until, supersedes_id, last_verified_at
|
|
92
|
+
)
|
|
93
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
94
|
+
`).run(id, project_id ?? null, surface, name, description, type, body, tagsJson, origin_session ?? null, now, now, agent_id ?? null, status ?? 'active', importance ?? 50, confidence ?? 50, source_type ?? null, source_ref ?? null, valid_from ?? null, valid_until ?? null, supersedes_id ?? null, last_verified_at ?? null);
|
|
95
|
+
if (supersedes_id) {
|
|
96
|
+
db.prepare("UPDATE memory_nodes SET status = 'superseded', updated_at = ? WHERE id = ?").run(now, supersedes_id);
|
|
97
|
+
}
|
|
98
|
+
})();
|
|
99
|
+
const row = db.prepare('SELECT * FROM memory_nodes WHERE id = ?').get(id);
|
|
100
|
+
return { content: [{ type: 'text', text: JSON.stringify(row, null, 2) }] };
|
|
101
|
+
});
|
|
102
|
+
server.registerTool('memory_read', {
|
|
103
|
+
description: 'Read a single memory node by id or by project+name.',
|
|
104
|
+
inputSchema: zod_1.z.object({
|
|
105
|
+
id: zod_1.z.string().optional().describe('Memory node UUID'),
|
|
106
|
+
project_id: zod_1.z.string().optional(),
|
|
107
|
+
name: zod_1.z.string().optional().describe('Memory node name slug'),
|
|
108
|
+
}),
|
|
109
|
+
annotations: { readOnlyHint: true },
|
|
110
|
+
}, ({ id, project_id, name }) => {
|
|
111
|
+
const db = (0, client_js_1.getDb)();
|
|
112
|
+
let row;
|
|
113
|
+
if (id) {
|
|
114
|
+
row = db.prepare('SELECT * FROM memory_nodes WHERE id = ?').get(id);
|
|
115
|
+
}
|
|
116
|
+
else if (name) {
|
|
117
|
+
row = db.prepare(`SELECT * FROM memory_nodes
|
|
118
|
+
WHERE name = ? AND (project_id = ? OR project_id IS NULL)
|
|
119
|
+
ORDER BY CASE WHEN project_id = ? THEN 0 ELSE 1 END
|
|
120
|
+
LIMIT 1`).get(name, project_id ?? null, project_id ?? null);
|
|
121
|
+
}
|
|
122
|
+
if (!row)
|
|
123
|
+
return { content: [{ type: 'text', text: 'Memory node not found.' }], isError: true };
|
|
124
|
+
return { content: [{ type: 'text', text: JSON.stringify(row, null, 2) }] };
|
|
125
|
+
});
|
|
126
|
+
server.registerTool('memory_list', {
|
|
127
|
+
description: 'List all memory nodes for a project. Omit project_id for global memory. ' +
|
|
128
|
+
'Returns name, description, type, surface, updated_at (not full body to save context).',
|
|
129
|
+
inputSchema: zod_1.z.object({
|
|
130
|
+
project_id: zod_1.z.string().optional().describe('Project id. Omit for global memory.'),
|
|
131
|
+
type: zod_1.z.enum(['user', 'feedback', 'project', 'reference', 'handoff', 'decision']).optional(),
|
|
132
|
+
status: memoryStatus.optional(),
|
|
133
|
+
include_body: zod_1.z.boolean().default(false).describe('Include full body in results (use sparingly)'),
|
|
134
|
+
}),
|
|
135
|
+
annotations: { readOnlyHint: true },
|
|
136
|
+
}, ({ project_id, type, status, include_body }) => {
|
|
137
|
+
const db = (0, client_js_1.getDb)();
|
|
138
|
+
const cols = include_body
|
|
139
|
+
? '*'
|
|
140
|
+
: `id, project_id, surface, name, description, type, tags,
|
|
141
|
+
status, importance, confidence, source_type, source_ref,
|
|
142
|
+
valid_from, valid_until, supersedes_id, last_verified_at,
|
|
143
|
+
created_by_agent, updated_at`;
|
|
144
|
+
let sql = `SELECT ${cols} FROM memory_nodes WHERE 1=1`;
|
|
145
|
+
const params = [];
|
|
146
|
+
if (project_id !== undefined) {
|
|
147
|
+
sql += ' AND project_id = ?';
|
|
148
|
+
params.push(project_id);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
sql += ' AND project_id IS NULL';
|
|
152
|
+
}
|
|
153
|
+
if (type) {
|
|
154
|
+
sql += ' AND type = ?';
|
|
155
|
+
params.push(type);
|
|
156
|
+
}
|
|
157
|
+
if (status) {
|
|
158
|
+
sql += ' AND status = ?';
|
|
159
|
+
params.push(status);
|
|
160
|
+
}
|
|
161
|
+
sql += ' ORDER BY updated_at DESC';
|
|
162
|
+
const rows = db.prepare(sql).all(...params);
|
|
163
|
+
return { content: [{ type: 'text', text: JSON.stringify(rows, null, 2) }] };
|
|
164
|
+
});
|
|
165
|
+
server.registerTool('memory_search', {
|
|
166
|
+
description: 'Full-text search across all memory nodes. Use to find anything known about a topic.',
|
|
167
|
+
inputSchema: zod_1.z.object({
|
|
168
|
+
query: zod_1.z.string().describe('Search terms'),
|
|
169
|
+
project_id: zod_1.z.string().optional().describe('Limit to a specific project. Omit to search all.'),
|
|
170
|
+
include_inactive: zod_1.z.boolean().default(false)
|
|
171
|
+
.describe('Include stale, superseded, archived, and expired records'),
|
|
172
|
+
limit: zod_1.z.number().int().min(1).max(50).default(10),
|
|
173
|
+
}),
|
|
174
|
+
annotations: { readOnlyHint: true },
|
|
175
|
+
}, ({ query, project_id, include_inactive, limit }) => {
|
|
176
|
+
const db = (0, client_js_1.getDb)();
|
|
177
|
+
let sql = `
|
|
178
|
+
SELECT m.id, m.project_id, m.surface, m.name, m.description, m.type, m.tags,
|
|
179
|
+
m.status, m.importance, m.confidence, m.source_type, m.source_ref,
|
|
180
|
+
m.updated_at,
|
|
181
|
+
snippet(memory_fts, 2, '[', ']', '...', 20) AS snippet
|
|
182
|
+
FROM memory_fts
|
|
183
|
+
JOIN memory_nodes m ON m.rowid = memory_fts.rowid
|
|
184
|
+
WHERE memory_fts MATCH ?
|
|
185
|
+
`;
|
|
186
|
+
const params = [query];
|
|
187
|
+
if (!include_inactive) {
|
|
188
|
+
sql += `
|
|
189
|
+
AND m.status = 'active'
|
|
190
|
+
AND (m.valid_from IS NULL OR m.valid_from <= ?)
|
|
191
|
+
AND (m.valid_until IS NULL OR m.valid_until >= ?)
|
|
192
|
+
`;
|
|
193
|
+
const now = new Date().toISOString();
|
|
194
|
+
params.push(now, now);
|
|
195
|
+
}
|
|
196
|
+
if (project_id) {
|
|
197
|
+
sql += ' AND m.project_id = ?';
|
|
198
|
+
params.push(project_id);
|
|
199
|
+
}
|
|
200
|
+
sql += ' ORDER BY rank LIMIT ?';
|
|
201
|
+
params.push(limit);
|
|
202
|
+
try {
|
|
203
|
+
const rows = db.prepare(sql).all(...params);
|
|
204
|
+
return { content: [{ type: 'text', text: JSON.stringify(rows, null, 2) }] };
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
return {
|
|
208
|
+
content: [{
|
|
209
|
+
type: 'text',
|
|
210
|
+
text: `FTS5 could not parse the query ${JSON.stringify(query)}. ` +
|
|
211
|
+
'Use plain words ("auth token"), quoted phrases ("\\"session log\\""), or prefix search ("bench*"). ' +
|
|
212
|
+
'Characters like -, :, ( ) are FTS operators — wrap terms containing them in double quotes.',
|
|
213
|
+
}],
|
|
214
|
+
isError: true,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
server.registerTool('memory_set_status', {
|
|
219
|
+
description: 'Mark a memory record active, superseded, stale, or archived.',
|
|
220
|
+
inputSchema: zod_1.z.object({
|
|
221
|
+
id: zod_1.z.string(),
|
|
222
|
+
status: memoryStatus,
|
|
223
|
+
last_verified_at: zod_1.z.string().optional(),
|
|
224
|
+
}),
|
|
225
|
+
}, ({ id, status, last_verified_at }) => {
|
|
226
|
+
const db = (0, client_js_1.getDb)();
|
|
227
|
+
const result = db.prepare(`
|
|
228
|
+
UPDATE memory_nodes SET
|
|
229
|
+
status = ?,
|
|
230
|
+
last_verified_at = COALESCE(?, last_verified_at),
|
|
231
|
+
updated_at = ?
|
|
232
|
+
WHERE id = ?
|
|
233
|
+
`).run(status, last_verified_at ?? null, new Date().toISOString(), id);
|
|
234
|
+
if (result.changes === 0) {
|
|
235
|
+
return { content: [{ type: 'text', text: `Memory node "${id}" not found.` }], isError: true };
|
|
236
|
+
}
|
|
237
|
+
const row = db.prepare('SELECT * FROM memory_nodes WHERE id = ?').get(id);
|
|
238
|
+
return { content: [{ type: 'text', text: JSON.stringify(row, null, 2) }] };
|
|
239
|
+
});
|
|
240
|
+
server.registerTool('memory_feedback', {
|
|
241
|
+
description: 'Record whether a memory was useful, irrelevant, stale, incorrect, or too verbose.',
|
|
242
|
+
inputSchema: zod_1.z.object({
|
|
243
|
+
memory_id: zod_1.z.string(),
|
|
244
|
+
agent_id: zod_1.z.string().optional(),
|
|
245
|
+
session_id: zod_1.z.string().optional(),
|
|
246
|
+
rating: feedbackRating,
|
|
247
|
+
notes: zod_1.z.string().optional(),
|
|
248
|
+
}),
|
|
249
|
+
}, ({ memory_id, agent_id, session_id, rating, notes }) => {
|
|
250
|
+
const db = (0, client_js_1.getDb)();
|
|
251
|
+
if (!db.prepare('SELECT 1 FROM memory_nodes WHERE id = ?').get(memory_id)) {
|
|
252
|
+
return {
|
|
253
|
+
content: [{ type: 'text', text: `Memory node "${memory_id}" not found.` }],
|
|
254
|
+
isError: true,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
if (agent_id && !db.prepare('SELECT 1 FROM agents WHERE id = ?').get(agent_id)) {
|
|
258
|
+
return { content: [{ type: 'text', text: `Agent "${agent_id}" not found.` }], isError: true };
|
|
259
|
+
}
|
|
260
|
+
if (session_id && !db.prepare('SELECT 1 FROM sessions WHERE id = ?').get(session_id)) {
|
|
261
|
+
return { content: [{ type: 'text', text: `Session "${session_id}" not found.` }], isError: true };
|
|
262
|
+
}
|
|
263
|
+
const id = (0, crypto_1.randomUUID)();
|
|
264
|
+
db.prepare(`
|
|
265
|
+
INSERT INTO memory_feedback
|
|
266
|
+
(id, memory_id, agent_id, session_id, rating, notes, created_at)
|
|
267
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
268
|
+
`).run(id, memory_id, agent_id ?? null, session_id ?? null, rating, notes ?? null, new Date().toISOString());
|
|
269
|
+
const row = db.prepare('SELECT * FROM memory_feedback WHERE id = ?').get(id);
|
|
270
|
+
return { content: [{ type: 'text', text: JSON.stringify(row, null, 2) }] };
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8G5D"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerProjectTools = registerProjectTools;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const client_js_1 = require("../db/client.js");
|
|
6
|
+
function registerProjectTools(server) {
|
|
7
|
+
server.registerTool('project_list', {
|
|
8
|
+
description: 'List all known projects with their status, stack, and last update time.',
|
|
9
|
+
inputSchema: zod_1.z.object({
|
|
10
|
+
status: zod_1.z.enum(['active', 'paused', 'archived']).optional()
|
|
11
|
+
.describe('Filter by status. Omit to get all projects.'),
|
|
12
|
+
}),
|
|
13
|
+
annotations: { readOnlyHint: true },
|
|
14
|
+
}, ({ status }) => {
|
|
15
|
+
const db = (0, client_js_1.getDb)();
|
|
16
|
+
const rows = status
|
|
17
|
+
? db.prepare('SELECT * FROM projects WHERE status = ? ORDER BY updated_at DESC').all(status)
|
|
18
|
+
: db.prepare('SELECT * FROM projects ORDER BY updated_at DESC').all();
|
|
19
|
+
return {
|
|
20
|
+
content: [{ type: 'text', text: JSON.stringify(rows, null, 2) }],
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
server.registerTool('project_get', {
|
|
24
|
+
description: 'Get full details for a single project by its id or name.',
|
|
25
|
+
inputSchema: zod_1.z.object({
|
|
26
|
+
id: zod_1.z.string().optional().describe('Project id (directory slug), e.g. "D--Projects-MyApp"'),
|
|
27
|
+
name: zod_1.z.string().optional().describe('Human name, e.g. "MyApp". Case-insensitive partial match.'),
|
|
28
|
+
}),
|
|
29
|
+
annotations: { readOnlyHint: true },
|
|
30
|
+
}, ({ id, name }) => {
|
|
31
|
+
const db = (0, client_js_1.getDb)();
|
|
32
|
+
let row;
|
|
33
|
+
if (id) {
|
|
34
|
+
row = db.prepare('SELECT * FROM projects WHERE id = ?').get(id);
|
|
35
|
+
}
|
|
36
|
+
else if (name) {
|
|
37
|
+
row = db.prepare("SELECT * FROM projects WHERE lower(name) LIKE lower('%' || ? || '%') LIMIT 1")
|
|
38
|
+
.get(name);
|
|
39
|
+
}
|
|
40
|
+
if (!row) {
|
|
41
|
+
return { content: [{ type: 'text', text: 'Project not found.' }], isError: true };
|
|
42
|
+
}
|
|
43
|
+
return { content: [{ type: 'text', text: JSON.stringify(row, null, 2) }] };
|
|
44
|
+
});
|
|
45
|
+
server.registerTool('project_upsert', {
|
|
46
|
+
description: 'Create or update a project record. Use to register a new project or update stack/description.',
|
|
47
|
+
inputSchema: zod_1.z.object({
|
|
48
|
+
id: zod_1.z.string().describe('Directory slug id, e.g. "D--Projects-MyApp"'),
|
|
49
|
+
name: zod_1.z.string().describe('Human-readable project name'),
|
|
50
|
+
root_path: zod_1.z.string().describe('Absolute path on disk, e.g. "D:\\\\Projects\\\\MyApp"'),
|
|
51
|
+
stack: zod_1.z.string().optional().describe('Tech stack description, e.g. "Laravel 12 + Nuxt 4 + MySQL"'),
|
|
52
|
+
description: zod_1.z.string().optional().describe('Short project description'),
|
|
53
|
+
status: zod_1.z.enum(['active', 'paused', 'archived']).optional(),
|
|
54
|
+
}),
|
|
55
|
+
}, ({ id, name, root_path, stack, description, status }) => {
|
|
56
|
+
const db = (0, client_js_1.getDb)();
|
|
57
|
+
const now = new Date().toISOString();
|
|
58
|
+
const existing = db.prepare('SELECT 1 FROM projects WHERE id = ?').get(id);
|
|
59
|
+
if (existing) {
|
|
60
|
+
db.prepare(`
|
|
61
|
+
UPDATE projects SET
|
|
62
|
+
name = ?, root_path = ?, stack = COALESCE(?, stack),
|
|
63
|
+
description = COALESCE(?, description), status = COALESCE(?, status),
|
|
64
|
+
updated_at = ?
|
|
65
|
+
WHERE id = ?
|
|
66
|
+
`).run(name, root_path, stack ?? null, description ?? null, status ?? null, now, id);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
db.prepare(`
|
|
70
|
+
INSERT INTO projects (id, name, root_path, stack, description, status, created_at, updated_at)
|
|
71
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
72
|
+
`).run(id, name, root_path, stack ?? null, description ?? null, status ?? 'active', now, now);
|
|
73
|
+
}
|
|
74
|
+
const row = db.prepare('SELECT * FROM projects WHERE id = ?').get(id);
|
|
75
|
+
return { content: [{ type: 'text', text: JSON.stringify(row, null, 2) }] };
|
|
76
|
+
});
|
|
77
|
+
server.registerTool('project_set_status', {
|
|
78
|
+
description: 'Quickly change project status to active, paused, or archived.',
|
|
79
|
+
inputSchema: zod_1.z.object({
|
|
80
|
+
id: zod_1.z.string().describe('Project id'),
|
|
81
|
+
status: zod_1.z.enum(['active', 'paused', 'archived']),
|
|
82
|
+
}),
|
|
83
|
+
}, ({ id, status }) => {
|
|
84
|
+
const db = (0, client_js_1.getDb)();
|
|
85
|
+
const result = db.prepare("UPDATE projects SET status = ?, updated_at = datetime('now') WHERE id = ?").run(status, id);
|
|
86
|
+
if (result.changes === 0) {
|
|
87
|
+
return { content: [{ type: 'text', text: `Project "${id}" not found.` }], isError: true };
|
|
88
|
+
}
|
|
89
|
+
return { content: [{ type: 'text', text: `Project "${id}" status set to "${status}".` }] };
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6I5D"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerSessionTools = registerSessionTools;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const client_js_1 = require("../db/client.js");
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
const AUTO_HANDOFF_PREFIX = 'auto-handoff';
|
|
8
|
+
function autoHandoffName(projectId) {
|
|
9
|
+
return projectId ? `${AUTO_HANDOFF_PREFIX}:${projectId}` : AUTO_HANDOFF_PREFIX;
|
|
10
|
+
}
|
|
11
|
+
function registerSessionTools(server) {
|
|
12
|
+
server.registerTool('session_log', {
|
|
13
|
+
description: 'Record a session summary at the end of significant agent work. ' +
|
|
14
|
+
'On outcome "partial"/"blocked" (or when next_steps are given) the hub automatically ' +
|
|
15
|
+
'writes a handoff memory so the next agent resumes without retelling; ' +
|
|
16
|
+
'outcome "completed" retires that auto-handoff.',
|
|
17
|
+
inputSchema: zod_1.z.object({
|
|
18
|
+
project_id: zod_1.z.string().optional(),
|
|
19
|
+
agent_id: zod_1.z.string().optional(),
|
|
20
|
+
provider: zod_1.z.string().optional(),
|
|
21
|
+
model: zod_1.z.string().optional(),
|
|
22
|
+
client: zod_1.z.string().optional(),
|
|
23
|
+
client_session_id: zod_1.z.string().optional(),
|
|
24
|
+
surface: zod_1.z.string().default('claude-code'),
|
|
25
|
+
started_at: zod_1.z.string().describe('ISO datetime session started'),
|
|
26
|
+
summary: zod_1.z.string().describe('what was accomplished and decided'),
|
|
27
|
+
files_touched: zod_1.z.array(zod_1.z.string()).optional(),
|
|
28
|
+
commits_made: zod_1.z.array(zod_1.z.string()).optional(),
|
|
29
|
+
outcome: zod_1.z.enum(['completed', 'blocked', 'partial']).default('completed'),
|
|
30
|
+
next_steps: zod_1.z.array(zod_1.z.string()).optional()
|
|
31
|
+
.describe('concrete next actions for whichever agent continues this work'),
|
|
32
|
+
}),
|
|
33
|
+
}, ({ project_id, agent_id, provider, model, client, client_session_id, surface, started_at, summary, files_touched, commits_made, outcome, next_steps, }) => {
|
|
34
|
+
const db = (0, client_js_1.getDb)();
|
|
35
|
+
const id = (0, crypto_1.randomUUID)();
|
|
36
|
+
const now = new Date().toISOString();
|
|
37
|
+
let agent;
|
|
38
|
+
if (agent_id) {
|
|
39
|
+
agent = db.prepare('SELECT * FROM agents WHERE id = ?').get(agent_id);
|
|
40
|
+
if (!agent) {
|
|
41
|
+
return { content: [{ type: 'text', text: `Agent "${agent_id}" not found.` }], isError: true };
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
db.prepare(`
|
|
45
|
+
INSERT INTO sessions
|
|
46
|
+
(
|
|
47
|
+
id, project_id, surface, started_at, ended_at, summary,
|
|
48
|
+
files_touched, commits_made, outcome,
|
|
49
|
+
agent_id, provider, model, client, client_session_id
|
|
50
|
+
)
|
|
51
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
52
|
+
`).run(id, project_id ?? null, surface, started_at, now, summary, files_touched ? JSON.stringify(files_touched) : null, commits_made ? JSON.stringify(commits_made) : null, outcome, agent_id ?? null, provider ?? agent?.provider ?? null, model ?? agent?.model ?? null, client ?? agent?.client ?? surface, client_session_id ?? null);
|
|
53
|
+
const handoffName = autoHandoffName(project_id);
|
|
54
|
+
const existingHandoff = db.prepare(`
|
|
55
|
+
SELECT id FROM memory_nodes
|
|
56
|
+
WHERE name = ? AND (project_id IS ? OR project_id = ?) AND status = 'active'
|
|
57
|
+
`).get(handoffName, project_id ?? null, project_id ?? null);
|
|
58
|
+
let handoffNote = '';
|
|
59
|
+
const needsHandoff = outcome !== 'completed' || (next_steps?.length ?? 0) > 0;
|
|
60
|
+
if (needsHandoff) {
|
|
61
|
+
const who = agent?.display_name ?? agent_id ?? client ?? surface;
|
|
62
|
+
const bodyParts = [
|
|
63
|
+
`Outcome: ${outcome} (session ${id}, agent: ${who})`,
|
|
64
|
+
`Done: ${summary}`,
|
|
65
|
+
];
|
|
66
|
+
if (next_steps?.length)
|
|
67
|
+
bodyParts.push(`Next steps:\n${next_steps.map(s => `- ${s}`).join('\n')}`);
|
|
68
|
+
if (files_touched?.length)
|
|
69
|
+
bodyParts.push(`Files touched: ${files_touched.join(', ')}`);
|
|
70
|
+
if (commits_made?.length)
|
|
71
|
+
bodyParts.push(`Commits: ${commits_made.join(', ')}`);
|
|
72
|
+
const body = bodyParts.join('\n\n');
|
|
73
|
+
const description = `Continue from ${who}: ${summary.slice(0, 200)}`;
|
|
74
|
+
if (existingHandoff) {
|
|
75
|
+
db.prepare(`
|
|
76
|
+
UPDATE memory_nodes
|
|
77
|
+
SET description = ?, body = ?, origin_session = ?, created_by_agent = ?,
|
|
78
|
+
source_type = 'session', source_ref = ?, updated_at = ?
|
|
79
|
+
WHERE id = ?
|
|
80
|
+
`).run(description, body, id, agent_id ?? null, id, now, existingHandoff.id);
|
|
81
|
+
handoffNote = ` Handoff memory updated ("${handoffName}").`;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
db.prepare(`
|
|
85
|
+
INSERT INTO memory_nodes
|
|
86
|
+
(id, project_id, surface, name, description, type, body,
|
|
87
|
+
origin_session, created_by_agent, status, importance, confidence,
|
|
88
|
+
source_type, source_ref, created_at, updated_at)
|
|
89
|
+
VALUES (?, ?, ?, ?, ?, 'handoff', ?, ?, ?, 'active', 90, 80, 'session', ?, ?, ?)
|
|
90
|
+
`).run((0, crypto_1.randomUUID)(), project_id ?? null, surface, handoffName, description, body, id, agent_id ?? null, id, now, now);
|
|
91
|
+
handoffNote = ` Handoff memory created ("${handoffName}").`;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (existingHandoff) {
|
|
95
|
+
db.prepare(`
|
|
96
|
+
UPDATE memory_nodes SET status = 'superseded', updated_at = ? WHERE id = ?
|
|
97
|
+
`).run(now, existingHandoff.id);
|
|
98
|
+
handoffNote = ` Work completed: auto-handoff "${handoffName}" retired.`;
|
|
99
|
+
}
|
|
100
|
+
const projectWarning = !project_id && needsHandoff
|
|
101
|
+
? ' WARNING: no project_id — this handoff is global and will NOT surface in any' +
|
|
102
|
+
' project resume. Re-log with project_id so the next agent finds it.'
|
|
103
|
+
: '';
|
|
104
|
+
return {
|
|
105
|
+
content: [{
|
|
106
|
+
type: 'text',
|
|
107
|
+
text: `Session logged with id "${id}".${handoffNote}${projectWarning}` +
|
|
108
|
+
' Use memory_write for decisions/facts that should outlive this handoff.',
|
|
109
|
+
}],
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8WzD"}
|