@nanocollective/nanocoder 1.17.3 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -13
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client-empty-message.spec.d.ts +2 -0
- package/dist/ai-sdk-client-empty-message.spec.d.ts.map +1 -0
- package/dist/ai-sdk-client-empty-message.spec.js +124 -0
- package/dist/ai-sdk-client-empty-message.spec.js.map +1 -0
- package/dist/ai-sdk-client.d.ts +19 -3
- package/dist/ai-sdk-client.d.ts.map +1 -1
- package/dist/ai-sdk-client.js +359 -211
- package/dist/ai-sdk-client.js.map +1 -1
- package/dist/app/utils/appUtils.d.ts +1 -1
- package/dist/app/utils/appUtils.d.ts.map +1 -1
- package/dist/app/utils/appUtils.js +80 -14
- package/dist/app/utils/appUtils.js.map +1 -1
- package/dist/app.d.ts +22 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +369 -53
- package/dist/app.js.map +1 -1
- package/dist/cli.js +37 -2
- package/dist/cli.js.map +1 -1
- package/dist/cli.spec.d.ts +2 -0
- package/dist/cli.spec.d.ts.map +1 -0
- package/dist/cli.spec.js +101 -0
- package/dist/cli.spec.js.map +1 -0
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +2 -2
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/checkpoint.d.ts +6 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +277 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/clear.d.ts.map +1 -1
- package/dist/commands/clear.js +1 -1
- package/dist/commands/clear.js.map +1 -1
- package/dist/commands/custom-commands.d.ts.map +1 -1
- package/dist/commands/custom-commands.js +4 -4
- package/dist/commands/custom-commands.js.map +1 -1
- package/dist/commands/exit.d.ts.map +1 -1
- package/dist/commands/exit.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +2 -2
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +5 -5
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +2 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -2
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +15 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/lsp.d.ts.map +1 -1
- package/dist/commands/lsp.js +6 -6
- package/dist/commands/lsp.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +6 -6
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/model-database.d.ts +8 -0
- package/dist/commands/model-database.d.ts.map +1 -0
- package/dist/commands/model-database.js +193 -0
- package/dist/commands/model-database.js.map +1 -0
- package/dist/commands/model.d.ts.map +1 -1
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/provider.d.ts.map +1 -1
- package/dist/commands/provider.js.map +1 -1
- package/dist/commands/setup-config.js +1 -1
- package/dist/commands/setup-config.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/theme.d.ts.map +1 -1
- package/dist/commands/theme.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +5 -5
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +4 -4
- package/dist/commands/usage.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/components/assistant-message.d.ts.map +1 -1
- package/dist/components/assistant-message.js +5 -4
- package/dist/components/assistant-message.js.map +1 -1
- package/dist/components/bash-execution-indicator.d.ts.map +1 -1
- package/dist/components/bash-execution-indicator.js +2 -2
- package/dist/components/bash-execution-indicator.js.map +1 -1
- package/dist/components/cancelling-indicator.js +3 -3
- package/dist/components/cancelling-indicator.js.map +1 -1
- package/dist/components/chat-queue.d.ts.map +1 -1
- package/dist/components/chat-queue.js +1 -1
- package/dist/components/chat-queue.js.map +1 -1
- package/dist/components/checkpoint-display.d.ts +8 -0
- package/dist/components/checkpoint-display.d.ts.map +1 -0
- package/dist/components/checkpoint-display.js +29 -0
- package/dist/components/checkpoint-display.js.map +1 -0
- package/dist/components/checkpoint-selector.d.ts +11 -0
- package/dist/components/checkpoint-selector.d.ts.map +1 -0
- package/dist/components/checkpoint-selector.js +55 -0
- package/dist/components/checkpoint-selector.js.map +1 -0
- package/dist/components/error-message.d.ts.map +1 -1
- package/dist/components/error-message.js +4 -4
- package/dist/components/error-message.js.map +1 -1
- package/dist/components/info-message.d.ts.map +1 -1
- package/dist/components/info-message.js +4 -4
- package/dist/components/info-message.js.map +1 -1
- package/dist/components/model-selector.d.ts.map +1 -1
- package/dist/components/model-selector.js +7 -7
- package/dist/components/model-selector.js.map +1 -1
- package/dist/components/provider-selector.d.ts.map +1 -1
- package/dist/components/provider-selector.js +6 -6
- package/dist/components/provider-selector.js.map +1 -1
- package/dist/components/security-disclaimer.d.ts.map +1 -1
- package/dist/components/security-disclaimer.js +4 -4
- package/dist/components/security-disclaimer.js.map +1 -1
- package/dist/components/status.d.ts +5 -0
- package/dist/components/status.d.ts.map +1 -1
- package/dist/components/status.js +36 -7
- package/dist/components/status.js.map +1 -1
- package/dist/components/success-message.d.ts.map +1 -1
- package/dist/components/success-message.js +4 -4
- package/dist/components/success-message.js.map +1 -1
- package/dist/components/theme-selector.d.ts.map +1 -1
- package/dist/components/theme-selector.js +8 -8
- package/dist/components/theme-selector.js.map +1 -1
- package/dist/components/tool-confirmation.d.ts.map +1 -1
- package/dist/components/tool-confirmation.js +7 -7
- package/dist/components/tool-confirmation.js.map +1 -1
- package/dist/components/tool-execution-indicator.d.ts.map +1 -1
- package/dist/components/tool-execution-indicator.js +2 -2
- package/dist/components/tool-execution-indicator.js.map +1 -1
- package/dist/components/tool-message.d.ts.map +1 -1
- package/dist/components/tool-message.js +4 -5
- package/dist/components/tool-message.js.map +1 -1
- package/dist/components/ui/titled-box.d.ts +16 -0
- package/dist/components/ui/titled-box.d.ts.map +1 -0
- package/dist/components/ui/titled-box.js +10 -0
- package/dist/components/ui/titled-box.js.map +1 -0
- package/dist/components/usage/progress-bar.d.ts.map +1 -1
- package/dist/components/usage/progress-bar.js +3 -0
- package/dist/components/usage/progress-bar.js.map +1 -1
- package/dist/components/usage/usage-display.d.ts.map +1 -1
- package/dist/components/usage/usage-display.js +7 -4
- package/dist/components/usage/usage-display.js.map +1 -1
- package/dist/components/user-input.d.ts.map +1 -1
- package/dist/components/user-input.js +9 -8
- package/dist/components/user-input.js.map +1 -1
- package/dist/components/user-message.d.ts.map +1 -1
- package/dist/components/user-message.js +1 -1
- package/dist/components/user-message.js.map +1 -1
- package/dist/components/vscode-extension-prompt.js +3 -3
- package/dist/components/vscode-extension-prompt.js.map +1 -1
- package/dist/components/warning-message.d.ts.map +1 -1
- package/dist/components/warning-message.js +4 -4
- package/dist/components/warning-message.js.map +1 -1
- package/dist/components/welcome-message.d.ts.map +1 -1
- package/dist/components/welcome-message.js +4 -4
- package/dist/components/welcome-message.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +7 -7
- package/dist/config/index.js.map +1 -1
- package/dist/config/index.spec.js +4 -4
- package/dist/config/index.spec.js.map +1 -1
- package/dist/config/paths.spec.js +1 -1
- package/dist/config/paths.spec.js.map +1 -1
- package/dist/config/preferences.d.ts +0 -2
- package/dist/config/preferences.d.ts.map +1 -1
- package/dist/config/preferences.js +1 -11
- package/dist/config/preferences.js.map +1 -1
- package/dist/context/mode-context.d.ts +12 -0
- package/dist/context/mode-context.d.ts.map +1 -0
- package/dist/context/mode-context.js +21 -0
- package/dist/context/mode-context.js.map +1 -0
- package/dist/context/mode-context.spec.d.ts +2 -0
- package/dist/context/mode-context.spec.d.ts.map +1 -0
- package/dist/context/mode-context.spec.js +61 -0
- package/dist/context/mode-context.spec.js.map +1 -0
- package/dist/custom-commands/executor.d.ts.map +1 -1
- package/dist/custom-commands/executor.js.map +1 -1
- package/dist/custom-commands/loader.d.ts.map +1 -1
- package/dist/custom-commands/loader.js +1 -1
- package/dist/custom-commands/loader.js.map +1 -1
- package/dist/custom-commands/parser.d.ts.map +1 -1
- package/dist/custom-commands/parser.js.map +1 -1
- package/dist/hooks/useAppInitialization.d.ts +9 -5
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +119 -45
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +28 -9
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js +28 -8
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useChatHandler.d.ts +5 -3
- package/dist/hooks/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/useChatHandler.js +218 -118
- package/dist/hooks/useChatHandler.js.map +1 -1
- package/dist/hooks/useDirectoryTrust.js +1 -1
- package/dist/hooks/useDirectoryTrust.js.map +1 -1
- package/dist/hooks/useInputState.js +2 -2
- package/dist/hooks/useInputState.js.map +1 -1
- package/dist/hooks/useModeHandlers.d.ts +5 -5
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +12 -12
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
- package/dist/hooks/useTerminalWidth.js +3 -3
- package/dist/hooks/useTerminalWidth.js.map +1 -1
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/hooks/useTheme.js +1 -1
- package/dist/hooks/useTheme.js.map +1 -1
- package/dist/hooks/useToolHandler.d.ts +1 -1
- package/dist/hooks/useToolHandler.d.ts.map +1 -1
- package/dist/hooks/useToolHandler.js +4 -4
- package/dist/hooks/useToolHandler.js.map +1 -1
- package/dist/hooks/useUIState.d.ts +1 -1
- package/dist/hooks/useUIState.d.ts.map +1 -1
- package/dist/hooks/useUIState.js.map +1 -1
- package/dist/hooks/useVSCodeServer.js +2 -2
- package/dist/hooks/useVSCodeServer.js.map +1 -1
- package/dist/init/agents-template-generator.d.ts +1 -1
- package/dist/init/agents-template-generator.d.ts.map +1 -1
- package/dist/init/agents-template-generator.js.map +1 -1
- package/dist/init/existing-rules-extractor.js +1 -1
- package/dist/init/existing-rules-extractor.js.map +1 -1
- package/dist/init/file-scanner.js +2 -2
- package/dist/init/file-scanner.js.map +1 -1
- package/dist/init/framework-detector.js +1 -1
- package/dist/init/framework-detector.js.map +1 -1
- package/dist/init/project-analyzer.d.ts +1 -1
- package/dist/init/project-analyzer.d.ts.map +1 -1
- package/dist/init/project-analyzer.js +3 -3
- package/dist/init/project-analyzer.js.map +1 -1
- package/dist/lsp/lsp-client.d.ts +1 -1
- package/dist/lsp/lsp-client.d.ts.map +1 -1
- package/dist/lsp/lsp-client.js +1 -1
- package/dist/lsp/lsp-client.js.map +1 -1
- package/dist/lsp/lsp-client.spec.js +1 -2
- package/dist/lsp/lsp-client.spec.js.map +1 -1
- package/dist/lsp/lsp-manager.d.ts +1 -1
- package/dist/lsp/lsp-manager.d.ts.map +1 -1
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/lsp/lsp-manager.spec.js +1 -1
- package/dist/lsp/lsp-manager.spec.js.map +1 -1
- package/dist/lsp/protocol.spec.js +1 -1
- package/dist/lsp/protocol.spec.js.map +1 -1
- package/dist/lsp/server-discovery.spec.js +1 -1
- package/dist/lsp/server-discovery.spec.js.map +1 -1
- package/dist/markdown-parser/index.spec.js.map +1 -1
- package/dist/markdown-parser/table-parser.spec.js.map +1 -1
- package/dist/mcp/mcp-client.d.ts +3 -2
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +279 -96
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/mcp/transport-factory.d.ts +1 -1
- package/dist/mcp/transport-factory.d.ts.map +1 -1
- package/dist/mcp/transport-factory.js +16 -3
- package/dist/mcp/transport-factory.js.map +1 -1
- package/dist/mcp/transport-factory.spec.js +30 -48
- package/dist/mcp/transport-factory.spec.js.map +1 -1
- package/dist/message-handler.d.ts +1 -1
- package/dist/message-handler.d.ts.map +1 -1
- package/dist/message-handler.js +1 -1
- package/dist/message-handler.js.map +1 -1
- package/dist/model-database/database-engine.d.ts +25 -0
- package/dist/model-database/database-engine.d.ts.map +1 -0
- package/dist/model-database/database-engine.js +37 -0
- package/dist/model-database/database-engine.js.map +1 -0
- package/dist/model-database/database-engine.spec.d.ts +2 -0
- package/dist/model-database/database-engine.spec.d.ts.map +1 -0
- package/dist/model-database/database-engine.spec.js +413 -0
- package/dist/model-database/database-engine.spec.js.map +1 -0
- package/dist/model-database/model-database.d.ts +30 -0
- package/dist/model-database/model-database.d.ts.map +1 -0
- package/dist/model-database/model-database.js +82 -0
- package/dist/model-database/model-database.js.map +1 -0
- package/dist/model-database/model-database.spec.d.ts +2 -0
- package/dist/model-database/model-database.spec.d.ts.map +1 -0
- package/dist/model-database/model-database.spec.js +322 -0
- package/dist/model-database/model-database.spec.js.map +1 -0
- package/dist/model-database/model-engine.d.ts +25 -0
- package/dist/model-database/model-engine.d.ts.map +1 -0
- package/dist/model-database/model-engine.js +49 -0
- package/dist/model-database/model-engine.js.map +1 -0
- package/dist/model-database/model-engine.spec.d.ts +2 -0
- package/dist/model-database/model-engine.spec.d.ts.map +1 -0
- package/dist/model-database/model-engine.spec.js +381 -0
- package/dist/model-database/model-engine.spec.js.map +1 -0
- package/dist/model-database/model-fetcher.d.ts +14 -0
- package/dist/model-database/model-fetcher.d.ts.map +1 -0
- package/dist/model-database/model-fetcher.js +249 -0
- package/dist/model-database/model-fetcher.js.map +1 -0
- package/dist/model-database/model-fetcher.spec.d.ts +2 -0
- package/dist/model-database/model-fetcher.spec.d.ts.map +1 -0
- package/dist/model-database/model-fetcher.spec.js +498 -0
- package/dist/model-database/model-fetcher.spec.js.map +1 -0
- package/dist/models/models-cache.d.ts +1 -1
- package/dist/models/models-cache.d.ts.map +1 -1
- package/dist/models/models-cache.js +1 -1
- package/dist/models/models-cache.js.map +1 -1
- package/dist/models/models-dev-client.d.ts.map +1 -1
- package/dist/models/models-dev-client.js +23 -7
- package/dist/models/models-dev-client.js.map +1 -1
- package/dist/prompt-history.js +2 -2
- package/dist/prompt-history.js.map +1 -1
- package/dist/services/checkpoint-manager.d.ts +68 -0
- package/dist/services/checkpoint-manager.d.ts.map +1 -0
- package/dist/services/checkpoint-manager.js +345 -0
- package/dist/services/checkpoint-manager.js.map +1 -0
- package/dist/services/checkpoint-manager.spec.d.ts +2 -0
- package/dist/services/checkpoint-manager.spec.d.ts.map +1 -0
- package/dist/services/checkpoint-manager.spec.js +353 -0
- package/dist/services/checkpoint-manager.spec.js.map +1 -0
- package/dist/services/file-snapshot.d.ts +32 -0
- package/dist/services/file-snapshot.d.ts.map +1 -0
- package/dist/services/file-snapshot.js +161 -0
- package/dist/services/file-snapshot.js.map +1 -0
- package/dist/services/file-snapshot.spec.d.ts +2 -0
- package/dist/services/file-snapshot.spec.d.ts.map +1 -0
- package/dist/services/file-snapshot.spec.js +285 -0
- package/dist/services/file-snapshot.spec.js.map +1 -0
- package/dist/test-utils/render-with-theme.d.ts +7 -0
- package/dist/test-utils/render-with-theme.d.ts.map +1 -0
- package/dist/test-utils/render-with-theme.js +38 -0
- package/dist/test-utils/render-with-theme.js.map +1 -0
- package/dist/tokenization/tokenizer-factory.js +2 -2
- package/dist/tokenization/tokenizer-factory.js.map +1 -1
- package/dist/tokenization/tokenizer-factory.spec.js +2 -2
- package/dist/tokenization/tokenizer-factory.spec.js.map +1 -1
- package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts +1 -1
- package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts.map +1 -1
- package/dist/tokenization/tokenizers/anthropic-tokenizer.js.map +1 -1
- package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.js.map +1 -1
- package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts +1 -1
- package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts.map +1 -1
- package/dist/tokenization/tokenizers/fallback-tokenizer.spec.js.map +1 -1
- package/dist/tokenization/tokenizers/llama-tokenizer.d.ts +1 -1
- package/dist/tokenization/tokenizers/llama-tokenizer.d.ts.map +1 -1
- package/dist/tokenization/tokenizers/llama-tokenizer.js.map +1 -1
- package/dist/tokenization/tokenizers/llama-tokenizer.spec.js.map +1 -1
- package/dist/tokenization/tokenizers/openai-tokenizer.d.ts +1 -1
- package/dist/tokenization/tokenizers/openai-tokenizer.d.ts.map +1 -1
- package/dist/tokenization/tokenizers/openai-tokenizer.js.map +1 -1
- package/dist/tokenization/tokenizers/openai-tokenizer.spec.js.map +1 -1
- package/dist/tool-calling/json-parser.d.ts.map +1 -1
- package/dist/tool-calling/json-parser.js +12 -14
- package/dist/tool-calling/json-parser.js.map +1 -1
- package/dist/tool-calling/json-parser.spec.js +7 -7
- package/dist/tool-calling/json-parser.spec.js.map +1 -1
- package/dist/tool-calling/tool-parser.d.ts.map +1 -1
- package/dist/tool-calling/tool-parser.js +38 -10
- package/dist/tool-calling/tool-parser.js.map +1 -1
- package/dist/tool-calling/tool-parser.spec.js +82 -4
- package/dist/tool-calling/tool-parser.spec.js.map +1 -1
- package/dist/tool-calling/xml-parser.d.ts.map +1 -1
- package/dist/tool-calling/xml-parser.js +21 -23
- package/dist/tool-calling/xml-parser.js.map +1 -1
- package/dist/tool-calling/xml-parser.spec.js +23 -3
- package/dist/tool-calling/xml-parser.spec.js.map +1 -1
- package/dist/tools/create-file.d.ts +24 -2
- package/dist/tools/create-file.d.ts.map +1 -1
- package/dist/tools/create-file.js +20 -16
- package/dist/tools/create-file.js.map +1 -1
- package/dist/tools/delete-lines.d.ts +18 -2
- package/dist/tools/delete-lines.d.ts.map +1 -1
- package/dist/tools/delete-lines.js +22 -17
- package/dist/tools/delete-lines.js.map +1 -1
- package/dist/tools/execute-bash.d.ts +2 -2
- package/dist/tools/execute-bash.d.ts.map +1 -1
- package/dist/tools/execute-bash.js +13 -12
- package/dist/tools/execute-bash.js.map +1 -1
- package/dist/tools/execute-function.spec.d.ts +2 -0
- package/dist/tools/execute-function.spec.d.ts.map +1 -0
- package/dist/tools/execute-function.spec.js +141 -0
- package/dist/tools/execute-function.spec.js.map +1 -0
- package/dist/tools/fetch-url.d.ts +16 -2
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +13 -13
- package/dist/tools/fetch-url.js.map +1 -1
- package/dist/tools/find-files.d.ts +18 -2
- package/dist/tools/find-files.d.ts.map +1 -1
- package/dist/tools/find-files.js +13 -11
- package/dist/tools/find-files.js.map +1 -1
- package/dist/tools/index.d.ts +2 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +35 -25
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insert-lines.d.ts +18 -2
- package/dist/tools/insert-lines.d.ts.map +1 -1
- package/dist/tools/insert-lines.js +21 -16
- package/dist/tools/insert-lines.js.map +1 -1
- package/dist/tools/lsp-get-diagnostics.d.ts +10 -2
- package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -1
- package/dist/tools/lsp-get-diagnostics.js +13 -11
- package/dist/tools/lsp-get-diagnostics.js.map +1 -1
- package/dist/tools/needs-approval.spec.d.ts +2 -0
- package/dist/tools/needs-approval.spec.d.ts.map +1 -0
- package/dist/tools/needs-approval.spec.js +308 -0
- package/dist/tools/needs-approval.spec.js.map +1 -0
- package/dist/tools/read-file.d.ts +2 -2
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +16 -18
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/replace-lines.d.ts +19 -2
- package/dist/tools/replace-lines.d.ts.map +1 -1
- package/dist/tools/replace-lines.js +21 -16
- package/dist/tools/replace-lines.js.map +1 -1
- package/dist/tools/search-file-contents.d.ts +20 -2
- package/dist/tools/search-file-contents.d.ts.map +1 -1
- package/dist/tools/search-file-contents.js +17 -14
- package/dist/tools/search-file-contents.js.map +1 -1
- package/dist/tools/tool-manager.d.ts +1 -1
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +1 -1
- package/dist/tools/tool-manager.js.map +1 -1
- package/dist/tools/tool-registry.d.ts +1 -1
- package/dist/tools/tool-registry.d.ts.map +1 -1
- package/dist/tools/web-search.d.ts +2 -2
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +14 -14
- package/dist/tools/web-search.js.map +1 -1
- package/dist/types/app.d.ts +7 -4
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/checkpoint.d.ts +43 -0
- package/dist/types/checkpoint.d.ts.map +1 -0
- package/dist/types/checkpoint.js +2 -0
- package/dist/types/checkpoint.js.map +1 -0
- package/dist/types/config.d.ts +0 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core-connection-status.spec.d.ts +2 -0
- package/dist/types/core-connection-status.spec.d.ts.map +1 -0
- package/dist/types/core-connection-status.spec.js +52 -0
- package/dist/types/core-connection-status.spec.js.map +1 -0
- package/dist/types/core.d.ts +34 -29
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/system.d.ts +5 -30
- package/dist/types/system.d.ts.map +1 -1
- package/dist/usage/calculator.spec.js +1 -1
- package/dist/usage/calculator.spec.js.map +1 -1
- package/dist/usage/storage.d.ts +1 -1
- package/dist/usage/storage.d.ts.map +1 -1
- package/dist/usage/storage.js +9 -3
- package/dist/usage/storage.js.map +1 -1
- package/dist/usage/storage.spec.js +3 -3
- package/dist/usage/storage.spec.js.map +1 -1
- package/dist/usage/tracker.d.ts.map +1 -1
- package/dist/usage/tracker.js +1 -1
- package/dist/usage/tracker.js.map +1 -1
- package/dist/usage/tracker.spec.js +4 -4
- package/dist/usage/tracker.spec.js.map +1 -1
- package/dist/utils/atomic-deletion.spec.js +1 -1
- package/dist/utils/atomic-deletion.spec.js.map +1 -1
- package/dist/utils/checkpoint-utils.d.ts +12 -0
- package/dist/utils/checkpoint-utils.d.ts.map +1 -0
- package/dist/utils/checkpoint-utils.js +85 -0
- package/dist/utils/checkpoint-utils.js.map +1 -0
- package/dist/utils/checkpoint-utils.spec.d.ts +2 -0
- package/dist/utils/checkpoint-utils.spec.d.ts.map +1 -0
- package/dist/utils/checkpoint-utils.spec.js +182 -0
- package/dist/utils/checkpoint-utils.spec.js.map +1 -0
- package/dist/utils/error-formatter.d.ts +35 -0
- package/dist/utils/error-formatter.d.ts.map +1 -1
- package/dist/utils/error-formatter.js +123 -0
- package/dist/utils/error-formatter.js.map +1 -1
- package/dist/utils/file-autocomplete.js +2 -2
- package/dist/utils/file-autocomplete.js.map +1 -1
- package/dist/utils/file-autocomplete.spec.js +1 -1
- package/dist/utils/file-autocomplete.spec.js.map +1 -1
- package/dist/utils/file-content-loader.js +1 -1
- package/dist/utils/file-content-loader.js.map +1 -1
- package/dist/utils/file-content-loader.spec.js +4 -4
- package/dist/utils/file-content-loader.spec.js.map +1 -1
- package/dist/utils/file-mention-handler.js.map +1 -1
- package/dist/utils/file-mention-handler.spec.js +4 -4
- package/dist/utils/file-mention-handler.spec.js.map +1 -1
- package/dist/utils/file-mention-parser.spec.js +2 -2
- package/dist/utils/file-mention-parser.spec.js.map +1 -1
- package/dist/utils/installation-detector.js +2 -2
- package/dist/utils/installation-detector.js.map +1 -1
- package/dist/utils/installation-detector.spec.js +10 -17
- package/dist/utils/installation-detector.spec.js.map +1 -1
- package/dist/utils/logging/config.d.ts +41 -0
- package/dist/utils/logging/config.d.ts.map +1 -0
- package/dist/utils/logging/config.js +188 -0
- package/dist/utils/logging/config.js.map +1 -0
- package/dist/utils/logging/config.spec.d.ts +2 -0
- package/dist/utils/logging/config.spec.d.ts.map +1 -0
- package/dist/utils/logging/config.spec.js +233 -0
- package/dist/utils/logging/config.spec.js.map +1 -0
- package/dist/utils/logging/console-facade.d.ts +93 -0
- package/dist/utils/logging/console-facade.d.ts.map +1 -0
- package/dist/utils/logging/console-facade.js +295 -0
- package/dist/utils/logging/console-facade.js.map +1 -0
- package/dist/utils/logging/console-facade.spec.d.ts +2 -0
- package/dist/utils/logging/console-facade.spec.d.ts.map +1 -0
- package/dist/utils/logging/console-facade.spec.js +143 -0
- package/dist/utils/logging/console-facade.spec.js.map +1 -0
- package/dist/utils/logging/correlation.d.ts +139 -0
- package/dist/utils/logging/correlation.d.ts.map +1 -0
- package/dist/utils/logging/correlation.js +410 -0
- package/dist/utils/logging/correlation.js.map +1 -0
- package/dist/utils/logging/correlation.spec.d.ts +2 -0
- package/dist/utils/logging/correlation.spec.d.ts.map +1 -0
- package/dist/utils/logging/correlation.spec.js +449 -0
- package/dist/utils/logging/correlation.spec.js.map +1 -0
- package/dist/utils/logging/formatters.d.ts +70 -0
- package/dist/utils/logging/formatters.d.ts.map +1 -0
- package/dist/utils/logging/formatters.js +186 -0
- package/dist/utils/logging/formatters.js.map +1 -0
- package/dist/utils/logging/formatters.spec.d.ts +2 -0
- package/dist/utils/logging/formatters.spec.d.ts.map +1 -0
- package/dist/utils/logging/formatters.spec.js +356 -0
- package/dist/utils/logging/formatters.spec.js.map +1 -0
- package/dist/utils/logging/health-monitor.d.ts +216 -0
- package/dist/utils/logging/health-monitor.d.ts.map +1 -0
- package/dist/utils/logging/health-monitor.js +760 -0
- package/dist/utils/logging/health-monitor.js.map +1 -0
- package/dist/utils/logging/health-monitor.spec.d.ts +2 -0
- package/dist/utils/logging/health-monitor.spec.d.ts.map +1 -0
- package/dist/utils/logging/health-monitor.spec.js +305 -0
- package/dist/utils/logging/health-monitor.spec.js.map +1 -0
- package/dist/utils/logging/index.d.ts +100 -0
- package/dist/utils/logging/index.d.ts.map +1 -0
- package/dist/utils/logging/index.js +186 -0
- package/dist/utils/logging/index.js.map +1 -0
- package/dist/utils/logging/index.spec.d.ts +2 -0
- package/dist/utils/logging/index.spec.d.ts.map +1 -0
- package/dist/utils/logging/index.spec.js +214 -0
- package/dist/utils/logging/index.spec.js.map +1 -0
- package/dist/utils/logging/integration.spec.d.ts +2 -0
- package/dist/utils/logging/integration.spec.d.ts.map +1 -0
- package/dist/utils/logging/integration.spec.js +312 -0
- package/dist/utils/logging/integration.spec.js.map +1 -0
- package/dist/utils/logging/log-method-factory.d.ts +43 -0
- package/dist/utils/logging/log-method-factory.d.ts.map +1 -0
- package/dist/utils/logging/log-method-factory.js +176 -0
- package/dist/utils/logging/log-method-factory.js.map +1 -0
- package/dist/utils/logging/log-method-factory.spec.d.ts +2 -0
- package/dist/utils/logging/log-method-factory.spec.d.ts.map +1 -0
- package/dist/utils/logging/log-method-factory.spec.js +428 -0
- package/dist/utils/logging/log-method-factory.spec.js.map +1 -0
- package/dist/utils/logging/log-query.d.ts +275 -0
- package/dist/utils/logging/log-query.d.ts.map +1 -0
- package/dist/utils/logging/log-query.js +621 -0
- package/dist/utils/logging/log-query.js.map +1 -0
- package/dist/utils/logging/log-query.spec.d.ts +2 -0
- package/dist/utils/logging/log-query.spec.d.ts.map +1 -0
- package/dist/utils/logging/log-query.spec.js +737 -0
- package/dist/utils/logging/log-query.spec.js.map +1 -0
- package/dist/utils/logging/logger-provider.d.ts +73 -0
- package/dist/utils/logging/logger-provider.d.ts.map +1 -0
- package/dist/utils/logging/logger-provider.js +298 -0
- package/dist/utils/logging/logger-provider.js.map +1 -0
- package/dist/utils/logging/logger-provider.spec.d.ts +2 -0
- package/dist/utils/logging/logger-provider.spec.d.ts.map +1 -0
- package/dist/utils/logging/logger-provider.spec.js +204 -0
- package/dist/utils/logging/logger-provider.spec.js.map +1 -0
- package/dist/utils/logging/performance.d.ts +147 -0
- package/dist/utils/logging/performance.d.ts.map +1 -0
- package/dist/utils/logging/performance.js +520 -0
- package/dist/utils/logging/performance.js.map +1 -0
- package/dist/utils/logging/performance.spec.d.ts +2 -0
- package/dist/utils/logging/performance.spec.d.ts.map +1 -0
- package/dist/utils/logging/performance.spec.js +139 -0
- package/dist/utils/logging/performance.spec.js.map +1 -0
- package/dist/utils/logging/pino-logger.d.ts +22 -0
- package/dist/utils/logging/pino-logger.d.ts.map +1 -0
- package/dist/utils/logging/pino-logger.js +372 -0
- package/dist/utils/logging/pino-logger.js.map +1 -0
- package/dist/utils/logging/pino-logger.spec.d.ts +2 -0
- package/dist/utils/logging/pino-logger.spec.d.ts.map +1 -0
- package/dist/utils/logging/pino-logger.spec.js +294 -0
- package/dist/utils/logging/pino-logger.spec.js.map +1 -0
- package/dist/utils/logging/redaction.d.ts +38 -0
- package/dist/utils/logging/redaction.d.ts.map +1 -0
- package/dist/utils/logging/redaction.js +210 -0
- package/dist/utils/logging/redaction.js.map +1 -0
- package/dist/utils/logging/redaction.spec.d.ts +2 -0
- package/dist/utils/logging/redaction.spec.d.ts.map +1 -0
- package/dist/utils/logging/redaction.spec.js +338 -0
- package/dist/utils/logging/redaction.spec.js.map +1 -0
- package/dist/utils/logging/request-tracker.d.ts +189 -0
- package/dist/utils/logging/request-tracker.d.ts.map +1 -0
- package/dist/utils/logging/request-tracker.js +569 -0
- package/dist/utils/logging/request-tracker.js.map +1 -0
- package/dist/utils/logging/request-tracker.spec.d.ts +2 -0
- package/dist/utils/logging/request-tracker.spec.d.ts.map +1 -0
- package/dist/utils/logging/request-tracker.spec.js +868 -0
- package/dist/utils/logging/request-tracker.spec.js.map +1 -0
- package/dist/utils/logging/transports.d.ts +55 -0
- package/dist/utils/logging/transports.d.ts.map +1 -0
- package/dist/utils/logging/transports.js +252 -0
- package/dist/utils/logging/transports.js.map +1 -0
- package/dist/utils/logging/transports.spec.d.ts +2 -0
- package/dist/utils/logging/transports.spec.d.ts.map +1 -0
- package/dist/utils/logging/transports.spec.js +390 -0
- package/dist/utils/logging/transports.spec.js.map +1 -0
- package/dist/utils/logging/types.d.ts +173 -0
- package/dist/utils/logging/types.d.ts.map +1 -0
- package/dist/utils/logging/types.js +5 -0
- package/dist/utils/logging/types.js.map +1 -0
- package/dist/utils/message-queue.d.ts +64 -4
- package/dist/utils/message-queue.d.ts.map +1 -1
- package/dist/utils/message-queue.js +282 -28
- package/dist/utils/message-queue.js.map +1 -1
- package/dist/utils/paste-utils.spec.js +1 -1
- package/dist/utils/paste-utils.spec.js.map +1 -1
- package/dist/utils/prompt-processor.d.ts +2 -3
- package/dist/utils/prompt-processor.d.ts.map +1 -1
- package/dist/utils/prompt-processor.js +4 -52
- package/dist/utils/prompt-processor.js.map +1 -1
- package/dist/utils/tool-cancellation.spec.js.map +1 -1
- package/dist/utils/tool-result-display.d.ts +2 -2
- package/dist/utils/tool-result-display.d.ts.map +1 -1
- package/dist/utils/tool-result-display.js +3 -3
- package/dist/utils/tool-result-display.js.map +1 -1
- package/dist/utils/update-checker.d.ts.map +1 -1
- package/dist/utils/update-checker.js +1 -1
- package/dist/utils/update-checker.js.map +1 -1
- package/dist/utils/update-checker.spec.js +2 -2
- package/dist/utils/update-checker.spec.js.map +1 -1
- package/dist/vscode/extension-installer.js +1 -1
- package/dist/vscode/extension-installer.js.map +1 -1
- package/dist/vscode/extension-installer.spec.js +1 -1
- package/dist/vscode/extension-installer.spec.js.map +1 -1
- package/dist/vscode/protocol.spec.js +1 -1
- package/dist/vscode/protocol.spec.js.map +1 -1
- package/dist/vscode/vscode-server.d.ts.map +1 -1
- package/dist/vscode/vscode-server.js +2 -2
- package/dist/vscode/vscode-server.js.map +1 -1
- package/dist/vscode/vscode-server.spec.js.map +1 -1
- package/dist/wizard/config-wizard.d.ts.map +1 -1
- package/dist/wizard/config-wizard.js +16 -12
- package/dist/wizard/config-wizard.js.map +1 -1
- package/dist/wizard/steps/location-step.js +4 -4
- package/dist/wizard/steps/location-step.js.map +1 -1
- package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
- package/dist/wizard/steps/mcp-step.js +4 -4
- package/dist/wizard/steps/mcp-step.js.map +1 -1
- package/dist/wizard/steps/provider-step.d.ts.map +1 -1
- package/dist/wizard/steps/provider-step.js +4 -4
- package/dist/wizard/steps/provider-step.js.map +1 -1
- package/dist/wizard/steps/summary-step.d.ts.map +1 -1
- package/dist/wizard/steps/summary-step.js +2 -2
- package/dist/wizard/steps/summary-step.js.map +1 -1
- package/dist/wizard/templates/provider-templates.d.ts.map +1 -1
- package/dist/wizard/templates/provider-templates.js +66 -2
- package/dist/wizard/templates/provider-templates.js.map +1 -1
- package/dist/wizard/validation-array.spec.js +1 -1
- package/dist/wizard/validation-array.spec.js.map +1 -1
- package/dist/wizard/validation.spec.js +1 -1
- package/dist/wizard/validation.spec.js.map +1 -1
- package/package.json +28 -26
- package/source/app/prompts/main-prompt.md +29 -96
- package/dist/commands/recommendations.d.ts +0 -8
- package/dist/commands/recommendations.d.ts.map +0 -1
- package/dist/commands/recommendations.js +0 -311
- package/dist/commands/recommendations.js.map +0 -1
- package/dist/commands/streaming.d.ts +0 -3
- package/dist/commands/streaming.d.ts.map +0 -1
- package/dist/commands/streaming.js +0 -23
- package/dist/commands/streaming.js.map +0 -1
- package/dist/components/thinking-indicator.d.ts +0 -3
- package/dist/components/thinking-indicator.d.ts.map +0 -1
- package/dist/components/thinking-indicator.js +0 -69
- package/dist/components/thinking-indicator.js.map +0 -1
- package/dist/recommendations/model-database.d.ts +0 -8
- package/dist/recommendations/model-database.d.ts.map +0 -1
- package/dist/recommendations/model-database.js +0 -514
- package/dist/recommendations/model-database.js.map +0 -1
- package/dist/recommendations/model-engine.d.ts +0 -16
- package/dist/recommendations/model-engine.d.ts.map +0 -1
- package/dist/recommendations/model-engine.js +0 -185
- package/dist/recommendations/model-engine.js.map +0 -1
- package/dist/recommendations/recommendation-engine.d.ts +0 -39
- package/dist/recommendations/recommendation-engine.d.ts.map +0 -1
- package/dist/recommendations/recommendation-engine.js +0 -144
- package/dist/recommendations/recommendation-engine.js.map +0 -1
- package/dist/system/detector.d.ts +0 -18
- package/dist/system/detector.d.ts.map +0 -1
- package/dist/system/detector.js +0 -140
- package/dist/system/detector.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](
|
|
23
|
-
- [Advanced Tool System](
|
|
24
|
-
- [Custom Command System](
|
|
25
|
-
- [Enhanced User Experience](
|
|
26
|
-
- [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`:
|
|
@@ -423,7 +530,6 @@ Preferences follow the same location hierarchy as configuration files:
|
|
|
423
530
|
- **Last model per provider**: Your preferred model for each provider
|
|
424
531
|
- **Session continuity**: Automatically switches back to your preferred provider/model when restarting
|
|
425
532
|
- **Last theme used**: The theme you last selected
|
|
426
|
-
- **Streaming preference**: Whether response streaming is enabled (toggle with `/streaming` command)
|
|
427
533
|
|
|
428
534
|
**Manual management:**
|
|
429
535
|
|
|
@@ -445,16 +551,16 @@ You can override this directory using `NANOCODER_DATA_DIR`.
|
|
|
445
551
|
#### Built-in Commands
|
|
446
552
|
|
|
447
553
|
- `/help` - Show available commands
|
|
448
|
-
- `/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.
|
|
449
555
|
- `/setup-config` - Interactive wizard for configuring AI providers and MCP servers with templates
|
|
450
556
|
- `/clear` - Clear chat history
|
|
451
557
|
- `/model` - Switch between available models
|
|
452
558
|
- `/provider` - Switch between configured AI providers
|
|
453
559
|
- `/status` - Display current status (CWD, provider, model, theme, available updates, AGENTS setup)
|
|
454
|
-
- `/
|
|
455
|
-
- `/recommendations` - Get AI model recommendations based on your system capabilities (RAM, GPU, network)
|
|
560
|
+
- `/model-database` - Browse coding models from OpenRouter (searchable, filterable by open/proprietary)
|
|
456
561
|
- `/mcp` - Show connected MCP servers and their tools
|
|
457
562
|
- `/custom-commands` - List all custom commands
|
|
563
|
+
- `/checkpoint` - Save and restore conversation snapshots (see [Checkpointing](#checkpointing) section)
|
|
458
564
|
- `/exit` - Exit the application
|
|
459
565
|
- `/export` - Export current session to markdown file
|
|
460
566
|
- `/theme` - Select a theme for the Nanocoder CLI
|
|
@@ -464,6 +570,66 @@ You can override this directory using `NANOCODER_DATA_DIR`.
|
|
|
464
570
|
- `!command` - Execute bash commands directly without leaving Nanocoder (output becomes context for the LLM)
|
|
465
571
|
- `@file` - Include file contents in messages automatically via fuzzy search as you type
|
|
466
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
|
+
|
|
467
633
|
#### Custom Commands
|
|
468
634
|
|
|
469
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.
|
|
@@ -536,12 +702,12 @@ Generate comprehensive unit tests for {{component}}. Include:
|
|
|
536
702
|
- **Smart autocomplete**: Tab completion for commands with real-time suggestions
|
|
537
703
|
- **Colorized output**: Syntax highlighting and structured display
|
|
538
704
|
- **Session persistence**: Maintains context and preferences across sessions
|
|
539
|
-
- **Real-time streaming**: Live token-by-token streaming of AI responses
|
|
705
|
+
- **Real-time streaming**: Live token-by-token streaming of AI responses
|
|
540
706
|
- **Real-time indicators**: Shows token usage, timing, and processing status
|
|
541
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.
|
|
542
708
|
- **Development modes**: Three modes to control tool execution behavior (toggle with Shift+Tab)
|
|
543
|
-
- **Normal mode**: Standard tool confirmation flow - review
|
|
544
|
-
- **Auto-accept mode**: Automatically accepts
|
|
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
|
|
545
711
|
- **Plan mode**: AI suggests actions but doesn't execute tools - useful for planning and exploration
|
|
546
712
|
|
|
547
713
|
### Developer Features
|
|
@@ -588,6 +754,5 @@ Nanocoder could benefit from help all across the board. Such as:
|
|
|
588
754
|
- Reporting bugs or suggesting features
|
|
589
755
|
- Marketing and getting the word out
|
|
590
756
|
- Design and building more great software
|
|
591
|
-
- Model cards for our recommendations database
|
|
592
757
|
|
|
593
758
|
All contributions and community participation are welcome!
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk-client-empty-message.spec.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client-empty-message.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import test from 'ava';
|
|
2
|
+
import { isEmptyAssistantMessage } from './ai-sdk-client.js';
|
|
3
|
+
// Tests for isEmptyAssistantMessage function
|
|
4
|
+
// This function is used to filter out empty assistant messages that would cause API errors:
|
|
5
|
+
// "400 Bad Request: Assistant message must have either content or tool_calls, but not none."
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Non-assistant messages should never be considered empty
|
|
8
|
+
// ============================================================================
|
|
9
|
+
test('isEmptyAssistantMessage - user message is not empty', t => {
|
|
10
|
+
const message = {
|
|
11
|
+
role: 'user',
|
|
12
|
+
content: '',
|
|
13
|
+
};
|
|
14
|
+
t.false(isEmptyAssistantMessage(message));
|
|
15
|
+
});
|
|
16
|
+
test('isEmptyAssistantMessage - system message is not empty', t => {
|
|
17
|
+
const message = {
|
|
18
|
+
role: 'system',
|
|
19
|
+
content: '',
|
|
20
|
+
};
|
|
21
|
+
t.false(isEmptyAssistantMessage(message));
|
|
22
|
+
});
|
|
23
|
+
test('isEmptyAssistantMessage - tool message is not empty', t => {
|
|
24
|
+
const message = {
|
|
25
|
+
role: 'tool',
|
|
26
|
+
content: '',
|
|
27
|
+
};
|
|
28
|
+
t.false(isEmptyAssistantMessage(message));
|
|
29
|
+
});
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// Empty assistant messages (should be filtered out)
|
|
32
|
+
// ============================================================================
|
|
33
|
+
test('isEmptyAssistantMessage - assistant with empty string content is empty', t => {
|
|
34
|
+
const message = {
|
|
35
|
+
role: 'assistant',
|
|
36
|
+
content: '',
|
|
37
|
+
};
|
|
38
|
+
t.true(isEmptyAssistantMessage(message));
|
|
39
|
+
});
|
|
40
|
+
test('isEmptyAssistantMessage - assistant with whitespace-only content is empty', t => {
|
|
41
|
+
const message = {
|
|
42
|
+
role: 'assistant',
|
|
43
|
+
content: ' \n\t ',
|
|
44
|
+
};
|
|
45
|
+
t.true(isEmptyAssistantMessage(message));
|
|
46
|
+
});
|
|
47
|
+
test('isEmptyAssistantMessage - assistant with empty array content is empty', t => {
|
|
48
|
+
const message = {
|
|
49
|
+
role: 'assistant',
|
|
50
|
+
content: [],
|
|
51
|
+
};
|
|
52
|
+
t.true(isEmptyAssistantMessage(message));
|
|
53
|
+
});
|
|
54
|
+
test('isEmptyAssistantMessage - assistant with empty content and empty toolCalls is empty', t => {
|
|
55
|
+
const message = {
|
|
56
|
+
role: 'assistant',
|
|
57
|
+
content: '',
|
|
58
|
+
toolCalls: [],
|
|
59
|
+
};
|
|
60
|
+
t.true(isEmptyAssistantMessage(message));
|
|
61
|
+
});
|
|
62
|
+
test('isEmptyAssistantMessage - assistant with undefined toolCalls is empty', t => {
|
|
63
|
+
const message = {
|
|
64
|
+
role: 'assistant',
|
|
65
|
+
content: '',
|
|
66
|
+
toolCalls: undefined,
|
|
67
|
+
};
|
|
68
|
+
t.true(isEmptyAssistantMessage(message));
|
|
69
|
+
});
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Valid assistant messages (should NOT be filtered out)
|
|
72
|
+
// ============================================================================
|
|
73
|
+
test('isEmptyAssistantMessage - assistant with text content is not empty', t => {
|
|
74
|
+
const message = {
|
|
75
|
+
role: 'assistant',
|
|
76
|
+
content: 'Hello, how can I help you?',
|
|
77
|
+
};
|
|
78
|
+
t.false(isEmptyAssistantMessage(message));
|
|
79
|
+
});
|
|
80
|
+
test('isEmptyAssistantMessage - assistant with single character content is not empty', t => {
|
|
81
|
+
const message = {
|
|
82
|
+
role: 'assistant',
|
|
83
|
+
content: 'a',
|
|
84
|
+
};
|
|
85
|
+
t.false(isEmptyAssistantMessage(message));
|
|
86
|
+
});
|
|
87
|
+
test('isEmptyAssistantMessage - assistant with array content is not empty', t => {
|
|
88
|
+
const message = {
|
|
89
|
+
role: 'assistant',
|
|
90
|
+
content: [{ type: 'text', text: 'Hello' }],
|
|
91
|
+
};
|
|
92
|
+
t.false(isEmptyAssistantMessage(message));
|
|
93
|
+
});
|
|
94
|
+
test('isEmptyAssistantMessage - assistant with toolCalls is not empty', t => {
|
|
95
|
+
const message = {
|
|
96
|
+
role: 'assistant',
|
|
97
|
+
content: '',
|
|
98
|
+
toolCalls: [
|
|
99
|
+
{ toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
|
|
100
|
+
],
|
|
101
|
+
};
|
|
102
|
+
t.false(isEmptyAssistantMessage(message));
|
|
103
|
+
});
|
|
104
|
+
test('isEmptyAssistantMessage - assistant with content and toolCalls is not empty', t => {
|
|
105
|
+
const message = {
|
|
106
|
+
role: 'assistant',
|
|
107
|
+
content: 'Let me read that file for you.',
|
|
108
|
+
toolCalls: [
|
|
109
|
+
{ toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
|
|
110
|
+
],
|
|
111
|
+
};
|
|
112
|
+
t.false(isEmptyAssistantMessage(message));
|
|
113
|
+
});
|
|
114
|
+
test('isEmptyAssistantMessage - assistant with whitespace content but toolCalls is not empty', t => {
|
|
115
|
+
const message = {
|
|
116
|
+
role: 'assistant',
|
|
117
|
+
content: ' ',
|
|
118
|
+
toolCalls: [
|
|
119
|
+
{ toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
|
|
120
|
+
],
|
|
121
|
+
};
|
|
122
|
+
t.false(isEmptyAssistantMessage(message));
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=ai-sdk-client-empty-message.spec.js.map
|
|
@@ -0,0 +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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"}
|
package/dist/ai-sdk-client.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
import type { AIProviderConfig, LLMChatResponse, LLMClient, Message,
|
|
1
|
+
import type { AIProviderConfig, AISDKCoreTool, LLMChatResponse, LLMClient, Message, StreamCallbacks } from './types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Message type used for testing the empty assistant message filter.
|
|
4
|
+
* This is a simplified version of the AI SDK's internal message format.
|
|
5
|
+
*/
|
|
6
|
+
export interface TestableMessage {
|
|
7
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
8
|
+
content: string | unknown[];
|
|
9
|
+
toolCalls?: unknown[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Checks if an assistant message is empty (no content and no tool calls).
|
|
13
|
+
* Empty assistant messages cause API errors:
|
|
14
|
+
* "400 Bad Request: Assistant message must have either content or tool_calls, but not none."
|
|
15
|
+
*
|
|
16
|
+
* Exported for testing purposes.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isEmptyAssistantMessage(message: TestableMessage): boolean;
|
|
2
19
|
/**
|
|
3
20
|
* Parses API errors into user-friendly messages.
|
|
4
21
|
* Exported for testing purposes.
|
|
@@ -24,11 +41,10 @@ export declare class AISDKClient implements LLMClient {
|
|
|
24
41
|
getContextSize(): number;
|
|
25
42
|
getMaxRetries(): number;
|
|
26
43
|
getAvailableModels(): Promise<string[]>;
|
|
27
|
-
chat(messages: Message[], tools: Record<string, AISDKCoreTool>, signal?: AbortSignal): Promise<LLMChatResponse>;
|
|
28
44
|
/**
|
|
29
45
|
* Stream chat with real-time token updates
|
|
30
46
|
*/
|
|
31
|
-
|
|
47
|
+
chat(messages: Message[], tools: Record<string, AISDKCoreTool>, callbacks: StreamCallbacks, signal?: AbortSignal): Promise<LLMChatResponse>;
|
|
32
48
|
clearContext(): Promise<void>;
|
|
33
49
|
}
|
|
34
50
|
//# sourceMappingURL=ai-sdk-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-sdk-client.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client.ts"],"names":[],"mappings":"
|
|
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"}
|