mcp-context-sync 1.0.11 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/cli.js +57 -49
  2. package/dist/cli.js.map +1 -1
  3. package/dist/db/connection.d.ts +10 -1
  4. package/dist/db/connection.js +59 -23
  5. package/dist/db/connection.js.map +1 -1
  6. package/dist/db/json-adapter.d.ts +47 -0
  7. package/dist/db/json-adapter.js +235 -0
  8. package/dist/db/json-adapter.js.map +1 -0
  9. package/dist/db/sqlite-adapter.d.ts +37 -0
  10. package/dist/db/sqlite-adapter.js +78 -0
  11. package/dist/db/sqlite-adapter.js.map +1 -0
  12. package/dist/db/storage.d.ts +41 -0
  13. package/dist/db/storage.js +9 -0
  14. package/dist/db/storage.js.map +1 -0
  15. package/dist/index.js +4 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/resources/project-decisions.d.ts +2 -2
  18. package/dist/resources/project-decisions.js +3 -4
  19. package/dist/resources/project-decisions.js.map +1 -1
  20. package/dist/resources/project-snapshot.d.ts +2 -2
  21. package/dist/resources/project-snapshot.js +3 -4
  22. package/dist/resources/project-snapshot.js.map +1 -1
  23. package/dist/resources/status.d.ts +2 -2
  24. package/dist/resources/status.js +1 -2
  25. package/dist/resources/status.js.map +1 -1
  26. package/dist/tools/amend-snapshot.d.ts +2 -2
  27. package/dist/tools/amend-snapshot.js +9 -10
  28. package/dist/tools/amend-snapshot.js.map +1 -1
  29. package/dist/tools/get-history.d.ts +2 -2
  30. package/dist/tools/get-history.js +3 -4
  31. package/dist/tools/get-history.js.map +1 -1
  32. package/dist/tools/list-projects.d.ts +2 -2
  33. package/dist/tools/list-projects.js +1 -2
  34. package/dist/tools/list-projects.js.map +1 -1
  35. package/dist/tools/log-decision.d.ts +2 -2
  36. package/dist/tools/log-decision.js +2 -3
  37. package/dist/tools/log-decision.js.map +1 -1
  38. package/dist/tools/resume.d.ts +2 -2
  39. package/dist/tools/resume.js +7 -8
  40. package/dist/tools/resume.js.map +1 -1
  41. package/dist/tools/search-snapshots.d.ts +2 -2
  42. package/dist/tools/search-snapshots.js +2 -3
  43. package/dist/tools/search-snapshots.js.map +1 -1
  44. package/dist/tools/sync.d.ts +2 -2
  45. package/dist/tools/sync.js +5 -6
  46. package/dist/tools/sync.js.map +1 -1
  47. package/package.json +4 -2
  48. package/scripts/postinstall.cjs +14 -34
  49. package/scripts/preinstall.cjs +13 -86
@@ -1,6 +1,5 @@
1
1
  import { AmendSnapshotInputSchema } from '../lib/types.js';
2
2
  import { projectIdFromPath, displayNameFromPath, } from '../lib/project-id.js';
3
- import { getLatestSnapshot, updateSnapshot, insertDecision } from '../db/queries.js';
4
3
  import { generateId } from '../lib/uuid.js';
