mcp-context-sync 1.0.5 → 1.0.7
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/dist/cli.js +217 -50
- package/dist/cli.js.map +1 -1
- package/dist/lib/snapshot-renderer.d.ts +4 -0
- package/dist/lib/snapshot-renderer.js +14 -0
- package/dist/lib/snapshot-renderer.js.map +1 -1
- package/package.json +5 -3
- package/dist/prompts/auto-resume.d.ts +0 -3
- package/dist/prompts/auto-resume.js +0 -70
- package/dist/prompts/auto-resume.js.map +0 -1
- package/dist/prompts/resume-work.d.ts +0 -2
- package/dist/prompts/resume-work.js +0 -29
- package/dist/prompts/resume-work.js.map +0 -1
- package/dist/prompts/sync-session.d.ts +0 -2
- package/dist/prompts/sync-session.js +0 -33
- package/dist/prompts/sync-session.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
* context-sync list
|
|
10
10
|
* context-sync history [--project <path>] [--limit <n>]
|
|
11
11
|
*/
|
|
12
|
+
import { createInterface } from 'node:readline';
|
|
12
13
|
import { readFileSync } from 'node:fs';
|
|
13
14
|
import { dirname } from 'node:path';
|
|
14
15
|
import { getDatabase, closeDatabase } from './db/connection.js';
|
|
15
16
|
import { upsertProject, getProject, getNextSequenceNumber, insertSnapshot, insertDecision, insertHandoff, updateProjectSyncStats, getLatestSnapshot, getProjectAgents, listProjects, getHandoffsByProject, } from './db/queries.js';
|
|
16
17
|
import { projectIdFromPath, normalizePath, displayNameFromPath, } from './lib/project-id.js';
|
|
17
18
|
import { generateId } from './lib/uuid.js';
|
|
18
|
-
import { renderSnapshotMarkdown } from './lib/snapshot-renderer.js';
|
|
19
|
+
import { renderSnapshotMarkdown, renderSnapshotBrief } from './lib/snapshot-renderer.js';
|
|
19
20
|
import { SyncInputSchema } from './lib/types.js';
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
21
22
|
// Arg helpers
|
|
@@ -88,7 +89,10 @@ function getEffectiveProjectDir(db) {
|
|
|
88
89
|
// ---------------------------------------------------------------------------
|
|
89
90
|
function cmdResume() {
|
|
90
91
|
const agent = getFlag('agent') ?? 'codex';
|
|
91
|
-
const
|
|
92
|
+
const wantJson = argv.includes('--json');
|
|
93
|
+
const wantBrief = argv.includes('--brief');
|
|
94
|
+
// --json and --brief imply --peek (no handoff registration)
|
|
95
|
+
const peek = argv.includes('--peek') || wantJson || wantBrief;
|
|
92
96
|
const db = getDatabase();
|
|
93
97
|
const projectDir = getEffectiveProjectDir(db);
|
|
94
98
|
const projectId = projectIdFromPath(projectDir);
|
|
@@ -130,51 +134,35 @@ function cmdResume() {
|
|
|
130
134
|
updateProjectSyncStats(db, projectId);
|
|
131
135
|
})();
|
|
132
136
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
// Output priority: --json > --brief > default (full markdown)
|
|
138
|
+
if (wantJson) {
|
|
139
|
+
console.log(JSON.stringify(snapshot));
|
|
140
|
+
}
|
|
141
|
+
else if (wantBrief) {
|
|
142
|
+
console.log(renderSnapshotBrief(snapshot, displayName));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const agents = getProjectAgents(db, projectId);
|
|
146
|
+
console.log(renderSnapshotMarkdown(snapshot, displayName, {
|
|
147
|
+
totalSnapshots: project.snapshot_count,
|
|
148
|
+
totalHandoffs: project.handoff_count + (peek ? 0 : 1),
|
|
149
|
+
agents,
|
|
150
|
+
}));
|
|
151
|
+
}
|
|
139
152
|
closeDatabase();
|
|
140
153
|
}
|
|
141
154
|
// ---------------------------------------------------------------------------
|
|
142
155
|
// sync
|
|
143
156
|
// ---------------------------------------------------------------------------
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
console.error(' or: context-sync sync --json \'{"projectDir":"...","agent":"codex",...}\'');
|
|
149
|
-
console.error(' or: <json> | context-sync sync');
|
|
150
|
-
process.exit(1);
|
|
151
|
-
}
|
|
152
|
-
let parsed;
|
|
153
|
-
try {
|
|
154
|
-
parsed = JSON.parse(raw);
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
console.error('Error: invalid JSON input');
|
|
158
|
-
process.exit(1);
|
|
159
|
-
}
|
|
160
|
-
const result = SyncInputSchema.safeParse(parsed);
|
|
161
|
-
if (!result.success) {
|
|
162
|
-
console.error('Error: invalid sync input');
|
|
163
|
-
for (const issue of result.error.issues) {
|
|
164
|
-
const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
|
|
165
|
-
console.error(` ${path}: ${issue.message}`);
|
|
166
|
-
}
|
|
167
|
-
process.exit(1);
|
|
168
|
-
}
|
|
169
|
-
const input = result.data;
|
|
170
|
-
const projectDir = input.projectDir;
|
|
171
|
-
const agent = input.agent;
|
|
157
|
+
/**
|
|
158
|
+
* Save the snapshot to the database (shared by cmdSync and cmdSyncInteractive).
|
|
159
|
+
*/
|
|
160
|
+
function saveSnapshot(projectDir, agent, summary, tasksCompleted, tasksRemaining, decisions, filesModified, blockers, nextSteps, tags) {
|
|
172
161
|
const db = getDatabase();
|
|
173
162
|
const projectId = projectIdFromPath(projectDir);
|
|
174
163
|
const normalized = normalizePath(projectDir);
|
|
175
164
|
const displayName = displayNameFromPath(projectDir);
|
|
176
165
|
const now = new Date().toISOString();
|
|
177
|
-
const decisions = input.decisions ?? [];
|
|
178
166
|
const { snapshotId, seqNum } = db.transaction(() => {
|
|
179
167
|
upsertProject(db, projectId, normalized, displayName);
|
|
180
168
|
const seqNum = getNextSequenceNumber(db, projectId);
|
|
@@ -184,14 +172,14 @@ function cmdSync() {
|
|
|
184
172
|
project_id: projectId,
|
|
185
173
|
sequence_number: seqNum,
|
|
186
174
|
agent,
|
|
187
|
-
summary
|
|
188
|
-
tasks_completed: JSON.stringify(
|
|
189
|
-
tasks_remaining: JSON.stringify(
|
|
175
|
+
summary,
|
|
176
|
+
tasks_completed: JSON.stringify(tasksCompleted),
|
|
177
|
+
tasks_remaining: JSON.stringify(tasksRemaining),
|
|
190
178
|
decisions: JSON.stringify(decisions),
|
|
191
|
-
files_modified: JSON.stringify(
|
|
192
|
-
blockers: JSON.stringify(
|
|
193
|
-
next_steps:
|
|
194
|
-
tags: JSON.stringify(
|
|
179
|
+
files_modified: JSON.stringify(filesModified),
|
|
180
|
+
blockers: JSON.stringify(blockers),
|
|
181
|
+
next_steps: nextSteps,
|
|
182
|
+
tags: JSON.stringify(tags),
|
|
195
183
|
created_at: now,
|
|
196
184
|
});
|
|
197
185
|
for (const d of decisions) {
|
|
@@ -211,11 +199,123 @@ function cmdSync() {
|
|
|
211
199
|
updateProjectSyncStats(db, projectId);
|
|
212
200
|
return { snapshotId, seqNum };
|
|
213
201
|
})();
|
|
202
|
+
closeDatabase();
|
|
203
|
+
return { snapshotId, seqNum, displayName, normalized };
|
|
204
|
+
}
|
|
205
|
+
function cmdSync() {
|
|
206
|
+
// Check for interactive mode
|
|
207
|
+
if (argv.includes('--interactive') || argv.includes('-i')) {
|
|
208
|
+
cmdSyncInteractive();
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const raw = readJsonInput();
|
|
212
|
+
if (!raw.trim()) {
|
|
213
|
+
console.error('Usage: context-sync sync --file <path.json>');
|
|
214
|
+
console.error(' or: context-sync sync --json \'{"projectDir":"...","agent":"codex",...}\'');
|
|
215
|
+
console.error(' or: context-sync sync --interactive | -i');
|
|
216
|
+
console.error(' or: <json> | context-sync sync');
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
let parsed;
|
|
220
|
+
try {
|
|
221
|
+
parsed = JSON.parse(raw);
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
console.error('Error: invalid JSON input');
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
const result = SyncInputSchema.safeParse(parsed);
|
|
228
|
+
if (!result.success) {
|
|
229
|
+
console.error('Error: invalid sync input');
|
|
230
|
+
for (const issue of result.error.issues) {
|
|
231
|
+
const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
|
|
232
|
+
console.error(` ${path}: ${issue.message}`);
|
|
233
|
+
}
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}
|
|
236
|
+
const input = result.data;
|
|
237
|
+
const { snapshotId, seqNum, displayName, normalized } = saveSnapshot(input.projectDir, input.agent, input.summary, input.tasksCompleted, input.tasksRemaining, input.decisions ?? [], (input.filesModified ?? []).map((f) => (typeof f === 'string' ? f : f.path)), input.blockers ?? [], input.nextSteps, input.tags ?? []);
|
|
214
238
|
console.log(`Snapshot #${seqNum} saved for "${displayName}"`);
|
|
215
239
|
console.log(` ID: ${snapshotId}`);
|
|
216
|
-
console.log(` Agent: ${agent}`);
|
|
240
|
+
console.log(` Agent: ${input.agent}`);
|
|
217
241
|
console.log(` Path: ${normalized}`);
|
|
218
|
-
|
|
242
|
+
}
|
|
243
|
+
// ---------------------------------------------------------------------------
|
|
244
|
+
// sync --interactive
|
|
245
|
+
// ---------------------------------------------------------------------------
|
|
246
|
+
function cmdSyncInteractive() {
|
|
247
|
+
const rl = createInterface({
|
|
248
|
+
input: process.stdin,
|
|
249
|
+
output: process.stdout,
|
|
250
|
+
});
|
|
251
|
+
function ask(prompt) {
|
|
252
|
+
return new Promise((resolve) => {
|
|
253
|
+
rl.question(prompt, (answer) => resolve(answer));
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
async function askRequired(prompt) {
|
|
257
|
+
// eslint-disable-next-line no-constant-condition
|
|
258
|
+
while (true) {
|
|
259
|
+
const answer = (await ask(prompt)).trim();
|
|
260
|
+
if (answer)
|
|
261
|
+
return answer;
|
|
262
|
+
console.log(' (This field is required. Please enter a value.)');
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
function splitCsv(input) {
|
|
266
|
+
if (!input.trim())
|
|
267
|
+
return [];
|
|
268
|
+
return input.split(',').map((s) => s.trim()).filter(Boolean);
|
|
269
|
+
}
|
|
270
|
+
async function run() {
|
|
271
|
+
const db = getDatabase();
|
|
272
|
+
const projectDir = getEffectiveProjectDir(db);
|
|
273
|
+
closeDatabase();
|
|
274
|
+
const agent = getFlag('agent') ?? 'claude-code';
|
|
275
|
+
const displayName = displayNameFromPath(projectDir);
|
|
276
|
+
console.log('');
|
|
277
|
+
console.log(`Project: ${normalizePath(projectDir)} (${displayName})`);
|
|
278
|
+
console.log(`Agent: ${agent}`);
|
|
279
|
+
console.log('');
|
|
280
|
+
const summary = await askRequired('Summary (required): ');
|
|
281
|
+
const tasksCompletedRaw = await ask('Tasks completed (comma-separated, empty to skip): ');
|
|
282
|
+
const tasksCompleted = splitCsv(tasksCompletedRaw);
|
|
283
|
+
const tasksRemainingRaw = await ask('Tasks remaining (comma-separated, empty to skip): ');
|
|
284
|
+
const tasksRemaining = splitCsv(tasksRemainingRaw);
|
|
285
|
+
// Decisions loop
|
|
286
|
+
const decisions = [];
|
|
287
|
+
// eslint-disable-next-line no-constant-condition
|
|
288
|
+
while (true) {
|
|
289
|
+
const decisionText = (await ask('Key decision (empty to skip): ')).trim();
|
|
290
|
+
if (!decisionText)
|
|
291
|
+
break;
|
|
292
|
+
const reasoning = (await ask(' Reasoning: ')).trim();
|
|
293
|
+
decisions.push({ decision: decisionText, reasoning: reasoning || '(none)' });
|
|
294
|
+
const another = (await ask(' Add another decision? (y/n): ')).trim().toLowerCase();
|
|
295
|
+
if (another !== 'y' && another !== 'yes')
|
|
296
|
+
break;
|
|
297
|
+
}
|
|
298
|
+
const filesModifiedRaw = await ask('Files modified (comma-separated, empty to skip): ');
|
|
299
|
+
const filesModified = splitCsv(filesModifiedRaw);
|
|
300
|
+
const blockersRaw = await ask('Blockers (comma-separated, empty to skip): ');
|
|
301
|
+
const blockers = splitCsv(blockersRaw);
|
|
302
|
+
const nextSteps = await askRequired('Next steps (required): ');
|
|
303
|
+
const tagsRaw = await ask('Tags (comma-separated, empty to skip): ');
|
|
304
|
+
const tags = splitCsv(tagsRaw);
|
|
305
|
+
rl.close();
|
|
306
|
+
process.stdout.write('\nSaving snapshot... ');
|
|
307
|
+
const { snapshotId, seqNum, displayName: name, normalized } = saveSnapshot(projectDir, agent, summary, tasksCompleted, tasksRemaining, decisions, filesModified, blockers, nextSteps, tags);
|
|
308
|
+
console.log('Done!');
|
|
309
|
+
console.log(`Snapshot #${seqNum} saved for "${name}"`);
|
|
310
|
+
console.log(` ID: ${snapshotId}`);
|
|
311
|
+
console.log(` Agent: ${agent}`);
|
|
312
|
+
console.log(` Path: ${normalized}`);
|
|
313
|
+
}
|
|
314
|
+
run().catch((err) => {
|
|
315
|
+
rl.close();
|
|
316
|
+
console.error('Error:', err);
|
|
317
|
+
process.exit(1);
|
|
318
|
+
});
|
|
219
319
|
}
|
|
220
320
|
// ---------------------------------------------------------------------------
|
|
221
321
|
// list
|
|
@@ -257,22 +357,86 @@ function cmdHistory() {
|
|
|
257
357
|
closeDatabase();
|
|
258
358
|
}
|
|
259
359
|
// ---------------------------------------------------------------------------
|
|
360
|
+
// auto-sync
|
|
361
|
+
// ---------------------------------------------------------------------------
|
|
362
|
+
function cmdAutoSync() {
|
|
363
|
+
const agent = getFlag('agent') ?? 'claude-code';
|
|
364
|
+
let db;
|
|
365
|
+
try {
|
|
366
|
+
db = getDatabase();
|
|
367
|
+
}
|
|
368
|
+
catch {
|
|
369
|
+
// DB not accessible — exit silently
|
|
370
|
+
process.exit(0);
|
|
371
|
+
}
|
|
372
|
+
const projectDir = getEffectiveProjectDir(db);
|
|
373
|
+
const projectId = projectIdFromPath(projectDir);
|
|
374
|
+
const project = getProject(db, projectId);
|
|
375
|
+
if (!project) {
|
|
376
|
+
// No existing project — exit silently, don't create one
|
|
377
|
+
closeDatabase();
|
|
378
|
+
process.exit(0);
|
|
379
|
+
}
|
|
380
|
+
const latestSnapshot = getLatestSnapshot(db, projectId);
|
|
381
|
+
// Carry over remaining tasks from the latest snapshot
|
|
382
|
+
let tasksRemaining = '[]';
|
|
383
|
+
if (latestSnapshot) {
|
|
384
|
+
tasksRemaining = latestSnapshot.tasks_remaining ?? '[]';
|
|
385
|
+
}
|
|
386
|
+
const now = new Date().toISOString();
|
|
387
|
+
try {
|
|
388
|
+
db.transaction(() => {
|
|
389
|
+
const seqNum = getNextSequenceNumber(db, projectId);
|
|
390
|
+
const snapshotId = generateId();
|
|
391
|
+
insertSnapshot(db, {
|
|
392
|
+
id: snapshotId,
|
|
393
|
+
project_id: projectId,
|
|
394
|
+
sequence_number: seqNum,
|
|
395
|
+
agent,
|
|
396
|
+
summary: 'Auto-saved session context on exit',
|
|
397
|
+
tasks_completed: '[]',
|
|
398
|
+
tasks_remaining: tasksRemaining,
|
|
399
|
+
decisions: '[]',
|
|
400
|
+
files_modified: '[]',
|
|
401
|
+
blockers: '[]',
|
|
402
|
+
next_steps: 'Session ended automatically. Use /resume-project to continue.',
|
|
403
|
+
tags: '["auto-sync"]',
|
|
404
|
+
created_at: now,
|
|
405
|
+
});
|
|
406
|
+
updateProjectSyncStats(db, projectId);
|
|
407
|
+
})();
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
// Swallow errors — must not fail on session exit
|
|
411
|
+
}
|
|
412
|
+
closeDatabase();
|
|
413
|
+
}
|
|
414
|
+
// ---------------------------------------------------------------------------
|
|
260
415
|
// Main
|
|
261
416
|
// ---------------------------------------------------------------------------
|
|
262
417
|
function showHelp() {
|
|
263
418
|
console.log(`context-sync — Cross-agent context synchronization CLI
|
|
264
419
|
|
|
265
420
|
Commands:
|
|
266
|
-
resume
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
421
|
+
resume Load latest snapshot [--project <path>] [--agent <name>]
|
|
422
|
+
--peek Read-only (no handoff registration)
|
|
423
|
+
--brief Compact 3-5 line summary (implies --peek)
|
|
424
|
+
--json Raw JSON output for piping (implies --peek)
|
|
425
|
+
sync Save work snapshot --file <path> | --json '<json>' | stdin
|
|
426
|
+
--interactive | -i Step-by-step guided snapshot creation
|
|
427
|
+
auto-sync Auto-save on session exit [--project <path>] [--agent <name>]
|
|
428
|
+
list List synced projects
|
|
429
|
+
history Show handoff timeline [--project <path>] [--limit <n>]
|
|
270
430
|
|
|
271
431
|
If --project is omitted, the current working directory is used.
|
|
272
432
|
|
|
273
433
|
Examples:
|
|
274
434
|
context-sync resume --project "C:/Users/me/myproject" --agent codex
|
|
435
|
+
context-sync resume --brief
|
|
436
|
+
context-sync resume --json | jq .summary
|
|
275
437
|
context-sync sync --file snapshot.json
|
|
438
|
+
context-sync sync --interactive --agent codex
|
|
439
|
+
context-sync auto-sync --agent claude-code
|
|
276
440
|
context-sync list`);
|
|
277
441
|
}
|
|
278
442
|
switch (argv[0]) {
|
|
@@ -282,6 +446,9 @@ switch (argv[0]) {
|
|
|
282
446
|
case 'sync':
|
|
283
447
|
cmdSync();
|
|
284
448
|
break;
|
|
449
|
+
case 'auto-sync':
|
|
450
|
+
cmdAutoSync();
|
|
451
|
+
break;
|
|
285
452
|
case 'list':
|
|
286
453
|
cmdList();
|
|
287
454
|
break;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { SnapshotRow } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Render a compact 3-5 line summary of a snapshot for quick consumption.
|
|
4
|
+
*/
|
|
5
|
+
export declare function renderSnapshotBrief(snapshot: SnapshotRow, displayName: string): string;
|
|
2
6
|
/**
|
|
3
7
|
* Render a snapshot row as readable Markdown for agent context windows.
|
|
4
8
|
*/
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a compact 3-5 line summary of a snapshot for quick consumption.
|
|
3
|
+
*/
|
|
4
|
+
export function renderSnapshotBrief(snapshot, displayName) {
|
|
5
|
+
const tasksRemaining = JSON.parse(snapshot.tasks_remaining);
|
|
6
|
+
const blockers = JSON.parse(snapshot.blockers);
|
|
7
|
+
const date = snapshot.created_at.slice(0, 10);
|
|
8
|
+
const lines = [];
|
|
9
|
+
lines.push(`[${displayName}] Snapshot #${snapshot.sequence_number} by ${snapshot.agent} (${date})`);
|
|
10
|
+
lines.push(`Summary: ${snapshot.summary}`);
|
|
11
|
+
lines.push(`Remaining: ${tasksRemaining.length} task${tasksRemaining.length !== 1 ? 's' : ''} | Blockers: ${blockers.length > 0 ? blockers.join('; ') : 'none'}`);
|
|
12
|
+
lines.push(`Next: ${snapshot.next_steps}`);
|
|
13
|
+
return lines.join('\n');
|
|
14
|
+
}
|
|
1
15
|
/**
|
|
2
16
|
* Render a snapshot row as readable Markdown for agent context windows.
|
|
3
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-renderer.js","sourceRoot":"","sources":["../../src/lib/snapshot-renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snapshot-renderer.js","sourceRoot":"","sources":["../../src/lib/snapshot-renderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-context-sync",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "MCP server for synchronizing work context between AI coding agents (Claude Code, Codex, Gemini, Cursor)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -14,12 +14,14 @@
|
|
|
14
14
|
"LICENSE"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"
|
|
17
|
+
"clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"",
|
|
18
|
+
"build": "npm run clean && tsc",
|
|
18
19
|
"start": "node dist/index.js",
|
|
19
20
|
"dev": "tsx src/index.ts",
|
|
20
21
|
"cli": "tsx src/cli.ts",
|
|
21
22
|
"test": "vitest run",
|
|
22
|
-
"test:watch": "vitest"
|
|
23
|
+
"test:watch": "vitest",
|
|
24
|
+
"release": "bash scripts/release.sh"
|
|
23
25
|
},
|
|
24
26
|
"keywords": [
|
|
25
27
|
"mcp",
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { projectIdFromPath, displayNameFromPath } from '../lib/project-id.js';
|
|
3
|
-
import { getProject, getLatestSnapshot, listProjects } from '../db/queries.js';
|
|
4
|
-
export function registerAutoResumePrompt(server, db) {
|
|
5
|
-
server.registerPrompt('auto-resume', {
|
|
6
|
-
title: 'Auto-Resume Context',
|
|
7
|
-
description: 'Check for existing context when opening a project. ' +
|
|
8
|
-
'Returns a concise summary or confirms fresh start.',
|
|
9
|
-
argsSchema: {
|
|
10
|
-
projectDir: z.string().describe('Absolute path to the project root directory'),
|
|
11
|
-
agent: z.string().describe('Current agent name (e.g., "claude-code", "codex", "gemini-cli")'),
|
|
12
|
-
},
|
|
13
|
-
}, ({ projectDir, agent }) => {
|
|
14
|
-
const projectId = projectIdFromPath(projectDir);
|
|
15
|
-
const displayName = displayNameFromPath(projectDir);
|
|
16
|
-
const project = getProject(db, projectId);
|
|
17
|
-
// No previous context
|
|
18
|
-
if (!project) {
|
|
19
|
-
const otherCount = listProjects(db).length;
|
|
20
|
-
const note = otherCount > 0
|
|
21
|
-
? `\n\n${otherCount} other project(s) have synced context. Use \`list-projects\` to see them.`
|
|
22
|
-
: '';
|
|
23
|
-
return {
|
|
24
|
-
messages: [
|
|
25
|
-
{ role: 'user', content: { type: 'text', text: `Starting work on \`${projectDir}\`.` } },
|
|
26
|
-
{ role: 'assistant', content: { type: 'text', text: `**Fresh start** — no previous context for "${displayName}".${note}\n\n` +
|
|
27
|
-
`When done, use the \`sync\` tool to save progress for future sessions.`, } },
|
|
28
|
-
],
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
const snapshot = getLatestSnapshot(db, projectId);
|
|
32
|
-
if (!snapshot) {
|
|
33
|
-
return {
|
|
34
|
-
messages: [
|
|
35
|
-
{ role: 'user', content: { type: 'text', text: `Starting work on "${displayName}".` } },
|
|
36
|
-
{ role: 'assistant', content: { type: 'text', text: `Project "${displayName}" exists but has no snapshots. Use \`sync\` to create one.`, } },
|
|
37
|
-
],
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
// Build concise summary
|
|
41
|
-
const remaining = JSON.parse(snapshot.tasks_remaining);
|
|
42
|
-
const decisions = JSON.parse(snapshot.decisions);
|
|
43
|
-
const lines = [
|
|
44
|
-
`**Resuming: ${displayName}**`,
|
|
45
|
-
'',
|
|
46
|
-
`Last session by **${snapshot.agent}** on ${snapshot.created_at.slice(0, 10)}` +
|
|
47
|
-
` (snapshot #${snapshot.sequence_number}, ${project.handoff_count} handoffs)`,
|
|
48
|
-
'',
|
|
49
|
-
`> ${snapshot.summary}`,
|
|
50
|
-
];
|
|
51
|
-
if (remaining.length > 0) {
|
|
52
|
-
lines.push('', `**Pending (${remaining.length}):**`);
|
|
53
|
-
for (const t of remaining.slice(0, 4))
|
|
54
|
-
lines.push(`- ${t}`);
|
|
55
|
-
if (remaining.length > 4)
|
|
56
|
-
lines.push(`- ...and ${remaining.length - 4} more`);
|
|
57
|
-
}
|
|
58
|
-
if (decisions.length > 0) {
|
|
59
|
-
lines.push('', `**Last decision:** ${decisions[decisions.length - 1].decision}`);
|
|
60
|
-
}
|
|
61
|
-
lines.push('', `Use \`resume\` with \`projectDir: "${projectDir}"\` and \`agent: "${agent}"\` to load the full snapshot and register the handoff.`);
|
|
62
|
-
return {
|
|
63
|
-
messages: [
|
|
64
|
-
{ role: 'user', content: { type: 'text', text: `Continuing work on \`${projectDir}\`. Load previous context.` } },
|
|
65
|
-
{ role: 'assistant', content: { type: 'text', text: lines.join('\n') } },
|
|
66
|
-
],
|
|
67
|
-
};
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=auto-resume.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-resume.js","sourceRoot":"","sources":["../../src/prompts/auto-resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export function registerResumeWorkPrompt(server) {
|
|
3
|
-
server.registerPrompt('resume-work', {
|
|
4
|
-
title: 'Resume Previous Work',
|
|
5
|
-
description: 'Load the latest snapshot and orient for continuing work on a project.',
|
|
6
|
-
argsSchema: {
|
|
7
|
-
projectDir: z.string().describe('Project root directory'),
|
|
8
|
-
agent: z.string().describe('Current agent name'),
|
|
9
|
-
},
|
|
10
|
-
}, ({ projectDir, agent }) => ({
|
|
11
|
-
messages: [
|
|
12
|
-
{
|
|
13
|
-
role: 'user',
|
|
14
|
-
content: {
|
|
15
|
-
type: 'text',
|
|
16
|
-
text: `I'm switching to you (${agent}) to continue work on "${projectDir}".
|
|
17
|
-
|
|
18
|
-
Please call the "resume" tool to load the latest context snapshot, then:
|
|
19
|
-
1. Read the snapshot carefully
|
|
20
|
-
2. Summarize what the previous agent accomplished
|
|
21
|
-
3. Note any key decisions and blockers
|
|
22
|
-
4. Confirm the next steps
|
|
23
|
-
5. Ask me if I want to proceed with the suggested next steps or do something different`,
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=resume-work.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resume-work.js","sourceRoot":"","sources":["../../src/prompts/resume-work.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,cAAc,CACnB,aAAa,EACb;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,uEAAuE;QACzE,UAAU,EAAE;YACV,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SACjD;KACF,EACD,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,yBAAyB,KAAK,0BAA0B,UAAU;;;;;;;uFAOG;iBAC5E;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export function registerSyncSessionPrompt(server) {
|
|
3
|
-
server.registerPrompt('sync-session', {
|
|
4
|
-
title: 'Sync Current Session',
|
|
5
|
-
description: 'Guided prompt to capture a complete context snapshot for handoff to another agent.',
|
|
6
|
-
argsSchema: {
|
|
7
|
-
projectDir: z.string().describe('Project root directory'),
|
|
8
|
-
agent: z.string().describe('Current agent name'),
|
|
9
|
-
},
|
|
10
|
-
}, ({ projectDir, agent }) => ({
|
|
11
|
-
messages: [
|
|
12
|
-
{
|
|
13
|
-
role: 'user',
|
|
14
|
-
content: {
|
|
15
|
-
type: 'text',
|
|
16
|
-
text: `You are about to sync your work session on project at "${projectDir}" as agent "${agent}".
|
|
17
|
-
|
|
18
|
-
Please call the "sync" tool with a structured snapshot of your current session. Include:
|
|
19
|
-
1. A concise summary of what you accomplished
|
|
20
|
-
2. All tasks you completed (be specific)
|
|
21
|
-
3. All tasks still remaining or blocked
|
|
22
|
-
4. Any key decisions you made and WHY
|
|
23
|
-
5. Files you created or modified
|
|
24
|
-
6. Any blockers another agent should know about
|
|
25
|
-
7. Specific, actionable next steps -- what should the next agent do FIRST?
|
|
26
|
-
|
|
27
|
-
Be concrete and specific. The next agent has NO context about your conversation -- they will only see this snapshot.`,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=sync-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-session.js","sourceRoot":"","sources":["../../src/prompts/sync-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,cAAc,CACnB,cAAc,EACd;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,oFAAoF;QACtF,UAAU,EAAE;YACV,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SACjD;KACF,EACD,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,0DAA0D,UAAU,eAAe,KAAK;;;;;;;;;;;qHAWW;iBAC1G;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|