squish-memory 0.8.2 → 0.9.2

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 (283) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.env.mcp +30 -0
  4. package/.mcp.json +2 -5
  5. package/CHANGELOG.md +111 -0
  6. package/QUICK-START.md +65 -0
  7. package/README.md +188 -530
  8. package/commands/managed-sync.ts +69 -0
  9. package/commands/mcp-server.ts +519 -0
  10. package/config/mcp-cli-fallback-policy.json +22 -0
  11. package/config/mcp-migration-map.json +22 -0
  12. package/config/mcp-mode-semantics.json +21 -0
  13. package/config/mcp-remote-auth.json +36 -0
  14. package/config/mcp-universal.schema.json +48 -0
  15. package/config/mcp.json +38 -0
  16. package/config/remote-memory-policy.json +32 -0
  17. package/dist/algorithms/merge/detection/hash-filters.js +2 -2
  18. package/dist/algorithms/merge/detection/hash-filters.js.map +1 -1
  19. package/dist/algorithms/merge/detection/two-stage-detector.d.ts +5 -2
  20. package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -1
  21. package/dist/algorithms/merge/detection/two-stage-detector.js +139 -22
  22. package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -1
  23. package/dist/api/web/index.d.ts +3 -0
  24. package/dist/api/web/index.d.ts.map +1 -0
  25. package/dist/api/web/index.js +4 -0
  26. package/dist/api/web/index.js.map +1 -0
  27. package/dist/api/web/web-server.d.ts +3 -0
  28. package/dist/api/web/web-server.d.ts.map +1 -0
  29. package/dist/api/web/web-server.js +6 -0
  30. package/dist/api/web/web-server.js.map +1 -0
  31. package/dist/api/web/web.d.ts.map +1 -1
  32. package/dist/api/web/web.js +227 -78
  33. package/dist/api/web/web.js.map +1 -1
  34. package/dist/commands/managed-sync.d.ts +10 -0
  35. package/dist/commands/managed-sync.d.ts.map +1 -0
  36. package/dist/commands/managed-sync.js +64 -0
  37. package/dist/commands/managed-sync.js.map +1 -0
  38. package/dist/commands/mcp-server.d.ts +3 -0
  39. package/dist/commands/mcp-server.d.ts.map +1 -0
  40. package/dist/commands/mcp-server.js +389 -0
  41. package/dist/commands/mcp-server.js.map +1 -0
  42. package/dist/config.d.ts +24 -1
  43. package/dist/config.d.ts.map +1 -1
  44. package/dist/config.js +32 -1
  45. package/dist/config.js.map +1 -1
  46. package/dist/core/associations.d.ts +1 -1
  47. package/dist/core/associations.d.ts.map +1 -1
  48. package/dist/core/consolidation.d.ts +31 -0
  49. package/dist/core/consolidation.d.ts.map +1 -1
  50. package/dist/core/consolidation.js +237 -29
  51. package/dist/core/consolidation.js.map +1 -1
  52. package/dist/core/embeddings/google-multimodal.d.ts +14 -0
  53. package/dist/core/embeddings/google-multimodal.d.ts.map +1 -0
  54. package/dist/core/embeddings/google-multimodal.js +142 -0
  55. package/dist/core/embeddings/google-multimodal.js.map +1 -0
  56. package/dist/core/embeddings.d.ts +3 -2
  57. package/dist/core/embeddings.d.ts.map +1 -1
  58. package/dist/core/embeddings.js +61 -39
  59. package/dist/core/embeddings.js.map +1 -1
  60. package/dist/core/mcp/client.d.ts +17 -0
  61. package/dist/core/mcp/client.d.ts.map +1 -0
  62. package/dist/core/mcp/client.js +101 -0
  63. package/dist/core/mcp/client.js.map +1 -0
  64. package/dist/core/mcp/index.d.ts +6 -0
  65. package/dist/core/mcp/index.d.ts.map +1 -0
  66. package/dist/core/mcp/index.js +6 -0
  67. package/dist/core/mcp/index.js.map +1 -0
  68. package/dist/core/mcp/server.d.ts +18 -0
  69. package/dist/core/mcp/server.d.ts.map +1 -0
  70. package/dist/core/mcp/server.js +131 -0
  71. package/dist/core/mcp/server.js.map +1 -0
  72. package/dist/core/mcp/standalone-server.d.ts +13 -0
  73. package/dist/core/mcp/standalone-server.d.ts.map +1 -0
  74. package/dist/core/mcp/standalone-server.js +46 -0
  75. package/dist/core/mcp/standalone-server.js.map +1 -0
  76. package/dist/core/mcp/tools.d.ts +9 -0
  77. package/dist/core/mcp/tools.d.ts.map +1 -0
  78. package/dist/core/mcp/tools.js +262 -0
  79. package/dist/core/mcp/tools.js.map +1 -0
  80. package/dist/core/mcp/types.d.ts +315 -0
  81. package/dist/core/mcp/types.d.ts.map +1 -0
  82. package/dist/core/mcp/types.js +48 -0
  83. package/dist/core/mcp/types.js.map +1 -0
  84. package/dist/core/memory/categorizer.d.ts +27 -0
  85. package/dist/core/memory/categorizer.d.ts.map +1 -0
  86. package/dist/core/memory/categorizer.js +304 -0
  87. package/dist/core/memory/categorizer.js.map +1 -0
  88. package/dist/core/memory/conflict-detector.d.ts +7 -0
  89. package/dist/core/memory/conflict-detector.d.ts.map +1 -0
  90. package/dist/core/memory/conflict-detector.js +43 -0
  91. package/dist/core/memory/conflict-detector.js.map +1 -0
  92. package/dist/core/memory/context-collector.d.ts +10 -0
  93. package/dist/core/memory/context-collector.d.ts.map +1 -0
  94. package/dist/core/memory/context-collector.js +55 -0
  95. package/dist/core/memory/context-collector.js.map +1 -0
  96. package/dist/core/memory/contradiction-resolver.d.ts +40 -0
  97. package/dist/core/memory/contradiction-resolver.d.ts.map +1 -0
  98. package/dist/core/memory/contradiction-resolver.js +368 -0
  99. package/dist/core/memory/contradiction-resolver.js.map +1 -0
  100. package/dist/core/memory/edit-workflow.d.ts +19 -0
  101. package/dist/core/memory/edit-workflow.d.ts.map +1 -0
  102. package/dist/core/memory/edit-workflow.js +120 -0
  103. package/dist/core/memory/edit-workflow.js.map +1 -0
  104. package/dist/core/memory/feedback-tracker.d.ts +12 -0
  105. package/dist/core/memory/feedback-tracker.d.ts.map +1 -0
  106. package/dist/core/memory/feedback-tracker.js +151 -0
  107. package/dist/core/memory/feedback-tracker.js.map +1 -0
  108. package/dist/core/memory/hybrid-retrieval.d.ts +11 -12
  109. package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -1
  110. package/dist/core/memory/hybrid-retrieval.js +56 -28
  111. package/dist/core/memory/hybrid-retrieval.js.map +1 -1
  112. package/dist/core/memory/hybrid-scorer.d.ts +5 -16
  113. package/dist/core/memory/hybrid-scorer.d.ts.map +1 -1
  114. package/dist/core/memory/hybrid-scorer.js +161 -125
  115. package/dist/core/memory/hybrid-scorer.js.map +1 -1
  116. package/dist/core/memory/hybrid-search.js +64 -22
  117. package/dist/core/memory/hybrid-search.js.map +1 -1
  118. package/dist/core/memory/memories.d.ts +4 -0
  119. package/dist/core/memory/memories.d.ts.map +1 -1
  120. package/dist/core/memory/memories.js +138 -60
  121. package/dist/core/memory/memories.js.map +1 -1
  122. package/dist/core/memory/progressive-disclosure.d.ts +43 -0
  123. package/dist/core/memory/progressive-disclosure.d.ts.map +1 -0
  124. package/dist/core/memory/progressive-disclosure.js +280 -0
  125. package/dist/core/memory/progressive-disclosure.js.map +1 -0
  126. package/dist/core/memory/query-rewriter.d.ts +13 -0
  127. package/dist/core/memory/query-rewriter.d.ts.map +1 -0
  128. package/dist/core/memory/query-rewriter.js +118 -0
  129. package/dist/core/memory/query-rewriter.js.map +1 -0
  130. package/dist/core/memory/response-analyzer.d.ts +9 -0
  131. package/dist/core/memory/response-analyzer.d.ts.map +1 -0
  132. package/dist/core/memory/response-analyzer.js +61 -0
  133. package/dist/core/memory/response-analyzer.js.map +1 -0
  134. package/dist/core/memory/stats.d.ts +17 -0
  135. package/dist/core/memory/stats.d.ts.map +1 -0
  136. package/dist/core/memory/stats.js +87 -0
  137. package/dist/core/memory/stats.js.map +1 -0
  138. package/dist/core/memory/telemetry.d.ts +69 -0
  139. package/dist/core/memory/telemetry.d.ts.map +1 -0
  140. package/dist/core/memory/telemetry.js +313 -0
  141. package/dist/core/memory/telemetry.js.map +1 -0
  142. package/dist/core/memory/temporal-facts.d.ts +41 -0
  143. package/dist/core/memory/temporal-facts.d.ts.map +1 -0
  144. package/dist/core/memory/temporal-facts.js +262 -0
  145. package/dist/core/memory/temporal-facts.js.map +1 -0
  146. package/dist/core/memory/trigger-detector.d.ts +14 -0
  147. package/dist/core/memory/trigger-detector.d.ts.map +1 -0
  148. package/dist/core/memory/trigger-detector.js +42 -0
  149. package/dist/core/memory/trigger-detector.js.map +1 -0
  150. package/dist/core/memory/write-gate.d.ts +54 -0
  151. package/dist/core/memory/write-gate.d.ts.map +1 -0
  152. package/dist/core/memory/write-gate.js +210 -0
  153. package/dist/core/memory/write-gate.js.map +1 -0
  154. package/dist/core/observations.d.ts.map +1 -1
  155. package/dist/core/observations.js +1 -0
  156. package/dist/core/observations.js.map +1 -1
  157. package/dist/core/projects.d.ts +2 -0
  158. package/dist/core/projects.d.ts.map +1 -1
  159. package/dist/core/projects.js +33 -0
  160. package/dist/core/projects.js.map +1 -1
  161. package/dist/core/scheduler/cron-scheduler.d.ts +32 -0
  162. package/dist/core/scheduler/cron-scheduler.d.ts.map +1 -0
  163. package/dist/core/scheduler/cron-scheduler.js +238 -0
  164. package/dist/core/scheduler/cron-scheduler.js.map +1 -0
  165. package/dist/core/scheduler/heartbeat.d.ts +11 -0
  166. package/dist/core/scheduler/heartbeat.d.ts.map +1 -0
  167. package/dist/core/scheduler/heartbeat.js +73 -0
  168. package/dist/core/scheduler/heartbeat.js.map +1 -0
  169. package/dist/core/scheduler/index.d.ts +8 -0
  170. package/dist/core/scheduler/index.d.ts.map +1 -0
  171. package/dist/core/scheduler/index.js +8 -0
  172. package/dist/core/scheduler/index.js.map +1 -0
  173. package/dist/core/scheduler/job-runner.d.ts +11 -0
  174. package/dist/core/scheduler/job-runner.d.ts.map +1 -0
  175. package/dist/core/scheduler/job-runner.js +161 -0
  176. package/dist/core/scheduler/job-runner.js.map +1 -0
  177. package/dist/core/session/auto-load.d.ts +6 -0
  178. package/dist/core/session/auto-load.d.ts.map +1 -0
  179. package/dist/core/session/auto-load.js +119 -0
  180. package/dist/core/session/auto-load.js.map +1 -0
  181. package/dist/core/session/index.d.ts +7 -0
  182. package/dist/core/session/index.d.ts.map +1 -0
  183. package/dist/core/session/index.js +7 -0
  184. package/dist/core/session/index.js.map +1 -0
  185. package/dist/core/session/types.d.ts +26 -0
  186. package/dist/core/session/types.d.ts.map +1 -0
  187. package/dist/core/session/types.js +10 -0
  188. package/dist/core/session/types.js.map +1 -0
  189. package/dist/core/snapshots/comparison.d.ts.map +1 -1
  190. package/dist/core/snapshots/comparison.js +8 -2
  191. package/dist/core/snapshots/comparison.js.map +1 -1
  192. package/dist/core/utils/content-extraction.d.ts.map +1 -1
  193. package/dist/core/utils/content-extraction.js +11 -1
  194. package/dist/core/utils/content-extraction.js.map +1 -1
  195. package/dist/core/utils/memory-operations.d.ts.map +1 -1
  196. package/dist/core/utils/memory-operations.js +3 -1
  197. package/dist/core/utils/memory-operations.js.map +1 -1
  198. package/dist/core/utils/summarization-helpers.d.ts.map +1 -1
  199. package/dist/core/utils/summarization-helpers.js +4 -1
  200. package/dist/core/utils/summarization-helpers.js.map +1 -1
  201. package/dist/core/utils.d.ts.map +1 -1
  202. package/dist/core/utils.js +26 -3
  203. package/dist/core/utils.js.map +1 -1
  204. package/dist/core/worker.d.ts +20 -0
  205. package/dist/core/worker.d.ts.map +1 -1
  206. package/dist/core/worker.js +86 -0
  207. package/dist/core/worker.js.map +1 -1
  208. package/dist/db/adapter.d.ts +1 -5
  209. package/dist/db/adapter.d.ts.map +1 -1
  210. package/dist/db/adapter.js +137 -12
  211. package/dist/db/adapter.js.map +1 -1
  212. package/dist/db/bootstrap.d.ts.map +1 -1
  213. package/dist/db/bootstrap.js +178 -3
  214. package/dist/db/bootstrap.js.map +1 -1
  215. package/dist/db/index.d.ts +1 -5
  216. package/dist/db/index.d.ts.map +1 -1
  217. package/dist/db/index.js +7 -4
  218. package/dist/db/index.js.map +1 -1
  219. package/dist/drizzle/schema-sqlite.d.ts +1953 -612
  220. package/dist/drizzle/schema-sqlite.d.ts.map +1 -1
  221. package/dist/drizzle/schema-sqlite.js +134 -0
  222. package/dist/drizzle/schema-sqlite.js.map +1 -1
  223. package/dist/drizzle/schema.d.ts +684 -3
  224. package/dist/drizzle/schema.d.ts.map +1 -1
  225. package/dist/drizzle/schema.js +81 -1
  226. package/dist/drizzle/schema.js.map +1 -1
  227. package/dist/index.d.ts +3 -3
  228. package/dist/index.js +152 -13
  229. package/dist/index.js.map +1 -1
  230. package/package.json +126 -103
  231. package/scripts/build-release.sh +33 -0
  232. package/scripts/db/check-db.mjs +88 -0
  233. package/scripts/db/fix-all-columns.mjs +52 -0
  234. package/scripts/db/fix-schema-all.mjs +55 -0
  235. package/scripts/db/fix-schema-full.mjs +46 -0
  236. package/scripts/db/fix-schema.mjs +38 -0
  237. package/scripts/db/init-db.mjs +13 -0
  238. package/scripts/db/recreate-db.mjs +14 -0
  239. package/scripts/generate-mcp.mjs +264 -0
  240. package/scripts/github-release.sh +61 -0
  241. package/scripts/init-dirs.mjs +13 -0
  242. package/scripts/init-dirs.ts +15 -0
  243. package/scripts/install-mcp.mjs +116 -0
  244. package/scripts/install-web.sh +120 -0
  245. package/scripts/install.mjs +340 -0
  246. package/scripts/openclaw-bootstrap.mjs +127 -0
  247. package/scripts/package-release.sh +71 -0
  248. package/scripts/remote-preflight.mjs +62 -0
  249. package/scripts/squish-fallback.mjs +132 -0
  250. package/scripts/test/test-all-systems.mjs +139 -0
  251. package/scripts/test/test-memory-system.mjs +139 -0
  252. package/scripts/test/test-v0.5.0.mjs +210 -0
  253. package/scripts/verify-mcp.mjs +214 -0
  254. package/skills/memory-guide/SKILL.md +181 -123
  255. package/skills/squish-cli/SKILL.md +200 -0
  256. package/skills/squish-mcp/SKILL.md +311 -0
  257. package/skills/squish-memory/SKILL.md +100 -62
  258. package/skills/squish-memory/claude-desktop.json +12 -0
  259. package/skills/squish-memory/install.mjs +335 -0
  260. package/skills/squish-memory/install.sh +94 -62
  261. package/skills/squish-memory/openclaw.json +13 -0
  262. package/skills/squish-memory/opencode.json +14 -0
  263. package/skills/squish-memory/skill.json +32 -0
  264. package/dist/adapters/claude-code/capture.d.ts +0 -11
  265. package/dist/adapters/claude-code/capture.d.ts.map +0 -1
  266. package/dist/adapters/claude-code/capture.js +0 -100
  267. package/dist/adapters/claude-code/capture.js.map +0 -1
  268. package/dist/adapters/claude-code/index.d.ts +0 -5
  269. package/dist/adapters/claude-code/index.d.ts.map +0 -1
  270. package/dist/adapters/claude-code/index.js +0 -6
  271. package/dist/adapters/claude-code/index.js.map +0 -1
  272. package/dist/adapters/claude-code/injection.d.ts +0 -34
  273. package/dist/adapters/claude-code/injection.d.ts.map +0 -1
  274. package/dist/adapters/claude-code/injection.js +0 -127
  275. package/dist/adapters/claude-code/injection.js.map +0 -1
  276. package/dist/adapters/claude-code/plugin-wrapper.d.ts +0 -21
  277. package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +0 -1
  278. package/dist/adapters/claude-code/plugin-wrapper.js +0 -239
  279. package/dist/adapters/claude-code/plugin-wrapper.js.map +0 -1
  280. package/dist/adapters/claude-code/types.d.ts +0 -46
  281. package/dist/adapters/claude-code/types.d.ts.map +0 -1
  282. package/dist/adapters/claude-code/types.js +0 -6
  283. package/dist/adapters/claude-code/types.js.map +0 -1
