agent-recall-core 3.3.27 → 3.4.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.
Files changed (80) hide show
  1. package/README.md +1014 -206
  2. package/dist/digest/store.d.ts.map +1 -1
  3. package/dist/digest/store.js +9 -2
  4. package/dist/digest/store.js.map +1 -1
  5. package/dist/helpers/alignment-patterns.d.ts +8 -0
  6. package/dist/helpers/alignment-patterns.d.ts.map +1 -1
  7. package/dist/helpers/alignment-patterns.js +76 -0
  8. package/dist/helpers/alignment-patterns.js.map +1 -1
  9. package/dist/index.d.ts +11 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +14 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/palace/awareness.d.ts +3 -2
  14. package/dist/palace/awareness.d.ts.map +1 -1
  15. package/dist/palace/awareness.js +16 -10
  16. package/dist/palace/awareness.js.map +1 -1
  17. package/dist/palace/insights-index.d.ts.map +1 -1
  18. package/dist/palace/insights-index.js +28 -0
  19. package/dist/palace/insights-index.js.map +1 -1
  20. package/dist/palace/rooms.d.ts +1 -1
  21. package/dist/palace/rooms.d.ts.map +1 -1
  22. package/dist/palace/rooms.js +28 -3
  23. package/dist/palace/rooms.js.map +1 -1
  24. package/dist/supabase/client.d.ts +9 -0
  25. package/dist/supabase/client.d.ts.map +1 -0
  26. package/dist/supabase/client.js +22 -0
  27. package/dist/supabase/client.js.map +1 -0
  28. package/dist/supabase/config.d.ts +10 -0
  29. package/dist/supabase/config.d.ts.map +1 -0
  30. package/dist/supabase/config.js +45 -0
  31. package/dist/supabase/config.js.map +1 -0
  32. package/dist/supabase/embedding.d.ts +25 -0
  33. package/dist/supabase/embedding.d.ts.map +1 -0
  34. package/dist/supabase/embedding.js +76 -0
  35. package/dist/supabase/embedding.js.map +1 -0
  36. package/dist/supabase/recall-backend.d.ts +21 -0
  37. package/dist/supabase/recall-backend.d.ts.map +1 -0
  38. package/dist/supabase/recall-backend.js +128 -0
  39. package/dist/supabase/recall-backend.js.map +1 -0
  40. package/dist/supabase/sync.d.ts +21 -0
  41. package/dist/supabase/sync.d.ts.map +1 -0
  42. package/dist/supabase/sync.js +158 -0
  43. package/dist/supabase/sync.js.map +1 -0
  44. package/dist/tools-logic/bootstrap.d.ts +63 -0
  45. package/dist/tools-logic/bootstrap.d.ts.map +1 -0
  46. package/dist/tools-logic/bootstrap.js +650 -0
  47. package/dist/tools-logic/bootstrap.js.map +1 -0
  48. package/dist/tools-logic/check.d.ts +13 -0
  49. package/dist/tools-logic/check.d.ts.map +1 -1
  50. package/dist/tools-logic/check.js +55 -1
  51. package/dist/tools-logic/check.js.map +1 -1
  52. package/dist/tools-logic/journal-write.d.ts.map +1 -1
  53. package/dist/tools-logic/journal-write.js +3 -0
  54. package/dist/tools-logic/journal-write.js.map +1 -1
  55. package/dist/tools-logic/palace-search.d.ts.map +1 -1
  56. package/dist/tools-logic/palace-search.js +3 -0
  57. package/dist/tools-logic/palace-search.js.map +1 -1
  58. package/dist/tools-logic/palace-write.d.ts.map +1 -1
  59. package/dist/tools-logic/palace-write.js +4 -0
  60. package/dist/tools-logic/palace-write.js.map +1 -1
  61. package/dist/tools-logic/recall-backend.d.ts +29 -0
  62. package/dist/tools-logic/recall-backend.d.ts.map +1 -0
  63. package/dist/tools-logic/recall-backend.js +58 -0
  64. package/dist/tools-logic/recall-backend.js.map +1 -0
  65. package/dist/tools-logic/session-end.d.ts.map +1 -1
  66. package/dist/tools-logic/session-end.js +4 -1
  67. package/dist/tools-logic/session-end.js.map +1 -1
  68. package/dist/tools-logic/session-start.d.ts +1 -0
  69. package/dist/tools-logic/session-start.d.ts.map +1 -1
  70. package/dist/tools-logic/session-start.js +67 -4
  71. package/dist/tools-logic/session-start.js.map +1 -1
  72. package/dist/tools-logic/smart-recall.d.ts +10 -0
  73. package/dist/tools-logic/smart-recall.d.ts.map +1 -1
  74. package/dist/tools-logic/smart-recall.js +56 -32
  75. package/dist/tools-logic/smart-recall.js.map +1 -1
  76. package/dist/types.d.ts +6 -1
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/types.js +2 -1
  79. package/dist/types.js.map +1 -1
  80. package/package.json +6 -4
