@brain-protocol/mcp 0.4.1 → 0.5.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/dist/cli.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const VERSION = "0.4.1";
2
- export declare const HELP_TEXT = "brain-protocol MCP server v0.4.1\nVerifiable Memory for AI Agents\n\nUsage:\n npx @brain-protocol/mcp [options]\n\nOptions:\n --help Show this help message\n --version Show version number\n --db-path Override SQLite database path (default: XDG data dir)\n --cloud Cloud API URL (alternative to BRAIN_API_URL env)\n --api-key API key for cloud mode (alternative to BRAIN_API_KEY env)\n --setup Print IDE config (claude-desktop, cursor, claude-code, snak, windsurf)\n --check Health check: show mode, entry count, and exit\n\nEnvironment variables:\n BRAIN_API_URL Cloud mode API URL (e.g., https://brain.api.vauban.tech)\n BRAIN_API_KEY API key for cloud mode authentication\n BRAIN_DB_PATH Override SQLite database path\n\nExamples:\n # Local mode (default)\n npx @brain-protocol/mcp\n\n # Cloud mode\n npx @brain-protocol/mcp --cloud https://brain.api.vauban.tech --api-key xxx\n\n # Custom database path\n npx @brain-protocol/mcp --db-path ./my-brain.db\n\n # Print config for your IDE\n npx @brain-protocol/mcp --setup claude-desktop\n\n # Quick health check\n npx @brain-protocol/mcp --check\n";
2
+ export declare const HELP_TEXT = "brain-protocol MCP server v0.4.1\nVerifiable Memory for AI Agents\n\nUsage:\n npx @brain-protocol/mcp [options]\n\nOptions:\n --help Show this help message\n --version Show version number\n --db-path Override SQLite database path (default: XDG data dir)\n --cloud Cloud API URL (alternative to BRAIN_API_URL env)\n --api-key API key for cloud mode (alternative to BRAIN_API_KEY env)\n --setup Print IDE config (claude-desktop, cursor, claude-code, snak, windsurf)\n --sync Hybrid mode: local SQLite + cloud sync\n --check Health check: show mode, entry count, and exit\n\nEnvironment variables:\n BRAIN_API_URL Cloud mode API URL (e.g., https://brain.api.vauban.tech)\n BRAIN_API_KEY API key for cloud mode authentication\n BRAIN_DB_PATH Override SQLite database path\n BRAIN_SYNC Enable hybrid sync mode (true/false)\n BRAIN_SYNC_INTERVAL Sync interval in seconds (default 60)\n\nExamples:\n # Local mode (default)\n npx @brain-protocol/mcp\n\n # Cloud mode\n npx @brain-protocol/mcp --cloud https://brain.api.vauban.tech --api-key xxx\n\n # Hybrid mode (local + cloud sync)\n npx @brain-protocol/mcp --sync --cloud https://brain.api.vauban.tech --api-key xxx\n\n # Custom database path\n npx @brain-protocol/mcp --db-path ./my-brain.db\n\n # Print config for your IDE\n npx @brain-protocol/mcp --setup claude-desktop\n\n # Quick health check\n npx @brain-protocol/mcp --check\n";
3
3
  export interface CliArgs {
4
4
  help: boolean;
5
5
  version: boolean;
@@ -8,6 +8,7 @@ export interface CliArgs {
8
8
  apiKey?: string;
9
9
  setup?: string;
10
10
  check: boolean;
11
+ sync: boolean;
11
12
  }
12
13
  export declare function parseArgs(argv: string[]): CliArgs;
13
14
  export declare const VALID_SETUP_TARGETS: string[];
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,SAAS,0oCAmCrB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAiCjD;AA0DD,eAAO,MAAM,mBAAmB,UAA6B,CAAC;AAE9D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAajD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,SAAS,s7CAyCrB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAoCjD;AA0DD,eAAO,MAAM,mBAAmB,UAA6B,CAAC;AAE9D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAajD"}
package/dist/cli.js CHANGED
@@ -12,12 +12,15 @@ Options:
12
12
  --cloud Cloud API URL (alternative to BRAIN_API_URL env)
13
13
  --api-key API key for cloud mode (alternative to BRAIN_API_KEY env)
14
14
  --setup Print IDE config (claude-desktop, cursor, claude-code, snak, windsurf)
15
+ --sync Hybrid mode: local SQLite + cloud sync
15
16
  --check Health check: show mode, entry count, and exit
16
17
 
17
18
  Environment variables:
18
19
  BRAIN_API_URL Cloud mode API URL (e.g., https://brain.api.vauban.tech)
19
20
  BRAIN_API_KEY API key for cloud mode authentication
20
21
  BRAIN_DB_PATH Override SQLite database path
22
+ BRAIN_SYNC Enable hybrid sync mode (true/false)
23
+ BRAIN_SYNC_INTERVAL Sync interval in seconds (default 60)
21
24
 
22
25
  Examples:
23
26
  # Local mode (default)
@@ -26,6 +29,9 @@ Examples:
26
29
  # Cloud mode
27
30
  npx @brain-protocol/mcp --cloud https://brain.api.vauban.tech --api-key xxx
28
31
 
32
+ # Hybrid mode (local + cloud sync)
33
+ npx @brain-protocol/mcp --sync --cloud https://brain.api.vauban.tech --api-key xxx
34
+
29
35
  # Custom database path
30
36
  npx @brain-protocol/mcp --db-path ./my-brain.db
31
37
 
@@ -36,7 +42,7 @@ Examples:
36
42
  npx @brain-protocol/mcp --check
37
43
  `;
38
44
  export function parseArgs(argv) {
39
- const args = { help: false, version: false, check: false };
45
+ const args = { help: false, version: false, check: false, sync: false };
40
46
  for (let i = 0; i < argv.length; i++) {
41
47
  const arg = argv[i];
42
48
  switch (arg) {
@@ -60,6 +66,9 @@ export function parseArgs(argv) {
60
66
  case "--setup":
61
67
  args.setup = argv[++i];
62
68
  break;
69
+ case "--sync":
70
+ args.sync = true;
71
+ break;
63
72
  case "--check":
64
73
  args.check = true;
65
74
  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":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,MAAM,CAAC,MAAM,SAAS,GAAG,8BAA8B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC7D,CAAC;AAaF,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,IAAI,GAAY,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAEjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,IAAI;gBACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,aAAa,GAAqD;IACtE,gBAAgB,EAAE;QAChB,IAAI,EAAE,iEAAiE;QACvE,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,CAAC,qBAAqB,CAAC;iBAC9B;aACF;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,CAAC,qBAAqB,CAAC;iBAC9B;aACF;SACF;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,CAAC,qBAAqB,CAAC;iBAC9B;aACF;SACF;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,6CAA6C;QACnD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,qBAAqB,CAAC;aAC9B;SACF;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qCAAqC;QAC3C,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,CAAC,qBAAqB,CAAC;iBAC9B;aACF;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAE9D,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,mBAAmB,MAAM,oBAAoB,KAAK,IAAI,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,yBAAyB,OAAO,MAAM,MAAM;YACzC,KAAK,CAAC,IAAI;;EAEpB,IAAI;CACL,CAAC;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,9 +2,12 @@
2
2
  export { createMCPServer } from "./server.js";
3
3
  export { SQLiteStore } from "./store/sqlite.js";
4
4
  export { CloudStore } from "./store/cloud.js";
5
+ export { HybridStore } from "./store/hybrid.js";
5
6
  export type { CloudStoreOptions } from "./store/cloud.js";
6
7
  export { CircuitBreaker, CircuitOpenError } from "./store/circuit-breaker.js";
7
8
  export type { CircuitBreakerConfig, CircuitState } from "./store/circuit-breaker.js";
9
+ export { SyncEngine } from "./store/sync.js";
10
+ export type { SyncState, SyncResult, SyncConflict, ConflictResolution } from "./store/sync.js";
8
11
  export { parseArgs, VERSION, printSetup } from "./cli.js";
9
12
  export type { CliArgs } from "./cli.js";
10
13
  export type { StoreAdapter } from "./store/adapter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA4FA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAyGA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,mBAAmB,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -3,14 +3,26 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
3
3
  import { VERSION, HELP_TEXT, parseArgs, printSetup } from "./cli.js";
4
4
  import { createMCPServer } from "./server.js";
5
5
  import { CloudStore } from "./store/cloud.js";
6
+ import { HybridStore } from "./store/hybrid.js";
6
7
  import { SQLiteStore } from "./store/sqlite.js";
7
8
  import { getDbPath } from "./store/paths.js";
8
9
  function createStore(args) {
9
10
  const apiUrl = args.cloud || process.env.BRAIN_API_URL;
11
+ const syncEnabled = args.sync || process.env.BRAIN_SYNC === "true";
12
+ // Hybrid mode: local SQLite + cloud sync
13
+ if (syncEnabled && apiUrl) {
14
+ const apiKey = args.apiKey || process.env.BRAIN_API_KEY;
15
+ const local = new SQLiteStore(args.dbPath);
16
+ const cloud = new CloudStore(apiUrl, apiKey);
17
+ const syncInterval = Number(process.env.BRAIN_SYNC_INTERVAL) || 60;
18
+ return new HybridStore(local, cloud, syncInterval * 1000);
19
+ }
20
+ // Cloud-only mode
10
21
  if (apiUrl) {
11
22
  const apiKey = args.apiKey || process.env.BRAIN_API_KEY;
12
23
  return new CloudStore(apiUrl, apiKey);
13
24
  }
25
+ // Local-only mode
14
26
  if (args.dbPath) {
15
27
  return new SQLiteStore(args.dbPath);
16
28
  }
@@ -72,6 +84,8 @@ main().catch((err) => {
72
84
  export { createMCPServer } from "./server.js";
73
85
  export { SQLiteStore } from "./store/sqlite.js";
74
86
  export { CloudStore } from "./store/cloud.js";
87
+ export { HybridStore } from "./store/hybrid.js";
75
88
  export { CircuitBreaker, CircuitOpenError } from "./store/circuit-breaker.js";
89
+ export { SyncEngine } from "./store/sync.js";
76
90
  export { parseArgs, VERSION, printSetup } from "./cli.js";
77
91
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { ArchiveStats, BulkArchiveInput, BulkArchiveResult, CreateEdgeInput, CreateEntryInput, ExportData, GizaProofInput, GizaProofQueryOptions, GraphResult, KnowledgeEdge, KnowledgeEntry, ProveResult, QueryOptions, StoreStats, VerifyResult } from "../types.js";
2
+ import type { StoreAdapter } from "./adapter.js";
3
+ import type { CloudStore } from "./cloud.js";
4
+ import type { SQLiteStore } from "./sqlite.js";
5
+ import { type SyncResult, type SyncState, type ConflictResolution } from "./sync.js";
6
+ /**
7
+ * Hybrid store: reads from local SQLite (fast, offline-capable),
8
+ * writes to local + queues cloud push via background sync loop.
9
+ *
10
+ * Implements StoreAdapter so it can be used as a drop-in replacement.
11
+ */
12
+ export declare class HybridStore implements StoreAdapter {
13
+ private local;
14
+ private cloud;
15
+ private syncIntervalMs;
16
+ readonly mode: "local";
17
+ private syncEngine;
18
+ private syncTimer;
19
+ private syncing;
20
+ private lastSyncResult;
21
+ constructor(local: SQLiteStore, cloud: CloudStore, syncIntervalMs?: number);
22
+ initialize(): Promise<void>;
23
+ close(): Promise<void>;
24
+ private startSyncLoop;
25
+ private stopSyncLoop;
26
+ /** Run a sync cycle (debounced — skips if already syncing) */
27
+ runSync(): Promise<SyncResult>;
28
+ /** Get sync status for the sync_status MCP tool */
29
+ getSyncState(): SyncState;
30
+ /** Resolve a conflict via the sync engine */
31
+ resolveConflict(entryId: string, resolution: ConflictResolution): Promise<{
32
+ resolved: boolean;
33
+ kept: string[];
34
+ }>;
35
+ query(options: QueryOptions): Promise<{
36
+ entries: KnowledgeEntry[];
37
+ total: number;
38
+ }>;
39
+ create(input: CreateEntryInput): Promise<KnowledgeEntry>;
40
+ getById(id: string): Promise<KnowledgeEntry | null>;
41
+ update(id: string, input: Partial<CreateEntryInput>): Promise<KnowledgeEntry | null>;
42
+ delete(id: string): Promise<boolean>;
43
+ createEdge(input: CreateEdgeInput): Promise<KnowledgeEdge>;
44
+ traverseGraph(entryId: string, depth: number): Promise<GraphResult>;
45
+ getStats(): Promise<StoreStats>;
46
+ exportAll(): Promise<ExportData>;
47
+ importData(data: ExportData): Promise<{
48
+ imported: number;
49
+ }>;
50
+ prove(entryId: string): Promise<ProveResult>;
51
+ verify(entryId: string): Promise<VerifyResult>;
52
+ getAgentStats(): Promise<unknown>;
53
+ logAgentTask(task: Record<string, unknown>): Promise<unknown>;
54
+ getUsage(days?: number): Promise<unknown>;
55
+ bulkArchive(input: BulkArchiveInput): Promise<BulkArchiveResult>;
56
+ getArchiveStats(): Promise<ArchiveStats>;
57
+ archiveGizaProof(input: GizaProofInput): Promise<KnowledgeEntry>;
58
+ queryGizaProofs(options: GizaProofQueryOptions): Promise<{
59
+ entries: KnowledgeEntry[];
60
+ total: number;
61
+ }>;
62
+ linkProofToEntry(proofEntryId: string, targetEntryId: string, edgeType?: string): Promise<KnowledgeEdge>;
63
+ }
64
+ //# sourceMappingURL=hybrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/store/hybrid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import { SyncEngine } from "./sync.js";
2
+ const DEFAULT_SYNC_INTERVAL_MS = 60_000;
3
+ /**
4
+ * Hybrid store: reads from local SQLite (fast, offline-capable),
5
+ * writes to local + queues cloud push via background sync loop.
6
+ *
7
+ * Implements StoreAdapter so it can be used as a drop-in replacement.
8
+ */
9
+ export class HybridStore {
10
+ local;
11
+ cloud;
12
+ syncIntervalMs;
13
+ mode = "local"; // Reads are local
14
+ syncEngine;
15
+ syncTimer = null;
16
+ syncing = false;
17
+ lastSyncResult = null;
18
+ constructor(local, cloud, syncIntervalMs = DEFAULT_SYNC_INTERVAL_MS) {
19
+ this.local = local;
20
+ this.cloud = cloud;
21
+ this.syncIntervalMs = syncIntervalMs;
22
+ this.syncEngine = new SyncEngine(local, cloud);
23
+ }
24
+ async initialize() {
25
+ await this.local.initialize();
26
+ // Try to initialize cloud — if it fails, continue in local-only mode
27
+ try {
28
+ await this.cloud.initialize();
29
+ }
30
+ catch {
31
+ // Cloud unavailable — will retry on next sync cycle
32
+ }
33
+ // Start background sync loop
34
+ this.startSyncLoop();
35
+ }
36
+ async close() {
37
+ this.stopSyncLoop();
38
+ await this.local.close();
39
+ await this.cloud.close();
40
+ }
41
+ startSyncLoop() {
42
+ if (this.syncTimer)
43
+ return;
44
+ this.syncTimer = setInterval(() => {
45
+ this.runSync().catch(() => {
46
+ // Sync errors are non-fatal — logged in result
47
+ });
48
+ }, this.syncIntervalMs);
49
+ }
50
+ stopSyncLoop() {
51
+ if (this.syncTimer) {
52
+ clearInterval(this.syncTimer);
53
+ this.syncTimer = null;
54
+ }
55
+ }
56
+ /** Run a sync cycle (debounced — skips if already syncing) */
57
+ async runSync() {
58
+ if (this.syncing) {
59
+ return this.lastSyncResult ?? { uploaded: 0, downloaded: 0, conflicts: 0, errors: ["Sync already in progress"], integrityErrors: [] };
60
+ }
61
+ this.syncing = true;
62
+ try {
63
+ const result = await this.syncEngine.sync();
64
+ this.lastSyncResult = result;
65
+ return result;
66
+ }
67
+ finally {
68
+ this.syncing = false;
69
+ }
70
+ }
71
+ /** Get sync status for the sync_status MCP tool */
72
+ getSyncState() {
73
+ const localStats = this.local.getSyncStats();
74
+ const conflicts = this.local.getConflicts();
75
+ return {
76
+ mode: "hybrid",
77
+ pendingUploads: localStats.pendingUploads,
78
+ pendingDownloads: 0, // Unknown until next sync
79
+ lastSyncAt: localStats.lastSyncAt,
80
+ conflicts: conflicts.map((c) => ({
81
+ entryId: c.id,
82
+ localUpdatedAt: c.updated_at,
83
+ cloudUpdatedAt: c.metadata?._sync_cloud_updated_at ?? c.created_at,
84
+ resolvedAt: null,
85
+ })),
86
+ stats: this.syncEngine.getStats(),
87
+ };
88
+ }
89
+ /** Resolve a conflict via the sync engine */
90
+ async resolveConflict(entryId, resolution) {
91
+ return this.syncEngine.resolveConflict(entryId, resolution);
92
+ }
93
+ // --- StoreAdapter methods — delegate to local ---
94
+ async query(options) {
95
+ return this.local.query(options);
96
+ }
97
+ async create(input) {
98
+ // Write to local (sync will push to cloud)
99
+ return this.local.create(input);
100
+ }
101
+ async getById(id) {
102
+ return this.local.getById(id);
103
+ }
104
+ async update(id, input) {
105
+ return this.local.update(id, input);
106
+ }
107
+ async delete(id) {
108
+ return this.local.delete(id);
109
+ }
110
+ async createEdge(input) {
111
+ return this.local.createEdge(input);
112
+ }
113
+ async traverseGraph(entryId, depth) {
114
+ return this.local.traverseGraph(entryId, depth);
115
+ }
116
+ async getStats() {
117
+ return this.local.getStats();
118
+ }
119
+ async exportAll() {
120
+ return this.local.exportAll();
121
+ }
122
+ async importData(data) {
123
+ return this.local.importData(data);
124
+ }
125
+ // Proof operations — delegate to cloud if available
126
+ async prove(entryId) {
127
+ if (this.cloud.prove) {
128
+ return this.cloud.prove(entryId);
129
+ }
130
+ throw new Error("Prove requires cloud mode");
131
+ }
132
+ async verify(entryId) {
133
+ if (this.cloud.verify) {
134
+ return this.cloud.verify(entryId);
135
+ }
136
+ throw new Error("Verify requires cloud mode");
137
+ }
138
+ // Cloud-delegated optional operations
139
+ async getAgentStats() {
140
+ return this.cloud.getAgentStats?.() ?? { error: "Cloud unavailable" };
141
+ }
142
+ async logAgentTask(task) {
143
+ return this.cloud.logAgentTask?.(task) ?? { error: "Cloud unavailable" };
144
+ }
145
+ async getUsage(days) {
146
+ return this.cloud.getUsage?.(days) ?? { error: "Cloud unavailable" };
147
+ }
148
+ async bulkArchive(input) {
149
+ if (this.cloud.bulkArchive)
150
+ return this.cloud.bulkArchive(input);
151
+ throw new Error("Bulk archive requires cloud mode");
152
+ }
153
+ async getArchiveStats() {
154
+ if (this.cloud.getArchiveStats)
155
+ return this.cloud.getArchiveStats();
156
+ throw new Error("Archive stats requires cloud mode");
157
+ }
158
+ // Giza — local
159
+ async archiveGizaProof(input) {
160
+ return this.local.archiveGizaProof(input);
161
+ }
162
+ async queryGizaProofs(options) {
163
+ return this.local.queryGizaProofs(options);
164
+ }
165
+ async linkProofToEntry(proofEntryId, targetEntryId, edgeType) {
166
+ return this.local.linkProofToEntry(proofEntryId, targetEntryId, edgeType);
167
+ }
168
+ }
169
+ //# sourceMappingURL=hybrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../src/store/hybrid.ts"],"names":[],"mappings":"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"}
@@ -36,5 +36,18 @@ export declare class SQLiteStore implements StoreAdapter {
36
36
  total: number;
37
37
  }>;
38
38
  linkProofToEntry(proofEntryId: string, targetEntryId: string, edgeType?: string): Promise<KnowledgeEdge>;
39
+ /** Mark entry as synced */
40
+ markSynced(entryId: string): void;
41
+ /** Get entries pending sync */
42
+ getPendingSync(limit?: number): KnowledgeEntry[];
43
+ /** Get sync statistics */
44
+ getSyncStats(): {
45
+ pendingUploads: number;
46
+ lastSyncAt: string | null;
47
+ };
48
+ /** Log a sync action */
49
+ logSyncAction(entryId: string, action: string, error?: string): void;
50
+ /** Get conflicts (entries with sync-conflict tag) */
51
+ getConflicts(): KnowledgeEntry[];
39
52
  }
40
53
  //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,qBAAqB,EAErB,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,EACX,MAAM,aAAa,CAAC;AA+GrB,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlD;AAoCD,qBAAa,WAAY,YAAW,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,OAAO,CAAC,KAAK;IAKb,mEAAmE;IACnE,OAAO,CAAC,aAAa;IAkFrB,qDAAqD;IACrD,OAAO,CAAC,eAAe;IASvB,gBAAgB,IAAI,MAAM;IAYpB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA+EnF,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IA6BxD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAMnD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA8DpF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpC,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAe1D,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0EnE,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IA4B/B,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAchC,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAoD3D,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IA+BhE,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAiCtG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,SAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAQpH"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,qBAAqB,EAErB,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,EACX,MAAM,aAAa,CAAC;AAoIrB,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlD;AAoCD,qBAAa,WAAY,YAAW,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,OAAO,CAAC,KAAK;IAKb,mEAAmE;IACnE,OAAO,CAAC,aAAa;IAkFrB,qDAAqD;IACrD,OAAO,CAAC,eAAe;IASvB,gBAAgB,IAAI,MAAM;IAYpB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA+EnF,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IA6BxD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAMnD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA8DpF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpC,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAe1D,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0EnE,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IA4B/B,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAchC,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAoD3D,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IA+BhE,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAiCtG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,SAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAWnH,2BAA2B;IAC3B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOjC,+BAA+B;IAC/B,cAAc,CAAC,KAAK,SAAM,GAAG,cAAc,EAAE;IAU7C,0BAA0B;IAC1B,YAAY,IAAI;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAerE,wBAAwB;IACxB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQpE,qDAAqD;IACrD,YAAY,IAAI,cAAc,EAAE;CASjC"}
@@ -92,11 +92,30 @@ CREATE TRIGGER IF NOT EXISTS ke_au AFTER UPDATE ON knowledge_entries BEGIN
92
92
  VALUES (new.rowid, new.content, new.tags, new.category, new.author);
93
93
  END;
94
94
  `;
95
- const CURRENT_SCHEMA_VERSION = 2;
95
+ // --- Migration v2→v3: add sync columns + sync_log table ---
96
+ const MIGRATION_V3 = `
97
+ ALTER TABLE knowledge_entries ADD COLUMN last_synced_at TEXT;
98
+ ALTER TABLE knowledge_entries ADD COLUMN sync_status TEXT DEFAULT 'pending';
99
+ `;
100
+ const SYNC_LOG_TABLE = `
101
+ CREATE TABLE IF NOT EXISTS sync_log (
102
+ id TEXT PRIMARY KEY,
103
+ entry_id TEXT NOT NULL,
104
+ action TEXT NOT NULL,
105
+ timestamp TEXT NOT NULL DEFAULT (datetime('now')),
106
+ error TEXT
107
+ );
108
+ CREATE INDEX IF NOT EXISTS idx_sync_log_entry ON sync_log(entry_id);
109
+ CREATE INDEX IF NOT EXISTS idx_sync_log_ts ON sync_log(timestamp DESC);
110
+ `;
111
+ const CURRENT_SCHEMA_VERSION = 3;
96
112
  const MIGRATIONS = [
97
113
  { version: 2, sql: MIGRATION_V2, postMigrate: (db) => {
98
114
  db.exec(FTS_V2_REBUILD);
99
115
  } },
116
+ { version: 3, sql: MIGRATION_V3, postMigrate: (db) => {
117
+ db.exec(SYNC_LOG_TABLE);
118
+ } },
100
119
  ];
101
120
  /** Sanitize user query for FTS5 MATCH — strip operators, quote each term */
102
121
  export function sanitizeFtsQuery(q) {
@@ -611,5 +630,44 @@ export class SQLiteStore {
611
630
  confidence: 0.95,
612
631
  });
613
632
  }
633
+ // --- Sync support methods ---
634
+ /** Mark entry as synced */
635
+ markSynced(entryId) {
636
+ const db = this.getDb();
637
+ db.prepare("UPDATE knowledge_entries SET last_synced_at = datetime('now'), sync_status = 'synced' WHERE id = ?").run(entryId);
638
+ }
639
+ /** Get entries pending sync */
640
+ getPendingSync(limit = 100) {
641
+ const db = this.getDb();
642
+ const rows = db
643
+ .prepare("SELECT * FROM knowledge_entries WHERE sync_status = 'pending' OR sync_status IS NULL ORDER BY updated_at ASC LIMIT ?")
644
+ .all(limit);
645
+ return rows.map(parseEntry);
646
+ }
647
+ /** Get sync statistics */
648
+ getSyncStats() {
649
+ const db = this.getDb();
650
+ const pending = db
651
+ .prepare("SELECT COUNT(*) as count FROM knowledge_entries WHERE sync_status = 'pending' OR sync_status IS NULL")
652
+ .get();
653
+ const lastSync = db
654
+ .prepare("SELECT MAX(last_synced_at) as last_synced FROM knowledge_entries WHERE last_synced_at IS NOT NULL")
655
+ .get();
656
+ return { pendingUploads: pending.count, lastSyncAt: lastSync.last_synced };
657
+ }
658
+ /** Log a sync action */
659
+ logSyncAction(entryId, action, error) {
660
+ const db = this.getDb();
661
+ const id = randomUUID();
662
+ db.prepare("INSERT INTO sync_log (id, entry_id, action, error) VALUES (?, ?, ?, ?)").run(id, entryId, action, error ?? null);
663
+ }
664
+ /** Get conflicts (entries with sync-conflict tag) */
665
+ getConflicts() {
666
+ const db = this.getDb();
667
+ const rows = db
668
+ .prepare("SELECT * FROM knowledge_entries WHERE tags LIKE '%sync-conflict%' ORDER BY created_at DESC")
669
+ .all();
670
+ return rows.map(parseEntry);
671
+ }
614
672
  }
615
673
  //# sourceMappingURL=sqlite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}