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,101 @@
1
+ /**
2
+ * XDG Base Directory compliant paths for attocode.
3
+ *
4
+ * This module follows the XDG Base Directory Specification for storing
5
+ * application files in appropriate locations:
6
+ *
7
+ * - Config: ~/.config/attocode/ (or $XDG_CONFIG_HOME/attocode/)
8
+ * User-specific configuration files
9
+ *
10
+ * - Data: ~/.local/share/attocode/ (or $XDG_DATA_HOME/attocode/)
11
+ * User-specific data files (databases, persistent storage)
12
+ *
13
+ * - State: ~/.local/state/attocode/ (or $XDG_STATE_HOME/attocode/)
14
+ * User-specific state files (history, logs, runtime state)
15
+ *
16
+ * - Cache: ~/.cache/attocode/ (or $XDG_CACHE_HOME/attocode/)
17
+ * User-specific non-essential cached data
18
+ *
19
+ * - Project: .attocode/
20
+ * Project-specific files in the current working directory
21
+ *
22
+ * @see https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
23
+ */
24
+ /**
25
+ * Get the configuration directory path.
26
+ * Uses $XDG_CONFIG_HOME if set, otherwise defaults to ~/.config/attocode/
27
+ *
28
+ * @returns Absolute path to the configuration directory
29
+ */
30
+ export declare function getConfigDir(): string;
31
+ /**
32
+ * Get the data directory path.
33
+ * Uses $XDG_DATA_HOME if set, otherwise defaults to ~/.local/share/attocode/
34
+ *
35
+ * @returns Absolute path to the data directory
36
+ */
37
+ export declare function getDataDir(): string;
38
+ /**
39
+ * Get the state directory path.
40
+ * Uses $XDG_STATE_HOME if set, otherwise defaults to ~/.local/state/attocode/
41
+ *
42
+ * @returns Absolute path to the state directory
43
+ */
44
+ export declare function getStateDir(): string;
45
+ /**
46
+ * Get the cache directory path.
47
+ * Uses $XDG_CACHE_HOME if set, otherwise defaults to ~/.cache/attocode/
48
+ *
49
+ * @returns Absolute path to the cache directory
50
+ */
51
+ export declare function getCacheDir(): string;
52
+ /**
53
+ * Get the project-specific directory path.
54
+ * This is always .attocode/ within the specified working directory.
55
+ *
56
+ * @param cwd - The working directory (defaults to process.cwd())
57
+ * @returns Absolute path to the project directory
58
+ */
59
+ export declare function getProjectDir(cwd?: string): string;
60
+ /**
61
+ * Get the path to the main configuration file.
62
+ *
63
+ * @returns Absolute path to config.json
64
+ */
65
+ export declare function getConfigPath(): string;
66
+ /**
67
+ * Get the path to the sessions database.
68
+ *
69
+ * @returns Absolute path to sessions.db
70
+ */
71
+ export declare function getSessionsDbPath(): string;
72
+ /**
73
+ * Get the path to the command history file.
74
+ *
75
+ * @returns Absolute path to history file
76
+ */
77
+ export declare function getHistoryPath(): string;
78
+ /**
79
+ * Get the path to the global rules file.
80
+ *
81
+ * @returns Absolute path to rules.md
82
+ */
83
+ export declare function getGlobalRulesPath(): string;
84
+ /**
85
+ * Get the hierarchical MCP config paths.
86
+ * Returns paths in order of precedence (later overrides earlier):
87
+ * 1. Global user config: ~/.config/attocode/mcp.json
88
+ * 2. Workspace config: ./.mcp.json
89
+ *
90
+ * @param cwd - The working directory (defaults to process.cwd())
91
+ * @returns Array of config paths to check (in order of precedence)
92
+ */
93
+ export declare function getMCPConfigPaths(cwd?: string): string[];
94
+ /**
95
+ * Ensure all XDG directories exist.
96
+ * Creates config, data, state, and cache directories if they don't exist.
97
+ *
98
+ * @returns Promise that resolves when all directories are created
99
+ */
100
+ export declare function ensureDirectories(): Promise<void>;
101
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEjE;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,EAAE,CAKvE;AAMD;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQvD"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * XDG Base Directory compliant paths for attocode.
3
+ *
4
+ * This module follows the XDG Base Directory Specification for storing
5
+ * application files in appropriate locations:
6
+ *
7
+ * - Config: ~/.config/attocode/ (or $XDG_CONFIG_HOME/attocode/)
8
+ * User-specific configuration files
9
+ *
10
+ * - Data: ~/.local/share/attocode/ (or $XDG_DATA_HOME/attocode/)
11
+ * User-specific data files (databases, persistent storage)
12
+ *
13
+ * - State: ~/.local/state/attocode/ (or $XDG_STATE_HOME/attocode/)
14
+ * User-specific state files (history, logs, runtime state)
15
+ *
16
+ * - Cache: ~/.cache/attocode/ (or $XDG_CACHE_HOME/attocode/)
17
+ * User-specific non-essential cached data
18
+ *
19
+ * - Project: .attocode/
20
+ * Project-specific files in the current working directory
21
+ *
22
+ * @see https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
23
+ */
24
+ import { homedir } from 'os';
25
+ import { join } from 'path';
26
+ /**
27
+ * Get the configuration directory path.
28
+ * Uses $XDG_CONFIG_HOME if set, otherwise defaults to ~/.config/attocode/
29
+ *
30
+ * @returns Absolute path to the configuration directory
31
+ */
32
+ export function getConfigDir() {
33
+ const xdg = process.env.XDG_CONFIG_HOME;
34
+ return xdg ? join(xdg, 'attocode') : join(homedir(), '.config', 'attocode');
35
+ }
36
+ /**
37
+ * Get the data directory path.
38
+ * Uses $XDG_DATA_HOME if set, otherwise defaults to ~/.local/share/attocode/
39
+ *
40
+ * @returns Absolute path to the data directory
41
+ */
42
+ export function getDataDir() {
43
+ const xdg = process.env.XDG_DATA_HOME;
44
+ return xdg
45
+ ? join(xdg, 'attocode')
46
+ : join(homedir(), '.local', 'share', 'attocode');
47
+ }
48
+ /**
49
+ * Get the state directory path.
50
+ * Uses $XDG_STATE_HOME if set, otherwise defaults to ~/.local/state/attocode/
51
+ *
52
+ * @returns Absolute path to the state directory
53
+ */
54
+ export function getStateDir() {
55
+ const xdg = process.env.XDG_STATE_HOME;
56
+ return xdg
57
+ ? join(xdg, 'attocode')
58
+ : join(homedir(), '.local', 'state', 'attocode');
59
+ }
60
+ /**
61
+ * Get the cache directory path.
62
+ * Uses $XDG_CACHE_HOME if set, otherwise defaults to ~/.cache/attocode/
63
+ *
64
+ * @returns Absolute path to the cache directory
65
+ */
66
+ export function getCacheDir() {
67
+ const xdg = process.env.XDG_CACHE_HOME;
68
+ return xdg ? join(xdg, 'attocode') : join(homedir(), '.cache', 'attocode');
69
+ }
70
+ /**
71
+ * Get the project-specific directory path.
72
+ * This is always .attocode/ within the specified working directory.
73
+ *
74
+ * @param cwd - The working directory (defaults to process.cwd())
75
+ * @returns Absolute path to the project directory
76
+ */
77
+ export function getProjectDir(cwd = process.cwd()) {
78
+ return join(cwd, '.attocode');
79
+ }
80
+ // ============================================================================
81
+ // Specific file paths
82
+ // ============================================================================
83
+ /**
84
+ * Get the path to the main configuration file.
85
+ *
86
+ * @returns Absolute path to config.json
87
+ */
88
+ export function getConfigPath() {
89
+ return join(getConfigDir(), 'config.json');
90
+ }
91
+ /**
92
+ * Get the path to the sessions database.
93
+ *
94
+ * @returns Absolute path to sessions.db
95
+ */
96
+ export function getSessionsDbPath() {
97
+ return join(getDataDir(), 'sessions.db');
98
+ }
99
+ /**
100
+ * Get the path to the command history file.
101
+ *
102
+ * @returns Absolute path to history file
103
+ */
104
+ export function getHistoryPath() {
105
+ return join(getStateDir(), 'history');
106
+ }
107
+ /**
108
+ * Get the path to the global rules file.
109
+ *
110
+ * @returns Absolute path to rules.md
111
+ */
112
+ export function getGlobalRulesPath() {
113
+ return join(getConfigDir(), 'rules.md');
114
+ }
115
+ /**
116
+ * Get the hierarchical MCP config paths.
117
+ * Returns paths in order of precedence (later overrides earlier):
118
+ * 1. Global user config: ~/.config/attocode/mcp.json
119
+ * 2. Workspace config: ./.mcp.json
120
+ *
121
+ * @param cwd - The working directory (defaults to process.cwd())
122
+ * @returns Array of config paths to check (in order of precedence)
123
+ */
124
+ export function getMCPConfigPaths(cwd = process.cwd()) {
125
+ return [
126
+ join(getConfigDir(), 'mcp.json'), // Global user config
127
+ join(cwd, '.mcp.json'), // Workspace-specific
128
+ ];
129
+ }
130
+ // ============================================================================
131
+ // Directory management
132
+ // ============================================================================
133
+ /**
134
+ * Ensure all XDG directories exist.
135
+ * Creates config, data, state, and cache directories if they don't exist.
136
+ *
137
+ * @returns Promise that resolves when all directories are created
138
+ */
139
+ export async function ensureDirectories() {
140
+ const { mkdir } = await import('fs/promises');
141
+ await Promise.all([
142
+ mkdir(getConfigDir(), { recursive: true }),
143
+ mkdir(getDataDir(), { recursive: true }),
144
+ mkdir(getStateDir(), { recursive: true }),
145
+ mkdir(getCacheDir(), { recursive: true }),
146
+ ]);
147
+ }
148
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Persistence Module
3
+ *
4
+ * Provides schema migration and database management utilities
5
+ * for SQLite-based session storage.
6
+ *
7
+ * ## New Embedded Migration System
8
+ *
9
+ * Migrations are now embedded directly in TypeScript code, eliminating
10
+ * the need for external SQL files and file path resolution issues.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import Database from 'better-sqlite3';
15
+ * import { applyMigrations, needsMigration, getMigrationStatus } from './persistence/index.js';
16
+ *
17
+ * const db = new Database('sessions.db');
18
+ *
19
+ * // Check and apply pending migrations (no path needed!)
20
+ * if (needsMigration(db)) {
21
+ * const result = applyMigrations(db);
22
+ * console.log(`Applied ${result.applied} migrations, now at version ${result.currentVersion}`);
23
+ * }
24
+ *
25
+ * // Get detailed status
26
+ * const status = getMigrationStatus(db);
27
+ * console.log(`Current: v${status.currentVersion}, Latest: v${status.latestVersion}`);
28
+ *
29
+ * // Check which features are available
30
+ * const features = detectFeatures(db);
31
+ * if (features.goals) {
32
+ * console.log('Goal tracking is available!');
33
+ * }
34
+ * ```
35
+ */
36
+ export { type Migration, type MigrationResult, type SchemaFeatures, MIGRATIONS, getSchemaVersion, setSchemaVersion, needsMigration, applyMigrations, getMigrationStatus, detectFeatures, } from './schema.js';
37
+ export { type MigrationFile, loadMigrations, getPendingMigrations, applyMigrationsTo, applyMigrations as applyFileMigrations, getMigrationStatus as getFileMigrationStatus, needsMigration as fileNeedsMigration, } from './migrator.js';
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,UAAU,EAEV,gBAAgB,EAChB,gBAAgB,EAEhB,cAAc,EACd,eAAe,EACf,kBAAkB,EAElB,cAAc,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,aAAa,EAClB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,IAAI,mBAAmB,EACtC,kBAAkB,IAAI,sBAAsB,EAC5C,cAAc,IAAI,kBAAkB,GACrC,MAAM,eAAe,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Persistence Module
3
+ *
4
+ * Provides schema migration and database management utilities
5
+ * for SQLite-based session storage.
6
+ *
7
+ * ## New Embedded Migration System
8
+ *
9
+ * Migrations are now embedded directly in TypeScript code, eliminating
10
+ * the need for external SQL files and file path resolution issues.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import Database from 'better-sqlite3';
15
+ * import { applyMigrations, needsMigration, getMigrationStatus } from './persistence/index.js';
16
+ *
17
+ * const db = new Database('sessions.db');
18
+ *
19
+ * // Check and apply pending migrations (no path needed!)
20
+ * if (needsMigration(db)) {
21
+ * const result = applyMigrations(db);
22
+ * console.log(`Applied ${result.applied} migrations, now at version ${result.currentVersion}`);
23
+ * }
24
+ *
25
+ * // Get detailed status
26
+ * const status = getMigrationStatus(db);
27
+ * console.log(`Current: v${status.currentVersion}, Latest: v${status.latestVersion}`);
28
+ *
29
+ * // Check which features are available
30
+ * const features = detectFeatures(db);
31
+ * if (features.goals) {
32
+ * console.log('Goal tracking is available!');
33
+ * }
34
+ * ```
35
+ */
36
+ // New embedded migration system
37
+ export {
38
+ // Embedded migrations
39
+ MIGRATIONS,
40
+ // Version management
41
+ getSchemaVersion, setSchemaVersion,
42
+ // Migration execution
43
+ needsMigration, applyMigrations, getMigrationStatus,
44
+ // Feature detection
45
+ detectFeatures, } from './schema.js';
46
+ // Legacy file-based migrator (for backwards compatibility with external migrations)
47
+ export { loadMigrations, getPendingMigrations, applyMigrationsTo, applyMigrations as applyFileMigrations, getMigrationStatus as getFileMigrationStatus, needsMigration as fileNeedsMigration, } from './migrator.js';
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,gCAAgC;AAChC,OAAO;AAKL,sBAAsB;AACtB,UAAU;AACV,qBAAqB;AACrB,gBAAgB,EAChB,gBAAgB;AAChB,sBAAsB;AACtB,cAAc,EACd,eAAe,EACf,kBAAkB;AAClB,oBAAoB;AACpB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,oFAAoF;AACpF,OAAO,EAEL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,IAAI,mBAAmB,EACtC,kBAAkB,IAAI,sBAAsB,EAC5C,cAAc,IAAI,kBAAkB,GACrC,MAAM,eAAe,CAAC"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Schema Migrator for SQLite Database
3
+ *
4
+ * Handles versioned SQL migrations using PRAGMA user_version.
5
+ * Migrations are applied sequentially and tracked in the database.
6
+ *
7
+ * ## Concurrency Warning
8
+ *
9
+ * This migrator is NOT safe for concurrent access. If multiple processes
10
+ * attempt to run migrations simultaneously, race conditions may occur.
11
+ * **Recommendation:** Run migrations from a single process at startup
12
+ * before spawning worker processes or subagents.
13
+ *
14
+ * ## Partial Failure Recovery
15
+ *
16
+ * SQLite requires autocommit mode for ALTER TABLE statements, so each
17
+ * migration runs outside a transaction. If a migration fails partway:
18
+ * - The schema version reflects the last successful migration
19
+ * - The database may have partial changes from the failed migration
20
+ *
21
+ * **Recommendation:** Design migrations to be idempotent (re-runnable).
22
+ * Column additions already handle "duplicate column name" errors gracefully.
23
+ * After fixing an issue, re-run applyMigrations() to continue.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * import Database from 'better-sqlite3';
28
+ * import { applyMigrations, needsMigration } from './migrator.js';
29
+ *
30
+ * const db = new Database('sessions.db');
31
+ * if (needsMigration(db, './migrations')) {
32
+ * const result = applyMigrations(db, './migrations');
33
+ * console.log(`Applied ${result.applied} migrations`);
34
+ * }
35
+ * ```
36
+ */
37
+ import Database from 'better-sqlite3';
38
+ /**
39
+ * Represents a parsed migration file.
40
+ */
41
+ export interface MigrationFile {
42
+ /** Migration version number (extracted from filename) */
43
+ version: number;
44
+ /** Human-readable migration name */
45
+ name: string;
46
+ /** SQL content to execute */
47
+ sql: string;
48
+ }
49
+ /**
50
+ * Result of applying migrations.
51
+ */
52
+ export interface MigrationResult {
53
+ /** Number of migrations applied */
54
+ applied: number;
55
+ /** Current schema version after migration */
56
+ currentVersion: number;
57
+ /** List of applied migration names */
58
+ appliedMigrations: string[];
59
+ }
60
+ /**
61
+ * Get the current schema version from the database.
62
+ * Uses SQLite's PRAGMA user_version.
63
+ *
64
+ * @param db - Database instance
65
+ * @returns Current schema version (0 if never migrated)
66
+ */
67
+ export declare function getSchemaVersion(db: Database.Database): number;
68
+ /**
69
+ * Set the schema version in the database.
70
+ * Uses SQLite's PRAGMA user_version.
71
+ *
72
+ * @param db - Database instance
73
+ * @param version - Version number to set
74
+ */
75
+ export declare function setSchemaVersion(db: Database.Database, version: number): void;
76
+ /**
77
+ * Load all migration files from a directory.
78
+ * Sorts migrations by version number.
79
+ *
80
+ * @param dir - Directory containing SQL migration files
81
+ * @returns Array of migration files sorted by version
82
+ */
83
+ export declare function loadMigrations(dir: string): MigrationFile[];
84
+ /**
85
+ * Check if the database needs migration.
86
+ *
87
+ * @param db - Database instance
88
+ * @param migrationsDir - Directory containing SQL migration files
89
+ * @returns True if there are pending migrations
90
+ */
91
+ export declare function needsMigration(db: Database.Database, migrationsDir: string): boolean;
92
+ /**
93
+ * Get the list of pending migrations.
94
+ *
95
+ * @param db - Database instance
96
+ * @param migrationsDir - Directory containing SQL migration files
97
+ * @returns Array of migrations that need to be applied
98
+ */
99
+ export declare function getPendingMigrations(db: Database.Database, migrationsDir: string): MigrationFile[];
100
+ /**
101
+ * Apply all pending migrations to the database.
102
+ * Migrations are applied in a transaction for atomicity.
103
+ *
104
+ * @param db - Database instance
105
+ * @param migrationsDir - Directory containing SQL migration files
106
+ * @returns Result containing number of applied migrations and current version
107
+ * @throws Error if any migration fails (transaction is rolled back)
108
+ */
109
+ export declare function applyMigrations(db: Database.Database, migrationsDir: string): MigrationResult;
110
+ /**
111
+ * Apply migrations up to a specific version.
112
+ *
113
+ * @param db - Database instance
114
+ * @param migrationsDir - Directory containing SQL migration files
115
+ * @param targetVersion - Maximum version to apply
116
+ * @returns Result containing number of applied migrations and current version
117
+ */
118
+ export declare function applyMigrationsTo(db: Database.Database, migrationsDir: string, targetVersion: number): MigrationResult;
119
+ /**
120
+ * Get migration status for the database.
121
+ *
122
+ * @param db - Database instance
123
+ * @param migrationsDir - Directory containing SQL migration files
124
+ * @returns Object containing version info and pending migrations
125
+ */
126
+ export declare function getMigrationStatus(db: Database.Database, migrationsDir: string): {
127
+ currentVersion: number;
128
+ latestVersion: number;
129
+ pendingCount: number;
130
+ pendingMigrations: Array<{
131
+ version: number;
132
+ name: string;
133
+ }>;
134
+ };
135
+ //# sourceMappingURL=migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../../src/persistence/migrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAQtC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAG9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7E;AAuBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CA6B3D;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAQpF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,aAAa,EAAE,CAKlG;AA+DD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,eAAe,CAyC7F;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,eAAe,CAuCjB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG;IAChF,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D,CAWA"}