anantham-v2 2.0.0-alpha.1 → 2.0.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 (466) hide show
  1. package/dist/agents/subagent-handoff-protocol.d.ts +24 -0
  2. package/dist/agents/subagent-handoff-protocol.d.ts.map +1 -0
  3. package/dist/agents/subagent-handoff-protocol.js +48 -0
  4. package/dist/agents/subagent-handoff-protocol.js.map +1 -0
  5. package/dist/api/gateway-route-pipeline.d.ts +27 -0
  6. package/dist/api/gateway-route-pipeline.d.ts.map +1 -0
  7. package/dist/api/gateway-route-pipeline.js +58 -0
  8. package/dist/api/gateway-route-pipeline.js.map +1 -0
  9. package/dist/api/openapi-spec-generator.d.ts +23 -0
  10. package/dist/api/openapi-spec-generator.d.ts.map +1 -0
  11. package/dist/api/openapi-spec-generator.js +77 -0
  12. package/dist/api/openapi-spec-generator.js.map +1 -0
  13. package/dist/api/webhook-dlq-router.d.ts +24 -0
  14. package/dist/api/webhook-dlq-router.d.ts.map +1 -0
  15. package/dist/api/webhook-dlq-router.js +62 -0
  16. package/dist/api/webhook-dlq-router.js.map +1 -0
  17. package/dist/bin/anantham.js +17 -2
  18. package/dist/bin/anantham.js.map +1 -1
  19. package/dist/cli/cli-application.d.ts.map +1 -1
  20. package/dist/cli/cli-application.js +3 -0
  21. package/dist/cli/cli-application.js.map +1 -1
  22. package/dist/cli/command-parser.d.ts +5 -0
  23. package/dist/cli/command-parser.d.ts.map +1 -1
  24. package/dist/cli/command-parser.js +40 -9
  25. package/dist/cli/command-parser.js.map +1 -1
  26. package/dist/cli/command-registry.d.ts.map +1 -1
  27. package/dist/cli/command-registry.js +289 -9
  28. package/dist/cli/command-registry.js.map +1 -1
  29. package/dist/cli/commands/slash-migrate.d.ts +6 -0
  30. package/dist/cli/commands/slash-migrate.d.ts.map +1 -0
  31. package/dist/cli/commands/slash-migrate.js +6 -0
  32. package/dist/cli/commands/slash-migrate.js.map +1 -0
  33. package/dist/cli/error-handler.d.ts.map +1 -1
  34. package/dist/cli/error-handler.js +55 -1
  35. package/dist/cli/error-handler.js.map +1 -1
  36. package/dist/cli/interactive-shell.d.ts +27 -0
  37. package/dist/cli/interactive-shell.d.ts.map +1 -0
  38. package/dist/cli/interactive-shell.js +99 -0
  39. package/dist/cli/interactive-shell.js.map +1 -0
  40. package/dist/cli/keybindings-manager.d.ts +27 -0
  41. package/dist/cli/keybindings-manager.d.ts.map +1 -0
  42. package/dist/cli/keybindings-manager.js +43 -0
  43. package/dist/cli/keybindings-manager.js.map +1 -0
  44. package/dist/cli/notification-manager.d.ts +28 -0
  45. package/dist/cli/notification-manager.d.ts.map +1 -0
  46. package/dist/cli/notification-manager.js +47 -0
  47. package/dist/cli/notification-manager.js.map +1 -0
  48. package/dist/cli/shell-integration-generator.d.ts +13 -0
  49. package/dist/cli/shell-integration-generator.d.ts.map +1 -0
  50. package/dist/cli/shell-integration-generator.js +79 -0
  51. package/dist/cli/shell-integration-generator.js.map +1 -0
  52. package/dist/cli/slash-commands-registry.d.ts +30 -0
  53. package/dist/cli/slash-commands-registry.d.ts.map +1 -0
  54. package/dist/cli/slash-commands-registry.js +130 -0
  55. package/dist/cli/slash-commands-registry.js.map +1 -0
  56. package/dist/cli/slash-migrate.d.ts +28 -0
  57. package/dist/cli/slash-migrate.d.ts.map +1 -0
  58. package/dist/cli/slash-migrate.js +100 -0
  59. package/dist/cli/slash-migrate.js.map +1 -0
  60. package/dist/cli/terminal-theme-renderer.d.ts +27 -0
  61. package/dist/cli/terminal-theme-renderer.d.ts.map +1 -0
  62. package/dist/cli/terminal-theme-renderer.js +93 -0
  63. package/dist/cli/terminal-theme-renderer.js.map +1 -0
  64. package/dist/cli/terminal-title-manager.d.ts +13 -0
  65. package/dist/cli/terminal-title-manager.d.ts.map +1 -0
  66. package/dist/cli/terminal-title-manager.js +37 -0
  67. package/dist/cli/terminal-title-manager.js.map +1 -0
  68. package/dist/code-intel/code-index-engine.d.ts +31 -0
  69. package/dist/code-intel/code-index-engine.d.ts.map +1 -0
  70. package/dist/code-intel/code-index-engine.js +258 -0
  71. package/dist/code-intel/code-index-engine.js.map +1 -0
  72. package/dist/code-intel/code-intel-orchestrator.d.ts +28 -0
  73. package/dist/code-intel/code-intel-orchestrator.d.ts.map +1 -0
  74. package/dist/code-intel/code-intel-orchestrator.js +45 -0
  75. package/dist/code-intel/code-intel-orchestrator.js.map +1 -0
  76. package/dist/code-intel/fault-isolator.d.ts +19 -0
  77. package/dist/code-intel/fault-isolator.d.ts.map +1 -0
  78. package/dist/code-intel/fault-isolator.js +147 -0
  79. package/dist/code-intel/fault-isolator.js.map +1 -0
  80. package/dist/code-intel/file-watcher-sync.d.ts +29 -0
  81. package/dist/code-intel/file-watcher-sync.d.ts.map +1 -0
  82. package/dist/code-intel/file-watcher-sync.js +84 -0
  83. package/dist/code-intel/file-watcher-sync.js.map +1 -0
  84. package/dist/code-intel/incremental-indexer.d.ts +30 -0
  85. package/dist/code-intel/incremental-indexer.d.ts.map +1 -0
  86. package/dist/code-intel/incremental-indexer.js +90 -0
  87. package/dist/code-intel/incremental-indexer.js.map +1 -0
  88. package/dist/code-intel/index.d.ts +13 -0
  89. package/dist/code-intel/index.d.ts.map +1 -0
  90. package/dist/code-intel/index.js +13 -0
  91. package/dist/code-intel/index.js.map +1 -0
  92. package/dist/code-intel/lsp-bridge.d.ts +43 -0
  93. package/dist/code-intel/lsp-bridge.d.ts.map +1 -0
  94. package/dist/code-intel/lsp-bridge.js +103 -0
  95. package/dist/code-intel/lsp-bridge.js.map +1 -0
  96. package/dist/code-intel/parsers/multi-language-ast-parser.d.ts +22 -0
  97. package/dist/code-intel/parsers/multi-language-ast-parser.d.ts.map +1 -0
  98. package/dist/code-intel/parsers/multi-language-ast-parser.js +536 -0
  99. package/dist/code-intel/parsers/multi-language-ast-parser.js.map +1 -0
  100. package/dist/code-intel/project-knowledge-graph.d.ts +36 -0
  101. package/dist/code-intel/project-knowledge-graph.d.ts.map +1 -0
  102. package/dist/code-intel/project-knowledge-graph.js +79 -0
  103. package/dist/code-intel/project-knowledge-graph.js.map +1 -0
  104. package/dist/code-intel/types.d.ts +92 -0
  105. package/dist/code-intel/types.d.ts.map +1 -0
  106. package/dist/code-intel/types.js +6 -0
  107. package/dist/code-intel/types.js.map +1 -0
  108. package/dist/context/compaction-loss-evaluator.d.ts +135 -0
  109. package/dist/context/compaction-loss-evaluator.d.ts.map +1 -0
  110. package/dist/context/compaction-loss-evaluator.js +232 -0
  111. package/dist/context/compaction-loss-evaluator.js.map +1 -0
  112. package/dist/context/index.d.ts +1 -0
  113. package/dist/context/index.d.ts.map +1 -1
  114. package/dist/context/index.js +1 -0
  115. package/dist/context/index.js.map +1 -1
  116. package/dist/evaluation/ab-testing-engine.d.ts +28 -0
  117. package/dist/evaluation/ab-testing-engine.d.ts.map +1 -0
  118. package/dist/evaluation/ab-testing-engine.js +64 -0
  119. package/dist/evaluation/ab-testing-engine.js.map +1 -0
  120. package/dist/evaluation/agent-behavior-regression.d.ts +19 -0
  121. package/dist/evaluation/agent-behavior-regression.d.ts.map +1 -0
  122. package/dist/evaluation/agent-behavior-regression.js +45 -0
  123. package/dist/evaluation/agent-behavior-regression.js.map +1 -0
  124. package/dist/evaluation/anti-contamination-guard.d.ts +19 -0
  125. package/dist/evaluation/anti-contamination-guard.d.ts.map +1 -0
  126. package/dist/evaluation/anti-contamination-guard.js +40 -0
  127. package/dist/evaluation/anti-contamination-guard.js.map +1 -0
  128. package/dist/evaluation/benchmark-report-generator.d.ts +10 -0
  129. package/dist/evaluation/benchmark-report-generator.d.ts.map +1 -0
  130. package/dist/evaluation/benchmark-report-generator.js +57 -0
  131. package/dist/evaluation/benchmark-report-generator.js.map +1 -0
  132. package/dist/evaluation/continuous-eval-pipeline.d.ts +27 -0
  133. package/dist/evaluation/continuous-eval-pipeline.d.ts.map +1 -0
  134. package/dist/evaluation/continuous-eval-pipeline.js +44 -0
  135. package/dist/evaluation/continuous-eval-pipeline.js.map +1 -0
  136. package/dist/evaluation/eval-engine.d.ts +31 -0
  137. package/dist/evaluation/eval-engine.d.ts.map +1 -0
  138. package/dist/evaluation/eval-engine.js +57 -0
  139. package/dist/evaluation/eval-engine.js.map +1 -0
  140. package/dist/evaluation/ground-truth-comparator.d.ts +13 -0
  141. package/dist/evaluation/ground-truth-comparator.d.ts.map +1 -0
  142. package/dist/evaluation/ground-truth-comparator.js +56 -0
  143. package/dist/evaluation/ground-truth-comparator.js.map +1 -0
  144. package/dist/evaluation/hitl-review-dashboard.d.ts +25 -0
  145. package/dist/evaluation/hitl-review-dashboard.d.ts.map +1 -0
  146. package/dist/evaluation/hitl-review-dashboard.js +40 -0
  147. package/dist/evaluation/hitl-review-dashboard.js.map +1 -0
  148. package/dist/evaluation/humaneval-harness.d.ts +21 -0
  149. package/dist/evaluation/humaneval-harness.d.ts.map +1 -0
  150. package/dist/evaluation/humaneval-harness.js +47 -0
  151. package/dist/evaluation/humaneval-harness.js.map +1 -0
  152. package/dist/evaluation/index.d.ts +14 -0
  153. package/dist/evaluation/index.d.ts.map +1 -1
  154. package/dist/evaluation/index.js +14 -0
  155. package/dist/evaluation/index.js.map +1 -1
  156. package/dist/evaluation/model-arena.d.ts +33 -0
  157. package/dist/evaluation/model-arena.d.ts.map +1 -0
  158. package/dist/evaluation/model-arena.js +60 -0
  159. package/dist/evaluation/model-arena.js.map +1 -0
  160. package/dist/evaluation/multi-dimensional-grader.d.ts +22 -0
  161. package/dist/evaluation/multi-dimensional-grader.d.ts.map +1 -0
  162. package/dist/evaluation/multi-dimensional-grader.js +38 -0
  163. package/dist/evaluation/multi-dimensional-grader.js.map +1 -0
  164. package/dist/evaluation/swe-bench-harness.d.ts +25 -0
  165. package/dist/evaluation/swe-bench-harness.d.ts.map +1 -0
  166. package/dist/evaluation/swe-bench-harness.js +55 -0
  167. package/dist/evaluation/swe-bench-harness.js.map +1 -0
  168. package/dist/evaluation/synthetic-case-generator.d.ts +10 -0
  169. package/dist/evaluation/synthetic-case-generator.d.ts.map +1 -0
  170. package/dist/evaluation/synthetic-case-generator.js +49 -0
  171. package/dist/evaluation/synthetic-case-generator.js.map +1 -0
  172. package/dist/evaluation/workflow-profiler.d.ts +30 -0
  173. package/dist/evaluation/workflow-profiler.d.ts.map +1 -0
  174. package/dist/evaluation/workflow-profiler.js +47 -0
  175. package/dist/evaluation/workflow-profiler.js.map +1 -0
  176. package/dist/event-state/delta-snapshot-manager.d.ts +266 -0
  177. package/dist/event-state/delta-snapshot-manager.d.ts.map +1 -0
  178. package/dist/event-state/delta-snapshot-manager.js +446 -0
  179. package/dist/event-state/delta-snapshot-manager.js.map +1 -0
  180. package/dist/event-state/index.d.ts +1 -0
  181. package/dist/event-state/index.d.ts.map +1 -1
  182. package/dist/event-state/index.js +1 -0
  183. package/dist/event-state/index.js.map +1 -1
  184. package/dist/execution/index.d.ts +6 -15
  185. package/dist/execution/index.d.ts.map +1 -1
  186. package/dist/execution/index.js +6 -15
  187. package/dist/execution/index.js.map +1 -1
  188. package/dist/execution/process-bounds-manager.d.ts +24 -0
  189. package/dist/execution/process-bounds-manager.d.ts.map +1 -0
  190. package/dist/execution/process-bounds-manager.js +115 -0
  191. package/dist/execution/process-bounds-manager.js.map +1 -0
  192. package/dist/execution/risk-classifier.d.ts +15 -0
  193. package/dist/execution/risk-classifier.d.ts.map +1 -0
  194. package/dist/execution/risk-classifier.js +104 -0
  195. package/dist/execution/risk-classifier.js.map +1 -0
  196. package/dist/execution/sandbox-manager.d.ts +40 -0
  197. package/dist/execution/sandbox-manager.d.ts.map +1 -0
  198. package/dist/execution/sandbox-manager.js +78 -0
  199. package/dist/execution/sandbox-manager.js.map +1 -0
  200. package/dist/execution/tool-gateway-orchestrator.d.ts +28 -0
  201. package/dist/execution/tool-gateway-orchestrator.d.ts.map +1 -0
  202. package/dist/execution/tool-gateway-orchestrator.js +143 -0
  203. package/dist/execution/tool-gateway-orchestrator.js.map +1 -0
  204. package/dist/execution/types.d.ts +47 -0
  205. package/dist/execution/types.d.ts.map +1 -0
  206. package/dist/execution/types.js +6 -0
  207. package/dist/execution/types.js.map +1 -0
  208. package/dist/governance/air-gapped-policy-enforcer.d.ts +106 -0
  209. package/dist/governance/air-gapped-policy-enforcer.d.ts.map +1 -0
  210. package/dist/governance/air-gapped-policy-enforcer.js +243 -0
  211. package/dist/governance/air-gapped-policy-enforcer.js.map +1 -0
  212. package/dist/governance/data-retention-manager.d.ts +109 -0
  213. package/dist/governance/data-retention-manager.d.ts.map +1 -0
  214. package/dist/governance/data-retention-manager.js +167 -0
  215. package/dist/governance/data-retention-manager.js.map +1 -0
  216. package/dist/governance/index.d.ts +3 -0
  217. package/dist/governance/index.d.ts.map +1 -0
  218. package/dist/governance/index.js +3 -0
  219. package/dist/governance/index.js.map +1 -0
  220. package/dist/index.d.ts +1 -0
  221. package/dist/index.d.ts.map +1 -1
  222. package/dist/index.js.map +1 -1
  223. package/dist/integrations/connector-dlq-router.d.ts +122 -0
  224. package/dist/integrations/connector-dlq-router.d.ts.map +1 -0
  225. package/dist/integrations/connector-dlq-router.js +259 -0
  226. package/dist/integrations/connector-dlq-router.js.map +1 -0
  227. package/dist/integrations/index.d.ts +1 -0
  228. package/dist/integrations/index.d.ts.map +1 -1
  229. package/dist/integrations/index.js +1 -0
  230. package/dist/integrations/index.js.map +1 -1
  231. package/dist/memory/index.d.ts +1 -0
  232. package/dist/memory/index.d.ts.map +1 -1
  233. package/dist/memory/index.js +1 -0
  234. package/dist/memory/index.js.map +1 -1
  235. package/dist/memory/memory-decay-engine.d.ts +103 -0
  236. package/dist/memory/memory-decay-engine.d.ts.map +1 -0
  237. package/dist/memory/memory-decay-engine.js +223 -0
  238. package/dist/memory/memory-decay-engine.js.map +1 -0
  239. package/dist/multimodal/audio-transcription-engine.d.ts +13 -0
  240. package/dist/multimodal/audio-transcription-engine.d.ts.map +1 -0
  241. package/dist/multimodal/audio-transcription-engine.js +32 -0
  242. package/dist/multimodal/audio-transcription-engine.js.map +1 -0
  243. package/dist/multimodal/document-pdf-extractor.d.ts +9 -0
  244. package/dist/multimodal/document-pdf-extractor.d.ts.map +1 -0
  245. package/dist/multimodal/document-pdf-extractor.js +60 -0
  246. package/dist/multimodal/document-pdf-extractor.js.map +1 -0
  247. package/dist/multimodal/image-processor.d.ts +16 -0
  248. package/dist/multimodal/image-processor.d.ts.map +1 -0
  249. package/dist/multimodal/image-processor.js +118 -0
  250. package/dist/multimodal/image-processor.js.map +1 -0
  251. package/dist/multimodal/index.d.ts +13 -0
  252. package/dist/multimodal/index.d.ts.map +1 -0
  253. package/dist/multimodal/index.js +13 -0
  254. package/dist/multimodal/index.js.map +1 -0
  255. package/dist/multimodal/multimodal-context-injector.d.ts +21 -0
  256. package/dist/multimodal/multimodal-context-injector.d.ts.map +1 -0
  257. package/dist/multimodal/multimodal-context-injector.js +73 -0
  258. package/dist/multimodal/multimodal-context-injector.js.map +1 -0
  259. package/dist/multimodal/multimodal-orchestrator.d.ts +29 -0
  260. package/dist/multimodal/multimodal-orchestrator.d.ts.map +1 -0
  261. package/dist/multimodal/multimodal-orchestrator.js +51 -0
  262. package/dist/multimodal/multimodal-orchestrator.js.map +1 -0
  263. package/dist/multimodal/ocr-pipeline.d.ts +18 -0
  264. package/dist/multimodal/ocr-pipeline.d.ts.map +1 -0
  265. package/dist/multimodal/ocr-pipeline.js +43 -0
  266. package/dist/multimodal/ocr-pipeline.js.map +1 -0
  267. package/dist/multimodal/perceptual-hasher.d.ts +24 -0
  268. package/dist/multimodal/perceptual-hasher.d.ts.map +1 -0
  269. package/dist/multimodal/perceptual-hasher.js +75 -0
  270. package/dist/multimodal/perceptual-hasher.js.map +1 -0
  271. package/dist/multimodal/screen-understanding.d.ts +18 -0
  272. package/dist/multimodal/screen-understanding.d.ts.map +1 -0
  273. package/dist/multimodal/screen-understanding.js +48 -0
  274. package/dist/multimodal/screen-understanding.js.map +1 -0
  275. package/dist/multimodal/types.d.ts +73 -0
  276. package/dist/multimodal/types.d.ts.map +1 -0
  277. package/dist/multimodal/types.js +6 -0
  278. package/dist/multimodal/types.js.map +1 -0
  279. package/dist/observability/compliance-audit-logger.d.ts +26 -0
  280. package/dist/observability/compliance-audit-logger.d.ts.map +1 -0
  281. package/dist/observability/compliance-audit-logger.js +52 -0
  282. package/dist/observability/compliance-audit-logger.js.map +1 -0
  283. package/dist/observability/log-streamer-sse.d.ts +28 -0
  284. package/dist/observability/log-streamer-sse.d.ts.map +1 -0
  285. package/dist/observability/log-streamer-sse.js +50 -0
  286. package/dist/observability/log-streamer-sse.js.map +1 -0
  287. package/dist/observability/metric-collector.d.ts +34 -0
  288. package/dist/observability/metric-collector.d.ts.map +1 -0
  289. package/dist/observability/metric-collector.js +60 -0
  290. package/dist/observability/metric-collector.js.map +1 -0
  291. package/dist/observability/otel-trace-exporter.d.ts +49 -0
  292. package/dist/observability/otel-trace-exporter.d.ts.map +1 -0
  293. package/dist/observability/otel-trace-exporter.js +47 -0
  294. package/dist/observability/otel-trace-exporter.js.map +1 -0
  295. package/dist/observability/token-cost-accounting.d.ts +35 -0
  296. package/dist/observability/token-cost-accounting.d.ts.map +1 -0
  297. package/dist/observability/token-cost-accounting.js +74 -0
  298. package/dist/observability/token-cost-accounting.js.map +1 -0
  299. package/dist/persistence/database-backup-manager.d.ts +342 -0
  300. package/dist/persistence/database-backup-manager.d.ts.map +1 -0
  301. package/dist/persistence/database-backup-manager.js +399 -0
  302. package/dist/persistence/database-backup-manager.js.map +1 -0
  303. package/dist/persistence/index.d.ts +3 -0
  304. package/dist/persistence/index.d.ts.map +1 -1
  305. package/dist/persistence/index.js +3 -0
  306. package/dist/persistence/index.js.map +1 -1
  307. package/dist/persistence/migrations/001_initial_core_schema.d.ts.map +1 -1
  308. package/dist/persistence/migrations/001_initial_core_schema.js +2 -0
  309. package/dist/persistence/migrations/001_initial_core_schema.js.map +1 -1
  310. package/dist/persistence/migrations/011_snapshots_and_wal_maintenance.d.ts +8 -0
  311. package/dist/persistence/migrations/011_snapshots_and_wal_maintenance.d.ts.map +1 -0
  312. package/dist/persistence/migrations/011_snapshots_and_wal_maintenance.js +129 -0
  313. package/dist/persistence/migrations/011_snapshots_and_wal_maintenance.js.map +1 -0
  314. package/dist/persistence/repositories/event-repository.d.ts +5 -0
  315. package/dist/persistence/repositories/event-repository.d.ts.map +1 -1
  316. package/dist/persistence/repositories/event-repository.js +21 -0
  317. package/dist/persistence/repositories/event-repository.js.map +1 -1
  318. package/dist/persistence/user-config-manager.d.ts +36 -0
  319. package/dist/persistence/user-config-manager.d.ts.map +1 -0
  320. package/dist/persistence/user-config-manager.js +141 -0
  321. package/dist/persistence/user-config-manager.js.map +1 -0
  322. package/dist/persistence/wal-checkpoint-scheduler.d.ts +51 -0
  323. package/dist/persistence/wal-checkpoint-scheduler.d.ts.map +1 -0
  324. package/dist/persistence/wal-checkpoint-scheduler.js +214 -0
  325. package/dist/persistence/wal-checkpoint-scheduler.js.map +1 -0
  326. package/dist/recovery/browser-zombie-reclaimer.d.ts +156 -0
  327. package/dist/recovery/browser-zombie-reclaimer.d.ts.map +1 -0
  328. package/dist/recovery/browser-zombie-reclaimer.js +225 -0
  329. package/dist/recovery/browser-zombie-reclaimer.js.map +1 -0
  330. package/dist/recovery/index.d.ts +1 -0
  331. package/dist/recovery/index.d.ts.map +1 -1
  332. package/dist/recovery/index.js +1 -0
  333. package/dist/recovery/index.js.map +1 -1
  334. package/dist/resume/external-lease-reconciler.d.ts +154 -0
  335. package/dist/resume/external-lease-reconciler.d.ts.map +1 -0
  336. package/dist/resume/external-lease-reconciler.js +260 -0
  337. package/dist/resume/external-lease-reconciler.js.map +1 -0
  338. package/dist/resume/fork-point-recovery-manager.d.ts +97 -0
  339. package/dist/resume/fork-point-recovery-manager.d.ts.map +1 -0
  340. package/dist/resume/fork-point-recovery-manager.js +275 -0
  341. package/dist/resume/fork-point-recovery-manager.js.map +1 -0
  342. package/dist/resume/index.d.ts +4 -0
  343. package/dist/resume/index.d.ts.map +1 -1
  344. package/dist/resume/index.js +4 -0
  345. package/dist/resume/index.js.map +1 -1
  346. package/dist/resume/model-migration-manager.d.ts +157 -0
  347. package/dist/resume/model-migration-manager.d.ts.map +1 -0
  348. package/dist/resume/model-migration-manager.js +203 -0
  349. package/dist/resume/model-migration-manager.js.map +1 -0
  350. package/dist/resume/process-reconnect-manager.d.ts +148 -0
  351. package/dist/resume/process-reconnect-manager.d.ts.map +1 -0
  352. package/dist/resume/process-reconnect-manager.js +325 -0
  353. package/dist/resume/process-reconnect-manager.js.map +1 -0
  354. package/dist/resume/resume-contract.d.ts +12 -12
  355. package/dist/saas/compliance-report-exporter.d.ts +20 -0
  356. package/dist/saas/compliance-report-exporter.d.ts.map +1 -0
  357. package/dist/saas/compliance-report-exporter.js +46 -0
  358. package/dist/saas/compliance-report-exporter.js.map +1 -0
  359. package/dist/saas/index.d.ts +10 -0
  360. package/dist/saas/index.d.ts.map +1 -0
  361. package/dist/saas/index.js +10 -0
  362. package/dist/saas/index.js.map +1 -0
  363. package/dist/saas/quota-rate-limiter.d.ts +25 -0
  364. package/dist/saas/quota-rate-limiter.d.ts.map +1 -0
  365. package/dist/saas/quota-rate-limiter.js +53 -0
  366. package/dist/saas/quota-rate-limiter.js.map +1 -0
  367. package/dist/saas/rbac-engine.d.ts +16 -0
  368. package/dist/saas/rbac-engine.d.ts.map +1 -0
  369. package/dist/saas/rbac-engine.js +45 -0
  370. package/dist/saas/rbac-engine.js.map +1 -0
  371. package/dist/saas/sso-authenticator.d.ts +22 -0
  372. package/dist/saas/sso-authenticator.d.ts.map +1 -0
  373. package/dist/saas/sso-authenticator.js +60 -0
  374. package/dist/saas/sso-authenticator.js.map +1 -0
  375. package/dist/saas/team-workspace-manager.d.ts +26 -0
  376. package/dist/saas/team-workspace-manager.d.ts.map +1 -0
  377. package/dist/saas/team-workspace-manager.js +44 -0
  378. package/dist/saas/team-workspace-manager.js.map +1 -0
  379. package/dist/saas/tenant-isolation-manager.d.ts +21 -0
  380. package/dist/saas/tenant-isolation-manager.d.ts.map +1 -0
  381. package/dist/saas/tenant-isolation-manager.js +30 -0
  382. package/dist/saas/tenant-isolation-manager.js.map +1 -0
  383. package/dist/search/index.d.ts +2 -0
  384. package/dist/search/index.d.ts.map +1 -0
  385. package/dist/search/index.js +2 -0
  386. package/dist/search/index.js.map +1 -0
  387. package/dist/search/universal-content-search-engine.d.ts +185 -0
  388. package/dist/search/universal-content-search-engine.d.ts.map +1 -0
  389. package/dist/search/universal-content-search-engine.js +243 -0
  390. package/dist/search/universal-content-search-engine.js.map +1 -0
  391. package/dist/security/dangerous-command-heuristics.d.ts +17 -0
  392. package/dist/security/dangerous-command-heuristics.d.ts.map +1 -0
  393. package/dist/security/dangerous-command-heuristics.js +71 -0
  394. package/dist/security/dangerous-command-heuristics.js.map +1 -0
  395. package/dist/security/policy-hierarchy-resolver.d.ts +35 -0
  396. package/dist/security/policy-hierarchy-resolver.d.ts.map +1 -0
  397. package/dist/security/policy-hierarchy-resolver.js +110 -0
  398. package/dist/security/policy-hierarchy-resolver.js.map +1 -0
  399. package/dist/security/windows-boundary-guard.d.ts +16 -0
  400. package/dist/security/windows-boundary-guard.d.ts.map +1 -0
  401. package/dist/security/windows-boundary-guard.js +64 -0
  402. package/dist/security/windows-boundary-guard.js.map +1 -0
  403. package/dist/security/zero-knowledge-enforcer.d.ts +32 -0
  404. package/dist/security/zero-knowledge-enforcer.d.ts.map +1 -0
  405. package/dist/security/zero-knowledge-enforcer.js +72 -0
  406. package/dist/security/zero-knowledge-enforcer.js.map +1 -0
  407. package/dist/tools/smart-git-generator.d.ts +28 -0
  408. package/dist/tools/smart-git-generator.d.ts.map +1 -0
  409. package/dist/tools/smart-git-generator.js +53 -0
  410. package/dist/tools/smart-git-generator.js.map +1 -0
  411. package/dist/tui/session-tree-visualizer.d.ts +16 -0
  412. package/dist/tui/session-tree-visualizer.d.ts.map +1 -0
  413. package/dist/tui/session-tree-visualizer.js +41 -0
  414. package/dist/tui/session-tree-visualizer.js.map +1 -0
  415. package/dist/tui/terminal-layout.d.ts.map +1 -1
  416. package/dist/tui/terminal-layout.js +12 -4
  417. package/dist/tui/terminal-layout.js.map +1 -1
  418. package/dist/tui/tui-application.d.ts +7 -0
  419. package/dist/tui/tui-application.d.ts.map +1 -1
  420. package/dist/tui/tui-application.js +110 -5
  421. package/dist/tui/tui-application.js.map +1 -1
  422. package/dist/tui/tui-controller.d.ts +77 -2
  423. package/dist/tui/tui-controller.d.ts.map +1 -1
  424. package/dist/tui/tui-controller.js +475 -23
  425. package/dist/tui/tui-controller.js.map +1 -1
  426. package/dist/tui/tui-dashboard.d.ts +31 -0
  427. package/dist/tui/tui-dashboard.d.ts.map +1 -0
  428. package/dist/tui/tui-dashboard.js +74 -0
  429. package/dist/tui/tui-dashboard.js.map +1 -0
  430. package/dist/tui/tui-renderer.d.ts +8 -1
  431. package/dist/tui/tui-renderer.d.ts.map +1 -1
  432. package/dist/tui/tui-renderer.js +74 -37
  433. package/dist/tui/tui-renderer.js.map +1 -1
  434. package/dist/workspace/ecosystem-adapters.d.ts +96 -0
  435. package/dist/workspace/ecosystem-adapters.d.ts.map +1 -0
  436. package/dist/workspace/ecosystem-adapters.js +432 -0
  437. package/dist/workspace/ecosystem-adapters.js.map +1 -0
  438. package/dist/workspace/ecosystem-importer.d.ts +6 -0
  439. package/dist/workspace/ecosystem-importer.d.ts.map +1 -0
  440. package/dist/workspace/ecosystem-importer.js +6 -0
  441. package/dist/workspace/ecosystem-importer.js.map +1 -0
  442. package/dist/workspace/index.d.ts +11 -0
  443. package/dist/workspace/index.d.ts.map +1 -0
  444. package/dist/workspace/index.js +11 -0
  445. package/dist/workspace/index.js.map +1 -0
  446. package/dist/workspace/instruction-loader.d.ts +45 -0
  447. package/dist/workspace/instruction-loader.d.ts.map +1 -0
  448. package/dist/workspace/instruction-loader.js +193 -0
  449. package/dist/workspace/instruction-loader.js.map +1 -0
  450. package/dist/workspace/monorepo-discovery.d.ts +31 -0
  451. package/dist/workspace/monorepo-discovery.d.ts.map +1 -0
  452. package/dist/workspace/monorepo-discovery.js +307 -0
  453. package/dist/workspace/monorepo-discovery.js.map +1 -0
  454. package/dist/workspace/multi-root-manager.d.ts +36 -0
  455. package/dist/workspace/multi-root-manager.d.ts.map +1 -0
  456. package/dist/workspace/multi-root-manager.js +91 -0
  457. package/dist/workspace/multi-root-manager.js.map +1 -0
  458. package/dist/workspace/project-deletion-safety.d.ts +26 -0
  459. package/dist/workspace/project-deletion-safety.d.ts.map +1 -0
  460. package/dist/workspace/project-deletion-safety.js +70 -0
  461. package/dist/workspace/project-deletion-safety.js.map +1 -0
  462. package/dist/workspace/tech-stack-discovery.d.ts +56 -0
  463. package/dist/workspace/tech-stack-discovery.d.ts.map +1 -0
  464. package/dist/workspace/tech-stack-discovery.js +489 -0
  465. package/dist/workspace/tech-stack-discovery.js.map +1 -0
  466. package/package.json +1 -1
