attocode 0.2.3 → 0.2.5

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 (787) hide show
  1. package/CHANGELOG.md +122 -1
  2. package/README.md +65 -5
  3. package/dist/src/adapters.d.ts +2 -1
  4. package/dist/src/adapters.d.ts.map +1 -1
  5. package/dist/src/adapters.js +74 -12
  6. package/dist/src/adapters.js.map +1 -1
  7. package/dist/src/agent/agent-builder.d.ts +117 -0
  8. package/dist/src/agent/agent-builder.d.ts.map +1 -0
  9. package/dist/src/agent/agent-builder.js +204 -0
  10. package/dist/src/agent/agent-builder.js.map +1 -0
  11. package/dist/src/agent/feature-initializer.d.ts +80 -0
  12. package/dist/src/agent/feature-initializer.d.ts.map +1 -0
  13. package/dist/src/agent/feature-initializer.js +677 -0
  14. package/dist/src/agent/feature-initializer.js.map +1 -0
  15. package/dist/src/agent/index.d.ts +13 -0
  16. package/dist/src/agent/index.d.ts.map +1 -0
  17. package/dist/src/agent/index.js +13 -0
  18. package/dist/src/agent/index.js.map +1 -0
  19. package/dist/src/agent/message-builder.d.ts +50 -0
  20. package/dist/src/agent/message-builder.d.ts.map +1 -0
  21. package/dist/src/agent/message-builder.js +173 -0
  22. package/dist/src/agent/message-builder.js.map +1 -0
  23. package/dist/src/agent/session-api.d.ts +94 -0
  24. package/dist/src/agent/session-api.d.ts.map +1 -0
  25. package/dist/src/agent/session-api.js +262 -0
  26. package/dist/src/agent/session-api.js.map +1 -0
  27. package/dist/src/agent-tools/lsp-file-tools.d.ts +1 -1
  28. package/dist/src/agent-tools/lsp-file-tools.d.ts.map +1 -1
  29. package/dist/src/agent.d.ts +52 -213
  30. package/dist/src/agent.d.ts.map +1 -1
  31. package/dist/src/agent.js +544 -4072
  32. package/dist/src/agent.js.map +1 -1
  33. package/dist/src/cli.d.ts.map +1 -1
  34. package/dist/src/cli.js +2 -1
  35. package/dist/src/cli.js.map +1 -1
  36. package/dist/src/commands/handler.d.ts.map +1 -1
  37. package/dist/src/commands/handler.js +18 -9
  38. package/dist/src/commands/handler.js.map +1 -1
  39. package/dist/src/commands/init-commands.d.ts.map +1 -1
  40. package/dist/src/commands/init-commands.js +16 -1
  41. package/dist/src/commands/init-commands.js.map +1 -1
  42. package/dist/src/commands/init.d.ts.map +1 -1
  43. package/dist/src/commands/init.js +31 -0
  44. package/dist/src/commands/init.js.map +1 -1
  45. package/dist/src/config/base-types.d.ts +45 -0
  46. package/dist/src/config/base-types.d.ts.map +1 -0
  47. package/dist/src/config/base-types.js +9 -0
  48. package/dist/src/config/base-types.js.map +1 -0
  49. package/dist/src/config/config-manager.d.ts +35 -0
  50. package/dist/src/config/config-manager.d.ts.map +1 -0
  51. package/dist/src/config/config-manager.js +108 -0
  52. package/dist/src/config/config-manager.js.map +1 -0
  53. package/dist/src/config/index.d.ts +4 -0
  54. package/dist/src/config/index.d.ts.map +1 -0
  55. package/dist/src/config/index.js +3 -0
  56. package/dist/src/config/index.js.map +1 -0
  57. package/dist/src/config/schema.d.ts +1546 -0
  58. package/dist/src/config/schema.d.ts.map +1 -0
  59. package/dist/src/config/schema.js +268 -0
  60. package/dist/src/config/schema.js.map +1 -0
  61. package/dist/src/config.d.ts +4 -1
  62. package/dist/src/config.d.ts.map +1 -1
  63. package/dist/src/config.js +8 -12
  64. package/dist/src/config.js.map +1 -1
  65. package/dist/src/core/agent-state-machine.d.ts +131 -0
  66. package/dist/src/core/agent-state-machine.d.ts.map +1 -0
  67. package/dist/src/core/agent-state-machine.js +302 -0
  68. package/dist/src/core/agent-state-machine.js.map +1 -0
  69. package/dist/src/core/base-manager.d.ts +79 -0
  70. package/dist/src/core/base-manager.d.ts.map +1 -0
  71. package/dist/src/core/base-manager.js +170 -0
  72. package/dist/src/core/base-manager.js.map +1 -0
  73. package/dist/src/core/completion-analyzer.d.ts +15 -0
  74. package/dist/src/core/completion-analyzer.d.ts.map +1 -0
  75. package/dist/src/core/completion-analyzer.js +53 -0
  76. package/dist/src/core/completion-analyzer.js.map +1 -0
  77. package/dist/src/core/execution-loop.d.ts +46 -0
  78. package/dist/src/core/execution-loop.d.ts.map +1 -0
  79. package/dist/src/core/execution-loop.js +1397 -0
  80. package/dist/src/core/execution-loop.js.map +1 -0
  81. package/dist/src/core/index.d.ts +7 -0
  82. package/dist/src/core/index.d.ts.map +1 -1
  83. package/dist/src/core/index.js +9 -0
  84. package/dist/src/core/index.js.map +1 -1
  85. package/dist/src/core/process-handlers.d.ts.map +1 -1
  86. package/dist/src/core/process-handlers.js +14 -0
  87. package/dist/src/core/process-handlers.js.map +1 -1
  88. package/dist/src/core/protocol/types.d.ts +12 -12
  89. package/dist/src/core/response-handler.d.ts +16 -0
  90. package/dist/src/core/response-handler.d.ts.map +1 -0
  91. package/dist/src/core/response-handler.js +235 -0
  92. package/dist/src/core/response-handler.js.map +1 -0
  93. package/dist/src/core/subagent-spawner.d.ts +43 -0
  94. package/dist/src/core/subagent-spawner.d.ts.map +1 -0
  95. package/dist/src/core/subagent-spawner.js +973 -0
  96. package/dist/src/core/subagent-spawner.js.map +1 -0
  97. package/dist/src/core/tool-executor.d.ts +59 -0
  98. package/dist/src/core/tool-executor.d.ts.map +1 -0
  99. package/dist/src/core/tool-executor.js +682 -0
  100. package/dist/src/core/tool-executor.js.map +1 -0
  101. package/dist/src/core/types.d.ts +134 -0
  102. package/dist/src/core/types.d.ts.map +1 -0
  103. package/dist/src/core/types.js +12 -0
  104. package/dist/src/core/types.js.map +1 -0
  105. package/dist/src/defaults.d.ts +2 -2
  106. package/dist/src/defaults.d.ts.map +1 -1
  107. package/dist/src/defaults.js +29 -1
  108. package/dist/src/defaults.js.map +1 -1
  109. package/dist/src/integrations/agents/agent-registry.d.ts +262 -0
  110. package/dist/src/integrations/agents/agent-registry.d.ts.map +1 -0
  111. package/dist/src/integrations/agents/agent-registry.js +686 -0
  112. package/dist/src/integrations/agents/agent-registry.js.map +1 -0
  113. package/dist/src/integrations/agents/async-subagent.d.ts +135 -0
  114. package/dist/src/integrations/agents/async-subagent.d.ts.map +1 -0
  115. package/dist/src/integrations/agents/async-subagent.js +213 -0
  116. package/dist/src/integrations/agents/async-subagent.js.map +1 -0
  117. package/dist/src/integrations/agents/complexity-classifier.d.ts +86 -0
  118. package/dist/src/integrations/agents/complexity-classifier.d.ts.map +1 -0
  119. package/dist/src/integrations/agents/complexity-classifier.js +233 -0
  120. package/dist/src/integrations/agents/complexity-classifier.js.map +1 -0
  121. package/dist/src/integrations/agents/delegation-protocol.d.ts +86 -0
  122. package/dist/src/integrations/agents/delegation-protocol.d.ts.map +1 -0
  123. package/dist/src/integrations/agents/delegation-protocol.js +127 -0
  124. package/dist/src/integrations/agents/delegation-protocol.js.map +1 -0
  125. package/dist/src/integrations/agents/multi-agent.d.ts +150 -0
  126. package/dist/src/integrations/agents/multi-agent.d.ts.map +1 -0
  127. package/dist/src/integrations/agents/multi-agent.js +306 -0
  128. package/dist/src/integrations/agents/multi-agent.js.map +1 -0
  129. package/dist/src/integrations/agents/result-synthesizer.d.ts +389 -0
  130. package/dist/src/integrations/agents/result-synthesizer.d.ts.map +1 -0
  131. package/dist/src/integrations/agents/result-synthesizer.js +951 -0
  132. package/dist/src/integrations/agents/result-synthesizer.js.map +1 -0
  133. package/dist/src/integrations/agents/shared-blackboard.d.ts +406 -0
  134. package/dist/src/integrations/agents/shared-blackboard.d.ts.map +1 -0
  135. package/dist/src/integrations/agents/shared-blackboard.js +757 -0
  136. package/dist/src/integrations/agents/shared-blackboard.js.map +1 -0
  137. package/dist/src/integrations/agents/subagent-output-store.d.ts +91 -0
  138. package/dist/src/integrations/agents/subagent-output-store.d.ts.map +1 -0
  139. package/dist/src/integrations/agents/subagent-output-store.js +257 -0
  140. package/dist/src/integrations/agents/subagent-output-store.js.map +1 -0
  141. package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
  142. package/dist/src/integrations/auto-compaction.js +3 -2
  143. package/dist/src/integrations/auto-compaction.js.map +1 -1
  144. package/dist/src/integrations/budget/budget-pool.d.ts +115 -0
  145. package/dist/src/integrations/budget/budget-pool.d.ts.map +1 -0
  146. package/dist/src/integrations/budget/budget-pool.js +205 -0
  147. package/dist/src/integrations/budget/budget-pool.js.map +1 -0
  148. package/dist/src/integrations/budget/cancellation.d.ts +229 -0
  149. package/dist/src/integrations/budget/cancellation.d.ts.map +1 -0
  150. package/dist/src/integrations/budget/cancellation.js +520 -0
  151. package/dist/src/integrations/budget/cancellation.js.map +1 -0
  152. package/dist/src/integrations/budget/dynamic-budget.d.ts +81 -0
  153. package/dist/src/integrations/budget/dynamic-budget.d.ts.map +1 -0
  154. package/dist/src/integrations/budget/dynamic-budget.js +151 -0
  155. package/dist/src/integrations/budget/dynamic-budget.js.map +1 -0
  156. package/dist/src/integrations/budget/economics.d.ts +435 -0
  157. package/dist/src/integrations/budget/economics.d.ts.map +1 -0
  158. package/dist/src/integrations/budget/economics.js +1007 -0
  159. package/dist/src/integrations/budget/economics.js.map +1 -0
  160. package/dist/src/integrations/budget/injection-budget.d.ts +71 -0
  161. package/dist/src/integrations/budget/injection-budget.d.ts.map +1 -0
  162. package/dist/src/integrations/budget/injection-budget.js +137 -0
  163. package/dist/src/integrations/budget/injection-budget.js.map +1 -0
  164. package/dist/src/integrations/budget/loop-detector.d.ts +105 -0
  165. package/dist/src/integrations/budget/loop-detector.d.ts.map +1 -0
  166. package/dist/src/integrations/budget/loop-detector.js +287 -0
  167. package/dist/src/integrations/budget/loop-detector.js.map +1 -0
  168. package/dist/src/integrations/budget/phase-tracker.d.ts +114 -0
  169. package/dist/src/integrations/budget/phase-tracker.d.ts.map +1 -0
  170. package/dist/src/integrations/budget/phase-tracker.js +262 -0
  171. package/dist/src/integrations/budget/phase-tracker.js.map +1 -0
  172. package/dist/src/integrations/budget/resources.d.ts +182 -0
  173. package/dist/src/integrations/budget/resources.d.ts.map +1 -0
  174. package/dist/src/integrations/budget/resources.js +318 -0
  175. package/dist/src/integrations/budget/resources.js.map +1 -0
  176. package/dist/src/integrations/budget-pool.d.ts +7 -0
  177. package/dist/src/integrations/budget-pool.d.ts.map +1 -1
  178. package/dist/src/integrations/budget-pool.js +43 -0
  179. package/dist/src/integrations/budget-pool.js.map +1 -1
  180. package/dist/src/integrations/codebase-ast.d.ts +52 -0
  181. package/dist/src/integrations/codebase-ast.d.ts.map +1 -0
  182. package/dist/src/integrations/codebase-ast.js +457 -0
  183. package/dist/src/integrations/codebase-ast.js.map +1 -0
  184. package/dist/src/integrations/codebase-context.d.ts +18 -0
  185. package/dist/src/integrations/codebase-context.d.ts.map +1 -1
  186. package/dist/src/integrations/codebase-context.js +197 -17
  187. package/dist/src/integrations/codebase-context.js.map +1 -1
  188. package/dist/src/integrations/compaction.d.ts.map +1 -1
  189. package/dist/src/integrations/compaction.js +14 -6
  190. package/dist/src/integrations/compaction.js.map +1 -1
  191. package/dist/src/integrations/context/auto-compaction.d.ts +210 -0
  192. package/dist/src/integrations/context/auto-compaction.d.ts.map +1 -0
  193. package/dist/src/integrations/context/auto-compaction.js +477 -0
  194. package/dist/src/integrations/context/auto-compaction.js.map +1 -0
  195. package/dist/src/integrations/context/code-analyzer.d.ts +71 -0
  196. package/dist/src/integrations/context/code-analyzer.d.ts.map +1 -0
  197. package/dist/src/integrations/context/code-analyzer.js +448 -0
  198. package/dist/src/integrations/context/code-analyzer.js.map +1 -0
  199. package/dist/src/integrations/context/code-selector.d.ts +78 -0
  200. package/dist/src/integrations/context/code-selector.d.ts.map +1 -0
  201. package/dist/src/integrations/context/code-selector.js +649 -0
  202. package/dist/src/integrations/context/code-selector.js.map +1 -0
  203. package/dist/src/integrations/context/codebase-ast.d.ts +138 -0
  204. package/dist/src/integrations/context/codebase-ast.d.ts.map +1 -0
  205. package/dist/src/integrations/context/codebase-ast.js +818 -0
  206. package/dist/src/integrations/context/codebase-ast.js.map +1 -0
  207. package/dist/src/integrations/context/codebase-context.d.ts +473 -0
  208. package/dist/src/integrations/context/codebase-context.d.ts.map +1 -0
  209. package/dist/src/integrations/context/codebase-context.js +685 -0
  210. package/dist/src/integrations/context/codebase-context.js.map +1 -0
  211. package/dist/src/integrations/context/compaction.d.ts +191 -0
  212. package/dist/src/integrations/context/compaction.d.ts.map +1 -0
  213. package/dist/src/integrations/context/compaction.js +384 -0
  214. package/dist/src/integrations/context/compaction.js.map +1 -0
  215. package/dist/src/integrations/context/context-engineering.d.ts +274 -0
  216. package/dist/src/integrations/context/context-engineering.d.ts.map +1 -0
  217. package/dist/src/integrations/context/context-engineering.js +437 -0
  218. package/dist/src/integrations/context/context-engineering.js.map +1 -0
  219. package/dist/src/integrations/context/file-cache.d.ts +97 -0
  220. package/dist/src/integrations/context/file-cache.d.ts.map +1 -0
  221. package/dist/src/integrations/context/file-cache.js +218 -0
  222. package/dist/src/integrations/context/file-cache.js.map +1 -0
  223. package/dist/src/integrations/context/semantic-cache.d.ts +178 -0
  224. package/dist/src/integrations/context/semantic-cache.d.ts.map +1 -0
  225. package/dist/src/integrations/context/semantic-cache.js +372 -0
  226. package/dist/src/integrations/context/semantic-cache.js.map +1 -0
  227. package/dist/src/integrations/context-engineering.d.ts +8 -0
  228. package/dist/src/integrations/context-engineering.d.ts.map +1 -1
  229. package/dist/src/integrations/context-engineering.js +19 -0
  230. package/dist/src/integrations/context-engineering.js.map +1 -1
  231. package/dist/src/integrations/economics.d.ts +25 -1
  232. package/dist/src/integrations/economics.d.ts.map +1 -1
  233. package/dist/src/integrations/economics.js +217 -38
  234. package/dist/src/integrations/economics.js.map +1 -1
  235. package/dist/src/integrations/edit-validator.d.ts +30 -0
  236. package/dist/src/integrations/edit-validator.d.ts.map +1 -0
  237. package/dist/src/integrations/edit-validator.js +85 -0
  238. package/dist/src/integrations/edit-validator.js.map +1 -0
  239. package/dist/src/integrations/file-cache.d.ts +7 -0
  240. package/dist/src/integrations/file-cache.d.ts.map +1 -1
  241. package/dist/src/integrations/file-cache.js +54 -0
  242. package/dist/src/integrations/file-cache.js.map +1 -1
  243. package/dist/src/integrations/health-check.d.ts.map +1 -1
  244. package/dist/src/integrations/health-check.js +3 -2
  245. package/dist/src/integrations/health-check.js.map +1 -1
  246. package/dist/src/integrations/hierarchical-config.d.ts +3 -0
  247. package/dist/src/integrations/hierarchical-config.d.ts.map +1 -1
  248. package/dist/src/integrations/hierarchical-config.js +3 -0
  249. package/dist/src/integrations/hierarchical-config.js.map +1 -1
  250. package/dist/src/integrations/hooks.d.ts +2 -0
  251. package/dist/src/integrations/hooks.d.ts.map +1 -1
  252. package/dist/src/integrations/hooks.js +99 -15
  253. package/dist/src/integrations/hooks.js.map +1 -1
  254. package/dist/src/integrations/index.d.ts +77 -66
  255. package/dist/src/integrations/index.d.ts.map +1 -1
  256. package/dist/src/integrations/index.js +83 -67
  257. package/dist/src/integrations/index.js.map +1 -1
  258. package/dist/src/integrations/logger.d.ts +104 -0
  259. package/dist/src/integrations/logger.d.ts.map +1 -0
  260. package/dist/src/integrations/logger.js +219 -0
  261. package/dist/src/integrations/logger.js.map +1 -0
  262. package/dist/src/integrations/lsp/lsp.d.ts +196 -0
  263. package/dist/src/integrations/lsp/lsp.d.ts.map +1 -0
  264. package/dist/src/integrations/lsp/lsp.js +583 -0
  265. package/dist/src/integrations/lsp/lsp.js.map +1 -0
  266. package/dist/src/integrations/lsp.d.ts.map +1 -1
  267. package/dist/src/integrations/lsp.js +5 -4
  268. package/dist/src/integrations/lsp.js.map +1 -1
  269. package/dist/src/integrations/mcp/mcp-client.d.ts +279 -0
  270. package/dist/src/integrations/mcp/mcp-client.d.ts.map +1 -0
  271. package/dist/src/integrations/mcp/mcp-client.js +755 -0
  272. package/dist/src/integrations/mcp/mcp-client.js.map +1 -0
  273. package/dist/src/integrations/mcp/mcp-custom-tools.d.ts +102 -0
  274. package/dist/src/integrations/mcp/mcp-custom-tools.d.ts.map +1 -0
  275. package/dist/src/integrations/mcp/mcp-custom-tools.js +232 -0
  276. package/dist/src/integrations/mcp/mcp-custom-tools.js.map +1 -0
  277. package/dist/src/integrations/mcp/mcp-tool-search.d.ts +77 -0
  278. package/dist/src/integrations/mcp/mcp-tool-search.d.ts.map +1 -0
  279. package/dist/src/integrations/mcp/mcp-tool-search.js +220 -0
  280. package/dist/src/integrations/mcp/mcp-tool-search.js.map +1 -0
  281. package/dist/src/integrations/mcp/mcp-tool-validator.d.ts +60 -0
  282. package/dist/src/integrations/mcp/mcp-tool-validator.d.ts.map +1 -0
  283. package/dist/src/integrations/mcp/mcp-tool-validator.js +141 -0
  284. package/dist/src/integrations/mcp/mcp-tool-validator.js.map +1 -0
  285. package/dist/src/integrations/mcp-client.d.ts.map +1 -1
  286. package/dist/src/integrations/mcp-client.js +8 -7
  287. package/dist/src/integrations/mcp-client.js.map +1 -1
  288. package/dist/src/integrations/observability.d.ts.map +1 -1
  289. package/dist/src/integrations/observability.js +5 -4
  290. package/dist/src/integrations/observability.js.map +1 -1
  291. package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -1
  292. package/dist/src/integrations/openrouter-pricing.js +4 -3
  293. package/dist/src/integrations/openrouter-pricing.js.map +1 -1
  294. package/dist/src/integrations/persistence/codebase-repository.d.ts +45 -0
  295. package/dist/src/integrations/persistence/codebase-repository.d.ts.map +1 -0
  296. package/dist/src/integrations/persistence/codebase-repository.js +81 -0
  297. package/dist/src/integrations/persistence/codebase-repository.js.map +1 -0
  298. package/dist/src/integrations/persistence/goal-repository.d.ts +71 -0
  299. package/dist/src/integrations/persistence/goal-repository.d.ts.map +1 -0
  300. package/dist/src/integrations/persistence/goal-repository.js +184 -0
  301. package/dist/src/integrations/persistence/goal-repository.js.map +1 -0
  302. package/dist/src/integrations/persistence/history.d.ts +72 -0
  303. package/dist/src/integrations/persistence/history.d.ts.map +1 -0
  304. package/dist/src/integrations/persistence/history.js +165 -0
  305. package/dist/src/integrations/persistence/history.js.map +1 -0
  306. package/dist/src/integrations/persistence/persistence.d.ts +49 -0
  307. package/dist/src/integrations/persistence/persistence.d.ts.map +1 -0
  308. package/dist/src/integrations/persistence/persistence.js +197 -0
  309. package/dist/src/integrations/persistence/persistence.js.map +1 -0
  310. package/dist/src/integrations/persistence/session-repository.d.ts +212 -0
  311. package/dist/src/integrations/persistence/session-repository.d.ts.map +1 -0
  312. package/dist/src/integrations/persistence/session-repository.js +770 -0
  313. package/dist/src/integrations/persistence/session-repository.js.map +1 -0
  314. package/dist/src/integrations/persistence/session-store.d.ts +184 -0
  315. package/dist/src/integrations/persistence/session-store.d.ts.map +1 -0
  316. package/dist/src/integrations/persistence/session-store.js +346 -0
  317. package/dist/src/integrations/persistence/session-store.js.map +1 -0
  318. package/dist/src/integrations/persistence/sqlite-store.d.ts +453 -0
  319. package/dist/src/integrations/persistence/sqlite-store.d.ts.map +1 -0
  320. package/dist/src/integrations/persistence/sqlite-store.js +676 -0
  321. package/dist/src/integrations/persistence/sqlite-store.js.map +1 -0
  322. package/dist/src/integrations/persistence/worker-repository.d.ts +65 -0
  323. package/dist/src/integrations/persistence/worker-repository.d.ts.map +1 -0
  324. package/dist/src/integrations/persistence/worker-repository.js +183 -0
  325. package/dist/src/integrations/persistence/worker-repository.js.map +1 -0
  326. package/dist/src/integrations/persistence.d.ts.map +1 -1
  327. package/dist/src/integrations/persistence.js +5 -4
  328. package/dist/src/integrations/persistence.js.map +1 -1
  329. package/dist/src/integrations/planning.d.ts.map +1 -1
  330. package/dist/src/integrations/planning.js +5 -4
  331. package/dist/src/integrations/planning.js.map +1 -1
  332. package/dist/src/integrations/quality/auto-checkpoint.d.ts +98 -0
  333. package/dist/src/integrations/quality/auto-checkpoint.d.ts.map +1 -0
  334. package/dist/src/integrations/quality/auto-checkpoint.js +252 -0
  335. package/dist/src/integrations/quality/auto-checkpoint.js.map +1 -0
  336. package/dist/src/integrations/quality/dead-letter-queue.d.ts +233 -0
  337. package/dist/src/integrations/quality/dead-letter-queue.d.ts.map +1 -0
  338. package/dist/src/integrations/quality/dead-letter-queue.js +543 -0
  339. package/dist/src/integrations/quality/dead-letter-queue.js.map +1 -0
  340. package/dist/src/integrations/quality/health-check.d.ts +218 -0
  341. package/dist/src/integrations/quality/health-check.d.ts.map +1 -0
  342. package/dist/src/integrations/quality/health-check.js +415 -0
  343. package/dist/src/integrations/quality/health-check.js.map +1 -0
  344. package/dist/src/integrations/quality/learning-store.d.ts +291 -0
  345. package/dist/src/integrations/quality/learning-store.d.ts.map +1 -0
  346. package/dist/src/integrations/quality/learning-store.js +646 -0
  347. package/dist/src/integrations/quality/learning-store.js.map +1 -0
  348. package/dist/src/integrations/quality/self-improvement.d.ts +90 -0
  349. package/dist/src/integrations/quality/self-improvement.d.ts.map +1 -0
  350. package/dist/src/integrations/quality/self-improvement.js +229 -0
  351. package/dist/src/integrations/quality/self-improvement.js.map +1 -0
  352. package/dist/src/integrations/quality/tool-recommendation.d.ts +61 -0
  353. package/dist/src/integrations/quality/tool-recommendation.d.ts.map +1 -0
  354. package/dist/src/integrations/quality/tool-recommendation.js +268 -0
  355. package/dist/src/integrations/quality/tool-recommendation.js.map +1 -0
  356. package/dist/src/integrations/retry.d.ts +1 -0
  357. package/dist/src/integrations/retry.d.ts.map +1 -1
  358. package/dist/src/integrations/retry.js.map +1 -1
  359. package/dist/src/integrations/routing.d.ts.map +1 -1
  360. package/dist/src/integrations/routing.js +2 -1
  361. package/dist/src/integrations/routing.js.map +1 -1
  362. package/dist/src/integrations/safety/bash-policy.d.ts +33 -0
  363. package/dist/src/integrations/safety/bash-policy.d.ts.map +1 -0
  364. package/dist/src/integrations/safety/bash-policy.js +144 -0
  365. package/dist/src/integrations/safety/bash-policy.js.map +1 -0
  366. package/dist/src/integrations/safety/edit-validator.d.ts +30 -0
  367. package/dist/src/integrations/safety/edit-validator.d.ts.map +1 -0
  368. package/dist/src/integrations/safety/edit-validator.js +87 -0
  369. package/dist/src/integrations/safety/edit-validator.js.map +1 -0
  370. package/dist/src/integrations/safety/execution-policy.d.ts +189 -0
  371. package/dist/src/integrations/safety/execution-policy.d.ts.map +1 -0
  372. package/dist/src/integrations/safety/execution-policy.js +352 -0
  373. package/dist/src/integrations/safety/execution-policy.js.map +1 -0
  374. package/dist/src/integrations/safety/policy-engine.d.ts +55 -0
  375. package/dist/src/integrations/safety/policy-engine.d.ts.map +1 -0
  376. package/dist/src/integrations/safety/policy-engine.js +247 -0
  377. package/dist/src/integrations/safety/policy-engine.js.map +1 -0
  378. package/dist/src/integrations/safety/safety.d.ts +174 -0
  379. package/dist/src/integrations/safety/safety.d.ts.map +1 -0
  380. package/dist/src/integrations/safety/safety.js +470 -0
  381. package/dist/src/integrations/safety/safety.js.map +1 -0
  382. package/dist/src/integrations/safety/sandbox/basic.d.ts +81 -0
  383. package/dist/src/integrations/safety/sandbox/basic.d.ts.map +1 -0
  384. package/dist/src/integrations/safety/sandbox/basic.js +335 -0
  385. package/dist/src/integrations/safety/sandbox/basic.js.map +1 -0
  386. package/dist/src/integrations/safety/sandbox/docker.d.ts +94 -0
  387. package/dist/src/integrations/safety/sandbox/docker.d.ts.map +1 -0
  388. package/dist/src/integrations/safety/sandbox/docker.js +294 -0
  389. package/dist/src/integrations/safety/sandbox/docker.js.map +1 -0
  390. package/dist/src/integrations/safety/sandbox/index.d.ts +188 -0
  391. package/dist/src/integrations/safety/sandbox/index.d.ts.map +1 -0
  392. package/dist/src/integrations/safety/sandbox/index.js +386 -0
  393. package/dist/src/integrations/safety/sandbox/index.js.map +1 -0
  394. package/dist/src/integrations/safety/sandbox/landlock.d.ts +59 -0
  395. package/dist/src/integrations/safety/sandbox/landlock.d.ts.map +1 -0
  396. package/dist/src/integrations/safety/sandbox/landlock.js +329 -0
  397. package/dist/src/integrations/safety/sandbox/landlock.js.map +1 -0
  398. package/dist/src/integrations/safety/sandbox/seatbelt.d.ts +68 -0
  399. package/dist/src/integrations/safety/sandbox/seatbelt.d.ts.map +1 -0
  400. package/dist/src/integrations/safety/sandbox/seatbelt.js +298 -0
  401. package/dist/src/integrations/safety/sandbox/seatbelt.js.map +1 -0
  402. package/dist/src/integrations/safety/type-checker.d.ts +53 -0
  403. package/dist/src/integrations/safety/type-checker.d.ts.map +1 -0
  404. package/dist/src/integrations/safety/type-checker.js +142 -0
  405. package/dist/src/integrations/safety/type-checker.js.map +1 -0
  406. package/dist/src/integrations/safety.d.ts.map +1 -1
  407. package/dist/src/integrations/safety.js +13 -13
  408. package/dist/src/integrations/safety.js.map +1 -1
  409. package/dist/src/integrations/sandbox/docker.d.ts.map +1 -1
  410. package/dist/src/integrations/sandbox/docker.js +2 -1
  411. package/dist/src/integrations/sandbox/docker.js.map +1 -1
  412. package/dist/src/integrations/sandbox/index.d.ts.map +1 -1
  413. package/dist/src/integrations/sandbox/index.js +5 -4
  414. package/dist/src/integrations/sandbox/index.js.map +1 -1
  415. package/dist/src/integrations/session-store.d.ts +1 -0
  416. package/dist/src/integrations/session-store.d.ts.map +1 -1
  417. package/dist/src/integrations/session-store.js +1 -0
  418. package/dist/src/integrations/session-store.js.map +1 -1
  419. package/dist/src/integrations/shared-blackboard.d.ts +3 -0
  420. package/dist/src/integrations/shared-blackboard.d.ts.map +1 -1
  421. package/dist/src/integrations/shared-blackboard.js +47 -0
  422. package/dist/src/integrations/shared-blackboard.js.map +1 -1
  423. package/dist/src/integrations/skills/skill-executor.d.ts +113 -0
  424. package/dist/src/integrations/skills/skill-executor.d.ts.map +1 -0
  425. package/dist/src/integrations/skills/skill-executor.js +270 -0
  426. package/dist/src/integrations/skills/skill-executor.js.map +1 -0
  427. package/dist/src/integrations/skills/skills.d.ts +262 -0
  428. package/dist/src/integrations/skills/skills.d.ts.map +1 -0
  429. package/dist/src/integrations/skills/skills.js +602 -0
  430. package/dist/src/integrations/skills/skills.js.map +1 -0
  431. package/dist/src/integrations/smart-decomposer.d.ts +27 -0
  432. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
  433. package/dist/src/integrations/smart-decomposer.js +414 -30
  434. package/dist/src/integrations/smart-decomposer.js.map +1 -1
  435. package/dist/src/integrations/sqlite-store.d.ts +2 -0
  436. package/dist/src/integrations/sqlite-store.d.ts.map +1 -1
  437. package/dist/src/integrations/sqlite-store.js +18 -6
  438. package/dist/src/integrations/sqlite-store.js.map +1 -1
  439. package/dist/src/integrations/streaming/pty-shell.d.ts +169 -0
  440. package/dist/src/integrations/streaming/pty-shell.d.ts.map +1 -0
  441. package/dist/src/integrations/streaming/pty-shell.js +367 -0
  442. package/dist/src/integrations/streaming/pty-shell.js.map +1 -0
  443. package/dist/src/integrations/streaming/streaming.d.ts +102 -0
  444. package/dist/src/integrations/streaming/streaming.d.ts.map +1 -0
  445. package/dist/src/integrations/streaming/streaming.js +362 -0
  446. package/dist/src/integrations/streaming/streaming.js.map +1 -0
  447. package/dist/src/integrations/swarm/failure-classifier.d.ts +11 -0
  448. package/dist/src/integrations/swarm/failure-classifier.d.ts.map +1 -0
  449. package/dist/src/integrations/swarm/failure-classifier.js +95 -0
  450. package/dist/src/integrations/swarm/failure-classifier.js.map +1 -0
  451. package/dist/src/integrations/swarm/index.d.ts +2 -1
  452. package/dist/src/integrations/swarm/index.d.ts.map +1 -1
  453. package/dist/src/integrations/swarm/index.js +2 -0
  454. package/dist/src/integrations/swarm/index.js.map +1 -1
  455. package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -1
  456. package/dist/src/integrations/swarm/model-selector.js +2 -1
  457. package/dist/src/integrations/swarm/model-selector.js.map +1 -1
  458. package/dist/src/integrations/swarm/swarm-budget.d.ts +1 -1
  459. package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -1
  460. package/dist/src/integrations/swarm/swarm-budget.js +1 -1
  461. package/dist/src/integrations/swarm/swarm-budget.js.map +1 -1
  462. package/dist/src/integrations/swarm/swarm-config-loader.d.ts +8 -0
  463. package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
  464. package/dist/src/integrations/swarm/swarm-config-loader.js +102 -0
  465. package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
  466. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +74 -0
  467. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -1
  468. package/dist/src/integrations/swarm/swarm-event-bridge.js +37 -0
  469. package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -1
  470. package/dist/src/integrations/swarm/swarm-events.d.ts +4 -1
  471. package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
  472. package/dist/src/integrations/swarm/swarm-events.js +1 -1
  473. package/dist/src/integrations/swarm/swarm-events.js.map +1 -1
  474. package/dist/src/integrations/swarm/swarm-execution.d.ts +27 -0
  475. package/dist/src/integrations/swarm/swarm-execution.d.ts.map +1 -0
  476. package/dist/src/integrations/swarm/swarm-execution.js +1021 -0
  477. package/dist/src/integrations/swarm/swarm-execution.js.map +1 -0
  478. package/dist/src/integrations/swarm/swarm-helpers.d.ts +26 -0
  479. package/dist/src/integrations/swarm/swarm-helpers.d.ts.map +1 -0
  480. package/dist/src/integrations/swarm/swarm-helpers.js +95 -0
  481. package/dist/src/integrations/swarm/swarm-helpers.js.map +1 -0
  482. package/dist/src/integrations/swarm/swarm-lifecycle.d.ts +100 -0
  483. package/dist/src/integrations/swarm/swarm-lifecycle.d.ts.map +1 -0
  484. package/dist/src/integrations/swarm/swarm-lifecycle.js +922 -0
  485. package/dist/src/integrations/swarm/swarm-lifecycle.js.map +1 -0
  486. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +96 -192
  487. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
  488. package/dist/src/integrations/swarm/swarm-orchestrator.js +384 -2528
  489. package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
  490. package/dist/src/integrations/swarm/swarm-quality-gate.js +1 -1
  491. package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
  492. package/dist/src/integrations/swarm/swarm-recovery.d.ts +75 -0
  493. package/dist/src/integrations/swarm/swarm-recovery.d.ts.map +1 -0
  494. package/dist/src/integrations/swarm/swarm-recovery.js +550 -0
  495. package/dist/src/integrations/swarm/swarm-recovery.js.map +1 -0
  496. package/dist/src/integrations/swarm/swarm-state-store.d.ts +4 -1
  497. package/dist/src/integrations/swarm/swarm-state-store.d.ts.map +1 -1
  498. package/dist/src/integrations/swarm/swarm-state-store.js +14 -1
  499. package/dist/src/integrations/swarm/swarm-state-store.js.map +1 -1
  500. package/dist/src/integrations/swarm/task-queue.d.ts +11 -1
  501. package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
  502. package/dist/src/integrations/swarm/task-queue.js +64 -2
  503. package/dist/src/integrations/swarm/task-queue.js.map +1 -1
  504. package/dist/src/integrations/swarm/types.d.ts +57 -4
  505. package/dist/src/integrations/swarm/types.d.ts.map +1 -1
  506. package/dist/src/integrations/swarm/types.js +9 -0
  507. package/dist/src/integrations/swarm/types.js.map +1 -1
  508. package/dist/src/integrations/swarm/worker-pool.d.ts +13 -3
  509. package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
  510. package/dist/src/integrations/swarm/worker-pool.js +66 -13
  511. package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
  512. package/dist/src/integrations/task-manager.d.ts +33 -1
  513. package/dist/src/integrations/task-manager.d.ts.map +1 -1
  514. package/dist/src/integrations/task-manager.js +78 -4
  515. package/dist/src/integrations/task-manager.js.map +1 -1
  516. package/dist/src/integrations/tasks/dependency-analyzer.d.ts +34 -0
  517. package/dist/src/integrations/tasks/dependency-analyzer.d.ts.map +1 -0
  518. package/dist/src/integrations/tasks/dependency-analyzer.js +232 -0
  519. package/dist/src/integrations/tasks/dependency-analyzer.js.map +1 -0
  520. package/dist/src/integrations/tasks/interactive-planning.d.ts +322 -0
  521. package/dist/src/integrations/tasks/interactive-planning.d.ts.map +1 -0
  522. package/dist/src/integrations/tasks/interactive-planning.js +655 -0
  523. package/dist/src/integrations/tasks/interactive-planning.js.map +1 -0
  524. package/dist/src/integrations/tasks/pending-plan.d.ts +196 -0
  525. package/dist/src/integrations/tasks/pending-plan.d.ts.map +1 -0
  526. package/dist/src/integrations/tasks/pending-plan.js +431 -0
  527. package/dist/src/integrations/tasks/pending-plan.js.map +1 -0
  528. package/dist/src/integrations/tasks/planning.d.ts +115 -0
  529. package/dist/src/integrations/tasks/planning.d.ts.map +1 -0
  530. package/dist/src/integrations/tasks/planning.js +413 -0
  531. package/dist/src/integrations/tasks/planning.js.map +1 -0
  532. package/dist/src/integrations/tasks/smart-decomposer.d.ts +316 -0
  533. package/dist/src/integrations/tasks/smart-decomposer.d.ts.map +1 -0
  534. package/dist/src/integrations/tasks/smart-decomposer.js +661 -0
  535. package/dist/src/integrations/tasks/smart-decomposer.js.map +1 -0
  536. package/dist/src/integrations/tasks/task-manager.d.ts +164 -0
  537. package/dist/src/integrations/tasks/task-manager.d.ts.map +1 -0
  538. package/dist/src/integrations/tasks/task-manager.js +383 -0
  539. package/dist/src/integrations/tasks/task-manager.js.map +1 -0
  540. package/dist/src/integrations/tasks/task-splitter.d.ts +56 -0
  541. package/dist/src/integrations/tasks/task-splitter.d.ts.map +1 -0
  542. package/dist/src/integrations/tasks/task-splitter.js +537 -0
  543. package/dist/src/integrations/tasks/task-splitter.js.map +1 -0
  544. package/dist/src/integrations/tasks/verification-gate.d.ts +103 -0
  545. package/dist/src/integrations/tasks/verification-gate.d.ts.map +1 -0
  546. package/dist/src/integrations/tasks/verification-gate.js +193 -0
  547. package/dist/src/integrations/tasks/verification-gate.js.map +1 -0
  548. package/dist/src/integrations/tasks/work-log.d.ts +87 -0
  549. package/dist/src/integrations/tasks/work-log.d.ts.map +1 -0
  550. package/dist/src/integrations/tasks/work-log.js +275 -0
  551. package/dist/src/integrations/tasks/work-log.js.map +1 -0
  552. package/dist/src/integrations/utilities/capabilities.d.ts +160 -0
  553. package/dist/src/integrations/utilities/capabilities.d.ts.map +1 -0
  554. package/dist/src/integrations/utilities/capabilities.js +426 -0
  555. package/dist/src/integrations/utilities/capabilities.js.map +1 -0
  556. package/dist/src/integrations/utilities/diff-utils.d.ts +105 -0
  557. package/dist/src/integrations/utilities/diff-utils.d.ts.map +1 -0
  558. package/dist/src/integrations/utilities/diff-utils.js +497 -0
  559. package/dist/src/integrations/utilities/diff-utils.js.map +1 -0
  560. package/dist/src/integrations/utilities/environment-facts.d.ts +52 -0
  561. package/dist/src/integrations/utilities/environment-facts.d.ts.map +1 -0
  562. package/dist/src/integrations/utilities/environment-facts.js +84 -0
  563. package/dist/src/integrations/utilities/environment-facts.js.map +1 -0
  564. package/dist/src/integrations/utilities/file-change-tracker.d.ts +162 -0
  565. package/dist/src/integrations/utilities/file-change-tracker.d.ts.map +1 -0
  566. package/dist/src/integrations/utilities/file-change-tracker.js +538 -0
  567. package/dist/src/integrations/utilities/file-change-tracker.js.map +1 -0
  568. package/dist/src/integrations/utilities/graph-visualization.d.ts +72 -0
  569. package/dist/src/integrations/utilities/graph-visualization.d.ts.map +1 -0
  570. package/dist/src/integrations/utilities/graph-visualization.js +383 -0
  571. package/dist/src/integrations/utilities/graph-visualization.js.map +1 -0
  572. package/dist/src/integrations/utilities/hierarchical-config.d.ts +215 -0
  573. package/dist/src/integrations/utilities/hierarchical-config.d.ts.map +1 -0
  574. package/dist/src/integrations/utilities/hierarchical-config.js +504 -0
  575. package/dist/src/integrations/utilities/hierarchical-config.js.map +1 -0
  576. package/dist/src/integrations/utilities/hooks.d.ts +116 -0
  577. package/dist/src/integrations/utilities/hooks.d.ts.map +1 -0
  578. package/dist/src/integrations/utilities/hooks.js +410 -0
  579. package/dist/src/integrations/utilities/hooks.js.map +1 -0
  580. package/dist/src/integrations/utilities/ignore.d.ts +143 -0
  581. package/dist/src/integrations/utilities/ignore.d.ts.map +1 -0
  582. package/dist/src/integrations/utilities/ignore.js +417 -0
  583. package/dist/src/integrations/utilities/ignore.js.map +1 -0
  584. package/dist/src/integrations/utilities/image-renderer.d.ts +119 -0
  585. package/dist/src/integrations/utilities/image-renderer.d.ts.map +1 -0
  586. package/dist/src/integrations/utilities/image-renderer.js +306 -0
  587. package/dist/src/integrations/utilities/image-renderer.js.map +1 -0
  588. package/dist/src/integrations/utilities/logger.d.ts +104 -0
  589. package/dist/src/integrations/utilities/logger.d.ts.map +1 -0
  590. package/dist/src/integrations/utilities/logger.js +219 -0
  591. package/dist/src/integrations/utilities/logger.js.map +1 -0
  592. package/dist/src/integrations/utilities/memory.d.ts +116 -0
  593. package/dist/src/integrations/utilities/memory.d.ts.map +1 -0
  594. package/dist/src/integrations/utilities/memory.js +311 -0
  595. package/dist/src/integrations/utilities/memory.js.map +1 -0
  596. package/dist/src/integrations/utilities/observability.d.ts +162 -0
  597. package/dist/src/integrations/utilities/observability.d.ts.map +1 -0
  598. package/dist/src/integrations/utilities/observability.js +407 -0
  599. package/dist/src/integrations/utilities/observability.js.map +1 -0
  600. package/dist/src/integrations/utilities/openrouter-pricing.d.ts +67 -0
  601. package/dist/src/integrations/utilities/openrouter-pricing.d.ts.map +1 -0
  602. package/dist/src/integrations/utilities/openrouter-pricing.js +166 -0
  603. package/dist/src/integrations/utilities/openrouter-pricing.js.map +1 -0
  604. package/dist/src/integrations/utilities/react.d.ts +139 -0
  605. package/dist/src/integrations/utilities/react.d.ts.map +1 -0
  606. package/dist/src/integrations/utilities/react.js +273 -0
  607. package/dist/src/integrations/utilities/react.js.map +1 -0
  608. package/dist/src/integrations/utilities/retry.d.ts +132 -0
  609. package/dist/src/integrations/utilities/retry.d.ts.map +1 -0
  610. package/dist/src/integrations/utilities/retry.js +233 -0
  611. package/dist/src/integrations/utilities/retry.js.map +1 -0
  612. package/dist/src/integrations/utilities/routing.d.ts +118 -0
  613. package/dist/src/integrations/utilities/routing.d.ts.map +1 -0
  614. package/dist/src/integrations/utilities/routing.js +348 -0
  615. package/dist/src/integrations/utilities/routing.js.map +1 -0
  616. package/dist/src/integrations/utilities/rules.d.ts +131 -0
  617. package/dist/src/integrations/utilities/rules.d.ts.map +1 -0
  618. package/dist/src/integrations/utilities/rules.js +284 -0
  619. package/dist/src/integrations/utilities/rules.js.map +1 -0
  620. package/dist/src/integrations/utilities/sourcegraph.d.ts +169 -0
  621. package/dist/src/integrations/utilities/sourcegraph.d.ts.map +1 -0
  622. package/dist/src/integrations/utilities/sourcegraph.js +379 -0
  623. package/dist/src/integrations/utilities/sourcegraph.js.map +1 -0
  624. package/dist/src/integrations/utilities/thinking-strategy.d.ts +52 -0
  625. package/dist/src/integrations/utilities/thinking-strategy.d.ts.map +1 -0
  626. package/dist/src/integrations/utilities/thinking-strategy.js +129 -0
  627. package/dist/src/integrations/utilities/thinking-strategy.js.map +1 -0
  628. package/dist/src/integrations/utilities/thread-manager.d.ts +199 -0
  629. package/dist/src/integrations/utilities/thread-manager.d.ts.map +1 -0
  630. package/dist/src/integrations/utilities/thread-manager.js +357 -0
  631. package/dist/src/integrations/utilities/thread-manager.js.map +1 -0
  632. package/dist/src/integrations/utilities/token-estimate.d.ts +11 -0
  633. package/dist/src/integrations/utilities/token-estimate.d.ts.map +1 -0
  634. package/dist/src/integrations/utilities/token-estimate.js +14 -0
  635. package/dist/src/integrations/utilities/token-estimate.js.map +1 -0
  636. package/dist/src/main.js +92 -35
  637. package/dist/src/main.js.map +1 -1
  638. package/dist/src/modes/repl.d.ts.map +1 -1
  639. package/dist/src/modes/repl.js +60 -11
  640. package/dist/src/modes/repl.js.map +1 -1
  641. package/dist/src/modes/tui.d.ts.map +1 -1
  642. package/dist/src/modes/tui.js +57 -10
  643. package/dist/src/modes/tui.js.map +1 -1
  644. package/dist/src/modes.js +1 -1
  645. package/dist/src/modes.js.map +1 -1
  646. package/dist/src/observability/tracer.d.ts.map +1 -1
  647. package/dist/src/observability/tracer.js +2 -1
  648. package/dist/src/observability/tracer.js.map +1 -1
  649. package/dist/src/persistence/schema.d.ts +2 -0
  650. package/dist/src/persistence/schema.d.ts.map +1 -1
  651. package/dist/src/persistence/schema.js +42 -0
  652. package/dist/src/persistence/schema.js.map +1 -1
  653. package/dist/src/providers/adapters/anthropic.d.ts +6 -0
  654. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
  655. package/dist/src/providers/adapters/anthropic.js +101 -16
  656. package/dist/src/providers/adapters/anthropic.js.map +1 -1
  657. package/dist/src/providers/adapters/azure.d.ts +74 -0
  658. package/dist/src/providers/adapters/azure.d.ts.map +1 -0
  659. package/dist/src/providers/adapters/azure.js +354 -0
  660. package/dist/src/providers/adapters/azure.js.map +1 -0
  661. package/dist/src/providers/adapters/mock.d.ts +16 -2
  662. package/dist/src/providers/adapters/mock.d.ts.map +1 -1
  663. package/dist/src/providers/adapters/mock.js +44 -3
  664. package/dist/src/providers/adapters/mock.js.map +1 -1
  665. package/dist/src/providers/adapters/openai.d.ts +6 -1
  666. package/dist/src/providers/adapters/openai.d.ts.map +1 -1
  667. package/dist/src/providers/adapters/openai.js +41 -9
  668. package/dist/src/providers/adapters/openai.js.map +1 -1
  669. package/dist/src/providers/adapters/openrouter.d.ts +6 -0
  670. package/dist/src/providers/adapters/openrouter.d.ts.map +1 -1
  671. package/dist/src/providers/adapters/openrouter.js +83 -13
  672. package/dist/src/providers/adapters/openrouter.js.map +1 -1
  673. package/dist/src/providers/circuit-breaker.d.ts +1 -0
  674. package/dist/src/providers/circuit-breaker.d.ts.map +1 -1
  675. package/dist/src/providers/circuit-breaker.js.map +1 -1
  676. package/dist/src/providers/provider.d.ts.map +1 -1
  677. package/dist/src/providers/provider.js +2 -1
  678. package/dist/src/providers/provider.js.map +1 -1
  679. package/dist/src/providers/resilient-provider.d.ts.map +1 -1
  680. package/dist/src/providers/resilient-provider.js +2 -1
  681. package/dist/src/providers/resilient-provider.js.map +1 -1
  682. package/dist/src/providers/types.d.ts +23 -2
  683. package/dist/src/providers/types.d.ts.map +1 -1
  684. package/dist/src/session-picker.d.ts +1 -1
  685. package/dist/src/session-picker.d.ts.map +1 -1
  686. package/dist/src/session-picker.js +40 -5
  687. package/dist/src/session-picker.js.map +1 -1
  688. package/dist/src/shared/budget-tracker.d.ts +65 -0
  689. package/dist/src/shared/budget-tracker.d.ts.map +1 -0
  690. package/dist/src/shared/budget-tracker.js +128 -0
  691. package/dist/src/shared/budget-tracker.js.map +1 -0
  692. package/dist/src/shared/context-engine.d.ts +64 -0
  693. package/dist/src/shared/context-engine.d.ts.map +1 -0
  694. package/dist/src/shared/context-engine.js +117 -0
  695. package/dist/src/shared/context-engine.js.map +1 -0
  696. package/dist/src/shared/index.d.ts +12 -0
  697. package/dist/src/shared/index.d.ts.map +1 -0
  698. package/dist/src/shared/index.js +12 -0
  699. package/dist/src/shared/index.js.map +1 -0
  700. package/dist/src/shared/persistence.d.ts +57 -0
  701. package/dist/src/shared/persistence.d.ts.map +1 -0
  702. package/dist/src/shared/persistence.js +168 -0
  703. package/dist/src/shared/persistence.js.map +1 -0
  704. package/dist/src/shared/shared-context-state.d.ts +89 -0
  705. package/dist/src/shared/shared-context-state.d.ts.map +1 -0
  706. package/dist/src/shared/shared-context-state.js +175 -0
  707. package/dist/src/shared/shared-context-state.js.map +1 -0
  708. package/dist/src/shared/shared-economics-state.d.ts +61 -0
  709. package/dist/src/shared/shared-economics-state.d.ts.map +1 -0
  710. package/dist/src/shared/shared-economics-state.js +100 -0
  711. package/dist/src/shared/shared-economics-state.js.map +1 -0
  712. package/dist/src/tools/agent.d.ts +1 -1
  713. package/dist/src/tools/agent.d.ts.map +1 -1
  714. package/dist/src/tools/bash.d.ts +3 -3
  715. package/dist/src/tools/bash.d.ts.map +1 -1
  716. package/dist/src/tools/bash.js +2 -1
  717. package/dist/src/tools/bash.js.map +1 -1
  718. package/dist/src/tools/file.d.ts +3 -3
  719. package/dist/src/tools/file.js +1 -1
  720. package/dist/src/tools/file.js.map +1 -1
  721. package/dist/src/tools/permission.d.ts.map +1 -1
  722. package/dist/src/tools/permission.js +7 -6
  723. package/dist/src/tools/permission.js.map +1 -1
  724. package/dist/src/tools/registry.d.ts +1 -1
  725. package/dist/src/tools/registry.d.ts.map +1 -1
  726. package/dist/src/tools/registry.js +1 -1
  727. package/dist/src/tools/registry.js.map +1 -1
  728. package/dist/src/tools/tasks.d.ts +1 -1
  729. package/dist/src/tools/tasks.d.ts.map +1 -1
  730. package/dist/src/tools/types.d.ts +1 -0
  731. package/dist/src/tools/types.d.ts.map +1 -1
  732. package/dist/src/tools/types.js.map +1 -1
  733. package/dist/src/tools/undo.d.ts +1 -1
  734. package/dist/src/tools/undo.d.ts.map +1 -1
  735. package/dist/src/tracing/cache-boundary-tracker.d.ts.map +1 -1
  736. package/dist/src/tracing/cache-boundary-tracker.js +2 -2
  737. package/dist/src/tracing/cache-boundary-tracker.js.map +1 -1
  738. package/dist/src/tracing/trace-collector.d.ts +147 -0
  739. package/dist/src/tracing/trace-collector.d.ts.map +1 -1
  740. package/dist/src/tracing/trace-collector.js +138 -7
  741. package/dist/src/tracing/trace-collector.js.map +1 -1
  742. package/dist/src/tracing/types.d.ts +112 -1
  743. package/dist/src/tracing/types.d.ts.map +1 -1
  744. package/dist/src/tracing/types.js.map +1 -1
  745. package/dist/src/tricks/failure-evidence.d.ts.map +1 -1
  746. package/dist/src/tricks/failure-evidence.js +2 -1
  747. package/dist/src/tricks/failure-evidence.js.map +1 -1
  748. package/dist/src/tricks/recitation.d.ts.map +1 -1
  749. package/dist/src/tricks/recitation.js +2 -1
  750. package/dist/src/tricks/recitation.js.map +1 -1
  751. package/dist/src/tricks/recursive-context.d.ts.map +1 -1
  752. package/dist/src/tricks/recursive-context.js +2 -2
  753. package/dist/src/tricks/recursive-context.js.map +1 -1
  754. package/dist/src/tricks/reversible-compaction.d.ts.map +1 -1
  755. package/dist/src/tricks/reversible-compaction.js +6 -2
  756. package/dist/src/tricks/reversible-compaction.js.map +1 -1
  757. package/dist/src/tui/app.d.ts +16 -3
  758. package/dist/src/tui/app.d.ts.map +1 -1
  759. package/dist/src/tui/app.js +211 -25
  760. package/dist/src/tui/app.js.map +1 -1
  761. package/dist/src/tui/components/CollapsibleDiffView.d.ts +1 -1
  762. package/dist/src/tui/components/CollapsibleDiffView.d.ts.map +1 -1
  763. package/dist/src/tui/components/DiagnosticsPanel.d.ts +24 -0
  764. package/dist/src/tui/components/DiagnosticsPanel.d.ts.map +1 -0
  765. package/dist/src/tui/components/DiagnosticsPanel.js +47 -0
  766. package/dist/src/tui/components/DiagnosticsPanel.js.map +1 -0
  767. package/dist/src/tui/components/DiffView.d.ts +1 -1
  768. package/dist/src/tui/components/DiffView.d.ts.map +1 -1
  769. package/dist/src/tui/components/ErrorBoundary.d.ts.map +1 -1
  770. package/dist/src/tui/components/ErrorBoundary.js +3 -2
  771. package/dist/src/tui/components/ErrorBoundary.js.map +1 -1
  772. package/dist/src/tui/components/TasksPanel.d.ts +1 -1
  773. package/dist/src/tui/components/TasksPanel.d.ts.map +1 -1
  774. package/dist/src/tui/event-display.d.ts.map +1 -1
  775. package/dist/src/tui/event-display.js +36 -62
  776. package/dist/src/tui/event-display.js.map +1 -1
  777. package/dist/src/tui/index.d.ts +4 -0
  778. package/dist/src/tui/index.d.ts.map +1 -1
  779. package/dist/src/tui/index.js +17 -0
  780. package/dist/src/tui/index.js.map +1 -1
  781. package/dist/src/tui/transparency-aggregator.d.ts +13 -0
  782. package/dist/src/tui/transparency-aggregator.d.ts.map +1 -1
  783. package/dist/src/tui/transparency-aggregator.js +21 -0
  784. package/dist/src/tui/transparency-aggregator.js.map +1 -1
  785. package/dist/src/types.d.ts +170 -3
  786. package/dist/src/types.d.ts.map +1 -1
  787. package/package.json +18 -3
