cortex-mcp 2.7.6 → 2.9.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 (202) hide show
  1. package/CHANGELOG.md +305 -58
  2. package/README.md +394 -224
  3. package/dist/cli/setup.js +58 -60
  4. package/dist/cli/setup.js.map +1 -1
  5. package/dist/config/config.js +2 -2
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/db/database.d.ts +8 -0
  8. package/dist/db/database.d.ts.map +1 -1
  9. package/dist/db/database.js +35 -54
  10. package/dist/db/database.js.map +1 -1
  11. package/dist/db/event-log.d.ts +4 -0
  12. package/dist/db/event-log.d.ts.map +1 -1
  13. package/dist/db/event-log.js +14 -10
  14. package/dist/db/event-log.js.map +1 -1
  15. package/dist/db/memory-store.d.ts +30 -3
  16. package/dist/db/memory-store.d.ts.map +1 -1
  17. package/dist/db/memory-store.js +153 -55
  18. package/dist/db/memory-store.js.map +1 -1
  19. package/dist/embedding-worker.js +1 -1
  20. package/dist/embedding-worker.js.map +1 -1
  21. package/dist/hooks/git-capture.js +3 -3
  22. package/dist/hooks/git-hooks.js +5 -2
  23. package/dist/mcp-stdio.js +39 -5
  24. package/dist/mcp-stdio.js.map +1 -1
  25. package/dist/memory/access-pattern-tracker.d.ts +51 -0
  26. package/dist/memory/access-pattern-tracker.d.ts.map +1 -0
  27. package/dist/memory/access-pattern-tracker.js +92 -0
  28. package/dist/memory/access-pattern-tracker.js.map +1 -0
  29. package/dist/memory/anticipation-engine.d.ts.map +1 -1
  30. package/dist/memory/anticipation-engine.js +18 -10
  31. package/dist/memory/anticipation-engine.js.map +1 -1
  32. package/dist/memory/auto-learner.d.ts.map +1 -1
  33. package/dist/memory/auto-learner.js +192 -45
  34. package/dist/memory/auto-learner.js.map +1 -1
  35. package/dist/memory/completion-resolver.d.ts +38 -0
  36. package/dist/memory/completion-resolver.d.ts.map +1 -0
  37. package/dist/memory/completion-resolver.js +127 -0
  38. package/dist/memory/completion-resolver.js.map +1 -0
  39. package/dist/memory/confidence-decay.d.ts.map +1 -1
  40. package/dist/memory/confidence-decay.js +13 -9
  41. package/dist/memory/confidence-decay.js.map +1 -1
  42. package/dist/memory/convention-detector.d.ts +11 -0
  43. package/dist/memory/convention-detector.d.ts.map +1 -0
  44. package/dist/memory/convention-detector.js +294 -0
  45. package/dist/memory/convention-detector.js.map +1 -0
  46. package/dist/memory/correction-detector.d.ts +33 -0
  47. package/dist/memory/correction-detector.d.ts.map +1 -0
  48. package/dist/memory/correction-detector.js +129 -0
  49. package/dist/memory/correction-detector.js.map +1 -0
  50. package/dist/memory/cross-memory-linker.d.ts +18 -0
  51. package/dist/memory/cross-memory-linker.d.ts.map +1 -0
  52. package/dist/memory/cross-memory-linker.js +115 -0
  53. package/dist/memory/cross-memory-linker.js.map +1 -0
  54. package/dist/memory/daily-diary.d.ts +30 -0
  55. package/dist/memory/daily-diary.d.ts.map +1 -0
  56. package/dist/memory/daily-diary.js +159 -0
  57. package/dist/memory/daily-diary.js.map +1 -0
  58. package/dist/memory/embedding-cache.d.ts +32 -0
  59. package/dist/memory/embedding-cache.d.ts.map +1 -0
  60. package/dist/memory/embedding-cache.js +76 -0
  61. package/dist/memory/embedding-cache.js.map +1 -0
  62. package/dist/memory/embedding-manager.d.ts.map +1 -1
  63. package/dist/memory/embedding-manager.js +6 -4
  64. package/dist/memory/embedding-manager.js.map +1 -1
  65. package/dist/memory/error-learner.d.ts +26 -0
  66. package/dist/memory/error-learner.d.ts.map +1 -0
  67. package/dist/memory/error-learner.js +145 -0
  68. package/dist/memory/error-learner.js.map +1 -0
  69. package/dist/memory/export-import.js +2 -2
  70. package/dist/memory/export-import.js.map +1 -1
  71. package/dist/memory/file-relationships.d.ts +47 -0
  72. package/dist/memory/file-relationships.d.ts.map +1 -0
  73. package/dist/memory/file-relationships.js +130 -0
  74. package/dist/memory/file-relationships.js.map +1 -0
  75. package/dist/memory/git-memory.d.ts.map +1 -1
  76. package/dist/memory/git-memory.js +20 -26
  77. package/dist/memory/git-memory.js.map +1 -1
  78. package/dist/memory/impact-analyzer.d.ts +16 -0
  79. package/dist/memory/impact-analyzer.d.ts.map +1 -0
  80. package/dist/memory/impact-analyzer.js +189 -0
  81. package/dist/memory/impact-analyzer.js.map +1 -0
  82. package/dist/memory/instructions-generator.d.ts +30 -0
  83. package/dist/memory/instructions-generator.d.ts.map +1 -0
  84. package/dist/memory/instructions-generator.js +117 -0
  85. package/dist/memory/instructions-generator.js.map +1 -0
  86. package/dist/memory/learning-rate.js +8 -7
  87. package/dist/memory/learning-rate.js.map +1 -1
  88. package/dist/memory/llm-enhancer.d.ts +2 -14
  89. package/dist/memory/llm-enhancer.d.ts.map +1 -1
  90. package/dist/memory/llm-enhancer.js +66 -46
  91. package/dist/memory/llm-enhancer.js.map +1 -1
  92. package/dist/memory/memory-cache.d.ts.map +1 -1
  93. package/dist/memory/memory-cache.js +10 -0
  94. package/dist/memory/memory-cache.js.map +1 -1
  95. package/dist/memory/memory-consolidator.d.ts.map +1 -1
  96. package/dist/memory/memory-consolidator.js +20 -14
  97. package/dist/memory/memory-consolidator.js.map +1 -1
  98. package/dist/memory/memory-decay.d.ts.map +1 -1
  99. package/dist/memory/memory-decay.js +82 -52
  100. package/dist/memory/memory-decay.js.map +1 -1
  101. package/dist/memory/memory-export-md.d.ts +12 -0
  102. package/dist/memory/memory-export-md.d.ts.map +1 -0
  103. package/dist/memory/memory-export-md.js +188 -0
  104. package/dist/memory/memory-export-md.js.map +1 -0
  105. package/dist/memory/memory-quality.d.ts +1 -1
  106. package/dist/memory/memory-quality.d.ts.map +1 -1
  107. package/dist/memory/memory-quality.js +9 -6
  108. package/dist/memory/memory-quality.js.map +1 -1
  109. package/dist/memory/memory-ranker.d.ts.map +1 -1
  110. package/dist/memory/memory-ranker.js +12 -3
  111. package/dist/memory/memory-ranker.js.map +1 -1
  112. package/dist/memory/meta-memory.js +3 -3
  113. package/dist/memory/meta-memory.js.map +1 -1
  114. package/dist/memory/mmr-reranker.d.ts +39 -0
  115. package/dist/memory/mmr-reranker.d.ts.map +1 -0
  116. package/dist/memory/mmr-reranker.js +115 -0
  117. package/dist/memory/mmr-reranker.js.map +1 -0
  118. package/dist/memory/pre-flight.d.ts +24 -0
  119. package/dist/memory/pre-flight.d.ts.map +1 -0
  120. package/dist/memory/pre-flight.js +121 -0
  121. package/dist/memory/pre-flight.js.map +1 -0
  122. package/dist/memory/preference-learner.d.ts +28 -0
  123. package/dist/memory/preference-learner.d.ts.map +1 -0
  124. package/dist/memory/preference-learner.js +144 -0
  125. package/dist/memory/preference-learner.js.map +1 -0
  126. package/dist/memory/query-expansion.d.ts +28 -0
  127. package/dist/memory/query-expansion.d.ts.map +1 -0
  128. package/dist/memory/query-expansion.js +140 -0
  129. package/dist/memory/query-expansion.js.map +1 -0
  130. package/dist/memory/regression-guard.d.ts +35 -0
  131. package/dist/memory/regression-guard.d.ts.map +1 -0
  132. package/dist/memory/regression-guard.js +90 -0
  133. package/dist/memory/regression-guard.js.map +1 -0
  134. package/dist/memory/resume-work.d.ts +37 -0
  135. package/dist/memory/resume-work.d.ts.map +1 -0
  136. package/dist/memory/resume-work.js +141 -0
  137. package/dist/memory/resume-work.js.map +1 -0
  138. package/dist/memory/session-tracker.d.ts +2 -0
  139. package/dist/memory/session-tracker.d.ts.map +1 -1
  140. package/dist/memory/session-tracker.js +26 -8
  141. package/dist/memory/session-tracker.js.map +1 -1
  142. package/dist/memory/soul-manager.d.ts +30 -0
  143. package/dist/memory/soul-manager.d.ts.map +1 -0
  144. package/dist/memory/soul-manager.js +171 -0
  145. package/dist/memory/soul-manager.js.map +1 -0
  146. package/dist/memory/success-tracker.d.ts +33 -0
  147. package/dist/memory/success-tracker.d.ts.map +1 -0
  148. package/dist/memory/success-tracker.js +75 -0
  149. package/dist/memory/success-tracker.js.map +1 -0
  150. package/dist/memory/temporal-engine.d.ts.map +1 -1
  151. package/dist/memory/temporal-engine.js +9 -13
  152. package/dist/memory/temporal-engine.js.map +1 -1
  153. package/dist/memory/tool-recommender.d.ts +29 -0
  154. package/dist/memory/tool-recommender.d.ts.map +1 -0
  155. package/dist/memory/tool-recommender.js +117 -0
  156. package/dist/memory/tool-recommender.js.map +1 -0
  157. package/dist/memory/usage-stats.d.ts +98 -0
  158. package/dist/memory/usage-stats.d.ts.map +1 -0
  159. package/dist/memory/usage-stats.js +345 -0
  160. package/dist/memory/usage-stats.js.map +1 -0
  161. package/dist/retrieval/hybrid-retriever.d.ts +0 -2
  162. package/dist/retrieval/hybrid-retriever.d.ts.map +1 -1
  163. package/dist/retrieval/hybrid-retriever.js +3 -13
  164. package/dist/retrieval/hybrid-retriever.js.map +1 -1
  165. package/dist/scanners/architecture-graph.js +2 -2
  166. package/dist/scanners/architecture-graph.js.map +1 -1
  167. package/dist/scanners/code-verifier.d.ts +1 -0
  168. package/dist/scanners/code-verifier.d.ts.map +1 -1
  169. package/dist/scanners/code-verifier.js +14 -14
  170. package/dist/scanners/code-verifier.js.map +1 -1
  171. package/dist/scanners/context-builder.d.ts.map +1 -1
  172. package/dist/scanners/context-builder.js +33 -45
  173. package/dist/scanners/context-builder.js.map +1 -1
  174. package/dist/scanners/export-map.js +2 -2
  175. package/dist/scanners/export-map.js.map +1 -1
  176. package/dist/scanners/project-scanner.js +2 -2
  177. package/dist/scanners/project-scanner.js.map +1 -1
  178. package/dist/security/encryption.js +1 -1
  179. package/dist/security/encryption.js.map +1 -1
  180. package/dist/security/feature-gate.d.ts.map +1 -1
  181. package/dist/security/feature-gate.js +62 -20
  182. package/dist/security/feature-gate.js.map +1 -1
  183. package/dist/security/license.js +282 -35
  184. package/dist/security/license.js.map +1 -1
  185. package/dist/security/rate-limiter.d.ts +4 -3
  186. package/dist/security/rate-limiter.d.ts.map +1 -1
  187. package/dist/security/rate-limiter.js +11 -29
  188. package/dist/security/rate-limiter.js.map +1 -1
  189. package/dist/server/dashboard.js +166 -327
  190. package/dist/server/dashboard.js.map +1 -1
  191. package/dist/server/mcp-handler.d.ts.map +1 -1
  192. package/dist/server/mcp-handler.js +1000 -792
  193. package/dist/server/mcp-handler.js.map +1 -1
  194. package/dist/utils/extract-tags.d.ts +16 -0
  195. package/dist/utils/extract-tags.d.ts.map +1 -0
  196. package/dist/utils/extract-tags.js +40 -0
  197. package/dist/utils/extract-tags.js.map +1 -0
  198. package/package.json +18 -8
  199. package/dist/core/event-bus.d.ts +0 -19
  200. package/dist/core/event-bus.d.ts.map +0 -1
  201. package/dist/core/event-bus.js +0 -51
  202. package/dist/core/event-bus.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume-work.js","sourceRoot":"","sources":["../../src/memory/resume-work.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export interface SessionData {
16
16
  businessRules: string[];
17
17
  gotchas: string[];
18
18
  currentTasks: string[];
19
+ project: string;
19
20
  autoLearnCount: number;
20
21
  lastUpdateTime: number;
21
22
  }
