attocode 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/LICENSE +21 -0
  3. package/README.md +164 -0
  4. package/dist/src/adapters.d.ts +83 -0
  5. package/dist/src/adapters.d.ts.map +1 -0
  6. package/dist/src/adapters.js +221 -0
  7. package/dist/src/adapters.js.map +1 -0
  8. package/dist/src/agent-tools/index.d.ts +7 -0
  9. package/dist/src/agent-tools/index.d.ts.map +1 -0
  10. package/dist/src/agent-tools/index.js +8 -0
  11. package/dist/src/agent-tools/index.js.map +1 -0
  12. package/dist/src/agent-tools/lsp-file-tools.d.ts +33 -0
  13. package/dist/src/agent-tools/lsp-file-tools.d.ts.map +1 -0
  14. package/dist/src/agent-tools/lsp-file-tools.js +200 -0
  15. package/dist/src/agent-tools/lsp-file-tools.js.map +1 -0
  16. package/dist/src/agent.d.ts +667 -0
  17. package/dist/src/agent.d.ts.map +1 -0
  18. package/dist/src/agent.js +2824 -0
  19. package/dist/src/agent.js.map +1 -0
  20. package/dist/src/cli.d.ts +36 -0
  21. package/dist/src/cli.d.ts.map +1 -0
  22. package/dist/src/cli.js +176 -0
  23. package/dist/src/cli.js.map +1 -0
  24. package/dist/src/commands/handler.d.ts +22 -0
  25. package/dist/src/commands/handler.d.ts.map +1 -0
  26. package/dist/src/commands/handler.js +1320 -0
  27. package/dist/src/commands/handler.js.map +1 -0
  28. package/dist/src/commands/init.d.ts +7 -0
  29. package/dist/src/commands/init.d.ts.map +1 -0
  30. package/dist/src/commands/init.js +153 -0
  31. package/dist/src/commands/init.js.map +1 -0
  32. package/dist/src/commands/types.d.ts +70 -0
  33. package/dist/src/commands/types.d.ts.map +1 -0
  34. package/dist/src/commands/types.js +8 -0
  35. package/dist/src/commands/types.js.map +1 -0
  36. package/dist/src/config.d.ts +22 -0
  37. package/dist/src/config.d.ts.map +1 -0
  38. package/dist/src/config.js +25 -0
  39. package/dist/src/config.js.map +1 -0
  40. package/dist/src/core/index.d.ts +32 -0
  41. package/dist/src/core/index.d.ts.map +1 -0
  42. package/dist/src/core/index.js +35 -0
  43. package/dist/src/core/index.js.map +1 -0
  44. package/dist/src/core/process-handlers.d.ts +43 -0
  45. package/dist/src/core/process-handlers.d.ts.map +1 -0
  46. package/dist/src/core/process-handlers.js +117 -0
  47. package/dist/src/core/process-handlers.js.map +1 -0
  48. package/dist/src/core/protocol/bridge.d.ts +117 -0
  49. package/dist/src/core/protocol/bridge.d.ts.map +1 -0
  50. package/dist/src/core/protocol/bridge.js +149 -0
  51. package/dist/src/core/protocol/bridge.js.map +1 -0
  52. package/dist/src/core/protocol/index.d.ts +8 -0
  53. package/dist/src/core/protocol/index.d.ts.map +1 -0
  54. package/dist/src/core/protocol/index.js +8 -0
  55. package/dist/src/core/protocol/index.js.map +1 -0
  56. package/dist/src/core/protocol/types.d.ts +539 -0
  57. package/dist/src/core/protocol/types.d.ts.map +1 -0
  58. package/dist/src/core/protocol/types.js +149 -0
  59. package/dist/src/core/protocol/types.js.map +1 -0
  60. package/dist/src/core/queues/atomic-counter.d.ts +36 -0
  61. package/dist/src/core/queues/atomic-counter.d.ts.map +1 -0
  62. package/dist/src/core/queues/atomic-counter.js +46 -0
  63. package/dist/src/core/queues/atomic-counter.js.map +1 -0
  64. package/dist/src/core/queues/event-queue.d.ts +126 -0
  65. package/dist/src/core/queues/event-queue.d.ts.map +1 -0
  66. package/dist/src/core/queues/event-queue.js +208 -0
  67. package/dist/src/core/queues/event-queue.js.map +1 -0
  68. package/dist/src/core/queues/index.d.ts +12 -0
  69. package/dist/src/core/queues/index.d.ts.map +1 -0
  70. package/dist/src/core/queues/index.js +15 -0
  71. package/dist/src/core/queues/index.js.map +1 -0
  72. package/dist/src/core/queues/submission-queue.d.ts +116 -0
  73. package/dist/src/core/queues/submission-queue.d.ts.map +1 -0
  74. package/dist/src/core/queues/submission-queue.js +236 -0
  75. package/dist/src/core/queues/submission-queue.js.map +1 -0
  76. package/dist/src/costs/index.d.ts +22 -0
  77. package/dist/src/costs/index.d.ts.map +1 -0
  78. package/dist/src/costs/index.js +22 -0
  79. package/dist/src/costs/index.js.map +1 -0
  80. package/dist/src/costs/model-registry.d.ts +80 -0
  81. package/dist/src/costs/model-registry.d.ts.map +1 -0
  82. package/dist/src/costs/model-registry.js +237 -0
  83. package/dist/src/costs/model-registry.js.map +1 -0
  84. package/dist/src/costs/types.d.ts +50 -0
  85. package/dist/src/costs/types.d.ts.map +1 -0
  86. package/dist/src/costs/types.js +2 -0
  87. package/dist/src/costs/types.js.map +1 -0
  88. package/dist/src/defaults.d.ts +114 -0
  89. package/dist/src/defaults.d.ts.map +1 -0
  90. package/dist/src/defaults.js +457 -0
  91. package/dist/src/defaults.js.map +1 -0
  92. package/dist/src/first-run.d.ts +35 -0
  93. package/dist/src/first-run.d.ts.map +1 -0
  94. package/dist/src/first-run.js +94 -0
  95. package/dist/src/first-run.js.map +1 -0
  96. package/dist/src/hello.d.ts +2 -0
  97. package/dist/src/hello.d.ts.map +1 -0
  98. package/dist/src/hello.js +4 -0
  99. package/dist/src/hello.js.map +1 -0
  100. package/dist/src/integrations/agent-registry.d.ts +160 -0
  101. package/dist/src/integrations/agent-registry.d.ts.map +1 -0
  102. package/dist/src/integrations/agent-registry.js +446 -0
  103. package/dist/src/integrations/agent-registry.js.map +1 -0
  104. package/dist/src/integrations/auto-compaction.d.ts +177 -0
  105. package/dist/src/integrations/auto-compaction.d.ts.map +1 -0
  106. package/dist/src/integrations/auto-compaction.js +428 -0
  107. package/dist/src/integrations/auto-compaction.js.map +1 -0
  108. package/dist/src/integrations/cancellation.d.ts +162 -0
  109. package/dist/src/integrations/cancellation.d.ts.map +1 -0
  110. package/dist/src/integrations/cancellation.js +339 -0
  111. package/dist/src/integrations/cancellation.js.map +1 -0
  112. package/dist/src/integrations/codebase-context.d.ts +319 -0
  113. package/dist/src/integrations/codebase-context.d.ts.map +1 -0
  114. package/dist/src/integrations/codebase-context.js +816 -0
  115. package/dist/src/integrations/codebase-context.js.map +1 -0
  116. package/dist/src/integrations/compaction.d.ts +192 -0
  117. package/dist/src/integrations/compaction.d.ts.map +1 -0
  118. package/dist/src/integrations/compaction.js +376 -0
  119. package/dist/src/integrations/compaction.js.map +1 -0
  120. package/dist/src/integrations/context-engineering.d.ts +246 -0
  121. package/dist/src/integrations/context-engineering.d.ts.map +1 -0
  122. package/dist/src/integrations/context-engineering.js +394 -0
  123. package/dist/src/integrations/context-engineering.js.map +1 -0
  124. package/dist/src/integrations/diff-utils.d.ts +105 -0
  125. package/dist/src/integrations/diff-utils.d.ts.map +1 -0
  126. package/dist/src/integrations/diff-utils.js +497 -0
  127. package/dist/src/integrations/diff-utils.js.map +1 -0
  128. package/dist/src/integrations/economics.d.ts +192 -0
  129. package/dist/src/integrations/economics.d.ts.map +1 -0
  130. package/dist/src/integrations/economics.js +431 -0
  131. package/dist/src/integrations/economics.js.map +1 -0
  132. package/dist/src/integrations/execution-policy.d.ts +189 -0
  133. package/dist/src/integrations/execution-policy.d.ts.map +1 -0
  134. package/dist/src/integrations/execution-policy.js +352 -0
  135. package/dist/src/integrations/execution-policy.js.map +1 -0
  136. package/dist/src/integrations/file-change-tracker.d.ts +161 -0
  137. package/dist/src/integrations/file-change-tracker.d.ts.map +1 -0
  138. package/dist/src/integrations/file-change-tracker.js +520 -0
  139. package/dist/src/integrations/file-change-tracker.js.map +1 -0
  140. package/dist/src/integrations/hierarchical-config.d.ts +212 -0
  141. package/dist/src/integrations/hierarchical-config.d.ts.map +1 -0
  142. package/dist/src/integrations/hierarchical-config.js +484 -0
  143. package/dist/src/integrations/hierarchical-config.js.map +1 -0
  144. package/dist/src/integrations/hooks.d.ts +114 -0
  145. package/dist/src/integrations/hooks.d.ts.map +1 -0
  146. package/dist/src/integrations/hooks.js +326 -0
  147. package/dist/src/integrations/hooks.js.map +1 -0
  148. package/dist/src/integrations/ignore.d.ts +143 -0
  149. package/dist/src/integrations/ignore.d.ts.map +1 -0
  150. package/dist/src/integrations/ignore.js +417 -0
  151. package/dist/src/integrations/ignore.js.map +1 -0
  152. package/dist/src/integrations/image-renderer.d.ts +119 -0
  153. package/dist/src/integrations/image-renderer.d.ts.map +1 -0
  154. package/dist/src/integrations/image-renderer.js +306 -0
  155. package/dist/src/integrations/image-renderer.js.map +1 -0
  156. package/dist/src/integrations/index.d.ts +42 -0
  157. package/dist/src/integrations/index.d.ts.map +1 -0
  158. package/dist/src/integrations/index.js +73 -0
  159. package/dist/src/integrations/index.js.map +1 -0
  160. package/dist/src/integrations/lsp.d.ts +196 -0
  161. package/dist/src/integrations/lsp.d.ts.map +1 -0
  162. package/dist/src/integrations/lsp.js +582 -0
  163. package/dist/src/integrations/lsp.js.map +1 -0
  164. package/dist/src/integrations/mcp-client.d.ts +270 -0
  165. package/dist/src/integrations/mcp-client.d.ts.map +1 -0
  166. package/dist/src/integrations/mcp-client.js +698 -0
  167. package/dist/src/integrations/mcp-client.js.map +1 -0
  168. package/dist/src/integrations/mcp-tool-search.d.ts +77 -0
  169. package/dist/src/integrations/mcp-tool-search.d.ts.map +1 -0
  170. package/dist/src/integrations/mcp-tool-search.js +220 -0
  171. package/dist/src/integrations/mcp-tool-search.js.map +1 -0
  172. package/dist/src/integrations/memory.d.ts +108 -0
  173. package/dist/src/integrations/memory.d.ts.map +1 -0
  174. package/dist/src/integrations/memory.js +288 -0
  175. package/dist/src/integrations/memory.js.map +1 -0
  176. package/dist/src/integrations/multi-agent.d.ts +150 -0
  177. package/dist/src/integrations/multi-agent.d.ts.map +1 -0
  178. package/dist/src/integrations/multi-agent.js +306 -0
  179. package/dist/src/integrations/multi-agent.js.map +1 -0
  180. package/dist/src/integrations/observability.d.ts +162 -0
  181. package/dist/src/integrations/observability.d.ts.map +1 -0
  182. package/dist/src/integrations/observability.js +406 -0
  183. package/dist/src/integrations/observability.js.map +1 -0
  184. package/dist/src/integrations/openrouter-pricing.d.ts +42 -0
  185. package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -0
  186. package/dist/src/integrations/openrouter-pricing.js +124 -0
  187. package/dist/src/integrations/openrouter-pricing.js.map +1 -0
  188. package/dist/src/integrations/pending-plan.d.ts +171 -0
  189. package/dist/src/integrations/pending-plan.d.ts.map +1 -0
  190. package/dist/src/integrations/pending-plan.js +244 -0
  191. package/dist/src/integrations/pending-plan.js.map +1 -0
  192. package/dist/src/integrations/persistence.d.ts +48 -0
  193. package/dist/src/integrations/persistence.d.ts.map +1 -0
  194. package/dist/src/integrations/persistence.js +196 -0
  195. package/dist/src/integrations/persistence.js.map +1 -0
  196. package/dist/src/integrations/planning.d.ts +96 -0
  197. package/dist/src/integrations/planning.d.ts.map +1 -0
  198. package/dist/src/integrations/planning.js +338 -0
  199. package/dist/src/integrations/planning.js.map +1 -0
  200. package/dist/src/integrations/pty-shell.d.ts +169 -0
  201. package/dist/src/integrations/pty-shell.d.ts.map +1 -0
  202. package/dist/src/integrations/pty-shell.js +367 -0
  203. package/dist/src/integrations/pty-shell.js.map +1 -0
  204. package/dist/src/integrations/react.d.ts +139 -0
  205. package/dist/src/integrations/react.d.ts.map +1 -0
  206. package/dist/src/integrations/react.js +273 -0
  207. package/dist/src/integrations/react.js.map +1 -0
  208. package/dist/src/integrations/resources.d.ts +177 -0
  209. package/dist/src/integrations/resources.d.ts.map +1 -0
  210. package/dist/src/integrations/resources.js +311 -0
  211. package/dist/src/integrations/resources.js.map +1 -0
  212. package/dist/src/integrations/result-synthesizer.d.ts +389 -0
  213. package/dist/src/integrations/result-synthesizer.d.ts.map +1 -0
  214. package/dist/src/integrations/result-synthesizer.js +951 -0
  215. package/dist/src/integrations/result-synthesizer.js.map +1 -0
  216. package/dist/src/integrations/routing.d.ts +117 -0
  217. package/dist/src/integrations/routing.d.ts.map +1 -0
  218. package/dist/src/integrations/routing.js +347 -0
  219. package/dist/src/integrations/routing.js.map +1 -0
  220. package/dist/src/integrations/rules.d.ts +131 -0
  221. package/dist/src/integrations/rules.d.ts.map +1 -0
  222. package/dist/src/integrations/rules.js +284 -0
  223. package/dist/src/integrations/rules.js.map +1 -0
  224. package/dist/src/integrations/safety.d.ts +142 -0
  225. package/dist/src/integrations/safety.d.ts.map +1 -0
  226. package/dist/src/integrations/safety.js +342 -0
  227. package/dist/src/integrations/safety.js.map +1 -0
  228. package/dist/src/integrations/sandbox/basic.d.ts +74 -0
  229. package/dist/src/integrations/sandbox/basic.d.ts.map +1 -0
  230. package/dist/src/integrations/sandbox/basic.js +310 -0
  231. package/dist/src/integrations/sandbox/basic.js.map +1 -0
  232. package/dist/src/integrations/sandbox/docker.d.ts +94 -0
  233. package/dist/src/integrations/sandbox/docker.d.ts.map +1 -0
  234. package/dist/src/integrations/sandbox/docker.js +293 -0
  235. package/dist/src/integrations/sandbox/docker.js.map +1 -0
  236. package/dist/src/integrations/sandbox/index.d.ts +182 -0
  237. package/dist/src/integrations/sandbox/index.d.ts.map +1 -0
  238. package/dist/src/integrations/sandbox/index.js +382 -0
  239. package/dist/src/integrations/sandbox/index.js.map +1 -0
  240. package/dist/src/integrations/sandbox/landlock.d.ts +59 -0
  241. package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -0
  242. package/dist/src/integrations/sandbox/landlock.js +326 -0
  243. package/dist/src/integrations/sandbox/landlock.js.map +1 -0
  244. package/dist/src/integrations/sandbox/seatbelt.d.ts +68 -0
  245. package/dist/src/integrations/sandbox/seatbelt.d.ts.map +1 -0
  246. package/dist/src/integrations/sandbox/seatbelt.js +298 -0
  247. package/dist/src/integrations/sandbox/seatbelt.js.map +1 -0
  248. package/dist/src/integrations/semantic-cache.d.ts +178 -0
  249. package/dist/src/integrations/semantic-cache.d.ts.map +1 -0
  250. package/dist/src/integrations/semantic-cache.js +372 -0
  251. package/dist/src/integrations/semantic-cache.js.map +1 -0
  252. package/dist/src/integrations/session-store.d.ts +183 -0
  253. package/dist/src/integrations/session-store.d.ts.map +1 -0
  254. package/dist/src/integrations/session-store.js +345 -0
  255. package/dist/src/integrations/session-store.js.map +1 -0
  256. package/dist/src/integrations/shared-blackboard.d.ts +403 -0
  257. package/dist/src/integrations/shared-blackboard.d.ts.map +1 -0
  258. package/dist/src/integrations/shared-blackboard.js +710 -0
  259. package/dist/src/integrations/shared-blackboard.js.map +1 -0
  260. package/dist/src/integrations/skills.d.ts +171 -0
  261. package/dist/src/integrations/skills.d.ts.map +1 -0
  262. package/dist/src/integrations/skills.js +403 -0
  263. package/dist/src/integrations/skills.js.map +1 -0
  264. package/dist/src/integrations/smart-decomposer.d.ts +322 -0
  265. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -0
  266. package/dist/src/integrations/smart-decomposer.js +856 -0
  267. package/dist/src/integrations/smart-decomposer.js.map +1 -0
  268. package/dist/src/integrations/sourcegraph.d.ts +169 -0
  269. package/dist/src/integrations/sourcegraph.d.ts.map +1 -0
  270. package/dist/src/integrations/sourcegraph.js +379 -0
  271. package/dist/src/integrations/sourcegraph.js.map +1 -0
  272. package/dist/src/integrations/sqlite-store.d.ts +518 -0
  273. package/dist/src/integrations/sqlite-store.d.ts.map +1 -0
  274. package/dist/src/integrations/sqlite-store.js +1423 -0
  275. package/dist/src/integrations/sqlite-store.js.map +1 -0
  276. package/dist/src/integrations/streaming.d.ts +102 -0
  277. package/dist/src/integrations/streaming.d.ts.map +1 -0
  278. package/dist/src/integrations/streaming.js +362 -0
  279. package/dist/src/integrations/streaming.js.map +1 -0
  280. package/dist/src/integrations/thread-manager.d.ts +199 -0
  281. package/dist/src/integrations/thread-manager.d.ts.map +1 -0
  282. package/dist/src/integrations/thread-manager.js +357 -0
  283. package/dist/src/integrations/thread-manager.js.map +1 -0
  284. package/dist/src/main.d.ts +26 -0
  285. package/dist/src/main.d.ts.map +1 -0
  286. package/dist/src/main.js +170 -0
  287. package/dist/src/main.js.map +1 -0
  288. package/dist/src/modes/index.d.ts +10 -0
  289. package/dist/src/modes/index.d.ts.map +1 -0
  290. package/dist/src/modes/index.js +10 -0
  291. package/dist/src/modes/index.js.map +1 -0
  292. package/dist/src/modes/repl.d.ts +19 -0
  293. package/dist/src/modes/repl.d.ts.map +1 -0
  294. package/dist/src/modes/repl.js +393 -0
  295. package/dist/src/modes/repl.js.map +1 -0
  296. package/dist/src/modes/tui.d.ts +29 -0
  297. package/dist/src/modes/tui.d.ts.map +1 -0
  298. package/dist/src/modes/tui.js +272 -0
  299. package/dist/src/modes/tui.js.map +1 -0
  300. package/dist/src/modes.d.ts +179 -0
  301. package/dist/src/modes.d.ts.map +1 -0
  302. package/dist/src/modes.js +385 -0
  303. package/dist/src/modes.js.map +1 -0
  304. package/dist/src/observability/tracer.d.ts +111 -0
  305. package/dist/src/observability/tracer.d.ts.map +1 -0
  306. package/dist/src/observability/tracer.js +300 -0
  307. package/dist/src/observability/tracer.js.map +1 -0
  308. package/dist/src/observability/types.d.ts +271 -0
  309. package/dist/src/observability/types.d.ts.map +1 -0
  310. package/dist/src/observability/types.js +24 -0
  311. package/dist/src/observability/types.js.map +1 -0
  312. package/dist/src/paths.d.ts +101 -0
  313. package/dist/src/paths.d.ts.map +1 -0
  314. package/dist/src/paths.js +148 -0
  315. package/dist/src/paths.js.map +1 -0
  316. package/dist/src/persistence/index.d.ts +38 -0
  317. package/dist/src/persistence/index.d.ts.map +1 -0
  318. package/dist/src/persistence/index.js +48 -0
  319. package/dist/src/persistence/index.js.map +1 -0
  320. package/dist/src/persistence/migrator.d.ts +135 -0
  321. package/dist/src/persistence/migrator.d.ts.map +1 -0
  322. package/dist/src/persistence/migrator.js +303 -0
  323. package/dist/src/persistence/migrator.js.map +1 -0
  324. package/dist/src/persistence/schema.d.ts +101 -0
  325. package/dist/src/persistence/schema.d.ts.map +1 -0
  326. package/dist/src/persistence/schema.js +395 -0
  327. package/dist/src/persistence/schema.js.map +1 -0
  328. package/dist/src/providers/adapters/anthropic.d.ts +20 -0
  329. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -0
  330. package/dist/src/providers/adapters/anthropic.js +124 -0
  331. package/dist/src/providers/adapters/anthropic.js.map +1 -0
  332. package/dist/src/providers/adapters/mock.d.ts +25 -0
  333. package/dist/src/providers/adapters/mock.d.ts.map +1 -0
  334. package/dist/src/providers/adapters/mock.js +133 -0
  335. package/dist/src/providers/adapters/mock.js.map +1 -0
  336. package/dist/src/providers/adapters/openai.d.ts +21 -0
  337. package/dist/src/providers/adapters/openai.d.ts.map +1 -0
  338. package/dist/src/providers/adapters/openai.js +126 -0
  339. package/dist/src/providers/adapters/openai.js.map +1 -0
  340. package/dist/src/providers/adapters/openrouter.d.ts +49 -0
  341. package/dist/src/providers/adapters/openrouter.d.ts.map +1 -0
  342. package/dist/src/providers/adapters/openrouter.js +363 -0
  343. package/dist/src/providers/adapters/openrouter.js.map +1 -0
  344. package/dist/src/providers/provider.d.ts +54 -0
  345. package/dist/src/providers/provider.d.ts.map +1 -0
  346. package/dist/src/providers/provider.js +111 -0
  347. package/dist/src/providers/provider.js.map +1 -0
  348. package/dist/src/providers/resilient-fetch.d.ts +99 -0
  349. package/dist/src/providers/resilient-fetch.d.ts.map +1 -0
  350. package/dist/src/providers/resilient-fetch.js +208 -0
  351. package/dist/src/providers/resilient-fetch.js.map +1 -0
  352. package/dist/src/providers/types.d.ts +227 -0
  353. package/dist/src/providers/types.d.ts.map +1 -0
  354. package/dist/src/providers/types.js +24 -0
  355. package/dist/src/providers/types.js.map +1 -0
  356. package/dist/src/session-picker.d.ts +28 -0
  357. package/dist/src/session-picker.d.ts.map +1 -0
  358. package/dist/src/session-picker.js +256 -0
  359. package/dist/src/session-picker.js.map +1 -0
  360. package/dist/src/test-sqlite.d.ts +2 -0
  361. package/dist/src/test-sqlite.d.ts.map +1 -0
  362. package/dist/src/test-sqlite.js +114 -0
  363. package/dist/src/test-sqlite.js.map +1 -0
  364. package/dist/src/tools/agent.d.ts +44 -0
  365. package/dist/src/tools/agent.d.ts.map +1 -0
  366. package/dist/src/tools/agent.js +110 -0
  367. package/dist/src/tools/agent.js.map +1 -0
  368. package/dist/src/tools/bash.d.ts +52 -0
  369. package/dist/src/tools/bash.d.ts.map +1 -0
  370. package/dist/src/tools/bash.js +141 -0
  371. package/dist/src/tools/bash.js.map +1 -0
  372. package/dist/src/tools/file.d.ts +47 -0
  373. package/dist/src/tools/file.d.ts.map +1 -0
  374. package/dist/src/tools/file.js +263 -0
  375. package/dist/src/tools/file.js.map +1 -0
  376. package/dist/src/tools/permission.d.ts +43 -0
  377. package/dist/src/tools/permission.d.ts.map +1 -0
  378. package/dist/src/tools/permission.js +216 -0
  379. package/dist/src/tools/permission.js.map +1 -0
  380. package/dist/src/tools/registry.d.ts +63 -0
  381. package/dist/src/tools/registry.d.ts.map +1 -0
  382. package/dist/src/tools/registry.js +250 -0
  383. package/dist/src/tools/registry.js.map +1 -0
  384. package/dist/src/tools/standard.d.ts +57 -0
  385. package/dist/src/tools/standard.d.ts.map +1 -0
  386. package/dist/src/tools/standard.js +113 -0
  387. package/dist/src/tools/standard.js.map +1 -0
  388. package/dist/src/tools/types.d.ts +146 -0
  389. package/dist/src/tools/types.d.ts.map +1 -0
  390. package/dist/src/tools/types.js +28 -0
  391. package/dist/src/tools/types.js.map +1 -0
  392. package/dist/src/tools/undo.d.ts +71 -0
  393. package/dist/src/tools/undo.d.ts.map +1 -0
  394. package/dist/src/tools/undo.js +123 -0
  395. package/dist/src/tools/undo.js.map +1 -0
  396. package/dist/src/tracing/cache-boundary-tracker.d.ts +189 -0
  397. package/dist/src/tracing/cache-boundary-tracker.d.ts.map +1 -0
  398. package/dist/src/tracing/cache-boundary-tracker.js +411 -0
  399. package/dist/src/tracing/cache-boundary-tracker.js.map +1 -0
  400. package/dist/src/tracing/trace-collector.d.ts +274 -0
  401. package/dist/src/tracing/trace-collector.d.ts.map +1 -0
  402. package/dist/src/tracing/trace-collector.js +727 -0
  403. package/dist/src/tracing/trace-collector.js.map +1 -0
  404. package/dist/src/tracing/types.d.ts +657 -0
  405. package/dist/src/tracing/types.d.ts.map +1 -0
  406. package/dist/src/tracing/types.js +39 -0
  407. package/dist/src/tracing/types.js.map +1 -0
  408. package/dist/src/tricks/failure-evidence.d.ts +268 -0
  409. package/dist/src/tricks/failure-evidence.d.ts.map +1 -0
  410. package/dist/src/tricks/failure-evidence.js +544 -0
  411. package/dist/src/tricks/failure-evidence.js.map +1 -0
  412. package/dist/src/tricks/json-utils.d.ts +77 -0
  413. package/dist/src/tricks/json-utils.d.ts.map +1 -0
  414. package/dist/src/tricks/json-utils.js +247 -0
  415. package/dist/src/tricks/json-utils.js.map +1 -0
  416. package/dist/src/tricks/kv-cache-context.d.ts +227 -0
  417. package/dist/src/tricks/kv-cache-context.d.ts.map +1 -0
  418. package/dist/src/tricks/kv-cache-context.js +377 -0
  419. package/dist/src/tricks/kv-cache-context.js.map +1 -0
  420. package/dist/src/tricks/recitation.d.ts +208 -0
  421. package/dist/src/tricks/recitation.d.ts.map +1 -0
  422. package/dist/src/tricks/recitation.js +374 -0
  423. package/dist/src/tricks/recitation.js.map +1 -0
  424. package/dist/src/tricks/reversible-compaction.d.ts +251 -0
  425. package/dist/src/tricks/reversible-compaction.d.ts.map +1 -0
  426. package/dist/src/tricks/reversible-compaction.js +555 -0
  427. package/dist/src/tricks/reversible-compaction.js.map +1 -0
  428. package/dist/src/tricks/serialization-diversity.d.ts +197 -0
  429. package/dist/src/tricks/serialization-diversity.d.ts.map +1 -0
  430. package/dist/src/tricks/serialization-diversity.js +460 -0
  431. package/dist/src/tricks/serialization-diversity.js.map +1 -0
  432. package/dist/src/tui/app.d.ts +42 -0
  433. package/dist/src/tui/app.d.ts.map +1 -0
  434. package/dist/src/tui/app.js +1076 -0
  435. package/dist/src/tui/app.js.map +1 -0
  436. package/dist/src/tui/components/ApprovalDialog.d.ts +28 -0
  437. package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -0
  438. package/dist/src/tui/components/ApprovalDialog.js +59 -0
  439. package/dist/src/tui/components/ApprovalDialog.js.map +1 -0
  440. package/dist/src/tui/components/InputArea.d.ts +35 -0
  441. package/dist/src/tui/components/InputArea.d.ts.map +1 -0
  442. package/dist/src/tui/components/InputArea.js +144 -0
  443. package/dist/src/tui/components/InputArea.js.map +1 -0
  444. package/dist/src/tui/components/MessageItem.d.ts +28 -0
  445. package/dist/src/tui/components/MessageItem.d.ts.map +1 -0
  446. package/dist/src/tui/components/MessageItem.js +27 -0
  447. package/dist/src/tui/components/MessageItem.js.map +1 -0
  448. package/dist/src/tui/components/ScrollableBox.d.ts +41 -0
  449. package/dist/src/tui/components/ScrollableBox.d.ts.map +1 -0
  450. package/dist/src/tui/components/ScrollableBox.js +101 -0
  451. package/dist/src/tui/components/ScrollableBox.js.map +1 -0
  452. package/dist/src/tui/components/ToolCallItem.d.ts +33 -0
  453. package/dist/src/tui/components/ToolCallItem.d.ts.map +1 -0
  454. package/dist/src/tui/components/ToolCallItem.js +91 -0
  455. package/dist/src/tui/components/ToolCallItem.js.map +1 -0
  456. package/dist/src/tui/components/index.d.ts +13 -0
  457. package/dist/src/tui/components/index.d.ts.map +1 -0
  458. package/dist/src/tui/components/index.js +15 -0
  459. package/dist/src/tui/components/index.js.map +1 -0
  460. package/dist/src/tui/event-display.d.ts +19 -0
  461. package/dist/src/tui/event-display.d.ts.map +1 -0
  462. package/dist/src/tui/event-display.js +178 -0
  463. package/dist/src/tui/event-display.js.map +1 -0
  464. package/dist/src/tui/index.d.ts +105 -0
  465. package/dist/src/tui/index.d.ts.map +1 -0
  466. package/dist/src/tui/index.js +214 -0
  467. package/dist/src/tui/index.js.map +1 -0
  468. package/dist/src/tui/input/CommandPalette.d.ts +55 -0
  469. package/dist/src/tui/input/CommandPalette.d.ts.map +1 -0
  470. package/dist/src/tui/input/CommandPalette.js +135 -0
  471. package/dist/src/tui/input/CommandPalette.js.map +1 -0
  472. package/dist/src/tui/input/index.d.ts +7 -0
  473. package/dist/src/tui/input/index.d.ts.map +1 -0
  474. package/dist/src/tui/input/index.js +7 -0
  475. package/dist/src/tui/input/index.js.map +1 -0
  476. package/dist/src/tui/theme/index.d.ts +45 -0
  477. package/dist/src/tui/theme/index.d.ts.map +1 -0
  478. package/dist/src/tui/theme/index.js +215 -0
  479. package/dist/src/tui/theme/index.js.map +1 -0
  480. package/dist/src/tui/types.d.ts +214 -0
  481. package/dist/src/tui/types.d.ts.map +1 -0
  482. package/dist/src/tui/types.js +27 -0
  483. package/dist/src/tui/types.js.map +1 -0
  484. package/dist/src/types.d.ts +905 -0
  485. package/dist/src/types.d.ts.map +1 -0
  486. package/dist/src/types.js +9 -0
  487. package/dist/src/types.js.map +1 -0
  488. package/package.json +89 -0
