@j0hanz/memory-mcp 0.1.1 → 1.0.1
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/README.md +32 -25
- package/dist/completions/index.d.ts.map +1 -1
- package/dist/completions/index.js +8 -5
- package/dist/completions/index.js.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +68 -8
- package/dist/db/index.js.map +1 -1
- package/dist/db/typed.d.ts +9 -3
- package/dist/db/typed.d.ts.map +1 -1
- package/dist/db/typed.js +33 -4
- package/dist/db/typed.js.map +1 -1
- package/dist/index.js +13 -8
- package/dist/index.js.map +1 -1
- package/dist/instructions.md +102 -56
- package/dist/lib/errors.d.ts +3 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +11 -4
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/hash.d.ts.map +1 -1
- package/dist/lib/hash.js +9 -2
- package/dist/lib/hash.js.map +1 -1
- package/dist/lib/instructions.d.ts +2 -0
- package/dist/lib/instructions.d.ts.map +1 -0
- package/dist/lib/instructions.js +27 -0
- package/dist/lib/instructions.js.map +1 -0
- package/dist/lib/mcp-utils.d.ts +6 -0
- package/dist/lib/mcp-utils.d.ts.map +1 -0
- package/dist/lib/mcp-utils.js +26 -0
- package/dist/lib/mcp-utils.js.map +1 -0
- package/dist/lib/pagination.d.ts.map +1 -1
- package/dist/lib/pagination.js +14 -7
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/search-cursor.d.ts +13 -0
- package/dist/lib/search-cursor.d.ts.map +1 -0
- package/dist/lib/search-cursor.js +89 -0
- package/dist/lib/search-cursor.js.map +1 -0
- package/dist/lib/search.d.ts +16 -0
- package/dist/lib/search.d.ts.map +1 -1
- package/dist/lib/search.js +53 -12
- package/dist/lib/search.js.map +1 -1
- package/dist/lib/tool-response.d.ts +1 -5
- package/dist/lib/tool-response.d.ts.map +1 -1
- package/dist/lib/tool-response.js +9 -7
- package/dist/lib/tool-response.js.map +1 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +10 -9
- package/dist/lib/types.js.map +1 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +21 -35
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +12 -32
- package/dist/resources/index.js.map +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/inputs.d.ts +5 -5
- package/dist/schemas/inputs.d.ts.map +1 -1
- package/dist/schemas/inputs.js +21 -14
- package/dist/schemas/inputs.js.map +1 -1
- package/dist/schemas/outputs.d.ts +94 -148
- package/dist/schemas/outputs.d.ts.map +1 -1
- package/dist/schemas/outputs.js +59 -66
- package/dist/schemas/outputs.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +20 -18
- package/dist/server.js.map +1 -1
- package/dist/tools/create-relationship.d.ts.map +1 -1
- package/dist/tools/create-relationship.js +28 -17
- package/dist/tools/create-relationship.js.map +1 -1
- package/dist/tools/delete-memories.d.ts.map +1 -1
- package/dist/tools/delete-memories.js +23 -20
- package/dist/tools/delete-memories.js.map +1 -1
- package/dist/tools/delete-memory.d.ts.map +1 -1
- package/dist/tools/delete-memory.js +13 -13
- package/dist/tools/delete-memory.js.map +1 -1
- package/dist/tools/delete-relationship.d.ts.map +1 -1
- package/dist/tools/delete-relationship.js +18 -12
- package/dist/tools/delete-relationship.js.map +1 -1
- package/dist/tools/get-memory.d.ts.map +1 -1
- package/dist/tools/get-memory.js +16 -8
- package/dist/tools/get-memory.js.map +1 -1
- package/dist/tools/get-relationships.d.ts.map +1 -1
- package/dist/tools/get-relationships.js +27 -16
- package/dist/tools/get-relationships.js.map +1 -1
- package/dist/tools/index.d.ts +6 -14
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory-stats.d.ts.map +1 -1
- package/dist/tools/memory-stats.js +26 -20
- package/dist/tools/memory-stats.js.map +1 -1
- package/dist/tools/progress.d.ts +34 -0
- package/dist/tools/progress.d.ts.map +1 -0
- package/dist/tools/progress.js +129 -0
- package/dist/tools/progress.js.map +1 -0
- package/dist/tools/recall.d.ts.map +1 -1
- package/dist/tools/recall.js +150 -98
- package/dist/tools/recall.js.map +1 -1
- package/dist/tools/result.d.ts +5 -0
- package/dist/tools/result.d.ts.map +1 -0
- package/dist/tools/result.js +14 -0
- package/dist/tools/result.js.map +1 -0
- package/dist/tools/retrieve-context.d.ts.map +1 -1
- package/dist/tools/retrieve-context.js +99 -26
- package/dist/tools/retrieve-context.js.map +1 -1
- package/dist/tools/search-memories.d.ts.map +1 -1
- package/dist/tools/search-memories.js +28 -40
- package/dist/tools/search-memories.js.map +1 -1
- package/dist/tools/store-memories.d.ts.map +1 -1
- package/dist/tools/store-memories.js +30 -18
- package/dist/tools/store-memories.js.map +1 -1
- package/dist/tools/store-memory.d.ts.map +1 -1
- package/dist/tools/store-memory.js +32 -13
- package/dist/tools/store-memory.js.map +1 -1
- package/dist/tools/update-memory.d.ts.map +1 -1
- package/dist/tools/update-memory.js +35 -16
- package/dist/tools/update-memory.js.map +1 -1
- package/package.json +1 -2
- package/dist/tools/helpers.d.ts +0 -13
- package/dist/tools/helpers.d.ts.map +0 -1
- package/dist/tools/helpers.js +0 -49
- package/dist/tools/helpers.js.map +0 -1
package/dist/lib/search.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
const FTS_SAFE_TOKEN_REGEX = /[A-Za-z0-9_]+/g;
|
|
2
2
|
const FTS_EMPTY_QUERY_FALLBACK = '"__mcp_no_results__"';
|
|
3
|
+
const BASE_RANKED_SEARCH_SQL = `SELECT m.*, memories_fts.rank AS rank FROM memories m
|
|
4
|
+
JOIN memories_fts ON memories_fts.rowid = m.rowid`;
|
|
3
5
|
function tokenizeQuery(query) {
|
|
4
6
|
return query.match(FTS_SAFE_TOKEN_REGEX) ?? [];
|
|
5
7
|
}
|
|
@@ -10,20 +12,20 @@ export function sanitizeFtsQuery(query) {
|
|
|
10
12
|
}
|
|
11
13
|
return tokens.map((token) => `"${token}"`).join(' ');
|
|
12
14
|
}
|
|
15
|
+
const FILTER_RULES = [
|
|
16
|
+
{ key: 'min_importance', clause: 'm.importance >= ?' },
|
|
17
|
+
{ key: 'max_importance', clause: 'm.importance <= ?' },
|
|
18
|
+
{ key: 'memory_type', clause: 'm.memory_type = ?' },
|
|
19
|
+
];
|
|
13
20
|
export function buildFilterClauses(filters) {
|
|
14
21
|
const clauses = [];
|
|
15
22
|
const params = [];
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
params.push(filters.max_importance);
|
|
23
|
-
}
|
|
24
|
-
if (filters.memory_type != null) {
|
|
25
|
-
clauses.push('m.memory_type = ?');
|
|
26
|
-
params.push(filters.memory_type);
|
|
23
|
+
for (const rule of FILTER_RULES) {
|
|
24
|
+
const value = filters[rule.key];
|
|
25
|
+
if (value != null) {
|
|
26
|
+
clauses.push(rule.clause);
|
|
27
|
+
params.push(value);
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
return { clauses, params };
|
|
29
31
|
}
|
|
@@ -31,6 +33,45 @@ export function buildAndWhereClause(clauses) {
|
|
|
31
33
|
if (clauses.length === 0) {
|
|
32
34
|
return '';
|
|
33
35
|
}
|
|
34
|
-
return
|
|
36
|
+
return clauses.map((clause) => ` AND ${clause}`).join('');
|
|
37
|
+
}
|
|
38
|
+
function buildRankedSearchSql(whereExtra, cursor) {
|
|
39
|
+
if (!cursor || cursor.mode === 'offset') {
|
|
40
|
+
return `${BASE_RANKED_SEARCH_SQL}
|
|
41
|
+
WHERE memories_fts MATCH ?${whereExtra}
|
|
42
|
+
ORDER BY memories_fts.rank, m.hash
|
|
43
|
+
LIMIT ? OFFSET ?`;
|
|
44
|
+
}
|
|
45
|
+
return `${BASE_RANKED_SEARCH_SQL}
|
|
46
|
+
WHERE memories_fts MATCH ?${whereExtra}
|
|
47
|
+
AND (
|
|
48
|
+
memories_fts.rank > ?
|
|
49
|
+
OR (memories_fts.rank = ? AND m.hash > ?)
|
|
50
|
+
)
|
|
51
|
+
ORDER BY memories_fts.rank, m.hash
|
|
52
|
+
LIMIT ?`;
|
|
53
|
+
}
|
|
54
|
+
export function loadRankedSearchRows(db, query, limit, cursor, filters) {
|
|
55
|
+
const ftsQuery = sanitizeFtsQuery(query);
|
|
56
|
+
const filter = buildFilterClauses(filters);
|
|
57
|
+
const whereExtra = buildAndWhereClause(filter.clauses);
|
|
58
|
+
const sql = buildRankedSearchSql(whereExtra, cursor);
|
|
59
|
+
const stmt = db.prepareOnce(sql);
|
|
60
|
+
if (!cursor || cursor.mode === 'offset') {
|
|
61
|
+
const offset = cursor?.offset ?? 0;
|
|
62
|
+
return stmt.all(ftsQuery, ...filter.params, limit + 1, offset);
|
|
63
|
+
}
|
|
64
|
+
return stmt.all(ftsQuery, ...filter.params, cursor.rank, cursor.rank, cursor.hash, limit + 1);
|
|
65
|
+
}
|
|
66
|
+
export function toMemoryFilters(params) {
|
|
67
|
+
return {
|
|
68
|
+
...(params.min_importance != null
|
|
69
|
+
? { min_importance: params.min_importance }
|
|
70
|
+
: {}),
|
|
71
|
+
...(params.max_importance != null
|
|
72
|
+
? { max_importance: params.max_importance }
|
|
73
|
+
: {}),
|
|
74
|
+
...(params.memory_type != null ? { memory_type: params.memory_type } : {}),
|
|
75
|
+
};
|
|
35
76
|
}
|
|
36
77
|
//# sourceMappingURL=search.js.map
|
package/dist/lib/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
|
|
3
|
-
ok: boolean;
|
|
4
|
-
}
|
|
5
|
-
export declare function createToolResponse(structured: StructuredToolResponse): CallToolResult;
|
|
2
|
+
export declare function createToolResponse(payload: Record<string, unknown>): CallToolResult;
|
|
6
3
|
export declare function createErrorResponse(code: string, message: string): CallToolResult;
|
|
7
|
-
export {};
|
|
8
4
|
//# sourceMappingURL=tool-response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-response.d.ts","sourceRoot":"","sources":["../../src/lib/tool-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-response.d.ts","sourceRoot":"","sources":["../../src/lib/tool-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAoCzE,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,cAAc,CAEhB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,cAAc,CAEhB"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
function toTextContent(value) {
|
|
2
2
|
return { type: 'text', text: JSON.stringify(value) };
|
|
3
3
|
}
|
|
4
|
+
function createStructuredError(code, message) {
|
|
5
|
+
return {
|
|
6
|
+
ok: false,
|
|
7
|
+
error: { code, message },
|
|
8
|
+
};
|
|
9
|
+
}
|
|
4
10
|
function buildResponse(structured, isError = false) {
|
|
5
11
|
return {
|
|
6
12
|
content: [toTextContent(structured)],
|
|
@@ -8,14 +14,10 @@ function buildResponse(structured, isError = false) {
|
|
|
8
14
|
...(isError ? { isError: true } : {}),
|
|
9
15
|
};
|
|
10
16
|
}
|
|
11
|
-
export function createToolResponse(
|
|
12
|
-
return buildResponse(
|
|
17
|
+
export function createToolResponse(payload) {
|
|
18
|
+
return buildResponse(payload);
|
|
13
19
|
}
|
|
14
20
|
export function createErrorResponse(code, message) {
|
|
15
|
-
|
|
16
|
-
ok: false,
|
|
17
|
-
error: { code, message },
|
|
18
|
-
};
|
|
19
|
-
return buildResponse(structured, true);
|
|
21
|
+
return buildResponse(createStructuredError(code, message), true);
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=tool-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-response.js","sourceRoot":"","sources":["../../src/lib/tool-response.ts"],"names":[],"mappings":"AAWA,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CACpB,
|
|
1
|
+
{"version":3,"file":"tool-response.js","sourceRoot":"","sources":["../../src/lib/tool-response.ts"],"names":[],"mappings":"AAWA,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAY,EACZ,OAAe;IAEf,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,UAAmC,EACnC,OAAO,GAAG,KAAK;IAEf,OAAO;QACL,OAAO,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpC,iBAAiB,EAAE,UAAU;QAC7B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAgC;IAEhC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAe;IAEf,OAAO,aAAa,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC"}
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,YAAY,EACZ,WAAW,GAAG,SAAS,GAAG,eAAe,CAC1C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,YAAY,EACZ,WAAW,GAAG,SAAS,GAAG,eAAe,CAC1C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAQD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAOpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAYrD"}
|
package/dist/lib/types.js
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
return undefined;
|
|
4
|
-
}
|
|
5
|
-
return value.every((entry) => typeof entry === 'string') ? value : undefined;
|
|
1
|
+
function isStringArray(value) {
|
|
2
|
+
return (Array.isArray(value) && value.every((entry) => typeof entry === 'string'));
|
|
6
3
|
}
|
|
7
4
|
export function parseTags(tagsJson) {
|
|
8
5
|
try {
|
|
9
6
|
const parsed = JSON.parse(tagsJson);
|
|
10
|
-
return
|
|
7
|
+
return isStringArray(parsed) ? parsed : [];
|
|
11
8
|
}
|
|
12
9
|
catch {
|
|
13
10
|
return [];
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
13
|
export function parseMemoryRow(row) {
|
|
17
|
-
const
|
|
18
|
-
const relevance = rank != null ? -rank : undefined;
|
|
14
|
+
const relevance = row.rank != null ? -row.rank : undefined;
|
|
19
15
|
return {
|
|
20
|
-
|
|
16
|
+
hash: row.hash,
|
|
17
|
+
content: row.content,
|
|
21
18
|
tags: parseTags(row.tags),
|
|
19
|
+
memory_type: row.memory_type,
|
|
20
|
+
importance: row.importance,
|
|
21
|
+
created_at: row.created_at,
|
|
22
|
+
updated_at: row.updated_at,
|
|
22
23
|
...(relevance != null ? { relevance } : {}),
|
|
23
24
|
};
|
|
24
25
|
}
|
package/dist/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAyFA,SAAS,aAAa,CAAC,KAAc;IACnC,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAyFA,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAc;IAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAI1D"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -1,45 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
1. **Recall**: \`search_memories\` → \`recall\` → \`get_memory\`
|
|
13
|
-
2. **Store**: \`store_memory\` or \`store_memories\` (batch ≤50)
|
|
14
|
-
3. **Graph**: \`create_relationship\` → \`get_relationships\`
|
|
15
|
-
|
|
16
|
-
## RESOURCES
|
|
17
|
-
|
|
18
|
-
- \`internal://instructions\`: This document.
|
|
19
|
-
- \`memory://memories/{hash}\`: Single memory by SHA-256 hash.
|
|
20
|
-
`;
|
|
21
|
-
const HELP_MESSAGES = [
|
|
22
|
-
{
|
|
23
|
-
role: 'user',
|
|
24
|
-
content: {
|
|
25
|
-
type: 'text',
|
|
26
|
-
text: 'Show me the memory usage instructions.',
|
|
1
|
+
import { loadInstructions } from '../lib/instructions.js';
|
|
2
|
+
const INSTRUCTIONS_CONTENT = loadInstructions();
|
|
3
|
+
function createHelpMessages(instructions) {
|
|
4
|
+
return [
|
|
5
|
+
{
|
|
6
|
+
role: 'user',
|
|
7
|
+
content: {
|
|
8
|
+
type: 'text',
|
|
9
|
+
text: 'Show me the memory usage instructions.',
|
|
10
|
+
},
|
|
27
11
|
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
12
|
+
{
|
|
13
|
+
role: 'assistant',
|
|
14
|
+
content: {
|
|
15
|
+
type: 'text',
|
|
16
|
+
text: instructions,
|
|
17
|
+
},
|
|
34
18
|
},
|
|
35
|
-
|
|
36
|
-
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
const HELP_MESSAGES = createHelpMessages(INSTRUCTIONS_CONTENT);
|
|
37
22
|
const GET_HELP_PROMPT_CONFIG = {
|
|
38
23
|
title: 'Get Help',
|
|
39
24
|
description: 'Return the full usage instructions for all memory tools and workflows.',
|
|
40
25
|
};
|
|
26
|
+
const GET_HELP_PROMPT_NAME = 'get-help';
|
|
41
27
|
export function registerAllPrompts(server) {
|
|
42
|
-
server.registerPrompt(
|
|
28
|
+
server.registerPrompt(GET_HELP_PROMPT_NAME, GET_HELP_PROMPT_CONFIG, () => ({
|
|
43
29
|
messages: HELP_MESSAGES,
|
|
44
30
|
}));
|
|
45
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAGA,MAAM,oBAAoB,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,oBAAoB,GAAG,gBAAgB,EAAE,CAAC;AAEhD,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,wCAAwC;aAC/C;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;aACnB;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AAE/D,MAAM,sBAAsB,GAAG;IAC7B,KAAK,EAAE,UAAU;IACjB,WAAW,EACT,wEAAwE;CAClE,CAAC;AACX,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAExC,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;QACzE,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA+C9C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAyDzE"}
|
package/dist/resources/index.js
CHANGED
|
@@ -1,32 +1,11 @@
|
|
|
1
1
|
import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import {
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
3
|
import { createHashCompletionCallback } from '../completions/index.js';
|
|
4
|
+
import { loadInstructions } from '../lib/instructions.js';
|
|
6
5
|
import { parseMemoryRow } from '../lib/types.js';
|
|
7
|
-
const BASE_DIR = fileURLToPath(new URL('.', import.meta.url));
|
|
8
|
-
const FALLBACK_INSTRUCTIONS = '# Memory instructions\n\nSee the README for usage details.';
|
|
9
6
|
const HASH_REGEX = /^[a-f0-9]{64}$/;
|
|
10
7
|
const INSTRUCTIONS_URI = 'internal://instructions';
|
|
11
|
-
|
|
12
|
-
return [
|
|
13
|
-
join(BASE_DIR, 'instructions.md'),
|
|
14
|
-
join(BASE_DIR, '..', 'instructions.md'),
|
|
15
|
-
join(BASE_DIR, '..', '..', 'src', 'instructions.md'),
|
|
16
|
-
];
|
|
17
|
-
}
|
|
18
|
-
function loadInstructions() {
|
|
19
|
-
const paths = getInstructionPaths();
|
|
20
|
-
for (const p of paths) {
|
|
21
|
-
try {
|
|
22
|
-
return readFileSync(p, 'utf8');
|
|
23
|
-
}
|
|
24
|
-
catch {
|
|
25
|
-
// try next path
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return FALLBACK_INSTRUCTIONS;
|
|
29
|
-
}
|
|
8
|
+
const MEMORY_RESOURCE_URI_TEMPLATE = 'memory://memories/{hash}';
|
|
30
9
|
function createJsonContent(uri, payload) {
|
|
31
10
|
return {
|
|
32
11
|
uri,
|
|
@@ -34,12 +13,17 @@ function createJsonContent(uri, payload) {
|
|
|
34
13
|
text: JSON.stringify(payload),
|
|
35
14
|
};
|
|
36
15
|
}
|
|
16
|
+
function createErrorResourceContents(uri, error, hash) {
|
|
17
|
+
return {
|
|
18
|
+
contents: [createJsonContent(uri, { error, ...(hash ? { hash } : {}) })],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
37
21
|
function getSingleVariable(value) {
|
|
38
22
|
return Array.isArray(value) ? value[0] : value;
|
|
39
23
|
}
|
|
40
24
|
function readMemoryByHash(db, hash) {
|
|
41
25
|
return db
|
|
42
|
-
.
|
|
26
|
+
.prepareOnce('SELECT * FROM memories WHERE hash = ?')
|
|
43
27
|
.get(hash);
|
|
44
28
|
}
|
|
45
29
|
const INSTRUCTIONS_CONTENT = loadInstructions();
|
|
@@ -59,7 +43,7 @@ export function registerAllResources(server, db) {
|
|
|
59
43
|
],
|
|
60
44
|
}));
|
|
61
45
|
const hashCompletion = createHashCompletionCallback(db);
|
|
62
|
-
server.registerResource('memory', new ResourceTemplate(
|
|
46
|
+
server.registerResource('memory', new ResourceTemplate(MEMORY_RESOURCE_URI_TEMPLATE, {
|
|
63
47
|
list: undefined,
|
|
64
48
|
complete: { hash: hashCompletion },
|
|
65
49
|
}), {
|
|
@@ -71,15 +55,11 @@ export function registerAllResources(server, db) {
|
|
|
71
55
|
const rawHash = variables['hash'];
|
|
72
56
|
const hash = getSingleVariable(rawHash);
|
|
73
57
|
if (!hash || !HASH_REGEX.test(hash)) {
|
|
74
|
-
|
|
75
|
-
contents: [createJsonContent(uri.href, { error: 'Invalid hash' })],
|
|
76
|
-
};
|
|
58
|
+
throw new McpError(ErrorCode.InvalidParams, 'Invalid hash: must be a 64-character hex string');
|
|
77
59
|
}
|
|
78
60
|
const row = readMemoryByHash(db, hash);
|
|
79
61
|
if (!row) {
|
|
80
|
-
return
|
|
81
|
-
contents: [createJsonContent(uri.href, { error: 'Not found', hash })],
|
|
82
|
-
};
|
|
62
|
+
return createErrorResourceContents(uri.href, 'Not found', hash);
|
|
83
63
|
}
|
|
84
64
|
return {
|
|
85
65
|
contents: [createJsonContent(uri.href, parseMemoryRow(row))],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
package/dist/schemas/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
package/dist/schemas/inputs.d.ts
CHANGED
|
@@ -66,8 +66,8 @@ export declare const SearchMemoriesInputSchema: z.ZodObject<{
|
|
|
66
66
|
query: z.ZodString;
|
|
67
67
|
limit: z.ZodPrefault<z.ZodOptional<z.ZodInt>>;
|
|
68
68
|
cursor: z.ZodOptional<z.ZodString>;
|
|
69
|
-
min_importance: z.ZodOptional<z.
|
|
70
|
-
max_importance: z.ZodOptional<z.
|
|
69
|
+
min_importance: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
max_importance: z.ZodOptional<z.ZodNumber>;
|
|
71
71
|
memory_type: z.ZodOptional<z.ZodEnum<{
|
|
72
72
|
error: "error";
|
|
73
73
|
general: "general";
|
|
@@ -84,8 +84,8 @@ export declare const RecallInputSchema: z.ZodObject<{
|
|
|
84
84
|
depth: z.ZodPrefault<z.ZodOptional<z.ZodInt>>;
|
|
85
85
|
limit: z.ZodPrefault<z.ZodOptional<z.ZodInt>>;
|
|
86
86
|
cursor: z.ZodOptional<z.ZodString>;
|
|
87
|
-
min_importance: z.ZodOptional<z.
|
|
88
|
-
max_importance: z.ZodOptional<z.
|
|
87
|
+
min_importance: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
max_importance: z.ZodOptional<z.ZodNumber>;
|
|
89
89
|
memory_type: z.ZodOptional<z.ZodEnum<{
|
|
90
90
|
error: "error";
|
|
91
91
|
general: "general";
|
|
@@ -101,8 +101,8 @@ export declare const RetrieveContextInputSchema: z.ZodObject<{
|
|
|
101
101
|
query: z.ZodString;
|
|
102
102
|
token_budget: z.ZodPrefault<z.ZodOptional<z.ZodInt>>;
|
|
103
103
|
strategy: z.ZodPrefault<z.ZodOptional<z.ZodEnum<{
|
|
104
|
-
importance: "importance";
|
|
105
104
|
relevance: "relevance";
|
|
105
|
+
importance: "importance";
|
|
106
106
|
recency: "recency";
|
|
107
107
|
}>>>;
|
|
108
108
|
}, z.core.$strict>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,WAAW,aAMkB,CAAC;
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,WAAW,aAMkB,CAAC;AA2C3C,eAAO,MAAM,wBAAwB,iIAU3B,CAAC;AA2CX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;kBAEjC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;kBAErC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;kBAMnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;kBAE/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;kBAIlC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;kBAElC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;kBAMpC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;kBAiBpC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;kBAsB5B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;kBAgBrC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;kBAOtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;kBAMxC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;kBAMxC,CAAC;AAEH,eAAO,MAAM,sBAAsB,iCAAqB,CAAC"}
|
package/dist/schemas/inputs.js
CHANGED
|
@@ -38,6 +38,10 @@ const SEARCH_QUERY_SCHEMA = z
|
|
|
38
38
|
.string()
|
|
39
39
|
.min(1, { error: 'Query must not be empty' })
|
|
40
40
|
.max(1000, { error: 'Query must be at most 1000 characters' });
|
|
41
|
+
const CURSOR_SCHEMA = z
|
|
42
|
+
.string()
|
|
43
|
+
.max(2048, { error: 'Cursor must be at most 2048 characters' });
|
|
44
|
+
const CURSOR_DESCRIPTION = 'Pagination cursor from previous response';
|
|
41
45
|
export const SUGGESTED_RELATION_TYPES = [
|
|
42
46
|
'related_to',
|
|
43
47
|
'causes',
|
|
@@ -61,6 +65,15 @@ const IMPORTANCE_SCHEMA = z
|
|
|
61
65
|
.max(10)
|
|
62
66
|
.describe('Priority level 0-10 (0=lowest, 10=critical)');
|
|
63
67
|
const IMPORTANCE_FILTER_SCHEMA = z.int().min(0).max(10).optional();
|
|
68
|
+
const SEARCH_MIN_IMPORTANCE_DESCRIPTION = 'Filter: only return memories with importance >= this value';
|
|
69
|
+
const SEARCH_MAX_IMPORTANCE_DESCRIPTION = 'Filter: only return memories with importance <= this value';
|
|
70
|
+
const SEARCH_MEMORY_TYPE_DESCRIPTION = 'Filter: only return memories of this type';
|
|
71
|
+
const RECALL_MIN_IMPORTANCE_DESCRIPTION = 'Filter: only seed memories with importance >= this value';
|
|
72
|
+
const RECALL_MAX_IMPORTANCE_DESCRIPTION = 'Filter: only seed memories with importance <= this value';
|
|
73
|
+
const RECALL_MEMORY_TYPE_DESCRIPTION = 'Filter: only seed memories of this type';
|
|
74
|
+
function describeImportanceFilter(description) {
|
|
75
|
+
return IMPORTANCE_FILTER_SCHEMA.clone().describe(description);
|
|
76
|
+
}
|
|
64
77
|
const STORE_MEMORY_SHAPE = {
|
|
65
78
|
content: CONTENT_SCHEMA,
|
|
66
79
|
tags: TAGS_ARRAY_SCHEMA,
|
|
@@ -107,13 +120,10 @@ export const SearchMemoriesInputSchema = z.strictObject({
|
|
|
107
120
|
.optional()
|
|
108
121
|
.prefault(20)
|
|
109
122
|
.describe('Maximum number of results to return (default 20)'),
|
|
110
|
-
cursor:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
min_importance: IMPORTANCE_FILTER_SCHEMA.clone().describe('Filter: only return memories with importance >= this value'),
|
|
115
|
-
max_importance: IMPORTANCE_FILTER_SCHEMA.clone().describe('Filter: only return memories with importance <= this value'),
|
|
116
|
-
memory_type: MEMORY_TYPE_SCHEMA.optional().describe('Filter: only return memories of this type'),
|
|
123
|
+
cursor: CURSOR_SCHEMA.optional().describe(CURSOR_DESCRIPTION),
|
|
124
|
+
min_importance: describeImportanceFilter(SEARCH_MIN_IMPORTANCE_DESCRIPTION),
|
|
125
|
+
max_importance: describeImportanceFilter(SEARCH_MAX_IMPORTANCE_DESCRIPTION),
|
|
126
|
+
memory_type: MEMORY_TYPE_SCHEMA.optional().describe(SEARCH_MEMORY_TYPE_DESCRIPTION),
|
|
117
127
|
});
|
|
118
128
|
export const RecallInputSchema = z.strictObject({
|
|
119
129
|
query: SEARCH_QUERY_SCHEMA.describe('Search query to find initial memories'),
|
|
@@ -131,13 +141,10 @@ export const RecallInputSchema = z.strictObject({
|
|
|
131
141
|
.optional()
|
|
132
142
|
.prefault(10)
|
|
133
143
|
.describe('Maximum seed memories to retrieve (default 10)'),
|
|
134
|
-
cursor:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
min_importance: IMPORTANCE_FILTER_SCHEMA.clone().describe('Filter: only seed memories with importance >= this value'),
|
|
139
|
-
max_importance: IMPORTANCE_FILTER_SCHEMA.clone().describe('Filter: only seed memories with importance <= this value'),
|
|
140
|
-
memory_type: MEMORY_TYPE_SCHEMA.optional().describe('Filter: only seed memories of this type'),
|
|
144
|
+
cursor: CURSOR_SCHEMA.optional().describe(CURSOR_DESCRIPTION),
|
|
145
|
+
min_importance: describeImportanceFilter(RECALL_MIN_IMPORTANCE_DESCRIPTION),
|
|
146
|
+
max_importance: describeImportanceFilter(RECALL_MAX_IMPORTANCE_DESCRIPTION),
|
|
147
|
+
memory_type: MEMORY_TYPE_SCHEMA.optional().describe(RECALL_MEMORY_TYPE_DESCRIPTION),
|
|
141
148
|
});
|
|
142
149
|
export const RetrieveContextInputSchema = z.strictObject({
|
|
143
150
|
query: SEARCH_QUERY_SCHEMA.describe('Search query to find relevant memories'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,MAAM,CAAC,EAAE,CAAC;KACV,KAAK,CAAC,gBAAgB,EAAE;IACvB,KAAK,EAAE,uDAAuD;CAC/D,CAAC;KACD,QAAQ,CAAC,6BAA6B,CAAC,CAAC;AAE3C,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;KAC1C,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;KACvD,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;KAC7D,QAAQ,CAAC,mCAAmC,CAAC,CAAC;AAEjD,MAAM,iBAAiB,GAAG,CAAC;KACxB,KAAK,CAAC,UAAU,CAAC;KACjB,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;KACjD,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;KAC/C,QAAQ,CAAC,+BAA+B,CAAC,CAAC;AAE7C,MAAM,kBAAkB,GAAG,CAAC;KACzB,IAAI,CAAC;IACJ,SAAS;IACT,MAAM;IACN,MAAM;IACN,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,OAAO;IACP,UAAU;CACX,CAAC;KACD,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAE5C,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;KAC9C,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;KACnE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEzC,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;KAC5C,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"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"}
|