@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
package/README.md CHANGED
@@ -10,6 +10,9 @@ A local-first CLI coding agent that brings the power of agentic coding tools lik
10
10
  - [Installation](#installation)
11
11
  - [For Users](#for-users)
12
12
  - [For Development](#for-development)
13
+ - [Usage](#usage)
14
+ - [Interactive Mode](#interactive-mode)
15
+ - [Non-Interactive Mode](#non-interactive-mode)
13
16
  - [Configuration](#configuration)
14
17
  - [AI Provider Setup](#ai-provider-setup)
15
18
  - [MCP (Model Context Protocol) Servers](#mcp-model-context-protocol-servers)
@@ -19,11 +22,11 @@ A local-first CLI coding agent that brings the power of agentic coding tools lik
19
22
  - [Built-in Commands](#built-in-commands)
20
23
  - [Custom Commands](#custom-commands)
21
24
  - [Features](#features)
22
- - [Multi-Provider Support](#-multi-provider-support)
23
- - [Advanced Tool System](#️-advanced-tool-system)
24
- - [Custom Command System](#-custom-command-system)
25
- - [Enhanced User Experience](#-enhanced-user-experience)
26
- - [Developer Features](#️-developer-features)
25
+ - [Multi-Provider Support](#multi-provider-support)
26
+ - [Advanced Tool System](#advanced-tool-system)
27
+ - [Custom Command System](#custom-command-system)
28
+ - [Enhanced User Experience](#enhanced-user-experience)
29
+ - [Developer Features](#developer-features)
27
30
  - [VS Code Extension](#vs-code-extension)
28
31
  - [Community](#community)
29
32
 
@@ -165,6 +168,62 @@ Or build and run in one command:
165
168
  pnpm run dev
166
169
  ```
167
170
 
171
+ ## Usage
172
+
173
+ ### Interactive Mode
174
+
175
+ To start Nanocoder in interactive mode (the default), simply run:
176
+
177
+ ```bash
178
+ nanocoder
179
+ ```
180
+
181
+ This will open an interactive chat session where you can:
182
+
183
+ - Chat with the AI about your code
184
+ - Use slash commands (e.g., `/help`, `/model`, `/status`)
185
+ - Execute bash commands with `!`
186
+ - Tag files with `@`
187
+ - Review and approve tool executions
188
+ - Switch between different models and providers
189
+
190
+ ### Non-Interactive Mode
191
+
192
+ For automated tasks, scripting, or CI/CD pipelines, use the `run` command:
193
+
194
+ ```bash
195
+ nanocoder run "your prompt here"
196
+ ```
197
+
198
+ **Examples:**
199
+
200
+ ```bash
201
+ # Simple task
202
+ nanocoder run "analyze the code in src/app.ts"
203
+
204
+ # Code generation
205
+ nanocoder run "create a new React component for user login"
206
+
207
+ # Testing
208
+ nanocoder run "write unit tests for all functions in utils.js"
209
+
210
+ # Refactoring
211
+ nanocoder run "refactor the database connection to use a connection pool"
212
+ ```
213
+
214
+ **Non-interactive mode behavior:**
215
+
216
+ - Automatically executes the given prompt
217
+ - Runs in auto-accept mode (tools execute without confirmation)
218
+ - Displays all output and tool execution results
219
+ - Exits automatically when the task is complete
220
+
221
+ **Note:** When using non-interactive mode with VS Code integration, place any flags (like `--vscode` or `--vscode-port`) before the `run` command:
222
+
223
+ ```bash
224
+ nanocoder --vscode run "your prompt"
225
+ ```
226
+
168
227
  ## Configuration
169
228
 
170
229
  ### AI Provider Setup
@@ -237,6 +296,18 @@ Nanocoder looks for configuration in the following order (first found wins):
237
296
  "baseUrl": "https://api.z.ai/api/coding/paas/v4/",
238
297
  "apiKey": "your-z.ai-coding-api-key",
239
298
  "models": ["glm-4.6", "glm-4.5", "glm-4.5-air"]
299
+ },
300
+ {
301
+ "name": "GitHub Models",
302
+ "baseUrl": "https://models.github.ai/inference",
303
+ "apiKey": "your-github-pat",
304
+ "models": ["openai/gpt-4o-mini", "meta/llama-3.1-70b-instruct"]
305
+ },
306
+ {
307
+ "name": "Poe",
308
+ "baseUrl": "https://api.poe.com/v1",
309
+ "apiKey": "your-poe-api-key",
310
+ "models": ["Claude-Sonnet-4", "GPT-4o", "Gemini-2.5-Pro"]
240
311
  }
241
312
  ]
242
313
  }
@@ -253,6 +324,8 @@ Nanocoder looks for configuration in the following order (first found wins):
253
324
  - **vLLM**: `"baseUrl": "http://localhost:8000/v1"`
254
325
  - **LocalAI**: `"baseUrl": "http://localhost:8080/v1"`
255
326
  - **OpenAI**: `"baseUrl": "https://api.openai.com/v1"`
327
+ - **Poe**: `"baseUrl": "https://api.poe.com/v1"` (get API key from [poe.com/api_key](https://poe.com/api_key))
328
+ - **GitHub Models**: `"baseUrl": "https://models.github.ai/inference"` (requires PAT with `models:read` scope)
256
329
  - **Z.ai**: `"baseUrl": "https://api.z.ai/api/paas/v4/"`
257
330
  - **Z.ai Coding**: `"baseUrl": "https://api.z.ai/api/coding/paas/v4/"`
258
331
 
@@ -321,6 +394,40 @@ If you experience the model repeating tool calls or getting into loops (especial
321
394
 
322
395
  Tool-calling conversations require more context to track the history of tool calls and their results. If the context window is too small, the model may lose track of previous actions and repeat them indefinitely.
323
396
 
397
+ ### Logging Configuration
398
+
399
+ Nanocoder now includes comprehensive structured logging with Pino, providing enterprise-grade logging capabilities including correlation tracking, performance monitoring, and security features.
400
+
401
+ **Logging Configuration Options:**
402
+
403
+ ```bash
404
+ # Environment Variables
405
+ NANOCODER_LOG_LEVEL=debug # Log level (trace, debug, info, warn, error, fatal)
406
+ NANOCODER_LOG_TO_FILE=true # Enable file logging
407
+ NANOCODER_LOG_TO_CONSOLE=true # Enable console logging
408
+ NANOCODER_LOG_DIR=/var/log/nanocoder # Log directory
409
+ NANOCODER_CORRELATION_ENABLED=true # Enable correlation tracking
410
+ ```
411
+
412
+ **Features:**
413
+ - Structured JSON logging with metadata support
414
+ - Correlation tracking across components
415
+ - Automatic PII detection and redaction
416
+ - Performance monitoring and metrics
417
+ - Production-ready file rotation and compression
418
+
419
+ **Default Log File Locations:**
420
+
421
+ When `NANOCODER_LOG_TO_FILE=true` is set, logs are stored in platform-specific locations:
422
+
423
+ - **macOS**: `~/Library/Preferences/nanocoder/logs`
424
+ - **Linux/Unix**: `~/.config/nanocoder/logs/nanocoder/`
425
+ - **Windows**: `%APPDATA%\nanocoder\logs\`
426
+
427
+ You can override the default location using `NANOCODER_LOG_DIR` environment variable.
428
+
429
+ For complete documentation, see [Pino Logging Guide](docs/pino-logging-comprehensive.md).
430
+
324
431
  ### MCP (Model Context Protocol) Servers
325
432
 
326
433
  Nanocoder supports connecting to MCP servers to extend its capabilities with additional tools. Configure MCP servers in your `agents.config.json`:
@@ -444,7 +551,7 @@ You can override this directory using `NANOCODER_DATA_DIR`.
444
551
  #### Built-in Commands
445
552
 
446
553
  - `/help` - Show available commands
447
- - `/init` - Initialize project with intelligent analysis, create AGENTS.md and configuration files
554
+ - `/init` - Initialize project with intelligent analysis, create AGENTS.md and configuration files. Use `/init --force` to regenerate AGENTS.md if it already exists.
448
555
  - `/setup-config` - Interactive wizard for configuring AI providers and MCP servers with templates
449
556
  - `/clear` - Clear chat history
450
557
  - `/model` - Switch between available models
@@ -453,6 +560,7 @@ You can override this directory using `NANOCODER_DATA_DIR`.
453
560
  - `/model-database` - Browse coding models from OpenRouter (searchable, filterable by open/proprietary)
454
561
  - `/mcp` - Show connected MCP servers and their tools
455
562
  - `/custom-commands` - List all custom commands
563
+ - `/checkpoint` - Save and restore conversation snapshots (see [Checkpointing](#checkpointing) section)
456
564
  - `/exit` - Exit the application
457
565
  - `/export` - Export current session to markdown file
458
566
  - `/theme` - Select a theme for the Nanocoder CLI
@@ -462,6 +570,66 @@ You can override this directory using `NANOCODER_DATA_DIR`.
462
570
  - `!command` - Execute bash commands directly without leaving Nanocoder (output becomes context for the LLM)
463
571
  - `@file` - Include file contents in messages automatically via fuzzy search as you type
464
572
 
573
+ #### Checkpointing
574
+
575
+ Nanocoder supports conversation checkpointing, allowing you to save snapshots of your coding sessions and restore them later. This is perfect for experimenting with different approaches or preserving important milestones.
576
+
577
+ **Checkpoint Commands:**
578
+
579
+ - `/checkpoint create [name]` - Create a checkpoint with optional custom name
580
+
581
+ - Auto-generates timestamp-based name if not provided
582
+ - Captures conversation history, modified files, and AI model configuration
583
+ - Example: `/checkpoint create feature-auth-v1`
584
+
585
+ - `/checkpoint list` - List all available checkpoints
586
+
587
+ - Shows checkpoint name, creation time, message count, and files changed
588
+ - Sorted by creation date (newest first)
589
+
590
+ - `/checkpoint load [name]` - Restore files from a checkpoint
591
+
592
+ - **Without name**: Shows interactive list to select checkpoint
593
+ - **With name**: Directly loads the specified checkpoint
594
+ - Prompts "Create backup before loading? (Y/n)" if current session has messages
595
+ - Press Y (or Enter) to auto-backup, N to skip, Esc to cancel
596
+ - Note: Conversation history restore requires restarting Nanocoder
597
+ - Example: `/checkpoint load` (interactive) or `/checkpoint load feature-auth-v1`
598
+
599
+ - `/checkpoint delete <name>` - Delete a checkpoint permanently
600
+ - Removes checkpoint and all associated data
601
+ - Example: `/checkpoint delete old-checkpoint`
602
+
603
+ **What gets saved:**
604
+
605
+ - Complete conversation history
606
+ - Modified files with their content (detected via git)
607
+ - Active provider and model configuration
608
+ - Timestamp and metadata
609
+
610
+ **Storage location:**
611
+
612
+ - Checkpoints are stored in `.nanocoder/checkpoints/` in your project directory
613
+ - Each project has its own checkpoints
614
+ - Consider adding `.nanocoder/checkpoints` to your `.gitignore`
615
+
616
+ **Example workflow:**
617
+
618
+ ```bash
619
+ # Create a checkpoint before trying a new approach
620
+ /checkpoint create before-refactor
621
+
622
+ # Make some experimental changes...
623
+ # If things go wrong, restore the checkpoint
624
+ /checkpoint load before-refactor
625
+
626
+ # Or if things went well, create a new checkpoint
627
+ /checkpoint create after-refactor
628
+
629
+ # List all checkpoints to see your progress
630
+ /checkpoint list
631
+ ```
632
+
465
633
  #### Custom Commands
466
634
 
467
635
  Nanocoder supports custom commands defined as markdown files in the `.nanocoder/commands` directory. Like `agents.config.json`, this directory is created per codebase, allowing you to create reusable prompts with parameters and organize them by category specific to each project.
@@ -538,8 +706,8 @@ Generate comprehensive unit tests for {{component}}. Include:
538
706
  - **Real-time indicators**: Shows token usage, timing, and processing status
539
707
  - **First-time directory security disclaimer**: Prompts on first run and stores a per-project trust decision to prevent accidental exposure of local code or secrets.
540
708
  - **Development modes**: Three modes to control tool execution behavior (toggle with Shift+Tab)
541
- - **Normal mode**: Standard tool confirmation flow - review each tool call before execution
542
- - **Auto-accept mode**: Automatically accepts all tool calls without confirmation for faster workflows
709
+ - **Normal mode**: Standard tool confirmation flow - review potentially dangerous tool calls before execution
710
+ - **Auto-accept mode**: Automatically accepts more tool calls without confirmation for faster workflows
543
711
  - **Plan mode**: AI suggests actions but doesn't execute tools - useful for planning and exploration
544
712
 
545
713
  ### Developer Features
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-client-empty-message.spec.js","sourceRoot":"","sources":["../source/ai-sdk-client-empty-message.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-sdk-client-empty-message.spec.js","sourceRoot":"","sources":["../source/ai-sdk-client-empty-message.spec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AIProviderConfig, LLMChatResponse, LLMClient, Message, AISDKCoreTool, StreamCallbacks } from './types/index.js';
1
+ import type { AIProviderConfig, AISDKCoreTool, LLMChatResponse, LLMClient, Message, StreamCallbacks } from './types/index.js';
2
2
  /**
3
3
  * Message type used for testing the empty assistant message filter.
4
4
  * This is a simplified version of the AI SDK's internal message format.
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-client.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,OAAO,EAEP,aAAa,EACb,eAAe,EACf,MAAM,eAAe,CAAC;AAIvB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAczE;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAyJpD;AAmDD,qBAAa,WAAY,YAAW,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,UAAU,CAAS;gBAEf,cAAc,EAAE,gBAAgB;IAgC5C;;OAEG;YACW,iBAAiB;IAU/B,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAKrE,OAAO,CAAC,cAAc;IAgCtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIvC;;OAEG;IACG,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC;IAyLrB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
1
+ {"version":3,"file":"ai-sdk-client.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,SAAS,EACT,OAAO,EACP,eAAe,EAEf,MAAM,eAAe,CAAC;AAevB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAczE;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAyJpD;AAmDD,qBAAa,WAAY,YAAW,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,UAAU,CAAS;gBAEf,cAAc,EAAE,gBAAgB;IAwC5C;;OAEG;YACW,iBAAiB;IAU/B,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAKrE,OAAO,CAAC,cAAc;IAgCtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgB7B,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIvC;;OAEG;IACG,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC;IA8S3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}