traqr-memory-mcp 0.2.4 → 0.2.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAgDxE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,QA0W9C"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAgDxE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,QAmb9C"}
package/dist/tools.js CHANGED
@@ -36,16 +36,22 @@ export function registerTools(server) {
36
36
  server.tool('memory_store', 'Remember something. Only content required — domain, category, summary, topic, tags are all auto-derived. ' +
37
37
  'Use when you learn a fact, preference, or pattern worth keeping. Override any field if auto-detection is wrong.', {
38
38
  content: z.string().max(50000).describe('What you learned — be specific. Include WHAT, WHY, WHERE.'),
39
- summary: z.string().max(120).optional().describe('Override auto-summary'),
39
+ summary: z.string().max(120).optional().describe('Override auto-summary (max 120 chars)'),
40
40
  category: categoryEnum.optional().describe('Override auto-category'),
41
+ domain: z.enum(['sean', 'traqr', 'tooling', 'universal', 'nooktraqr', 'pokotraqr', 'poketraqr', 'milestraqr', 'jiggy']).optional()
42
+ .describe('Override auto-domain (sean, traqr, tooling, universal, app name)'),
41
43
  topic: z.string().optional().describe('Override auto-topic'),
42
44
  tags: z.array(controlledTagEnum).optional().describe('Override auto-tags'),
43
45
  confidence: z.number().min(0).max(1).default(0.6).describe('0-1. Default 0.6 — raise to 0.8+ only for facts you are confident about. Bad context is worse than no context.'),
44
46
  sourceReliability: z.enum(['direct-user', 'deliberate-store', 'granola-single', 'granola-multi', 'inferred', 'auto-derived']).optional()
45
47
  .describe('How trustworthy is the source? direct-user (Sean said it) > deliberate-store > granola-single > granola-multi (speaker confusion risk) > inferred > auto-derived'),
46
- }, async ({ content, summary, category, topic, tags, confidence, sourceReliability }) => {
48
+ classification: z.enum(['public', 'internal', 'confidential', 'restricted']).optional()
49
+ .describe('Security classification. public=shareable, internal=team only, confidential=need-to-know, restricted=highest sensitivity. Default: auto-derived from content.'),
50
+ clientNamespace: z.string().optional()
51
+ .describe('Client namespace for isolation. Memories in a namespace are only visible to searches within that namespace.'),
52
+ }, async ({ content, summary, category, domain, topic, tags, confidence, sourceReliability, classification, clientNamespace }) => {
47
53
  try {
48
- const derived = deriveAll(content, { summary, category, topic, tags, sourceTool: 'mcp-store' });
54
+ const derived = deriveAll(content, { summary, category, domain, topic, tags, sourceTool: 'mcp-store' });
49
55
  const input = {
50
56
  content,
51
57
  summary: derived.summary,
@@ -59,6 +65,8 @@ export function registerTools(server) {
59
65
  memoryType: derived.memoryType,
60
66
  sourceTool: 'mcp-store',
61
67
  ...(sourceReliability ? { sourceReliability } : {}),
68
+ ...(classification ? { classification: classification } : {}),
69
+ ...(clientNamespace ? { clientNamespace } : {}),
62
70
  };
63
71
  const memory = await storeMemory(input);
64
72
  return {
@@ -74,17 +82,27 @@ export function registerTools(server) {
74
82
  query: z.string().describe('Natural language search query'),
75
83
  limit: z.number().min(1).max(50).default(10),
76
84
  category: categoryEnum.optional(),
77
- memoryType: z.enum(['fact', 'preference', 'pattern']).optional(),
85
+ domain: z.enum(['sean', 'traqr', 'tooling', 'universal', 'nooktraqr', 'pokotraqr', 'poketraqr', 'milestraqr', 'jiggy']).optional().describe('Filter by domain'),
86
+ memoryType: z.enum(['fact', 'preference', 'pattern']).optional().describe('Filter by memory type'),
87
+ tags: z.array(controlledTagEnum).optional(),
78
88
  threshold: z.number().min(0).max(1).optional(),
79
- }, async ({ query, limit, category, memoryType, threshold }) => {
89
+ accessLevel: z.enum(['exploration', 'standard', 'privileged', 'admin']).optional()
90
+ .describe('Agent access tier. exploration=public+internal only, standard=+confidential, privileged=+restricted, admin=full cross-namespace. Default: no filter (all visible).'),
91
+ }, async ({ query, limit, category, domain, memoryType, tags, threshold, accessLevel }) => {
80
92
  try {
81
93
  const options = {
82
94
  limit,
83
95
  category: category,
84
96
  memoryType: memoryType,
85
97
  similarityThreshold: threshold,
98
+ ...(tags ? { tags } : {}),
99
+ ...(accessLevel ? { accessLevel: accessLevel } : {}),
86
100
  };
87
- const results = await searchMemoriesV2(query, options);
101
+ let results = await searchMemoriesV2(query, options);
102
+ // Post-filter by domain (not in RPC)
103
+ if (domain) {
104
+ results = results.filter((r) => r.domain === domain);
105
+ }
88
106
  const summaries = results.map(toSummaryResult);
89
107
  return {
90
108
  content: [{ type: 'text', text: JSON.stringify({
@@ -171,11 +189,15 @@ export function registerTools(server) {
171
189
  // --- memory_context ---
172
190
  server.tool('memory_context', 'Load task-relevant context — principles, preferences, gotchas for the current work.', {
173
191
  taskDescription: z.string().optional(),
174
- }, async ({ taskDescription }) => {
192
+ slotName: z.string().optional().describe('Auto: slot name for source tracking'),
193
+ accessLevel: z.enum(['exploration', 'standard', 'privileged', 'admin']).optional()
194
+ .describe('Agent access tier. Controls which classification levels appear in context. Default: no filter.'),
195
+ }, async ({ taskDescription, slotName, accessLevel }) => {
175
196
  try {
176
197
  const result = await assembleSessionContext({
177
- slotName: 'standalone',
198
+ slotName: slotName || 'standalone',
178
199
  taskDescription,
200
+ ...(accessLevel ? { accessLevel: accessLevel } : {}),
179
201
  });
180
202
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
181
203
  }
@@ -187,12 +209,19 @@ export function registerTools(server) {
187
209
  server.tool('memory_pulse', 'Batch operation: capture multiple learnings + search + update in one call. Each capture only needs content. Max 5 captures per call — send multiple calls for larger batches.', {
188
210
  search: z.string().optional(),
189
211
  searchLimit: z.number().min(1).max(5).default(3),
212
+ accessLevel: z.enum(['exploration', 'standard', 'privileged', 'admin']).optional()
213
+ .describe('Access tier for the search portion. Controls which classification levels are visible.'),
190
214
  captures: z.array(z.object({
191
215
  content: z.string().max(50000).describe('What you learned (min 20 chars)'),
192
216
  category: categoryEnum.optional(),
217
+ domain: z.enum(['sean', 'traqr', 'tooling', 'universal', 'nooktraqr', 'pokotraqr', 'poketraqr', 'milestraqr', 'jiggy']).optional()
218
+ .describe('Override auto-domain'),
219
+ topic: z.string().optional().describe('Override auto-topic'),
193
220
  tags: z.array(controlledTagEnum).optional(),
194
221
  })).default([]),
195
- }, async ({ search, searchLimit, captures }) => {
222
+ sourceProject: z.string().optional().describe('Source project slug for all captures in this batch'),
223
+ slot: z.string().optional().describe('Slot name for source tracking'),
224
+ }, async ({ search, searchLimit, accessLevel, captures, sourceProject, slot }) => {
196
225
  try {
197
226
  const MAX_CAPTURES = 5;
198
227
  const validCaptures = captures.filter((c) => c.content.trim().length >= 20);
@@ -202,15 +231,16 @@ export function registerTools(server) {
202
231
  // Run captures through triage
203
232
  const captureResults = await Promise.all(toProcess.map((cap, idx) => {
204
233
  const derived = deriveAll(cap.content, {
205
- category: cap.category, tags: cap.tags, sourceTool: 'mcp-pulse',
234
+ category: cap.category, domain: cap.domain, topic: cap.topic,
235
+ tags: cap.tags, sourceTool: 'mcp-pulse',
206
236
  });
207
237
  const input = {
208
238
  content: cap.content.trim(),
209
239
  summary: derived.summary,
210
240
  category: derived.category,
211
- tags: [...(derived.tags || []), 'pulse'],
241
+ tags: [...(derived.tags || []), 'pulse', ...(slot ? [`slot:${slot}`] : [])],
212
242
  sourceType: 'session',
213
- sourceProject: 'default',
243
+ sourceProject: sourceProject || 'default',
214
244
  confidence: 0.6,
215
245
  domain: derived.domain,
216
246
  topic: derived.topic,
@@ -219,10 +249,14 @@ export function registerTools(server) {
219
249
  };
220
250
  return triageAndStore(input).then((r) => ({ index: idx, ...r })).catch(() => ({ index: idx, zone: 'error' }));
221
251
  }));
222
- // Run search if requested
252
+ // Run search if requested (respects access level)
223
253
  let searchResults = [];
224
254
  if (search) {
225
- const results = await searchMemoriesV2(search, { limit: searchLimit }).catch(() => []);
255
+ const searchOpts = {
256
+ limit: searchLimit,
257
+ ...(accessLevel ? { accessLevel: accessLevel } : {}),
258
+ };
259
+ const results = await searchMemoriesV2(search, searchOpts).catch(() => []);
226
260
  searchResults = results.map(toSummaryResult);
227
261
  }
228
262
  const successful = captureResults.filter((r) => r?.zone !== 'error');
@@ -328,19 +362,52 @@ export function registerTools(server) {
328
362
  }
329
363
  });
330
364
  // --- memory_forget ---
331
- server.tool('memory_forget', 'Forget a memory. Use for incorrect, irrelevant, or harmful content that should never surface again. ' +
332
- 'Different from archive: archive = once correct but now stale, forget = should not exist.', {
365
+ server.tool('memory_forget', 'Hard-delete a memory (GDPR Article 17). Permanently removes the memory, its embedding, and all relationships. ' +
366
+ 'Audit trail is retained for compliance. Different from archive: archive = hide but keep, forget = permanently erase.', {
333
367
  memoryId: z.string().uuid().describe('UUID of the memory to forget'),
334
368
  reason: z.string().optional().describe('Why this memory should be forgotten'),
335
369
  }, async ({ memoryId, reason }) => {
336
370
  try {
337
371
  const db = getVectorDB();
338
372
  await db.forget(memoryId);
339
- return { content: [{ type: 'text', text: `Forgotten ${memoryId}${reason ? `: ${reason}` : ''}` }] };
373
+ return { content: [{ type: 'text', text: `Permanently deleted ${memoryId}${reason ? `: ${reason}` : ''}` }] };
340
374
  }
341
375
  catch (err) {
342
376
  return errorResult('memory_forget', err);
343
377
  }
344
378
  });
379
+ // --- memory_purge ---
380
+ server.tool('memory_purge', 'Right-to-delete: permanently purge ALL memories for a client namespace. ' +
381
+ 'Exports data first, then hard-deletes everything. Audit trail retained for compliance proof. ' +
382
+ 'Use when a consulting engagement ends or client requests data deletion.', {
383
+ namespace: z.string().describe('Client namespace to purge (e.g., "duke-ellington", "mom-consulting")'),
384
+ reason: z.string().optional().describe('Reason for purge (default: right-to-delete)'),
385
+ exportFirst: z.boolean().optional().default(true).describe('Export memories before deleting (default: true)'),
386
+ }, async ({ namespace, reason, exportFirst }) => {
387
+ try {
388
+ const db = getVectorDB();
389
+ if (!db.purgeNamespace || !db.exportNamespace) {
390
+ return errorResult('memory_purge', new Error('Purge not supported — migration 013 may not be deployed'));
391
+ }
392
+ let exportData = [];
393
+ if (exportFirst) {
394
+ exportData = await db.exportNamespace(namespace);
395
+ }
396
+ const deletedCount = await db.purgeNamespace(namespace, reason);
397
+ const parts = [
398
+ `Purged namespace "${namespace}": ${deletedCount} memories permanently deleted.`,
399
+ ];
400
+ if (exportFirst && exportData.length > 0) {
401
+ parts.push(`Pre-deletion export: ${exportData.length} memories captured.`);
402
+ parts.push(`Export data:\n${JSON.stringify(exportData, null, 2).slice(0, 3000)}`);
403
+ }
404
+ if (reason)
405
+ parts.push(`Reason: ${reason}`);
406
+ return { content: [{ type: 'text', text: parts.join('\n') }] };
407
+ }
408
+ catch (err) {
409
+ return errorResult('memory_purge', err);
410
+ }
411
+ });
345
412
  }
346
413
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAA;AAGtB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oIAAoI,CAAC,CAAA;AAC9K,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAA;AAEtK,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,WAAW,CAAC,QAAgB,EAAE,GAAY;IACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAA;AACnF,CAAC;AAED,SAAS,eAAe,CAAC,CAAM;IAC7B,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;KACzE,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,UAAU,aAAa,CAAC,MAAiB;IAE7C,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,cAAc,EACd,2GAA2G;QACzG,iHAAiH,EACnH;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QACpG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACzE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC5D,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC1E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,gHAAgH,CAAC;QAC5K,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE;aACrI,QAAQ,CAAC,kKAAkK,CAAC;KAChL,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACnF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;YAC/F,MAAM,KAAK,GAAgB;gBACzB,OAAO;gBACP,OAAO,EAAE,OAAO,CAAC,OAAiB;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAA0B;gBAC5C,IAAI,EAAE,OAAO,CAAC,IAAgB;gBAC9B,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,SAAS;gBACxB,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,MAAgB;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAe;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAiB;gBACrC,UAAU,EAAE,WAAW;gBACvB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAA;YACvC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;aAChH,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC3D,CAAC,CACF,CAAA;IAED,wBAAwB;IACxB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,+GAA+G,EAC/G;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;QACjC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;QAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC/C,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,OAAO,GAAkB;gBAC7B,KAAK;gBACL,QAAQ,EAAE,QAAe;gBACzB,UAAU,EAAE,UAAiB;gBAC7B,mBAAmB,EAAE,SAAS;aAC/B,CAAA;YACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC9C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACtD,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS;yBAC9E,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACf,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC5D,CAAC,CACF,CAAA;IAED,sBAAsB;IACtB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,6FAA6F,EAC7F,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAC9D,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,QAAQ,YAAY,EAAE,CAAC,EAAE,CAAA;YAClG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC1D,CAAC,CACF,CAAA;IAED,yBAAyB;IACzB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,kGAAkG;QAChG,kEAAkE,EACpE;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC/E,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,gBAAgB,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;YAC3E,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;YACrE,MAAM,KAAK,GAAgB;gBACzB,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAiB;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAA0B;gBAC5C,IAAI,EAAE,OAAO,CAAC,IAAgB;gBAC9B,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,SAAS;gBACxB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAgB;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAe;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAiB;gBACrC,UAAU,EAAE,aAAa;aAC1B,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;YAC1C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,OAAO,WAAW,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;aAC1I,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC7D,CAAC,CACF,CAAA;IAED,wBAAwB;IACxB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,wHAAwH,EACxH;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;KAClC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzB,uBAAuB;gBACvB,MAAM,MAAM,GAA2B,EAAE,CAAA;gBACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,SAAS,CAAA;oBACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAClC,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;YACrG,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC,CAAA;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC5D,CAAC,CACF,CAAA;IAED,yBAAyB;IACzB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,qFAAqF,EACrF;QACE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACvC,EACD,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;gBAC1C,QAAQ,EAAE,YAAY;gBACtB,eAAe;aAChB,CAAC,CAAA;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC7D,CAAC,CACF,CAAA;IAED,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,cAAc,EACd,+KAA+K,EAC/K;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC1E,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;YACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC5C,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KAChB,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,CAAC,CAAA;YACtB,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;YAC3E,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAA;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,CAAA;YAChE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;YAEtD,8BAA8B;YAC9B,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACvB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;oBACrC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW;iBAChE,CAAC,CAAA;gBACF,MAAM,KAAK,GAAgB;oBACzB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;oBAC3B,OAAO,EAAE,OAAO,CAAC,OAAiB;oBAClC,QAAQ,EAAE,OAAO,CAAC,QAA0B;oBAC5C,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAgB,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;oBACpD,UAAU,EAAE,SAAS;oBACrB,aAAa,EAAE,SAAS;oBACxB,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,KAAK,EAAE,OAAO,CAAC,KAAe;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAiB;oBACrC,UAAU,EAAE,WAAW;iBACxB,CAAA;gBACD,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YAC/G,CAAC,CAAC,CACL,CAAA;YAED,0BAA0B;YAC1B,IAAI,aAAa,GAAU,EAAE,CAAA;YAC7B,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBACtF,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC9C,CAAC;YAED,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,CAAA;YACzE,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;gBAC9D,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM;gBAC5D,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,MAAM;aAC3E,CAAA;YAED,MAAM,KAAK,GAAa,EAAE,CAAA;YAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,MAAM,YAAY,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,aAAa,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC,UAAU,aAAa,CAAC,CAAA;YACzN,IAAI,OAAO,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,wCAAwC,YAAY,iDAAiD,CAAC,CAAA;YACrJ,IAAI,QAAQ,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,0CAA0C,CAAC,CAAA;YAE7F,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,CAAC,GAAG,OAAO,eAAe,aAAa,CAAC,MAAM,aAAa,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;gBACpG,CAAC,CAAC,OAAO,CAAA;YAEX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC3D,CAAC,CACF,CAAA;IAED,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,cAAc,EACd,mDAAmD,EACnD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxC,eAAe,EAAE;gBACjB,gBAAgB,EAAE;aACnB,CAAC,CAAA;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;QACnG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC3D,CAAC,CACF,CAAA;IAED,yBAAyB;IACzB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,4EAA4E,EAC5E;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KACvE,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,YAAY,QAAQ,KAAK,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;QAC1F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC7D,CAAC,CACF,CAAA;IAED,yBAAyB;IACzB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,4FAA4F;QAC1F,yFAAyF;QACzF,yFAAyF,EAC3F;QACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACjE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QAChH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC1E,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACzF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC1E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;KAClD,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;QAChF,IAAI,CAAC;YACH,oCAAoC;YACpC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAA;YAClD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,aAAa,mDAAmD,EAAE,CAAC,EAAE,CAAA;YACnI,CAAC;YAED,iCAAiC;YACjC,MAAM,OAAO,GAAG,SAAS,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;YAC1F,MAAM,KAAK,GAAgB;gBACzB,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EAAE,OAAO,CAAC,OAAiB;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAA0B;gBAC5C,IAAI,EAAE,CAAC,GAAI,OAAO,CAAC,IAAiB,EAAE,iBAAiB,CAAC;gBACxD,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,SAAS;gBACxB,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,MAAgB;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAe;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAiB;gBACrC,UAAU,EAAE,aAAa;aAC1B,CAAA;YACD,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAA;YAEhD,0CAA0C;YAC1C,MAAM,aAAa,CAAC,aAAa,EAAE,cAAc,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAExE,uCAAuC;YACvC,MAAM,eAAe,CAAC,aAAa,CAAC,CAAA;YAEpC,yCAAyC;YACzC,MAAM,kBAAkB,CACtB,eAAe,CAAC,EAAE,EAClB,aAAa,EACb,SAAS,EACT,GAAG,EACH,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CACpE,CAAA;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,oBAAoB,aAAa,KAAK;4BAC1C,QAAQ,WAAW,CAAC,OAAO,IAAI,cAAc,IAAI;4BACjD,SAAS,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,IAAI;4BACnE,WAAW,MAAM,IAAI;4BACrB,kBAAkB,eAAe,CAAC,EAAE,EAAE;qBACzC,CAAC;aACH,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC7D,CAAC,CACF,CAAA;IAED,wBAAwB;IACxB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,sGAAsG;QACpG,0FAA0F,EAC5F;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC9E,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;YACxB,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QAC9G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;QAAC,CAAC;IAC5D,CAAC,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "traqr-memory-mcp",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Memory-as-a-service MCP server for AI agents. 11 tools, Postgres + pgvector, multi-strategy retrieval. Works with Claude Code, Cursor, Codex, and any MCP client.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -28,7 +28,7 @@
28
28
  "dependencies": {
29
29
  "@clack/prompts": "^1.1.0",
30
30
  "@modelcontextprotocol/sdk": "^1.12.1",
31
- "@traqr/memory": "^0.1.0",
31
+ "@traqr/memory": "^0.2.0",
32
32
  "zod": "^3.24.2"
33
33
  },
34
34
  "keywords": [
package/setup.sql CHANGED
@@ -34,7 +34,9 @@ CREATE EXTENSION IF NOT EXISTS pg_trgm;
34
34
 
35
35
  CREATE OR REPLACE FUNCTION traqr_tsvector_en(content text, summary text, tags text[])
36
36
  RETURNS tsvector
37
- LANGUAGE sql IMMUTABLE AS $$
37
+ LANGUAGE sql IMMUTABLE
38
+ SET search_path = ''
39
+ AS $$
38
40
  SELECT to_tsvector('english',
39
41
  COALESCE(content, '') || ' ' ||
40
42
  COALESCE(summary, '') || ' ' ||
@@ -44,7 +46,9 @@ $$;
44
46
 
45
47
  CREATE OR REPLACE FUNCTION traqr_tsvector_simple(content text, summary text, tags text[])
46
48
  RETURNS tsvector
47
- LANGUAGE sql IMMUTABLE AS $$
49
+ LANGUAGE sql IMMUTABLE
50
+ SET search_path = ''
51
+ AS $$
48
52
  SELECT to_tsvector('simple',
49
53
  COALESCE(content, '') || ' ' ||
50
54
  COALESCE(summary, '') || ' ' ||
@@ -494,7 +498,9 @@ CREATE OR REPLACE FUNCTION calculate_current_confidence(
494
498
  p_memory_type VARCHAR DEFAULT 'pattern'
495
499
  )
496
500
  RETURNS FLOAT
497
- LANGUAGE plpgsql STABLE AS $$
501
+ LANGUAGE plpgsql STABLE
502
+ SET search_path = ''
503
+ AS $$
498
504
  DECLARE
499
505
  years_elapsed FLOAT;
500
506
  decay_rate FLOAT;
@@ -565,7 +571,9 @@ RETURNS TABLE (
565
571
  is_latest BOOLEAN,
566
572
  source_tool VARCHAR
567
573
  )
568
- LANGUAGE plpgsql AS $$
574
+ LANGUAGE plpgsql
575
+ SET search_path = ''
576
+ AS $$
569
577
  BEGIN
570
578
  RETURN QUERY
571
579
  SELECT
@@ -640,7 +648,9 @@ RETURNS TABLE (
640
648
  is_latest BOOLEAN,
641
649
  source_tool VARCHAR
642
650
  )
643
- LANGUAGE plpgsql AS $$
651
+ LANGUAGE plpgsql
652
+ SET search_path = ''
653
+ AS $$
644
654
  BEGIN
645
655
  RETURN QUERY
646
656
  SELECT
@@ -688,7 +698,9 @@ RETURNS TABLE (
688
698
  times_returned INTEGER,
689
699
  reason TEXT
690
700
  )
691
- LANGUAGE plpgsql AS $$
701
+ LANGUAGE plpgsql
702
+ SET search_path = ''
703
+ AS $$
692
704
  BEGIN
693
705
  RETURN QUERY
694
706
  WITH decayed AS (
@@ -747,13 +759,20 @@ RETURNS TABLE (
747
759
  category TEXT,
748
760
  memory_type TEXT
749
761
  )
750
- LANGUAGE plpgsql AS $$
762
+ LANGUAGE plpgsql
763
+ SET search_path = ''
764
+ AS $$
751
765
  DECLARE
752
766
  tsquery_en tsquery;
753
767
  tsquery_simple tsquery;
768
+ or_query TEXT;
754
769
  BEGIN
755
- tsquery_en := plainto_tsquery('english', p_query_text);
756
- tsquery_simple := plainto_tsquery('simple', p_query_text);
770
+ -- Split query words into OR terms for better recall.
771
+ -- "engagement ring proposal" -> "engagement | ring | proposal"
772
+ -- ts_rank_cd naturally ranks docs with MORE matching terms higher.
773
+ or_query := regexp_replace(trim(p_query_text), '\s+', ' | ', 'g');
774
+ tsquery_en := to_tsquery('english', or_query);
775
+ tsquery_simple := to_tsquery('simple', or_query);
757
776
 
758
777
  RETURN QUERY
759
778
  SELECT
@@ -798,7 +817,9 @@ RETURNS TABLE (
798
817
  temporal_proximity FLOAT,
799
818
  valid_at TIMESTAMPTZ
800
819
  )
801
- LANGUAGE plpgsql AS $$
820
+ LANGUAGE plpgsql
821
+ SET search_path = ''
822
+ AS $$
802
823
  DECLARE
803
824
  date_mid TIMESTAMPTZ;
804
825
  total_days FLOAT;
@@ -842,7 +863,9 @@ RETURNS TABLE (
842
863
  edge_type TEXT,
843
864
  depth INTEGER
844
865
  )
845
- LANGUAGE plpgsql AS $$
866
+ LANGUAGE plpgsql
867
+ SET search_path = ''
868
+ AS $$
846
869
  BEGIN
847
870
  RETURN QUERY
848
871
  WITH RECURSIVE graph_walk AS (
@@ -900,7 +923,9 @@ RETURNS TABLE (
900
923
  similarity FLOAT,
901
924
  mentions_count INTEGER
902
925
  )
903
- LANGUAGE plpgsql AS $$
926
+ LANGUAGE plpgsql
927
+ SET search_path = ''
928
+ AS $$
904
929
  BEGIN
905
930
  RETURN QUERY
906
931
  SELECT
@@ -923,7 +948,9 @@ CREATE OR REPLACE FUNCTION count_entity_mentions(
923
948
  p_name VARCHAR
924
949
  )
925
950
  RETURNS INTEGER
926
- LANGUAGE plpgsql AS $$
951
+ LANGUAGE plpgsql
952
+ SET search_path = ''
953
+ AS $$
927
954
  DECLARE
928
955
  mention_count INTEGER;
929
956
  BEGIN
@@ -940,7 +967,9 @@ $$;
940
967
  -- 6j. forget_expired_memories — daily cron function
941
968
  CREATE OR REPLACE FUNCTION forget_expired_memories()
942
969
  RETURNS INTEGER
943
- LANGUAGE plpgsql AS $$
970
+ LANGUAGE plpgsql
971
+ SET search_path = ''
972
+ AS $$
944
973
  DECLARE
945
974
  forgotten_count INTEGER;
946
975
  BEGIN