context-gatekeeper 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +774 -0
  3. package/README.zh.md +765 -0
  4. package/bin/context-gatekeeper-cli.js +60 -0
  5. package/dist/api/gdpr.d.ts +104 -0
  6. package/dist/api/gdpr.d.ts.map +1 -0
  7. package/dist/api/gdpr.js +229 -0
  8. package/dist/api/gdpr.js.map +1 -0
  9. package/dist/api/health-check.d.ts +13 -0
  10. package/dist/api/health-check.d.ts.map +1 -0
  11. package/dist/api/health-check.js +2 -0
  12. package/dist/api/health-check.js.map +1 -0
  13. package/dist/api/index.d.ts +7 -0
  14. package/dist/api/index.d.ts.map +1 -0
  15. package/dist/api/index.js +8 -0
  16. package/dist/api/index.js.map +1 -0
  17. package/dist/api/observability.d.ts +39 -0
  18. package/dist/api/observability.d.ts.map +1 -0
  19. package/dist/api/observability.js +132 -0
  20. package/dist/api/observability.js.map +1 -0
  21. package/dist/api/session-manager.d.ts +41 -0
  22. package/dist/api/session-manager.d.ts.map +1 -0
  23. package/dist/api/session-manager.js +129 -0
  24. package/dist/api/session-manager.js.map +1 -0
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +7 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/mcp/server.d.ts +8 -0
  30. package/dist/mcp/server.d.ts.map +1 -0
  31. package/dist/mcp/server.js +613 -0
  32. package/dist/mcp/server.js.map +1 -0
  33. package/dist/mcp/tools/configure-llm.d.ts +26 -0
  34. package/dist/mcp/tools/configure-llm.d.ts.map +1 -0
  35. package/dist/mcp/tools/configure-llm.js +32 -0
  36. package/dist/mcp/tools/configure-llm.js.map +1 -0
  37. package/dist/mcp/tools/context-compress.d.ts +15 -0
  38. package/dist/mcp/tools/context-compress.d.ts.map +1 -0
  39. package/dist/mcp/tools/context-compress.js +15 -0
  40. package/dist/mcp/tools/context-compress.js.map +1 -0
  41. package/dist/mcp/tools/dual-mode-execute.d.ts +78 -0
  42. package/dist/mcp/tools/dual-mode-execute.d.ts.map +1 -0
  43. package/dist/mcp/tools/dual-mode-execute.js +299 -0
  44. package/dist/mcp/tools/dual-mode-execute.js.map +1 -0
  45. package/dist/mcp/tools/index.d.ts +19 -0
  46. package/dist/mcp/tools/index.d.ts.map +1 -0
  47. package/dist/mcp/tools/index.js +20 -0
  48. package/dist/mcp/tools/index.js.map +1 -0
  49. package/dist/mcp/tools/intelligent-recall.d.ts +67 -0
  50. package/dist/mcp/tools/intelligent-recall.d.ts.map +1 -0
  51. package/dist/mcp/tools/intelligent-recall.js +208 -0
  52. package/dist/mcp/tools/intelligent-recall.js.map +1 -0
  53. package/dist/mcp/tools/memory-anchor.d.ts +13 -0
  54. package/dist/mcp/tools/memory-anchor.d.ts.map +1 -0
  55. package/dist/mcp/tools/memory-anchor.js +16 -0
  56. package/dist/mcp/tools/memory-anchor.js.map +1 -0
  57. package/dist/mcp/tools/memory-delete-batch.d.ts +16 -0
  58. package/dist/mcp/tools/memory-delete-batch.d.ts.map +1 -0
  59. package/dist/mcp/tools/memory-delete-batch.js +26 -0
  60. package/dist/mcp/tools/memory-delete-batch.js.map +1 -0
  61. package/dist/mcp/tools/memory-extract.d.ts +68 -0
  62. package/dist/mcp/tools/memory-extract.d.ts.map +1 -0
  63. package/dist/mcp/tools/memory-extract.js +280 -0
  64. package/dist/mcp/tools/memory-extract.js.map +1 -0
  65. package/dist/mcp/tools/memory-recall.d.ts +42 -0
  66. package/dist/mcp/tools/memory-recall.d.ts.map +1 -0
  67. package/dist/mcp/tools/memory-recall.js +37 -0
  68. package/dist/mcp/tools/memory-recall.js.map +1 -0
  69. package/dist/mcp/tools/memory-report-usage.d.ts +17 -0
  70. package/dist/mcp/tools/memory-report-usage.d.ts.map +1 -0
  71. package/dist/mcp/tools/memory-report-usage.js +15 -0
  72. package/dist/mcp/tools/memory-report-usage.js.map +1 -0
  73. package/dist/mcp/tools/memory-search.d.ts +43 -0
  74. package/dist/mcp/tools/memory-search.d.ts.map +1 -0
  75. package/dist/mcp/tools/memory-search.js +38 -0
  76. package/dist/mcp/tools/memory-search.js.map +1 -0
  77. package/dist/mcp/tools/memory-session.d.ts +118 -0
  78. package/dist/mcp/tools/memory-session.d.ts.map +1 -0
  79. package/dist/mcp/tools/memory-session.js +113 -0
  80. package/dist/mcp/tools/memory-session.js.map +1 -0
  81. package/dist/mcp/tools/memory-stats.d.ts +10 -0
  82. package/dist/mcp/tools/memory-stats.d.ts.map +1 -0
  83. package/dist/mcp/tools/memory-stats.js +35 -0
  84. package/dist/mcp/tools/memory-stats.js.map +1 -0
  85. package/dist/mcp/tools/memory-store-batch.d.ts +49 -0
  86. package/dist/mcp/tools/memory-store-batch.d.ts.map +1 -0
  87. package/dist/mcp/tools/memory-store-batch.js +48 -0
  88. package/dist/mcp/tools/memory-store-batch.js.map +1 -0
  89. package/dist/mcp/tools/memory-store.d.ts +37 -0
  90. package/dist/mcp/tools/memory-store.d.ts.map +1 -0
  91. package/dist/mcp/tools/memory-store.js +34 -0
  92. package/dist/mcp/tools/memory-store.js.map +1 -0
  93. package/dist/mcp/tools/project-create.d.ts +16 -0
  94. package/dist/mcp/tools/project-create.d.ts.map +1 -0
  95. package/dist/mcp/tools/project-create.js +14 -0
  96. package/dist/mcp/tools/project-create.js.map +1 -0
  97. package/dist/models/types.d.ts +88 -0
  98. package/dist/models/types.d.ts.map +1 -0
  99. package/dist/models/types.js +19 -0
  100. package/dist/models/types.js.map +1 -0
  101. package/dist/schema/compression.d.ts +7 -0
  102. package/dist/schema/compression.d.ts.map +1 -0
  103. package/dist/schema/compression.js +66 -0
  104. package/dist/schema/compression.js.map +1 -0
  105. package/dist/schema/fulltext-search.d.ts +10 -0
  106. package/dist/schema/fulltext-search.d.ts.map +1 -0
  107. package/dist/schema/fulltext-search.js +73 -0
  108. package/dist/schema/fulltext-search.js.map +1 -0
  109. package/dist/schema/index.d.ts +9 -0
  110. package/dist/schema/index.d.ts.map +1 -0
  111. package/dist/schema/index.js +9 -0
  112. package/dist/schema/index.js.map +1 -0
  113. package/dist/schema/knowledge-graph.d.ts +108 -0
  114. package/dist/schema/knowledge-graph.d.ts.map +1 -0
  115. package/dist/schema/knowledge-graph.js +372 -0
  116. package/dist/schema/knowledge-graph.js.map +1 -0
  117. package/dist/schema/memory-session.d.ts +62 -0
  118. package/dist/schema/memory-session.d.ts.map +1 -0
  119. package/dist/schema/memory-session.js +258 -0
  120. package/dist/schema/memory-session.js.map +1 -0
  121. package/dist/schema/memory.d.ts +84 -0
  122. package/dist/schema/memory.d.ts.map +1 -0
  123. package/dist/schema/memory.js +622 -0
  124. package/dist/schema/memory.js.map +1 -0
  125. package/dist/schema/project.d.ts +8 -0
  126. package/dist/schema/project.d.ts.map +1 -0
  127. package/dist/schema/project.js +68 -0
  128. package/dist/schema/project.js.map +1 -0
  129. package/dist/schema/schema-init.d.ts +2 -0
  130. package/dist/schema/schema-init.d.ts.map +1 -0
  131. package/dist/schema/schema-init.js +199 -0
  132. package/dist/schema/schema-init.js.map +1 -0
  133. package/dist/schema/vector-index.d.ts +28 -0
  134. package/dist/schema/vector-index.d.ts.map +1 -0
  135. package/dist/schema/vector-index.js +179 -0
  136. package/dist/schema/vector-index.js.map +1 -0
  137. package/dist/scripts/agents/base.d.ts +89 -0
  138. package/dist/scripts/agents/base.d.ts.map +1 -0
  139. package/dist/scripts/agents/base.js +148 -0
  140. package/dist/scripts/agents/base.js.map +1 -0
  141. package/dist/scripts/agents/base.ts +193 -0
  142. package/dist/scripts/agents/claude-code.d.ts +21 -0
  143. package/dist/scripts/agents/claude-code.d.ts.map +1 -0
  144. package/dist/scripts/agents/claude-code.js +33 -0
  145. package/dist/scripts/agents/claude-code.js.map +1 -0
  146. package/dist/scripts/agents/claude-code.ts +36 -0
  147. package/dist/scripts/agents/claude-desktop.d.ts +25 -0
  148. package/dist/scripts/agents/claude-desktop.d.ts.map +1 -0
  149. package/dist/scripts/agents/claude-desktop.js +36 -0
  150. package/dist/scripts/agents/claude-desktop.js.map +1 -0
  151. package/dist/scripts/agents/claude-desktop.ts +39 -0
  152. package/dist/scripts/agents/cline.d.ts +22 -0
  153. package/dist/scripts/agents/cline.d.ts.map +1 -0
  154. package/dist/scripts/agents/cline.js +35 -0
  155. package/dist/scripts/agents/cline.js.map +1 -0
  156. package/dist/scripts/agents/cline.ts +38 -0
  157. package/dist/scripts/agents/continue.d.ts +20 -0
  158. package/dist/scripts/agents/continue.d.ts.map +1 -0
  159. package/dist/scripts/agents/continue.js +35 -0
  160. package/dist/scripts/agents/continue.js.map +1 -0
  161. package/dist/scripts/agents/continue.ts +38 -0
  162. package/dist/scripts/agents/cursor.d.ts +27 -0
  163. package/dist/scripts/agents/cursor.d.ts.map +1 -0
  164. package/dist/scripts/agents/cursor.js +38 -0
  165. package/dist/scripts/agents/cursor.js.map +1 -0
  166. package/dist/scripts/agents/cursor.ts +41 -0
  167. package/dist/scripts/cli/config-gen.d.ts +59 -0
  168. package/dist/scripts/cli/config-gen.d.ts.map +1 -0
  169. package/dist/scripts/cli/config-gen.js +156 -0
  170. package/dist/scripts/cli/config-gen.js.map +1 -0
  171. package/dist/scripts/cli/config-gen.ts +164 -0
  172. package/dist/scripts/cli/detect.d.ts +42 -0
  173. package/dist/scripts/cli/detect.d.ts.map +1 -0
  174. package/dist/scripts/cli/detect.js +131 -0
  175. package/dist/scripts/cli/detect.js.map +1 -0
  176. package/dist/scripts/cli/detect.ts +162 -0
  177. package/dist/scripts/cli/install.d.ts +31 -0
  178. package/dist/scripts/cli/install.d.ts.map +1 -0
  179. package/dist/scripts/cli/install.js +125 -0
  180. package/dist/scripts/cli/install.js.map +1 -0
  181. package/dist/scripts/cli/install.ts +157 -0
  182. package/dist/scripts/cli/status.d.ts +8 -0
  183. package/dist/scripts/cli/status.d.ts.map +1 -0
  184. package/dist/scripts/cli/status.js +39 -0
  185. package/dist/scripts/cli/status.js.map +1 -0
  186. package/dist/scripts/cli/status.ts +48 -0
  187. package/dist/scripts/cli/uninstall.d.ts +22 -0
  188. package/dist/scripts/cli/uninstall.d.ts.map +1 -0
  189. package/dist/scripts/cli/uninstall.js +141 -0
  190. package/dist/scripts/cli/uninstall.js.map +1 -0
  191. package/dist/scripts/cli/uninstall.ts +157 -0
  192. package/dist/scripts/cli.d.ts +23 -0
  193. package/dist/scripts/cli.d.ts.map +1 -0
  194. package/dist/scripts/cli.js +166 -0
  195. package/dist/scripts/cli.js.map +1 -0
  196. package/dist/scripts/cli.ts +173 -0
  197. package/dist/services/classifier/index.d.ts +36 -0
  198. package/dist/services/classifier/index.d.ts.map +1 -0
  199. package/dist/services/classifier/index.js +104 -0
  200. package/dist/services/classifier/index.js.map +1 -0
  201. package/dist/services/classifier/llm.d.ts +37 -0
  202. package/dist/services/classifier/llm.d.ts.map +1 -0
  203. package/dist/services/classifier/llm.js +119 -0
  204. package/dist/services/classifier/llm.js.map +1 -0
  205. package/dist/services/classifier/rules.d.ts +22 -0
  206. package/dist/services/classifier/rules.d.ts.map +1 -0
  207. package/dist/services/classifier/rules.js +98 -0
  208. package/dist/services/classifier/rules.js.map +1 -0
  209. package/dist/services/compressor/index.d.ts +3 -0
  210. package/dist/services/compressor/index.d.ts.map +1 -0
  211. package/dist/services/compressor/index.js +3 -0
  212. package/dist/services/compressor/index.js.map +1 -0
  213. package/dist/services/compressor/threshold.d.ts +35 -0
  214. package/dist/services/compressor/threshold.d.ts.map +1 -0
  215. package/dist/services/compressor/threshold.js +60 -0
  216. package/dist/services/compressor/threshold.js.map +1 -0
  217. package/dist/services/compressor/trigger.d.ts +24 -0
  218. package/dist/services/compressor/trigger.d.ts.map +1 -0
  219. package/dist/services/compressor/trigger.js +91 -0
  220. package/dist/services/compressor/trigger.js.map +1 -0
  221. package/dist/services/constraint-extractor.d.ts +25 -0
  222. package/dist/services/constraint-extractor.d.ts.map +1 -0
  223. package/dist/services/constraint-extractor.js +97 -0
  224. package/dist/services/constraint-extractor.js.map +1 -0
  225. package/dist/services/database-health.d.ts +22 -0
  226. package/dist/services/database-health.d.ts.map +1 -0
  227. package/dist/services/database-health.js +122 -0
  228. package/dist/services/database-health.js.map +1 -0
  229. package/dist/services/embedding-fixed.d.ts +9 -0
  230. package/dist/services/embedding-fixed.d.ts.map +1 -0
  231. package/dist/services/embedding-fixed.js +70 -0
  232. package/dist/services/embedding-fixed.js.map +1 -0
  233. package/dist/services/embedding-provider.d.ts +79 -0
  234. package/dist/services/embedding-provider.d.ts.map +1 -0
  235. package/dist/services/embedding-provider.js +229 -0
  236. package/dist/services/embedding-provider.js.map +1 -0
  237. package/dist/services/embedding.d.ts +17 -0
  238. package/dist/services/embedding.d.ts.map +1 -0
  239. package/dist/services/embedding.js +99 -0
  240. package/dist/services/embedding.js.map +1 -0
  241. package/dist/services/hnsw-index.d.ts +76 -0
  242. package/dist/services/hnsw-index.d.ts.map +1 -0
  243. package/dist/services/hnsw-index.js +301 -0
  244. package/dist/services/hnsw-index.js.map +1 -0
  245. package/dist/services/llm.d.ts +39 -0
  246. package/dist/services/llm.d.ts.map +1 -0
  247. package/dist/services/llm.js +207 -0
  248. package/dist/services/llm.js.map +1 -0
  249. package/dist/services/memory-tiers.d.ts +75 -0
  250. package/dist/services/memory-tiers.d.ts.map +1 -0
  251. package/dist/services/memory-tiers.js +275 -0
  252. package/dist/services/memory-tiers.js.map +1 -0
  253. package/dist/services/memory.d.ts +33 -0
  254. package/dist/services/memory.d.ts.map +1 -0
  255. package/dist/services/memory.js +209 -0
  256. package/dist/services/memory.js.map +1 -0
  257. package/dist/services/multi-agent-sharing.d.ts +83 -0
  258. package/dist/services/multi-agent-sharing.d.ts.map +1 -0
  259. package/dist/services/multi-agent-sharing.js +278 -0
  260. package/dist/services/multi-agent-sharing.js.map +1 -0
  261. package/dist/services/reranker.d.ts +88 -0
  262. package/dist/services/reranker.d.ts.map +1 -0
  263. package/dist/services/reranker.js +234 -0
  264. package/dist/services/reranker.js.map +1 -0
  265. package/dist/services/triple-extractor.d.ts +35 -0
  266. package/dist/services/triple-extractor.d.ts.map +1 -0
  267. package/dist/services/triple-extractor.js +293 -0
  268. package/dist/services/triple-extractor.js.map +1 -0
  269. package/dist/services/vector-provider.d.ts +40 -0
  270. package/dist/services/vector-provider.d.ts.map +1 -0
  271. package/dist/services/vector-provider.js +225 -0
  272. package/dist/services/vector-provider.js.map +1 -0
  273. package/dist/utils/after-chain-executor.d.ts +26 -0
  274. package/dist/utils/after-chain-executor.d.ts.map +1 -0
  275. package/dist/utils/after-chain-executor.js +135 -0
  276. package/dist/utils/after-chain-executor.js.map +1 -0
  277. package/dist/utils/after-chain.d.ts +94 -0
  278. package/dist/utils/after-chain.d.ts.map +1 -0
  279. package/dist/utils/after-chain.js +155 -0
  280. package/dist/utils/after-chain.js.map +1 -0
  281. package/dist/utils/db.d.ts +29 -0
  282. package/dist/utils/db.d.ts.map +1 -0
  283. package/dist/utils/db.js +201 -0
  284. package/dist/utils/db.js.map +1 -0
  285. package/dist/utils/encryption.d.ts +87 -0
  286. package/dist/utils/encryption.d.ts.map +1 -0
  287. package/dist/utils/encryption.js +175 -0
  288. package/dist/utils/encryption.js.map +1 -0
  289. package/dist/utils/errors.d.ts +35 -0
  290. package/dist/utils/errors.d.ts.map +1 -0
  291. package/dist/utils/errors.js +56 -0
  292. package/dist/utils/errors.js.map +1 -0
  293. package/dist/utils/logger.d.ts +27 -0
  294. package/dist/utils/logger.d.ts.map +1 -0
  295. package/dist/utils/logger.js +177 -0
  296. package/dist/utils/logger.js.map +1 -0
  297. package/dist/utils/priority.d.ts +26 -0
  298. package/dist/utils/priority.d.ts.map +1 -0
  299. package/dist/utils/priority.js +43 -0
  300. package/dist/utils/priority.js.map +1 -0
  301. package/dist/utils/watchdog.d.ts +57 -0
  302. package/dist/utils/watchdog.d.ts.map +1 -0
  303. package/dist/utils/watchdog.js +164 -0
  304. package/dist/utils/watchdog.js.map +1 -0
  305. package/package.json +78 -0