@@ -0,0 +1,676 @@
1
+ /**
2
+ * SQLite Session Store
3
+ *
4
+ * Alternative backend for session persistence using SQLite.
5
+ * Provides better query performance and ACID guarantees.
6
+ *
7
+ * Implementation is split across repository modules:
8
+ * - session-repository.ts: Session CRUD, checkpoints, costs, hierarchy, plans, permissions, manifest
9
+ * - goal-repository.ts: Goals + junctures
10
+ * - worker-repository.ts: Worker results + artifacts
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const store = await createSQLiteStore({ dbPath: '.agent/sessions.db' });
15
+ * await store.createSession('My Session');
16
+ * await store.appendMessage({ role: 'user', content: 'Hello' });
17
+ * ```
18
+ */
19
+ import Database from 'better-sqlite3';
20
+ import { join, dirname } from 'node:path';
21
+ import { mkdir } from 'node:fs/promises';
22
+ import { existsSync, mkdirSync } from 'node:fs';
23
+ import { applyMigrations, getMigrationStatus, detectFeatures, } from '../../persistence/schema.js';
24
+ // Repository modules (extracted implementation)
25
+ import * as sessionRepo from './session-repository.js';
26
+ import * as goalRepo from './goal-repository.js';
27
+ import * as workerRepo from './worker-repository.js';
28
+ import * as codebaseRepo from './codebase-repository.js';
29
+ // =============================================================================
30
+ // SQLITE STORE
31
+ // =============================================================================
32
+ /**
33
+ * SQLite-backed session store.
34
+ */
35
+ export class SQLiteStore {
36
+ db;
37
+ config;
38
+ currentSessionId = null;
39
+ listeners = [];
40
+ /** Available schema features (detected after migration) */
41
+ features = {
42
+ core: false,
43
+ costs: false,
44
+ hierarchy: false,
45
+ compaction: false,
46
+ fileChanges: false,
47
+ goals: false,
48
+ workerResults: false,
49
+ pendingPlans: false,
50
+ deadLetterQueue: false,
51
+ rememberedPermissions: false,
52
+ codebaseAnalysis: false,
53
+ };
54
+ // Prepared statements for performance
55
+ stmts;
56
+ constructor(config = {}) {
57
+ this.config = {
58
+ baseDir: config.baseDir || '.agent/sessions',
59
+ dbPath: config.dbPath || join(config.baseDir || '.agent/sessions', 'sessions.db'),
60
+ autoSave: config.autoSave ?? true,
61
+ maxSessions: config.maxSessions || 50,
62
+ walMode: config.walMode ?? true,
63
+ };
64
+ // Ensure directory exists BEFORE opening database
65
+ // (better-sqlite3 requires the parent directory to exist)
66
+ const dbDir = dirname(this.config.dbPath);
67
+ if (!existsSync(dbDir)) {
68
+ mkdirSync(dbDir, { recursive: true });
69
+ }
70
+ // Initialize database
71
+ this.db = new Database(this.config.dbPath);
72
+ // Enable WAL mode for better concurrent access
73
+ if (this.config.walMode) {
74
+ this.db.pragma('journal_mode = WAL');
75
+ }
76
+ // Enable foreign keys
77
+ this.db.pragma('foreign_keys = ON');
78
+ }
79
+ /**
80
+ * Get the deps object for repository modules.
81
+ */
82
+ get deps() {
83
+ return {
84
+ db: this.db,
85
+ stmts: this.stmts,
86
+ features: this.features,
87
+ config: this.config,
88
+ getCurrentSessionId: () => this.currentSessionId,
89
+ setCurrentSessionId: (id) => { this.currentSessionId = id; },
90
+ emit: (event) => this.emit(event),
91
+ ensureSession: () => { this.createSession(); },
92
+ };
93
+ }
94
+ /**
95
+ * Initialize the store (create tables, prepare statements).
96
+ */
97
+ async initialize() {
98
+ // Ensure directory exists
99
+ const dbDir = dirname(this.config.dbPath);
100
+ if (!existsSync(dbDir)) {
101
+ await mkdir(dbDir, { recursive: true });
102
+ }
103
+ // Apply embedded migrations (no file I/O needed)
104
+ const isDebug = process.env.DEBUG || process.argv.includes('--debug');
105
+ if (isDebug) {
106
+ const status = getMigrationStatus(this.db);
107
+ process.stderr.write(`[DEBUG] [SQLite] DB version: ${status.currentVersion}, latest: ${status.latestVersion}, pending: ${status.pendingCount}\n`);
108
+ }
109
+ const result = applyMigrations(this.db);
110
+ if (isDebug && result.applied > 0) {
111
+ process.stderr.write(`[DEBUG] [SQLite] Applied ${result.applied} migrations: ${result.appliedMigrations.join(', ')}\n`);
112
+ }
113
+ // Detect available features after migrations
114
+ this.features = detectFeatures(this.db);
115
+ if (isDebug) {
116
+ const enabled = Object.entries(this.features)
117
+ .filter(([, v]) => v)
118
+ .map(([k]) => k);
119
+ process.stderr.write(`[DEBUG] [SQLite] Features: ${enabled.join(', ')}\n`);
120
+ }
121
+ // Prepare statements for available features
122
+ this.prepareStatements();
123
+ }
124
+ /**
125
+ * Prepare SQL statements for reuse.
126
+ */
127
+ prepareStatements() {
128
+ this.stmts = {
129
+ insertSession: this.db.prepare(`
130
+ INSERT INTO sessions (id, name, workspace_path, workspace_fingerprint, created_at, last_active_at, message_count, token_count)
131
+ VALUES (@id, @name, @workspacePath, @workspaceFingerprint, @createdAt, @lastActiveAt, @messageCount, @tokenCount)
132
+ `),
133
+ updateSession: this.db.prepare(`
134
+ UPDATE sessions SET
135
+ name = COALESCE(@name, name),
136
+ last_active_at = COALESCE(@lastActiveAt, last_active_at),
137
+ message_count = COALESCE(@messageCount, message_count),
138
+ token_count = COALESCE(@tokenCount, token_count),
139
+ summary = COALESCE(@summary, summary)
140
+ WHERE id = @id
141
+ `),
142
+ deleteSession: this.db.prepare(`DELETE FROM sessions WHERE id = ?`),
143
+ getSession: this.db.prepare(`
144
+ SELECT id, name, created_at as createdAt,
145
+ workspace_path as workspacePath, workspace_fingerprint as workspaceFingerprint,
146
+ COALESCE(last_active_at, created_at) as lastActiveAt,
147
+ message_count as messageCount, token_count as tokenCount, summary,
148
+ parent_session_id as parentSessionId, session_type as sessionType,
149
+ prompt_tokens as promptTokens, completion_tokens as completionTokens,
150
+ cost_usd as costUsd
151
+ FROM sessions WHERE id = ?
152
+ `),
153
+ listSessions: this.db.prepare(`
154
+ SELECT id, name, created_at as createdAt,
155
+ workspace_path as workspacePath, workspace_fingerprint as workspaceFingerprint,
156
+ COALESCE(last_active_at, created_at) as lastActiveAt,
157
+ message_count as messageCount, token_count as tokenCount, summary,
158
+ parent_session_id as parentSessionId, session_type as sessionType,
159
+ prompt_tokens as promptTokens, completion_tokens as completionTokens,
160
+ cost_usd as costUsd
161
+ FROM sessions ORDER BY COALESCE(last_active_at, created_at) DESC
162
+ `),
163
+ insertEntry: this.db.prepare(`
164
+ INSERT INTO entries (session_id, timestamp, type, data)
165
+ VALUES (@sessionId, @timestamp, @type, @data)
166
+ `),
167
+ getEntries: this.db.prepare(`
168
+ SELECT timestamp, type, data FROM entries
169
+ WHERE session_id = ? ORDER BY id ASC
170
+ `),
171
+ insertToolCall: this.db.prepare(`
172
+ INSERT INTO tool_calls (id, session_id, name, arguments, status, created_at)
173
+ VALUES (@id, @sessionId, @name, @arguments, @status, @createdAt)
174
+ `),
175
+ updateToolCall: this.db.prepare(`
176
+ UPDATE tool_calls SET
177
+ status = @status,
178
+ result = @result,
179
+ error = @error,
180
+ duration_ms = @durationMs,
181
+ completed_at = @completedAt
182
+ WHERE id = @id
183
+ `),
184
+ insertCheckpoint: this.db.prepare(`
185
+ INSERT INTO checkpoints (id, session_id, state_json, created_at, description)
186
+ VALUES (@id, @sessionId, @stateJson, @createdAt, @description)
187
+ `),
188
+ getLatestCheckpoint: this.db.prepare(`
189
+ SELECT id, session_id as sessionId, state_json as stateJson,
190
+ created_at as createdAt, description
191
+ FROM checkpoints WHERE session_id = ?
192
+ ORDER BY created_at DESC, rowid DESC LIMIT 1
193
+ `),
194
+ // Cost tracking statements
195
+ insertUsageLog: this.db.prepare(`
196
+ INSERT INTO usage_logs (session_id, model_id, prompt_tokens, completion_tokens, cost_usd, timestamp)
197
+ VALUES (@sessionId, @modelId, @promptTokens, @completionTokens, @costUsd, @timestamp)
198
+ `),
199
+ updateSessionCosts: this.db.prepare(`
200
+ UPDATE sessions SET
201
+ prompt_tokens = COALESCE(prompt_tokens, 0) + @promptTokens,
202
+ completion_tokens = COALESCE(completion_tokens, 0) + @completionTokens,
203
+ cost_usd = COALESCE(cost_usd, 0) + @costUsd
204
+ WHERE id = @sessionId
205
+ `),
206
+ getSessionUsage: this.db.prepare(`
207
+ SELECT
208
+ COALESCE(SUM(prompt_tokens), 0) as promptTokens,
209
+ COALESCE(SUM(completion_tokens), 0) as completionTokens,
210
+ COALESCE(SUM(cost_usd), 0) as costUsd
211
+ FROM usage_logs WHERE session_id = ?
212
+ `),
213
+ // Session hierarchy statements
214
+ insertChildSession: this.db.prepare(`
215
+ INSERT INTO sessions (id, name, workspace_path, workspace_fingerprint, created_at, last_active_at, message_count, token_count, parent_session_id, session_type)
216
+ VALUES (@id, @name, @workspacePath, @workspaceFingerprint, @createdAt, @lastActiveAt, @messageCount, @tokenCount, @parentSessionId, @sessionType)
217
+ `),
218
+ getChildSessions: this.db.prepare(`
219
+ SELECT id, name, created_at as createdAt, last_active_at as lastActiveAt,
220
+ workspace_path as workspacePath, workspace_fingerprint as workspaceFingerprint,
221
+ message_count as messageCount, token_count as tokenCount, summary,
222
+ parent_session_id as parentSessionId, session_type as sessionType,
223
+ prompt_tokens as promptTokens, completion_tokens as completionTokens,
224
+ cost_usd as costUsd
225
+ FROM sessions WHERE parent_session_id = ?
226
+ ORDER BY created_at ASC
227
+ `),
228
+ getSessionTree: this.db.prepare(`
229
+ WITH RECURSIVE session_tree AS (
230
+ SELECT id, name, created_at as createdAt, last_active_at as lastActiveAt,
231
+ workspace_path as workspacePath, workspace_fingerprint as workspaceFingerprint,
232
+ message_count as messageCount, token_count as tokenCount, summary,
233
+ parent_session_id as parentSessionId, session_type as sessionType,
234
+ prompt_tokens as promptTokens, completion_tokens as completionTokens,
235
+ cost_usd as costUsd, 0 as depth
236
+ FROM sessions WHERE id = ?
237
+ UNION ALL
238
+ SELECT s.id, s.name, s.created_at, s.last_active_at,
239
+ s.workspace_path, s.workspace_fingerprint,
240
+ s.message_count, s.token_count, s.summary,
241
+ s.parent_session_id, s.session_type,
242
+ s.prompt_tokens, s.completion_tokens,
243
+ s.cost_usd, st.depth + 1
244
+ FROM sessions s
245
+ INNER JOIN session_tree st ON s.parent_session_id = st.id
246
+ )
247
+ SELECT * FROM session_tree ORDER BY depth, createdAt ASC
248
+ `),
249
+ };
250
+ // Goal integrity statements - only prepare if feature is available
251
+ if (this.features.goals) {
252
+ this.stmts.insertGoal = this.db.prepare(`
253
+ INSERT INTO goals (id, session_id, goal_text, status, priority, parent_goal_id,
254
+ progress_current, progress_total, created_at, updated_at, metadata)
255
+ VALUES (@id, @sessionId, @goalText, @status, @priority, @parentGoalId,
256
+ @progressCurrent, @progressTotal, @createdAt, @updatedAt, @metadata)
257
+ `);
258
+ this.stmts.updateGoal = this.db.prepare(`
259
+ UPDATE goals SET
260
+ goal_text = COALESCE(@goalText, goal_text),
261
+ status = COALESCE(@status, status),
262
+ priority = COALESCE(@priority, priority),
263
+ progress_current = COALESCE(@progressCurrent, progress_current),
264
+ progress_total = COALESCE(@progressTotal, progress_total),
265
+ updated_at = @updatedAt,
266
+ completed_at = @completedAt,
267
+ metadata = COALESCE(@metadata, metadata)
268
+ WHERE id = @id
269
+ `);
270
+ this.stmts.getGoal = this.db.prepare(`
271
+ SELECT id, session_id as sessionId, goal_text as goalText, status, priority,
272
+ parent_goal_id as parentGoalId, progress_current as progressCurrent,
273
+ progress_total as progressTotal, created_at as createdAt,
274
+ updated_at as updatedAt, completed_at as completedAt, metadata
275
+ FROM goals WHERE id = ?
276
+ `);
277
+ this.stmts.listGoals = this.db.prepare(`
278
+ SELECT id, session_id as sessionId, goal_text as goalText, status, priority,
279
+ parent_goal_id as parentGoalId, progress_current as progressCurrent,
280
+ progress_total as progressTotal, created_at as createdAt,
281
+ updated_at as updatedAt, completed_at as completedAt, metadata
282
+ FROM goals WHERE session_id = ? ORDER BY priority ASC, created_at ASC
283
+ `);
284
+ this.stmts.listActiveGoals = this.db.prepare(`
285
+ SELECT id, session_id as sessionId, goal_text as goalText, status, priority,
286
+ parent_goal_id as parentGoalId, progress_current as progressCurrent,
287
+ progress_total as progressTotal, created_at as createdAt,
288
+ updated_at as updatedAt, completed_at as completedAt, metadata
289
+ FROM goals WHERE session_id = ? AND status = 'active'
290
+ ORDER BY priority ASC, created_at ASC
291
+ `);
292
+ this.stmts.insertJuncture = this.db.prepare(`
293
+ INSERT INTO junctures (session_id, goal_id, type, description, outcome,
294
+ importance, context, created_at)
295
+ VALUES (@sessionId, @goalId, @type, @description, @outcome,
296
+ @importance, @context, @createdAt)
297
+ `);
298
+ this.stmts.listJunctures = this.db.prepare(`
299
+ SELECT id, session_id as sessionId, goal_id as goalId, type, description,
300
+ outcome, importance, context, created_at as createdAt
301
+ FROM junctures WHERE session_id = ? ORDER BY created_at DESC
302
+ `);
303
+ }
304
+ // Worker result statements - only prepare if feature is available
305
+ if (this.features.workerResults) {
306
+ this.stmts.insertWorkerResult = this.db.prepare(`
307
+ INSERT INTO worker_results (id, session_id, worker_id, task_description, model_used,
308
+ status, summary, full_output, artifacts, metrics, error,
309
+ created_at, completed_at)
310
+ VALUES (@id, @sessionId, @workerId, @taskDescription, @modelUsed,
311
+ @status, @summary, @fullOutput, @artifacts, @metrics, @error,
312
+ @createdAt, @completedAt)
313
+ `);
314
+ this.stmts.updateWorkerResult = this.db.prepare(`
315
+ UPDATE worker_results SET
316
+ status = COALESCE(@status, status),
317
+ summary = COALESCE(@summary, summary),
318
+ full_output = COALESCE(@fullOutput, full_output),
319
+ artifacts = COALESCE(@artifacts, artifacts),
320
+ metrics = COALESCE(@metrics, metrics),
321
+ error = @error,
322
+ completed_at = @completedAt
323
+ WHERE id = @id
324
+ `);
325
+ this.stmts.getWorkerResult = this.db.prepare(`
326
+ SELECT id, session_id as sessionId, worker_id as workerId,
327
+ task_description as taskDescription, model_used as modelUsed,
328
+ status, summary, full_output as fullOutput, artifacts, metrics,
329
+ error, created_at as createdAt, completed_at as completedAt
330
+ FROM worker_results WHERE id = ?
331
+ `);
332
+ this.stmts.listWorkerResults = this.db.prepare(`
333
+ SELECT id, session_id as sessionId, worker_id as workerId,
334
+ task_description as taskDescription, model_used as modelUsed,
335
+ status, summary, full_output as fullOutput, artifacts, metrics,
336
+ error, created_at as createdAt, completed_at as completedAt
337
+ FROM worker_results WHERE session_id = ?
338
+ ORDER BY created_at DESC
339
+ `);
340
+ this.stmts.listPendingWorkerResults = this.db.prepare(`
341
+ SELECT id, session_id as sessionId, worker_id as workerId,
342
+ task_description as taskDescription, model_used as modelUsed,
343
+ status, summary, created_at as createdAt
344
+ FROM worker_results WHERE session_id = ? AND status = 'pending'
345
+ ORDER BY created_at ASC
346
+ `);
347
+ }
348
+ // Pending plan statements (optional - only if pendingPlans feature available)
349
+ if (this.features.pendingPlans) {
350
+ this.stmts.insertPendingPlan = this.db.prepare(`
351
+ INSERT INTO pending_plans (id, session_id, task, proposed_changes, exploration_summary, status, created_at, updated_at)
352
+ VALUES (@id, @sessionId, @task, @proposedChanges, @explorationSummary, @status, @createdAt, @updatedAt)
353
+ `);
354
+ this.stmts.updatePendingPlan = this.db.prepare(`
355
+ UPDATE pending_plans SET
356
+ proposed_changes = @proposedChanges,
357
+ exploration_summary = @explorationSummary,
358
+ status = @status,
359
+ updated_at = @updatedAt
360
+ WHERE id = @id
361
+ `);
362
+ this.stmts.getPendingPlan = this.db.prepare(`
363
+ SELECT id, session_id as sessionId, task, proposed_changes as proposedChanges,
364
+ exploration_summary as explorationSummary, status, created_at as createdAt, updated_at as updatedAt
365
+ FROM pending_plans WHERE session_id = ? AND status = 'pending'
366
+ ORDER BY created_at DESC LIMIT 1
367
+ `);
368
+ this.stmts.deletePendingPlan = this.db.prepare(`
369
+ DELETE FROM pending_plans WHERE id = ?
370
+ `);
371
+ }
372
+ // Remembered permissions statements (optional - only if feature available)
373
+ if (this.features.rememberedPermissions) {
374
+ this.stmts.insertRememberedPermission = this.db.prepare(`
375
+ INSERT OR REPLACE INTO remembered_permissions (tool_name, pattern, decision, created_at)
376
+ VALUES (@toolName, @pattern, @decision, @createdAt)
377
+ `);
378
+ this.stmts.getRememberedPermission = this.db.prepare(`
379
+ SELECT tool_name as toolName, pattern, decision, created_at as createdAt
380
+ FROM remembered_permissions
381
+ WHERE tool_name = ? AND (pattern = ? OR pattern IS NULL)
382
+ ORDER BY pattern IS NULL ASC
383
+ LIMIT 1
384
+ `);
385
+ this.stmts.listRememberedPermissions = this.db.prepare(`
386
+ SELECT tool_name as toolName, pattern, decision, created_at as createdAt
387
+ FROM remembered_permissions
388
+ ORDER BY tool_name, pattern
389
+ `);
390
+ this.stmts.deleteRememberedPermission = this.db.prepare(`
391
+ DELETE FROM remembered_permissions WHERE tool_name = ? AND (pattern = ? OR (? IS NULL AND pattern IS NULL))
392
+ `);
393
+ }
394
+ }
395
+ // ===========================================================================
396
+ // SESSION MANAGEMENT (delegates to session-repository.ts)
397
+ // ===========================================================================
398
+ createSession(name) {
399
+ return sessionRepo.createSession(this.deps, name);
400
+ }
401
+ getCurrentSessionId() {
402
+ return this.currentSessionId;
403
+ }
404
+ setCurrentSessionId(sessionId) {
405
+ this.currentSessionId = sessionId;
406
+ }
407
+ appendEntry(entry) {
408
+ sessionRepo.appendEntry(this.deps, entry);
409
+ }
410
+ appendMessage(message) {
411
+ sessionRepo.appendMessage(this.deps, message);
412
+ }
413
+ appendToolCall(toolCall) {
414
+ sessionRepo.appendToolCall(this.deps, toolCall);
415
+ }
416
+ appendToolResult(callId, result) {
417
+ sessionRepo.appendToolResult(this.deps, callId, result);
418
+ }
419
+ appendCompaction(summary, compactedCount) {
420
+ sessionRepo.appendCompaction(this.deps, summary, compactedCount);
421
+ }
422
+ loadSession(sessionId) {
423
+ return sessionRepo.loadSession(this.deps, sessionId);
424
+ }
425
+ loadSessionMessages(sessionId) {
426
+ return sessionRepo.loadSessionMessages(this.deps, sessionId);
427
+ }
428
+ deleteSession(sessionId) {
429
+ sessionRepo.deleteSession(this.deps, sessionId);
430
+ }
431
+ listSessions() {
432
+ return sessionRepo.listSessions(this.deps);
433
+ }
434
+ getRecentSession() {
435
+ return sessionRepo.getRecentSession(this.deps);
436
+ }
437
+ getSessionMetadata(sessionId) {
438
+ return sessionRepo.getSessionMetadata(this.deps, sessionId);
439
+ }
440
+ updateSessionMetadata(sessionId, updates) {
441
+ sessionRepo.updateSessionMetadata(this.deps, sessionId, updates);
442
+ }
443
+ // ===========================================================================
444
+ // SQLITE-SPECIFIC FEATURES (delegates to session-repository.ts)
445
+ // ===========================================================================
446
+ saveCheckpoint(state, description) {
447
+ return sessionRepo.saveCheckpoint(this.deps, state, description);
448
+ }
449
+ loadLatestCheckpoint(sessionId) {
450
+ return sessionRepo.loadLatestCheckpoint(this.deps, sessionId);
451
+ }
452
+ query(sql, params = []) {
453
+ return sessionRepo.query(this.deps, sql, params);
454
+ }
455
+ getStats() {
456
+ return sessionRepo.getStats(this.deps);
457
+ }
458
+ getDatabase() {
459
+ return this.db;
460
+ }
461
+ // ===========================================================================
462
+ // COST TRACKING (delegates to session-repository.ts)
463
+ // ===========================================================================
464
+ logUsage(usage) {
465
+ sessionRepo.logUsage(this.deps, usage);
466
+ }
467
+ getSessionUsage(sessionId) {
468
+ return sessionRepo.getSessionUsage(this.deps, sessionId);
469
+ }
470
+ // ===========================================================================
471
+ // SESSION HIERARCHY (delegates to session-repository.ts)
472
+ // ===========================================================================
473
+ createChildSession(parentId, name, type = 'subagent') {
474
+ return sessionRepo.createChildSession(this.deps, parentId, name, type);
475
+ }
476
+ getChildSessions(parentId) {
477
+ return sessionRepo.getChildSessions(this.deps, parentId);
478
+ }
479
+ getSessionTree(rootId) {
480
+ return sessionRepo.getSessionTree(this.deps, rootId);
481
+ }
482
+ // ===========================================================================
483
+ // GOAL INTEGRITY (delegates to goal-repository.ts)
484
+ // ===========================================================================
485
+ hasGoalsFeature() {
486
+ return this.features.goals;
487
+ }
488
+ createGoal(goalText, options = {}) {
489
+ return goalRepo.createGoal(this.deps, goalText, options);
490
+ }
491
+ updateGoal(goalId, updates) {
492
+ goalRepo.updateGoal(this.deps, goalId, updates);
493
+ }
494
+ completeGoal(goalId) {
495
+ goalRepo.completeGoal(this.deps, goalId);
496
+ }
497
+ getGoal(goalId) {
498
+ return goalRepo.getGoal(this.deps, goalId);
499
+ }
500
+ listGoals(sessionId) {
501
+ return goalRepo.listGoals(this.deps, sessionId);
502
+ }
503
+ listActiveGoals(sessionId) {
504
+ return goalRepo.listActiveGoals(this.deps, sessionId);
505
+ }
506
+ getGoalsSummary(sessionId) {
507
+ return goalRepo.getGoalsSummary(this.deps, sessionId);
508
+ }
509
+ logJuncture(type, description, options = {}) {
510
+ return goalRepo.logJuncture(this.deps, type, description, options);
511
+ }
512
+ listJunctures(sessionId, limit) {
513
+ return goalRepo.listJunctures(this.deps, sessionId, limit);
514
+ }
515
+ getJuncturesSummary(sessionId, limit = 5) {
516
+ return goalRepo.getJuncturesSummary(this.deps, sessionId, limit);
517
+ }
518
+ // ===========================================================================
519
+ // WORKER RESULTS (delegates to worker-repository.ts)
520
+ // ===========================================================================
521
+ hasWorkerResultsFeature() {
522
+ return this.features.workerResults;
523
+ }
524
+ createWorkerResult(workerId, taskDescription, modelUsed) {
525
+ return workerRepo.createWorkerResult(this.deps, workerId, taskDescription, modelUsed);
526
+ }
527
+ completeWorkerResult(resultId, output) {
528
+ return workerRepo.completeWorkerResult(this.deps, resultId, output);
529
+ }
530
+ failWorkerResult(resultId, error) {
531
+ workerRepo.failWorkerResult(this.deps, resultId, error);
532
+ }
533
+ getWorkerResult(resultId) {
534
+ return workerRepo.getWorkerResult(this.deps, resultId);
535
+ }
536
+ getWorkerResultRef(resultId) {
537
+ return workerRepo.getWorkerResultRef(this.deps, resultId);
538
+ }
539
+ listWorkerResults(sessionId) {
540
+ return workerRepo.listWorkerResults(this.deps, sessionId);
541
+ }
542
+ listPendingWorkerResults(sessionId) {
543
+ return workerRepo.listPendingWorkerResults(this.deps, sessionId);
544
+ }
545
+ getWorkerResultsSummary(sessionId) {
546
+ return workerRepo.getWorkerResultsSummary(this.deps, sessionId);
547
+ }
548
+ // ===========================================================================
549
+ // PENDING PLANS (delegates to session-repository.ts)
550
+ // ===========================================================================
551
+ hasPendingPlansFeature() {
552
+ return this.features.pendingPlans;
553
+ }
554
+ savePendingPlan(plan, sessionId) {
555
+ sessionRepo.savePendingPlan(this.deps, plan, sessionId);
556
+ }
557
+ getPendingPlan(sessionId) {
558
+ return sessionRepo.getPendingPlan(this.deps, sessionId);
559
+ }
560
+ updatePlanStatus(planId, status) {
561
+ sessionRepo.updatePlanStatus(this.deps, planId, status);
562
+ }
563
+ deletePendingPlan(planId) {
564
+ sessionRepo.deletePendingPlan(this.deps, planId);
565
+ }
566
+ // ===========================================================================
567
+ // SESSION MANIFEST (delegates to session-repository.ts)
568
+ // ===========================================================================
569
+ exportSessionManifest(sessionId) {
570
+ return sessionRepo.exportSessionManifest(this.deps, this.manifestCallbacks, sessionId);
571
+ }
572
+ exportSessionMarkdown(sessionId) {
573
+ return sessionRepo.exportSessionMarkdown(this.deps, this.manifestCallbacks, sessionId);
574
+ }
575
+ /** Callbacks for manifest export (bridges to goal/worker repositories). */
576
+ get manifestCallbacks() {
577
+ return {
578
+ listGoals: (sid) => this.listGoals(sid),
579
+ listJunctures: (sid, limit) => this.listJunctures(sid, limit),
580
+ listWorkerResults: (sid) => this.listWorkerResults(sid),
581
+ };
582
+ }
583
+ // ===========================================================================
584
+ // MIGRATION (delegates to session-repository.ts)
585
+ // ===========================================================================
586
+ async migrateFromJSONL(jsonlDir) {
587
+ return sessionRepo.migrateFromJSONL(this.deps, jsonlDir);
588
+ }
589
+ // ===========================================================================
590
+ // REMEMBERED PERMISSIONS (delegates to session-repository.ts)
591
+ // ===========================================================================
592
+ hasRememberedPermissionsFeature() {
593
+ return this.features.rememberedPermissions;
594
+ }
595
+ rememberPermission(toolName, decision, pattern) {
596
+ sessionRepo.rememberPermission(this.deps, toolName, decision, pattern);
597
+ }
598
+ getRememberedPermission(toolName, pattern) {
599
+ return sessionRepo.getRememberedPermission(this.deps, toolName, pattern);
600
+ }
601
+ listRememberedPermissions() {
602
+ return sessionRepo.listRememberedPermissions(this.deps);
603
+ }
604
+ forgetPermission(toolName, pattern) {
605
+ sessionRepo.forgetPermission(this.deps, toolName, pattern);
606
+ }
607
+ clearRememberedPermissions(toolName) {
608
+ sessionRepo.clearRememberedPermissions(this.deps, toolName);
609
+ }
610
+ // ===========================================================================
611
+ // LIFECYCLE
612
+ // ===========================================================================
613
+ /**
614
+ * Subscribe to events.
615
+ */
616
+ on(listener) {
617
+ this.listeners.push(listener);
618
+ return () => {
619
+ const idx = this.listeners.indexOf(listener);
620
+ if (idx >= 0)
621
+ this.listeners.splice(idx, 1);
622
+ };
623
+ }
624
+ /**
625
+ * Emit an event.
626
+ */
627
+ emit(event) {
628
+ for (const listener of this.listeners) {
629
+ try {
630
+ listener(event);
631
+ }
632
+ catch {
633
+ // Ignore listener errors
634
+ }
635
+ }
636
+ }
637
+ /**
638
+ * Close the database connection.
639
+ */
640
+ close() {
641
+ this.db.close();
642
+ }
643
+ // ===========================================================================
644
+ // CODEBASE ANALYSIS PERSISTENCE
645
+ // ===========================================================================
646
+ /**
647
+ * Save codebase analysis to SQLite for warm startup next session.
648
+ */
649
+ saveCodebaseAnalysis(root, chunks, dependencyGraph) {
650
+ codebaseRepo.saveCodebaseAnalysis(this.deps, root, chunks, dependencyGraph);
651
+ }
652
+ /**
653
+ * Load persisted codebase analysis from SQLite.
654
+ */
655
+ loadCodebaseAnalysis(root) {
656
+ return codebaseRepo.loadCodebaseAnalysis(this.deps, root);
657
+ }
658
+ /**
659
+ * Cleanup - same as close for compatibility.
660
+ */
661
+ async cleanup() {
662
+ this.close();
663
+ }
664
+ }
665
+ // =============================================================================
666
+ // FACTORY
667
+ // =============================================================================
668
+ /**
669
+ * Create and initialize a SQLite session store.
670
+ */
671
+ export async function createSQLiteStore(config) {
672
+ const store = new SQLiteStore(config);
673
+ await store.initialize();
674
+ return store;
675
+ }
676
+ //# sourceMappingURL=sqlite-store.js.map