5
4
  export function registerAmendSnapshotTool(server, db) {
6
5
  server.registerTool('amend-snapshot', {
@@ -17,7 +16,7 @@ export function registerAmendSnapshotTool(server, db) {
17
16
  }, async (input) => {
18
17
  const projectId = projectIdFromPath(input.projectDir);
19
18
  const displayName = displayNameFromPath(input.projectDir);
20
- const snapshot = getLatestSnapshot(db, projectId);
19
+ const snapshot = db.getLatestSnapshot(projectId);
21
20
  if (!snapshot) {
22
21
  return {
23
22
  content: [
@@ -34,7 +33,7 @@ export function registerAmendSnapshotTool(server, db) {
34
33
  if (input.addTasksCompleted?.length) {
35
34
  const current = JSON.parse(snapshot.tasks_completed);
36
35
  current.push(...input.addTasksCompleted);
37
- updateSnapshot(db, snapshot.id, {
36
+ db.updateSnapshot(snapshot.id, {
38
37
  tasks_completed: JSON.stringify(current),
39
38
  });
40
39
  changes.push(`Added ${input.addTasksCompleted.length} completed tasks`);
@@ -51,7 +50,7 @@ export function registerAmendSnapshotTool(server, db) {
51
50
  changes.push(`Added ${input.addTasksRemaining.length} remaining tasks`);
52
51
  }
53
52
  if (input.removeTasksRemaining?.length || input.addTasksRemaining?.length) {
54
- updateSnapshot(db, snapshot.id, {
53
+ db.updateSnapshot(snapshot.id, {
55
54
  tasks_remaining: JSON.stringify(remaining),
56
55
  });
57
56
  }
@@ -59,11 +58,11 @@ export function registerAmendSnapshotTool(server, db) {
59
58
  if (input.addDecisions?.length) {
60
59
  const current = JSON.parse(snapshot.decisions);
61
60
  current.push(...input.addDecisions);
62
- updateSnapshot(db, snapshot.id, {
61
+ db.updateSnapshot(snapshot.id, {
63
62
  decisions: JSON.stringify(current),
64
63
  });
65
64
  for (const d of input.addDecisions) {
66
- insertDecision(db, {
65
+ db.insertDecision({
67
66
  id: generateId(),
68
67
  project_id: projectId,
69
68
  snapshot_id: snapshot.id,
@@ -80,7 +79,7 @@ export function registerAmendSnapshotTool(server, db) {
80
79
  }
81
80
  // Next steps
82
81
  if (input.updateNextSteps) {
83
- updateSnapshot(db, snapshot.id, {
82
+ db.updateSnapshot(snapshot.id, {
84
83
  next_steps: input.updateNextSteps,
85
84
  });
86
85
  changes.push('Updated next steps');
@@ -97,7 +96,7 @@ export function registerAmendSnapshotTool(server, db) {
97
96
  changes.push(`Added ${input.addBlockers.length} blockers`);
98
97
  }
99
98
  if (input.removeBlockers?.length || input.addBlockers?.length) {
100
- updateSnapshot(db, snapshot.id, {
99
+ db.updateSnapshot(snapshot.id, {
101
100
  blockers: JSON.stringify(blockers),
102
101
  });
103
102
  }
@@ -105,11 +104,11 @@ export function registerAmendSnapshotTool(server, db) {
105
104
  if (input.addTags?.length) {
106
105
  const current = JSON.parse(snapshot.tags);
107
106
  const unique = [...new Set([...current, ...input.addTags])];
108
- updateSnapshot(db, snapshot.id, { tags: JSON.stringify(unique) });
107
+ db.updateSnapshot(snapshot.id, { tags: JSON.stringify(unique) });
109
108
  changes.push(`Added ${input.addTags.length} tags`);
110
109
  }
111
110
  // Mark as amended
112
- updateSnapshot(db, snapshot.id, {
111
+ db.updateSnapshot(snapshot.id, {
113
112
  amended_at: now,
114
113
  amended_by: input.agent,
115
114
  });
@@ -1 +1 @@
1
- {"version":3,"file":"amend-snapshot.js","sourceRoot":"","sources":["../../src/tools/amend-snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amend-snapshot.js","sourceRoot":"","sources":["../../src/tools/amend-snapshot.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type Database from 'better-sqlite3';
3
- export declare function registerGetHistoryTool(server: McpServer, db: Database.Database): void;
2
+ import type { StorageAdapter } from '../db/storage.js';
3
+ export declare function registerGetHistoryTool(server: McpServer, db: StorageAdapter): void;
@@ -1,6 +1,5 @@
1
1
  import { GetHistoryInputSchema } from '../lib/types.js';
2
2
  import { projectIdFromPath, displayNameFromPath, } from '../lib/project-id.js';
3
- import { getProject, getSnapshotsByProject, getHandoffsByProject, } from '../db/queries.js';
4
3
  export function registerGetHistoryTool(server, db) {
5
4
  server.registerTool('get-history', {
6
5
  title: 'Get Project Handoff History',
@@ -15,7 +14,7 @@ export function registerGetHistoryTool(server, db) {
15
14
  }, async (input) => {
16
15
  const projectId = projectIdFromPath(input.projectDir);
17
16
  const displayName = displayNameFromPath(input.projectDir);
18
- const project = getProject(db, projectId);
17
+ const project = db.getProject(projectId);
19
18
  if (!project) {
20
19
  return {
21
20
  content: [
@@ -26,11 +25,11 @@ export function registerGetHistoryTool(server, db) {
26
25
  ],
27
26
  };
28
27
  }
29
- let snapshots = getSnapshotsByProject(db, projectId, input.limit);
28
+ let snapshots = db.getSnapshotsByProject(projectId, input.limit);
30
29
  if (input.agentFilter !== 'all') {
31
30
  snapshots = snapshots.filter((s) => s.agent === input.agentFilter);
32
31
  }
33
- const handoffs = getHandoffsByProject(db, projectId, 50);
32
+ const handoffs = db.getHandoffsByProject(projectId, 50);
34
33
  const lines = [];
35
34
  lines.push(`# Project Timeline: ${displayName}`);
36
35
  lines.push(`Total: ${project.snapshot_count} snapshots, ${project.handoff_count} handoffs`);
@@ -1 +1 @@
1
- {"version":3,"file":"get-history.js","sourceRoot":"","sources":["../../src/tools/get-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-history.js","sourceRoot":"","sources":["../../src/tools/get-history.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type Database from 'better-sqlite3';
3
- export declare function registerListProjectsTool(server: McpServer, db: Database.Database): void;
2
+ import type { StorageAdapter } from '../db/storage.js';
3
+ export declare function registerListProjectsTool(server: McpServer, db: StorageAdapter): void;
@@ -1,5 +1,4 @@
1
1
  import { ListProjectsInputSchema } from '../lib/types.js';
2
- import { listProjects } from '../db/queries.js';
3
2
  export function registerListProjectsTool(server, db) {
4
3
  server.registerTool('list-projects', {
5
4
  title: 'List Synced Projects',
@@ -12,7 +11,7 @@ export function registerListProjectsTool(server, db) {
12
11
  openWorldHint: false,
13
12
  },
14
13
  }, async () => {
15
- const projects = listProjects(db);
14
+ const projects = db.listProjects();
16
15
  if (projects.length === 0) {
17
16
  return {
18
17
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,EAAqB;IAErB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,yEAAyE;QAC3E,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,sFAAsF;qBAC7F;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CACR,sBAAsB,CAAC,CAAC,cAAc,IAAI,OAAO,EAAE,CACpD,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,EAAkB;IAElB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,yEAAyE;QAC3E,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;QAEnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,sFAAsF;qBAC7F;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CACR,sBAAsB,CAAC,CAAC,cAAc,IAAI,OAAO,EAAE,CACpD,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type Database from 'better-sqlite3';
3
- export declare function registerLogDecisionTool(server: McpServer, db: Database.Database): void;
2
+ import type { StorageAdapter } from '../db/storage.js';
3
+ export declare function registerLogDecisionTool(server: McpServer, db: StorageAdapter): void;
@@ -1,7 +1,6 @@
1
1
  import { LogDecisionInputSchema } from '../lib/types.js';
2
2
  import { projectIdFromPath, normalizePath, displayNameFromPath, } from '../lib/project-id.js';
3
3
  import { generateId } from '../lib/uuid.js';
4
- import { upsertProject, insertDecision } from '../db/queries.js';
5
4
  export function registerLogDecisionTool(server, db) {
6
5
  server.registerTool('log-decision', {
7
6
  title: 'Log Decision',
@@ -20,8 +19,8 @@ export function registerLogDecisionTool(server, db) {
20
19
  const displayName = displayNameFromPath(input.projectDir);
21
20
  const now = new Date().toISOString();
22
21
  const decisionId = generateId();
23
- upsertProject(db, projectId, normalized, displayName);
24
- insertDecision(db, {
22
+ db.upsertProject(projectId, normalized, displayName);
23
+ db.insertDecision({
25
24
  id: decisionId,
26
25
  project_id: projectId,
27
26
  snapshot_id: null,
@@ -1 +1 @@
1
- {"version":3,"file":"log-decision.js","sourceRoot":"","sources":["../../src/tools/log-decision.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,EAAqB;IAErB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,sEAAsE;YACtE,mGAAmG;QACrG,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAEhC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAEtD,cAAc,CAAC,EAAE,EAAE;YACjB,EAAE,EAAE,UAAU;YACd,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;YACtD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YAChC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;YACvD,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,wBAAwB,WAAW,WAAW,KAAK,CAAC,QAAQ,OAAO,KAAK,CAAC,SAAS,WAAW,UAAU,EAAE;iBAChH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"log-decision.js","sourceRoot":"","sources":["../../src/tools/log-decision.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,EAAkB;IAElB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,sEAAsE;YACtE,mGAAmG;QACrG,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAEhC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAErD,EAAE,CAAC,cAAc,CAAC;YAChB,EAAE,EAAE,UAAU;YACd,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;YACtD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YAChC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;YACvD,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,wBAAwB,WAAW,WAAW,KAAK,CAAC,QAAQ,OAAO,KAAK,CAAC,SAAS,WAAW,UAAU,EAAE;iBAChH;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type Database from 'better-sqlite3';
3
- export declare function registerResumeTool(server: McpServer, db: Database.Database): void;
2
+ import type { StorageAdapter } from '../db/storage.js';
3
+ export declare function registerResumeTool(server: McpServer, db: StorageAdapter): void;
@@ -2,7 +2,6 @@ import { ResumeInputSchema } from '../lib/types.js';
2
2
  import { projectIdFromPath, displayNameFromPath, normalizePath, } from '../lib/project-id.js';
3
3
  import { generateId } from '../lib/uuid.js';
4
4
  import { renderSnapshotMarkdown } from '../lib/snapshot-renderer.js';
5
- import { getProject, getLatestSnapshot, getSnapshotById, insertHandoff, updateProjectSyncStats, getProjectAgents, listProjects, } from '../db/queries.js';
6
5
  export function registerResumeTool(server, db) {
7
6
  server.registerTool('resume', {
8
7
  title: 'Resume from Context Snapshot',
@@ -18,13 +17,13 @@ export function registerResumeTool(server, db) {
18
17
  }, async (input) => {
19
18
  const projectId = projectIdFromPath(input.projectDir);
20
19
  const displayName = displayNameFromPath(input.projectDir);
21
- const project = getProject(db, projectId);
20
+ const project = db.getProject(projectId);
22
21
  if (!project) {
23
22
  return { content: [{ type: 'text', text: buildNotFoundMessage(db, input.projectDir, displayName, projectId) }] };
24
23
  }
25
24
  const snapshot = input.snapshotId
26
- ? getSnapshotById(db, input.snapshotId)
27
- : getLatestSnapshot(db, projectId);
25
+ ? db.getSnapshotById(input.snapshotId)
26
+ : db.getLatestSnapshot(projectId);
28
27
  if (!snapshot) {
29
28
  return {
30
29
  content: [{
@@ -36,7 +35,7 @@ export function registerResumeTool(server, db) {
36
35
  // Register the handoff in a transaction
37
36
  const now = new Date().toISOString();
38
37
  const agents = db.transaction(() => {
39
- insertHandoff(db, {
38
+ db.insertHandoff({
40
39
  id: generateId(),
41
40
  project_id: projectId,
42
41
  snapshot_id: snapshot.id,
@@ -46,8 +45,8 @@ export function registerResumeTool(server, db) {
46
45
  to_timestamp: now,
47
46
  created_at: now,
48
47
  });
49
- updateProjectSyncStats(db, projectId);
50
- return getProjectAgents(db, projectId);
48
+ db.updateProjectSyncStats(projectId);
49
+ return db.getProjectAgents(projectId);
51
50
  })();
52
51
  const markdown = renderSnapshotMarkdown(snapshot, displayName, {
53
52
  totalSnapshots: project.snapshot_count,
@@ -62,7 +61,7 @@ export function registerResumeTool(server, db) {
62
61
  // ---------------------------------------------------------------------------
63
62
  function buildNotFoundMessage(db, inputPath, displayName, projectId) {
64
63
  const normalized = normalizePath(inputPath);
65
- const allProjects = listProjects(db);
64
+ const allProjects = db.listProjects();
66
65
  const lines = [
67
66
  `No context-sync data found for project "${displayName}"`,
68
67
  '',
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/tools/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/tools/resume.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,EAAkB;IACtE,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,2FAA2F;YAC3F,mFAAmF;QACrF,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK,EAAE,0BAA0B;YAC/C,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5H,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU;YAC/B,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,YAAY,WAAW,gCAAgC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;qBACzH,CAAC;aACH,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACjC,EAAE,CAAC,aAAa,CAAC;gBACf,EAAE,EAAE,UAAU,EAAE;gBAChB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,UAAU,EAAE,QAAQ,CAAC,KAAK;gBAC1B,QAAQ,EAAE,KAAK,CAAC,KAAK;gBACrB,cAAc,EAAE,QAAQ,CAAC,UAAU;gBACnC,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;YACH,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACrC,OAAO,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE;YAC7D,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa,GAAG,CAAC;YACxC,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAClE,CAAC,CACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,SAAS,oBAAoB,CAC3B,EAAkB,EAClB,SAAiB,EACjB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;IAEtC,MAAM,KAAK,GAAa;QACtB,2CAA2C,WAAW,GAAG;QACzD,EAAE;QACF,mBAAmB;QACnB,aAAa,UAAU,IAAI;QAC3B,WAAW,SAAS,IAAI;QACxB,EAAE;KACH,CAAC;IAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,yBAAyB,WAAW,CAAC,MAAM,MAAM,CAAC,CAAC;IAE9D,4DAA4D;IAC5D,MAAM,MAAM,GAAG,WAAW;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;SAC5E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAErC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,eAAe,QAAQ,CAAC,CAAC,cAAc,aAAa,CAAC,CAAC;IACnF,CAAC;IAED,6CAA6C;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,kCAAkC,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,IAAI,CACR,EAAE,EACF,sBAAsB,EACtB,qEAAqE,EACrE,gEAAgE,EAChE,oDAAoD,CACrD,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,qEAAqE;AACrE,8EAA8E;AAE9E,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE3B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,EAAE,CAAC;;YAC/B,MAAM;IACb,CAAC;IACD,OAAO,MAAM,GAAG,MAAM,CAAC;AACzB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type Database from 'better-sqlite3';
3
- export declare function registerSearchSnapshotsTool(server: McpServer, db: Database.Database): void;
2
+ import type { StorageAdapter } from '../db/storage.js';
3
+ export declare function registerSearchSnapshotsTool(server: McpServer, db: StorageAdapter): void;
@@ -1,6 +1,5 @@
1
1
  import { SearchSnapshotsInputSchema } from '../lib/types.js';
2
2
  import { projectIdFromPath } from '../lib/project-id.js';
3
- import { searchSnapshots, getSnapshotsByProject } from '../db/queries.js';
4
3
  export function registerSearchSnapshotsTool(server, db) {
5
4
  server.registerTool('search-snapshots', {
6
5
  title: 'Search Snapshots',
@@ -18,11 +17,11 @@ export function registerSearchSnapshotsTool(server, db) {
18
17
  : undefined;
19
18
  let results;
20
19
  if (input.query) {
21
- results = searchSnapshots(db, input.query, projectId, input.agent, input.since, input.until, input.limit);
20
+ results = db.searchSnapshots(input.query, projectId, input.agent, input.since, input.until, input.limit);
22
21
  }
23
22
  else if (projectId) {
24
23
  // No query text, just filter by project
25
- results = getSnapshotsByProject(db, projectId, input.limit);
24
+ results = db.getSnapshotsByProject(projectId, input.limit);
26
25
  if (input.agent) {
27
26
  results = results.filter((s) => s.agent === input.agent);
28
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"search-snapshots.js","sourceRoot":"","sources":["../../src/tools/search-snapshots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-snapshots.js","sourceRoot":"","sources":["../../src/tools/search-snapshots.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type Database from 'better-sqlite3';
3
- export declare function registerSyncTool(server: McpServer, db: Database.Database): void;
2
+ import type { StorageAdapter } from '../db/storage.js';
3
+ export declare function registerSyncTool(server: McpServer, db: StorageAdapter): void;
@@ -1,7 +1,6 @@
1
1
  import { SyncInputSchema } from '../lib/types.js';
2
2
  import { projectIdFromPath, normalizePath, displayNameFromPath, } from '../lib/project-id.js';
3
3
  import { generateId } from '../lib/uuid.js';
4
- import { upsertProject, getNextSequenceNumber, insertSnapshot, insertDecision, updateProjectSyncStats, } from '../db/queries.js';
5
4
  import { validateProjectDir, suggestProjectRoot, formatWarnings, } from '../lib/validation.js';
6
5
  export function registerSyncTool(server, db) {
7
6
  server.registerTool('sync', {
@@ -23,8 +22,8 @@ export function registerSyncTool(server, db) {
23
22
  const validation = validateProjectDir(input.projectDir);
24
23
  const suggestedRoot = suggestProjectRoot(input.projectDir);
25
24
  const txn = db.transaction(() => {
26
- upsertProject(db, projectId, normalized, displayName);
27
- const seqNum = getNextSequenceNumber(db, projectId);
25
+ db.upsertProject(projectId, normalized, displayName);
26
+ const seqNum = db.getNextSequenceNumber(projectId);
28
27
  const snapshotId = generateId();
29
28
  // Serialize all arrays once
30
29
  const serialized = {
@@ -35,7 +34,7 @@ export function registerSyncTool(server, db) {
35
34
  tasksCompleted: JSON.stringify(input.tasksCompleted),
36
35
  tasksRemaining: JSON.stringify(input.tasksRemaining),
37
36
  };
38
- insertSnapshot(db, {
37
+ db.insertSnapshot({
39
38
  id: snapshotId,
40
39
  project_id: projectId,
41
40
  sequence_number: seqNum,
@@ -53,7 +52,7 @@ export function registerSyncTool(server, db) {
53
52
  // Also insert decisions as first-class entities
54
53
  if (input.decisions) {
55
54
  for (const d of input.decisions) {
56
- insertDecision(db, {
55
+ db.insertDecision({
57
56
  id: generateId(),
58
57
  project_id: projectId,
59
58
  snapshot_id: snapshotId,
@@ -67,7 +66,7 @@ export function registerSyncTool(server, db) {
67
66
  });
68
67
  }
69
68
  }
70
- updateProjectSyncStats(db, projectId);
69
+ db.updateProjectSyncStats(projectId);
71
70
  return { snapshotId, seqNum };
72
71
  });
73
72
  const { snapshotId, seqNum } = txn();
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/tools/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/tools/sync.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.11",
3
+ "version": "1.0.12",
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",
@@ -42,9 +42,11 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@modelcontextprotocol/sdk": "^1.27.0",
45
- "better-sqlite3": "^11.0.0",
46
45
  "zod": "^3.24.0"
47
46
  },
47
+ "optionalDependencies": {
48
+ "better-sqlite3": "^11.0.0"
49
+ },
48
50
  "devDependencies": {
49
51
  "@types/better-sqlite3": "^7.6.0",
50
52
  "@types/node": "^22.0.0",
@@ -2,53 +2,33 @@
2
2
 
3
3
  /**
4
4
  * postinstall check — verify better-sqlite3 loaded correctly.
5
- * If not, print a clear actionable message instead of letting the user
6
- * discover a broken shim later.
5
+ * If not, inform the user that JSON fallback will be used.
6
+ * The install succeeds either way (better-sqlite3 is optional).
7
7
  */
8
8
 
9
9
  try {
10
10
  require('better-sqlite3');
11
+ console.log(' mcp-context-sync: SQLite storage ready (better-sqlite3 loaded)');
11
12
  } catch (err) {
12
13
  const nodeVersion = process.version;
13
14
  const major = parseInt(nodeVersion.slice(1), 10);
14
15
  const isWin = process.platform === 'win32';
15
16
 
16
- console.error('');
17
- console.error('╔══════════════════════════════════════════════════════════════╗');
18
- console.error(' mcp-context-sync: better-sqlite3 failed to load ║');
19
- console.error('╚══════════════════════════════════════════════════════════════╝');
20
- console.error('');
17
+ console.warn('');
18
+ console.warn(' mcp-context-sync: better-sqlite3 not available — using JSON fallback storage');
19
+ console.warn(' Everything will work, but SQLite is faster and supports full-text search.');
20
+ console.warn('');
21
21
 
22
22
  if (major >= 23 && isWin) {
23
- console.error(` You are running Node ${nodeVersion} on Windows.`);
24
- console.error(' better-sqlite3 does not have prebuilt binaries for this version yet.');
25
- console.error('');
26
- console.error(' Recommended fix:');
27
- console.error(' Use Node 20 or 22 LTS to install:');
28
- console.error('');
29
- console.error(' nvm install 22');
30
- console.error(' nvm use 22');
31
- console.error(' npm install -g mcp-context-sync');
32
- console.error('');
33
- console.error(' Alternative fix:');
34
- console.error(' Install Visual Studio Build Tools with "Desktop development with C++"');
35
- console.error(' https://visualstudio.microsoft.com/visual-cpp-build-tools/');
23
+ console.warn(` Reason: Node ${nodeVersion} on Windows lacks prebuilt binaries.`);
24
+ console.warn(' To enable SQLite: reinstall with Node 20 or 22 LTS.');
36
25
  } else if (isWin) {
37
- console.error(` Node ${nodeVersion} on Windows native compilation may have failed.`);
38
- console.error('');
39
- console.error(' Fix: Install Visual Studio Build Tools with "Desktop development with C++"');
40
- console.error(' https://visualstudio.microsoft.com/visual-cpp-build-tools/');
41
- console.error(' Then retry: npm install -g mcp-context-sync');
26
+ console.warn(' To enable SQLite: install Visual Studio Build Tools with "Desktop development with C++"');
27
+ console.warn(' https://visualstudio.microsoft.com/visual-cpp-build-tools/');
42
28
  } else {
43
- console.error(` Node ${nodeVersion} on ${process.platform}.`);
44
- console.error(' You may need build tools (gcc, make, python3) installed.');
45
- console.error(' Or try Node 20-22 LTS which has prebuilt binaries.');
29
+ console.warn(' To enable SQLite: install build tools (gcc, make, python3) or use Node 20-22 LTS.');
46
30
  }
47
31
 
48
- console.error('');
49
- console.error(` Error: ${err.message}`);
50
- console.error('');
51
-
52
- // Exit with error so npm shows the install failed clearly
53
- process.exit(1);
32
+ console.warn('');
33
+ // Exit 0 — installation is successful with JSON fallback
54
34
  }