@@ -0,0 +1,395 @@
1
+ /**
2
+ * SQLite Schema Definitions
3
+ *
4
+ * Embeds all migrations as TypeScript code - no external SQL files needed.
5
+ * This eliminates file path resolution issues and makes migrations part
6
+ * of the compiled bundle.
7
+ *
8
+ * ## Design Principles
9
+ *
10
+ * 1. **Migrations as Code**: Each migration is a TypeScript object with
11
+ * version, name, and SQL statements. No file I/O at runtime.
12
+ *
13
+ * 2. **Idempotent Statements**: Use IF NOT EXISTS and handle duplicate
14
+ * column errors gracefully.
15
+ *
16
+ * 3. **Feature Detection**: Tables are grouped by feature, allowing
17
+ * the store to detect which features are available.
18
+ */
19
+ // =============================================================================
20
+ // EMBEDDED MIGRATIONS
21
+ // =============================================================================
22
+ /**
23
+ * All schema migrations, embedded as TypeScript code.
24
+ *
25
+ * To add a new migration:
26
+ * 1. Add a new entry with the next version number
27
+ * 2. Ensure SQL is idempotent (IF NOT EXISTS, etc.)
28
+ * 3. Run tests to verify migration applies cleanly
29
+ */
30
+ export const MIGRATIONS = [
31
+ {
32
+ version: 1,
33
+ name: 'initial',
34
+ sql: `
35
+ -- Sessions table
36
+ CREATE TABLE IF NOT EXISTS sessions (
37
+ id TEXT PRIMARY KEY,
38
+ name TEXT,
39
+ created_at TEXT NOT NULL,
40
+ last_active_at TEXT NOT NULL,
41
+ message_count INTEGER DEFAULT 0,
42
+ token_count INTEGER DEFAULT 0,
43
+ summary TEXT
44
+ );
45
+
46
+ -- Session entries table
47
+ CREATE TABLE IF NOT EXISTS entries (
48
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
49
+ session_id TEXT NOT NULL,
50
+ timestamp TEXT NOT NULL,
51
+ type TEXT NOT NULL,
52
+ data TEXT NOT NULL,
53
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
54
+ );
55
+
56
+ -- Tool calls table
57
+ CREATE TABLE IF NOT EXISTS tool_calls (
58
+ id TEXT PRIMARY KEY,
59
+ session_id TEXT NOT NULL,
60
+ name TEXT NOT NULL,
61
+ arguments TEXT NOT NULL,
62
+ status TEXT DEFAULT 'pending',
63
+ result TEXT,
64
+ error TEXT,
65
+ duration_ms INTEGER,
66
+ created_at TEXT NOT NULL,
67
+ completed_at TEXT,
68
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
69
+ );
70
+
71
+ -- Checkpoints table
72
+ CREATE TABLE IF NOT EXISTS checkpoints (
73
+ id TEXT PRIMARY KEY,
74
+ session_id TEXT NOT NULL,
75
+ state_json TEXT NOT NULL,
76
+ created_at TEXT NOT NULL,
77
+ description TEXT,
78
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
79
+ );
80
+
81
+ -- Core indexes
82
+ CREATE INDEX IF NOT EXISTS idx_entries_session ON entries(session_id);
83
+ CREATE INDEX IF NOT EXISTS idx_entries_session_type ON entries(session_id, type);
84
+ CREATE INDEX IF NOT EXISTS idx_tool_calls_session ON tool_calls(session_id);
85
+ CREATE INDEX IF NOT EXISTS idx_checkpoints_session ON checkpoints(session_id);
86
+ `,
87
+ },
88
+ {
89
+ version: 2,
90
+ name: 'add_costs',
91
+ sql: `
92
+ -- Cost tracking columns
93
+ ALTER TABLE sessions ADD COLUMN prompt_tokens INTEGER DEFAULT 0;
94
+ ALTER TABLE sessions ADD COLUMN completion_tokens INTEGER DEFAULT 0;
95
+ ALTER TABLE sessions ADD COLUMN cost_usd REAL DEFAULT 0.0;
96
+
97
+ -- Usage logs table
98
+ CREATE TABLE IF NOT EXISTS usage_logs (
99
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
100
+ session_id TEXT NOT NULL,
101
+ model_id TEXT NOT NULL,
102
+ prompt_tokens INTEGER NOT NULL DEFAULT 0,
103
+ completion_tokens INTEGER NOT NULL DEFAULT 0,
104
+ cost_usd REAL NOT NULL DEFAULT 0.0,
105
+ timestamp TEXT NOT NULL,
106
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
107
+ );
108
+
109
+ CREATE INDEX IF NOT EXISTS idx_usage_logs_session ON usage_logs(session_id);
110
+ CREATE INDEX IF NOT EXISTS idx_usage_logs_timestamp ON usage_logs(timestamp);
111
+ `,
112
+ },
113
+ {
114
+ version: 3,
115
+ name: 'add_session_hierarchy',
116
+ sql: `
117
+ -- Session hierarchy columns
118
+ ALTER TABLE sessions ADD COLUMN parent_session_id TEXT;
119
+ ALTER TABLE sessions ADD COLUMN session_type TEXT DEFAULT 'main';
120
+ ALTER TABLE sessions ADD COLUMN summary_message_id INTEGER;
121
+
122
+ -- Entry summary flag
123
+ ALTER TABLE entries ADD COLUMN is_summary INTEGER DEFAULT 0;
124
+
125
+ -- Hierarchy indexes
126
+ CREATE INDEX IF NOT EXISTS idx_sessions_parent ON sessions(parent_session_id);
127
+ CREATE INDEX IF NOT EXISTS idx_sessions_type ON sessions(session_type);
128
+ CREATE INDEX IF NOT EXISTS idx_entries_summary ON entries(session_id, is_summary) WHERE is_summary = 1;
129
+ `,
130
+ },
131
+ {
132
+ version: 4,
133
+ name: 'compaction_history',
134
+ sql: `
135
+ CREATE TABLE IF NOT EXISTS compaction_history (
136
+ id TEXT PRIMARY KEY,
137
+ session_id TEXT NOT NULL,
138
+ summary TEXT NOT NULL,
139
+ references_json TEXT NOT NULL,
140
+ tokens_before INTEGER NOT NULL,
141
+ tokens_after INTEGER NOT NULL,
142
+ messages_compacted INTEGER NOT NULL,
143
+ created_at TEXT NOT NULL,
144
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
145
+ );
146
+
147
+ CREATE INDEX IF NOT EXISTS idx_compaction_history_session ON compaction_history(session_id);
148
+ `,
149
+ },
150
+ {
151
+ version: 5,
152
+ name: 'file_changes',
153
+ sql: `
154
+ CREATE TABLE IF NOT EXISTS file_changes (
155
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
156
+ session_id TEXT NOT NULL,
157
+ entry_id INTEGER,
158
+ tool_call_id TEXT,
159
+ turn_number INTEGER NOT NULL,
160
+ file_path TEXT NOT NULL,
161
+ operation TEXT NOT NULL,
162
+ content_before TEXT,
163
+ content_after TEXT,
164
+ diff_unified TEXT,
165
+ storage_mode TEXT DEFAULT 'full',
166
+ bytes_before INTEGER,
167
+ bytes_after INTEGER,
168
+ is_undone INTEGER DEFAULT 0,
169
+ undo_change_id INTEGER,
170
+ created_at TEXT NOT NULL,
171
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
172
+ );
173
+
174
+ CREATE INDEX IF NOT EXISTS idx_file_changes_session_path ON file_changes(session_id, file_path);
175
+ CREATE INDEX IF NOT EXISTS idx_file_changes_session_turn ON file_changes(session_id, turn_number);
176
+ `,
177
+ },
178
+ {
179
+ version: 6,
180
+ name: 'goal_integrity',
181
+ sql: `
182
+ -- Goals table - persists objectives outside of context
183
+ CREATE TABLE IF NOT EXISTS goals (
184
+ id TEXT PRIMARY KEY,
185
+ session_id TEXT NOT NULL,
186
+ goal_text TEXT NOT NULL,
187
+ status TEXT NOT NULL DEFAULT 'active',
188
+ priority INTEGER DEFAULT 1,
189
+ parent_goal_id TEXT,
190
+ progress_current INTEGER DEFAULT 0,
191
+ progress_total INTEGER,
192
+ created_at TEXT NOT NULL,
193
+ updated_at TEXT NOT NULL,
194
+ completed_at TEXT,
195
+ metadata TEXT,
196
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
197
+ FOREIGN KEY (parent_goal_id) REFERENCES goals(id) ON DELETE SET NULL
198
+ );
199
+
200
+ -- Critical junctures table
201
+ CREATE TABLE IF NOT EXISTS junctures (
202
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
203
+ session_id TEXT NOT NULL,
204
+ goal_id TEXT,
205
+ type TEXT NOT NULL,
206
+ description TEXT NOT NULL,
207
+ outcome TEXT,
208
+ importance INTEGER DEFAULT 2,
209
+ context TEXT,
210
+ created_at TEXT NOT NULL,
211
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
212
+ FOREIGN KEY (goal_id) REFERENCES goals(id) ON DELETE SET NULL
213
+ );
214
+
215
+ -- Goal indexes
216
+ CREATE INDEX IF NOT EXISTS idx_goals_session ON goals(session_id);
217
+ CREATE INDEX IF NOT EXISTS idx_goals_status ON goals(session_id, status);
218
+ CREATE INDEX IF NOT EXISTS idx_goals_parent ON goals(parent_goal_id);
219
+ CREATE INDEX IF NOT EXISTS idx_junctures_session ON junctures(session_id);
220
+ CREATE INDEX IF NOT EXISTS idx_junctures_goal ON junctures(goal_id);
221
+ CREATE INDEX IF NOT EXISTS idx_junctures_type ON junctures(session_id, type);
222
+ `,
223
+ },
224
+ {
225
+ version: 7,
226
+ name: 'worker_results',
227
+ sql: `
228
+ CREATE TABLE IF NOT EXISTS worker_results (
229
+ id TEXT PRIMARY KEY,
230
+ session_id TEXT NOT NULL,
231
+ worker_id TEXT NOT NULL,
232
+ task_description TEXT NOT NULL,
233
+ model_used TEXT,
234
+ status TEXT NOT NULL DEFAULT 'pending',
235
+ summary TEXT,
236
+ full_output TEXT,
237
+ artifacts TEXT,
238
+ metrics TEXT,
239
+ error TEXT,
240
+ created_at TEXT NOT NULL,
241
+ completed_at TEXT,
242
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
243
+ );
244
+
245
+ CREATE INDEX IF NOT EXISTS idx_worker_results_session ON worker_results(session_id);
246
+ CREATE INDEX IF NOT EXISTS idx_worker_results_worker ON worker_results(worker_id);
247
+ CREATE INDEX IF NOT EXISTS idx_worker_results_status ON worker_results(session_id, status);
248
+ `,
249
+ },
250
+ {
251
+ version: 8,
252
+ name: 'pending_plans',
253
+ sql: `
254
+ -- Pending plans table - stores plans awaiting user approval (plan mode)
255
+ CREATE TABLE IF NOT EXISTS pending_plans (
256
+ id TEXT PRIMARY KEY,
257
+ session_id TEXT NOT NULL,
258
+ task TEXT NOT NULL,
259
+ proposed_changes TEXT NOT NULL,
260
+ exploration_summary TEXT,
261
+ status TEXT NOT NULL DEFAULT 'pending',
262
+ created_at TEXT NOT NULL,
263
+ updated_at TEXT NOT NULL,
264
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
265
+ );
266
+
267
+ CREATE INDEX IF NOT EXISTS idx_pending_plans_session ON pending_plans(session_id);
268
+ CREATE INDEX IF NOT EXISTS idx_pending_plans_status ON pending_plans(session_id, status);
269
+ `,
270
+ },
271
+ ];
272
+ /**
273
+ * Check which tables exist in the database.
274
+ */
275
+ export function detectFeatures(db) {
276
+ const tableExists = (name) => {
277
+ const result = db
278
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?")
279
+ .get(name);
280
+ return result !== undefined;
281
+ };
282
+ return {
283
+ core: tableExists('sessions') && tableExists('entries'),
284
+ costs: tableExists('usage_logs'),
285
+ hierarchy: tableExists('sessions'), // Check column existence instead
286
+ compaction: tableExists('compaction_history'),
287
+ fileChanges: tableExists('file_changes'),
288
+ goals: tableExists('goals') && tableExists('junctures'),
289
+ workerResults: tableExists('worker_results'),
290
+ pendingPlans: tableExists('pending_plans'),
291
+ };
292
+ }
293
+ // =============================================================================
294
+ // MIGRATION ENGINE
295
+ // =============================================================================
296
+ /**
297
+ * Get current schema version from database.
298
+ */
299
+ export function getSchemaVersion(db) {
300
+ const result = db.pragma('user_version', { simple: true });
301
+ return typeof result === 'number' ? result : 0;
302
+ }
303
+ /**
304
+ * Set schema version in database.
305
+ */
306
+ export function setSchemaVersion(db, version) {
307
+ db.pragma(`user_version = ${version}`);
308
+ }
309
+ /**
310
+ * Strip leading comment lines from SQL statement.
311
+ */
312
+ function stripLeadingComments(sql) {
313
+ const lines = sql.split('\n');
314
+ let startIndex = 0;
315
+ while (startIndex < lines.length) {
316
+ const line = lines[startIndex].trim();
317
+ if (line === '' || line.startsWith('--')) {
318
+ startIndex++;
319
+ }
320
+ else {
321
+ break;
322
+ }
323
+ }
324
+ return lines.slice(startIndex).join('\n').trim();
325
+ }
326
+ /**
327
+ * Execute migration SQL with idempotent error handling.
328
+ */
329
+ function executeMigrationSql(db, sql) {
330
+ // Split by semicolons and filter empty statements
331
+ const statements = sql
332
+ .split(';')
333
+ .map((s) => s.trim())
334
+ .map((s) => stripLeadingComments(s)) // Strip leading comments before checking
335
+ .filter((s) => s.length > 0);
336
+ for (const statement of statements) {
337
+ try {
338
+ db.exec(statement);
339
+ }
340
+ catch (err) {
341
+ const msg = err instanceof Error ? err.message : String(err);
342
+ // Idempotent: skip duplicate column errors
343
+ if (msg.includes('duplicate column name')) {
344
+ continue;
345
+ }
346
+ throw err;
347
+ }
348
+ }
349
+ }
350
+ /**
351
+ * Apply all pending migrations to the database.
352
+ */
353
+ export function applyMigrations(db) {
354
+ const currentVersion = getSchemaVersion(db);
355
+ const pending = MIGRATIONS.filter((m) => m.version > currentVersion);
356
+ const applied = [];
357
+ for (const migration of pending) {
358
+ try {
359
+ executeMigrationSql(db, migration.sql);
360
+ setSchemaVersion(db, migration.version);
361
+ applied.push(migration.name);
362
+ }
363
+ catch (err) {
364
+ const msg = err instanceof Error ? err.message : String(err);
365
+ throw new Error(`Migration ${migration.version}_${migration.name} failed: ${msg}`);
366
+ }
367
+ }
368
+ return {
369
+ applied: applied.length,
370
+ currentVersion: getSchemaVersion(db),
371
+ appliedMigrations: applied,
372
+ };
373
+ }
374
+ /**
375
+ * Get migration status.
376
+ */
377
+ export function getMigrationStatus(db) {
378
+ const currentVersion = getSchemaVersion(db);
379
+ const pending = MIGRATIONS.filter((m) => m.version > currentVersion);
380
+ return {
381
+ currentVersion,
382
+ latestVersion: MIGRATIONS.length > 0 ? MIGRATIONS[MIGRATIONS.length - 1].version : 0,
383
+ pendingCount: pending.length,
384
+ pendingMigrations: pending.map((m) => ({ version: m.version, name: m.name })),
385
+ };
386
+ }
387
+ /**
388
+ * Check if database needs migration.
389
+ */
390
+ export function needsMigration(db) {
391
+ const currentVersion = getSchemaVersion(db);
392
+ const latestVersion = MIGRATIONS.length > 0 ? MIGRATIONS[MIGRATIONS.length - 1].version : 0;
393
+ return currentVersion < latestVersion;
394
+ }
395
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/persistence/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Anthropic Claude Provider Adapter
3
+ *
4
+ * Adapts the Anthropic SDK to our LLMProvider interface.
5
+ */
6
+ import type { LLMProvider, Message, ChatOptions, ChatResponse, AnthropicConfig } from '../types.js';
7
+ export declare class AnthropicProvider implements LLMProvider {
8
+ readonly name = "anthropic";
9
+ readonly defaultModel = "claude-sonnet-4-20250514";
10
+ private apiKey;
11
+ private model;
12
+ private baseUrl;
13
+ private networkConfig;
14
+ constructor(config?: AnthropicConfig);
15
+ isConfigured(): boolean;
16
+ chat(messages: Message[], options?: ChatOptions): Promise<ChatResponse>;
17
+ private handleError;
18
+ private mapStopReason;
19
+ }
20
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/anthropic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACZ,eAAe,EAChB,MAAM,aAAa,CAAC;AASrB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,YAAY,8BAA8B;IAEnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAgB;gBAEzB,MAAM,CAAC,EAAE,eAAe;IAYpC,YAAY,IAAI,OAAO;IAIjB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA6E7E,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,aAAa;CAQtB"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Anthropic Claude Provider Adapter
3
+ *
4
+ * Adapts the Anthropic SDK to our LLMProvider interface.
5
+ */
6
+ import { ProviderError } from '../types.js';
7
+ import { registerProvider, hasEnv, requireEnv } from '../provider.js';
8
+ import { resilientFetch } from '../resilient-fetch.js';
9
+ // =============================================================================
10
+ // ANTHROPIC PROVIDER
11
+ // =============================================================================
12
+ export class AnthropicProvider {
13
+ name = 'anthropic';
14
+ defaultModel = 'claude-sonnet-4-20250514';
15
+ apiKey;
16
+ model;
17
+ baseUrl;
18
+ networkConfig;
19
+ constructor(config) {
20
+ this.apiKey = config?.apiKey ?? requireEnv('ANTHROPIC_API_KEY');
21
+ this.model = config?.model ?? this.defaultModel;
22
+ this.baseUrl = config?.baseUrl ?? 'https://api.anthropic.com';
23
+ // Anthropic requests can be slow for complex tasks
24
+ this.networkConfig = {
25
+ timeout: 120000, // 2 minutes for complex reasoning
26
+ maxRetries: 3,
27
+ baseRetryDelay: 1000,
28
+ };
29
+ }
30
+ isConfigured() {
31
+ return hasEnv('ANTHROPIC_API_KEY');
32
+ }
33
+ async chat(messages, options) {
34
+ const model = options?.model ?? this.model;
35
+ // Separate system message from conversation
36
+ const systemMessage = messages.find(m => m.role === 'system');
37
+ const conversationMessages = messages
38
+ .filter(m => m.role !== 'system')
39
+ .map(m => ({
40
+ role: m.role,
41
+ content: m.content,
42
+ }));
43
+ // Build request body
44
+ const body = {
45
+ model,
46
+ max_tokens: options?.maxTokens ?? 4096,
47
+ temperature: options?.temperature ?? 0.7,
48
+ system: systemMessage?.content,
49
+ messages: conversationMessages,
50
+ ...(options?.stopSequences && { stop_sequences: options.stopSequences }),
51
+ };
52
+ try {
53
+ const { response } = await resilientFetch({
54
+ url: `${this.baseUrl}/v1/messages`,
55
+ init: {
56
+ method: 'POST',
57
+ headers: {
58
+ 'Content-Type': 'application/json',
59
+ 'x-api-key': this.apiKey,
60
+ 'anthropic-version': '2023-06-01',
61
+ },
62
+ body: JSON.stringify(body),
63
+ },
64
+ providerName: this.name,
65
+ networkConfig: this.networkConfig,
66
+ onRetry: (attempt, delay, error) => {
67
+ console.warn(`[Anthropic] Retry attempt ${attempt} after ${delay}ms: ${error.message}`);
68
+ },
69
+ });
70
+ if (!response.ok) {
71
+ const error = await response.text();
72
+ throw this.handleError(response.status, error);
73
+ }
74
+ const data = await response.json();
75
+ // Extract text from content blocks
76
+ const content = data.content
77
+ .filter(block => block.type === 'text')
78
+ .map(block => block.text)
79
+ .join('');
80
+ return {
81
+ content,
82
+ stopReason: this.mapStopReason(data.stop_reason),
83
+ usage: {
84
+ inputTokens: data.usage.input_tokens,
85
+ outputTokens: data.usage.output_tokens,
86
+ },
87
+ };
88
+ }
89
+ catch (error) {
90
+ if (error instanceof ProviderError)
91
+ throw error;
92
+ throw new ProviderError(`Anthropic request failed: ${error.message}`, this.name, 'NETWORK_ERROR', error);
93
+ }
94
+ }
95
+ handleError(status, body) {
96
+ let code = 'UNKNOWN';
97
+ if (status === 401)
98
+ code = 'AUTHENTICATION_FAILED';
99
+ else if (status === 429)
100
+ code = 'RATE_LIMITED';
101
+ else if (status === 400)
102
+ code = 'INVALID_REQUEST';
103
+ else if (status >= 500)
104
+ code = 'SERVER_ERROR';
105
+ return new ProviderError(`Anthropic API error (${status}): ${body}`, this.name, code);
106
+ }
107
+ mapStopReason(reason) {
108
+ switch (reason) {
109
+ case 'end_turn': return 'end_turn';
110
+ case 'max_tokens': return 'max_tokens';
111
+ case 'stop_sequence': return 'stop_sequence';
112
+ default: return 'end_turn';
113
+ }
114
+ }
115
+ }
116
+ // =============================================================================
117
+ // REGISTRATION
118
+ // =============================================================================
119
+ registerProvider('anthropic', {
120
+ priority: 1,
121
+ detect: () => hasEnv('ANTHROPIC_API_KEY'),
122
+ create: async () => new AnthropicProvider(),
123
+ });
124
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/providers/adapters/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Mock Provider
3
+ *
4
+ * A mock LLM provider for testing and demonstration.
5
+ * Always available as a fallback.
6
+ */
7
+ import type { LLMProvider, Message, ChatOptions, ChatResponse } from '../types.js';
8
+ export declare class MockProvider implements LLMProvider {
9
+ readonly name = "mock";
10
+ readonly defaultModel = "mock-model";
11
+ private callCount;
12
+ private currentScenario;
13
+ private scenarioIndex;
14
+ isConfigured(): boolean;
15
+ chat(messages: Message[], _options?: ChatOptions): Promise<ChatResponse>;
16
+ /**
17
+ * Reset the mock state for testing.
18
+ */
19
+ reset(): void;
20
+ /**
21
+ * Get the number of calls made.
22
+ */
23
+ getCallCount(): number;
24
+ }
25
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/mock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AAoErB,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,YAAY,gBAAgB;IAErC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,aAAa,CAAK;IAE1B,YAAY,IAAI,OAAO;IAIjB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8C9E;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB"}