@nanocollective/nanocoder 1.18.0 → 1.19.1

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 (603) hide show
  1. package/README.md +176 -8
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/ai-sdk-client-empty-message.spec.js.map +1 -1
  4. package/dist/ai-sdk-client.d.ts +1 -1
  5. package/dist/ai-sdk-client.d.ts.map +1 -1
  6. package/dist/ai-sdk-client.js +261 -150
  7. package/dist/ai-sdk-client.js.map +1 -1
  8. package/dist/app/utils/appUtils.d.ts +1 -1
  9. package/dist/app/utils/appUtils.d.ts.map +1 -1
  10. package/dist/app/utils/appUtils.js +78 -12
  11. package/dist/app/utils/appUtils.js.map +1 -1
  12. package/dist/app.d.ts +22 -1
  13. package/dist/app.d.ts.map +1 -1
  14. package/dist/app.js +353 -48
  15. package/dist/app.js.map +1 -1
  16. package/dist/cli.js +37 -2
  17. package/dist/cli.js.map +1 -1
  18. package/dist/cli.spec.d.ts +2 -0
  19. package/dist/cli.spec.d.ts.map +1 -0
  20. package/dist/cli.spec.js +101 -0
  21. package/dist/cli.spec.js.map +1 -0
  22. package/dist/client-factory.d.ts.map +1 -1
  23. package/dist/client-factory.js +2 -2
  24. package/dist/client-factory.js.map +1 -1
  25. package/dist/commands/checkpoint.d.ts +6 -0
  26. package/dist/commands/checkpoint.d.ts.map +1 -0
  27. package/dist/commands/checkpoint.js +277 -0
  28. package/dist/commands/checkpoint.js.map +1 -0
  29. package/dist/commands/clear.d.ts.map +1 -1
  30. package/dist/commands/clear.js +1 -1
  31. package/dist/commands/clear.js.map +1 -1
  32. package/dist/commands/custom-commands.d.ts.map +1 -1
  33. package/dist/commands/custom-commands.js +4 -4
  34. package/dist/commands/custom-commands.js.map +1 -1
  35. package/dist/commands/exit.d.ts.map +1 -1
  36. package/dist/commands/exit.js.map +1 -1
  37. package/dist/commands/export.d.ts.map +1 -1
  38. package/dist/commands/export.js +2 -2
  39. package/dist/commands/export.js.map +1 -1
  40. package/dist/commands/help.d.ts.map +1 -1
  41. package/dist/commands/help.js +5 -5
  42. package/dist/commands/help.js.map +1 -1
  43. package/dist/commands/index.d.ts +1 -1
  44. package/dist/commands/index.d.ts.map +1 -1
  45. package/dist/commands/index.js +1 -1
  46. package/dist/commands/index.js.map +1 -1
  47. package/dist/commands/init.d.ts.map +1 -1
  48. package/dist/commands/init.js +15 -14
  49. package/dist/commands/init.js.map +1 -1
  50. package/dist/commands/lsp.d.ts.map +1 -1
  51. package/dist/commands/lsp.js +6 -6
  52. package/dist/commands/lsp.js.map +1 -1
  53. package/dist/commands/mcp.d.ts +1 -1
  54. package/dist/commands/mcp.d.ts.map +1 -1
  55. package/dist/commands/mcp.js +6 -6
  56. package/dist/commands/mcp.js.map +1 -1
  57. package/dist/commands/model-database.d.ts.map +1 -1
  58. package/dist/commands/model-database.js +8 -8
  59. package/dist/commands/model-database.js.map +1 -1
  60. package/dist/commands/model.d.ts.map +1 -1
  61. package/dist/commands/model.js.map +1 -1
  62. package/dist/commands/provider.d.ts.map +1 -1
  63. package/dist/commands/provider.js.map +1 -1
  64. package/dist/commands/setup-config.js +1 -1
  65. package/dist/commands/setup-config.js.map +1 -1
  66. package/dist/commands/status.d.ts.map +1 -1
  67. package/dist/commands/status.js.map +1 -1
  68. package/dist/commands/theme.d.ts.map +1 -1
  69. package/dist/commands/theme.js.map +1 -1
  70. package/dist/commands/update.d.ts.map +1 -1
  71. package/dist/commands/update.js +5 -5
  72. package/dist/commands/update.js.map +1 -1
  73. package/dist/commands/usage.d.ts.map +1 -1
  74. package/dist/commands/usage.js +3 -3
  75. package/dist/commands/usage.js.map +1 -1
  76. package/dist/commands.d.ts.map +1 -1
  77. package/dist/commands.js +1 -1
  78. package/dist/commands.js.map +1 -1
  79. package/dist/components/assistant-message.d.ts.map +1 -1
  80. package/dist/components/assistant-message.js +2 -2
  81. package/dist/components/assistant-message.js.map +1 -1
  82. package/dist/components/bash-execution-indicator.d.ts.map +1 -1
  83. package/dist/components/bash-execution-indicator.js +2 -2
  84. package/dist/components/bash-execution-indicator.js.map +1 -1
  85. package/dist/components/cancelling-indicator.js +3 -3
  86. package/dist/components/cancelling-indicator.js.map +1 -1
  87. package/dist/components/chat-queue.d.ts.map +1 -1
  88. package/dist/components/chat-queue.js +1 -1
  89. package/dist/components/chat-queue.js.map +1 -1
  90. package/dist/components/checkpoint-display.d.ts +8 -0
  91. package/dist/components/checkpoint-display.d.ts.map +1 -0
  92. package/dist/components/checkpoint-display.js +29 -0
  93. package/dist/components/checkpoint-display.js.map +1 -0
  94. package/dist/components/checkpoint-selector.d.ts +11 -0
  95. package/dist/components/checkpoint-selector.d.ts.map +1 -0
  96. package/dist/components/checkpoint-selector.js +55 -0
  97. package/dist/components/checkpoint-selector.js.map +1 -0
  98. package/dist/components/error-message.d.ts.map +1 -1
  99. package/dist/components/error-message.js +4 -4
  100. package/dist/components/error-message.js.map +1 -1
  101. package/dist/components/info-message.d.ts.map +1 -1
  102. package/dist/components/info-message.js +4 -4
  103. package/dist/components/info-message.js.map +1 -1
  104. package/dist/components/model-selector.d.ts.map +1 -1
  105. package/dist/components/model-selector.js +7 -7
  106. package/dist/components/model-selector.js.map +1 -1
  107. package/dist/components/provider-selector.d.ts.map +1 -1
  108. package/dist/components/provider-selector.js +6 -6
  109. package/dist/components/provider-selector.js.map +1 -1
  110. package/dist/components/security-disclaimer.d.ts.map +1 -1
  111. package/dist/components/security-disclaimer.js +4 -4
  112. package/dist/components/security-disclaimer.js.map +1 -1
  113. package/dist/components/status.d.ts +3 -1
  114. package/dist/components/status.d.ts.map +1 -1
  115. package/dist/components/status.js +17 -9
  116. package/dist/components/status.js.map +1 -1
  117. package/dist/components/success-message.d.ts.map +1 -1
  118. package/dist/components/success-message.js +4 -4
  119. package/dist/components/success-message.js.map +1 -1
  120. package/dist/components/theme-selector.d.ts.map +1 -1
  121. package/dist/components/theme-selector.js +8 -8
  122. package/dist/components/theme-selector.js.map +1 -1
  123. package/dist/components/tool-confirmation.d.ts.map +1 -1
  124. package/dist/components/tool-confirmation.js +7 -7
  125. package/dist/components/tool-confirmation.js.map +1 -1
  126. package/dist/components/tool-execution-indicator.d.ts.map +1 -1
  127. package/dist/components/tool-execution-indicator.js +2 -2
  128. package/dist/components/tool-execution-indicator.js.map +1 -1
  129. package/dist/components/tool-message.d.ts.map +1 -1
  130. package/dist/components/tool-message.js +4 -5
  131. package/dist/components/tool-message.js.map +1 -1
  132. package/dist/components/ui/titled-box.d.ts +16 -0
  133. package/dist/components/ui/titled-box.d.ts.map +1 -0
  134. package/dist/components/ui/titled-box.js +10 -0
  135. package/dist/components/ui/titled-box.js.map +1 -0
  136. package/dist/components/usage/progress-bar.d.ts.map +1 -1
  137. package/dist/components/usage/progress-bar.js +3 -0
  138. package/dist/components/usage/progress-bar.js.map +1 -1
  139. package/dist/components/usage/usage-display.d.ts.map +1 -1
  140. package/dist/components/usage/usage-display.js +7 -4
  141. package/dist/components/usage/usage-display.js.map +1 -1
  142. package/dist/components/user-input.d.ts.map +1 -1
  143. package/dist/components/user-input.js +7 -7
  144. package/dist/components/user-input.js.map +1 -1
  145. package/dist/components/user-message.d.ts.map +1 -1
  146. package/dist/components/user-message.js +1 -1
  147. package/dist/components/user-message.js.map +1 -1
  148. package/dist/components/vscode-extension-prompt.js +3 -3
  149. package/dist/components/vscode-extension-prompt.js.map +1 -1
  150. package/dist/components/warning-message.d.ts.map +1 -1
  151. package/dist/components/warning-message.js +4 -4
  152. package/dist/components/warning-message.js.map +1 -1
  153. package/dist/components/welcome-message.d.ts.map +1 -1
  154. package/dist/components/welcome-message.js +4 -4
  155. package/dist/components/welcome-message.js.map +1 -1
  156. package/dist/config/index.d.ts.map +1 -1
  157. package/dist/config/index.js +7 -7
  158. package/dist/config/index.js.map +1 -1
  159. package/dist/config/index.spec.js +4 -4
  160. package/dist/config/index.spec.js.map +1 -1
  161. package/dist/config/paths.spec.js +1 -1
  162. package/dist/config/paths.spec.js.map +1 -1
  163. package/dist/config/preferences.d.ts +0 -2
  164. package/dist/config/preferences.d.ts.map +1 -1
  165. package/dist/config/preferences.js +1 -11
  166. package/dist/config/preferences.js.map +1 -1
  167. package/dist/custom-commands/executor.d.ts.map +1 -1
  168. package/dist/custom-commands/executor.js.map +1 -1
  169. package/dist/custom-commands/loader.d.ts.map +1 -1
  170. package/dist/custom-commands/loader.js +1 -1
  171. package/dist/custom-commands/loader.js.map +1 -1
  172. package/dist/custom-commands/parser.d.ts.map +1 -1
  173. package/dist/custom-commands/parser.js.map +1 -1
  174. package/dist/hooks/useAppInitialization.d.ts +7 -5
  175. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  176. package/dist/hooks/useAppInitialization.js +21 -22
  177. package/dist/hooks/useAppInitialization.js.map +1 -1
  178. package/dist/hooks/useAppState.d.ts +22 -5
  179. package/dist/hooks/useAppState.d.ts.map +1 -1
  180. package/dist/hooks/useAppState.js +17 -1
  181. package/dist/hooks/useAppState.js.map +1 -1
  182. package/dist/hooks/useChatHandler.d.ts +4 -2
  183. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  184. package/dist/hooks/useChatHandler.js +35 -10
  185. package/dist/hooks/useChatHandler.js.map +1 -1
  186. package/dist/hooks/useDirectoryTrust.js +1 -1
  187. package/dist/hooks/useDirectoryTrust.js.map +1 -1
  188. package/dist/hooks/useInputState.js +2 -2
  189. package/dist/hooks/useInputState.js.map +1 -1
  190. package/dist/hooks/useModeHandlers.d.ts +1 -1
  191. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  192. package/dist/hooks/useModeHandlers.js +3 -3
  193. package/dist/hooks/useModeHandlers.js.map +1 -1
  194. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  195. package/dist/hooks/useTerminalWidth.js +3 -3
  196. package/dist/hooks/useTerminalWidth.js.map +1 -1
  197. package/dist/hooks/useTheme.d.ts.map +1 -1
  198. package/dist/hooks/useTheme.js +1 -1
  199. package/dist/hooks/useTheme.js.map +1 -1
  200. package/dist/hooks/useToolHandler.d.ts +1 -1
  201. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  202. package/dist/hooks/useToolHandler.js +4 -4
  203. package/dist/hooks/useToolHandler.js.map +1 -1
  204. package/dist/hooks/useUIState.d.ts +1 -1
  205. package/dist/hooks/useUIState.d.ts.map +1 -1
  206. package/dist/hooks/useUIState.js.map +1 -1
  207. package/dist/hooks/useVSCodeServer.js +2 -2
  208. package/dist/hooks/useVSCodeServer.js.map +1 -1
  209. package/dist/init/agents-template-generator.d.ts +1 -1
  210. package/dist/init/agents-template-generator.d.ts.map +1 -1
  211. package/dist/init/agents-template-generator.js.map +1 -1
  212. package/dist/init/existing-rules-extractor.js +1 -1
  213. package/dist/init/existing-rules-extractor.js.map +1 -1
  214. package/dist/init/file-scanner.js +2 -2
  215. package/dist/init/file-scanner.js.map +1 -1
  216. package/dist/init/framework-detector.js +1 -1
  217. package/dist/init/framework-detector.js.map +1 -1
  218. package/dist/init/project-analyzer.d.ts +1 -1
  219. package/dist/init/project-analyzer.d.ts.map +1 -1
  220. package/dist/init/project-analyzer.js +3 -3
  221. package/dist/init/project-analyzer.js.map +1 -1
  222. package/dist/lsp/lsp-client.d.ts +1 -1
  223. package/dist/lsp/lsp-client.d.ts.map +1 -1
  224. package/dist/lsp/lsp-client.js +1 -1
  225. package/dist/lsp/lsp-client.js.map +1 -1
  226. package/dist/lsp/lsp-client.spec.js +1 -2
  227. package/dist/lsp/lsp-client.spec.js.map +1 -1
  228. package/dist/lsp/lsp-manager.d.ts +1 -1
  229. package/dist/lsp/lsp-manager.d.ts.map +1 -1
  230. package/dist/lsp/lsp-manager.js.map +1 -1
  231. package/dist/lsp/lsp-manager.spec.js +1 -1
  232. package/dist/lsp/lsp-manager.spec.js.map +1 -1
  233. package/dist/lsp/protocol.spec.js +1 -1
  234. package/dist/lsp/protocol.spec.js.map +1 -1
  235. package/dist/lsp/server-discovery.spec.js +1 -1
  236. package/dist/lsp/server-discovery.spec.js.map +1 -1
  237. package/dist/markdown-parser/index.spec.js.map +1 -1
  238. package/dist/markdown-parser/table-parser.spec.js.map +1 -1
  239. package/dist/mcp/mcp-client.d.ts +3 -2
  240. package/dist/mcp/mcp-client.d.ts.map +1 -1
  241. package/dist/mcp/mcp-client.js +264 -91
  242. package/dist/mcp/mcp-client.js.map +1 -1
  243. package/dist/mcp/transport-factory.d.ts +1 -1
  244. package/dist/mcp/transport-factory.d.ts.map +1 -1
  245. package/dist/mcp/transport-factory.js +16 -3
  246. package/dist/mcp/transport-factory.js.map +1 -1
  247. package/dist/mcp/transport-factory.spec.js +30 -48
  248. package/dist/mcp/transport-factory.spec.js.map +1 -1
  249. package/dist/message-handler.d.ts +1 -1
  250. package/dist/message-handler.d.ts.map +1 -1
  251. package/dist/model-database/database-engine.d.ts.map +1 -1
  252. package/dist/model-database/database-engine.js.map +1 -1
  253. package/dist/model-database/database-engine.spec.js.map +1 -1
  254. package/dist/model-database/model-database.js +1 -1
  255. package/dist/model-database/model-database.js.map +1 -1
  256. package/dist/model-database/model-engine.d.ts.map +1 -1
  257. package/dist/model-database/model-engine.js.map +1 -1
  258. package/dist/model-database/model-engine.spec.js +1 -1
  259. package/dist/model-database/model-engine.spec.js.map +1 -1
  260. package/dist/model-database/model-fetcher.d.ts.map +1 -1
  261. package/dist/model-database/model-fetcher.js +2 -1
  262. package/dist/model-database/model-fetcher.js.map +1 -1
  263. package/dist/model-database/model-fetcher.spec.js +1 -1
  264. package/dist/model-database/model-fetcher.spec.js.map +1 -1
  265. package/dist/models/models-cache.d.ts +1 -1
  266. package/dist/models/models-cache.d.ts.map +1 -1
  267. package/dist/models/models-cache.js +1 -1
  268. package/dist/models/models-cache.js.map +1 -1
  269. package/dist/models/models-dev-client.d.ts.map +1 -1
  270. package/dist/models/models-dev-client.js +18 -10
  271. package/dist/models/models-dev-client.js.map +1 -1
  272. package/dist/prompt-history.js +2 -2
  273. package/dist/prompt-history.js.map +1 -1
  274. package/dist/services/checkpoint-manager.d.ts +68 -0
  275. package/dist/services/checkpoint-manager.d.ts.map +1 -0
  276. package/dist/services/checkpoint-manager.js +345 -0
  277. package/dist/services/checkpoint-manager.js.map +1 -0
  278. package/dist/services/checkpoint-manager.spec.d.ts +2 -0
  279. package/dist/services/checkpoint-manager.spec.d.ts.map +1 -0
  280. package/dist/services/checkpoint-manager.spec.js +353 -0
  281. package/dist/services/checkpoint-manager.spec.js.map +1 -0
  282. package/dist/services/file-snapshot.d.ts +32 -0
  283. package/dist/services/file-snapshot.d.ts.map +1 -0
  284. package/dist/services/file-snapshot.js +161 -0
  285. package/dist/services/file-snapshot.js.map +1 -0
  286. package/dist/services/file-snapshot.spec.d.ts +2 -0
  287. package/dist/services/file-snapshot.spec.d.ts.map +1 -0
  288. package/dist/services/file-snapshot.spec.js +285 -0
  289. package/dist/services/file-snapshot.spec.js.map +1 -0
  290. package/dist/test-utils/render-with-theme.d.ts +7 -0
  291. package/dist/test-utils/render-with-theme.d.ts.map +1 -0
  292. package/dist/test-utils/render-with-theme.js +38 -0
  293. package/dist/test-utils/render-with-theme.js.map +1 -0
  294. package/dist/tokenization/tokenizer-factory.js +2 -2
  295. package/dist/tokenization/tokenizer-factory.js.map +1 -1
  296. package/dist/tokenization/tokenizer-factory.spec.js +2 -2
  297. package/dist/tokenization/tokenizer-factory.spec.js.map +1 -1
  298. package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts +1 -1
  299. package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts.map +1 -1
  300. package/dist/tokenization/tokenizers/anthropic-tokenizer.js.map +1 -1
  301. package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.js.map +1 -1
  302. package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts +1 -1
  303. package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts.map +1 -1
  304. package/dist/tokenization/tokenizers/fallback-tokenizer.spec.js.map +1 -1
  305. package/dist/tokenization/tokenizers/llama-tokenizer.d.ts +1 -1
  306. package/dist/tokenization/tokenizers/llama-tokenizer.d.ts.map +1 -1
  307. package/dist/tokenization/tokenizers/llama-tokenizer.js.map +1 -1
  308. package/dist/tokenization/tokenizers/llama-tokenizer.spec.js.map +1 -1
  309. package/dist/tokenization/tokenizers/openai-tokenizer.d.ts +1 -1
  310. package/dist/tokenization/tokenizers/openai-tokenizer.d.ts.map +1 -1
  311. package/dist/tokenization/tokenizers/openai-tokenizer.js.map +1 -1
  312. package/dist/tokenization/tokenizers/openai-tokenizer.spec.js.map +1 -1
  313. package/dist/tool-calling/json-parser.d.ts.map +1 -1
  314. package/dist/tool-calling/json-parser.js +2 -10
  315. package/dist/tool-calling/json-parser.js.map +1 -1
  316. package/dist/tool-calling/json-parser.spec.js +7 -7
  317. package/dist/tool-calling/json-parser.spec.js.map +1 -1
  318. package/dist/tool-calling/tool-parser.d.ts.map +1 -1
  319. package/dist/tool-calling/tool-parser.js +1 -1
  320. package/dist/tool-calling/tool-parser.js.map +1 -1
  321. package/dist/tool-calling/tool-parser.spec.js +3 -3
  322. package/dist/tool-calling/tool-parser.spec.js.map +1 -1
  323. package/dist/tools/create-file.d.ts.map +1 -1
  324. package/dist/tools/create-file.js +7 -7
  325. package/dist/tools/create-file.js.map +1 -1
  326. package/dist/tools/delete-lines.d.ts.map +1 -1
  327. package/dist/tools/delete-lines.js +9 -9
  328. package/dist/tools/delete-lines.js.map +1 -1
  329. package/dist/tools/execute-bash.d.ts.map +1 -1
  330. package/dist/tools/execute-bash.js +3 -3
  331. package/dist/tools/execute-bash.js.map +1 -1
  332. package/dist/tools/execute-function.spec.js +4 -4
  333. package/dist/tools/execute-function.spec.js.map +1 -1
  334. package/dist/tools/fetch-url.d.ts.map +1 -1
  335. package/dist/tools/fetch-url.js +3 -3
  336. package/dist/tools/fetch-url.js.map +1 -1
  337. package/dist/tools/find-files.d.ts.map +1 -1
  338. package/dist/tools/find-files.js +6 -6
  339. package/dist/tools/find-files.js.map +1 -1
  340. package/dist/tools/index.d.ts +1 -1
  341. package/dist/tools/index.d.ts.map +1 -1
  342. package/dist/tools/index.js +7 -7
  343. package/dist/tools/index.js.map +1 -1
  344. package/dist/tools/insert-lines.d.ts.map +1 -1
  345. package/dist/tools/insert-lines.js +8 -8
  346. package/dist/tools/insert-lines.js.map +1 -1
  347. package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -1
  348. package/dist/tools/lsp-get-diagnostics.js +5 -5
  349. package/dist/tools/lsp-get-diagnostics.js.map +1 -1
  350. package/dist/tools/needs-approval.spec.js +6 -6
  351. package/dist/tools/needs-approval.spec.js.map +1 -1
  352. package/dist/tools/read-file.js +6 -6
  353. package/dist/tools/read-file.js.map +1 -1
  354. package/dist/tools/replace-lines.d.ts.map +1 -1
  355. package/dist/tools/replace-lines.js +8 -8
  356. package/dist/tools/replace-lines.js.map +1 -1
  357. package/dist/tools/search-file-contents.d.ts.map +1 -1
  358. package/dist/tools/search-file-contents.js +6 -6
  359. package/dist/tools/search-file-contents.js.map +1 -1
  360. package/dist/tools/tool-manager.d.ts +1 -1
  361. package/dist/tools/tool-manager.d.ts.map +1 -1
  362. package/dist/tools/tool-manager.js +1 -1
  363. package/dist/tools/tool-manager.js.map +1 -1
  364. package/dist/tools/tool-registry.d.ts +1 -1
  365. package/dist/tools/tool-registry.d.ts.map +1 -1
  366. package/dist/tools/web-search.d.ts.map +1 -1
  367. package/dist/tools/web-search.js +4 -4
  368. package/dist/tools/web-search.js.map +1 -1
  369. package/dist/types/app.d.ts +6 -3
  370. package/dist/types/app.d.ts.map +1 -1
  371. package/dist/types/checkpoint.d.ts +43 -0
  372. package/dist/types/checkpoint.d.ts.map +1 -0
  373. package/dist/types/checkpoint.js +2 -0
  374. package/dist/types/checkpoint.js.map +1 -0
  375. package/dist/types/config.d.ts +0 -1
  376. package/dist/types/config.d.ts.map +1 -1
  377. package/dist/types/core-connection-status.spec.js.map +1 -1
  378. package/dist/types/core.d.ts +1 -1
  379. package/dist/types/core.d.ts.map +1 -1
  380. package/dist/types/core.js +1 -1
  381. package/dist/types/core.js.map +1 -1
  382. package/dist/types/index.d.ts +1 -0
  383. package/dist/types/index.d.ts.map +1 -1
  384. package/dist/types/index.js +1 -0
  385. package/dist/types/index.js.map +1 -1
  386. package/dist/usage/calculator.spec.js +1 -1
  387. package/dist/usage/calculator.spec.js.map +1 -1
  388. package/dist/usage/storage.d.ts +1 -1
  389. package/dist/usage/storage.d.ts.map +1 -1
  390. package/dist/usage/storage.js +9 -3
  391. package/dist/usage/storage.js.map +1 -1
  392. package/dist/usage/storage.spec.js +3 -3
  393. package/dist/usage/storage.spec.js.map +1 -1
  394. package/dist/usage/tracker.d.ts.map +1 -1
  395. package/dist/usage/tracker.js +1 -1
  396. package/dist/usage/tracker.js.map +1 -1
  397. package/dist/usage/tracker.spec.js +4 -4
  398. package/dist/usage/tracker.spec.js.map +1 -1
  399. package/dist/utils/atomic-deletion.spec.js +1 -1
  400. package/dist/utils/atomic-deletion.spec.js.map +1 -1
  401. package/dist/utils/checkpoint-utils.d.ts +12 -0
  402. package/dist/utils/checkpoint-utils.d.ts.map +1 -0
  403. package/dist/utils/checkpoint-utils.js +85 -0
  404. package/dist/utils/checkpoint-utils.js.map +1 -0
  405. package/dist/utils/checkpoint-utils.spec.d.ts +2 -0
  406. package/dist/utils/checkpoint-utils.spec.d.ts.map +1 -0
  407. package/dist/utils/checkpoint-utils.spec.js +182 -0
  408. package/dist/utils/checkpoint-utils.spec.js.map +1 -0
  409. package/dist/utils/error-formatter.d.ts +35 -0
  410. package/dist/utils/error-formatter.d.ts.map +1 -1
  411. package/dist/utils/error-formatter.js +123 -0
  412. package/dist/utils/error-formatter.js.map +1 -1
  413. package/dist/utils/file-autocomplete.js +2 -2
  414. package/dist/utils/file-autocomplete.js.map +1 -1
  415. package/dist/utils/file-autocomplete.spec.js +1 -1
  416. package/dist/utils/file-autocomplete.spec.js.map +1 -1
  417. package/dist/utils/file-content-loader.js +1 -1
  418. package/dist/utils/file-content-loader.js.map +1 -1
  419. package/dist/utils/file-content-loader.spec.js +4 -4
  420. package/dist/utils/file-content-loader.spec.js.map +1 -1
  421. package/dist/utils/file-mention-handler.js.map +1 -1
  422. package/dist/utils/file-mention-handler.spec.js +4 -4
  423. package/dist/utils/file-mention-handler.spec.js.map +1 -1
  424. package/dist/utils/file-mention-parser.spec.js +2 -2
  425. package/dist/utils/file-mention-parser.spec.js.map +1 -1
  426. package/dist/utils/installation-detector.js +2 -2
  427. package/dist/utils/installation-detector.js.map +1 -1
  428. package/dist/utils/installation-detector.spec.js +10 -17
  429. package/dist/utils/installation-detector.spec.js.map +1 -1
  430. package/dist/utils/logging/config.d.ts +41 -0
  431. package/dist/utils/logging/config.d.ts.map +1 -0
  432. package/dist/utils/logging/config.js +188 -0
  433. package/dist/utils/logging/config.js.map +1 -0
  434. package/dist/utils/logging/config.spec.d.ts +2 -0
  435. package/dist/utils/logging/config.spec.d.ts.map +1 -0
  436. package/dist/utils/logging/config.spec.js +233 -0
  437. package/dist/utils/logging/config.spec.js.map +1 -0
  438. package/dist/utils/logging/console-facade.d.ts +93 -0
  439. package/dist/utils/logging/console-facade.d.ts.map +1 -0
  440. package/dist/utils/logging/console-facade.js +295 -0
  441. package/dist/utils/logging/console-facade.js.map +1 -0
  442. package/dist/utils/logging/console-facade.spec.d.ts +2 -0
  443. package/dist/utils/logging/console-facade.spec.d.ts.map +1 -0
  444. package/dist/utils/logging/console-facade.spec.js +143 -0
  445. package/dist/utils/logging/console-facade.spec.js.map +1 -0
  446. package/dist/utils/logging/correlation.d.ts +139 -0
  447. package/dist/utils/logging/correlation.d.ts.map +1 -0
  448. package/dist/utils/logging/correlation.js +410 -0
  449. package/dist/utils/logging/correlation.js.map +1 -0
  450. package/dist/utils/logging/correlation.spec.d.ts +2 -0
  451. package/dist/utils/logging/correlation.spec.d.ts.map +1 -0
  452. package/dist/utils/logging/correlation.spec.js +449 -0
  453. package/dist/utils/logging/correlation.spec.js.map +1 -0
  454. package/dist/utils/logging/formatters.d.ts +70 -0
  455. package/dist/utils/logging/formatters.d.ts.map +1 -0
  456. package/dist/utils/logging/formatters.js +186 -0
  457. package/dist/utils/logging/formatters.js.map +1 -0
  458. package/dist/utils/logging/formatters.spec.d.ts +2 -0
  459. package/dist/utils/logging/formatters.spec.d.ts.map +1 -0
  460. package/dist/utils/logging/formatters.spec.js +356 -0
  461. package/dist/utils/logging/formatters.spec.js.map +1 -0
  462. package/dist/utils/logging/health-monitor.d.ts +216 -0
  463. package/dist/utils/logging/health-monitor.d.ts.map +1 -0
  464. package/dist/utils/logging/health-monitor.js +760 -0
  465. package/dist/utils/logging/health-monitor.js.map +1 -0
  466. package/dist/utils/logging/health-monitor.spec.d.ts +2 -0
  467. package/dist/utils/logging/health-monitor.spec.d.ts.map +1 -0
  468. package/dist/utils/logging/health-monitor.spec.js +305 -0
  469. package/dist/utils/logging/health-monitor.spec.js.map +1 -0
  470. package/dist/utils/logging/index.d.ts +100 -0
  471. package/dist/utils/logging/index.d.ts.map +1 -0
  472. package/dist/utils/logging/index.js +186 -0
  473. package/dist/utils/logging/index.js.map +1 -0
  474. package/dist/utils/logging/index.spec.d.ts +2 -0
  475. package/dist/utils/logging/index.spec.d.ts.map +1 -0
  476. package/dist/utils/logging/index.spec.js +214 -0
  477. package/dist/utils/logging/index.spec.js.map +1 -0
  478. package/dist/utils/logging/integration.spec.d.ts +2 -0
  479. package/dist/utils/logging/integration.spec.d.ts.map +1 -0
  480. package/dist/utils/logging/integration.spec.js +312 -0
  481. package/dist/utils/logging/integration.spec.js.map +1 -0
  482. package/dist/utils/logging/log-method-factory.d.ts +43 -0
  483. package/dist/utils/logging/log-method-factory.d.ts.map +1 -0
  484. package/dist/utils/logging/log-method-factory.js +176 -0
  485. package/dist/utils/logging/log-method-factory.js.map +1 -0
  486. package/dist/utils/logging/log-method-factory.spec.d.ts +2 -0
  487. package/dist/utils/logging/log-method-factory.spec.d.ts.map +1 -0
  488. package/dist/utils/logging/log-method-factory.spec.js +428 -0
  489. package/dist/utils/logging/log-method-factory.spec.js.map +1 -0
  490. package/dist/utils/logging/log-query.d.ts +275 -0
  491. package/dist/utils/logging/log-query.d.ts.map +1 -0
  492. package/dist/utils/logging/log-query.js +621 -0
  493. package/dist/utils/logging/log-query.js.map +1 -0
  494. package/dist/utils/logging/log-query.spec.d.ts +2 -0
  495. package/dist/utils/logging/log-query.spec.d.ts.map +1 -0
  496. package/dist/utils/logging/log-query.spec.js +737 -0
  497. package/dist/utils/logging/log-query.spec.js.map +1 -0
  498. package/dist/utils/logging/logger-provider.d.ts +73 -0
  499. package/dist/utils/logging/logger-provider.d.ts.map +1 -0
  500. package/dist/utils/logging/logger-provider.js +298 -0
  501. package/dist/utils/logging/logger-provider.js.map +1 -0
  502. package/dist/utils/logging/logger-provider.spec.d.ts +2 -0
  503. package/dist/utils/logging/logger-provider.spec.d.ts.map +1 -0
  504. package/dist/utils/logging/logger-provider.spec.js +204 -0
  505. package/dist/utils/logging/logger-provider.spec.js.map +1 -0
  506. package/dist/utils/logging/performance.d.ts +147 -0
  507. package/dist/utils/logging/performance.d.ts.map +1 -0
  508. package/dist/utils/logging/performance.js +520 -0
  509. package/dist/utils/logging/performance.js.map +1 -0
  510. package/dist/utils/logging/performance.spec.d.ts +2 -0
  511. package/dist/utils/logging/performance.spec.d.ts.map +1 -0
  512. package/dist/utils/logging/performance.spec.js +139 -0
  513. package/dist/utils/logging/performance.spec.js.map +1 -0
  514. package/dist/utils/logging/pino-logger.d.ts +22 -0
  515. package/dist/utils/logging/pino-logger.d.ts.map +1 -0
  516. package/dist/utils/logging/pino-logger.js +372 -0
  517. package/dist/utils/logging/pino-logger.js.map +1 -0
  518. package/dist/utils/logging/pino-logger.spec.d.ts +2 -0
  519. package/dist/utils/logging/pino-logger.spec.d.ts.map +1 -0
  520. package/dist/utils/logging/pino-logger.spec.js +294 -0
  521. package/dist/utils/logging/pino-logger.spec.js.map +1 -0
  522. package/dist/utils/logging/redaction.d.ts +38 -0
  523. package/dist/utils/logging/redaction.d.ts.map +1 -0
  524. package/dist/utils/logging/redaction.js +210 -0
  525. package/dist/utils/logging/redaction.js.map +1 -0
  526. package/dist/utils/logging/redaction.spec.d.ts +2 -0
  527. package/dist/utils/logging/redaction.spec.d.ts.map +1 -0
  528. package/dist/utils/logging/redaction.spec.js +338 -0
  529. package/dist/utils/logging/redaction.spec.js.map +1 -0
  530. package/dist/utils/logging/request-tracker.d.ts +189 -0
  531. package/dist/utils/logging/request-tracker.d.ts.map +1 -0
  532. package/dist/utils/logging/request-tracker.js +569 -0
  533. package/dist/utils/logging/request-tracker.js.map +1 -0
  534. package/dist/utils/logging/request-tracker.spec.d.ts +2 -0
  535. package/dist/utils/logging/request-tracker.spec.d.ts.map +1 -0
  536. package/dist/utils/logging/request-tracker.spec.js +868 -0
  537. package/dist/utils/logging/request-tracker.spec.js.map +1 -0
  538. package/dist/utils/logging/transports.d.ts +55 -0
  539. package/dist/utils/logging/transports.d.ts.map +1 -0
  540. package/dist/utils/logging/transports.js +252 -0
  541. package/dist/utils/logging/transports.js.map +1 -0
  542. package/dist/utils/logging/transports.spec.d.ts +2 -0
  543. package/dist/utils/logging/transports.spec.d.ts.map +1 -0
  544. package/dist/utils/logging/transports.spec.js +390 -0
  545. package/dist/utils/logging/transports.spec.js.map +1 -0
  546. package/dist/utils/logging/types.d.ts +173 -0
  547. package/dist/utils/logging/types.d.ts.map +1 -0
  548. package/dist/utils/logging/types.js +5 -0
  549. package/dist/utils/logging/types.js.map +1 -0
  550. package/dist/utils/message-queue.d.ts +64 -4
  551. package/dist/utils/message-queue.d.ts.map +1 -1
  552. package/dist/utils/message-queue.js +282 -28
  553. package/dist/utils/message-queue.js.map +1 -1
  554. package/dist/utils/paste-utils.spec.js +1 -1
  555. package/dist/utils/paste-utils.spec.js.map +1 -1
  556. package/dist/utils/prompt-processor.js +2 -2
  557. package/dist/utils/prompt-processor.js.map +1 -1
  558. package/dist/utils/tool-cancellation.spec.js.map +1 -1
  559. package/dist/utils/tool-result-display.d.ts +2 -2
  560. package/dist/utils/tool-result-display.d.ts.map +1 -1
  561. package/dist/utils/tool-result-display.js +3 -3
  562. package/dist/utils/tool-result-display.js.map +1 -1
  563. package/dist/utils/update-checker.d.ts.map +1 -1
  564. package/dist/utils/update-checker.js +1 -1
  565. package/dist/utils/update-checker.js.map +1 -1
  566. package/dist/utils/update-checker.spec.js +2 -2
  567. package/dist/utils/update-checker.spec.js.map +1 -1
  568. package/dist/vscode/extension-installer.js +1 -1
  569. package/dist/vscode/extension-installer.js.map +1 -1
  570. package/dist/vscode/extension-installer.spec.js +1 -1
  571. package/dist/vscode/extension-installer.spec.js.map +1 -1
  572. package/dist/vscode/protocol.spec.js +1 -1
  573. package/dist/vscode/protocol.spec.js.map +1 -1
  574. package/dist/vscode/vscode-server.d.ts.map +1 -1
  575. package/dist/vscode/vscode-server.js +2 -2
  576. package/dist/vscode/vscode-server.js.map +1 -1
  577. package/dist/vscode/vscode-server.spec.js.map +1 -1
  578. package/dist/wizard/config-wizard.d.ts.map +1 -1
  579. package/dist/wizard/config-wizard.js +16 -12
  580. package/dist/wizard/config-wizard.js.map +1 -1
  581. package/dist/wizard/steps/location-step.js +4 -4
  582. package/dist/wizard/steps/location-step.js.map +1 -1
  583. package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
  584. package/dist/wizard/steps/mcp-step.js +4 -4
  585. package/dist/wizard/steps/mcp-step.js.map +1 -1
  586. package/dist/wizard/steps/provider-step.d.ts.map +1 -1
  587. package/dist/wizard/steps/provider-step.js +4 -4
  588. package/dist/wizard/steps/provider-step.js.map +1 -1
  589. package/dist/wizard/steps/summary-step.d.ts.map +1 -1
  590. package/dist/wizard/steps/summary-step.js +2 -2
  591. package/dist/wizard/steps/summary-step.js.map +1 -1
  592. package/dist/wizard/templates/provider-templates.d.ts.map +1 -1
  593. package/dist/wizard/templates/provider-templates.js +64 -0
  594. package/dist/wizard/templates/provider-templates.js.map +1 -1
  595. package/dist/wizard/validation-array.spec.js +1 -1
  596. package/dist/wizard/validation-array.spec.js.map +1 -1
  597. package/dist/wizard/validation.spec.js +1 -1
  598. package/dist/wizard/validation.spec.js.map +1 -1
  599. package/package.json +30 -21
  600. package/dist/commands/debugging.d.ts +0 -3
  601. package/dist/commands/debugging.d.ts.map +0 -1
  602. package/dist/commands/debugging.js +0 -23
  603. package/dist/commands/debugging.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ import type { CheckpointData, CheckpointListItem, CheckpointMetadata, CheckpointRestoreOptions, CheckpointValidationResult } from '../types/checkpoint.js';