@@ -0,0 +1,399 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync, statSync, unlinkSync, rmSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { createHash, randomBytes, pbkdf2Sync, createCipheriv, createDecipheriv } from "node:crypto";
4
+ import { z } from "zod";
5
+ import { SqliteEngine } from "./sqlite-engine.js";
6
+ export const BackupScopeSchema = z.object({
7
+ projectId: z.string().optional(),
8
+ includeArtifacts: z.boolean().default(true),
9
+ includeAttachments: z.boolean().default(true),
10
+ includeWorkflows: z.boolean().default(true),
11
+ includeConfig: z.boolean().default(true),
12
+ includePluginMetadata: z.boolean().default(true),
13
+ includeSkillMetadata: z.boolean().default(true),
14
+ });
15
+ export const BackupEncryptionMetadataSchema = z.object({
16
+ enabled: z.boolean(),
17
+ algorithm: z.enum(["AES-256-GCM"]).optional(),
18
+ keyDerivation: z.enum(["PBKDF2", "RAW"]).optional(),
19
+ saltHex: z.string().optional(),
20
+ ivHex: z.string().optional(),
21
+ tagHex: z.string().optional(),
22
+ iterations: z.number().int().positive().optional(),
23
+ });
24
+ export const BackupEntityCountsSchema = z.object({
25
+ projects: z.number().int().nonnegative(),
26
+ sessions: z.number().int().nonnegative(),
27
+ events: z.number().int().nonnegative(),
28
+ tasks: z.number().int().nonnegative(),
29
+ checkpoints: z.number().int().nonnegative(),
30
+ memoryItems: z.number().int().nonnegative(),
31
+ artifacts: z.number().int().nonnegative(),
32
+ attachments: z.number().int().nonnegative(),
33
+ });
34
+ export const BackupManifestSchema = z.object({
35
+ backupId: z.string().min(1),
36
+ version: z.literal(1),
37
+ createdAt: z.string().min(1),
38
+ generator: z.string().min(1),
39
+ schemaVersion: z.number().int().positive(),
40
+ scope: BackupScopeSchema,
41
+ counts: BackupEntityCountsSchema,
42
+ checksums: z.object({
43
+ dbSha256: z.string().length(64),
44
+ manifestSha256: z.string().length(64),
45
+ artifactChecksums: z.record(z.string(), z.string()).optional(),
46
+ }),
47
+ encryption: BackupEncryptionMetadataSchema,
48
+ credentialsExcluded: z.literal(true),
49
+ });
50
+ export class DatabaseBackupManager {
51
+ engine;
52
+ backupStorageDir;
53
+ constructor(options) {
54
+ this.engine = options.engine;
55
+ this.backupStorageDir = options.backupStorageDir ?? join(process.cwd(), ".anantham", "backups");
56
+ }
57
+ countTable(tableName) {
58
+ try {
59
+ const row = this.engine.raw.prepare(`SELECT COUNT(*) as count FROM ${tableName};`).get();
60
+ return row ? Number(row.count) : 0;
61
+ }
62
+ catch {
63
+ return 0;
64
+ }
65
+ }
66
+ getEntityCounts() {
67
+ return {
68
+ projects: this.countTable("projects"),
69
+ sessions: this.countTable("sessions"),
70
+ events: this.countTable("events"),
71
+ tasks: this.countTable("tasks"),
72
+ checkpoints: this.countTable("checkpoints"),
73
+ memoryItems: this.countTable("memory_items"),
74
+ artifacts: this.countTable("artifacts"),
75
+ attachments: this.countTable("attachments"),
76
+ };
77
+ }
78
+ deriveKey(passphrase, keyBuffer, salt) {
79
+ if (keyBuffer) {
80
+ return keyBuffer;
81
+ }
82
+ if (passphrase && salt) {
83
+ return pbkdf2Sync(passphrase, salt, 100_000, 32, "sha256");
84
+ }
85
+ throw new Error("Passphrase or 32-byte keyBuffer required for encryption/decryption.");
86
+ }
87
+ async createBackup(options) {
88
+ const backupId = `bak_${Date.now()}_${randomBytes(4).toString("hex")}`;
89
+ const targetDir = options?.destinationPath ?? join(this.backupStorageDir, backupId);
90
+ mkdirSync(targetDir, { recursive: true });
91
+ // 1. Hot online backup using VACUUM INTO
92
+ const tempDbPath = join(targetDir, "anantham.sqlite");
93
+ this.engine.backup(tempDbPath);
94
+ // 2. Compute DB hash
95
+ const dbBytes = readFileSync(tempDbPath);
96
+ const dbSha256 = createHash("sha256").update(dbBytes).digest("hex");
97
+ // 3. Encryption if requested
98
+ let encryptionMeta = { enabled: false };
99
+ if (options?.passphrase || options?.keyBuffer) {
100
+ const salt = randomBytes(16);
101
+ const iv = randomBytes(12);
102
+ const key = this.deriveKey(options.passphrase, options.keyBuffer, salt);
103
+ const cipher = createCipheriv("aes-256-gcm", key, iv);
104
+ const encryptedDb = Buffer.concat([cipher.update(dbBytes), cipher.final()]);
105
+ const authTag = cipher.getAuthTag();
106
+ const encDbPath = join(targetDir, "anantham.sqlite.enc");
107
+ writeFileSync(encDbPath, encryptedDb);
108
+ unlinkSync(tempDbPath);
109
+ encryptionMeta = {
110
+ enabled: true,
111
+ algorithm: "AES-256-GCM",
112
+ keyDerivation: options.passphrase ? "PBKDF2" : "RAW",
113
+ saltHex: salt.toString("hex"),
114
+ ivHex: iv.toString("hex"),
115
+ tagHex: authTag.toString("hex"),
116
+ iterations: options.passphrase ? 100_000 : undefined,
117
+ };
118
+ }
119
+ // 4. Gather counts and build manifest
120
+ const counts = this.getEntityCounts();
121
+ const manifestDraft = {
122
+ backupId,
123
+ version: 1,
124
+ createdAt: new Date().toISOString(),
125
+ generator: "anantham-database-backup-manager-v2",
126
+ schemaVersion: 11,
127
+ scope: BackupScopeSchema.parse(options?.scope ?? {}),
128
+ counts,
129
+ checksums: {
130
+ dbSha256,
131
+ manifestSha256: "",
132
+ },
133
+ encryption: encryptionMeta,
134
+ credentialsExcluded: true,
135
+ };
136
+ const manifestJsonString = JSON.stringify(manifestDraft, null, 2);
137
+ const manifestSha256 = createHash("sha256").update(manifestJsonString).digest("hex");
138
+ const finalManifest = {
139
+ ...manifestDraft,
140
+ checksums: {
141
+ ...manifestDraft.checksums,
142
+ manifestSha256,
143
+ },
144
+ };
145
+ writeFileSync(join(targetDir, "manifest.json"), JSON.stringify(finalManifest, null, 2), "utf-8");
146
+ return {
147
+ backupPath: targetDir,
148
+ manifest: finalManifest,
149
+ };
150
+ }
151
+ async inspectBackup(backupPath, _options) {
152
+ const manifestFile = existsSync(join(backupPath, "manifest.json"))
153
+ ? join(backupPath, "manifest.json")
154
+ : backupPath;
155
+ if (!existsSync(manifestFile)) {
156
+ throw new Error(`Manifest not found at path: ${manifestFile}`);
157
+ }
158
+ const raw = readFileSync(manifestFile, "utf-8");
159
+ const manifest = BackupManifestSchema.parse(JSON.parse(raw));
160
+ return manifest;
161
+ }
162
+ async dryRunRestore(backupPath, options) {
163
+ const manifest = await this.inspectBackup(backupPath, options);
164
+ const errors = [];
165
+ const warnings = [];
166
+ // Check schema compatibility
167
+ const isCompatible = manifest.schemaVersion <= 11;
168
+ if (!isCompatible) {
169
+ errors.push(`Backup schema version ${manifest.schemaVersion} is newer than engine maximum schema version 11.`);
170
+ }
171
+ // Check conflicts with live engine
172
+ let existingProjectsCount = 0;
173
+ let existingSessionsCount = 0;
174
+ let existingTasksCount = 0;
175
+ const conflictingProjectIds = [];
176
+ const conflictingSessionIds = [];
177
+ try {
178
+ existingProjectsCount = this.countTable("projects");
179
+ existingSessionsCount = this.countTable("sessions");
180
+ existingTasksCount = this.countTable("tasks");
181
+ if (existingProjectsCount > 0) {
182
+ warnings.push(`Target database currently contains ${existingProjectsCount} projects. Restoring will overwrite existing data.`);
183
+ }
184
+ }
185
+ catch {
186
+ // Ignored if engine is clean
187
+ }
188
+ // Verify DB integrity in isolation
189
+ let integrityCheckPassed = false;
190
+ let foreignKeyCheckPassed = false;
191
+ const isolatedDir = join(process.cwd(), ".anantham", ".staging_restore_" + Date.now());
192
+ mkdirSync(isolatedDir, { recursive: true });
193
+ const stagingDbPath = join(isolatedDir, "staging.sqlite");
194
+ try {
195
+ this.extractDbToPath(backupPath, stagingDbPath, manifest, options);
196
+ const stagingEngine = new SqliteEngine({ path: stagingDbPath });
197
+ stagingEngine.open();
198
+ const integ = stagingEngine.integrityCheck();
199
+ integrityCheckPassed = integ.ok;
200
+ if (!integ.ok) {
201
+ errors.push(`Integrity check failed: ${integ.messages.join(", ")}`);
202
+ }
203
+ const fk = stagingEngine.foreignKeyCheck();
204
+ foreignKeyCheckPassed = fk.ok;
205
+ if (!fk.ok) {
206
+ warnings.push(`Foreign key violations detected in staging DB: ${JSON.stringify(fk.violations)}`);
207
+ }
208
+ stagingEngine.close();
209
+ }
210
+ catch (err) {
211
+ errors.push(`Staging extraction error: ${err.message}`);
212
+ }
213
+ finally {
214
+ try {
215
+ rmSync(isolatedDir, { recursive: true, force: true });
216
+ }
217
+ catch { }
218
+ }
219
+ return {
220
+ backupId: manifest.backupId,
221
+ createdAt: manifest.createdAt,
222
+ schemaVersion: manifest.schemaVersion,
223
+ isCompatible,
224
+ counts: manifest.counts,
225
+ conflicts: {
226
+ existingProjectsCount,
227
+ existingSessionsCount,
228
+ existingTasksCount,
229
+ conflictingProjectIds,
230
+ conflictingSessionIds,
231
+ },
232
+ integrityCheckPassed,
233
+ foreignKeyCheckPassed,
234
+ warnings,
235
+ errors,
236
+ };
237
+ }
238
+ extractDbToPath(backupPath, destinationDbPath, manifest, options) {
239
+ const encPath = join(backupPath, "anantham.sqlite.enc");
240
+ const plainPath = join(backupPath, "anantham.sqlite");
241
+ if (manifest.encryption.enabled) {
242
+ if (!existsSync(encPath)) {
243
+ throw new Error(`Encrypted backup file not found at ${encPath}`);
244
+ }
245
+ if (!manifest.encryption.saltHex || !manifest.encryption.ivHex || !manifest.encryption.tagHex) {
246
+ throw new Error("Missing encryption metadata in manifest.");
247
+ }
248
+ const salt = Buffer.from(manifest.encryption.saltHex, "hex");
249
+ const iv = Buffer.from(manifest.encryption.ivHex, "hex");
250
+ const tag = Buffer.from(manifest.encryption.tagHex, "hex");
251
+ const key = this.deriveKey(options?.passphrase, options?.keyBuffer, salt);
252
+ const encBytes = readFileSync(encPath);
253
+ const decipher = createDecipheriv("aes-256-gcm", key, iv);
254
+ decipher.setAuthTag(tag);
255
+ const decrypted = Buffer.concat([decipher.update(encBytes), decipher.final()]);
256
+ const decryptedSha = createHash("sha256").update(decrypted).digest("hex");
257
+ if (decryptedSha !== manifest.checksums.dbSha256) {
258
+ throw new Error(`Decrypted database checksum mismatch. Expected ${manifest.checksums.dbSha256}, got ${decryptedSha}`);
259
+ }
260
+ writeFileSync(destinationDbPath, decrypted);
261
+ }
262
+ else {
263
+ if (!existsSync(plainPath)) {
264
+ throw new Error(`Database backup file not found at ${plainPath}`);
265
+ }
266
+ const rawBytes = readFileSync(plainPath);
267
+ const actualSha = createHash("sha256").update(rawBytes).digest("hex");
268
+ if (actualSha !== manifest.checksums.dbSha256) {
269
+ throw new Error(`Database checksum mismatch. Expected ${manifest.checksums.dbSha256}, got ${actualSha}`);
270
+ }
271
+ writeFileSync(destinationDbPath, rawBytes);
272
+ }
273
+ }
274
+ async restoreBackup(backupPath, options) {
275
+ const startTime = Date.now();
276
+ const manifest = await this.inspectBackup(backupPath, options);
277
+ const dryRunReport = await this.dryRunRestore(backupPath, options);
278
+ if (dryRunReport.errors.length > 0) {
279
+ throw new Error(`Cannot restore backup: ${dryRunReport.errors.join("; ")}`);
280
+ }
281
+ if (dryRunReport.conflicts.existingProjectsCount > 0 && !options?.force) {
282
+ throw new Error("Target database contains existing records. Explicit force: true option required to overwrite.");
283
+ }
284
+ const targetDb = options?.targetDbPath ?? this.engine.config?.path;
285
+ if (!targetDb || targetDb === ":memory:") {
286
+ // In-memory or custom target
287
+ const stagingDir = join(process.cwd(), ".anantham", ".staging_act_" + Date.now());
288
+ mkdirSync(stagingDir, { recursive: true });
289
+ const tempTarget = join(stagingDir, "restored.sqlite");
290
+ this.extractDbToPath(backupPath, tempTarget, manifest, options);
291
+ // Re-populate live in-memory engine by dumping tables or copying
292
+ const stagingEngine = new SqliteEngine({ path: tempTarget });
293
+ stagingEngine.open();
294
+ this.engine.transaction(() => {
295
+ // Clear existing tables and copy from staging
296
+ const tables = ["projects", "sessions", "tasks", "events", "checkpoints", "artifacts", "attachments", "memory_items"];
297
+ for (const t of tables) {
298
+ try {
299
+ this.engine.raw.exec(`DELETE FROM ${t};`);
300
+ }
301
+ catch { }
302
+ }
303
+ for (const t of tables) {
304
+ try {
305
+ const rows = stagingEngine.raw.prepare(`SELECT * FROM ${t}`).all();
306
+ const firstRow = rows[0];
307
+ if (firstRow) {
308
+ const keys = Object.keys(firstRow);
309
+ const cols = keys.join(", ");
310
+ const placeholders = keys.map(() => "?").join(", ");
311
+ const insertStmt = this.engine.raw.prepare(`INSERT INTO ${t} (${cols}) VALUES (${placeholders})`);
312
+ for (const r of rows) {
313
+ insertStmt.run(...keys.map((k) => r[k]));
314
+ }
315
+ }
316
+ }
317
+ catch { }
318
+ }
319
+ });
320
+ stagingEngine.close();
321
+ rmSync(stagingDir, { recursive: true, force: true });
322
+ }
323
+ else {
324
+ // File-based database restore
325
+ this.engine.close();
326
+ this.extractDbToPath(backupPath, targetDb, manifest, options);
327
+ this.engine.open();
328
+ }
329
+ return {
330
+ success: true,
331
+ backupId: manifest.backupId,
332
+ restoredAt: new Date().toISOString(),
333
+ restoredCounts: manifest.counts,
334
+ durationMs: Date.now() - startTime,
335
+ report: dryRunReport,
336
+ };
337
+ }
338
+ async pointInTimeRestore(backupPath, pointInTime, options) {
339
+ const restoreRes = await this.restoreBackup(backupPath, { ...options, force: true });
340
+ // Filter events after pointInTime
341
+ this.engine.transaction(() => {
342
+ if (pointInTime.timestamp) {
343
+ this.engine.raw.prepare("DELETE FROM events WHERE timestamp > ?").run(pointInTime.timestamp);
344
+ }
345
+ else if (pointInTime.eventId) {
346
+ const target = this.engine.raw.prepare("SELECT timestamp FROM events WHERE id = ?").get(pointInTime.eventId);
347
+ if (target) {
348
+ this.engine.raw.prepare("DELETE FROM events WHERE timestamp > ?").run(target.timestamp);
349
+ }
350
+ }
351
+ else if (typeof pointInTime.sequenceOffset === "number") {
352
+ const rows = this.engine.raw.prepare("SELECT id FROM events ORDER BY timestamp ASC").all();
353
+ if (rows.length > pointInTime.sequenceOffset) {
354
+ const keepIds = new Set(rows.slice(0, pointInTime.sequenceOffset).map((r) => r.id));
355
+ const toDelete = rows.filter((r) => !keepIds.has(r.id)).map((r) => r.id);
356
+ for (const delId of toDelete) {
357
+ this.engine.raw.prepare("DELETE FROM events WHERE id = ?").run(delId);
358
+ }
359
+ }
360
+ }
361
+ });
362
+ return {
363
+ ...restoreRes,
364
+ restoredCounts: this.getEntityCounts(),
365
+ };
366
+ }
367
+ async listBackups() {
368
+ if (!existsSync(this.backupStorageDir)) {
369
+ return [];
370
+ }
371
+ const entries = readdirSync(this.backupStorageDir);
372
+ const results = [];
373
+ for (const entry of entries) {
374
+ const fullPath = join(this.backupStorageDir, entry);
375
+ const manifestPath = join(fullPath, "manifest.json");
376
+ if (existsSync(manifestPath)) {
377
+ try {
378
+ const manifest = await this.inspectBackup(fullPath);
379
+ let sizeBytes = 0;
380
+ const files = readdirSync(fullPath);
381
+ for (const f of files) {
382
+ try {
383
+ sizeBytes += statSync(join(fullPath, f)).size;
384
+ }
385
+ catch { }
386
+ }
387
+ results.push({
388
+ backupPath: fullPath,
389
+ manifest,
390
+ sizeBytes,
391
+ });
392
+ }
393
+ catch { }
394
+ }
395
+ }
396
+ return results.sort((a, b) => b.manifest.createdAt.localeCompare(a.manifest.createdAt));
397
+ }
398
+ }
399
+ //# sourceMappingURL=database-backup-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-backup-manager.js","sourceRoot":"","sources":["../../src/persistence/database-backup-manager.ts"],"names":[],"mappings":"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"}
@@ -33,5 +33,8 @@ export * from "./repositories/artifact-repository.js";
33
33
  export * from "./repositories/attachment-repository.js";
