@nanocollective/nanocoder 1.23.0 → 1.24.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/LICENSE.md +1 -15
- package/README.md +25 -884
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client/ai-sdk-client.d.ts +3 -2
- package/dist/ai-sdk-client/ai-sdk-client.d.ts.map +1 -1
- package/dist/ai-sdk-client/ai-sdk-client.js +16 -2
- package/dist/ai-sdk-client/ai-sdk-client.js.map +1 -1
- package/dist/ai-sdk-client/chat/chat-handler.d.ts +2 -1
- package/dist/ai-sdk-client/chat/chat-handler.d.ts.map +1 -1
- package/dist/ai-sdk-client/chat/chat-handler.js +37 -70
- package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
- package/dist/ai-sdk-client/chat/streaming-handler.d.ts +2 -2
- package/dist/ai-sdk-client/chat/streaming-handler.d.ts.map +1 -1
- package/dist/ai-sdk-client/chat/streaming-handler.js +4 -23
- package/dist/ai-sdk-client/chat/streaming-handler.js.map +1 -1
- package/dist/ai-sdk-client/error-handling/error-parser.d.ts.map +1 -1
- package/dist/ai-sdk-client/error-handling/error-parser.js +7 -2
- package/dist/ai-sdk-client/error-handling/error-parser.js.map +1 -1
- package/dist/ai-sdk-client/providers/provider-factory.d.ts +2 -1
- package/dist/ai-sdk-client/providers/provider-factory.d.ts.map +1 -1
- package/dist/ai-sdk-client/providers/provider-factory.js +55 -0
- package/dist/ai-sdk-client/providers/provider-factory.js.map +1 -1
- package/dist/app/App.d.ts +1 -1
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/App.js +66 -50
- package/dist/app/App.js.map +1 -1
- package/dist/app/components/chat-input.d.ts +4 -1
- package/dist/app/components/chat-input.d.ts.map +1 -1
- package/dist/app/components/chat-input.js +4 -3
- package/dist/app/components/chat-input.js.map +1 -1
- package/dist/app/components/modal-selectors.d.ts +6 -7
- package/dist/app/components/modal-selectors.d.ts.map +1 -1
- package/dist/app/components/modal-selectors.js +11 -7
- package/dist/app/components/modal-selectors.js.map +1 -1
- package/dist/app/components/settings-selector.d.ts.map +1 -1
- package/dist/app/components/settings-selector.js +3 -3
- package/dist/app/components/settings-selector.js.map +1 -1
- package/dist/app/helpers.d.ts.map +1 -1
- package/dist/app/helpers.js +2 -4
- package/dist/app/helpers.js.map +1 -1
- package/dist/app/index.d.ts +0 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +0 -1
- package/dist/app/index.js.map +1 -1
- package/dist/app/types.d.ts +2 -0
- package/dist/app/types.d.ts.map +1 -1
- package/dist/app/utils/app-util.d.ts +1 -5
- package/dist/app/utils/app-util.d.ts.map +1 -1
- package/dist/app/utils/app-util.js +60 -460
- package/dist/app/utils/app-util.js.map +1 -1
- package/dist/app/utils/handlers/compact-handler.d.ts +6 -0
- package/dist/app/utils/handlers/compact-handler.d.ts.map +1 -0
- package/dist/app/utils/handlers/compact-handler.js +148 -0
- package/dist/app/utils/handlers/compact-handler.js.map +1 -0
- package/dist/app/utils/handlers/context-max-handler.d.ts +11 -0
- package/dist/app/utils/handlers/context-max-handler.d.ts.map +1 -0
- package/dist/app/utils/handlers/context-max-handler.js +102 -0
- package/dist/app/utils/handlers/context-max-handler.js.map +1 -0
- package/dist/app/utils/handlers/create-handler.d.ts +17 -0
- package/dist/app/utils/handlers/create-handler.d.ts.map +1 -0
- package/dist/app/utils/handlers/create-handler.js +112 -0
- package/dist/app/utils/handlers/create-handler.js.map +1 -0
- package/dist/app/utils/handlers/session-handler.d.ts +8 -0
- package/dist/app/utils/handlers/session-handler.d.ts.map +1 -0
- package/dist/app/utils/handlers/session-handler.js +99 -0
- package/dist/app/utils/handlers/session-handler.js.map +1 -0
- package/dist/auth/github-copilot.d.ts +44 -0
- package/dist/auth/github-copilot.d.ts.map +1 -0
- package/dist/auth/github-copilot.js +178 -0
- package/dist/auth/github-copilot.js.map +1 -0
- package/dist/cli.js +64 -3
- package/dist/cli.js.map +1 -1
- package/dist/client-factory.d.ts +1 -1
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +39 -8
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/compact.d.ts +1 -6
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +2 -13
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/context-max.d.ts +1 -2
- package/dist/commands/context-max.d.ts.map +1 -1
- package/dist/commands/context-max.js +2 -9
- package/dist/commands/context-max.js.map +1 -1
- package/dist/commands/copilot-login-command.d.ts +3 -0
- package/dist/commands/copilot-login-command.d.ts.map +1 -0
- package/dist/commands/copilot-login-command.js +9 -0
- package/dist/commands/copilot-login-command.js.map +1 -0
- package/dist/commands/copilot-login.d.ts +9 -0
- package/dist/commands/copilot-login.d.ts.map +1 -0
- package/dist/commands/copilot-login.js +70 -0
- package/dist/commands/copilot-login.js.map +1 -0
- package/dist/commands/create-stub-command.d.ts +8 -0
- package/dist/commands/create-stub-command.d.ts.map +1 -0
- package/dist/commands/create-stub-command.js +14 -0
- package/dist/commands/create-stub-command.js.map +1 -0
- package/dist/commands/explorer.d.ts +1 -2
- package/dist/commands/explorer.d.ts.map +1 -1
- package/dist/commands/explorer.js +2 -9
- package/dist/commands/explorer.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +1 -1
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/ide.d.ts +1 -2
- package/dist/commands/ide.d.ts.map +1 -1
- package/dist/commands/ide.js +2 -9
- package/dist/commands/ide.js.map +1 -1
- package/dist/commands/index.d.ts +2 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/model.d.ts +1 -2
- package/dist/commands/model.d.ts.map +1 -1
- package/dist/commands/model.js +2 -10
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/provider.d.ts +1 -2
- package/dist/commands/provider.d.ts.map +1 -1
- package/dist/commands/provider.js +2 -10
- package/dist/commands/provider.js.map +1 -1
- package/dist/commands/resume.d.ts +8 -0
- package/dist/commands/resume.d.ts.map +1 -0
- package/dist/commands/resume.js +11 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/settings.d.ts +1 -2
- package/dist/commands/settings.d.ts.map +1 -1
- package/dist/commands/settings.js +2 -10
- package/dist/commands/settings.js.map +1 -1
- package/dist/commands/status.d.ts +1 -2
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -10
- package/dist/commands/status.js.map +1 -1
- package/dist/components/assistant-message.d.ts.map +1 -1
- package/dist/components/assistant-message.js +2 -27
- package/dist/components/assistant-message.js.map +1 -1
- package/dist/components/provider-selector.d.ts.map +1 -1
- package/dist/components/provider-selector.js +4 -3
- package/dist/components/provider-selector.js.map +1 -1
- package/dist/components/session-selector.d.ts +12 -0
- package/dist/components/session-selector.d.ts.map +1 -0
- package/dist/components/session-selector.js +108 -0
- package/dist/components/session-selector.js.map +1 -0
- package/dist/components/tool-confirmation.d.ts.map +1 -1
- package/dist/components/tool-confirmation.js +9 -6
- package/dist/components/tool-confirmation.js.map +1 -1
- package/dist/components/ui/styled-title.js +2 -2
- package/dist/components/ui/styled-title.js.map +1 -1
- package/dist/components/user-input.d.ts +3 -1
- package/dist/components/user-input.d.ts.map +1 -1
- package/dist/components/user-input.js +35 -23
- 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 -23
- package/dist/components/user-message.js.map +1 -1
- package/dist/components/vscode-extension-prompt.d.ts +6 -1
- package/dist/components/vscode-extension-prompt.d.ts.map +1 -1
- package/dist/components/vscode-extension-prompt.js +80 -36
- package/dist/components/vscode-extension-prompt.js.map +1 -1
- package/dist/config/copilot-credentials.d.ts +27 -0
- package/dist/config/copilot-credentials.d.ts.map +1 -0
- package/dist/config/copilot-credentials.js +81 -0
- package/dist/config/copilot-credentials.js.map +1 -0
- package/dist/config/index.d.ts +0 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +63 -27
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-config-loader.d.ts +2 -3
- package/dist/config/mcp-config-loader.d.ts.map +1 -1
- package/dist/config/mcp-config-loader.js +136 -181
- package/dist/config/mcp-config-loader.js.map +1 -1
- package/dist/config/nanocoder-tools-config.js +2 -2
- package/dist/config/nanocoder-tools-config.js.map +1 -1
- package/dist/config/themes.d.ts.map +1 -1
- package/dist/config/themes.js +9 -766
- package/dist/config/themes.js.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +0 -19
- package/dist/config/validation.js.map +1 -1
- package/dist/custom-commands/parser.d.ts.map +1 -1
- package/dist/custom-commands/parser.js +0 -9
- package/dist/custom-commands/parser.js.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +5 -0
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.js +78 -97
- package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
- package/dist/hooks/chat-handler/conversation/tool-executor.d.ts +7 -2
- package/dist/hooks/chat-handler/conversation/tool-executor.d.ts.map +1 -1
- package/dist/hooks/chat-handler/conversation/tool-executor.js +109 -41
- package/dist/hooks/chat-handler/conversation/tool-executor.js.map +1 -1
- package/dist/hooks/chat-handler/types.d.ts +3 -0
- package/dist/hooks/chat-handler/types.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.js +7 -1
- package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
- package/dist/hooks/useAppHandlers.d.ts +8 -1
- package/dist/hooks/useAppHandlers.d.ts.map +1 -1
- package/dist/hooks/useAppHandlers.js +119 -13
- package/dist/hooks/useAppHandlers.js.map +1 -1
- package/dist/hooks/useAppInitialization.d.ts +5 -3
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +51 -30
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +15 -10
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js +37 -28
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useModeHandlers.d.ts +8 -14
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +31 -101
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useNonInteractiveMode.d.ts +7 -0
- package/dist/hooks/useNonInteractiveMode.d.ts.map +1 -1
- package/dist/hooks/useNonInteractiveMode.js +39 -2
- package/dist/hooks/useNonInteractiveMode.js.map +1 -1
- package/dist/hooks/useSessionAutosave.d.ts +16 -0
- package/dist/hooks/useSessionAutosave.d.ts.map +1 -0
- package/dist/hooks/useSessionAutosave.js +133 -0
- package/dist/hooks/useSessionAutosave.js.map +1 -0
- package/dist/hooks/useToolHandler.d.ts +2 -1
- package/dist/hooks/useToolHandler.d.ts.map +1 -1
- package/dist/hooks/useToolHandler.js +9 -3
- package/dist/hooks/useToolHandler.js.map +1 -1
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +3 -2
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/mcp/transport-factory.d.ts.map +1 -1
- package/dist/mcp/transport-factory.js +4 -36
- package/dist/mcp/transport-factory.js.map +1 -1
- package/dist/models/models-dev-client.d.ts.map +1 -1
- package/dist/models/models-dev-client.js +21 -14
- package/dist/models/models-dev-client.js.map +1 -1
- package/dist/session/session-manager.d.ts +57 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +361 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/test-utils/render-with-theme.d.ts.map +1 -1
- package/dist/test-utils/render-with-theme.js +2 -1
- package/dist/test-utils/render-with-theme.js.map +1 -1
- package/dist/tool-calling/tool-parser.d.ts +3 -2
- package/dist/tool-calling/tool-parser.d.ts.map +1 -1
- package/dist/tool-calling/tool-parser.js +6 -27
- package/dist/tool-calling/tool-parser.js.map +1 -1
- package/dist/tools/execute-bash.d.ts.map +1 -1
- package/dist/tools/execute-bash.js +5 -0
- package/dist/tools/execute-bash.js.map +1 -1
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +11 -2
- package/dist/tools/fetch-url.js.map +1 -1
- package/dist/tools/file-ops/copy-file.d.ts.map +1 -1
- package/dist/tools/file-ops/copy-file.js +6 -36
- package/dist/tools/file-ops/copy-file.js.map +1 -1
- package/dist/tools/file-ops/create-directory.d.ts.map +1 -1
- package/dist/tools/file-ops/create-directory.js +2 -19
- package/dist/tools/file-ops/create-directory.js.map +1 -1
- package/dist/tools/file-ops/delete-file.d.ts.map +1 -1
- package/dist/tools/file-ops/delete-file.js +6 -20
- package/dist/tools/file-ops/delete-file.js.map +1 -1
- package/dist/tools/file-ops/move-file.d.ts.map +1 -1
- package/dist/tools/file-ops/move-file.js +6 -36
- package/dist/tools/file-ops/move-file.js.map +1 -1
- package/dist/tools/file-ops/string-replace-preview.d.ts +10 -0
- package/dist/tools/file-ops/string-replace-preview.d.ts.map +1 -0
- package/dist/tools/file-ops/string-replace-preview.js +171 -0
- package/dist/tools/file-ops/string-replace-preview.js.map +1 -0
- package/dist/tools/file-ops/string-replace.d.ts.map +1 -1
- package/dist/tools/file-ops/string-replace.js +9 -292
- package/dist/tools/file-ops/string-replace.js.map +1 -1
- package/dist/tools/file-ops/write-file.d.ts.map +1 -1
- package/dist/tools/file-ops/write-file.js +7 -66
- package/dist/tools/file-ops/write-file.js.map +1 -1
- package/dist/tools/find-files.d.ts.map +1 -1
- package/dist/tools/find-files.js +1 -0
- package/dist/tools/find-files.js.map +1 -1
- package/dist/tools/git/git-diff.d.ts.map +1 -1
- package/dist/tools/git/git-diff.js +1 -0
- package/dist/tools/git/git-diff.js.map +1 -1
- package/dist/tools/git/git-log.d.ts.map +1 -1
- package/dist/tools/git/git-log.js +1 -0
- package/dist/tools/git/git-log.js.map +1 -1
- package/dist/tools/git/git-status.d.ts.map +1 -1
- package/dist/tools/git/git-status.js +1 -0
- package/dist/tools/git/git-status.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list-directory.d.ts.map +1 -1
- package/dist/tools/list-directory.js +2 -1
- package/dist/tools/list-directory.js.map +1 -1
- package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -1
- package/dist/tools/lsp-get-diagnostics.js +1 -5
- package/dist/tools/lsp-get-diagnostics.js.map +1 -1
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +1 -0
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/search-file-contents.d.ts.map +1 -1
- package/dist/tools/search-file-contents.js +1 -0
- package/dist/tools/search-file-contents.js.map +1 -1
- package/dist/tools/tasks/list-tasks.d.ts.map +1 -1
- package/dist/tools/tasks/list-tasks.js +1 -0
- package/dist/tools/tasks/list-tasks.js.map +1 -1
- package/dist/tools/tool-manager.d.ts +10 -0
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +16 -2
- package/dist/tools/tool-manager.js.map +1 -1
- package/dist/tools/tool-registry.d.ts +9 -1
- package/dist/tools/tool-registry.d.ts.map +1 -1
- package/dist/tools/tool-registry.js +17 -1
- package/dist/tools/tool-registry.js.map +1 -1
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +1 -0
- package/dist/tools/web-search.js.map +1 -1
- package/dist/types/app.d.ts +3 -0
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/commands.d.ts +1 -2
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/config.d.ts +11 -15
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core.d.ts +13 -3
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/markdown-parser.d.ts +2 -10
- package/dist/types/markdown-parser.d.ts.map +1 -1
- package/dist/types/mcp.d.ts +2 -28
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/ui.d.ts +1 -1
- package/dist/types/ui.d.ts.map +1 -1
- package/dist/utils/ansi-truncate.d.ts +6 -0
- package/dist/utils/ansi-truncate.d.ts.map +1 -0
- package/dist/utils/ansi-truncate.js +39 -0
- package/dist/utils/ansi-truncate.js.map +1 -0
- package/dist/utils/installation-detector.d.ts +6 -0
- package/dist/utils/installation-detector.d.ts.map +1 -1
- package/dist/utils/installation-detector.js +33 -19
- package/dist/utils/installation-detector.js.map +1 -1
- package/dist/utils/logging/health-monitor/checks/memory-check.d.ts.map +1 -1
- package/dist/utils/logging/health-monitor/checks/memory-check.js +2 -1
- package/dist/utils/logging/health-monitor/checks/memory-check.js.map +1 -1
- package/dist/utils/logging/health-monitor/core/health-monitor.d.ts.map +1 -1
- package/dist/utils/logging/health-monitor/core/health-monitor.js +3 -2
- package/dist/utils/logging/health-monitor/core/health-monitor.js.map +1 -1
- package/dist/utils/logging/performance.d.ts.map +1 -1
- package/dist/utils/logging/performance.js +21 -17
- package/dist/utils/logging/performance.js.map +1 -1
- package/dist/utils/logging/pino-logger.d.ts.map +1 -1
- package/dist/utils/logging/pino-logger.js +7 -8
- package/dist/utils/logging/pino-logger.js.map +1 -1
- package/dist/utils/logging/redaction.d.ts.map +1 -1
- package/dist/utils/logging/redaction.js +2 -0
- package/dist/utils/logging/redaction.js.map +1 -1
- package/dist/utils/logging/request-tracker.d.ts.map +1 -1
- package/dist/utils/logging/request-tracker.js +6 -5
- package/dist/utils/logging/request-tracker.js.map +1 -1
- package/dist/utils/logging/safe-process.d.ts +16 -0
- package/dist/utils/logging/safe-process.d.ts.map +1 -0
- package/dist/utils/logging/safe-process.js +37 -0
- package/dist/utils/logging/safe-process.js.map +1 -0
- package/dist/utils/logging/types.d.ts +0 -3
- package/dist/utils/logging/types.d.ts.map +1 -1
- package/dist/utils/message-builder.d.ts +0 -5
- package/dist/utils/message-builder.d.ts.map +1 -1
- package/dist/utils/message-builder.js +0 -8
- package/dist/utils/message-builder.js.map +1 -1
- package/dist/utils/path-validation.d.ts.map +1 -1
- package/dist/utils/path-validation.js +3 -1
- package/dist/utils/path-validation.js.map +1 -1
- package/dist/utils/path-validators.d.ts +16 -0
- package/dist/utils/path-validators.d.ts.map +1 -0
- package/dist/utils/path-validators.js +55 -0
- package/dist/utils/path-validators.js.map +1 -0
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +2 -17
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/text-wrapping.d.ts +8 -0
- package/dist/utils/text-wrapping.d.ts.map +1 -0
- package/dist/utils/text-wrapping.js +29 -0
- package/dist/utils/text-wrapping.js.map +1 -0
- package/dist/utils/tool-approval.d.ts +6 -0
- package/dist/utils/tool-approval.d.ts.map +1 -0
- package/dist/utils/tool-approval.js +15 -0
- package/dist/utils/tool-approval.js.map +1 -0
- package/dist/utils/tool-result-display.d.ts +15 -1
- package/dist/utils/tool-result-display.d.ts.map +1 -1
- package/dist/utils/tool-result-display.js +93 -3
- package/dist/utils/tool-result-display.js.map +1 -1
- package/dist/vscode/extension-installer.d.ts +34 -7
- package/dist/vscode/extension-installer.d.ts.map +1 -1
- package/dist/vscode/extension-installer.js +151 -64
- package/dist/vscode/extension-installer.js.map +1 -1
- package/dist/vscode/index.d.ts +1 -1
- package/dist/vscode/index.d.ts.map +1 -1
- package/dist/vscode/index.js +1 -1
- package/dist/vscode/index.js.map +1 -1
- package/dist/wizards/mcp-wizard.d.ts.map +1 -1
- package/dist/wizards/mcp-wizard.js +2 -1
- package/dist/wizards/mcp-wizard.js.map +1 -1
- package/dist/wizards/provider-wizard.d.ts.map +1 -1
- package/dist/wizards/provider-wizard.js +4 -2
- package/dist/wizards/provider-wizard.js.map +1 -1
- package/dist/wizards/steps/location-step.d.ts.map +1 -1
- package/dist/wizards/steps/location-step.js +2 -1
- package/dist/wizards/steps/location-step.js.map +1 -1
- package/dist/wizards/steps/mcp-step.d.ts.map +1 -1
- package/dist/wizards/steps/mcp-step.js +2 -1
- package/dist/wizards/steps/mcp-step.js.map +1 -1
- package/dist/wizards/steps/provider-step.d.ts.map +1 -1
- package/dist/wizards/steps/provider-step.js +4 -1
- package/dist/wizards/steps/provider-step.js.map +1 -1
- package/dist/wizards/steps/summary-step.d.ts.map +1 -1
- package/dist/wizards/steps/summary-step.js +2 -1
- package/dist/wizards/steps/summary-step.js.map +1 -1
- package/dist/wizards/templates/mcp-templates.d.ts +0 -8
- package/dist/wizards/templates/mcp-templates.d.ts.map +1 -1
- package/dist/wizards/templates/mcp-templates.js.map +1 -1
- package/dist/wizards/templates/provider-templates.d.ts.map +1 -1
- package/dist/wizards/templates/provider-templates.js +59 -0
- package/dist/wizards/templates/provider-templates.js.map +1 -1
- package/dist/wizards/validation.d.ts.map +1 -1
- package/dist/wizards/validation.js +0 -1
- package/dist/wizards/validation.js.map +1 -1
- package/package.json +20 -12
- package/source/config/themes.json +787 -0
- package/dist/ai-sdk-client/chat/tool-processor.d.ts +0 -10
- package/dist/ai-sdk-client/chat/tool-processor.d.ts.map +0 -1
- package/dist/ai-sdk-client/chat/tool-processor.js +0 -58
- package/dist/ai-sdk-client/chat/tool-processor.js.map +0 -1
- package/dist/tool-calling/json-parser.d.ts +0 -28
- package/dist/tool-calling/json-parser.d.ts.map +0 -1
- package/dist/tool-calling/json-parser.js +0 -219
- package/dist/tool-calling/json-parser.js.map +0 -1
|
@@ -4,39 +4,55 @@ import SelectInput from 'ink-select-input';
|
|
|
4
4
|
import React, { useEffect, useState } from 'react';
|
|
5
5
|
import { defaultTheme, getThemeColors } from '../config/themes.js';
|
|
6
6
|
import { TIMEOUT_VSCODE_EXTENSION_SKIP_MS } from '../constants.js';
|
|
7
|
-
import {
|
|
7
|
+
import { getExtensionStatus, installExtension, isVSCodeCliAvailable, } from '../vscode/extension-installer.js';
|
|
8
8
|
var InstallOption;
|
|
9
9
|
(function (InstallOption) {
|
|
10
10
|
InstallOption["Yes"] = "yes";
|
|
11
11
|
InstallOption["No"] = "no";
|
|
12
|
+
InstallOption["Select"] = "select";
|
|
12
13
|
})(InstallOption || (InstallOption = {}));
|
|
13
14
|
/**
|
|
14
15
|
* Ink component that prompts the user to install the VS Code extension
|
|
15
16
|
* when running with --vscode flag and the extension isn't installed
|
|
16
17
|
*/
|
|
17
|
-
// Compute initial state synchronously
|
|
18
|
-
function getInitialState() {
|
|
19
|
-
if (isExtensionInstalled()) {
|
|
20
|
-
return 'checking'; // Will trigger onComplete in effect
|
|
21
|
-
}
|
|
22
|
-
if (!isVSCodeCliAvailable()) {
|
|
23
|
-
return 'no-cli';
|
|
24
|
-
}
|
|
25
|
-
return 'prompt';
|
|
26
|
-
}
|
|
27
18
|
export function VSCodeExtensionPrompt({ onComplete, onSkip, }) {
|
|
28
|
-
const [state, setState] = useState(
|
|
19
|
+
const [state, setState] = useState('checking');
|
|
20
|
+
const [statuses, setStatuses] = useState([]);
|
|
29
21
|
const [message, setMessage] = useState('');
|
|
22
|
+
const [selectedClis, setSelectedClis] = useState([]);
|
|
23
|
+
const [isSelecting, setIsSelecting] = useState(false);
|
|
30
24
|
const colors = getThemeColors(defaultTheme);
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
// Check status on mount
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
async function check() {
|
|
28
|
+
const available = await isVSCodeCliAvailable();
|
|
29
|
+
if (!available) {
|
|
30
|
+
setState('no-cli');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const currentStatuses = await getExtensionStatus();
|
|
34
|
+
setStatuses(currentStatuses);
|
|
35
|
+
const missing = currentStatuses.filter(s => !s.extensionInstalled);
|
|
36
|
+
if (missing.length === 0) {
|
|
37
|
+
onComplete();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
setSelectedClis(missing.map(s => s.cli));
|
|
41
|
+
setState('prompt');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (state === 'checking') {
|
|
45
|
+
void check();
|
|
46
|
+
}
|
|
47
|
+
}, [state, onComplete]);
|
|
48
|
+
const handleInstall = React.useCallback(async (clis) => {
|
|
49
|
+
setState('installing');
|
|
50
|
+
const result = await installExtension(clis);
|
|
51
|
+
setMessage(result.message);
|
|
33
52
|
if (result.success) {
|
|
34
|
-
setMessage(result.message);
|
|
35
53
|
setState('success');
|
|
36
|
-
// Wait for user to press Enter
|
|
37
54
|
}
|
|
38
55
|
else {
|
|
39
|
-
setMessage(result.message);
|
|
40
56
|
setState('error');
|
|
41
57
|
// Auto-continue after showing error
|
|
42
58
|
setTimeout(onSkip, TIMEOUT_VSCODE_EXTENSION_SKIP_MS);
|
|
@@ -48,12 +64,6 @@ export function VSCodeExtensionPrompt({ onComplete, onSkip, }) {
|
|
|
48
64
|
onComplete();
|
|
49
65
|
}
|
|
50
66
|
}, { isActive: state === 'success' });
|
|
51
|
-
// Handle already-installed case
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (isExtensionInstalled()) {
|
|
54
|
-
onComplete();
|
|
55
|
-
}
|
|
56
|
-
}, [onComplete]);
|
|
57
67
|
// Handle no-cli case - auto-skip after showing message
|
|
58
68
|
useEffect(() => {
|
|
59
69
|
if (state === 'no-cli') {
|
|
@@ -61,11 +71,22 @@ export function VSCodeExtensionPrompt({ onComplete, onSkip, }) {
|
|
|
61
71
|
return () => clearTimeout(timer);
|
|
62
72
|
}
|
|
63
73
|
}, [state, onSkip]);
|
|
74
|
+
const availableMissing = statuses.filter(s => !s.extensionInstalled);
|
|
64
75
|
const items = [
|
|
65
76
|
{
|
|
66
|
-
label:
|
|
77
|
+
label: availableMissing.length > 1
|
|
78
|
+
? `Yes, install to all (${availableMissing.map(s => s.cli).join(', ')})`
|
|
79
|
+
: `Yes, install to ${availableMissing[0]?.cli}`,
|
|
67
80
|
value: InstallOption.Yes,
|
|
68
81
|
},
|
|
82
|
+
...(availableMissing.length > 1
|
|
83
|
+
? [
|
|
84
|
+
{
|
|
85
|
+
label: 'Choose editors...',
|
|
86
|
+
value: InstallOption.Select,
|
|
87
|
+
},
|
|
88
|
+
]
|
|
89
|
+
: []),
|
|
69
90
|
{
|
|
70
91
|
label: 'No, skip for now',
|
|
71
92
|
value: InstallOption.No,
|
|
@@ -73,21 +94,49 @@ export function VSCodeExtensionPrompt({ onComplete, onSkip, }) {
|
|
|
73
94
|
];
|
|
74
95
|
const handleSelect = (item) => {
|
|
75
96
|
if (item.value === InstallOption.Yes) {
|
|
76
|
-
|
|
77
|
-
|
|
97
|
+
void handleInstall(availableMissing.map(s => s.cli));
|
|
98
|
+
}
|
|
99
|
+
else if (item.value === InstallOption.Select) {
|
|
100
|
+
setIsSelecting(true);
|
|
78
101
|
}
|
|
79
102
|
else {
|
|
80
103
|
onSkip();
|
|
81
104
|
}
|
|
82
105
|
};
|
|
106
|
+
const handleCliToggle = (cli) => {
|
|
107
|
+
setSelectedClis(prev => prev.includes(cli) ? prev.filter(c => c !== cli) : [...prev, cli]);
|
|
108
|
+
};
|
|
83
109
|
if (state === 'checking') {
|
|
84
110
|
return (_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Text, { color: colors.primary, children: "Checking VS Code extension..." }) }));
|
|
85
111
|
}
|
|
86
112
|
if (state === 'no-cli') {
|
|
87
|
-
return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Text, { color: colors.warning, children: "VS Code
|
|
113
|
+
return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Text, { color: colors.warning, children: "No supported VS Code flavor (Code, Cursor, VSCodium, Windsurf, Trae) found in PATH." }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.text, children: "To enable VS Code integration:" }) }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: colors.secondary, children: "1. Open VS Code or your preferred editor" }), _jsx(Text, { color: colors.secondary, children: "2. Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux)" }), _jsx(Text, { color: colors.secondary, children: "3. Search for \"Shell Command: Install 'code' command in PATH\"" })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.secondary, children: "Continuing without VS Code integration..." }) })] }));
|
|
88
114
|
}
|
|
89
115
|
if (state === 'prompt') {
|
|
90
|
-
|
|
116
|
+
if (isSelecting) {
|
|
117
|
+
const selectionItems = availableMissing.map(s => ({
|
|
118
|
+
label: `${selectedClis.includes(s.cli) ? '[x]' : '[ ]'} ${s.cli}`,
|
|
119
|
+
value: s.cli,
|
|
120
|
+
}));
|
|
121
|
+
return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Text, { color: colors.primary, bold: true, children: "Select Editors" }), _jsx(Box, { marginTop: 1, children: _jsx(SelectInput, { items: [
|
|
122
|
+
...selectionItems,
|
|
123
|
+
{ label: '--- Confirm ---', value: 'confirm' },
|
|
124
|
+
{ label: '--- Back ---', value: 'back' },
|
|
125
|
+
], onSelect: item => {
|
|
126
|
+
if (item.value === 'confirm') {
|
|
127
|
+
if (selectedClis.length > 0) {
|
|
128
|
+
void handleInstall(selectedClis);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else if (item.value === 'back') {
|
|
132
|
+
setIsSelecting(false);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
handleCliToggle(item.value);
|
|
136
|
+
}
|
|
137
|
+
} }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Space/Enter to toggle, select Confirm to proceed" }) })] }));
|
|
138
|
+
}
|
|
139
|
+
return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Text, { color: colors.primary, bold: true, children: "VS Code Extension" }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.text, children: "The VS Code extension enables live diff previews when Nanocoder modifies files." }) }), statuses.length > 0 && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.secondary, children: "Detected editors:" }), statuses.map(s => (_jsxs(Text, { color: s.extensionInstalled ? 'gray' : 'white', children: [s.extensionInstalled ? ' ✓' : ' !', " ", s.cli, ' ', s.extensionInstalled ? '(Installed)' : '(Missing)'] }, s.cli)))] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.text, children: "Install the extension now?" }) }), _jsx(Box, { marginTop: 1, children: _jsx(SelectInput, { items: items, onSelect: handleSelect }) })] }));
|
|
91
140
|
}
|
|
92
141
|
if (state === 'installing') {
|
|
93
142
|
return (_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Text, { color: colors.primary, children: "Installing VS Code extension..." }) }));
|
|
@@ -102,15 +151,10 @@ export function VSCodeExtensionPrompt({ onComplete, onSkip, }) {
|
|
|
102
151
|
}
|
|
103
152
|
/**
|
|
104
153
|
* Check if we should show the extension install prompt
|
|
105
|
-
* Returns true if --vscode flag is present
|
|
154
|
+
* Returns true if --vscode flag is present
|
|
155
|
+
* The component itself will check if it's already installed
|
|
106
156
|
*/
|
|
107
157
|
export function shouldPromptExtensionInstall() {
|
|
108
|
-
|
|
109
|
-
if (!hasVSCodeFlag)
|
|
110
|
-
return false;
|
|
111
|
-
// Don't prompt if extension is already installed
|
|
112
|
-
if (isExtensionInstalled())
|
|
113
|
-
return false;
|
|
114
|
-
return true;
|
|
158
|
+
return process.argv.includes('--vscode');
|
|
115
159
|
}
|
|
116
160
|
//# sourceMappingURL=vscode-extension-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-extension-prompt.js","sourceRoot":"","sources":["../../source/components/vscode-extension-prompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,KAAK,CAAC;AACxC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,gCAAgC,EAAC,MAAM,aAAa,CAAC;AAC7D,OAAO,EACN,gBAAgB,EAChB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"vscode-extension-prompt.js","sourceRoot":"","sources":["../../source/components/vscode-extension-prompt.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-level storage for GitHub Copilot credentials.
|
|
3
|
+
* The stored token is the GitHub OAuth access token from the device flow
|
|
4
|
+
* (used to obtain short-lived Copilot API tokens). Stored under config path
|
|
5
|
+
* (e.g. ~/.config/nanocoder/) so they are not in project config.
|
|
6
|
+
*/
|
|
7
|
+
/** Shared message when no Copilot credential is found (used by provider-factory and client-factory). */
|
|
8
|
+
export declare function getCopilotNoCredentialsMessage(providerName: string): string;
|
|
9
|
+
export interface CopilotCredential {
|
|
10
|
+
/** GitHub OAuth access token from device flow. */
|
|
11
|
+
oauthToken: string;
|
|
12
|
+
enterpriseUrl?: string;
|
|
13
|
+
}
|
|
14
|
+
export type CopilotCredentialsStore = Record<string, CopilotCredential>;
|
|
15
|
+
/**
|
|
16
|
+
* Get stored Copilot credential for a provider name (e.g. "GitHub Copilot").
|
|
17
|
+
*/
|
|
18
|
+
export declare function loadCopilotCredential(providerName: string): CopilotCredential | null;
|
|
19
|
+
/**
|
|
20
|
+
* Save GitHub OAuth token (from device flow) for a provider name.
|
|
21
|
+
*/
|
|
22
|
+
export declare function saveCopilotCredential(providerName: string, oauthToken: string, enterpriseUrl?: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Remove stored credential for a provider name.
|
|
25
|
+
*/
|
|
26
|
+
export declare function removeCopilotCredential(providerName: string): void;
|
|
27
|
+
//# sourceMappingURL=copilot-credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-credentials.d.ts","sourceRoot":"","sources":["../../source/config/copilot-credentials.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,wGAAwG;AACxG,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,MAAM,WAAW,iBAAiB;IACjC,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAoCxE;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,MAAM,GAClB,iBAAiB,GAAG,IAAI,CAW1B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACpB,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAOlE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-level storage for GitHub Copilot credentials.
|
|
3
|
+
* The stored token is the GitHub OAuth access token from the device flow
|
|
4
|
+
* (used to obtain short-lived Copilot API tokens). Stored under config path
|
|
5
|
+
* (e.g. ~/.config/nanocoder/) so they are not in project config.
|
|
6
|
+
*/
|
|
7
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from 'fs';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
import { clearCopilotTokenCache } from '../auth/github-copilot.js';
|
|
10
|
+
import { getConfigPath } from '../config/paths.js';
|
|
11
|
+
const FILENAME = 'copilot-credentials.json';
|
|
12
|
+
/** Shared message when no Copilot credential is found (used by provider-factory and client-factory). */
|
|
13
|
+
export function getCopilotNoCredentialsMessage(providerName) {
|
|
14
|
+
return `No Copilot credentials for "${providerName}". Type /copilot-login in the chat to log in, or run: nanocoder copilot login (from project: node dist/cli.js copilot login)`;
|
|
15
|
+
}
|
|
16
|
+
function getCredentialsPath() {
|
|
17
|
+
return join(getConfigPath(), FILENAME);
|
|
18
|
+
}
|
|
19
|
+
function loadStore() {
|
|
20
|
+
const path = getCredentialsPath();
|
|
21
|
+
if (!existsSync(path)) {
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const raw = readFileSync(path, 'utf-8');
|
|
26
|
+
const data = JSON.parse(raw);
|
|
27
|
+
if (data !== null && typeof data === 'object' && !Array.isArray(data)) {
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Invalid or unreadable
|
|
33
|
+
}
|
|
34
|
+
return {};
|
|
35
|
+
}
|
|
36
|
+
function writeStore(store) {
|
|
37
|
+
const dir = getConfigPath();
|
|
38
|
+
if (!existsSync(dir)) {
|
|
39
|
+
mkdirSync(dir, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
const filePath = getCredentialsPath();
|
|
42
|
+
writeFileSync(filePath, JSON.stringify(store, null, 2), {
|
|
43
|
+
encoding: 'utf-8',
|
|
44
|
+
mode: 0o600,
|
|
45
|
+
});
|
|
46
|
+
chmodSync(filePath, 0o600);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get stored Copilot credential for a provider name (e.g. "GitHub Copilot").
|
|
50
|
+
*/
|
|
51
|
+
export function loadCopilotCredential(providerName) {
|
|
52
|
+
const store = loadStore();
|
|
53
|
+
const entry = store[providerName];
|
|
54
|
+
if (!entry || typeof entry.oauthToken !== 'string') {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
oauthToken: entry.oauthToken,
|
|
59
|
+
enterpriseUrl: typeof entry.enterpriseUrl === 'string' ? entry.enterpriseUrl : undefined,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Save GitHub OAuth token (from device flow) for a provider name.
|
|
64
|
+
*/
|
|
65
|
+
export function saveCopilotCredential(providerName, oauthToken, enterpriseUrl) {
|
|
66
|
+
const store = loadStore();
|
|
67
|
+
store[providerName] = { oauthToken, enterpriseUrl };
|
|
68
|
+
writeStore(store);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Remove stored credential for a provider name.
|
|
72
|
+
*/
|
|
73
|
+
export function removeCopilotCredential(providerName) {
|
|
74
|
+
const store = loadStore();
|
|
75
|
+
if (providerName in store) {
|
|
76
|
+
delete store[providerName];
|
|
77
|
+
writeStore(store);
|
|
78
|
+
clearCopilotTokenCache();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=copilot-credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-credentials.js","sourceRoot":"","sources":["../../source/config/copilot-credentials.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACb,MAAM,IAAI,CAAC;AACZ,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAE5C,wGAAwG;AACxG,MAAM,UAAU,8BAA8B,CAAC,YAAoB;IAClE,OAAO,+BAA+B,YAAY,8HAA8H,CAAC;AAClL,CAAC;AAUD,SAAS,kBAAkB;IAC1B,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS;IACjB,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QACxC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,OAAO,IAA+B,CAAC;QACxC,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,wBAAwB;IACzB,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,UAAU,CAAC,KAA8B;IACjD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACvD,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACX,CAAC,CAAC;IACH,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACpC,YAAoB;IAEpB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO;QACN,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EACZ,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;KAC1E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACpC,YAAoB,EACpB,UAAkB,EAClB,aAAsB;IAEtB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,YAAY,CAAC,GAAG,EAAC,UAAU,EAAE,aAAa,EAAC,CAAC;IAClD,UAAU,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IAC3D,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,sBAAsB,EAAE,CAAC;IAC1B,CAAC;AACF,CAAC"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -6,10 +6,8 @@ export declare function getClosestConfigFile(fileName: string): string;
|
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
8
|
export declare function getAppConfig(): AppConfig;
|
|
9
|
-
export declare const appConfig: AppConfig;
|
|
10
9
|
export declare function reloadAppConfig(): void;
|
|
11
10
|
export declare function clearAppConfig(): void;
|
|
12
11
|
export declare function getColors(): Colors;
|
|
13
|
-
export declare const colors: Colors;
|
|
14
12
|
export declare const promptPath: string;
|
|
15
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/config/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/config/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACX,SAAS,EAET,MAAM,EAEN,MAAM,eAAe,CAAC;AAiBvB,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqC7D;AA6ND;;;GAGG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAKxC;AAGD,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAGD,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAID,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAOD,eAAO,MAAM,UAAU,QAGtB,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { config as loadEnv } from 'dotenv';
|
|
2
2
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
3
|
-
import { homedir } from 'os';
|
|
4
3
|
import { dirname, join } from 'path';
|
|
5
4
|
import { fileURLToPath } from 'url';
|
|
6
5
|
import { loadAllMCPConfigs, loadAllProviderConfigs, } from '../config/mcp-config-loader.js';
|
|
@@ -38,14 +37,6 @@ export function getClosestConfigFile(fileName) {
|
|
|
38
37
|
confDirMap[fileName] = cwdPath; // nosemgrep
|
|
39
38
|
return cwdPath; // nosemgrep
|
|
40
39
|
}
|
|
41
|
-
// Next lets check the $HOME for a hidden file. This should only be for
|
|
42
|
-
// legacy support
|
|
43
|
-
const homePath = join(homedir(), `.${fileName}`); // nosemgrep
|
|
44
|
-
if (existsSync(homePath)) {
|
|
45
|
-
// nosemgrep
|
|
46
|
-
confDirMap[fileName] = homePath; // nosemgrep
|
|
47
|
-
return homePath; // nosemgrep
|
|
48
|
-
}
|
|
49
40
|
}
|
|
50
41
|
// Last, lets look for an user level config.
|
|
51
42
|
// If the file doesn't exist, create it
|
|
@@ -130,12 +121,6 @@ function loadAutoCompactConfig() {
|
|
|
130
121
|
if (globalConfig) {
|
|
131
122
|
return globalConfig;
|
|
132
123
|
}
|
|
133
|
-
// Fallback to home directory
|
|
134
|
-
const homePath = join(homedir(), '.agents.config.json');
|
|
135
|
-
const homeConfig = tryLoadAutoCompactFromPath(homePath, defaults);
|
|
136
|
-
if (homeConfig) {
|
|
137
|
-
return homeConfig;
|
|
138
|
-
}
|
|
139
124
|
return defaults;
|
|
140
125
|
}
|
|
141
126
|
// Validate and clamp threshold to valid range (50-95)
|
|
@@ -150,6 +135,66 @@ function validateMode(mode) {
|
|
|
150
135
|
}
|
|
151
136
|
return 'conservative';
|
|
152
137
|
}
|
|
138
|
+
// Try to load session config from a specific path
|
|
139
|
+
// Returns the config if found and valid, null otherwise
|
|
140
|
+
function tryLoadSessionsFromPath(configPath, defaults) {
|
|
141
|
+
if (!existsSync(configPath)) {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
const rawData = readFileSync(configPath, 'utf-8');
|
|
146
|
+
const config = JSON.parse(rawData);
|
|
147
|
+
const sessions = config.nanocoder?.sessions;
|
|
148
|
+
if (sessions && typeof sessions === 'object') {
|
|
149
|
+
const normalizeSessionNumber = (value, min, fallback) => {
|
|
150
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
151
|
+
return Math.max(min, value);
|
|
152
|
+
}
|
|
153
|
+
return fallback;
|
|
154
|
+
};
|
|
155
|
+
return {
|
|
156
|
+
autoSave: sessions.autoSave !== undefined
|
|
157
|
+
? Boolean(sessions.autoSave)
|
|
158
|
+
: defaults.autoSave,
|
|
159
|
+
saveInterval: normalizeSessionNumber(sessions.saveInterval, 1000, // Minimum 1 second
|
|
160
|
+
defaults.saveInterval ?? 30000),
|
|
161
|
+
maxSessions: normalizeSessionNumber(sessions.maxSessions, 1, defaults.maxSessions ?? 100),
|
|
162
|
+
maxMessages: normalizeSessionNumber(sessions.maxMessages, 1, defaults.maxMessages ?? 1000),
|
|
163
|
+
retentionDays: normalizeSessionNumber(sessions.retentionDays, 1, defaults.retentionDays ?? 30),
|
|
164
|
+
directory: sessions.directory || defaults.directory,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
logError(`Failed to load session config from ${configPath}: ${String(error)}`);
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
// Load session configuration and Returns default config if not specified
|
|
174
|
+
function loadSessionConfig() {
|
|
175
|
+
const defaults = {
|
|
176
|
+
autoSave: true,
|
|
177
|
+
saveInterval: 30000, // 30 seconds
|
|
178
|
+
maxSessions: 100,
|
|
179
|
+
maxMessages: 1000,
|
|
180
|
+
retentionDays: 30,
|
|
181
|
+
directory: '',
|
|
182
|
+
};
|
|
183
|
+
// Try to load from project-level config first
|
|
184
|
+
const projectConfigPath = join(process.cwd(), 'agents.config.json');
|
|
185
|
+
const projectConfig = tryLoadSessionsFromPath(projectConfigPath, defaults);
|
|
186
|
+
if (projectConfig) {
|
|
187
|
+
return projectConfig;
|
|
188
|
+
}
|
|
189
|
+
// Try global config
|
|
190
|
+
const configDir = getConfigPath();
|
|
191
|
+
const globalConfigPath = join(configDir, 'agents.config.json');
|
|
192
|
+
const globalConfig = tryLoadSessionsFromPath(globalConfigPath, defaults);
|
|
193
|
+
if (globalConfig) {
|
|
194
|
+
return globalConfig;
|
|
195
|
+
}
|
|
196
|
+
return defaults;
|
|
197
|
+
}
|
|
153
198
|
// Function to load app configuration from agents.config.json if it exists
|
|
154
199
|
function loadAppConfig() {
|
|
155
200
|
// Load providers from the new hierarchical configuration system
|
|
@@ -159,10 +204,13 @@ function loadAppConfig() {
|
|
|
159
204
|
const mcpServers = mcpServersWithSource.map(item => item.server);
|
|
160
205
|
// Load auto-compact configuration
|
|
161
206
|
const autoCompact = loadAutoCompactConfig();
|
|
207
|
+
// Load session configuration
|
|
208
|
+
const sessions = loadSessionConfig();
|
|
162
209
|
return {
|
|
163
210
|
providers,
|
|
164
211
|
mcpServers,
|
|
165
212
|
autoCompact,
|
|
213
|
+
sessions,
|
|
166
214
|
};
|
|
167
215
|
}
|
|
168
216
|
let _appConfig = null;
|
|
@@ -176,12 +224,6 @@ export function getAppConfig() {
|
|
|
176
224
|
}
|
|
177
225
|
return _appConfig;
|
|
178
226
|
}
|
|
179
|
-
// Legacy export for backward compatibility - use a getter
|
|
180
|
-
export const appConfig = new Proxy({}, {
|
|
181
|
-
get(_target, prop) {
|
|
182
|
-
return getAppConfig()[prop];
|
|
183
|
-
},
|
|
184
|
-
});
|
|
185
227
|
// Function to reload the app configuration (useful after config file changes)
|
|
186
228
|
export function reloadAppConfig() {
|
|
187
229
|
_appConfig = loadAppConfig();
|
|
@@ -199,12 +241,6 @@ export function getColors() {
|
|
|
199
241
|
}
|
|
200
242
|
return cachedColors;
|
|
201
243
|
}
|
|
202
|
-
// Legacy export for backwards compatibility - use a getter to avoid circular dependency
|
|
203
|
-
export const colors = new Proxy({}, {
|
|
204
|
-
get(_target, prop) {
|
|
205
|
-
return getColors()[prop];
|
|
206
|
-
},
|
|
207
|
-
});
|
|
208
244
|
// Get the package root directory (where this module is installed)
|
|
209
245
|
const __filename = fileURLToPath(import.meta.url);
|
|
210
246
|
const __dirname = dirname(__filename);
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,OAAO,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAC,MAAM,IAAI,CAAC;AACtE,OAAO,EAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,OAAO,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAC,MAAM,IAAI,CAAC;AACtE,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,EACN,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAO7D,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAE/C,6EAA6E;AAC7E,mEAAmE;AACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAClC,IAAI,CAAC;QACJ,OAAO,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;IAC1B,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;IACtC,CAAC;AACF,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,UAAU,GAA2B,EAAE,CAAC;AAErD,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACpD,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAElC,sEAAsE;QACtE,iFAAiF;QACjF,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAEtE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1B,mDAAmD;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY;YAC3D,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,YAAY;gBACZ,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,YAAY;gBAE5C,OAAO,OAAO,CAAC,CAAC,YAAY;YAC7B,CAAC;QACF,CAAC;QAED,4CAA4C;QAE5C,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY;QAC1D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,YAAY;YACZ,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,YAAY;QAE/C,OAAO,UAAU,CAAC,CAAC,YAAY;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,kBAAkB,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,sEAAsE;IACtE,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB,EAAE,QAAgB;IAChE,IAAI,CAAC;QACJ,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY;QAC7D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACjC,YAAY;YACZ,oCAAoC;YACpC,MAAM,YAAY,GAAG,EAAE,CAAC;YAExB,SAAS,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;YACvC,aAAa,CACZ,cAAc,EAAE,YAAY;YAC5B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EACrC,OAAO,CACP,CAAC;QACH,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,mBAAmB,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC;AAED,uDAAuD;AACvD,wDAAwD;AACxD,SAAS,0BAA0B,CAClC,UAAkB,EAClB,QAA2B;IAE3B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;QAClD,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO;gBACN,OAAO,EACN,WAAW,CAAC,OAAO,KAAK,SAAS;oBAChC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;oBAC9B,CAAC,CAAC,QAAQ,CAAC,OAAO;gBACpB,SAAS,EAAE,iBAAiB,CAC3B,WAAW,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAC3C;gBACD,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;gBACrD,UAAU,EACT,WAAW,CAAC,UAAU,KAAK,SAAS;oBACnC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;oBACjC,CAAC,CAAC,QAAQ,CAAC,UAAU;aACvB,CAAC;QACH,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,QAAQ,CACP,2CAA2C,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CACzE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,SAAS,qBAAqB;IAC7B,MAAM,QAAQ,GAAsB;QACnC,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,cAAc;QACpB,UAAU,EAAE,IAAI;KAChB,CAAC;IAEF,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,0BAA0B,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC9E,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,0BAA0B,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC5E,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,sDAAsD;AACtD,SAAS,iBAAiB,CAAC,SAAkB;IAC5C,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,4BAA4B;AAC5B,SAAS,YAAY,CAAC,IAAa;IAClC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,kDAAkD;AAClD,wDAAwD;AACxD,SAAS,uBAAuB,CAC/B,UAAkB,EAClB,QAA4C;IAE5C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC5C,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,sBAAsB,GAAG,CAC9B,KAAc,EACd,GAAW,EACX,QAAgB,EACP,EAAE;gBACX,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,QAAQ,CAAC;YACjB,CAAC,CAAC;YAEF,OAAO;gBACN,QAAQ,EACP,QAAQ,CAAC,QAAQ,KAAK,SAAS;oBAC9B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC5B,CAAC,CAAC,QAAQ,CAAC,QAAQ;gBACrB,YAAY,EAAE,sBAAsB,CACnC,QAAQ,CAAC,YAAY,EACrB,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,CAAC,YAAY,IAAI,KAAK,CAC9B;gBACD,WAAW,EAAE,sBAAsB,CAClC,QAAQ,CAAC,WAAW,EACpB,CAAC,EACD,QAAQ,CAAC,WAAW,IAAI,GAAG,CAC3B;gBACD,WAAW,EAAE,sBAAsB,CAClC,QAAQ,CAAC,WAAW,EACpB,CAAC,EACD,QAAQ,CAAC,WAAW,IAAI,IAAI,CAC5B;gBACD,aAAa,EAAE,sBAAsB,CACpC,QAAQ,CAAC,aAAa,EACtB,CAAC,EACD,QAAQ,CAAC,aAAa,IAAI,EAAE,CAC5B;gBACD,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;aACnD,CAAC;QACH,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,QAAQ,CACP,sCAAsC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CACpE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,yEAAyE;AACzE,SAAS,iBAAiB;IACzB,MAAM,QAAQ,GAAuC;QACpD,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,KAAK,EAAE,aAAa;QAClC,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,EAAE;KACb,CAAC;IAEF,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,uBAAuB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC3E,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,0EAA0E;AAC1E,SAAS,aAAa;IACrB,gEAAgE;IAChE,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAE3C,kEAAkE;IAClE,MAAM,oBAAoB,GAAG,iBAAiB,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjE,kCAAkC;IAClC,MAAM,WAAW,GAAG,qBAAqB,EAAE,CAAC;IAE5C,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IAErC,OAAO;QACN,SAAS;QACT,UAAU;QACV,WAAW;QACX,QAAQ;KACR,CAAC;AACH,CAAC;AAED,IAAI,UAAU,GAAqB,IAAI,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,UAAU,GAAG,aAAa,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe;IAC9B,UAAU,GAAG,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,cAAc;IAC7B,UAAU,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,MAAM,UAAU,SAAS;IACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,IAAI,YAAY,CAAC;QAChE,YAAY,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,oFAAoF;AACpF,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAC7B,SAAS,EACT,yCAAyC,CACzC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MCPServerConfig, ProviderConfig } from '../types/config.js';
|
|
2
|
-
export type ConfigSource = 'project' | 'global';
|
|
2
|
+
export type ConfigSource = 'project' | 'global' | 'env';
|
|
3
3
|
export interface MCPServerWithSource {
|
|
4
4
|
server: MCPServerConfig;
|
|
5
5
|
source: ConfigSource;
|
|
@@ -10,7 +10,6 @@ export interface MCPServerWithSource {
|
|
|
10
10
|
export declare function loadProjectMCPConfig(): MCPServerWithSource[];
|
|
11
11
|
/**
|
|
12
12
|
* Load global MCP configuration from ~/.config/nanocoder/.mcp.json
|
|
13
|
-
* Falls back to agents.config.json with deprecation warning
|
|
14
13
|
*/
|
|
15
14
|
export declare function loadGlobalMCPConfig(): MCPServerWithSource[];
|
|
16
15
|
/**
|
|
@@ -18,7 +17,7 @@ export declare function loadGlobalMCPConfig(): MCPServerWithSource[];
|
|
|
18
17
|
* ALL servers from both locations are loaded (project servers shown first)
|
|
19
18
|
* No overriding - each unique server is preserved
|
|
20
19
|
*/
|
|
21
|
-
export declare function mergeMCPConfigs(projectServers: MCPServerWithSource[], globalServers: MCPServerWithSource[]): MCPServerWithSource[];
|
|
20
|
+
export declare function mergeMCPConfigs(projectServers: MCPServerWithSource[], globalServers: MCPServerWithSource[], envServers?: MCPServerWithSource[]): MCPServerWithSource[];
|
|
22
21
|
/**
|
|
23
22
|
* Load all MCP configurations with proper hierarchy and merging
|
|
24
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config-loader.d.ts","sourceRoot":"","sources":["../../source/config/mcp-config-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-config-loader.d.ts","sourceRoot":"","sources":["../../source/config/mcp-config-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAIpE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;CACrB;AAmDD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,EAAE,CA0B5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,EAAE,CA2B3D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,cAAc,EAAE,mBAAmB,EAAE,EACrC,aAAa,EAAE,mBAAmB,EAAE,EACpC,UAAU,GAAE,mBAAmB,EAAO,GACpC,mBAAmB,EAAE,CAuBvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,mBAAmB,EAAE,CAQzD;AAmDD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,EAAE,CA0BzD"}
|