@@ -0,0 +1,42 @@
1
+ const EXPLICIT_TRIGGER_PATTERNS = [
2
+ { label: 'remember', regex: /\bremember\b/i },
3
+ { label: 'dont-forget', regex: /\b(?:don'?t\s+forget|do\s+not\s+forget)\b/i },
4
+ { label: 'keep-in-mind', regex: /\bkeep\s+in\s+mind\b/i },
5
+ { label: 'note-that', regex: /\bnote\s+that\b/i },
6
+ { label: 'from-now-on', regex: /\bfrom\s+now\s+on\b/i },
7
+ { label: 'going-forward', regex: /\bgoing\s+forward\b/i },
8
+ { label: 'save-this', regex: /\bsave\s+this\b/i },
9
+ { label: 'log-this', regex: /\blog\s+this\b/i },
10
+ { label: 'important', regex: /\bimportant\s*:/i },
11
+ ];
12
+ export function detectMemorySignals(content) {
13
+ const text = content.trim();
14
+ const explicitTriggers = EXPLICIT_TRIGGER_PATTERNS.filter((p) => p.regex.test(text)).map((p) => p.label);
15
+ const implicit = {
16
+ decision: /\b(?:decided|choose|chose|going with|picked|selected|final decision)\b/i.test(text) ||
17
+ /\b(?:x over y|option\s+[a-z0-9]+\s+over)\b/i.test(text),
18
+ correction: /\b(?:no,?\s+i\s+meant|actually,?\s+that'?s\s+not|correction:|i\s+meant)\b/i.test(text),
19
+ preference: /\b(?:i\s+like|i\s+don'?t\s+like|i\s+hate|my\s+preference\s+is|prefer)\b/i.test(text) ||
20
+ /\b(?:always|never)\b/i.test(text),
21
+ workflowRule: /\b(?:let'?s\s+always\s+do\s+it\s+this\s+way|standard\s+workflow|runbook)\b/i.test(text),
22
+ lesson: /\b(?:failed\s+because|lesson\s+learned|next\s+time|do\s+not\s+repeat|root\s+cause)\b/i.test(text),
23
+ };
24
+ let suggestedType = 'observation';
25
+ if (implicit.preference)
26
+ suggestedType = 'preference';
27
+ if (implicit.decision)
28
+ suggestedType = 'decision';
29
+ if (implicit.workflowRule || implicit.lesson)
30
+ suggestedType = 'context';
31
+ if (!implicit.decision && !implicit.preference && /\b(?:is|are|was|were|uses|has|have)\b/i.test(text)) {
32
+ suggestedType = 'fact';
33
+ }
34
+ const priority = explicitTriggers.length > 0 || implicit.correction ? 'high' : 'normal';
35
+ return {
36
+ explicitTriggers,
37
+ implicit,
38
+ suggestedType,
39
+ priority,
40
+ };
41
+ }
42
+ //# sourceMappingURL=trigger-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-detector.js","sourceRoot":"","sources":["../../../core/memory/trigger-detector.ts"],"names":[],"mappings":"AAaA,MAAM,yBAAyB,GAA4C;IACzE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE;IAC7C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,4CAA4C,EAAE;IAC7E,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE;IACzD,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACjD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACvD,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACzD,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACjD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAC/C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE;CAClD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEzG,MAAM,QAAQ,GAAG;QACf,QAAQ,EACN,yEAAyE,CAAC,IAAI,CAAC,IAAI,CAAC;YACpF,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1D,UAAU,EAAE,4EAA4E,CAAC,IAAI,CAAC,IAAI,CAAC;QACnG,UAAU,EACR,0EAA0E,CAAC,IAAI,CAAC,IAAI,CAAC;YACrF,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,YAAY,EAAE,6EAA6E,CAAC,IAAI,CAAC,IAAI,CAAC;QACtG,MAAM,EACJ,uFAAuF,CAAC,IAAI,CAAC,IAAI,CAAC;KACrG,CAAC;IAEF,IAAI,aAAa,GAAmC,aAAa,CAAC;IAClE,IAAI,QAAQ,CAAC,UAAU;QAAE,aAAa,GAAG,YAAY,CAAC;IACtD,IAAI,QAAQ,CAAC,QAAQ;QAAE,aAAa,GAAG,UAAU,CAAC;IAClD,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,MAAM;QAAE,aAAa,GAAG,SAAS,CAAC;IACxE,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtG,aAAa,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,QAAQ,GAA8B,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEnH,OAAO;QACL,gBAAgB;QAChB,QAAQ;QACR,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Write Gate Enforcement
3
+ * Validates memories before writing to ensure quality, security, and consistency
4
+ * Integrates secret detection, trigger detection, and content validation
5
+ */
6
+ import { MemorySignals } from './trigger-detector.js';
7
+ export interface WriteGateResult {
8
+ allowed: boolean;
9
+ sanitized: boolean;
10
+ warnings: string[];
11
+ errors: string[];
12
+ metadata: {
13
+ secretsDetected: number;
14
+ signals: MemorySignals | null;
15
+ contradictions: {
16
+ found: boolean;
17
+ count: number;
18
+ };
19
+ temporalSupersession: {
20
+ count: number;
21
+ };
22
+ };
23
+ sanitizedContent?: string;
24
+ }
25
+ export interface WriteGateOptions {
26
+ allowSecrets?: boolean;
27
+ minContentLength?: number;
28
+ maxContentLength?: number;
29
+ projectId?: string;
30
+ skipContradictionCheck?: boolean;
31
+ skipTemporalSupersession?: boolean;
32
+ }
33
+ /**
34
+ * Main write gate function - validates and sanitizes content before write
35
+ */
36
+ export declare function enforceWriteGate(content: string, type: string, options?: WriteGateOptions): Promise<WriteGateResult>;
37
+ /**
38
+ * Quick validation without async operations
39
+ * Use for fast pre-check before full validation
40
+ */
41
+ export declare function quickValidate(content: string): {
42
+ valid: boolean;
43
+ errors: string[];
44
+ };
45
+ /**
46
+ * Sanitize content for storage
47
+ * Redacts secrets and normalizes whitespace
48
+ */
49
+ export declare function sanitizeForStorage(content: string): string;
50
+ /**
51
+ * Calculate a quality score for content (0-100)
52
+ */
53
+ export declare function calculateContentQualityScore(content: string): number;
54
+ //# sourceMappingURL=write-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-gate.d.ts","sourceRoot":"","sources":["../../../core/memory/write-gate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAuB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;QAC9B,cAAc,EAAE;YACd,KAAK,EAAE,OAAO,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,oBAAoB,EAAE;YACpB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAUD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAwG1B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAC9C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAqBA;AA2CD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY1D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkCpE"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Write Gate Enforcement
3
+ * Validates memories before writing to ensure quality, security, and consistency
4
+ * Integrates secret detection, trigger detection, and content validation
5
+ */
6
+ import { detectSecrets, redactSecrets } from '../secret-detector.js';
7
+ import { detectMemorySignals } from './trigger-detector.js';
8
+ import { resolveContradictions } from './contradiction-resolver.js';
9
+ import { logger } from '../logger.js';
10
+ const DEFAULT_OPTIONS = {
11
+ allowSecrets: false,
12
+ minContentLength: 5,
13
+ maxContentLength: 50000,
14
+ skipContradictionCheck: false,
15
+ skipTemporalSupersession: false,
16
+ };
17
+ /**
18
+ * Main write gate function - validates and sanitizes content before write
19
+ */
20
+ export async function enforceWriteGate(content, type, options = {}) {
21
+ const opts = { ...DEFAULT_OPTIONS, ...options };
22
+ const result = {
23
+ allowed: true,
24
+ sanitized: false,
25
+ warnings: [],
26
+ errors: [],
27
+ metadata: {
28
+ secretsDetected: 0,
29
+ signals: null,
30
+ contradictions: { found: false, count: 0 },
31
+ temporalSupersession: { count: 0 },
32
+ },
33
+ };
34
+ let processedContent = content;
35
+ // 1. Content length validation
36
+ if (content.length < opts.minContentLength) {
37
+ result.errors.push(`Content too short (min ${opts.minContentLength} characters)`);
38
+ result.allowed = false;
39
+ return result;
40
+ }
41
+ if (content.length > opts.maxContentLength) {
42
+ result.errors.push(`Content too long (max ${opts.maxContentLength} characters)`);
43
+ result.allowed = false;
44
+ return result;
45
+ }
46
+ // 2. Secret detection
47
+ const secrets = detectSecrets(content, 'high');
48
+ result.metadata.secretsDetected = secrets.length;
49
+ if (secrets.length > 0) {
50
+ const secretTypes = [...new Set(secrets.map(s => s.type))];
51
+ if (!opts.allowSecrets) {
52
+ result.errors.push(`Potential secrets detected: ${secretTypes.join(', ')}`);
53
+ result.warnings.push('Content contains sensitive data that must be redacted');
54
+ result.allowed = false;
55
+ return result;
56
+ }
57
+ else {
58
+ // Redact secrets but allow write
59
+ processedContent = redactSecrets(content);
60
+ result.sanitized = true;
61
+ result.sanitizedContent = processedContent;
62
+ result.warnings.push(`Redacted ${secrets.length} potential secrets: ${secretTypes.join(', ')}`);
63
+ }
64
+ }
65
+ // 3. Memory signals detection
66
+ const signals = detectMemorySignals(content);
67
+ result.metadata.signals = signals;
68
+ // Add warnings for high-priority signals
69
+ if (signals.priority === 'high') {
70
+ result.warnings.push('High-priority memory signal detected');
71
+ }
72
+ if (signals.implicit.correction) {
73
+ result.warnings.push('Content appears to be a correction - contradiction check recommended');
74
+ }
75
+ // 4. Contradiction detection (async, non-blocking for write)
76
+ if (!opts.skipContradictionCheck && signals.implicit.correction) {
77
+ try {
78
+ const contradictionResult = await resolveContradictions(processedContent, type, opts.projectId);
79
+ result.metadata.contradictions = {
80
+ found: contradictionResult.supersededIds.length > 0,
81
+ count: contradictionResult.supersededIds.length,
82
+ };
83
+ if (contradictionResult.supersededIds.length > 0) {
84
+ result.warnings.push(`This memory supersedes ${contradictionResult.supersededIds.length} older memories`);
85
+ }
86
+ }
87
+ catch (error) {
88
+ logger.error('Contradiction check failed', error);
89
+ result.warnings.push('Contradiction check failed - proceeding with write');
90
+ }
91
+ }
92
+ // 5. Temporal fact handling
93
+ if (!opts.skipTemporalSupersession) {
94
+ try {
95
+ // This would be done after the memory is actually written, but we note it here
96
+ result.metadata.temporalSupersession = { count: 0 };
97
+ }
98
+ catch (error) {
99
+ logger.error('Temporal check failed', error);
100
+ }
101
+ }
102
+ // 6. Content quality checks
103
+ const qualityIssues = checkContentQuality(processedContent);
104
+ result.warnings.push(...qualityIssues);
105
+ return result;
106
+ }
107
+ /**
108
+ * Quick validation without async operations
109
+ * Use for fast pre-check before full validation
110
+ */
111
+ export function quickValidate(content) {
112
+ const errors = [];
113
+ // Check for empty or whitespace-only content
114
+ if (!content || content.trim().length === 0) {
115
+ errors.push('Content is empty');
116
+ return { valid: false, errors };
117
+ }
118
+ // Check for minimum length
119
+ if (content.trim().length < 5) {
120
+ errors.push('Content is too short');
121
+ }
122
+ // Check for obvious secrets (high confidence only)
123
+ const secrets = detectSecrets(content, 'high');
124
+ if (secrets.length > 0) {
125
+ errors.push(`Content contains ${secrets.length} potential secrets`);
126
+ }
127
+ return { valid: errors.length === 0, errors };
128
+ }
129
+ /**
130
+ * Check content quality and return warnings
131
+ */
132
+ function checkContentQuality(content) {
133
+ const warnings = [];
134
+ // Check for excessive repetition
135
+ const words = content.toLowerCase().split(/\s+/);
136
+ const wordCounts = new Map();
137
+ for (const word of words) {
138
+ if (word.length > 3) { // Only check meaningful words
139
+ wordCounts.set(word, (wordCounts.get(word) || 0) + 1);
140
+ }
141
+ }
142
+ for (const [word, count] of wordCounts.entries()) {
143
+ if (count > 10) {
144
+ warnings.push(`Excessive repetition detected: "${word}" appears ${count} times`);
145
+ break; // Only report one
146
+ }
147
+ }
148
+ // Check for very long lines (might be code or minified content)
149
+ const lines = content.split('\n');
150
+ for (const line of lines) {
151
+ if (line.length > 1000) {
152
+ warnings.push('Content contains very long lines - may not be human-readable');
153
+ break;
154
+ }
155
+ }
156
+ // Check for binary-like content
157
+ const binaryPattern = /[\x00-\x08\x0E-\x1F]/;
158
+ if (binaryPattern.test(content)) {
159
+ warnings.push('Content may contain binary data');
160
+ }
161
+ return warnings;
162
+ }
163
+ /**
164
+ * Sanitize content for storage
165
+ * Redacts secrets and normalizes whitespace
166
+ */
167
+ export function sanitizeForStorage(content) {
168
+ // Redact secrets
169
+ let sanitized = redactSecrets(content);
170
+ // Normalize excessive whitespace
171
+ sanitized = sanitized.replace(/\n{3,}/g, '\n\n');
172
+ sanitized = sanitized.replace(/ {2,}/g, ' ');
173
+ // Trim
174
+ sanitized = sanitized.trim();
175
+ return sanitized;
176
+ }
177
+ /**
178
+ * Calculate a quality score for content (0-100)
179
+ */
180
+ export function calculateContentQualityScore(content) {
181
+ let score = 100;
182
+ // Deduct for short content
183
+ if (content.length < 20) {
184
+ score -= 30;
185
+ }
186
+ else if (content.length < 50) {
187
+ score -= 15;
188
+ }
189
+ // Deduct for secrets
190
+ const secrets = detectSecrets(content, 'high');
191
+ score -= secrets.length * 20;
192
+ // Deduct for repetition
193
+ const words = content.toLowerCase().split(/\s+/);
194
+ const uniqueWords = new Set(words.filter(w => w.length > 3));
195
+ const repetitionRatio = uniqueWords.size / Math.max(1, words.length);
196
+ if (repetitionRatio < 0.3) {
197
+ score -= 20;
198
+ }
199
+ // Bonus for structure (sentences, punctuation)
200
+ const sentences = content.split(/[.!?]+/).filter(s => s.trim().length > 0);
201
+ if (sentences.length > 1) {
202
+ score += 10;
203
+ }
204
+ // Bonus for reasonable length
205
+ if (content.length >= 50 && content.length <= 2000) {
206
+ score += 5;
207
+ }
208
+ return Math.max(0, Math.min(100, score));
209
+ }
210
+ //# sourceMappingURL=write-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-gate.js","sourceRoot":"","sources":["../../../core/memory/write-gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../../core/observations.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmC3F;AAED,wBAAsB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmBhH;AAED,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoBjH;AAED,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAkBjG"}
1
+ {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../../core/observations.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoC3F;AAED,wBAAsB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmBhH;AAED,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoBjH;AAED,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAkBjG"}
@@ -29,6 +29,7 @@ export async function createObservation(input) {
29
29
  ...baseValues,
30
30
  details: detailsValue,
31
31
  ...embeddingValues,
32
+ createdAt: new Date(),
32
33
  });
33
34
  return {
34
35
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../core/observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../core/observations.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,6 @@ export interface ProjectRecord {
7
7
  }
8
8
  export declare function getProjectByPath(path: string): Promise<ProjectRecord | null>;
9
9
  export declare function ensureProject(path?: string): Promise<ProjectRecord | null>;
10
+ export declare function getAllProjects(): Promise<ProjectRecord[]>;
11
+ export declare function getProjectById(id: string): Promise<ProjectRecord | null>;
10
12
  //# sourceMappingURL=projects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../core/projects.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAelF;AAED,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA4BhF"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../core/projects.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAelF;AAED,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA4BhF;AAcD,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAa/D;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAe9E"}
@@ -63,4 +63,37 @@ function normalizeProject(row) {
63
63
  metadata,
64
64
  };
65
65
  }
66
+ export async function getAllProjects() {
67
+ try {
68
+ const db = createDatabaseClient(await getDb());
69
+ const schema = await getSchema();
70
+ const rows = await db.select().from(schema.projects);
71
+ return rows.map(normalizeProject);
72
+ }
73
+ catch (error) {
74
+ if (error.message?.includes('Database unavailable') ||
75
+ error.message?.includes('not a valid Win32 application')) {
76
+ return []; // Graceful degradation - database unavailable
77
+ }
78
+ throw error;
79
+ }
80
+ }
81
+ export async function getProjectById(id) {
82
+ try {
83
+ const db = createDatabaseClient(await getDb());
84
+ const schema = await getSchema();
85
+ const rows = await db.select().from(schema.projects).where(eq(schema.projects.id, id)).limit(1);
86
+ const row = rows[0];
87
+ if (!row)
88
+ return null;
89
+ return normalizeProject(row);
90
+ }
91
+ catch (error) {
92
+ if (error.message?.includes('Database unavailable') ||
93
+ error.message?.includes('not a valid Win32 application')) {
94
+ return null; // Graceful degradation - database unavailable
95
+ }
96
+ throw error;
97
+ }
98
+ }
66
99
  //# sourceMappingURL=projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../core/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../core/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /** Cron Scheduler - Persistent cron-based job scheduling with fallback support */
2
+ export type JobType = 'nightly' | 'weekly' | 'hourly';
3
+ export type JobStatus = 'success' | 'failed' | 'skipped';
4
+ export interface ScheduledJob {
5
+ id: string;
6
+ jobName: string;
7
+ jobType: JobType;
8
+ cronExpression: string;
9
+ enabled: boolean;
10
+ lastRunAt: Date | null;
11
+ nextRunAt: Date | null;
12
+ jobConfig: Record<string, unknown>;
13
+ }
14
+ export interface JobExecutionContext {
15
+ jobId: string;
16
+ jobName: string;
17
+ jobType: JobType;
18
+ config: Record<string, unknown>;
19
+ startedAt: Date;
20
+ }
21
+ export type JobHandler = (context: JobExecutionContext) => Promise<{
22
+ recordsProcessed: number;
23
+ summary: Record<string, unknown>;
24
+ }>;
25
+ export declare function registerJobHandler(jobName: string, handler: JobHandler): void;
26
+ export declare function initializeScheduler(): Promise<void>;
27
+ export declare function scheduleJob(job: ScheduledJob): Promise<void>;
28
+ export declare function executeJob(job: ScheduledJob): Promise<void>;
29
+ export declare function getScheduledJobs(): Promise<ScheduledJob[]>;
30
+ export declare function getOverdueJobs(): Promise<ScheduledJob[]>;
31
+ export declare function stopAllJobs(): void;
32
+ //# sourceMappingURL=cron-scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-scheduler.d.ts","sourceRoot":"","sources":["../../../core/scheduler/cron-scheduler.ts"],"names":[],"mappings":"AAAA,kFAAkF;AASlF,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC;AAKnI,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAG7E;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzD;AAuCD,wBAAsB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoClE;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEjE;AA6BD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAehE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAuB9D;AAED,wBAAgB,WAAW,IAAI,IAAI,CAMlC"}