34
34
  export * from "./repositories/memory-repository.js";
35
35
  export * from "./migrations/010_evaluation_runs.js";
36
+ export * from "./migrations/011_snapshots_and_wal_maintenance.js";
36
37
  export * from "./repositories/evaluation-repository.js";
38
+ export * from "./database-backup-manager.js";
39
+ export * from "./wal-checkpoint-scheduler.js";
37
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,yCAAyC,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC"}
@@ -33,5 +33,8 @@ export * from "./repositories/artifact-repository.js";
33
33
  export * from "./repositories/attachment-repository.js";
34
34
  export * from "./repositories/memory-repository.js";
35
35
  export * from "./migrations/010_evaluation_runs.js";
36
+ export * from "./migrations/011_snapshots_and_wal_maintenance.js";
36
37
  export * from "./repositories/evaluation-repository.js";
38
+ export * from "./database-backup-manager.js";
39
+ export * from "./wal-checkpoint-scheduler.js";
37
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,yCAAyC,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"001_initial_core_schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/migrations/001_initial_core_schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,SA2M1B,CAAC;AAYF,eAAO,MAAM,aAAa,EAAE,SAAS,EAWpC,CAAC"}
1
+ {"version":3,"file":"001_initial_core_schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/migrations/001_initial_core_schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,SA2M1B,CAAC;AAaF,eAAO,MAAM,aAAa,EAAE,SAAS,EAYpC,CAAC"}
@@ -204,6 +204,7 @@ import { migration007 } from "./007_background_jobs.js";
204
204
  import { migration008 } from "./008_remote_nodes_dispatch.js";
