@withone/mem 0.1.0 → 0.2.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.js +157 -5
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +40 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +228 -3
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +3 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +219 -1
- package/dist/schema.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -33,7 +33,7 @@ import { dirname, join } from "path";
|
|
|
33
33
|
import { fileURLToPath } from "url";
|
|
34
34
|
const __filename = fileURLToPath(import.meta.url);
|
|
35
35
|
const __dirname = dirname(__filename);
|
|
36
|
-
import { add, get, list, update, remove, link, unlink, linked, search, context, archive, unarchive, flush, weight, } from "./client.js";
|
|
36
|
+
import { add, get, list, update, remove, link, unlink, linked, search, context, archive, unarchive, flush, weight, addExternalRef, findByExternalRef, listExternalRefs, findByKey, upsertByKeys, addKeys, removeKeys, } from "./client.js";
|
|
37
37
|
import { SCHEMA_VERSION, getMigrationSQL } from "./schema.js";
|
|
38
38
|
const program = new Command();
|
|
39
39
|
program
|
|
@@ -46,20 +46,33 @@ program
|
|
|
46
46
|
program
|
|
47
47
|
.command("add <type> <json>")
|
|
48
48
|
.description("Add a new memory")
|
|
49
|
-
.
|
|
49
|
+
.option("-k, --keys <keys>", "Comma-separated identity keys")
|
|
50
|
+
.action(async (type, jsonStr, options) => {
|
|
50
51
|
try {
|
|
51
52
|
const data = JSON.parse(jsonStr);
|
|
52
53
|
const tags = data.tags;
|
|
53
54
|
const weightVal = data.weight;
|
|
55
|
+
const dataKeys = data.keys;
|
|
54
56
|
delete data.tags;
|
|
55
57
|
delete data.weight;
|
|
56
|
-
|
|
58
|
+
delete data.keys;
|
|
59
|
+
// Merge keys from --keys flag and data.keys
|
|
60
|
+
let keys;
|
|
61
|
+
if (options.keys) {
|
|
62
|
+
keys = options.keys.split(",").map((k) => k.trim());
|
|
63
|
+
}
|
|
64
|
+
if (Array.isArray(dataKeys)) {
|
|
65
|
+
keys = [...(keys || []), ...dataKeys];
|
|
66
|
+
}
|
|
67
|
+
const result = await add(type, data, { tags, keys, weight: weightVal });
|
|
57
68
|
if (result) {
|
|
58
69
|
const name = data.content?.slice(0, 50) || data.topic || data.title || result.id;
|
|
59
70
|
console.log(`Added ${type}: ${name}`);
|
|
60
71
|
console.log(`ID: ${result.id}`);
|
|
61
72
|
if (weightVal)
|
|
62
73
|
console.log(`Weight: ${weightVal}`);
|
|
74
|
+
if (keys?.length)
|
|
75
|
+
console.log(`Keys: ${keys.join(", ")}`);
|
|
63
76
|
}
|
|
64
77
|
else {
|
|
65
78
|
console.error("Failed to add memory");
|
|
@@ -73,10 +86,22 @@ program
|
|
|
73
86
|
});
|
|
74
87
|
program
|
|
75
88
|
.command("get <id>")
|
|
76
|
-
.description("Get a memory by ID")
|
|
89
|
+
.description("Get a memory by ID or key")
|
|
77
90
|
.option("--with-links", "Include linked records")
|
|
78
91
|
.action(async (id, options) => {
|
|
79
|
-
|
|
92
|
+
// Auto-detect: UUID starts with 8 hex chars followed by a dash
|
|
93
|
+
const isUuid = /^[0-9a-f]{8}-/.test(id);
|
|
94
|
+
let result;
|
|
95
|
+
if (isUuid) {
|
|
96
|
+
result = await get(id, options.withLinks);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// Treat as a key
|
|
100
|
+
result = await findByKey(id);
|
|
101
|
+
if (result && options.withLinks) {
|
|
102
|
+
result = await get(result.id, true);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
80
105
|
if (result) {
|
|
81
106
|
console.log(JSON.stringify(result, null, 2));
|
|
82
107
|
}
|
|
@@ -141,6 +166,74 @@ program
|
|
|
141
166
|
}
|
|
142
167
|
});
|
|
143
168
|
// =============================================================================
|
|
169
|
+
// Key-Based Commands
|
|
170
|
+
// =============================================================================
|
|
171
|
+
program
|
|
172
|
+
.command("upsert <type> <json>")
|
|
173
|
+
.description("Upsert a memory by keys (insert or update)")
|
|
174
|
+
.option("-k, --keys <keys>", "Comma-separated identity keys (required)")
|
|
175
|
+
.action(async (type, jsonStr, options) => {
|
|
176
|
+
try {
|
|
177
|
+
const data = JSON.parse(jsonStr);
|
|
178
|
+
const tags = data.tags;
|
|
179
|
+
const weightVal = data.weight;
|
|
180
|
+
const dataKeys = data.keys;
|
|
181
|
+
delete data.tags;
|
|
182
|
+
delete data.weight;
|
|
183
|
+
delete data.keys;
|
|
184
|
+
let keys = [];
|
|
185
|
+
if (options.keys) {
|
|
186
|
+
keys.push(...options.keys.split(",").map((k) => k.trim()));
|
|
187
|
+
}
|
|
188
|
+
if (Array.isArray(dataKeys)) {
|
|
189
|
+
keys.push(...dataKeys);
|
|
190
|
+
}
|
|
191
|
+
if (keys.length === 0) {
|
|
192
|
+
console.error("Keys required. Use --keys or include keys in JSON.");
|
|
193
|
+
process.exit(1);
|
|
194
|
+
}
|
|
195
|
+
const result = await upsertByKeys(type, data, keys, { tags, weight: weightVal });
|
|
196
|
+
if (result) {
|
|
197
|
+
const name = data.content?.slice(0, 50) || data.topic || data.title || result.record.id;
|
|
198
|
+
console.log(`${result.action === "inserted" ? "Inserted" : "Updated"} ${type}: ${name}`);
|
|
199
|
+
console.log(`ID: ${result.record.id}`);
|
|
200
|
+
console.log(`Action: ${result.action}`);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
console.error("Failed to upsert memory");
|
|
204
|
+
process.exit(1);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
console.error("Error:", error.message);
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
program
|
|
213
|
+
.command("add-key <id> <key>")
|
|
214
|
+
.description("Add a key to a memory")
|
|
215
|
+
.action(async (id, key) => {
|
|
216
|
+
if (await addKeys(id, [key])) {
|
|
217
|
+
console.log(`Added key "${key}" to ${id}`);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
console.error("Failed to add key");
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
program
|
|
225
|
+
.command("remove-key <id> <key>")
|
|
226
|
+
.description("Remove a key from a memory")
|
|
227
|
+
.action(async (id, key) => {
|
|
228
|
+
if (await removeKeys(id, [key])) {
|
|
229
|
+
console.log(`Removed key "${key}" from ${id}`);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
console.error("Failed to remove key");
|
|
233
|
+
process.exit(1);
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
// =============================================================================
|
|
144
237
|
// Link Commands
|
|
145
238
|
// =============================================================================
|
|
146
239
|
program
|
|
@@ -182,6 +275,65 @@ program
|
|
|
182
275
|
console.log(`\n${results.length} linked memories`);
|
|
183
276
|
});
|
|
184
277
|
// =============================================================================
|
|
278
|
+
// External Reference Commands
|
|
279
|
+
// =============================================================================
|
|
280
|
+
program
|
|
281
|
+
.command("ref <record_id> <system> <external_id>")
|
|
282
|
+
.description("Add an external reference to a record")
|
|
283
|
+
.option("--url <url>", "External URL (deep link)")
|
|
284
|
+
.action(async (recordId, system, externalId, options) => {
|
|
285
|
+
const result = await addExternalRef(recordId, system, externalId, {
|
|
286
|
+
url: options.url,
|
|
287
|
+
});
|
|
288
|
+
if (result) {
|
|
289
|
+
console.log(`Added ref: ${system}:${externalId} -> ${recordId}`);
|
|
290
|
+
if (options.url)
|
|
291
|
+
console.log(`URL: ${options.url}`);
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
console.error("Failed to add external ref");
|
|
295
|
+
process.exit(1);
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
program
|
|
299
|
+
.command("refs <record_id>")
|
|
300
|
+
.description("List external references for a record")
|
|
301
|
+
.action(async (recordId) => {
|
|
302
|
+
const refs = await listExternalRefs(recordId);
|
|
303
|
+
if (refs.length === 0) {
|
|
304
|
+
console.log("No external references");
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
for (const ref of refs) {
|
|
308
|
+
console.log(`${ref.system}:${ref.external_id}`);
|
|
309
|
+
if (ref.external_url)
|
|
310
|
+
console.log(` URL: ${ref.external_url}`);
|
|
311
|
+
console.log(` Synced: ${ref.last_synced_at}`);
|
|
312
|
+
}
|
|
313
|
+
console.log(`\n${refs.length} references`);
|
|
314
|
+
});
|
|
315
|
+
program
|
|
316
|
+
.command("find-ref <system> <external_id>")
|
|
317
|
+
.description("Find a record by external reference")
|
|
318
|
+
.action(async (system, externalId) => {
|
|
319
|
+
const result = await findByExternalRef(system, externalId);
|
|
320
|
+
if (result) {
|
|
321
|
+
const data = result.record.data;
|
|
322
|
+
const name = data.content?.slice(0, 50) ||
|
|
323
|
+
data.topic ||
|
|
324
|
+
data.title ||
|
|
325
|
+
data.name ||
|
|
326
|
+
result.record.id;
|
|
327
|
+
console.log(`Found: ${result.record.type}: ${name}`);
|
|
328
|
+
console.log(`ID: ${result.record.id}`);
|
|
329
|
+
console.log(JSON.stringify(result.record, null, 2));
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
console.log(`No record found for ${system}:${externalId}`);
|
|
333
|
+
process.exit(1);
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
// =============================================================================
|
|
185
337
|
// Search Commands
|
|
186
338
|
// =============================================================================
|
|
187
339
|
program
|
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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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { SupabaseClient } from "@supabase/supabase-js";
|
|
6
6
|
import OpenAI from "openai";
|
|
7
|
-
import type { MemRecord, MemRecordWithLinks, SearchResult, ContextResult, LinkedRecord, AddRecordOptions, UpdateRecordOptions, SearchOptions, ContextOptions, LinkedOptions } from "./types.js";
|
|
7
|
+
import type { MemRecord, MemRecordWithLinks, ExternalRef, AddExternalRefOptions, SearchResult, ContextResult, LinkedRecord, AddRecordOptions, UpdateRecordOptions, SearchOptions, ContextOptions, LinkedOptions, UpsertResult } from "./types.js";
|
|
8
8
|
export declare function getSupabase(): SupabaseClient;
|
|
9
9
|
export declare function getOpenAI(): OpenAI;
|
|
10
10
|
/**
|
|
@@ -87,6 +87,45 @@ export declare function flush(recordIds: string[]): Promise<number>;
|
|
|
87
87
|
* Set weight for a record (1-10)
|
|
88
88
|
*/
|
|
89
89
|
export declare function weight(recordId: string, value: number): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Find a record by one of its keys
|
|
92
|
+
*/
|
|
93
|
+
export declare function findByKey(key: string): Promise<MemRecord | null>;
|
|
94
|
+
/**
|
|
95
|
+
* Upsert a record by keys. If any key matches an existing record, update it.
|
|
96
|
+
* Otherwise insert a new record.
|
|
97
|
+
*/
|
|
98
|
+
export declare function upsertByKeys(type: string, data: Record<string, unknown>, keys: string[], options?: {
|
|
99
|
+
tags?: string[];
|
|
100
|
+
weight?: number;
|
|
101
|
+
}): Promise<UpsertResult | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Add keys to an existing record
|
|
104
|
+
*/
|
|
105
|
+
export declare function addKeys(id: string, newKeys: string[]): Promise<boolean>;
|
|
106
|
+
/**
|
|
107
|
+
* Remove keys from an existing record
|
|
108
|
+
*/
|
|
109
|
+
export declare function removeKeys(id: string, keysToRemove: string[]): Promise<boolean>;
|
|
110
|
+
/**
|
|
111
|
+
* Add an external reference to a record
|
|
112
|
+
*/
|
|
113
|
+
export declare function addExternalRef(recordId: string, system: string, externalId: string, options?: AddExternalRefOptions): Promise<string | null>;
|
|
114
|
+
/**
|
|
115
|
+
* Find a record by its external reference
|
|
116
|
+
*/
|
|
117
|
+
export declare function findByExternalRef(system: string, externalId: string): Promise<{
|
|
118
|
+
record: MemRecord;
|
|
119
|
+
ref: ExternalRef;
|
|
120
|
+
} | null>;
|
|
121
|
+
/**
|
|
122
|
+
* List all external references for a record
|
|
123
|
+
*/
|
|
124
|
+
export declare function listExternalRefs(recordId: string): Promise<ExternalRef[]>;
|
|
125
|
+
/**
|
|
126
|
+
* Update the last_synced_at timestamp for an external ref
|
|
127
|
+
*/
|
|
128
|
+
export declare function touchExternalRef(system: string, externalId: string): Promise<boolean>;
|
|
90
129
|
/**
|
|
91
130
|
* Apply the database schema
|
|
92
131
|
*/
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -81,13 +81,16 @@ export function extractSearchableText(data) {
|
|
|
81
81
|
* Add a new memory record
|
|
82
82
|
*/
|
|
83
83
|
export async function add(type, data, options = {}) {
|
|
84
|
-
const { tags, weight, generateEmbedding = true } = options;
|
|
84
|
+
const { tags, keys, weight, generateEmbedding = true } = options;
|
|
85
85
|
const db = getSupabase();
|
|
86
86
|
const insertData = {
|
|
87
87
|
type,
|
|
88
88
|
data,
|
|
89
89
|
tags: tags || extractTags(data),
|
|
90
90
|
};
|
|
91
|
+
if (keys?.length) {
|
|
92
|
+
insertData.keys = keys;
|
|
93
|
+
}
|
|
91
94
|
if (weight !== undefined && weight >= 1 && weight <= 10) {
|
|
92
95
|
insertData.weight = weight;
|
|
93
96
|
}
|
|
@@ -159,7 +162,7 @@ export async function list(type, options = {}) {
|
|
|
159
162
|
* Update a record
|
|
160
163
|
*/
|
|
161
164
|
export async function update(id, data, options = {}) {
|
|
162
|
-
const { tags, regenerateEmbedding = true } = options;
|
|
165
|
+
const { tags, keys, regenerateEmbedding = true } = options;
|
|
163
166
|
const db = getSupabase();
|
|
164
167
|
const existing = await get(id);
|
|
165
168
|
if (!existing)
|
|
@@ -181,6 +184,9 @@ export async function update(id, data, options = {}) {
|
|
|
181
184
|
if (tags !== undefined) {
|
|
182
185
|
updateData.tags = tags;
|
|
183
186
|
}
|
|
187
|
+
if (keys !== undefined) {
|
|
188
|
+
updateData.keys = keys;
|
|
189
|
+
}
|
|
184
190
|
if (Object.keys(updateData).length === 0) {
|
|
185
191
|
return existing;
|
|
186
192
|
}
|
|
@@ -286,7 +292,46 @@ export async function search(query, options = {}) {
|
|
|
286
292
|
console.error("Error in hybrid search:", error);
|
|
287
293
|
return [];
|
|
288
294
|
}
|
|
289
|
-
|
|
295
|
+
let results = data || [];
|
|
296
|
+
// Boost name matches for short queries (1-2 words) where hybrid search
|
|
297
|
+
// tends to drown out exact name hits with semantically similar records
|
|
298
|
+
const wordCount = query.trim().split(/\s+/).length;
|
|
299
|
+
if (wordCount <= 2 && query.length <= 30) {
|
|
300
|
+
const pattern = `%${query}%`;
|
|
301
|
+
let nameQuery = db
|
|
302
|
+
.from("mem_records")
|
|
303
|
+
.select("id, type, data, tags")
|
|
304
|
+
.or(`data->>name.ilike.${pattern},data->>title.ilike.${pattern},data->>topic.ilike.${pattern}`)
|
|
305
|
+
.eq("status", "active");
|
|
306
|
+
if (type) {
|
|
307
|
+
nameQuery = nameQuery.eq("type", type);
|
|
308
|
+
}
|
|
309
|
+
const { data: nameHits, error: nameError } = await nameQuery.limit(5);
|
|
310
|
+
if (nameError) {
|
|
311
|
+
console.error("Name boost query failed:", nameError.message);
|
|
312
|
+
}
|
|
313
|
+
if (nameHits && nameHits.length > 0) {
|
|
314
|
+
const resultIds = new Set(results.map((r) => r.id));
|
|
315
|
+
const boostScore = results.length > 0 ? results[0].combined_score + 0.01 : 1.0;
|
|
316
|
+
// Boost existing results that match by name
|
|
317
|
+
const nameHitIds = new Set(nameHits.map((h) => h.id));
|
|
318
|
+
const boosted = results.filter((r) => nameHitIds.has(r.id)).map((r) => ({ ...r, combined_score: boostScore }));
|
|
319
|
+
const rest = results.filter((r) => !nameHitIds.has(r.id));
|
|
320
|
+
// Add name hits not already in results
|
|
321
|
+
const newHits = nameHits
|
|
322
|
+
.filter((h) => !resultIds.has(h.id))
|
|
323
|
+
.map((h) => ({
|
|
324
|
+
id: h.id,
|
|
325
|
+
type: h.type,
|
|
326
|
+
data: h.data,
|
|
327
|
+
tags: h.tags,
|
|
328
|
+
fts_rank: 0,
|
|
329
|
+
semantic_rank: 0,
|
|
330
|
+
combined_score: boostScore,
|
|
331
|
+
}));
|
|
332
|
+
results = [...boosted, ...newHits, ...rest].slice(0, limit);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
290
335
|
// Track access for returned results
|
|
291
336
|
if (trackAccess && results.length > 0) {
|
|
292
337
|
const ids = results.map((r) => r.id);
|
|
@@ -420,6 +465,186 @@ export async function weight(recordId, value) {
|
|
|
420
465
|
return true;
|
|
421
466
|
}
|
|
422
467
|
// =============================================================================
|
|
468
|
+
// Key-Based Operations
|
|
469
|
+
// =============================================================================
|
|
470
|
+
/**
|
|
471
|
+
* Find a record by one of its keys
|
|
472
|
+
*/
|
|
473
|
+
export async function findByKey(key) {
|
|
474
|
+
const db = getSupabase();
|
|
475
|
+
const { data, error } = await db.rpc("mem_find_by_key", { p_key: key });
|
|
476
|
+
if (error) {
|
|
477
|
+
console.error("Error finding by key:", error);
|
|
478
|
+
return null;
|
|
479
|
+
}
|
|
480
|
+
if (!data || data.length === 0)
|
|
481
|
+
return null;
|
|
482
|
+
return data[0];
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* Upsert a record by keys. If any key matches an existing record, update it.
|
|
486
|
+
* Otherwise insert a new record.
|
|
487
|
+
*/
|
|
488
|
+
export async function upsertByKeys(type, data, keys, options = {}) {
|
|
489
|
+
const db = getSupabase();
|
|
490
|
+
const { tags, weight } = options;
|
|
491
|
+
// Generate embedding
|
|
492
|
+
let embedding = null;
|
|
493
|
+
if (hasOpenAI()) {
|
|
494
|
+
const searchableText = extractSearchableText(data);
|
|
495
|
+
if (searchableText) {
|
|
496
|
+
embedding = await getEmbedding(searchableText);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
const { data: result, error } = await db.rpc("mem_upsert_by_keys", {
|
|
500
|
+
p_type: type,
|
|
501
|
+
p_data: data,
|
|
502
|
+
p_tags: tags || extractTags(data),
|
|
503
|
+
p_keys: keys,
|
|
504
|
+
p_weight: weight || null,
|
|
505
|
+
p_embedding: embedding,
|
|
506
|
+
});
|
|
507
|
+
if (error) {
|
|
508
|
+
console.error("Error upserting by keys:", error);
|
|
509
|
+
return null;
|
|
510
|
+
}
|
|
511
|
+
if (!result || result.length === 0)
|
|
512
|
+
return null;
|
|
513
|
+
const { id, action } = result[0];
|
|
514
|
+
const record = await get(id);
|
|
515
|
+
if (!record)
|
|
516
|
+
return null;
|
|
517
|
+
return { record, action };
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Add keys to an existing record
|
|
521
|
+
*/
|
|
522
|
+
export async function addKeys(id, newKeys) {
|
|
523
|
+
const db = getSupabase();
|
|
524
|
+
const record = await get(id);
|
|
525
|
+
if (!record)
|
|
526
|
+
return false;
|
|
527
|
+
const existing = record.keys || [];
|
|
528
|
+
const merged = [...new Set([...existing, ...newKeys])];
|
|
529
|
+
const { error } = await db
|
|
530
|
+
.from("mem_records")
|
|
531
|
+
.update({ keys: merged })
|
|
532
|
+
.eq("id", id);
|
|
533
|
+
if (error) {
|
|
534
|
+
console.error("Error adding keys:", error);
|
|
535
|
+
return false;
|
|
536
|
+
}
|
|
537
|
+
return true;
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Remove keys from an existing record
|
|
541
|
+
*/
|
|
542
|
+
export async function removeKeys(id, keysToRemove) {
|
|
543
|
+
const db = getSupabase();
|
|
544
|
+
const record = await get(id);
|
|
545
|
+
if (!record)
|
|
546
|
+
return false;
|
|
547
|
+
const existing = record.keys || [];
|
|
548
|
+
const removeSet = new Set(keysToRemove);
|
|
549
|
+
const filtered = existing.filter((k) => !removeSet.has(k));
|
|
550
|
+
const { error } = await db
|
|
551
|
+
.from("mem_records")
|
|
552
|
+
.update({ keys: filtered })
|
|
553
|
+
.eq("id", id);
|
|
554
|
+
if (error) {
|
|
555
|
+
console.error("Error removing keys:", error);
|
|
556
|
+
return false;
|
|
557
|
+
}
|
|
558
|
+
return true;
|
|
559
|
+
}
|
|
560
|
+
// =============================================================================
|
|
561
|
+
// External References
|
|
562
|
+
// =============================================================================
|
|
563
|
+
/**
|
|
564
|
+
* Add an external reference to a record
|
|
565
|
+
*/
|
|
566
|
+
export async function addExternalRef(recordId, system, externalId, options = {}) {
|
|
567
|
+
const { url, metadata } = options;
|
|
568
|
+
const db = getSupabase();
|
|
569
|
+
const { data, error } = await db.rpc("mem_add_external_ref", {
|
|
570
|
+
p_record_id: recordId,
|
|
571
|
+
p_system: system,
|
|
572
|
+
p_external_id: externalId,
|
|
573
|
+
p_external_url: url || null,
|
|
574
|
+
p_metadata: metadata || {},
|
|
575
|
+
});
|
|
576
|
+
if (error) {
|
|
577
|
+
console.error("Error adding external ref:", error);
|
|
578
|
+
return null;
|
|
579
|
+
}
|
|
580
|
+
return data;
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* Find a record by its external reference
|
|
584
|
+
*/
|
|
585
|
+
export async function findByExternalRef(system, externalId) {
|
|
586
|
+
const db = getSupabase();
|
|
587
|
+
const { data, error } = await db.rpc("mem_find_by_external_ref", {
|
|
588
|
+
p_system: system,
|
|
589
|
+
p_external_id: externalId,
|
|
590
|
+
});
|
|
591
|
+
if (error) {
|
|
592
|
+
console.error("Error finding by external ref:", error);
|
|
593
|
+
return null;
|
|
594
|
+
}
|
|
595
|
+
if (!data || data.length === 0)
|
|
596
|
+
return null;
|
|
597
|
+
const row = data[0];
|
|
598
|
+
return {
|
|
599
|
+
record: {
|
|
600
|
+
id: row.id,
|
|
601
|
+
type: row.type,
|
|
602
|
+
data: row.data,
|
|
603
|
+
tags: row.tags,
|
|
604
|
+
weight: row.weight,
|
|
605
|
+
status: row.status,
|
|
606
|
+
},
|
|
607
|
+
ref: {
|
|
608
|
+
id: row.ref_id,
|
|
609
|
+
record_id: row.id,
|
|
610
|
+
system,
|
|
611
|
+
external_id: externalId,
|
|
612
|
+
external_url: row.external_url,
|
|
613
|
+
metadata: row.ref_metadata,
|
|
614
|
+
last_synced_at: row.last_synced_at,
|
|
615
|
+
},
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* List all external references for a record
|
|
620
|
+
*/
|
|
621
|
+
export async function listExternalRefs(recordId) {
|
|
622
|
+
const db = getSupabase();
|
|
623
|
+
const { data, error } = await db.rpc("mem_list_external_refs", {
|
|
624
|
+
p_record_id: recordId,
|
|
625
|
+
});
|
|
626
|
+
if (error) {
|
|
627
|
+
console.error("Error listing external refs:", error);
|
|
628
|
+
return [];
|
|
629
|
+
}
|
|
630
|
+
return (data || []).map((r) => ({
|
|
631
|
+
...r,
|
|
632
|
+
record_id: recordId,
|
|
633
|
+
}));
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* Update the last_synced_at timestamp for an external ref
|
|
637
|
+
*/
|
|
638
|
+
export async function touchExternalRef(system, externalId) {
|
|
639
|
+
const db = getSupabase();
|
|
640
|
+
const { error } = await db
|
|
641
|
+
.from("mem_external_refs")
|
|
642
|
+
.update({ last_synced_at: new Date().toISOString() })
|
|
643
|
+
.eq("system", system)
|
|
644
|
+
.eq("external_id", externalId);
|
|
645
|
+
return !error;
|
|
646
|
+
}
|
|
647
|
+
// =============================================================================
|
|
423
648
|
// Migration
|
|
424
649
|
// =============================================================================
|
|
425
650
|
import { getMigrationSQL } from "./schema.js";
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* A simple, graph-based memory system backed by Supabase
|
|
5
5
|
* with hybrid search and relevance scoring.
|
|
6
6
|
*/
|
|
7
|
-
export { getSupabase, getOpenAI, hasOpenAI, add, get, list, update, remove, link, unlink, linked, search, ftsSearch, context, incrementAccess, archive, unarchive, flush, weight, migrate, getEmbedding, extractSearchableText, } from "./client.js";
|
|
8
|
-
export type { MemRecord, MemRecordWithLinks, MemLink, SearchResult, ContextResult, LinkedRecord, AddRecordOptions, UpdateRecordOptions, SearchOptions, ContextOptions, LinkedOptions, } from "./types.js";
|
|
7
|
+
export { getSupabase, getOpenAI, hasOpenAI, add, get, list, update, remove, link, unlink, linked, search, ftsSearch, context, incrementAccess, archive, unarchive, flush, weight, findByKey, upsertByKeys, addKeys, removeKeys, addExternalRef, findByExternalRef, listExternalRefs, touchExternalRef, migrate, getEmbedding, extractSearchableText, } from "./client.js";
|
|
8
|
+
export type { MemRecord, MemRecordWithLinks, MemLink, ExternalRef, AddExternalRefOptions, SearchResult, ContextResult, LinkedRecord, UpsertResult, AddRecordOptions, UpdateRecordOptions, SearchOptions, ContextOptions, LinkedOptions, } from "./types.js";
|
|
9
9
|
export { SCHEMA_VERSION, SCHEMA_SQL, VECTOR_INDEX_SQL, FUNCTIONS_SQL, getMigrationSQL, } from "./schema.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,WAAW,EACX,SAAS,EACT,SAAS,EAGT,GAAG,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EAGN,IAAI,EACJ,MAAM,EACN,MAAM,EAGN,MAAM,EACN,SAAS,EAGT,OAAO,EACP,eAAe,EACf,OAAO,EACP,SAAS,EACT,KAAK,EACL,MAAM,EAGN,OAAO,EAGP,YAAY,EACZ,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,WAAW,EACX,SAAS,EACT,SAAS,EAGT,GAAG,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EAGN,IAAI,EACJ,MAAM,EACN,MAAM,EAGN,MAAM,EACN,SAAS,EAGT,OAAO,EACP,eAAe,EACf,OAAO,EACP,SAAS,EACT,KAAK,EACL,MAAM,EAGN,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EAGV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAGhB,OAAO,EAGP,YAAY,EACZ,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,10 @@ link, unlink, linked,
|
|
|
16
16
|
search, ftsSearch,
|
|
17
17
|
// Context & Relevance
|
|
18
18
|
context, incrementAccess, archive, unarchive, flush, weight,
|
|
19
|
+
// Key-Based Operations
|
|
20
|
+
findByKey, upsertByKeys, addKeys, removeKeys,
|
|
21
|
+
// External References
|
|
22
|
+
addExternalRef, findByExternalRef, listExternalRefs, touchExternalRef,
|
|
19
23
|
// Migration
|
|
20
24
|
migrate,
|
|
21
25
|
// Utilities
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAwB;AACxB,OAAO;AACL,eAAe;AACf,WAAW,EACX,SAAS,EACT,SAAS;AAET,kBAAkB;AAClB,GAAG,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM;AAEN,kBAAkB;AAClB,IAAI,EACJ,MAAM,EACN,MAAM;AAEN,SAAS;AACT,MAAM,EACN,SAAS;AAET,sBAAsB;AACtB,OAAO,EACP,eAAe,EACf,OAAO,EACP,SAAS,EACT,KAAK,EACL,MAAM;AAEN,YAAY;AACZ,OAAO;AAEP,YAAY;AACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAwB;AACxB,OAAO;AACL,eAAe;AACf,WAAW,EACX,SAAS,EACT,SAAS;AAET,kBAAkB;AAClB,GAAG,EACH,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM;AAEN,kBAAkB;AAClB,IAAI,EACJ,MAAM,EACN,MAAM;AAEN,SAAS;AACT,MAAM,EACN,SAAS;AAET,sBAAsB;AACtB,OAAO,EACP,eAAe,EACf,OAAO,EACP,SAAS,EACT,KAAK,EACL,MAAM;AAEN,uBAAuB;AACvB,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU;AAEV,sBAAsB;AACtB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB;AAEhB,YAAY;AACZ,OAAO;AAEP,YAAY;AACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAoBrB,8BAA8B;AAC9B,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAC"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* - mem_records: All memories
|
|
7
7
|
* - mem_links: Relationships between records
|
|
8
8
|
*/
|
|
9
|
-
export declare const SCHEMA_VERSION = "1.
|
|
10
|
-
export declare const SCHEMA_SQL = "\n-- =============================================================================\n-- Mem: Memory for AI Agents\n-- https://mem.now\n-- Version: 1.
|
|
9
|
+
export declare const SCHEMA_VERSION = "1.2.0";
|
|
10
|
+
export declare const SCHEMA_SQL = "\n-- =============================================================================\n-- Mem: Memory for AI Agents\n-- https://mem.now\n-- Version: 1.2.0\n-- =============================================================================\n\n-- Enable required extensions\nCREATE EXTENSION IF NOT EXISTS vector;\nCREATE EXTENSION IF NOT EXISTS pg_trgm;\n\n-- =============================================================================\n-- RECORDS: All memories\n-- =============================================================================\n\nCREATE TABLE IF NOT EXISTS mem_records (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n type TEXT NOT NULL, -- user-defined (note, decision, preference, etc.)\n data JSONB NOT NULL, -- flexible structure\n tags TEXT[],\n keys TEXT[],\n embedding vector(1536),\n searchable_text TEXT,\n searchable tsvector GENERATED ALWAYS AS (\n to_tsvector('english', COALESCE(searchable_text, ''))\n ) STORED,\n\n -- Relevance scoring\n weight INTEGER NOT NULL DEFAULT 5 CHECK (weight BETWEEN 1 AND 10),\n access_count INTEGER NOT NULL DEFAULT 0,\n last_accessed_at TIMESTAMPTZ,\n status TEXT NOT NULL DEFAULT 'active' CHECK (status IN ('active', 'archived')),\n\n created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),\n updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()\n);\n\n-- =============================================================================\n-- LINKS: Relationships between records\n-- =============================================================================\n\nCREATE TABLE IF NOT EXISTS mem_links (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n from_id UUID NOT NULL REFERENCES mem_records(id) ON DELETE CASCADE,\n to_id UUID NOT NULL REFERENCES mem_records(id) ON DELETE CASCADE,\n relation TEXT NOT NULL,\n bidirectional BOOLEAN NOT NULL DEFAULT false, -- true = traversable both ways\n metadata JSONB,\n created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),\n UNIQUE(from_id, to_id, relation)\n);\n\n-- Upgrade path: add keys column if it doesn't exist\nALTER TABLE mem_records ADD COLUMN IF NOT EXISTS keys TEXT[];\n\n-- =============================================================================\n-- INDEXES\n-- =============================================================================\n\nCREATE INDEX IF NOT EXISTS idx_mem_records_type ON mem_records(type);\nCREATE INDEX IF NOT EXISTS idx_mem_records_keys ON mem_records USING GIN(keys);\nCREATE INDEX IF NOT EXISTS idx_mem_records_tags ON mem_records USING GIN(tags);\nCREATE INDEX IF NOT EXISTS idx_mem_records_data ON mem_records USING GIN(data);\nCREATE INDEX IF NOT EXISTS idx_mem_records_searchable ON mem_records USING GIN(searchable);\nCREATE INDEX IF NOT EXISTS idx_mem_records_status ON mem_records(status);\nCREATE INDEX IF NOT EXISTS idx_mem_records_relevance ON mem_records(\n status, weight DESC, access_count DESC, last_accessed_at DESC NULLS LAST\n);\n\nCREATE INDEX IF NOT EXISTS idx_mem_links_from ON mem_links(from_id);\nCREATE INDEX IF NOT EXISTS idx_mem_links_to ON mem_links(to_id);\nCREATE INDEX IF NOT EXISTS idx_mem_links_relation ON mem_links(relation);\nCREATE INDEX IF NOT EXISTS idx_mem_links_from_relation ON mem_links(from_id, relation);\nCREATE INDEX IF NOT EXISTS idx_mem_links_to_relation ON mem_links(to_id, relation);\nCREATE INDEX IF NOT EXISTS idx_mem_links_bidirectional ON mem_links(bidirectional) WHERE bidirectional = true;\n\n-- =============================================================================\n-- EXTERNAL REFERENCES: Track where records came from\n-- =============================================================================\n\nCREATE TABLE IF NOT EXISTS mem_external_refs (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n record_id UUID NOT NULL REFERENCES mem_records(id) ON DELETE CASCADE,\n system TEXT NOT NULL,\n external_id TEXT NOT NULL,\n external_url TEXT,\n metadata JSONB DEFAULT '{}',\n last_synced_at TIMESTAMPTZ DEFAULT NOW(),\n created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),\n UNIQUE(record_id, system, external_id)\n);\n\nCREATE UNIQUE INDEX IF NOT EXISTS idx_mem_ext_refs_lookup ON mem_external_refs(system, external_id);\nCREATE INDEX IF NOT EXISTS idx_mem_ext_refs_record ON mem_external_refs(record_id);\n\n-- =============================================================================\n-- SCHEMA METADATA\n-- =============================================================================\n\nCREATE TABLE IF NOT EXISTS mem_meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL,\n updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()\n);\n\nINSERT INTO mem_meta (key, value) VALUES ('version', '1.2.0')\nON CONFLICT (key) DO UPDATE SET value = '1.2.0', updated_at = NOW();\n";
|
|
11
11
|
export declare const VECTOR_INDEX_SQL = "\nDO $$\nBEGIN\n IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE indexname = 'idx_mem_records_embedding') THEN\n CREATE INDEX idx_mem_records_embedding ON mem_records USING hnsw(embedding vector_cosine_ops);\n END IF;\nEND $$;\n";
|
|
12
|
-
export declare const FUNCTIONS_SQL = "\n-- =============================================================================\n-- HYBRID SEARCH\n-- Combines semantic similarity with full-text search using RRF\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_hybrid_search(\n query_text TEXT,\n query_embedding vector(1536),\n match_count INT DEFAULT 10,\n filter_type TEXT DEFAULT NULL,\n full_text_weight FLOAT DEFAULT 0.3,\n semantic_weight FLOAT DEFAULT 0.7,\n rrf_k INT DEFAULT 50,\n include_archived BOOLEAN DEFAULT FALSE\n)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n tags TEXT[],\n fts_rank FLOAT,\n semantic_rank FLOAT,\n combined_score FLOAT\n)\nLANGUAGE plpgsql\nAS $$\nBEGIN\n RETURN QUERY\n WITH fts_results AS (\n SELECT\n r.id,\n ROW_NUMBER() OVER (ORDER BY ts_rank_cd(r.searchable, websearch_to_tsquery('english', query_text)) DESC) AS rank\n FROM mem_records r\n WHERE r.searchable @@ websearch_to_tsquery('english', query_text)\n AND (filter_type IS NULL OR r.type = filter_type)\n AND (include_archived OR r.status = 'active')\n LIMIT match_count * 2\n ),\n semantic_results AS (\n SELECT\n r.id,\n ROW_NUMBER() OVER (ORDER BY r.embedding <=> query_embedding) AS rank\n FROM mem_records r\n WHERE r.embedding IS NOT NULL\n AND (filter_type IS NULL OR r.type = filter_type)\n AND (include_archived OR r.status = 'active')\n ORDER BY r.embedding <=> query_embedding\n LIMIT match_count * 2\n ),\n combined AS (\n SELECT\n COALESCE(fts.id, sem.id) AS id,\n COALESCE(1.0 / (rrf_k + fts.rank), 0.0) AS fts_score,\n COALESCE(1.0 / (rrf_k + sem.rank), 0.0) AS sem_score\n FROM fts_results fts\n FULL OUTER JOIN semantic_results sem ON fts.id = sem.id\n )\n SELECT\n r.id,\n r.type,\n r.data,\n r.tags,\n c.fts_score::FLOAT AS fts_rank,\n c.sem_score::FLOAT AS semantic_rank,\n (c.fts_score * full_text_weight + c.sem_score * semantic_weight)::FLOAT AS combined_score\n FROM combined c\n JOIN mem_records r ON r.id = c.id\n ORDER BY (c.fts_score * full_text_weight + c.sem_score * semantic_weight) DESC\n LIMIT match_count;\nEND;\n$$;\n\n-- =============================================================================\n-- RELEVANCE SCORING\n-- Combines: weight (40%), access frequency (30%), recency (30%)\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_calculate_relevance(\n p_weight INTEGER,\n p_access_count INTEGER,\n p_last_accessed_at TIMESTAMPTZ,\n p_created_at TIMESTAMPTZ,\n max_access_count INTEGER DEFAULT 100\n)\nRETURNS FLOAT\nLANGUAGE plpgsql\nAS $$\nDECLARE\n weight_score FLOAT;\n access_score FLOAT;\n recency_score FLOAT;\n days_since_access FLOAT;\nBEGIN\n -- Normalize weight to 0-1 (weight is 1-10)\n weight_score := (p_weight - 1) / 9.0;\n\n -- Normalize access count to 0-1 (capped at max_access_count)\n access_score := LEAST(p_access_count::FLOAT / max_access_count, 1.0);\n\n -- Calculate recency score (1.0 for today, decays over 30 days to 0.1)\n IF p_last_accessed_at IS NOT NULL THEN\n days_since_access := EXTRACT(EPOCH FROM (NOW() - p_last_accessed_at)) / 86400.0;\n recency_score := GREATEST(1.0 - (days_since_access / 30.0) * 0.9, 0.1);\n ELSE\n -- Never accessed, use created_at with lower base score\n days_since_access := EXTRACT(EPOCH FROM (NOW() - p_created_at)) / 86400.0;\n recency_score := GREATEST(0.5 - (days_since_access / 60.0) * 0.4, 0.1);\n END IF;\n\n -- Combine scores: weight 40%, access 30%, recency 30%\n RETURN (weight_score * 0.4) + (access_score * 0.3) + (recency_score * 0.3);\nEND;\n$$;\n\n-- =============================================================================\n-- CONTEXT: Get most relevant records for startup\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_get_context(\n match_count INT DEFAULT 20,\n filter_types TEXT[] DEFAULT NULL\n)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n tags TEXT[],\n weight INTEGER,\n access_count INTEGER,\n relevance_score FLOAT\n)\nLANGUAGE plpgsql\nAS $$\nBEGIN\n RETURN QUERY\n SELECT\n r.id,\n r.type,\n r.data,\n r.tags,\n r.weight,\n r.access_count,\n mem_calculate_relevance(r.weight, r.access_count, r.last_accessed_at, r.created_at)::FLOAT AS relevance_score\n FROM mem_records r\n WHERE r.status = 'active'\n AND (filter_types IS NULL OR r.type = ANY(filter_types))\n ORDER BY mem_calculate_relevance(r.weight, r.access_count, r.last_accessed_at, r.created_at) DESC\n LIMIT match_count;\nEND;\n$$;\n\n-- =============================================================================\n-- ACCESS TRACKING\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_increment_access(record_ids UUID[])\nRETURNS VOID\nLANGUAGE plpgsql\nAS $$\nBEGIN\n UPDATE mem_records\n SET\n access_count = access_count + 1,\n last_accessed_at = NOW()\n WHERE id = ANY(record_ids);\nEND;\n$$;\n\n-- =============================================================================\n-- ARCHIVE / UNARCHIVE\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_archive(record_ids UUID[])\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n affected INTEGER;\nBEGIN\n UPDATE mem_records\n SET status = 'archived', updated_at = NOW()\n WHERE id = ANY(record_ids) AND status = 'active';\n GET DIAGNOSTICS affected = ROW_COUNT;\n RETURN affected;\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_unarchive(record_ids UUID[])\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n affected INTEGER;\nBEGIN\n UPDATE mem_records\n SET status = 'active', updated_at = NOW()\n WHERE id = ANY(record_ids) AND status = 'archived';\n GET DIAGNOSTICS affected = ROW_COUNT;\n RETURN affected;\nEND;\n$$;\n\n-- =============================================================================\n-- FLUSH: Reset access count\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_flush(record_ids UUID[])\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n affected INTEGER;\nBEGIN\n UPDATE mem_records\n SET\n access_count = 0,\n last_accessed_at = NULL,\n updated_at = NOW()\n WHERE id = ANY(record_ids);\n GET DIAGNOSTICS affected = ROW_COUNT;\n RETURN affected;\nEND;\n$$;\n\n-- =============================================================================\n-- GRAPH TRAVERSAL\n-- Respects bidirectional flag\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_get_record_with_links(record_id UUID)\nRETURNS JSONB\nLANGUAGE sql\nAS $$\n SELECT jsonb_build_object(\n 'id', r.id,\n 'type', r.type,\n 'data', r.data,\n 'tags', r.tags,\n 'weight', r.weight,\n 'access_count', r.access_count,\n 'status', r.status,\n 'created_at', r.created_at,\n 'updated_at', r.updated_at,\n 'outgoing', COALESCE((\n SELECT jsonb_agg(jsonb_build_object(\n 'relation', l.relation,\n 'bidirectional', l.bidirectional,\n 'metadata', l.metadata,\n 'record', jsonb_build_object(\n 'id', linked.id,\n 'type', linked.type,\n 'data', linked.data\n )\n ))\n FROM mem_links l\n JOIN mem_records linked ON linked.id = l.to_id\n WHERE l.from_id = r.id\n ), '[]'::jsonb),\n 'incoming', COALESCE((\n SELECT jsonb_agg(jsonb_build_object(\n 'relation', l.relation,\n 'bidirectional', l.bidirectional,\n 'metadata', l.metadata,\n 'record', jsonb_build_object(\n 'id', linked.id,\n 'type', linked.type,\n 'data', linked.data\n )\n ))\n FROM mem_links l\n JOIN mem_records linked ON linked.id = l.from_id\n WHERE l.to_id = r.id\n ), '[]'::jsonb)\n )\n FROM mem_records r\n WHERE r.id = record_id;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_get_linked(\n record_id UUID,\n relation_type TEXT DEFAULT NULL,\n direction TEXT DEFAULT 'outgoing'\n)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n relation TEXT,\n bidirectional BOOLEAN,\n link_metadata JSONB\n)\nLANGUAGE sql\nAS $$\n -- Outgoing links (from this record to others)\n SELECT\n r.id,\n r.type,\n r.data,\n l.relation,\n l.bidirectional,\n l.metadata\n FROM mem_links l\n JOIN mem_records r ON r.id = l.to_id\n WHERE l.from_id = record_id\n AND (relation_type IS NULL OR l.relation = relation_type)\n AND (direction = 'outgoing' OR direction = 'both')\n\n UNION ALL\n\n -- Incoming links (from others to this record)\n -- Only include if bidirectional=true OR direction includes incoming\n SELECT\n r.id,\n r.type,\n r.data,\n l.relation,\n l.bidirectional,\n l.metadata\n FROM mem_links l\n JOIN mem_records r ON r.id = l.from_id\n WHERE l.to_id = record_id\n AND (relation_type IS NULL OR l.relation = relation_type)\n AND (\n direction = 'incoming'\n OR direction = 'both'\n OR l.bidirectional = true\n );\n$$;\n\n-- =============================================================================\n-- LINK OPERATIONS\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_create_link(\n from_record_id UUID,\n to_record_id UUID,\n relation_type TEXT,\n is_bidirectional BOOLEAN DEFAULT false,\n link_metadata JSONB DEFAULT NULL\n)\nRETURNS UUID\nLANGUAGE plpgsql\nAS $$\nDECLARE\n link_id UUID;\nBEGIN\n INSERT INTO mem_links (from_id, to_id, relation, bidirectional, metadata)\n VALUES (from_record_id, to_record_id, relation_type, is_bidirectional, link_metadata)\n ON CONFLICT (from_id, to_id, relation) DO UPDATE\n SET bidirectional = is_bidirectional,\n metadata = COALESCE(link_metadata, mem_links.metadata)\n RETURNING id INTO link_id;\n RETURN link_id;\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_remove_link(\n from_record_id UUID,\n to_record_id UUID,\n relation_type TEXT\n)\nRETURNS BOOLEAN\nLANGUAGE plpgsql\nAS $$\nBEGIN\n DELETE FROM mem_links\n WHERE from_id = from_record_id\n AND to_id = to_record_id\n AND relation = relation_type;\n RETURN FOUND;\nEND;\n$$;\n\n-- =============================================================================\n-- TRIGGERS\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_extract_searchable_text(record_type TEXT, record_data JSONB)\nRETURNS TEXT\nLANGUAGE plpgsql\nAS $$\nBEGIN\n -- Generic extraction: concatenate all string values\n RETURN (SELECT string_agg(value::TEXT, ' ')\n FROM jsonb_each_text(record_data)\n WHERE value IS NOT NULL AND value != '');\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_records_trigger()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nBEGIN\n NEW.searchable_text := mem_extract_searchable_text(NEW.type, NEW.data);\n NEW.updated_at := NOW();\n RETURN NEW;\nEND;\n$$;\n\nDROP TRIGGER IF EXISTS mem_records_before_upsert ON mem_records;\nCREATE TRIGGER mem_records_before_upsert\nBEFORE INSERT OR UPDATE ON mem_records\nFOR EACH ROW\nEXECUTE FUNCTION mem_records_trigger();\n";
|
|
12
|
+
export declare const FUNCTIONS_SQL = "\n-- =============================================================================\n-- HYBRID SEARCH\n-- Combines semantic similarity with full-text search using RRF\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_hybrid_search(\n query_text TEXT,\n query_embedding vector(1536),\n match_count INT DEFAULT 10,\n filter_type TEXT DEFAULT NULL,\n full_text_weight FLOAT DEFAULT 0.3,\n semantic_weight FLOAT DEFAULT 0.7,\n rrf_k INT DEFAULT 50,\n include_archived BOOLEAN DEFAULT FALSE\n)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n tags TEXT[],\n fts_rank FLOAT,\n semantic_rank FLOAT,\n combined_score FLOAT\n)\nLANGUAGE plpgsql\nAS $$\nBEGIN\n RETURN QUERY\n WITH fts_results AS (\n SELECT\n r.id,\n ROW_NUMBER() OVER (ORDER BY ts_rank_cd(r.searchable, websearch_to_tsquery('english', query_text)) DESC) AS rank\n FROM mem_records r\n WHERE r.searchable @@ websearch_to_tsquery('english', query_text)\n AND (filter_type IS NULL OR r.type = filter_type)\n AND (include_archived OR r.status = 'active')\n LIMIT match_count * 2\n ),\n semantic_results AS (\n SELECT\n r.id,\n ROW_NUMBER() OVER (ORDER BY r.embedding <=> query_embedding) AS rank\n FROM mem_records r\n WHERE r.embedding IS NOT NULL\n AND (filter_type IS NULL OR r.type = filter_type)\n AND (include_archived OR r.status = 'active')\n ORDER BY r.embedding <=> query_embedding\n LIMIT match_count * 2\n ),\n combined AS (\n SELECT\n COALESCE(fts.id, sem.id) AS id,\n COALESCE(1.0 / (rrf_k + fts.rank), 0.0) AS fts_score,\n COALESCE(1.0 / (rrf_k + sem.rank), 0.0) AS sem_score\n FROM fts_results fts\n FULL OUTER JOIN semantic_results sem ON fts.id = sem.id\n )\n SELECT\n r.id,\n r.type,\n r.data,\n r.tags,\n c.fts_score::FLOAT AS fts_rank,\n c.sem_score::FLOAT AS semantic_rank,\n (c.fts_score * full_text_weight + c.sem_score * semantic_weight)::FLOAT AS combined_score\n FROM combined c\n JOIN mem_records r ON r.id = c.id\n ORDER BY (c.fts_score * full_text_weight + c.sem_score * semantic_weight) DESC\n LIMIT match_count;\nEND;\n$$;\n\n-- =============================================================================\n-- RELEVANCE SCORING\n-- Combines: weight (40%), access frequency (30%), recency (30%)\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_calculate_relevance(\n p_weight INTEGER,\n p_access_count INTEGER,\n p_last_accessed_at TIMESTAMPTZ,\n p_created_at TIMESTAMPTZ,\n max_access_count INTEGER DEFAULT 100\n)\nRETURNS FLOAT\nLANGUAGE plpgsql\nAS $$\nDECLARE\n weight_score FLOAT;\n access_score FLOAT;\n recency_score FLOAT;\n days_since_access FLOAT;\nBEGIN\n -- Normalize weight to 0-1 (weight is 1-10)\n weight_score := (p_weight - 1) / 9.0;\n\n -- Normalize access count to 0-1 (capped at max_access_count)\n access_score := LEAST(p_access_count::FLOAT / max_access_count, 1.0);\n\n -- Calculate recency score (1.0 for today, decays over 30 days to 0.1)\n IF p_last_accessed_at IS NOT NULL THEN\n days_since_access := EXTRACT(EPOCH FROM (NOW() - p_last_accessed_at)) / 86400.0;\n recency_score := GREATEST(1.0 - (days_since_access / 30.0) * 0.9, 0.1);\n ELSE\n -- Never accessed, use created_at with lower base score\n days_since_access := EXTRACT(EPOCH FROM (NOW() - p_created_at)) / 86400.0;\n recency_score := GREATEST(0.5 - (days_since_access / 60.0) * 0.4, 0.1);\n END IF;\n\n -- Combine scores: weight 40%, access 30%, recency 30%\n RETURN (weight_score * 0.4) + (access_score * 0.3) + (recency_score * 0.3);\nEND;\n$$;\n\n-- =============================================================================\n-- CONTEXT: Get most relevant records for startup\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_get_context(\n match_count INT DEFAULT 20,\n filter_types TEXT[] DEFAULT NULL\n)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n tags TEXT[],\n keys TEXT[],\n weight INTEGER,\n access_count INTEGER,\n relevance_score FLOAT\n)\nLANGUAGE plpgsql\nAS $$\nBEGIN\n RETURN QUERY\n SELECT\n r.id,\n r.type,\n r.data,\n r.tags,\n r.keys,\n r.weight,\n r.access_count,\n mem_calculate_relevance(r.weight, r.access_count, r.last_accessed_at, r.created_at)::FLOAT AS relevance_score\n FROM mem_records r\n WHERE r.status = 'active'\n AND (filter_types IS NULL OR r.type = ANY(filter_types))\n ORDER BY mem_calculate_relevance(r.weight, r.access_count, r.last_accessed_at, r.created_at) DESC\n LIMIT match_count;\nEND;\n$$;\n\n-- =============================================================================\n-- ACCESS TRACKING\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_increment_access(record_ids UUID[])\nRETURNS VOID\nLANGUAGE plpgsql\nAS $$\nBEGIN\n UPDATE mem_records\n SET\n access_count = access_count + 1,\n last_accessed_at = NOW()\n WHERE id = ANY(record_ids);\nEND;\n$$;\n\n-- =============================================================================\n-- ARCHIVE / UNARCHIVE\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_archive(record_ids UUID[])\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n affected INTEGER;\nBEGIN\n UPDATE mem_records\n SET status = 'archived', updated_at = NOW()\n WHERE id = ANY(record_ids) AND status = 'active';\n GET DIAGNOSTICS affected = ROW_COUNT;\n RETURN affected;\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_unarchive(record_ids UUID[])\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n affected INTEGER;\nBEGIN\n UPDATE mem_records\n SET status = 'active', updated_at = NOW()\n WHERE id = ANY(record_ids) AND status = 'archived';\n GET DIAGNOSTICS affected = ROW_COUNT;\n RETURN affected;\nEND;\n$$;\n\n-- =============================================================================\n-- FLUSH: Reset access count\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_flush(record_ids UUID[])\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n affected INTEGER;\nBEGIN\n UPDATE mem_records\n SET\n access_count = 0,\n last_accessed_at = NULL,\n updated_at = NOW()\n WHERE id = ANY(record_ids);\n GET DIAGNOSTICS affected = ROW_COUNT;\n RETURN affected;\nEND;\n$$;\n\n-- =============================================================================\n-- GRAPH TRAVERSAL\n-- Respects bidirectional flag\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_get_record_with_links(record_id UUID)\nRETURNS JSONB\nLANGUAGE sql\nAS $$\n SELECT jsonb_build_object(\n 'id', r.id,\n 'type', r.type,\n 'data', r.data,\n 'tags', r.tags,\n 'keys', r.keys,\n 'weight', r.weight,\n 'access_count', r.access_count,\n 'status', r.status,\n 'created_at', r.created_at,\n 'updated_at', r.updated_at,\n 'outgoing', COALESCE((\n SELECT jsonb_agg(jsonb_build_object(\n 'relation', l.relation,\n 'bidirectional', l.bidirectional,\n 'metadata', l.metadata,\n 'record', jsonb_build_object(\n 'id', linked.id,\n 'type', linked.type,\n 'data', linked.data\n )\n ))\n FROM mem_links l\n JOIN mem_records linked ON linked.id = l.to_id\n WHERE l.from_id = r.id\n ), '[]'::jsonb),\n 'incoming', COALESCE((\n SELECT jsonb_agg(jsonb_build_object(\n 'relation', l.relation,\n 'bidirectional', l.bidirectional,\n 'metadata', l.metadata,\n 'record', jsonb_build_object(\n 'id', linked.id,\n 'type', linked.type,\n 'data', linked.data\n )\n ))\n FROM mem_links l\n JOIN mem_records linked ON linked.id = l.from_id\n WHERE l.to_id = r.id\n ), '[]'::jsonb)\n )\n FROM mem_records r\n WHERE r.id = record_id;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_get_linked(\n record_id UUID,\n relation_type TEXT DEFAULT NULL,\n direction TEXT DEFAULT 'outgoing'\n)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n relation TEXT,\n bidirectional BOOLEAN,\n link_metadata JSONB\n)\nLANGUAGE sql\nAS $$\n -- Outgoing links (from this record to others)\n SELECT\n r.id,\n r.type,\n r.data,\n l.relation,\n l.bidirectional,\n l.metadata\n FROM mem_links l\n JOIN mem_records r ON r.id = l.to_id\n WHERE l.from_id = record_id\n AND (relation_type IS NULL OR l.relation = relation_type)\n AND (direction = 'outgoing' OR direction = 'both')\n\n UNION ALL\n\n -- Incoming links (from others to this record)\n -- Only include if bidirectional=true OR direction includes incoming\n SELECT\n r.id,\n r.type,\n r.data,\n l.relation,\n l.bidirectional,\n l.metadata\n FROM mem_links l\n JOIN mem_records r ON r.id = l.from_id\n WHERE l.to_id = record_id\n AND (relation_type IS NULL OR l.relation = relation_type)\n AND (\n direction = 'incoming'\n OR direction = 'both'\n OR l.bidirectional = true\n );\n$$;\n\n-- =============================================================================\n-- LINK OPERATIONS\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_create_link(\n from_record_id UUID,\n to_record_id UUID,\n relation_type TEXT,\n is_bidirectional BOOLEAN DEFAULT false,\n link_metadata JSONB DEFAULT NULL\n)\nRETURNS UUID\nLANGUAGE plpgsql\nAS $$\nDECLARE\n link_id UUID;\nBEGIN\n INSERT INTO mem_links (from_id, to_id, relation, bidirectional, metadata)\n VALUES (from_record_id, to_record_id, relation_type, is_bidirectional, link_metadata)\n ON CONFLICT (from_id, to_id, relation) DO UPDATE\n SET bidirectional = is_bidirectional,\n metadata = COALESCE(link_metadata, mem_links.metadata)\n RETURNING id INTO link_id;\n RETURN link_id;\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_remove_link(\n from_record_id UUID,\n to_record_id UUID,\n relation_type TEXT\n)\nRETURNS BOOLEAN\nLANGUAGE plpgsql\nAS $$\nBEGIN\n DELETE FROM mem_links\n WHERE from_id = from_record_id\n AND to_id = to_record_id\n AND relation = relation_type;\n RETURN FOUND;\nEND;\n$$;\n\n-- =============================================================================\n-- EXTERNAL REFERENCES\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_add_external_ref(\n p_record_id UUID,\n p_system TEXT,\n p_external_id TEXT,\n p_external_url TEXT DEFAULT NULL,\n p_metadata JSONB DEFAULT '{}'\n)\nRETURNS UUID\nLANGUAGE plpgsql\nAS $$\nDECLARE\n ref_id UUID;\nBEGIN\n INSERT INTO mem_external_refs (record_id, system, external_id, external_url, metadata)\n VALUES (p_record_id, p_system, p_external_id, p_external_url, p_metadata)\n ON CONFLICT (record_id, system, external_id) DO UPDATE\n SET external_url = COALESCE(p_external_url, mem_external_refs.external_url),\n metadata = COALESCE(p_metadata, mem_external_refs.metadata),\n last_synced_at = NOW()\n RETURNING id INTO ref_id;\n RETURN ref_id;\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_find_by_external_ref(\n p_system TEXT,\n p_external_id TEXT\n)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n tags TEXT[],\n weight INTEGER,\n status TEXT,\n ref_id UUID,\n external_url TEXT,\n ref_metadata JSONB,\n last_synced_at TIMESTAMPTZ\n)\nLANGUAGE sql\nAS $$\n SELECT\n r.id,\n r.type,\n r.data,\n r.tags,\n r.weight,\n r.status,\n e.id AS ref_id,\n e.external_url,\n e.metadata AS ref_metadata,\n e.last_synced_at\n FROM mem_external_refs e\n JOIN mem_records r ON r.id = e.record_id\n WHERE e.system = p_system AND e.external_id = p_external_id;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_list_external_refs(p_record_id UUID)\nRETURNS TABLE (\n id UUID,\n system TEXT,\n external_id TEXT,\n external_url TEXT,\n metadata JSONB,\n last_synced_at TIMESTAMPTZ,\n created_at TIMESTAMPTZ\n)\nLANGUAGE sql\nAS $$\n SELECT id, system, external_id, external_url, metadata, last_synced_at, created_at\n FROM mem_external_refs\n WHERE record_id = p_record_id\n ORDER BY created_at;\n$$;\n\n-- =============================================================================\n-- KEY-BASED LOOKUP AND UPSERT\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_enforce_key_uniqueness()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n conflicting_id UUID;\nBEGIN\n IF NEW.keys IS NULL THEN\n RETURN NEW;\n END IF;\n\n SELECT id INTO conflicting_id\n FROM mem_records\n WHERE keys && NEW.keys AND id != NEW.id\n LIMIT 1;\n\n IF conflicting_id IS NOT NULL THEN\n RAISE EXCEPTION 'Key conflict: one or more keys in % already exist on record %',\n NEW.keys, conflicting_id\n USING ERRCODE = 'unique_violation';\n END IF;\n\n RETURN NEW;\nEND;\n$$;\n\nDROP TRIGGER IF EXISTS mem_enforce_key_uniqueness_trigger ON mem_records;\nCREATE TRIGGER mem_enforce_key_uniqueness_trigger\nBEFORE INSERT OR UPDATE ON mem_records\nFOR EACH ROW\nEXECUTE FUNCTION mem_enforce_key_uniqueness();\n\nCREATE OR REPLACE FUNCTION mem_find_by_key(p_key TEXT)\nRETURNS TABLE (\n id UUID,\n type TEXT,\n data JSONB,\n tags TEXT[],\n keys TEXT[],\n weight INTEGER,\n access_count INTEGER,\n status TEXT,\n created_at TIMESTAMPTZ,\n updated_at TIMESTAMPTZ\n)\nLANGUAGE sql\nAS $$\n SELECT r.id, r.type, r.data, r.tags, r.keys, r.weight, r.access_count,\n r.status, r.created_at, r.updated_at\n FROM mem_records r\n WHERE r.keys @> ARRAY[p_key];\n$$;\n\nCREATE OR REPLACE FUNCTION mem_upsert_by_keys(\n p_type TEXT,\n p_data JSONB,\n p_tags TEXT[],\n p_keys TEXT[],\n p_weight INTEGER DEFAULT NULL,\n p_embedding vector(1536) DEFAULT NULL\n)\nRETURNS TABLE (id UUID, action TEXT)\nLANGUAGE plpgsql\nAS $$\nDECLARE\n existing_id UUID;\n result_id UUID;\n result_action TEXT;\nBEGIN\n -- Find existing record by key overlap\n SELECT r.id INTO existing_id\n FROM mem_records r\n WHERE r.keys && p_keys\n LIMIT 1;\n\n IF existing_id IS NOT NULL THEN\n -- Update: merge data, union tags and keys\n UPDATE mem_records r\n SET data = r.data || p_data,\n tags = (SELECT ARRAY(SELECT DISTINCT unnest FROM unnest(COALESCE(r.tags, '{}') || COALESCE(p_tags, '{}')))),\n keys = (SELECT ARRAY(SELECT DISTINCT unnest FROM unnest(COALESCE(r.keys, '{}') || COALESCE(p_keys, '{}')))),\n weight = COALESCE(p_weight, r.weight),\n embedding = COALESCE(p_embedding, r.embedding)\n WHERE r.id = existing_id;\n\n result_id := existing_id;\n result_action := 'updated';\n ELSE\n -- Insert new record\n INSERT INTO mem_records (type, data, tags, keys, weight, embedding)\n VALUES (\n p_type,\n p_data,\n p_tags,\n p_keys,\n COALESCE(p_weight, 5),\n p_embedding\n )\n RETURNING mem_records.id INTO result_id;\n\n result_action := 'inserted';\n END IF;\n\n RETURN QUERY SELECT result_id, result_action;\nEND;\n$$;\n\n-- =============================================================================\n-- TRIGGERS\n-- =============================================================================\n\nCREATE OR REPLACE FUNCTION mem_extract_searchable_text(record_type TEXT, record_data JSONB)\nRETURNS TEXT\nLANGUAGE plpgsql\nAS $$\nBEGIN\n -- Generic extraction: concatenate all string values\n RETURN (SELECT string_agg(value::TEXT, ' ')\n FROM jsonb_each_text(record_data)\n WHERE value IS NOT NULL AND value != '');\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION mem_records_trigger()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nBEGIN\n NEW.searchable_text := mem_extract_searchable_text(NEW.type, NEW.data);\n NEW.updated_at := NOW();\n RETURN NEW;\nEND;\n$$;\n\nDROP TRIGGER IF EXISTS mem_records_before_upsert ON mem_records;\nCREATE TRIGGER mem_records_before_upsert\nBEFORE INSERT OR UPDATE ON mem_records\nFOR EACH ROW\nEXECUTE FUNCTION mem_records_trigger();\n";
|
|
13
13
|
export declare function getMigrationSQL(): string;
|
|
14
14
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,eAAO,MAAM,UAAU,utJA2GtB,CAAC;AAGF,eAAO,MAAM,gBAAgB,oPAO5B,CAAC;AAEF,eAAO,MAAM,aAAa,qjiBAwlBzB,CAAC;AAGF,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
package/dist/schema.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - mem_records: All memories
|
|
7
7
|
* - mem_links: Relationships between records
|
|
8
8
|
*/
|
|
9
|
-
export const SCHEMA_VERSION = "1.
|
|
9
|
+
export const SCHEMA_VERSION = "1.2.0";
|
|
10
10
|
export const SCHEMA_SQL = `
|
|
11
11
|
-- =============================================================================
|
|
12
12
|
-- Mem: Memory for AI Agents
|
|
@@ -27,6 +27,7 @@ CREATE TABLE IF NOT EXISTS mem_records (
|
|
|
27
27
|
type TEXT NOT NULL, -- user-defined (note, decision, preference, etc.)
|
|
28
28
|
data JSONB NOT NULL, -- flexible structure
|
|
29
29
|
tags TEXT[],
|
|
30
|
+
keys TEXT[],
|
|
30
31
|
embedding vector(1536),
|
|
31
32
|
searchable_text TEXT,
|
|
32
33
|
searchable tsvector GENERATED ALWAYS AS (
|
|
@@ -58,11 +59,15 @@ CREATE TABLE IF NOT EXISTS mem_links (
|
|
|
58
59
|
UNIQUE(from_id, to_id, relation)
|
|
59
60
|
);
|
|
60
61
|
|
|
62
|
+
-- Upgrade path: add keys column if it doesn't exist
|
|
63
|
+
ALTER TABLE mem_records ADD COLUMN IF NOT EXISTS keys TEXT[];
|
|
64
|
+
|
|
61
65
|
-- =============================================================================
|
|
62
66
|
-- INDEXES
|
|
63
67
|
-- =============================================================================
|
|
64
68
|
|
|
65
69
|
CREATE INDEX IF NOT EXISTS idx_mem_records_type ON mem_records(type);
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_mem_records_keys ON mem_records USING GIN(keys);
|
|
66
71
|
CREATE INDEX IF NOT EXISTS idx_mem_records_tags ON mem_records USING GIN(tags);
|
|
67
72
|
CREATE INDEX IF NOT EXISTS idx_mem_records_data ON mem_records USING GIN(data);
|
|
68
73
|
CREATE INDEX IF NOT EXISTS idx_mem_records_searchable ON mem_records USING GIN(searchable);
|
|
@@ -78,6 +83,25 @@ CREATE INDEX IF NOT EXISTS idx_mem_links_from_relation ON mem_links(from_id, rel
|
|
|
78
83
|
CREATE INDEX IF NOT EXISTS idx_mem_links_to_relation ON mem_links(to_id, relation);
|
|
79
84
|
CREATE INDEX IF NOT EXISTS idx_mem_links_bidirectional ON mem_links(bidirectional) WHERE bidirectional = true;
|
|
80
85
|
|
|
86
|
+
-- =============================================================================
|
|
87
|
+
-- EXTERNAL REFERENCES: Track where records came from
|
|
88
|
+
-- =============================================================================
|
|
89
|
+
|
|
90
|
+
CREATE TABLE IF NOT EXISTS mem_external_refs (
|
|
91
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
92
|
+
record_id UUID NOT NULL REFERENCES mem_records(id) ON DELETE CASCADE,
|
|
93
|
+
system TEXT NOT NULL,
|
|
94
|
+
external_id TEXT NOT NULL,
|
|
95
|
+
external_url TEXT,
|
|
96
|
+
metadata JSONB DEFAULT '{}',
|
|
97
|
+
last_synced_at TIMESTAMPTZ DEFAULT NOW(),
|
|
98
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
99
|
+
UNIQUE(record_id, system, external_id)
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_mem_ext_refs_lookup ON mem_external_refs(system, external_id);
|
|
103
|
+
CREATE INDEX IF NOT EXISTS idx_mem_ext_refs_record ON mem_external_refs(record_id);
|
|
104
|
+
|
|
81
105
|
-- =============================================================================
|
|
82
106
|
-- SCHEMA METADATA
|
|
83
107
|
-- =============================================================================
|
|
@@ -228,6 +252,7 @@ RETURNS TABLE (
|
|
|
228
252
|
type TEXT,
|
|
229
253
|
data JSONB,
|
|
230
254
|
tags TEXT[],
|
|
255
|
+
keys TEXT[],
|
|
231
256
|
weight INTEGER,
|
|
232
257
|
access_count INTEGER,
|
|
233
258
|
relevance_score FLOAT
|
|
@@ -241,6 +266,7 @@ BEGIN
|
|
|
241
266
|
r.type,
|
|
242
267
|
r.data,
|
|
243
268
|
r.tags,
|
|
269
|
+
r.keys,
|
|
244
270
|
r.weight,
|
|
245
271
|
r.access_count,
|
|
246
272
|
mem_calculate_relevance(r.weight, r.access_count, r.last_accessed_at, r.created_at)::FLOAT AS relevance_score
|
|
@@ -339,6 +365,7 @@ AS $$
|
|
|
339
365
|
'type', r.type,
|
|
340
366
|
'data', r.data,
|
|
341
367
|
'tags', r.tags,
|
|
368
|
+
'keys', r.keys,
|
|
342
369
|
'weight', r.weight,
|
|
343
370
|
'access_count', r.access_count,
|
|
344
371
|
'status', r.status,
|
|
@@ -474,6 +501,197 @@ BEGIN
|
|
|
474
501
|
END;
|
|
475
502
|
$$;
|
|
476
503
|
|
|
504
|
+
-- =============================================================================
|
|
505
|
+
-- EXTERNAL REFERENCES
|
|
506
|
+
-- =============================================================================
|
|
507
|
+
|
|
508
|
+
CREATE OR REPLACE FUNCTION mem_add_external_ref(
|
|
509
|
+
p_record_id UUID,
|
|
510
|
+
p_system TEXT,
|
|
511
|
+
p_external_id TEXT,
|
|
512
|
+
p_external_url TEXT DEFAULT NULL,
|
|
513
|
+
p_metadata JSONB DEFAULT '{}'
|
|
514
|
+
)
|
|
515
|
+
RETURNS UUID
|
|
516
|
+
LANGUAGE plpgsql
|
|
517
|
+
AS $$
|
|
518
|
+
DECLARE
|
|
519
|
+
ref_id UUID;
|
|
520
|
+
BEGIN
|
|
521
|
+
INSERT INTO mem_external_refs (record_id, system, external_id, external_url, metadata)
|
|
522
|
+
VALUES (p_record_id, p_system, p_external_id, p_external_url, p_metadata)
|
|
523
|
+
ON CONFLICT (record_id, system, external_id) DO UPDATE
|
|
524
|
+
SET external_url = COALESCE(p_external_url, mem_external_refs.external_url),
|
|
525
|
+
metadata = COALESCE(p_metadata, mem_external_refs.metadata),
|
|
526
|
+
last_synced_at = NOW()
|
|
527
|
+
RETURNING id INTO ref_id;
|
|
528
|
+
RETURN ref_id;
|
|
529
|
+
END;
|
|
530
|
+
$$;
|
|
531
|
+
|
|
532
|
+
CREATE OR REPLACE FUNCTION mem_find_by_external_ref(
|
|
533
|
+
p_system TEXT,
|
|
534
|
+
p_external_id TEXT
|
|
535
|
+
)
|
|
536
|
+
RETURNS TABLE (
|
|
537
|
+
id UUID,
|
|
538
|
+
type TEXT,
|
|
539
|
+
data JSONB,
|
|
540
|
+
tags TEXT[],
|
|
541
|
+
weight INTEGER,
|
|
542
|
+
status TEXT,
|
|
543
|
+
ref_id UUID,
|
|
544
|
+
external_url TEXT,
|
|
545
|
+
ref_metadata JSONB,
|
|
546
|
+
last_synced_at TIMESTAMPTZ
|
|
547
|
+
)
|
|
548
|
+
LANGUAGE sql
|
|
549
|
+
AS $$
|
|
550
|
+
SELECT
|
|
551
|
+
r.id,
|
|
552
|
+
r.type,
|
|
553
|
+
r.data,
|
|
554
|
+
r.tags,
|
|
555
|
+
r.weight,
|
|
556
|
+
r.status,
|
|
557
|
+
e.id AS ref_id,
|
|
558
|
+
e.external_url,
|
|
559
|
+
e.metadata AS ref_metadata,
|
|
560
|
+
e.last_synced_at
|
|
561
|
+
FROM mem_external_refs e
|
|
562
|
+
JOIN mem_records r ON r.id = e.record_id
|
|
563
|
+
WHERE e.system = p_system AND e.external_id = p_external_id;
|
|
564
|
+
$$;
|
|
565
|
+
|
|
566
|
+
CREATE OR REPLACE FUNCTION mem_list_external_refs(p_record_id UUID)
|
|
567
|
+
RETURNS TABLE (
|
|
568
|
+
id UUID,
|
|
569
|
+
system TEXT,
|
|
570
|
+
external_id TEXT,
|
|
571
|
+
external_url TEXT,
|
|
572
|
+
metadata JSONB,
|
|
573
|
+
last_synced_at TIMESTAMPTZ,
|
|
574
|
+
created_at TIMESTAMPTZ
|
|
575
|
+
)
|
|
576
|
+
LANGUAGE sql
|
|
577
|
+
AS $$
|
|
578
|
+
SELECT id, system, external_id, external_url, metadata, last_synced_at, created_at
|
|
579
|
+
FROM mem_external_refs
|
|
580
|
+
WHERE record_id = p_record_id
|
|
581
|
+
ORDER BY created_at;
|
|
582
|
+
$$;
|
|
583
|
+
|
|
584
|
+
-- =============================================================================
|
|
585
|
+
-- KEY-BASED LOOKUP AND UPSERT
|
|
586
|
+
-- =============================================================================
|
|
587
|
+
|
|
588
|
+
CREATE OR REPLACE FUNCTION mem_enforce_key_uniqueness()
|
|
589
|
+
RETURNS TRIGGER
|
|
590
|
+
LANGUAGE plpgsql
|
|
591
|
+
AS $$
|
|
592
|
+
DECLARE
|
|
593
|
+
conflicting_id UUID;
|
|
594
|
+
BEGIN
|
|
595
|
+
IF NEW.keys IS NULL THEN
|
|
596
|
+
RETURN NEW;
|
|
597
|
+
END IF;
|
|
598
|
+
|
|
599
|
+
SELECT id INTO conflicting_id
|
|
600
|
+
FROM mem_records
|
|
601
|
+
WHERE keys && NEW.keys AND id != NEW.id
|
|
602
|
+
LIMIT 1;
|
|
603
|
+
|
|
604
|
+
IF conflicting_id IS NOT NULL THEN
|
|
605
|
+
RAISE EXCEPTION 'Key conflict: one or more keys in % already exist on record %',
|
|
606
|
+
NEW.keys, conflicting_id
|
|
607
|
+
USING ERRCODE = 'unique_violation';
|
|
608
|
+
END IF;
|
|
609
|
+
|
|
610
|
+
RETURN NEW;
|
|
611
|
+
END;
|
|
612
|
+
$$;
|
|
613
|
+
|
|
614
|
+
DROP TRIGGER IF EXISTS mem_enforce_key_uniqueness_trigger ON mem_records;
|
|
615
|
+
CREATE TRIGGER mem_enforce_key_uniqueness_trigger
|
|
616
|
+
BEFORE INSERT OR UPDATE ON mem_records
|
|
617
|
+
FOR EACH ROW
|
|
618
|
+
EXECUTE FUNCTION mem_enforce_key_uniqueness();
|
|
619
|
+
|
|
620
|
+
CREATE OR REPLACE FUNCTION mem_find_by_key(p_key TEXT)
|
|
621
|
+
RETURNS TABLE (
|
|
622
|
+
id UUID,
|
|
623
|
+
type TEXT,
|
|
624
|
+
data JSONB,
|
|
625
|
+
tags TEXT[],
|
|
626
|
+
keys TEXT[],
|
|
627
|
+
weight INTEGER,
|
|
628
|
+
access_count INTEGER,
|
|
629
|
+
status TEXT,
|
|
630
|
+
created_at TIMESTAMPTZ,
|
|
631
|
+
updated_at TIMESTAMPTZ
|
|
632
|
+
)
|
|
633
|
+
LANGUAGE sql
|
|
634
|
+
AS $$
|
|
635
|
+
SELECT r.id, r.type, r.data, r.tags, r.keys, r.weight, r.access_count,
|
|
636
|
+
r.status, r.created_at, r.updated_at
|
|
637
|
+
FROM mem_records r
|
|
638
|
+
WHERE r.keys @> ARRAY[p_key];
|
|
639
|
+
$$;
|
|
640
|
+
|
|
641
|
+
CREATE OR REPLACE FUNCTION mem_upsert_by_keys(
|
|
642
|
+
p_type TEXT,
|
|
643
|
+
p_data JSONB,
|
|
644
|
+
p_tags TEXT[],
|
|
645
|
+
p_keys TEXT[],
|
|
646
|
+
p_weight INTEGER DEFAULT NULL,
|
|
647
|
+
p_embedding vector(1536) DEFAULT NULL
|
|
648
|
+
)
|
|
649
|
+
RETURNS TABLE (id UUID, action TEXT)
|
|
650
|
+
LANGUAGE plpgsql
|
|
651
|
+
AS $$
|
|
652
|
+
DECLARE
|
|
653
|
+
existing_id UUID;
|
|
654
|
+
result_id UUID;
|
|
655
|
+
result_action TEXT;
|
|
656
|
+
BEGIN
|
|
657
|
+
-- Find existing record by key overlap
|
|
658
|
+
SELECT r.id INTO existing_id
|
|
659
|
+
FROM mem_records r
|
|
660
|
+
WHERE r.keys && p_keys
|
|
661
|
+
LIMIT 1;
|
|
662
|
+
|
|
663
|
+
IF existing_id IS NOT NULL THEN
|
|
664
|
+
-- Update: merge data, union tags and keys
|
|
665
|
+
UPDATE mem_records r
|
|
666
|
+
SET data = r.data || p_data,
|
|
667
|
+
tags = (SELECT ARRAY(SELECT DISTINCT unnest FROM unnest(COALESCE(r.tags, '{}') || COALESCE(p_tags, '{}')))),
|
|
668
|
+
keys = (SELECT ARRAY(SELECT DISTINCT unnest FROM unnest(COALESCE(r.keys, '{}') || COALESCE(p_keys, '{}')))),
|
|
669
|
+
weight = COALESCE(p_weight, r.weight),
|
|
670
|
+
embedding = COALESCE(p_embedding, r.embedding)
|
|
671
|
+
WHERE r.id = existing_id;
|
|
672
|
+
|
|
673
|
+
result_id := existing_id;
|
|
674
|
+
result_action := 'updated';
|
|
675
|
+
ELSE
|
|
676
|
+
-- Insert new record
|
|
677
|
+
INSERT INTO mem_records (type, data, tags, keys, weight, embedding)
|
|
678
|
+
VALUES (
|
|
679
|
+
p_type,
|
|
680
|
+
p_data,
|
|
681
|
+
p_tags,
|
|
682
|
+
p_keys,
|
|
683
|
+
COALESCE(p_weight, 5),
|
|
684
|
+
p_embedding
|
|
685
|
+
)
|
|
686
|
+
RETURNING mem_records.id INTO result_id;
|
|
687
|
+
|
|
688
|
+
result_action := 'inserted';
|
|
689
|
+
END IF;
|
|
690
|
+
|
|
691
|
+
RETURN QUERY SELECT result_id, result_action;
|
|
692
|
+
END;
|
|
693
|
+
$$;
|
|
694
|
+
|
|
477
695
|
-- =============================================================================
|
|
478
696
|
-- TRIGGERS
|
|
479
697
|
-- =============================================================================
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG;;;;cAIZ,cAAc
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG;;;;cAIZ,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAqG4B,cAAc;2CAC3B,cAAc;CACxD,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;CAO/B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwlB5B,CAAC;AAEF,kEAAkE;AAClE,MAAM,UAAU,eAAe;IAC7B,OAAO,GAAG,UAAU,OAAO,gBAAgB,OAAO,aAAa,EAAE,CAAC;AACpE,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface MemRecord {
|
|
|
6
6
|
type: string;
|
|
7
7
|
data: Record<string, unknown>;
|
|
8
8
|
tags?: string[];
|
|
9
|
+
keys?: string[];
|
|
9
10
|
embedding?: number[];
|
|
10
11
|
searchable_text?: string;
|
|
11
12
|
weight: number;
|
|
@@ -60,17 +61,20 @@ export interface ContextResult {
|
|
|
60
61
|
type: string;
|
|
61
62
|
data: Record<string, unknown>;
|
|
62
63
|
tags?: string[];
|
|
64
|
+
keys?: string[];
|
|
63
65
|
weight: number;
|
|
64
66
|
access_count: number;
|
|
65
67
|
relevance_score: number;
|
|
66
68
|
}
|
|
67
69
|
export interface AddRecordOptions {
|
|
68
70
|
tags?: string[];
|
|
71
|
+
keys?: string[];
|
|
69
72
|
weight?: number;
|
|
70
73
|
generateEmbedding?: boolean;
|
|
71
74
|
}
|
|
72
75
|
export interface UpdateRecordOptions {
|
|
73
76
|
tags?: string[];
|
|
77
|
+
keys?: string[];
|
|
74
78
|
regenerateEmbedding?: boolean;
|
|
75
79
|
}
|
|
76
80
|
export interface SearchOptions {
|
|
@@ -89,6 +93,20 @@ export interface LinkedOptions {
|
|
|
89
93
|
relation?: string;
|
|
90
94
|
direction?: "outgoing" | "incoming" | "both";
|
|
91
95
|
}
|
|
96
|
+
export interface ExternalRef {
|
|
97
|
+
id: string;
|
|
98
|
+
record_id: string;
|
|
99
|
+
system: string;
|
|
100
|
+
external_id: string;
|
|
101
|
+
external_url?: string;
|
|
102
|
+
metadata?: Record<string, unknown>;
|
|
103
|
+
last_synced_at: string;
|
|
104
|
+
created_at: string;
|
|
105
|
+
}
|
|
106
|
+
export interface AddExternalRefOptions {
|
|
107
|
+
url?: string;
|
|
108
|
+
metadata?: Record<string, unknown>;
|
|
109
|
+
}
|
|
92
110
|
export interface LinkedRecord {
|
|
93
111
|
id: string;
|
|
94
112
|
type: string;
|
|
@@ -97,4 +115,8 @@ export interface LinkedRecord {
|
|
|
97
115
|
bidirectional: boolean;
|
|
98
116
|
link_metadata?: Record<string, unknown>;
|
|
99
117
|
}
|
|
118
|
+
export interface UpsertResult {
|
|
119
|
+
record: MemRecord;
|
|
120
|
+
action: "inserted" | "updated";
|
|
121
|
+
}
|
|
100
122
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|