2
+ import type { Message } from '../types/core.js';
3
+ /**
4
+ * Service for managing conversation checkpoints.
5
+ * Checkpoints are stored in .nanocoder/checkpoints/ within the workspace root.
6
+ */
7
+ export declare class CheckpointManager {
8
+ private readonly checkpointsDir;
9
+ private readonly fileSnapshotService;
10
+ constructor(workspaceRoot?: string);
11
+ /**
12
+ * Initialize the checkpoints directory
13
+ */
14
+ private ensureCheckpointsDir;
15
+ /**
16
+ * Generate a checkpoint name based on timestamp
17
+ */
18
+ private generateCheckpointName;
19
+ /**
20
+ * Get the directory path for a specific checkpoint
21
+ */
22
+ private getCheckpointDir;
23
+ /**
24
+ * Validate checkpoint name using shared utility
25
+ */
26
+ private validateName;
27
+ /**
28
+ * Generate metadata description from messages
29
+ */
30
+ private generateDescription;
31
+ /**
32
+ * Save a checkpoint
33
+ */
34
+ saveCheckpoint(name: string | undefined, messages: Message[], provider: string, model: string, modifiedFiles?: string[]): Promise<CheckpointMetadata>;
35
+ /**
36
+ * Load a checkpoint
37
+ */
38
+ loadCheckpoint(name: string, options?: CheckpointRestoreOptions): Promise<CheckpointData>;
39
+ /**
40
+ * List all available checkpoints
41
+ */
42
+ listCheckpoints(): Promise<CheckpointListItem[]>;
43
+ /**
44
+ * Delete a checkpoint
45
+ */
46
+ deleteCheckpoint(name: string): Promise<void>;
47
+ /**
48
+ * Validate checkpoint integrity
49
+ */
50
+ validateCheckpoint(name: string): Promise<CheckpointValidationResult>;
51
+ /**
52
+ * Restore files from a checkpoint
53
+ */
54
+ restoreFiles(checkpointData: CheckpointData): Promise<void>;
55
+ /**
56
+ * Calculate the total size of a directory
57
+ */
58
+ private calculateDirectorySize;
59
+ /**
60
+ * Check if a checkpoint exists
61
+ */
62
+ checkpointExists(name: string): boolean;
63
+ /**
64
+ * Get checkpoint metadata without loading full data
65
+ */
66
+ getCheckpointMetadata(name: string): Promise<CheckpointMetadata>;
67
+ }
68
+ //# sourceMappingURL=checkpoint-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-manager.d.ts","sourceRoot":"","sources":["../../source/services/checkpoint-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAM1C;;;GAGG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;gBAE9C,aAAa,GAAE,MAAsB;IAKjD;;OAEG;YACW,oBAAoB;IAMlC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACG,cAAc,CACnB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,kBAAkB,CAAC;IAsE9B;;OAEG;IACG,cAAc,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,wBAA6B,GACpC,OAAO,CAAC,cAAc,CAAC;IAyD1B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0DtD;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnD;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAuE3E;;OAEG;IACG,YAAY,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjE;;OAEG;YACW,sBAAsB;IA6BpC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKvC;;OAEG;IACG,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAWtE"}
@@ -0,0 +1,345 @@
1
+ import { existsSync } from 'fs';
2
+ import * as path from 'path';
3
+ import { validateCheckpointName } from '../utils/checkpoint-utils.js';
4
+ import { logWarning } from '../utils/message-queue.js';
5
+ import * as fs from 'fs/promises';
6
+ import { FileSnapshotService } from './file-snapshot.js';
7
+ /**
8
+ * Service for managing conversation checkpoints.
9
+ * Checkpoints are stored in .nanocoder/checkpoints/ within the workspace root.
10
+ */
11
+ export class CheckpointManager {
12
+ checkpointsDir;
13
+ fileSnapshotService;
14
+ constructor(workspaceRoot = process.cwd()) {
15
+ this.checkpointsDir = path.join(workspaceRoot, '.nanocoder', 'checkpoints');
16
+ this.fileSnapshotService = new FileSnapshotService(workspaceRoot);
17
+ }
18
+ /**
19
+ * Initialize the checkpoints directory
20
+ */
21
+ async ensureCheckpointsDir() {
22
+ if (!existsSync(this.checkpointsDir)) {
23
+ await fs.mkdir(this.checkpointsDir, { recursive: true });
24
+ }
25
+ }
26
+ /**
27
+ * Generate a checkpoint name based on timestamp
28
+ */
29
+ generateCheckpointName() {
30
+ const now = new Date();
31
+ const timestamp = now
32
+ .toISOString()
33
+ .replace(/[:.]/g, '-')
34
+ .replace('T', '-')
35
+ .split('.')[0];
36
+ return `checkpoint-${timestamp}`;
37
+ }
38
+ /**
39
+ * Get the directory path for a specific checkpoint
40
+ */
41
+ getCheckpointDir(name) {
42
+ return path.join(this.checkpointsDir, name);
43
+ }
44
+ /**
45
+ * Validate checkpoint name using shared utility
46
+ */
47
+ validateName(name) {
48
+ const result = validateCheckpointName(name);
49
+ if (!result.valid) {
50
+ throw new Error(result.error || 'Invalid checkpoint name');
51
+ }
52
+ }
53
+ /**
54
+ * Generate metadata description from messages
55
+ */
56
+ generateDescription(messages) {
57
+ const userMessages = messages.filter(m => m.role === 'user');
58
+ if (userMessages.length === 0) {
59
+ return 'Empty conversation';
60
+ }
61
+ const firstMessage = userMessages[0].content;
62
+ // Take first 100 characters and add ellipsis if longer
63
+ return firstMessage.length > 100
64
+ ? `${firstMessage.substring(0, 100)}...`
65
+ : firstMessage;
66
+ }
67
+ /**
68
+ * Save a checkpoint
69
+ */
70
+ async saveCheckpoint(name, messages, provider, model, modifiedFiles) {
71
+ await this.ensureCheckpointsDir();
72
+ // Generate name if not provided
73
+ const checkpointName = name || this.generateCheckpointName();
74
+ this.validateName(checkpointName);
75
+ const checkpointDir = this.getCheckpointDir(checkpointName);
76
+ // Check if checkpoint already exists
77
+ if (existsSync(checkpointDir)) {
78
+ throw new Error(`Checkpoint '${checkpointName}' already exists`);
79
+ }
80
+ // Get modified files if not provided
81
+ const filesToSnapshot = modifiedFiles || this.fileSnapshotService.getModifiedFiles();
82
+ // Capture file snapshots
83
+ const fileSnapshots = await this.fileSnapshotService.captureFiles(filesToSnapshot);
84
+ // Create metadata
85
+ const metadata = {
86
+ name: checkpointName,
87
+ timestamp: new Date().toISOString(),
88
+ messageCount: messages.length,
89
+ filesChanged: Array.from(fileSnapshots.keys()),
90
+ provider: { name: provider, model },
91
+ description: this.generateDescription(messages),
92
+ };
93
+ // Create conversation data
94
+ const conversation = {
95
+ messages: messages.map(msg => ({ ...msg })), // Deep copy
96
+ };
97
+ // Create checkpoint directory and files
98
+ await fs.mkdir(checkpointDir, { recursive: true });
99
+ // Save metadata
100
+ await fs.writeFile(path.join(checkpointDir, 'metadata.json'), JSON.stringify(metadata, null, 2), 'utf-8');
101
+ // Save conversation
102
+ await fs.writeFile(path.join(checkpointDir, 'conversation.json'), JSON.stringify(conversation, null, 2), 'utf-8');
103
+ // Save file snapshots
104
+ if (fileSnapshots.size > 0) {
105
+ const filesDir = path.join(checkpointDir, 'files');
106
+ await fs.mkdir(filesDir, { recursive: true });
107
+ for (const [relativePath, content] of fileSnapshots) {
108
+ const filePath = path.join(filesDir, relativePath);
109
+ const fileDir = path.dirname(filePath);
110
+ await fs.mkdir(fileDir, { recursive: true });
111
+ await fs.writeFile(filePath, content, 'utf-8');
112
+ }
113
+ }
114
+ return metadata;
115
+ }
116
+ /**
117
+ * Load a checkpoint
118
+ */
119
+ async loadCheckpoint(name, options = {}) {
120
+ const checkpointDir = this.getCheckpointDir(name);
121
+ if (!existsSync(checkpointDir)) {
122
+ throw new Error(`Checkpoint '${name}' does not exist`);
123
+ }
124
+ // Validate checkpoint if requested
125
+ if (options.validateIntegrity) {
126
+ const validation = await this.validateCheckpoint(name);
127
+ if (!validation.valid) {
128
+ throw new Error(`Checkpoint validation failed: ${validation.errors.join(', ')}`);
129
+ }
130
+ }
131
+ // Load metadata
132
+ const metadataPath = path.join(checkpointDir, 'metadata.json');
133
+ const metadataContent = await fs.readFile(metadataPath, 'utf-8');
134
+ const metadata = JSON.parse(metadataContent);
135
+ // Load conversation
136
+ const conversationPath = path.join(checkpointDir, 'conversation.json');
137
+ const conversationContent = await fs.readFile(conversationPath, 'utf-8');
138
+ const conversation = JSON.parse(conversationContent);
139
+ // Load file snapshots
140
+ const fileSnapshots = new Map();
141
+ const filesDir = path.join(checkpointDir, 'files');
142
+ if (existsSync(filesDir)) {
143
+ for (const relativePath of metadata.filesChanged) {
144
+ try {
145
+ const filePath = path.join(filesDir, relativePath);
146
+ const content = await fs.readFile(filePath, 'utf-8');
147
+ fileSnapshots.set(relativePath, content);
148
+ }
149
+ catch (error) {
150
+ logWarning('Could not load file snapshot', true, {
151
+ context: {
152
+ relativePath,
153
+ error: error instanceof Error ? error.message : 'Unknown error',
154
+ },
155
+ });
156
+ }
157
+ }
158
+ }
159
+ return {
160
+ metadata,
161
+ conversation,
162
+ fileSnapshots,
163
+ };
164
+ }
165
+ /**
166
+ * List all available checkpoints
167
+ */
168
+ async listCheckpoints() {
169
+ await this.ensureCheckpointsDir();
170
+ try {
171
+ const entries = await fs.readdir(this.checkpointsDir);
172
+ const checkpoints = [];
173
+ for (const entry of entries) {
174
+ try {
175
+ const checkpointDir = path.join(this.checkpointsDir, entry);
176
+ const stat = await fs.stat(checkpointDir);
177
+ if (stat.isDirectory()) {
178
+ const metadataPath = path.join(checkpointDir, 'metadata.json');
179
+ if (existsSync(metadataPath)) {
180
+ const metadataContent = await fs.readFile(metadataPath, 'utf-8');
181
+ const metadata = JSON.parse(metadataContent);
182
+ // Calculate directory size
183
+ const sizeBytes = await this.calculateDirectorySize(checkpointDir);
184
+ checkpoints.push({
185
+ name: entry,
186
+ metadata,
187
+ sizeBytes,
188
+ });
189
+ }
190
+ }
191
+ }
192
+ catch (error) {
193
+ logWarning('Could not read checkpoint', true, {
194
+ context: {
195
+ checkpointName: entry,
196
+ error: error instanceof Error ? error.message : 'Unknown error',
197
+ },
198
+ });
199
+ }
200
+ }
201
+ // Sort by timestamp (newest first)
202
+ checkpoints.sort((a, b) => new Date(b.metadata.timestamp).getTime() -
203
+ new Date(a.metadata.timestamp).getTime());
204
+ return checkpoints;
205
+ }
206
+ catch (error) {
207
+ throw new Error(`Failed to list checkpoints: ${error instanceof Error ? error.message : 'Unknown error'}`);
208
+ }
209
+ }
210
+ /**
211
+ * Delete a checkpoint
212
+ */
213
+ async deleteCheckpoint(name) {
214
+ const checkpointDir = this.getCheckpointDir(name);
215
+ if (!existsSync(checkpointDir)) {
216
+ throw new Error(`Checkpoint '${name}' does not exist`);
217
+ }
218
+ try {
219
+ await fs.rm(checkpointDir, { recursive: true, force: true });
220
+ }
221
+ catch (error) {
222
+ throw new Error(`Failed to delete checkpoint '${name}': ${error instanceof Error ? error.message : 'Unknown error'}`);
223
+ }
224
+ }
225
+ /**
226
+ * Validate checkpoint integrity
227
+ */
228
+ async validateCheckpoint(name) {
229
+ const checkpointDir = this.getCheckpointDir(name);
230
+ const errors = [];
231
+ const warnings = [];
232
+ // Check if checkpoint directory exists
233
+ if (!existsSync(checkpointDir)) {
234
+ errors.push('Checkpoint directory does not exist');
235
+ return { valid: false, errors, warnings };
236
+ }
237
+ // Check metadata file
238
+ const metadataPath = path.join(checkpointDir, 'metadata.json');
239
+ if (!existsSync(metadataPath)) {
240
+ errors.push('Missing metadata.json file');
241
+ }
242
+ else {
243
+ try {
244
+ const metadataContent = await fs.readFile(metadataPath, 'utf-8');
245
+ const metadata = JSON.parse(metadataContent);
246
+ // Validate metadata structure
247
+ if (!metadata.name ||
248
+ !metadata.timestamp ||
249
+ typeof metadata.messageCount !== 'number') {
250
+ errors.push('Invalid metadata structure');
251
+ }
252
+ }
253
+ catch (error) {
254
+ errors.push(`Invalid metadata.json: ${error instanceof Error ? error.message : 'Unknown error'}`);
255
+ }
256
+ }
257
+ // Check conversation file
258
+ const conversationPath = path.join(checkpointDir, 'conversation.json');
259
+ if (!existsSync(conversationPath)) {
260
+ errors.push('Missing conversation.json file');
261
+ }
262
+ else {
263
+ try {
264
+ const conversationContent = await fs.readFile(conversationPath, 'utf-8');
265
+ const conversation = JSON.parse(conversationContent);
266
+ // Validate conversation structure
267
+ if (!Array.isArray(conversation.messages)) {
268
+ errors.push('Invalid conversation structure');
269
+ }
270
+ }
271
+ catch (error) {
272
+ errors.push(`Invalid conversation.json: ${error instanceof Error ? error.message : 'Unknown error'}`);
273
+ }
274
+ }
275
+ return {
276
+ valid: errors.length === 0,
277
+ errors,
278
+ warnings,
279
+ };
280
+ }
281
+ /**
282
+ * Restore files from a checkpoint
283
+ */
284
+ async restoreFiles(checkpointData) {
285
+ if (checkpointData.fileSnapshots.size === 0) {
286
+ return; // No files to restore
287
+ }
288
+ // Validate restore paths
289
+ const validation = await this.fileSnapshotService.validateRestorePath(checkpointData.fileSnapshots);
290
+ if (!validation.valid) {
291
+ throw new Error(`Cannot restore files: ${validation.errors.join(', ')}`);
292
+ }
293
+ // Restore files
294
+ await this.fileSnapshotService.restoreFiles(checkpointData.fileSnapshots);
295
+ }
296
+ /**
297
+ * Calculate the total size of a directory
298
+ */
299
+ async calculateDirectorySize(dirPath) {
300
+ let totalSize = 0;
301
+ try {
302
+ const entries = await fs.readdir(dirPath, { withFileTypes: true });
303
+ for (const entry of entries) {
304
+ const fullPath = path.join(dirPath, entry.name);
305
+ if (entry.isDirectory()) {
306
+ totalSize += await this.calculateDirectorySize(fullPath);
307
+ }
308
+ else {
309
+ const stat = await fs.stat(fullPath);
310
+ totalSize += stat.size;
311
+ }
312
+ }
313
+ }
314
+ catch (error) {
315
+ // If we can't read the directory, just return 0
316
+ logWarning('Could not calculate directory size', true, {
317
+ context: {
318
+ dirPath,
319
+ error: error instanceof Error ? error.message : 'Unknown error',
320
+ },
321
+ });
322
+ }
323
+ return totalSize;
324
+ }
325
+ /**
326
+ * Check if a checkpoint exists
327
+ */
328
+ checkpointExists(name) {
329
+ const checkpointDir = this.getCheckpointDir(name);
330
+ return existsSync(checkpointDir);
331
+ }
332
+ /**
333
+ * Get checkpoint metadata without loading full data
334
+ */
335
+ async getCheckpointMetadata(name) {
336
+ const checkpointDir = this.getCheckpointDir(name);
337
+ if (!existsSync(checkpointDir)) {
338
+ throw new Error(`Checkpoint '${name}' does not exist`);
339
+ }
340
+ const metadataPath = path.join(checkpointDir, 'metadata.json');
341
+ const metadataContent = await fs.readFile(metadataPath, 'utf-8');
342
+ return JSON.parse(metadataContent);
343
+ }
344
+ }
345
+ //# sourceMappingURL=checkpoint-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../source/services/checkpoint-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=checkpoint-manager.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-manager.spec.d.ts","sourceRoot":"","sources":["../../source/services/checkpoint-manager.spec.ts"],"names":[],"mappings":""}