205
205
  import { migration009 } from "./009_integrations_webhooks.js";
206
206
  import { migration010 } from "./010_evaluation_runs.js";
207
+ import { migration011 } from "./011_snapshots_and_wal_maintenance.js";
207
208
  export const allMigrations = [
208
209
  migration001,
209
210
  migration002,
@@ -215,5 +216,6 @@ export const allMigrations = [
215
216
  migration008,
216
217
  migration009,
217
218
  migration010,
219
+ migration011,
218
220
  ];
219
221
  //# sourceMappingURL=001_initial_core_schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"001_initial_core_schema.js","sourceRoot":"","sources":["../../../src/persistence/migrations/001_initial_core_schema.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,yBAAyB;IAC/B,EAAE,EAAE,CAAC,EAAgB,EAAE,EAAE;QACvB,cAAc;QACd,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;KAkBP,CAAC,CAAC;QAEH,cAAc;QACd,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsBP,CAAC,CAAC;QAEH,WAAW;QACX,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BP,CAAC,CAAC;QAEH,sCAAsC;QACtC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBP,CAAC,CAAC;QAEH,iBAAiB;QACjB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;KAeP,CAAC,CAAC;QAEH,eAAe;QACf,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsBP,CAAC,CAAC;QAEH,iBAAiB;QACjB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBP,CAAC,CAAC;QAEH,kBAAkB;QAClB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BP,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;CACb,CAAC"}
1
+ {"version":3,"file":"001_initial_core_schema.js","sourceRoot":"","sources":["../../../src/persistence/migrations/001_initial_core_schema.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,yBAAyB;IAC/B,EAAE,EAAE,CAAC,EAAgB,EAAE,EAAE;QACvB,cAAc;QACd,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;KAkBP,CAAC,CAAC;QAEH,cAAc;QACd,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsBP,CAAC,CAAC;QAEH,WAAW;QACX,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BP,CAAC,CAAC;QAEH,sCAAsC;QACtC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBP,CAAC,CAAC;QAEH,iBAAiB;QACjB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;KAeP,CAAC,CAAC;QAEH,eAAe;QACf,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsBP,CAAC,CAAC;QAEH,iBAAiB;QACjB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBP,CAAC,CAAC;QAEH,kBAAkB;QAClB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BP,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;CACb,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Migration } from "./001_initial_core_schema.js";
2
+ /**
3
+ * Migration 011: Projection Delta Snapshots, WAL Maintenance Telemetry, Connector DLQ,
4
+ * Detached Process Supervisions, and External Service Distributed Leases.
5
+ * PRD Part 1 Section 35-53 / PRD Part 2 Section 306-308 / PRD Part 3 Section 109-110.
6
+ */
7
+ export declare const migration011: Migration;
8
+ //# sourceMappingURL=011_snapshots_and_wal_maintenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"011_snapshots_and_wal_maintenance.d.ts","sourceRoot":"","sources":["../../../src/persistence/migrations/011_snapshots_and_wal_maintenance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,SA8H1B,CAAC"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Migration 011: Projection Delta Snapshots, WAL Maintenance Telemetry, Connector DLQ,
3
+ * Detached Process Supervisions, and External Service Distributed Leases.
4
+ * PRD Part 1 Section 35-53 / PRD Part 2 Section 306-308 / PRD Part 3 Section 109-110.
5
+ */
6
+ export const migration011 = {
7
+ id: 11,
8
+ name: "011_snapshots_and_wal_maintenance",
9
+ up: (db) => {
10
+ // 1. Projection Delta Snapshots Table
11
+ db.exec(`
12
+ CREATE TABLE IF NOT EXISTS projection_snapshots (
13
+ id TEXT PRIMARY KEY NOT NULL,
14
+ session_id TEXT NOT NULL,
15
+ project_id TEXT NOT NULL,
16
+ event_sequence_number INTEGER NOT NULL,
17
+ last_event_id TEXT NOT NULL,
18
+ timestamp TEXT NOT NULL,
19
+ is_keyframe INTEGER NOT NULL DEFAULT 0,
20
+ base_snapshot_id TEXT,
21
+ session_state_json TEXT NOT NULL,
22
+ task_states_json TEXT NOT NULL,
23
+ projections_json TEXT NOT NULL,
24
+ delta_diff_json TEXT,
25
+ checksum TEXT NOT NULL,
26
+ created_at TEXT NOT NULL,
27
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
28
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
29
+ FOREIGN KEY (base_snapshot_id) REFERENCES projection_snapshots(id) ON DELETE SET NULL
30
+ );
31
+ CREATE INDEX IF NOT EXISTS idx_snapshots_session_seq ON projection_snapshots(session_id, event_sequence_number);
32
+ CREATE INDEX IF NOT EXISTS idx_snapshots_keyframe ON projection_snapshots(session_id, is_keyframe);
33
+ `);
34
+ // 2. WAL Checkpoint Maintenance Telemetry Table
35
+ db.exec(`
36
+ CREATE TABLE IF NOT EXISTS wal_checkpoint_logs (
37
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
38
+ timestamp TEXT NOT NULL,
39
+ mode TEXT NOT NULL,
40
+ busy INTEGER NOT NULL,
41
+ log_pages INTEGER NOT NULL,
42
+ checkpointed_pages INTEGER NOT NULL,
43
+ wal_size_bytes INTEGER NOT NULL,
44
+ db_size_bytes INTEGER NOT NULL,
45
+ duration_ms REAL NOT NULL,
46
+ vacuum_executed INTEGER NOT NULL DEFAULT 0
47
+ );
48
+ CREATE INDEX IF NOT EXISTS idx_wal_checkpoint_timestamp ON wal_checkpoint_logs(timestamp);
49
+ `);
50
+ // 3. Connector Dead-Letter Queue (DLQ) Table
51
+ db.exec(`
52
+ CREATE TABLE IF NOT EXISTS connector_dlq (
53
+ id TEXT PRIMARY KEY NOT NULL,
54
+ connector_id TEXT NOT NULL,
55
+ project_id TEXT NOT NULL,
56
+ target_url TEXT NOT NULL,
57
+ payload TEXT NOT NULL,
58
+ headers_json TEXT NOT NULL DEFAULT "{}",
59
+ error_reason TEXT NOT NULL,
60
+ status_code INTEGER,
61
+ attempt_count INTEGER NOT NULL DEFAULT 1,
62
+ status TEXT NOT NULL,
63
+ first_attempt_at TEXT NOT NULL,
64
+ last_attempt_at TEXT NOT NULL,
65
+ next_retry_at TEXT,
66
+ metadata_json TEXT,
67
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
68
+ );
69
+ CREATE INDEX IF NOT EXISTS idx_connector_dlq_status ON connector_dlq(connector_id, status);
70
+ CREATE INDEX IF NOT EXISTS idx_connector_dlq_project ON connector_dlq(project_id);
71
+ `);
72
+ // 4. Detached Background Processes Table
73
+ db.exec(`
74
+ CREATE TABLE IF NOT EXISTS detached_processes (
75
+ execution_id TEXT PRIMARY KEY NOT NULL,
76
+ task_id TEXT NOT NULL,
77
+ session_id TEXT NOT NULL,
78
+ project_id TEXT NOT NULL,
79
+ command TEXT NOT NULL,
80
+ args_json TEXT NOT NULL DEFAULT "[]",
81
+ cwd TEXT NOT NULL,
82
+ pid INTEGER NOT NULL,
83
+ process_start_time INTEGER NOT NULL,
84
+ stdout_log_path TEXT NOT NULL,
85
+ stderr_log_path TEXT NOT NULL,
86
+ exit_code_path TEXT,
87
+ side_effect_safety TEXT NOT NULL,
88
+ lease_id TEXT,
89
+ last_heartbeat_at INTEGER NOT NULL,
90
+ status TEXT NOT NULL,
91
+ FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE,
92
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
93
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
94
+ );
95
+ CREATE INDEX IF NOT EXISTS idx_detached_processes_session ON detached_processes(session_id, status);
96
+ `);
97
+ // 5. External Service Distributed Leases Table
98
+ db.exec(`
99
+ CREATE TABLE IF NOT EXISTS external_service_leases (
100
+ id TEXT PRIMARY KEY NOT NULL,
101
+ lease_kind TEXT NOT NULL,
102
+ target_resource_id TEXT NOT NULL,
103
+ session_id TEXT NOT NULL,
104
+ task_id TEXT,
105
+ generation INTEGER NOT NULL,
106
+ expires_at TEXT NOT NULL,
107
+ last_heartbeat_at TEXT NOT NULL,
108
+ ttl_ms INTEGER NOT NULL,
109
+ status TEXT NOT NULL,
110
+ credentials_ref TEXT,
111
+ metadata_json TEXT,
112
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
113
+ FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE SET NULL
114
+ );
115
+ CREATE INDEX IF NOT EXISTS idx_ext_leases_session ON external_service_leases(session_id, status);
116
+ CREATE INDEX IF NOT EXISTS idx_ext_leases_resource ON external_service_leases(target_resource_id);
117
+ `);
118
+ },
119
+ down: (db) => {
120
+ db.exec(`
121
+ DROP TABLE IF EXISTS external_service_leases;
122
+ DROP TABLE IF EXISTS detached_processes;
123
+ DROP TABLE IF EXISTS connector_dlq;
124
+ DROP TABLE IF EXISTS wal_checkpoint_logs;
125
+ DROP TABLE IF EXISTS projection_snapshots;
126
+ `);
127
+ },
128
+ };
129
+ //# sourceMappingURL=011_snapshots_and_wal_maintenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"011_snapshots_and_wal_maintenance.js","sourceRoot":"","sources":["../../../src/persistence/migrations/011_snapshots_and_wal_maintenance.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,mCAAmC;IACzC,EAAE,EAAE,CAAC,EAAgB,EAAE,EAAE;QACvB,sCAAsC;QACtC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsBP,CAAC,CAAC;QAEH,gDAAgD;QAChD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;KAcP,CAAC,CAAC;QAEH,6CAA6C;QAC7C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;KAoBP,CAAC,CAAC;QAEH,yCAAyC;QACzC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;KAuBP,CAAC,CAAC;QAEH,+CAA+C;QAC/C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;KAmBP,CAAC,CAAC;IACL,CAAC;IACD,IAAI,EAAE,CAAC,EAAgB,EAAE,EAAE;QACzB,EAAE,CAAC,IAAI,CAAC;;;;;;KAMP,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}