@@ -0,0 +1,158 @@
1
+ // packages/core/src/supabase/sync.ts
2
+ import * as crypto from "node:crypto";
3
+ import * as path from "node:path";
4
+ import { getSupabaseClient } from "./client.js";
5
+ import { readSupabaseConfig } from "./config.js";
6
+ import { createEmbeddingProvider } from "./embedding.js";
7
+ // ---------------------------------------------------------------------------
8
+ // Utilities (exported for testing)
9
+ // ---------------------------------------------------------------------------
10
+ export function contentHash(content) {
11
+ return crypto.createHash("sha256").update(content, "utf-8").digest("hex");
12
+ }
13
+ export function parseMemoryFile(content) {
14
+ let body = content;
15
+ let metadata = {};
16
+ // Extract YAML frontmatter
17
+ if (content.startsWith("---")) {
18
+ const endIdx = content.indexOf("---", 3);
19
+ if (endIdx > 0) {
20
+ const fm = content.slice(3, endIdx).trim();
21
+ body = content.slice(endIdx + 3).trim();
22
+ for (const line of fm.split("\n")) {
23
+ const match = line.match(/^(\w+):\s*(.+)/);
24
+ if (match) {
25
+ const val = match[2].trim();
26
+ if (val.startsWith("[")) {
27
+ try {
28
+ metadata[match[1]] = JSON.parse(val);
29
+ }
30
+ catch {
31
+ metadata[match[1]] = val;
32
+ }
33
+ }
34
+ else {
35
+ metadata[match[1]] = val;
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ const titleMatch = body.match(/^#\s+(.+)/m);
42
+ const title = titleMatch ? titleMatch[1].trim() : body.slice(0, 80).trim();
43
+ const tags = Array.isArray(metadata.tags) ? metadata.tags : [];
44
+ return { title, body, tags, metadata };
45
+ }
46
+ export function deriveSlug(filePath) {
47
+ const parts = filePath.split(path.sep);
48
+ const fileName = path.basename(filePath, ".md");
49
+ const journalIdx = parts.indexOf("journal");
50
+ const palaceIdx = parts.indexOf("rooms");
51
+ if (journalIdx >= 0)
52
+ return `journal--${fileName}`;
53
+ if (palaceIdx >= 0) {
54
+ const room = parts[palaceIdx + 1] ?? "unknown";
55
+ return `palace--${room}--${fileName}`;
56
+ }
57
+ return `other--${fileName}`;
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // Sync (fire-and-forget)
61
+ // ---------------------------------------------------------------------------
62
+ let _embeddingProvider = null;
63
+ function getEmbeddingProvider() {
64
+ if (_embeddingProvider)
65
+ return _embeddingProvider;
66
+ const config = readSupabaseConfig();
67
+ if (!config?.embedding_api_key)
68
+ return null;
69
+ _embeddingProvider = createEmbeddingProvider(config.embedding_provider, config.embedding_api_key);
70
+ return _embeddingProvider;
71
+ }
72
+ export function syncToSupabase(filePath, content, project, store, room) {
73
+ setImmediate(() => {
74
+ void doSync(filePath, content, project, store, room);
75
+ });
76
+ }
77
+ async function doSync(filePath, content, project, store, room) {
78
+ try {
79
+ const client = getSupabaseClient();
80
+ if (!client)
81
+ return;
82
+ const hash = contentHash(content);
83
+ const { data: existing } = await client
84
+ .from("ar_sync_state")
85
+ .select("file_hash")
86
+ .eq("file_path", filePath)
87
+ .single();
88
+ if (existing?.file_hash === hash)
89
+ return;
90
+ const parsed = parseMemoryFile(content);
91
+ const slug = deriveSlug(filePath);
92
+ const { data: entry, error: upsertErr } = await client
93
+ .from("ar_entries")
94
+ .upsert({
95
+ project,
96
+ store,
97
+ room: room ?? null,
98
+ slug,
99
+ title: parsed.title,
100
+ body: parsed.body,
101
+ tags: parsed.tags,
102
+ metadata: parsed.metadata,
103
+ file_path: filePath,
104
+ file_hash: hash,
105
+ updated_at: new Date().toISOString(),
106
+ }, { onConflict: "project,store,slug" })
107
+ .select("id")
108
+ .single();
109
+ if (upsertErr || !entry)
110
+ return;
111
+ const provider = getEmbeddingProvider();
112
+ if (provider) {
113
+ const textForEmbedding = (parsed.title + " " + parsed.body).slice(0, 8000);
114
+ const embedding = await provider.embed(textForEmbedding);
115
+ await client
116
+ .from("ar_entries")
117
+ .update({ embedding })
118
+ .eq("id", entry.id);
119
+ }
120
+ await client.from("ar_sync_state").upsert({
121
+ file_path: filePath,
122
+ file_hash: hash,
123
+ entry_id: entry.id,
124
+ status: provider ? "embedded" : "synced",
125
+ synced_at: new Date().toISOString(),
126
+ });
127
+ }
128
+ catch {
129
+ // Silent failure — local files are source of truth
130
+ }
131
+ }
132
+ export async function backfill(project, files) {
133
+ const client = getSupabaseClient();
134
+ if (!client)
135
+ return { synced: 0, skipped: 0, failed: 0 };
136
+ let synced = 0, skipped = 0, failed = 0;
137
+ for (const file of files) {
138
+ try {
139
+ const hash = contentHash(file.content);
140
+ const { data: existing } = await client
141
+ .from("ar_sync_state")
142
+ .select("file_hash")
143
+ .eq("file_path", file.path)
144
+ .single();
145
+ if (existing?.file_hash === hash) {
146
+ skipped++;
147
+ continue;
148
+ }
149
+ await doSync(file.path, file.content, project, file.store, file.room);
150
+ synced++;
151
+ }
152
+ catch {
153
+ failed++;
154
+ }
155
+ }
156
+ return { synced, skipped, failed };
157
+ }
158
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/supabase/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Bootstrap — Layered Scan + Selective Import Architecture
3
+ *
4
+ * bootstrapScan() — discovers everything available on the machine (read-only)
5
+ * bootstrapImport() — imports selected items into ~/.agent-recall/
6
+ *
7
+ * This gives the orchestrator/CLI/MCP full control over what gets imported.
8
+ */
9
+ export interface DiscoveredProject {
10
+ slug: string;
11
+ name: string;
12
+ path: string;
13
+ sources: Array<{
14
+ type: "git" | "claude-memory" | "claudemd" | "package-json";
15
+ path: string;
16
+ detail: string;
17
+ }>;
18
+ description?: string;
19
+ language?: string;
20
+ last_activity?: string;
21
+ already_in_ar: boolean;
22
+ importable_items: ImportableItem[];
23
+ }
24
+ export interface ImportableItem {
25
+ id: string;
26
+ type: "identity" | "memory" | "architecture" | "trajectory";
27
+ source_path: string;
28
+ size_bytes: number;
29
+ preview: string;
30
+ }
31
+ export interface BootstrapScanResult {
32
+ projects: DiscoveredProject[];
33
+ global_items: ImportableItem[];
34
+ stats: {
35
+ total_projects: number;
36
+ total_importable_items: number;
37
+ total_already_in_ar: number;
38
+ scan_duration_ms: number;
39
+ };
40
+ }
41
+ export interface ImportSelection {
42
+ project_slugs?: string[];
43
+ item_types?: string[];
44
+ skip_items?: string[];
45
+ include_global?: boolean;
46
+ }
47
+ export interface ImportResult {
48
+ projects_created: number;
49
+ items_imported: number;
50
+ items_skipped: number;
51
+ errors: Array<{
52
+ project: string;
53
+ item: string;
54
+ error: string;
55
+ }>;
56
+ duration_ms: number;
57
+ }
58
+ export declare function bootstrapScan(options?: {
59
+ scan_dirs?: string[];
60
+ max_depth?: number;
61
+ }): Promise<BootstrapScanResult>;
62
+ export declare function bootstrapImport(scan: BootstrapScanResult, selection?: ImportSelection): Promise<ImportResult>;
63
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/tools-logic/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoBH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,KAAK,GAAG,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;QAC5D,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,cAAc,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,KAAK,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;AA0ND,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA4P/B;AAMD,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,YAAY,CAAC,CAgLvB"}