@@ -30,6 +31,7 @@ export declare function feedSession(data: {
30
31
  businessRule?: string;
31
32
  gotcha?: string;
32
33
  currentTask?: string;
34
+ project?: string;
33
35
  type?: string;
34
36
  }): void;
35
37
  /** Build and store the session summary */
@@ -1 +1 @@
1
- {"version":3,"file":"session-tracker.d.ts","sourceRoot":"","sources":["../../src/memory/session-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAAgB,YAAY,IAAI,IAAI,CAanC;AAED,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAE/C;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAaP;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CA+DlE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE,CA2BvF"}
1
+ {"version":3,"file":"session-tracker.d.ts","sourceRoot":"","sources":["../../src/memory/session-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAAgB,YAAY,IAAI,IAAI,CAcnC;AAED,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAE/C;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CA8BP;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CA+DlE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE,CA0BvF"}
@@ -18,6 +18,7 @@ function startSession() {
18
18
  businessRules: [],
19
19
  gotchas: [],
20
20
  currentTasks: [],
21
+ project: '',
21
22
  autoLearnCount: 0,
22
23
  lastUpdateTime: Date.now(),
23
24
  };
@@ -30,20 +31,38 @@ function feedSession(data) {
30
31
  if (!currentSession)
31
32
  startSession();
32
33
  const s = currentSession;
34
+ const MAX_SESSION_ENTRIES = 20;
33
35
  if (data.topic)
34
36
  s.topics.add(data.topic.toLowerCase().slice(0, 80));
35
- if (data.decision)
37
+ if (data.decision) {
36
38
  s.decisions.push(data.decision.slice(0, 150));
39
+ if (s.decisions.length > MAX_SESSION_ENTRIES)
40
+ s.decisions.shift();
41
+ }
37
42
  if (data.fileChanged)
38
43
  s.filesChanged.add(data.fileChanged);
39
- if (data.failedAttempt)
44
+ if (data.failedAttempt) {
40
45
  s.failedAttempts.push(data.failedAttempt.slice(0, 150));
41
- if (data.businessRule)
46
+ if (s.failedAttempts.length > MAX_SESSION_ENTRIES)
47
+ s.failedAttempts.shift();
48
+ }
49
+ if (data.businessRule) {
42
50
  s.businessRules.push(data.businessRule.slice(0, 150));
43
- if (data.gotcha)
51
+ if (s.businessRules.length > MAX_SESSION_ENTRIES)
52
+ s.businessRules.shift();
53
+ }
54
+ if (data.gotcha) {
44
55
  s.gotchas.push(data.gotcha.slice(0, 150));
45
- if (data.currentTask)
56
+ if (s.gotchas.length > MAX_SESSION_ENTRIES)
57
+ s.gotchas.shift();
58
+ }
59
+ if (data.currentTask) {
46
60
  s.currentTasks.push(data.currentTask.slice(0, 150));
61
+ if (s.currentTasks.length > MAX_SESSION_ENTRIES)
62
+ s.currentTasks.shift();
63
+ }
64
+ if (data.project)
65
+ s.project = data.project;
47
66
  s.autoLearnCount++;
48
67
  s.lastUpdateTime = Date.now();
49
68
  }
@@ -103,9 +122,8 @@ function endSession(memoryStore) {
103
122
  }
104
123
  /** Get the last N session summaries for injection at conversation start */
105
124
  function getRecentSessions(memoryStore, count = 3) {
106
- const sessions = memoryStore.getByType(types_1.MemoryType.CONVERSATION, count * 2)
107
- .filter(m => m.tags?.includes('session-summary'))
108
- .slice(0, count);
125
+ // Use SQL-level tag search instead of loading all conversations and filtering in JS
126
+ const sessions = memoryStore.findByTag('session-summary', count);
109
127
  // Cross-session threading — detect topic overlap with current session
110
128
  const currentTopics = currentSession ? [...currentSession.topics] : [];
111
129
  return sessions.map(s => {
@@ -1 +1 @@
1
- {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../src/memory/session-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../src/memory/session-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export interface SoulEntry {
2
+ category: string;
3
+ content: string;
4
+ }
5
+ /**
6
+ * Load SOUL.md from workspace. Returns content or null.
7
+ */
8
+ export declare function loadSoul(workspaceRoot: string): string | null;
9
+ /**
10
+ * Initialize SOUL.md with default template if it doesn't exist.
11
+ */
12
+ export declare function initSoul(workspaceRoot: string): string;
13
+ /**
14
+ * Update soul by appending a new entry under the right category.
15
+ */
16
+ export declare function updateSoul(workspaceRoot: string, entry: SoulEntry): void;
17
+ /**
18
+ * Format soul content for injection into force_recall (Layer 0).
19
+ */
20
+ export declare function formatSoul(workspaceRoot: string): string;
21
+ /**
22
+ * Auto-learn from memories to build soul entries.
23
+ * Called periodically — extracts strong conventions and rules.
24
+ */
25
+ export declare function autoLearnSoul(workspaceRoot: string, memories: Array<{
26
+ type: string;
27
+ intent: string;
28
+ accessCount?: number;
29
+ }>): void;
30
+ //# sourceMappingURL=soul-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soul-manager.d.ts","sourceRoot":"","sources":["../../src/memory/soul-manager.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AAuBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAoBxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CASxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAelI"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.loadSoul = loadSoul;
37
+ exports.initSoul = initSoul;
38
+ exports.updateSoul = updateSoul;
39
+ exports.formatSoul = formatSoul;
40
+ exports.autoLearnSoul = autoLearnSoul;
41
+ /**
42
+ * Soul Manager — OpenClaw-style persistent identity layer.
43
+ *
44
+ * Creates and maintains a SOUL.md file in the workspace that stores:
45
+ * - User's coding preferences ("always use TypeScript strict mode")
46
+ * - Project conventions ("we use PostgreSQL, never MongoDB")
47
+ * - Identity ("Senior Backend Engineer working on e-commerce platform")
48
+ *
49
+ * This is injected as Layer 0 in force_recall — the very first thing the AI sees.
50
+ * Unlike transient memories, the Soul NEVER decays.
51
+ *
52
+ * Inspired by OpenClaw's SOUL.md / IDENTITY.md architecture.
53
+ */
54
+ const fs = __importStar(require("fs"));
55
+ const path = __importStar(require("path"));
56
+ const DEFAULT_SOUL = `# 🧠 Cortex Soul — Who I Am
57
+
58
+ > This file is your AI's persistent identity. Edit it freely.
59
+ > Cortex reads this at the start of every session.
60
+
61
+ ## Identity
62
+ - (Add your role: e.g., "Senior TypeScript developer")
63
+ - (Add your project: e.g., "Building an e-commerce platform")
64
+
65
+ ## Conventions
66
+ - (Add team rules: e.g., "Always use strict TypeScript, never \`any\`")
67
+ - (Add stack: e.g., "PostgreSQL, Redis, Next.js 14")
68
+
69
+ ## Preferences
70
+ - (Add style: e.g., "Prefer functional over OOP")
71
+ - (Add tools: e.g., "Use pnpm, not npm")
72
+
73
+ ## Rules (Never Break)
74
+ - (Add hard rules: e.g., "Never delete user data without confirmation")
75
+ `;
76
+ /**
77
+ * Load SOUL.md from workspace. Returns content or null.
78
+ */
79
+ function loadSoul(workspaceRoot) {
80
+ const soulPath = getSoulPath(workspaceRoot);
81
+ try {
82
+ if (fs.existsSync(soulPath)) {
83
+ return fs.readFileSync(soulPath, 'utf-8').trim();
84
+ }
85
+ }
86
+ catch { /* file not readable */ }
87
+ return null;
88
+ }
89
+ /**
90
+ * Initialize SOUL.md with default template if it doesn't exist.
91
+ */
92
+ function initSoul(workspaceRoot) {
93
+ const soulPath = getSoulPath(workspaceRoot);
94
+ try {
95
+ const dir = path.dirname(soulPath);
96
+ if (!fs.existsSync(dir))
97
+ fs.mkdirSync(dir, { recursive: true });
98
+ if (!fs.existsSync(soulPath)) {
99
+ fs.writeFileSync(soulPath, DEFAULT_SOUL, 'utf-8');
100
+ return DEFAULT_SOUL;
101
+ }
102
+ return fs.readFileSync(soulPath, 'utf-8').trim();
103
+ }
104
+ catch {
105
+ return '';
106
+ }
107
+ }
108
+ /**
109
+ * Update soul by appending a new entry under the right category.
110
+ */
111
+ function updateSoul(workspaceRoot, entry) {
112
+ const soulPath = getSoulPath(workspaceRoot);
113
+ try {
114
+ let content = loadSoul(workspaceRoot) || DEFAULT_SOUL;
115
+ const sectionMap = {
116
+ 'identity': '## Identity',
117
+ 'convention': '## Conventions',
118
+ 'preference': '## Preferences',
119
+ 'rule': '## Rules (Never Break)',
120
+ };
121
+ const header = sectionMap[entry.category] || '## Preferences';
122
+ const idx = content.indexOf(header);
123
+ if (idx >= 0) {
124
+ const insertAt = content.indexOf('\n', idx) + 1;
125
+ content = content.slice(0, insertAt) + `- ${entry.content}\n` + content.slice(insertAt);
126
+ }
127
+ else {
128
+ content += `\n${header}\n- ${entry.content}\n`;
129
+ }
130
+ fs.writeFileSync(soulPath, content, 'utf-8');
131
+ }
132
+ catch { /* non-fatal */ }
133
+ }
134
+ /**
135
+ * Format soul content for injection into force_recall (Layer 0).
136
+ */
137
+ function formatSoul(workspaceRoot) {
138
+ const soul = loadSoul(workspaceRoot);
139
+ if (!soul || soul.includes('(Add your role'))
140
+ return ''; // Still default template
141
+ // Strip the header explanation, keep only the actual content
142
+ const lines = soul.split('\n').filter(l => l.trim() && !l.startsWith('>') && !l.includes('(Add your'));
143
+ if (lines.length <= 1)
144
+ return '';
145
+ return `\n## 🧬 Soul (Persistent Identity)\n${lines.join('\n')}`;
146
+ }
147
+ /**
148
+ * Auto-learn from memories to build soul entries.
149
+ * Called periodically — extracts strong conventions and rules.
150
+ */
151
+ function autoLearnSoul(workspaceRoot, memories) {
152
+ try {
153
+ const soul = loadSoul(workspaceRoot) || '';
154
+ const strongConventions = memories.filter(m => (m.type === 'CONVENTION' || m.type === 'DECISION') &&
155
+ (m.accessCount || 0) >= 3 && // Accessed multiple times = important
156
+ !soul.includes(m.intent.slice(0, 40)) // Not already in soul
157
+ );
158
+ for (const m of strongConventions.slice(0, 3)) {
159
+ updateSoul(workspaceRoot, {
160
+ category: m.type === 'CONVENTION' ? 'convention' : 'preference',
161
+ content: m.intent.slice(0, 150),
162
+ });
163
+ }
164
+ }
165
+ catch { /* non-fatal */ }
166
+ }
167
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
168
+ function getSoulPath(workspaceRoot) {
169
+ return path.join(workspaceRoot, '.cortex', 'SOUL.md');
170
+ }
171
+ //# sourceMappingURL=soul-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soul-manager.js","sourceRoot":"","sources":["../../src/memory/soul-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Success Tracker — Reinforces approaches that work.
3
+ *
4
+ * When the user says "that worked", "perfect", "great job", "exactly what I wanted",
5
+ * this module captures what approach was used and stores it as a proven pattern.
6
+ *
7
+ * The AI currently only learns from MISTAKES (corrections, bug fixes).
8
+ * But learning from SUCCESS is equally important — repeat what works.
9
+ *
10
+ * Detects:
11
+ * - Explicit praise: "perfect", "that's exactly right", "great"
12
+ * - Implicit success: "it works now", "the tests pass", "build succeeded"
13
+ * - Task completion: "done", "all good", "ship it"
14
+ */
15
+ export interface SuccessSignal {
16
+ type: 'explicit_praise' | 'implicit_success' | 'task_completion';
17
+ trigger: string;
18
+ confidence: number;
19
+ }
20
+ /**
21
+ * Detect success signals from user text.
22
+ */
23
+ export declare function detectSuccess(text: string): SuccessSignal[];
24
+ /**
25
+ * Build a success memory from the signal and the AI's recent response context.
26
+ * The context should describe what approach was used.
27
+ */
28
+ export declare function buildSuccessMemory(signal: SuccessSignal, aiContext: string): {
29
+ intent: string;
30
+ reason: string;
31
+ tags: string[];
32
+ };
33
+ //# sourceMappingURL=success-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"success-tracker.d.ts","sourceRoot":"","sources":["../../src/memory/success-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAyBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAiB3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,CAcA"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Success Tracker — Reinforces approaches that work.
4
+ *
5
+ * When the user says "that worked", "perfect", "great job", "exactly what I wanted",
6
+ * this module captures what approach was used and stores it as a proven pattern.
7
+ *
8
+ * The AI currently only learns from MISTAKES (corrections, bug fixes).
9
+ * But learning from SUCCESS is equally important — repeat what works.
10
+ *
11
+ * Detects:
12
+ * - Explicit praise: "perfect", "that's exactly right", "great"
13
+ * - Implicit success: "it works now", "the tests pass", "build succeeded"
14
+ * - Task completion: "done", "all good", "ship it"
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.detectSuccess = detectSuccess;
18
+ exports.buildSuccessMemory = buildSuccessMemory;
19
+ // ─── Detection Patterns ──────────────────────────────────────────────────────
20
+ const PRAISE_PATTERNS = [
21
+ // Explicit praise (highest confidence)
22
+ { regex: /\b(?:perfect|exactly\s+(?:right|what\s+i\s+(?:wanted|needed)))\b/i, type: 'explicit_praise', confidence: 0.95 },
23
+ { regex: /\b(?:great\s+(?:job|work)|well\s+done|nice\s+work|awesome|excellent)\b/i, type: 'explicit_praise', confidence: 0.90 },
24
+ { regex: /\bthat'?s?\s+(?:exactly|precisely|perfectly)\s+(?:right|correct|it)\b/i, type: 'explicit_praise', confidence: 0.90 },
25
+ { regex: /\bthank(?:s| you)\s+(?:that|this|it)\s+(?:works?|helped|fixed)\b/i, type: 'explicit_praise', confidence: 0.85 },
26
+ { regex: /\byou\s+(?:nailed|got)\s+it\b/i, type: 'explicit_praise', confidence: 0.90 },
27
+ // Implicit success (medium confidence)
28
+ { regex: /\b(?:it|that)\s+works?\s+(?:now|perfectly|great|fine)\b/i, type: 'implicit_success', confidence: 0.85 },
29
+ { regex: /\btests?\s+(?:pass|passed|passing|all\s+pass)\b/i, type: 'implicit_success', confidence: 0.90 },
30
+ { regex: /\bbuild\s+(?:succeeded|passed|success|works)\b/i, type: 'implicit_success', confidence: 0.90 },
31
+ { regex: /\b(?:no\s+(?:more\s+)?errors?|error\s+(?:is\s+)?(?:gone|fixed|resolved))\b/i, type: 'implicit_success', confidence: 0.85 },
32
+ { regex: /\b(?:the\s+)?(?:bug|issue|problem)\s+(?:is\s+)?(?:fixed|resolved|gone)\b/i, type: 'implicit_success', confidence: 0.85 },
33
+ // Task completion (lower confidence — context-dependent)
34
+ { regex: /\b(?:all\s+(?:good|done|set)|we'?re?\s+(?:good|done|set))\b/i, type: 'task_completion', confidence: 0.75 },
35
+ { regex: /\b(?:ship\s+it|let'?s?\s+(?:merge|deploy|push))\b/i, type: 'task_completion', confidence: 0.80 },
36
+ { regex: /\b(?:looks?\s+(?:good|great|perfect)|lgtm)\b/i, type: 'task_completion', confidence: 0.80 },
37
+ ];
38
+ /**
39
+ * Detect success signals from user text.
40
+ */
41
+ function detectSuccess(text) {
42
+ const signals = [];
43
+ const seen = new Set();
44
+ for (const pattern of PRAISE_PATTERNS) {
45
+ const match = text.match(pattern.regex);
46
+ if (match && !seen.has(pattern.type)) {
47
+ signals.push({
48
+ type: pattern.type,
49
+ trigger: match[0],
50
+ confidence: pattern.confidence,
51
+ });
52
+ seen.add(`${pattern.type}:${match[0].toLowerCase()}`);
53
+ }
54
+ }
55
+ return signals;
56
+ }
57
+ /**
58
+ * Build a success memory from the signal and the AI's recent response context.
59
+ * The context should describe what approach was used.
60
+ */
61
+ function buildSuccessMemory(signal, aiContext) {
62
+ // Extract the approach from AI context (first meaningful sentence)
63
+ const approach = aiContext
64
+ .split(/[.\n]/)
65
+ .map(s => s.trim())
66
+ .filter(s => s.length > 20 && s.length < 200)
67
+ .slice(0, 2)
68
+ .join('. ') || aiContext.slice(0, 200);
69
+ return {
70
+ intent: `[PROVEN] ${approach}`,
71
+ reason: `User confirmed success: "${signal.trigger}" (${signal.type}, confidence: ${signal.confidence})`,
72
+ tags: ['success', 'proven-pattern', signal.type],
73
+ };
74
+ }
75
+ //# sourceMappingURL=success-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"success-tracker.js","sourceRoot":"","sources":["../../src/memory/success-tracker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAkCH,sCAiBC;AAMD,gDAkBC;AAnED,gFAAgF;AAEhF,MAAM,eAAe,GAA8E;IAC/F,uCAAuC;IACvC,EAAE,KAAK,EAAE,mEAAmE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;IACzH,EAAE,KAAK,EAAE,yEAAyE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;IAC/H,EAAE,KAAK,EAAE,wEAAwE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;IAC9H,EAAE,KAAK,EAAE,mEAAmE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;IACzH,EAAE,KAAK,EAAE,gCAAgC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;IAEtF,uCAAuC;IACvC,EAAE,KAAK,EAAE,0DAA0D,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;IACjH,EAAE,KAAK,EAAE,kDAAkD,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;IACzG,EAAE,KAAK,EAAE,iDAAiD,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;IACxG,EAAE,KAAK,EAAE,6EAA6E,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;IACpI,EAAE,KAAK,EAAE,2EAA2E,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;IAElI,yDAAyD;IACzD,EAAE,KAAK,EAAE,8DAA8D,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;IACpH,EAAE,KAAK,EAAE,oDAAoD,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;IAC1G,EAAE,KAAK,EAAE,+CAA+C,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;CACxG,CAAC;AAEF;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAY;IACtC,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBACjB,UAAU,EAAE,OAAO,CAAC,UAAU;aACjC,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,MAAqB,EAAE,SAAiB;IAKvE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,SAAS;SACrB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;SAC5C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE3C,OAAO;QACH,MAAM,EAAE,YAAY,QAAQ,EAAE;QAC9B,MAAM,EAAE,4BAA4B,MAAM,CAAC,OAAO,MAAM,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,UAAU,GAAG;QACxG,IAAI,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC;KACnD,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"temporal-engine.d.ts","sourceRoot":"","sources":["../../src/memory/temporal-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,2CAA2C;AAC3C,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,EAAE,CAuB7E;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE,CAG3F;AAED,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAiBtE;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAmD9D"}
1
+ {"version":3,"file":"temporal-engine.d.ts","sourceRoot":"","sources":["../../src/memory/temporal-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,2CAA2C;AAC3C,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,EAAE,CAkB7E;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE,CAG3F;AAED,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAiBtE;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAmD9D"}
@@ -4,6 +4,7 @@ exports.getTemporalBuckets = getTemporalBuckets;
4
4
  exports.getRecentChanges = getRecentChanges;
5
5
  exports.formatTemporalContext = formatTemporalContext;
6
6
  exports.getWorkspaceDiff = getWorkspaceDiff;
7
+ const child_process_1 = require("child_process");
7
8
  /** Get memories bucketed by time period */
8
9
  function getTemporalBuckets(memoryStore) {
9
10
  const now = Date.now();
@@ -15,21 +16,16 @@ function getTemporalBuckets(memoryStore) {
15
16
  { label: 'Yesterday', memories: [], start: now - 2 * DAY, end: now - DAY },
16
17
  { label: 'This week', memories: [], start: now - 7 * DAY, end: now - 2 * DAY },
17
18
  ];
18
- const active = memoryStore.getActive(200);
19
- for (const m of active) {
20
- for (const bucket of buckets) {
21
- if (m.timestamp >= bucket.start && m.timestamp < bucket.end) {
22
- bucket.memories.push(m);
23
- break;
24
- }
25
- }
19
+ // SQL-targeted: fetch only memories in each time range
20
+ for (const bucket of buckets) {
21
+ bucket.memories = memoryStore.getActiveByTimestampRange(bucket.start, bucket.end, 50);
26
22
  }
27
23
  return buckets.filter(b => b.memories.length > 0);
28
24
  }
29
25
  /** Get only recent changes (last N hours) */
30
26
  function getRecentChanges(memoryStore, hours = 24) {
31
27
  const since = Date.now() - (hours * 3600000);
32
- return memoryStore.getActive(200).filter(m => m.timestamp >= since);
28
+ return memoryStore.getActiveByTimestampRange(since, Date.now(), 200);
33
29
  }
34
30
  /** Format temporal context for injection into force_recall */
35
31
  function formatTemporalContext(memoryStore) {
@@ -52,11 +48,11 @@ function formatTemporalContext(memoryStore) {
52
48
  /** Get workspace changes since last session */
53
49
  function getWorkspaceDiff(workspaceRoot) {
54
50
  try {
55
- const { execSync } = require('child_process');
51
+ // execSync imported at module level
56
52
  // Recent commits
57
53
  let commits = '';
58
54
  try {
59
- commits = execSync('git log --oneline -5', {
55
+ commits = (0, child_process_1.execSync)('git log --oneline -5', {
60
56
  cwd: workspaceRoot,
61
57
  encoding: 'utf-8',
62
58
  timeout: 3000,
@@ -66,7 +62,7 @@ function getWorkspaceDiff(workspaceRoot) {
66
62
  // Files changed recently
67
63
  let diffStat = '';
68
64
  try {
69
- diffStat = execSync('git diff --stat HEAD~3 2>nul || echo "no git history"', {
65
+ diffStat = (0, child_process_1.execSync)('git diff --stat HEAD~3 2>nul || echo "no git history"', {
70
66
  cwd: workspaceRoot,
71
67
  encoding: 'utf-8',
72
68
  timeout: 3000,
@@ -76,7 +72,7 @@ function getWorkspaceDiff(workspaceRoot) {
76
72
  // Current branch
77
73
  let branch = '';
78
74
  try {
79
- branch = execSync('git branch --show-current', {
75
+ branch = (0, child_process_1.execSync)('git branch --show-current', {
80
76
  cwd: workspaceRoot,
81
77
  encoding: 'utf-8',
82
78
  timeout: 2000,
@@ -1 +1 @@
1
- {"version":3,"file":"temporal-engine.js","sourceRoot":"","sources":["../../src/memory/temporal-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"temporal-engine.js","sourceRoot":"","sources":["../../src/memory/temporal-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Tool Recommender — Suggests which Cortex tools to use based on context.
3
+ *
4
+ * THE GAP THIS FILLS:
5
+ * The AI has 20 tools but often doesn't know WHEN to use which.
6
+ * This module analyzes the current situation and recommends the right tools.
7
+ *
8
+ * Like a flight checklist: "Before takeoff: check instruments, fuel, clearance."
9
+ * Here: "Before editing auth.ts: run pre_check, check_impact, verify_code."
10
+ */
11
+ export interface ToolRecommendation {
12
+ tool: string;
13
+ reason: string;
14
+ priority: 'must' | 'should' | 'could';
15
+ }
16
+ /**
17
+ * Recommend tools based on what the user is doing.
18
+ */
19
+ export declare function recommendTools(context: {
20
+ topic?: string;
21
+ currentFile?: string;
22
+ isNewConversation?: boolean;
23
+ recentAction?: string;
24
+ }): ToolRecommendation[];
25
+ /**
26
+ * Format tool recommendations for injection.
27
+ */
28
+ export declare function formatRecommendations(recs: ToolRecommendation[]): string;
29
+ //# sourceMappingURL=tool-recommender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-recommender.d.ts","sourceRoot":"","sources":["../../src/memory/tool-recommender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,kBAAkB,EAAE,CAgGvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,MAAM,CASxE"}