@hasna/mementos 0.10.17 → 0.10.18
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/index.js +17 -1
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/memories.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/mcp/index.js +48 -2
- package/dist/server/index.js +17 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -2598,6 +2598,11 @@ CREATE INDEX IF NOT EXISTS idx_machines_hostname ON machines(hostname);
|
|
|
2598
2598
|
ALTER TABLE memories ADD COLUMN machine_id TEXT REFERENCES machines(id) ON DELETE SET NULL;
|
|
2599
2599
|
CREATE INDEX IF NOT EXISTS idx_memories_machine ON memories(machine_id);
|
|
2600
2600
|
INSERT OR IGNORE INTO _migrations (id) VALUES (15);
|
|
2601
|
+
`,
|
|
2602
|
+
`
|
|
2603
|
+
ALTER TABLE memories ADD COLUMN flag TEXT;
|
|
2604
|
+
CREATE INDEX IF NOT EXISTS idx_memories_flag ON memories(flag);
|
|
2605
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (16);
|
|
2601
2606
|
`,
|
|
2602
2607
|
`
|
|
2603
2608
|
CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
@@ -2608,7 +2613,7 @@ CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
|
2608
2613
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
2609
2614
|
);
|
|
2610
2615
|
CREATE INDEX IF NOT EXISTS idx_memory_embeddings_model ON memory_embeddings(model);
|
|
2611
|
-
INSERT OR IGNORE INTO _migrations (id) VALUES (
|
|
2616
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (17);
|
|
2612
2617
|
`
|
|
2613
2618
|
];
|
|
2614
2619
|
});
|
|
@@ -2950,6 +2955,7 @@ function parseMemoryRow(row) {
|
|
|
2950
2955
|
project_id: row["project_id"] || null,
|
|
2951
2956
|
session_id: row["session_id"] || null,
|
|
2952
2957
|
machine_id: row["machine_id"] || null,
|
|
2958
|
+
flag: row["flag"] || null,
|
|
2953
2959
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
2954
2960
|
access_count: row["access_count"],
|
|
2955
2961
|
version: row["version"],
|
|
@@ -3178,6 +3184,12 @@ function listMemories(filter, db) {
|
|
|
3178
3184
|
conditions.push("pinned = ?");
|
|
3179
3185
|
params.push(filter.pinned ? 1 : 0);
|
|
3180
3186
|
}
|
|
3187
|
+
if (filter.flagged === true) {
|
|
3188
|
+
conditions.push("flag IS NOT NULL");
|
|
3189
|
+
} else if (filter.flag) {
|
|
3190
|
+
conditions.push("flag = ?");
|
|
3191
|
+
params.push(filter.flag);
|
|
3192
|
+
}
|
|
3181
3193
|
if (filter.tags && filter.tags.length > 0) {
|
|
3182
3194
|
for (const tag of filter.tags) {
|
|
3183
3195
|
conditions.push("id IN (SELECT memory_id FROM memory_tags WHERE tag = ?)");
|
|
@@ -3271,6 +3283,10 @@ function updateMemory(id, input, db) {
|
|
|
3271
3283
|
sets.push("expires_at = ?");
|
|
3272
3284
|
params.push(input.expires_at);
|
|
3273
3285
|
}
|
|
3286
|
+
if (input.flag !== undefined) {
|
|
3287
|
+
sets.push("flag = ?");
|
|
3288
|
+
params.push(input.flag ?? null);
|
|
3289
|
+
}
|
|
3274
3290
|
if (input.tags !== undefined) {
|
|
3275
3291
|
sets.push("tags = ?");
|
|
3276
3292
|
params.push(JSON.stringify(input.tags));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmCtC,wBAAgB,SAAS,IAAI,MAAM,CAkBlC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmCtC,wBAAgB,SAAS,IAAI,MAAM,CAkBlC;AAicD,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAerD;AA+BD,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAef"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memories.d.ts","sourceRoot":"","sources":["../../src/db/memories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AA+B3B,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"memories.d.ts","sourceRoot":"","sources":["../../src/db/memories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AA+B3B,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA0BnE;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,iBAAiB,EACxB,UAAU,GAAE,UAAoB,EAChC,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAsKR;AAMD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,GAAG,IAAI,CA4Bf;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CAuBV;AAMD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CAkH3E;AAMD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,iBAAiB,EACxB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAqHR;AAMD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAW/D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAmBvE;AAMD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAM3D;AAUD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAsBpE;AAMD,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAiB1D;AAMD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAwBlF;AAMD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvG;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAuCjC"}
|
package/dist/index.js
CHANGED
|
@@ -504,6 +504,11 @@ CREATE INDEX IF NOT EXISTS idx_machines_hostname ON machines(hostname);
|
|
|
504
504
|
ALTER TABLE memories ADD COLUMN machine_id TEXT REFERENCES machines(id) ON DELETE SET NULL;
|
|
505
505
|
CREATE INDEX IF NOT EXISTS idx_memories_machine ON memories(machine_id);
|
|
506
506
|
INSERT OR IGNORE INTO _migrations (id) VALUES (15);
|
|
507
|
+
`,
|
|
508
|
+
`
|
|
509
|
+
ALTER TABLE memories ADD COLUMN flag TEXT;
|
|
510
|
+
CREATE INDEX IF NOT EXISTS idx_memories_flag ON memories(flag);
|
|
511
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (16);
|
|
507
512
|
`,
|
|
508
513
|
`
|
|
509
514
|
CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
@@ -514,7 +519,7 @@ CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
|
514
519
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
515
520
|
);
|
|
516
521
|
CREATE INDEX IF NOT EXISTS idx_memory_embeddings_model ON memory_embeddings(model);
|
|
517
|
-
INSERT OR IGNORE INTO _migrations (id) VALUES (
|
|
522
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (17);
|
|
518
523
|
`
|
|
519
524
|
];
|
|
520
525
|
var _db = null;
|
|
@@ -794,6 +799,7 @@ function parseMemoryRow(row) {
|
|
|
794
799
|
project_id: row["project_id"] || null,
|
|
795
800
|
session_id: row["session_id"] || null,
|
|
796
801
|
machine_id: row["machine_id"] || null,
|
|
802
|
+
flag: row["flag"] || null,
|
|
797
803
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
798
804
|
access_count: row["access_count"],
|
|
799
805
|
version: row["version"],
|
|
@@ -1022,6 +1028,12 @@ function listMemories(filter, db) {
|
|
|
1022
1028
|
conditions.push("pinned = ?");
|
|
1023
1029
|
params.push(filter.pinned ? 1 : 0);
|
|
1024
1030
|
}
|
|
1031
|
+
if (filter.flagged === true) {
|
|
1032
|
+
conditions.push("flag IS NOT NULL");
|
|
1033
|
+
} else if (filter.flag) {
|
|
1034
|
+
conditions.push("flag = ?");
|
|
1035
|
+
params.push(filter.flag);
|
|
1036
|
+
}
|
|
1025
1037
|
if (filter.tags && filter.tags.length > 0) {
|
|
1026
1038
|
for (const tag of filter.tags) {
|
|
1027
1039
|
conditions.push("id IN (SELECT memory_id FROM memory_tags WHERE tag = ?)");
|
|
@@ -1115,6 +1127,10 @@ function updateMemory(id, input, db) {
|
|
|
1115
1127
|
sets.push("expires_at = ?");
|
|
1116
1128
|
params.push(input.expires_at);
|
|
1117
1129
|
}
|
|
1130
|
+
if (input.flag !== undefined) {
|
|
1131
|
+
sets.push("flag = ?");
|
|
1132
|
+
params.push(input.flag ?? null);
|
|
1133
|
+
}
|
|
1118
1134
|
if (input.tags !== undefined) {
|
|
1119
1135
|
sets.push("tags = ?");
|
|
1120
1136
|
params.push(JSON.stringify(input.tags));
|
package/dist/mcp/index.js
CHANGED
|
@@ -564,6 +564,11 @@ CREATE INDEX IF NOT EXISTS idx_machines_hostname ON machines(hostname);
|
|
|
564
564
|
ALTER TABLE memories ADD COLUMN machine_id TEXT REFERENCES machines(id) ON DELETE SET NULL;
|
|
565
565
|
CREATE INDEX IF NOT EXISTS idx_memories_machine ON memories(machine_id);
|
|
566
566
|
INSERT OR IGNORE INTO _migrations (id) VALUES (15);
|
|
567
|
+
`,
|
|
568
|
+
`
|
|
569
|
+
ALTER TABLE memories ADD COLUMN flag TEXT;
|
|
570
|
+
CREATE INDEX IF NOT EXISTS idx_memories_flag ON memories(flag);
|
|
571
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (16);
|
|
567
572
|
`,
|
|
568
573
|
`
|
|
569
574
|
CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
@@ -574,7 +579,7 @@ CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
|
574
579
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
575
580
|
);
|
|
576
581
|
CREATE INDEX IF NOT EXISTS idx_memory_embeddings_model ON memory_embeddings(model);
|
|
577
|
-
INSERT OR IGNORE INTO _migrations (id) VALUES (
|
|
582
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (17);
|
|
578
583
|
`
|
|
579
584
|
];
|
|
580
585
|
});
|
|
@@ -855,6 +860,7 @@ function parseMemoryRow(row) {
|
|
|
855
860
|
project_id: row["project_id"] || null,
|
|
856
861
|
session_id: row["session_id"] || null,
|
|
857
862
|
machine_id: row["machine_id"] || null,
|
|
863
|
+
flag: row["flag"] || null,
|
|
858
864
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
859
865
|
access_count: row["access_count"],
|
|
860
866
|
version: row["version"],
|
|
@@ -1083,6 +1089,12 @@ function listMemories(filter, db) {
|
|
|
1083
1089
|
conditions.push("pinned = ?");
|
|
1084
1090
|
params.push(filter.pinned ? 1 : 0);
|
|
1085
1091
|
}
|
|
1092
|
+
if (filter.flagged === true) {
|
|
1093
|
+
conditions.push("flag IS NOT NULL");
|
|
1094
|
+
} else if (filter.flag) {
|
|
1095
|
+
conditions.push("flag = ?");
|
|
1096
|
+
params.push(filter.flag);
|
|
1097
|
+
}
|
|
1086
1098
|
if (filter.tags && filter.tags.length > 0) {
|
|
1087
1099
|
for (const tag of filter.tags) {
|
|
1088
1100
|
conditions.push("id IN (SELECT memory_id FROM memory_tags WHERE tag = ?)");
|
|
@@ -1176,6 +1188,10 @@ function updateMemory(id, input, db) {
|
|
|
1176
1188
|
sets.push("expires_at = ?");
|
|
1177
1189
|
params.push(input.expires_at);
|
|
1178
1190
|
}
|
|
1191
|
+
if (input.flag !== undefined) {
|
|
1192
|
+
sets.push("flag = ?");
|
|
1193
|
+
params.push(input.flag ?? null);
|
|
1194
|
+
}
|
|
1179
1195
|
if (input.tags !== undefined) {
|
|
1180
1196
|
sets.push("tags = ?");
|
|
1181
1197
|
params.push(JSON.stringify(input.tags));
|
|
@@ -9826,6 +9842,34 @@ ${lines.join(`
|
|
|
9826
9842
|
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
9827
9843
|
}
|
|
9828
9844
|
});
|
|
9845
|
+
server.tool("memory_flag", "Flag a memory for attention: needs-review, outdated, verify, or any custom flag. Flagged memories surface at the top of memory_context. Pass flag=null to clear.", {
|
|
9846
|
+
id: exports_external.string().optional().describe("Memory ID or partial ID"),
|
|
9847
|
+
key: exports_external.string().optional().describe("Memory key"),
|
|
9848
|
+
flag: exports_external.string().nullable().optional().describe("Flag value: needs-review | outdated | verify | important | null (to clear)"),
|
|
9849
|
+
agent_id: exports_external.string().optional()
|
|
9850
|
+
}, async (args) => {
|
|
9851
|
+
try {
|
|
9852
|
+
const db = getDatabase();
|
|
9853
|
+
let memId = null;
|
|
9854
|
+
if (args.id) {
|
|
9855
|
+
memId = resolvePartialId(db, "memories", args.id) ?? args.id;
|
|
9856
|
+
} else if (args.key) {
|
|
9857
|
+
const row = db.query("SELECT id FROM memories WHERE key = ? AND status = 'active' LIMIT 1").get(args.key);
|
|
9858
|
+
memId = row?.id ?? null;
|
|
9859
|
+
}
|
|
9860
|
+
if (!memId)
|
|
9861
|
+
return { content: [{ type: "text", text: `Memory not found: ${args.id || args.key}` }], isError: true };
|
|
9862
|
+
const memory = getMemory(memId);
|
|
9863
|
+
if (!memory)
|
|
9864
|
+
return { content: [{ type: "text", text: `Memory not found: ${memId}` }], isError: true };
|
|
9865
|
+
const flagVal = args.flag ?? null;
|
|
9866
|
+
db.run("UPDATE memories SET flag = ?, updated_at = ? WHERE id = ?", [flagVal, new Date().toISOString(), memId]);
|
|
9867
|
+
const flagStr = args.flag ?? null;
|
|
9868
|
+
return { content: [{ type: "text", text: flagStr ? `Flagged "${memory.key}" as: ${flagStr}` : `Cleared flag on "${memory.key}"` }] };
|
|
9869
|
+
} catch (e) {
|
|
9870
|
+
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
9871
|
+
}
|
|
9872
|
+
});
|
|
9829
9873
|
server.tool("memory_health", "Comprehensive health check for memories. Detects: stale (old + 0 access), high-importance-forgotten (importance>=7 + not accessed in 60d), and possibly-superseded (newer memory with similar key). Returns actionable summary.", {
|
|
9830
9874
|
stale_days: exports_external.coerce.number().optional().describe("Days with no access to consider a memory stale (default: 30)"),
|
|
9831
9875
|
forgotten_days: exports_external.coerce.number().optional().describe("Days since access for high-importance memories (default: 60)"),
|
|
@@ -10850,6 +10894,8 @@ server.tool("memory_context", "Get memories relevant to current context. Uses ti
|
|
|
10850
10894
|
const decayFactor = Math.pow(0.5, ageDays / halflifeDays);
|
|
10851
10895
|
effectiveScore = m.importance * decayFactor;
|
|
10852
10896
|
}
|
|
10897
|
+
if (m.flag)
|
|
10898
|
+
effectiveScore = Math.max(effectiveScore, 11);
|
|
10853
10899
|
return { ...m, effective_score: Math.round(effectiveScore * 100) / 100 };
|
|
10854
10900
|
});
|
|
10855
10901
|
const limit = args.limit || 30;
|
|
@@ -10858,7 +10904,7 @@ server.tool("memory_context", "Get memories relevant to current context. Uses ti
|
|
|
10858
10904
|
for (const m of top) {
|
|
10859
10905
|
touchMemory(m.id);
|
|
10860
10906
|
}
|
|
10861
|
-
const lines = top.map((m) => `[${m.scope}/${m.category}] ${m.key}: ${m.value} (score: ${m.effective_score}, raw: ${m.importance}${m.pinned ? ", pinned" : ""})`);
|
|
10907
|
+
const lines = top.map((m) => `[${m.scope}/${m.category}] ${m.key}: ${m.value} (score: ${m.effective_score}, raw: ${m.importance}${m.pinned ? ", pinned" : ""}${m.flag ? `, flag: ${m.flag}` : ""})`);
|
|
10862
10908
|
return { content: [{ type: "text", text: lines.join(`
|
|
10863
10909
|
`) }] };
|
|
10864
10910
|
} catch (e) {
|
package/dist/server/index.js
CHANGED
|
@@ -559,6 +559,11 @@ CREATE INDEX IF NOT EXISTS idx_machines_hostname ON machines(hostname);
|
|
|
559
559
|
ALTER TABLE memories ADD COLUMN machine_id TEXT REFERENCES machines(id) ON DELETE SET NULL;
|
|
560
560
|
CREATE INDEX IF NOT EXISTS idx_memories_machine ON memories(machine_id);
|
|
561
561
|
INSERT OR IGNORE INTO _migrations (id) VALUES (15);
|
|
562
|
+
`,
|
|
563
|
+
`
|
|
564
|
+
ALTER TABLE memories ADD COLUMN flag TEXT;
|
|
565
|
+
CREATE INDEX IF NOT EXISTS idx_memories_flag ON memories(flag);
|
|
566
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (16);
|
|
562
567
|
`,
|
|
563
568
|
`
|
|
564
569
|
CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
@@ -569,7 +574,7 @@ CREATE TABLE IF NOT EXISTS memory_embeddings (
|
|
|
569
574
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
570
575
|
);
|
|
571
576
|
CREATE INDEX IF NOT EXISTS idx_memory_embeddings_model ON memory_embeddings(model);
|
|
572
|
-
INSERT OR IGNORE INTO _migrations (id) VALUES (
|
|
577
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (17);
|
|
573
578
|
`
|
|
574
579
|
];
|
|
575
580
|
});
|
|
@@ -850,6 +855,7 @@ function parseMemoryRow(row) {
|
|
|
850
855
|
project_id: row["project_id"] || null,
|
|
851
856
|
session_id: row["session_id"] || null,
|
|
852
857
|
machine_id: row["machine_id"] || null,
|
|
858
|
+
flag: row["flag"] || null,
|
|
853
859
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
854
860
|
access_count: row["access_count"],
|
|
855
861
|
version: row["version"],
|
|
@@ -1078,6 +1084,12 @@ function listMemories(filter, db) {
|
|
|
1078
1084
|
conditions.push("pinned = ?");
|
|
1079
1085
|
params.push(filter.pinned ? 1 : 0);
|
|
1080
1086
|
}
|
|
1087
|
+
if (filter.flagged === true) {
|
|
1088
|
+
conditions.push("flag IS NOT NULL");
|
|
1089
|
+
} else if (filter.flag) {
|
|
1090
|
+
conditions.push("flag = ?");
|
|
1091
|
+
params.push(filter.flag);
|
|
1092
|
+
}
|
|
1081
1093
|
if (filter.tags && filter.tags.length > 0) {
|
|
1082
1094
|
for (const tag of filter.tags) {
|
|
1083
1095
|
conditions.push("id IN (SELECT memory_id FROM memory_tags WHERE tag = ?)");
|
|
@@ -1171,6 +1183,10 @@ function updateMemory(id, input, db) {
|
|
|
1171
1183
|
sets.push("expires_at = ?");
|
|
1172
1184
|
params.push(input.expires_at);
|
|
1173
1185
|
}
|
|
1186
|
+
if (input.flag !== undefined) {
|
|
1187
|
+
sets.push("flag = ?");
|
|
1188
|
+
params.push(input.flag ?? null);
|
|
1189
|
+
}
|
|
1174
1190
|
if (input.tags !== undefined) {
|
|
1175
1191
|
sets.push("tags = ?");
|
|
1176
1192
|
params.push(JSON.stringify(input.tags));
|
package/dist/types/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export interface Memory {
|
|
|
18
18
|
project_id: string | null;
|
|
19
19
|
session_id: string | null;
|
|
20
20
|
machine_id?: string | null;
|
|
21
|
+
flag?: string | null;
|
|
21
22
|
metadata: Record<string, unknown>;
|
|
22
23
|
access_count: number;
|
|
23
24
|
version: number;
|
|
@@ -46,6 +47,7 @@ export interface CreateMemoryInput {
|
|
|
46
47
|
expires_at?: string;
|
|
47
48
|
ttl_ms?: number;
|
|
48
49
|
machine_id?: string;
|
|
50
|
+
flag?: string;
|
|
49
51
|
}
|
|
50
52
|
export interface UpdateMemoryInput {
|
|
51
53
|
value?: string;
|
|
@@ -58,6 +60,7 @@ export interface UpdateMemoryInput {
|
|
|
58
60
|
status?: MemoryStatus;
|
|
59
61
|
metadata?: Record<string, unknown>;
|
|
60
62
|
expires_at?: string | null;
|
|
63
|
+
flag?: string | null;
|
|
61
64
|
version: number;
|
|
62
65
|
}
|
|
63
66
|
export interface MemoryFilter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAM1D,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAM7E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAM7E,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAM7D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAMD,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IACjD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAMD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|