@@ -0,0 +1,113 @@
1
+ import { z } from 'zod';
2
+ import { createMemorySession, listMemorySessions, deleteMemorySession, getMemorySessionByIsolation, } from '../../schema/memory-session.js';
3
+ export const MemorySessionStoreInput = z.object({
4
+ key: z.string().min(1).describe('Session memory key'),
5
+ value: z.string().min(1).describe('Session memory value'),
6
+ scope: z.enum(['session', 'short', 'long', 'archival']).default('session')
7
+ .describe('Scope: session (window-close release), short (hours), long (days), archival (permanent)'),
8
+ expires_in_hours: z.number().positive().optional().describe('TTL in hours (overrides scope default)'),
9
+ meta: z.record(z.unknown()).optional().describe('Additional metadata'),
10
+ user_id: z.string().optional().default('default'),
11
+ agent_id: z.string().optional().default('default'),
12
+ project_id: z.string().optional().default('default'),
13
+ });
14
+ /** 存储会话级记忆 */
15
+ export async function memorySessionStoreTool(input) {
16
+ let expiresAt;
17
+ if (input.expires_in_hours) {
18
+ expiresAt = new Date(Date.now() + input.expires_in_hours * 60 * 60 * 1000);
19
+ }
20
+ else {
21
+ // 根据 scope 设置默认过期时间
22
+ expiresAt = getDefaultExpiry(input.scope);
23
+ }
24
+ const session = createMemorySession({
25
+ userId: input.user_id,
26
+ agentId: input.agent_id,
27
+ projectId: input.project_id,
28
+ scope: input.scope,
29
+ key: input.key,
30
+ value: input.value,
31
+ meta: input.meta,
32
+ expiresAt,
33
+ });
34
+ return { id: session.id, key: session.key, scope: session.scope };
35
+ }
36
+ /** 获取会话级记忆 */
37
+ export const MemorySessionGetInput = z.object({
38
+ key: z.string().min(1).describe('Session memory key'),
39
+ user_id: z.string().optional().default('default'),
40
+ agent_id: z.string().optional().default('default'),
41
+ project_id: z.string().optional().default('default'),
42
+ scope: z.enum(['session', 'short', 'long', 'archival']).default('session'),
43
+ });
44
+ export async function memorySessionGetTool(input) {
45
+ const session = getMemorySessionByIsolation({
46
+ userId: input.user_id,
47
+ agentId: input.agent_id,
48
+ projectId: input.project_id,
49
+ scope: input.scope,
50
+ key: input.key,
51
+ });
52
+ if (!session)
53
+ return null;
54
+ return { id: session.id, key: session.key, value: session.value, scope: session.scope };
55
+ }
56
+ /** 列出会话级记忆 */
57
+ export const MemorySessionListInput = z.object({
58
+ user_id: z.string().optional().default('default'),
59
+ agent_id: z.string().optional().default('default'),
60
+ project_id: z.string().optional().default('default'),
61
+ scope: z.enum(['session', 'short', 'long', 'archival']).optional(),
62
+ limit: z.number().int().positive().optional().default(50),
63
+ });
64
+ export async function memorySessionListTool(input) {
65
+ const sessions = listMemorySessions({
66
+ userId: input.user_id,
67
+ agentId: input.agent_id,
68
+ projectId: input.project_id,
69
+ scope: input.scope,
70
+ limit: input.limit,
71
+ });
72
+ return {
73
+ sessions: sessions.map(s => ({
74
+ id: s.id,
75
+ key: s.key,
76
+ scope: s.scope,
77
+ value: s.value,
78
+ updatedAt: s.updatedAt,
79
+ })),
80
+ };
81
+ }
82
+ /** 删除会话级记忆 */
83
+ export const MemorySessionDeleteInput = z.object({
84
+ key: z.string().min(1).describe('Session memory key to delete'),
85
+ user_id: z.string().optional().default('default'),
86
+ agent_id: z.string().optional().default('default'),
87
+ project_id: z.string().optional().default('default'),
88
+ scope: z.enum(['session', 'short', 'long', 'archival']).default('session'),
89
+ });
90
+ export async function memorySessionDeleteTool(input) {
91
+ const session = getMemorySessionByIsolation({
92
+ userId: input.user_id,
93
+ agentId: input.agent_id,
94
+ projectId: input.project_id,
95
+ scope: input.scope,
96
+ key: input.key,
97
+ });
98
+ if (!session)
99
+ return { deleted: false };
100
+ deleteMemorySession(session.id);
101
+ return { deleted: true };
102
+ }
103
+ /** 根据 scope 返回默认过期时间 */
104
+ function getDefaultExpiry(scope) {
105
+ const now = Date.now();
106
+ switch (scope) {
107
+ case 'session': return undefined; // 随窗口关闭释放
108
+ case 'short': return new Date(now + 4 * 60 * 60 * 1000); // 4 小时
109
+ case 'long': return new Date(now + 7 * 24 * 60 * 60 * 1000); // 7 天
110
+ case 'archival': return undefined; // 永不过期
111
+ }
112
+ }
113
+ //# sourceMappingURL=memory-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-session.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface MemoryStats {
2
+ total_memories: number;
3
+ by_priority: Record<string, number>;
4
+ anchored_count: number;
5
+ avg_content_length: number;
6
+ total_content_tokens: number;
7
+ expired_cleaned: number;
8
+ }
9
+ export declare function memoryStatsTool(): Promise<MemoryStats>;
10
+ //# sourceMappingURL=memory-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-stats.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory-stats.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAoC5D"}
@@ -0,0 +1,35 @@
1
+ import { getDatabase } from '../../utils/db.js';
2
+ import { listMemories, cleanupExpiredMemories } from '../../schema/memory.js';
3
+ export async function memoryStatsTool() {
4
+ // First clean up expired memories
5
+ const expiredCleaned = cleanupExpiredMemories();
6
+ void getDatabase(); // Ensure database is initialized
7
+ const memories = listMemories();
8
+ // Count by priority
9
+ const byPriority = {
10
+ anchored: 0,
11
+ constraint: 0,
12
+ decision: 0,
13
+ preference: 0,
14
+ fact: 0
15
+ };
16
+ let totalContentLength = 0;
17
+ let anchoredCount = 0;
18
+ for (const memory of memories) {
19
+ byPriority[memory.priority] = (byPriority[memory.priority] || 0) + 1;
20
+ totalContentLength += memory.content.length;
21
+ if (memory.anchored)
22
+ anchoredCount++;
23
+ }
24
+ // Estimate tokens (rough: 4 chars per token)
25
+ const totalTokens = Math.ceil(totalContentLength / 4);
26
+ return {
27
+ total_memories: memories.length,
28
+ by_priority: byPriority,
29
+ anchored_count: anchoredCount,
30
+ avg_content_length: memories.length > 0 ? Math.ceil(totalContentLength / memories.length) : 0,
31
+ total_content_tokens: totalTokens,
32
+ expired_cleaned: expiredCleaned
33
+ };
34
+ }
35
+ //# sourceMappingURL=memory-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-stats.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAW9E,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,kCAAkC;IAClC,MAAM,cAAc,GAAG,sBAAsB,EAAE,CAAC;IAEhD,KAAK,WAAW,EAAE,CAAC,CAAC,iCAAiC;IACrD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAEhC,oBAAoB;IACpB,MAAM,UAAU,GAA2B;QACzC,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,CAAC;KACR,CAAC;IAEF,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,kBAAkB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5C,IAAI,MAAM,CAAC,QAAQ;YAAE,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,6CAA6C;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAEtD,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;QAC7B,kBAAkB,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,oBAAoB,EAAE,WAAW;QACjC,eAAe,EAAE,cAAc;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { z } from 'zod';
2
+ export declare const MemoryStoreBatchInput: z.ZodObject<{
3
+ memories: z.ZodArray<z.ZodObject<{
4
+ content: z.ZodString;
5
+ priority: z.ZodEnum<["anchored", "constraint", "decision", "preference", "fact"]>;
6
+ project_tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
7
+ anchored: z.ZodOptional<z.ZodBoolean>;
8
+ expires_in_hours: z.ZodOptional<z.ZodNumber>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ content: string;
11
+ priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
12
+ project_tags?: string[] | undefined;
13
+ anchored?: boolean | undefined;
14
+ expires_in_hours?: number | undefined;
15
+ }, {
16
+ content: string;
17
+ priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
18
+ project_tags?: string[] | undefined;
19
+ anchored?: boolean | undefined;
20
+ expires_in_hours?: number | undefined;
21
+ }>, "many">;
22
+ }, "strip", z.ZodTypeAny, {
23
+ memories: {
24
+ content: string;
25
+ priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
26
+ project_tags?: string[] | undefined;
27
+ anchored?: boolean | undefined;
28
+ expires_in_hours?: number | undefined;
29
+ }[];
30
+ }, {
31
+ memories: {
32
+ content: string;
33
+ priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
34
+ project_tags?: string[] | undefined;
35
+ anchored?: boolean | undefined;
36
+ expires_in_hours?: number | undefined;
37
+ }[];
38
+ }>;
39
+ export type MemoryStoreBatchInputType = z.infer<typeof MemoryStoreBatchInput>;
40
+ export declare function memoryStoreBatchTool(input: MemoryStoreBatchInputType): Promise<{
41
+ stored: Array<{
42
+ id: string;
43
+ content: string;
44
+ priority: string;
45
+ }>;
46
+ duplicates: number;
47
+ total: number;
48
+ }>;
49
+ //# sourceMappingURL=memory-store-batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store-batch.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE9E,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;IACpF,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAoCD"}
@@ -0,0 +1,48 @@
1
+ import { z } from 'zod';
2
+ import { getMemoryService } from '../../services/memory.js';
3
+ import { logger } from '../../utils/logger.js';
4
+ const memoryService = getMemoryService();
5
+ export const MemoryStoreBatchInput = z.object({
6
+ memories: z.array(z.object({
7
+ content: z.string().describe('The memory content'),
8
+ priority: z.enum(['anchored', 'constraint', 'decision', 'preference', 'fact']).describe('Priority level'),
9
+ project_tags: z.array(z.string()).optional().describe('Project tags'),
10
+ anchored: z.boolean().optional().describe('Whether this memory is anchored'),
11
+ expires_in_hours: z.number().positive().optional().describe('TTL in hours')
12
+ })).min(1).max(100).describe('Array of memories to store')
13
+ });
14
+ export async function memoryStoreBatchTool(input) {
15
+ const stored = [];
16
+ let duplicates = 0;
17
+ for (const mem of input.memories) {
18
+ try {
19
+ // Calculate expiresAt if TTL is provided
20
+ let expiresAt;
21
+ if (mem.expires_in_hours) {
22
+ expiresAt = new Date(Date.now() + mem.expires_in_hours * 60 * 60 * 1000);
23
+ }
24
+ const memory = memoryService.storeMemory({
25
+ content: mem.content,
26
+ priority: mem.priority,
27
+ projectTags: mem.project_tags,
28
+ anchored: mem.anchored,
29
+ expiresAt
30
+ });
31
+ stored.push({
32
+ id: memory.id,
33
+ content: memory.content.substring(0, 50) + (memory.content.length > 50 ? '...' : ''),
34
+ priority: memory.priority
35
+ });
36
+ }
37
+ catch (error) {
38
+ logger.error('Failed to store memory in batch', { error: error instanceof Error ? error.message : String(error) });
39
+ duplicates++;
40
+ }
41
+ }
42
+ return {
43
+ stored,
44
+ duplicates,
45
+ total: input.memories.length
46
+ };
47
+ }
48
+ //# sourceMappingURL=memory-store-batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store-batch.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAClD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACzG,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC5E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC5E,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CAC3D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAgC;IAKzE,MAAM,MAAM,GAA6D,EAAE,CAAC;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,yCAAyC;YACzC,IAAI,SAA2B,CAAC;YAChC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACzB,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC;gBACvC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,GAAG,CAAC,QAAe;gBAC7B,WAAW,EAAE,GAAG,CAAC,YAAY;gBAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnH,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,UAAU;QACV,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ export declare const MemoryStoreInput: z.ZodObject<{
3
+ content: z.ZodString;
4
+ priority: z.ZodEnum<["anchored", "constraint", "decision", "preference", "fact"]>;
5
+ project_tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6
+ anchored: z.ZodOptional<z.ZodBoolean>;
7
+ expires_in_hours: z.ZodOptional<z.ZodNumber>;
8
+ updated_by: z.ZodOptional<z.ZodString>;
9
+ user_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
10
+ agent_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
11
+ project_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ content: string;
14
+ priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
15
+ user_id: string;
16
+ agent_id: string;
17
+ project_id: string;
18
+ project_tags?: string[] | undefined;
19
+ anchored?: boolean | undefined;
20
+ updated_by?: string | undefined;
21
+ expires_in_hours?: number | undefined;
22
+ }, {
23
+ content: string;
24
+ priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
25
+ project_tags?: string[] | undefined;
26
+ anchored?: boolean | undefined;
27
+ user_id?: string | undefined;
28
+ agent_id?: string | undefined;
29
+ project_id?: string | undefined;
30
+ updated_by?: string | undefined;
31
+ expires_in_hours?: number | undefined;
32
+ }>;
33
+ export type MemoryStoreInputType = z.infer<typeof MemoryStoreInput>;
34
+ export declare function memoryStoreTool(input: MemoryStoreInputType): Promise<{
35
+ id: string;
36
+ }>;
37
+ //# sourceMappingURL=memory-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB1F"}
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ import { getMemoryService } from '../../services/memory.js';
3
+ const memoryService = getMemoryService();
4
+ export const MemoryStoreInput = z.object({
5
+ content: z.string().min(1).describe('The memory content'),
6
+ priority: z.enum(['anchored', 'constraint', 'decision', 'preference', 'fact']).describe('Priority level'),
7
+ project_tags: z.array(z.string()).optional().describe('Project tags for filtering'),
8
+ anchored: z.boolean().optional().describe('Whether this memory is anchored (permanent)'),
9
+ expires_in_hours: z.number().positive().optional().describe('TTL in hours'),
10
+ updated_by: z.string().optional().describe('Source that updated this memory'),
11
+ // Storage isolation fields
12
+ user_id: z.string().optional().default('default').describe('User ID for isolation'),
13
+ agent_id: z.string().optional().default('default').describe('Agent ID for isolation'),
14
+ project_id: z.string().optional().default('default').describe('Project ID for isolation')
15
+ });
16
+ export async function memoryStoreTool(input) {
17
+ // Calculate expiresAt if TTL is provided
18
+ let expiresAt;
19
+ if (input.expires_in_hours) {
20
+ expiresAt = new Date(Date.now() + input.expires_in_hours * 60 * 60 * 1000);
21
+ }
22
+ const memory = memoryService.storeMemory({
23
+ content: input.content,
24
+ priority: input.priority,
25
+ projectTags: input.project_tags,
26
+ anchored: input.anchored,
27
+ expiresAt,
28
+ userId: input.user_id,
29
+ agentId: input.agent_id,
30
+ projectId: input.project_id
31
+ }, input.updated_by);
32
+ return { id: memory.id };
33
+ }
34
+ //# sourceMappingURL=memory-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACzG,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACnF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACxF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC7E,2BAA2B;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC1F,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA2B;IAC/D,yCAAyC;IACzC,IAAI,SAA2B,CAAC;IAChC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,YAAY;QAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS;QACT,MAAM,EAAE,KAAK,CAAC,OAAO;QACrB,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,SAAS,EAAE,KAAK,CAAC,UAAU;KAC5B,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAErB,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export declare const ProjectCreateInput: z.ZodObject<{
3
+ name: z.ZodString;
4
+ root_path: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ name: string;
7
+ root_path?: string | undefined;
8
+ }, {
9
+ name: string;
10
+ root_path?: string | undefined;
11
+ }>;
12
+ export type ProjectCreateInputType = z.infer<typeof ProjectCreateInput>;
13
+ export declare function projectCreateTool(input: ProjectCreateInputType): Promise<{
14
+ project_id: string;
15
+ }>;
16
+ //# sourceMappingURL=project-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-create.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/project-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAOtG"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { createProject } from '../../schema/project.js';
3
+ export const ProjectCreateInput = z.object({
4
+ name: z.string().min(1).describe('Project name'),
5
+ root_path: z.string().optional().describe('Root path of the project')
6
+ });
7
+ export async function projectCreateTool(input) {
8
+ const project = createProject({
9
+ name: input.name,
10
+ rootPath: input.root_path
11
+ });
12
+ return { project_id: project.id };
13
+ }
14
+ //# sourceMappingURL=project-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-create.js","sourceRoot":"","sources":["../../../src/mcp/tools/project-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACtE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAA6B;IACnE,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,88 @@
1
+ export type Priority = 'anchored' | 'constraint' | 'decision' | 'preference' | 'fact';
2
+ export interface Memory {
3
+ id: string;
4
+ userId: string;
5
+ agentId: string;
6
+ projectId: string;
7
+ content: string;
8
+ priority: Priority;
9
+ projectTags: string[];
10
+ anchored: boolean;
11
+ accessCount: number;
12
+ version: number;
13
+ updatedBy: string | null;
14
+ parentId: string | null;
15
+ lineage: string[];
16
+ createdAt: Date;
17
+ updatedAt: Date;
18
+ expiresAt: Date | null;
19
+ deleted: boolean;
20
+ }
21
+ export interface IsolationContext {
22
+ userId?: string;
23
+ agentId?: string;
24
+ projectId?: string;
25
+ }
26
+ export declare const DEFAULT_ISOLATION: IsolationContext;
27
+ export interface Compression {
28
+ id: string;
29
+ memoryId: string;
30
+ operation: 'snapshot' | 'update' | 'merge' | 'archive';
31
+ delta: Record<string, unknown>;
32
+ summary: string;
33
+ createdAt: Date;
34
+ }
35
+ export interface Project {
36
+ id: string;
37
+ name: string;
38
+ rootPath: string | null;
39
+ createdAt: Date;
40
+ }
41
+ export interface CreateMemoryInput {
42
+ content: string;
43
+ priority: Priority;
44
+ projectTags?: string[];
45
+ anchored?: boolean;
46
+ expiresAt?: Date | null;
47
+ userId?: string;
48
+ agentId?: string;
49
+ projectId?: string;
50
+ parentId?: string;
51
+ }
52
+ export interface CreateProjectInput {
53
+ name: string;
54
+ rootPath?: string | null;
55
+ }
56
+ export interface UpdateMemoryInput {
57
+ content?: string;
58
+ priority?: Priority;
59
+ projectTags?: string[];
60
+ anchored?: boolean;
61
+ expiresAt?: Date | null;
62
+ deleted?: boolean;
63
+ }
64
+ export interface RecallMemoryInput {
65
+ query: string;
66
+ projectTags?: string[];
67
+ limit?: number;
68
+ userId?: string;
69
+ agentId?: string;
70
+ projectId?: string;
71
+ }
72
+ export interface ReportUsageInput {
73
+ usedTokens: number;
74
+ maxTokens: number;
75
+ }
76
+ export interface MemoryResponse {
77
+ shouldCompress: boolean;
78
+ currentRatio: number;
79
+ }
80
+ export interface CompressionResult {
81
+ id: string;
82
+ compressedCount: number;
83
+ remainingRatio: number;
84
+ }
85
+ export declare const PRIORITY_WEIGHTS: Record<Priority, number>;
86
+ export declare const ANCHORED_DECAY_FACTOR = 1;
87
+ export declare const DEFAULT_DECAY_FACTOR = 0.99;
88
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ // Default isolation context
2
+ export const DEFAULT_ISOLATION = {
3
+ userId: 'default',
4
+ agentId: 'default',
5
+ projectId: 'default'
6
+ };
7
+ // Priority weights for scoring
8
+ export const PRIORITY_WEIGHTS = {
9
+ anchored: 1.0,
10
+ constraint: 0.8,
11
+ decision: 0.6,
12
+ preference: 0.4,
13
+ fact: 0.2
14
+ };
15
+ // Time decay factor for anchored memories (1.0 = no decay)
16
+ export const ANCHORED_DECAY_FACTOR = 1.0;
17
+ // Default time decay for non-anchored memories
18
+ export const DEFAULT_DECAY_FACTOR = 0.99;
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AA+BA,4BAA4B;AAC5B,MAAM,CAAC,MAAM,iBAAiB,GAAqB;IACjD,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;CACrB,CAAC;AA2EF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Compression } from '../models/types.js';
2
+ export declare function createCompression(memoryId: string, operation: Compression['operation'], delta: Record<string, unknown>, summary: string): Compression;
3
+ export declare function getCompression(id: string): Compression | null;
4
+ export declare function getCompressionHistory(memoryId: string): Compression[];
5
+ export declare function listCompressions(): Compression[];
6
+ export declare function cleanupOldCompressions(olderThanDays?: number): number;
7
+ //# sourceMappingURL=compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/schema/compression.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAuBjD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,MAAM,GACd,WAAW,CAcb;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAO7D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAUrE;AAED,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAOhD;AAED,wBAAgB,sBAAsB,CAAC,aAAa,GAAE,MAAW,GAAG,MAAM,CAUzE"}
@@ -0,0 +1,66 @@
1
+ import { v4 as uuidv4 } from 'uuid';
2
+ import { query, run } from '../utils/db.js';
3
+ import { DatabaseError } from '../utils/errors.js';
4
+ function rowToCompression(row) {
5
+ return {
6
+ id: row.id,
7
+ memoryId: row.memory_id,
8
+ operation: row.operation,
9
+ delta: JSON.parse(row.delta),
10
+ summary: row.summary,
11
+ createdAt: new Date(row.created_at)
12
+ };
13
+ }
14
+ export function createCompression(memoryId, operation, delta, summary) {
15
+ const id = uuidv4();
16
+ const now = new Date().toISOString();
17
+ try {
18
+ run(`
19
+ INSERT INTO compressions (id, memory_id, operation, delta, summary, created_at)
20
+ VALUES (?, ?, ?, ?, ?, ?)
21
+ `, [id, memoryId, operation, JSON.stringify(delta), summary, now]);
22
+ return getCompression(id);
23
+ }
24
+ catch (error) {
25
+ throw new DatabaseError('Failed to create compression record', error);
26
+ }
27
+ }
28
+ export function getCompression(id) {
29
+ try {
30
+ const results = query('SELECT * FROM compressions WHERE id = ?', [id]);
31
+ return results.length > 0 ? rowToCompression(results[0]) : null;
32
+ }
33
+ catch (error) {
34
+ throw new DatabaseError('Failed to get compression', error);
35
+ }
36
+ }
37
+ export function getCompressionHistory(memoryId) {
38
+ try {
39
+ const rows = query(`SELECT * FROM compressions WHERE memory_id = ? ORDER BY created_at DESC`, [memoryId]);
40
+ return rows.map(rowToCompression);
41
+ }
42
+ catch (error) {
43
+ throw new DatabaseError('Failed to get compression history', error);
44
+ }
45
+ }
46
+ export function listCompressions() {
47
+ try {
48
+ const rows = query('SELECT * FROM compressions ORDER BY created_at DESC');
49
+ return rows.map(rowToCompression);
50
+ }
51
+ catch (error) {
52
+ throw new DatabaseError('Failed to list compressions', error);
53
+ }
54
+ }
55
+ export function cleanupOldCompressions(olderThanDays = 30) {
56
+ try {
57
+ const cutoff = new Date();
58
+ cutoff.setDate(cutoff.getDate() - olderThanDays);
59
+ const result = run(`DELETE FROM compressions WHERE created_at < ?`, [cutoff.toISOString()]);
60
+ return result.changes;
61
+ }
62
+ catch (error) {
63
+ throw new DatabaseError('Failed to cleanup old compressions', error);
64
+ }
65
+ }
66
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/schema/compression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface FullTextResult {
2
+ memoryId: string;
3
+ content: string;
4
+ rank: number;
5
+ bm25Score: number;
6
+ }
7
+ export declare function initFullTextSearch(): void;
8
+ export declare function searchFullText(queryText: string, limit?: number): FullTextResult[];
9
+ export declare function rebuildFullTextIndex(): number;
10
+ //# sourceMappingURL=fulltext-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fulltext-search.d.ts","sourceRoot":"","sources":["../../src/schema/fulltext-search.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAmCzC;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACjB,cAAc,EAAE,CA4BlB;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAY7C"}