@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
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { AISDKCoreTool, StreamCallbacks, ToolCall } from '../../types/index.js';
|
|
2
|
-
export interface XMLToolProcessingResult {
|
|
3
|
-
toolCalls: ToolCall[];
|
|
4
|
-
cleanedContent: string;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Processes XML tool calls from response content
|
|
8
|
-
*/
|
|
9
|
-
export declare function processXMLToolCalls(response: unknown, tools: Record<string, AISDKCoreTool>, callbacks: StreamCallbacks): Promise<XMLToolProcessingResult>;
|
|
10
|
-
//# sourceMappingURL=tool-processor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-processor.d.ts","sourceRoot":"","sources":["../../../source/ai-sdk-client/chat/tool-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAI5E,MAAM,WAAW,uBAAuB;IACvC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,SAAS,EAAE,eAAe,GACxB,OAAO,CAAC,uBAAuB,CAAC,CA2DlC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { XMLToolCallParser } from '../../tool-calling/xml-parser.js';
|
|
2
|
-
import { getLogger } from '../../utils/logging/index.js';
|
|
3
|
-
import { normalizeLLMResponse } from '../../utils/response-formatter.js';
|
|
4
|
-
/**
|
|
5
|
-
* Processes XML tool calls from response content
|
|
6
|
-
*/
|
|
7
|
-
export async function processXMLToolCalls(response, tools, callbacks) {
|
|
8
|
-
const logger = getLogger();
|
|
9
|
-
const toolCalls = [];
|
|
10
|
-
// NEW: Normalize response before processing
|
|
11
|
-
const normalized = await normalizeLLMResponse(response);
|
|
12
|
-
const content = normalized.content;
|
|
13
|
-
// Only process if tools are available and no native tool calls were found
|
|
14
|
-
if (Object.keys(tools).length === 0 || !content) {
|
|
15
|
-
return { toolCalls, cleanedContent: content };
|
|
16
|
-
}
|
|
17
|
-
logger.debug('Checking for XML tool calls in response content');
|
|
18
|
-
// Initialize cleanedContent with original content (preserved if no tool calls found)
|
|
19
|
-
let cleanedContent = content;
|
|
20
|
-
// First check for malformed XML tool calls
|
|
21
|
-
const malformedError = XMLToolCallParser.detectMalformedToolCall(content);
|
|
22
|
-
if (malformedError) {
|
|
23
|
-
logger.warn('Malformed XML tool call detected', {
|
|
24
|
-
error: malformedError.error,
|
|
25
|
-
});
|
|
26
|
-
// Return malformed tool call with validation error
|
|
27
|
-
// This mimics how validators work - returns tool call that will show error
|
|
28
|
-
const malformedCall = {
|
|
29
|
-
id: 'malformed_xml_validation',
|
|
30
|
-
function: {
|
|
31
|
-
name: '__xml_validation_error__',
|
|
32
|
-
arguments: {
|
|
33
|
-
error: malformedError.error,
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
toolCalls.push(malformedCall);
|
|
38
|
-
callbacks.onToolCall?.(malformedCall);
|
|
39
|
-
cleanedContent = ''; // Clear content since it was malformed
|
|
40
|
-
}
|
|
41
|
-
else if (XMLToolCallParser.hasToolCalls(content)) {
|
|
42
|
-
logger.debug('Parsing XML tool calls from content');
|
|
43
|
-
// Try to parse well-formed XML tool calls
|
|
44
|
-
const parsedToolCalls = XMLToolCallParser.parseToolCalls(content);
|
|
45
|
-
const xmlToolCalls = XMLToolCallParser.convertToToolCalls(parsedToolCalls);
|
|
46
|
-
cleanedContent = XMLToolCallParser.removeToolCallsFromContent(content);
|
|
47
|
-
logger.debug('XML tool calls parsed', {
|
|
48
|
-
toolCallCount: xmlToolCalls.length,
|
|
49
|
-
contentLength: cleanedContent.length,
|
|
50
|
-
});
|
|
51
|
-
for (const tc of xmlToolCalls) {
|
|
52
|
-
toolCalls.push(tc);
|
|
53
|
-
callbacks.onToolCall?.(tc);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return { toolCalls, cleanedContent };
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=tool-processor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-processor.js","sourceRoot":"","sources":["../../../source/ai-sdk-client/chat/tool-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAOhE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,QAAiB,EACjB,KAAoC,EACpC,SAA0B;IAE1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,4CAA4C;IAC5C,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAEnC,0EAA0E;IAC1E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjD,OAAO,EAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAEhE,qFAAqF;IACrF,IAAI,cAAc,GAAG,OAAO,CAAC;IAE7B,2CAA2C;IAC3C,MAAM,cAAc,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YAC/C,KAAK,EAAE,cAAc,CAAC,KAAK;SAC3B,CAAC,CAAC;QAEH,mDAAmD;QACnD,2EAA2E;QAC3E,MAAM,aAAa,GAAa;YAC/B,EAAE,EAAE,0BAA0B;YAC9B,QAAQ,EAAE;gBACT,IAAI,EAAE,0BAA0B;gBAChC,SAAS,EAAE;oBACV,KAAK,EAAE,cAAc,CAAC,KAAK;iBAC3B;aACD;SACD,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9B,SAAS,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,CAAC;QACtC,cAAc,GAAG,EAAE,CAAC,CAAC,uCAAuC;IAC7D,CAAC;SAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAEpD,0CAA0C;QAC1C,MAAM,eAAe,GAAG,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAC3E,cAAc,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAEvE,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;YACrC,aAAa,EAAE,YAAY,CAAC,MAAM;YAClC,aAAa,EAAE,cAAc,CAAC,MAAM;SACpC,CAAC,CAAC;QAEH,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { ToolCall } from '../types/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Internal JSON tool call parser
|
|
4
|
-
* Note: This is now an internal utility. Use tool-parser.ts for public API.
|
|
5
|
-
* Type-preserving: Preserves object types in memory while converting to string for processing
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Detects malformed JSON tool call attempts and returns error details
|
|
9
|
-
* Returns null if no malformed tool calls detected
|
|
10
|
-
* Type-preserving: Accepts unknown type, converts to string for processing
|
|
11
|
-
*/
|
|
12
|
-
export declare function detectMalformedJSONToolCall(content: unknown): {
|
|
13
|
-
error: string;
|
|
14
|
-
examples: string;
|
|
15
|
-
} | null;
|
|
16
|
-
/**
|
|
17
|
-
* Parses JSON-formatted tool calls from content
|
|
18
|
-
* Type-preserving: Preserves object types in memory while converting to string for processing
|
|
19
|
-
* This is an internal function - use tool-parser.ts for public API
|
|
20
|
-
*/
|
|
21
|
-
export declare function parseJSONToolCalls(content: unknown): ToolCall[];
|
|
22
|
-
/**
|
|
23
|
-
* Cleans content by removing tool call JSON blocks
|
|
24
|
-
* Type-preserving: Accepts unknown type, converts to string for processing
|
|
25
|
-
* This is an internal function - use tool-parser.ts for public API
|
|
26
|
-
*/
|
|
27
|
-
export declare function cleanJSONToolCalls(content: unknown, toolCalls: ToolCall[]): string;
|
|
28
|
-
//# sourceMappingURL=json-parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-parser.d.ts","sourceRoot":"","sources":["../../source/tool-calling/json-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAG5C;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAgB,2BAA2B,CAC1C,OAAO,EAAE,OAAO,GACd;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CA2C1C;AASD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,CA6H/D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EAAE,GACnB,MAAM,CA0DR"}
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import { ensureString } from '../utils/type-helpers.js';
|
|
2
|
-
/**
|
|
3
|
-
* Internal JSON tool call parser
|
|
4
|
-
* Note: This is now an internal utility. Use tool-parser.ts for public API.
|
|
5
|
-
* Type-preserving: Preserves object types in memory while converting to string for processing
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Detects malformed JSON tool call attempts and returns error details
|
|
9
|
-
* Returns null if no malformed tool calls detected
|
|
10
|
-
* Type-preserving: Accepts unknown type, converts to string for processing
|
|
11
|
-
*/
|
|
12
|
-
export function detectMalformedJSONToolCall(content) {
|
|
13
|
-
// Type guard: ensure content is string for processing operations
|
|
14
|
-
// BUT original type is preserved in memory via the ToolCall structure
|
|
15
|
-
const contentStr = ensureString(content);
|
|
16
|
-
// Check for incomplete JSON structures
|
|
17
|
-
// FIX: Anchor to line start (?:^|\n) to avoid matching inline text like "I tried {"name":...}"
|
|
18
|
-
const patterns = [
|
|
19
|
-
{
|
|
20
|
-
// Incomplete JSON with name but missing arguments
|
|
21
|
-
// Anchored to line start or after newline
|
|
22
|
-
regex: /(?:^|\n)\s*\{\s*"name"\s*:\s*"[^"]+"\s*,?\s*\}/,
|
|
23
|
-
error: 'Incomplete tool call: missing "arguments" field',
|
|
24
|
-
hint: 'Tool calls must include both "name" and "arguments" fields',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
// Incomplete JSON with arguments but missing name
|
|
28
|
-
// Anchored to line start or after newline
|
|
29
|
-
regex: /(?:^|\n)\s*\{\s*"arguments"\s*:\s*\{[^}]*\}\s*\}/,
|
|
30
|
-
error: 'Incomplete tool call: missing "name" field',
|
|
31
|
-
hint: 'Tool calls must include both "name" and "arguments" fields',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
// Malformed arguments (not an object)
|
|
35
|
-
// Anchored to line start or after newline
|
|
36
|
-
regex: /(?:^|\n)\s*\{\s*"name"\s*:\s*"[^"]+"\s*,\s*"arguments"\s*:\s*"[^"]*"\s*\}/,
|
|
37
|
-
error: 'Invalid tool call: "arguments" must be an object, not a string',
|
|
38
|
-
hint: 'Use {"name": "tool_name", "arguments": {...}} format',
|
|
39
|
-
},
|
|
40
|
-
];
|
|
41
|
-
for (const pattern of patterns) {
|
|
42
|
-
const match = contentStr.match(pattern.regex);
|
|
43
|
-
if (match) {
|
|
44
|
-
return {
|
|
45
|
-
error: pattern.error,
|
|
46
|
-
examples: getCorrectJSONFormatExamples(pattern.hint),
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Generates correct format examples for JSON error messages
|
|
54
|
-
*/
|
|
55
|
-
function getCorrectJSONFormatExamples(_specificHint) {
|
|
56
|
-
return `Please use the native tool calling format provided by the system. The tools are already available to you - call them directly using the function calling interface.`;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Parses JSON-formatted tool calls from content
|
|
60
|
-
* Type-preserving: Preserves object types in memory while converting to string for processing
|
|
61
|
-
* This is an internal function - use tool-parser.ts for public API
|
|
62
|
-
*/
|
|
63
|
-
export function parseJSONToolCalls(content) {
|
|
64
|
-
// Convert to string for processing (this is done by the Formatter before calling this)
|
|
65
|
-
const contentStr = ensureString(content);
|
|
66
|
-
const extractedCalls = [];
|
|
67
|
-
let trimmedContent = contentStr.trim();
|
|
68
|
-
// Handle markdown code blocks
|
|
69
|
-
const codeBlockMatch = trimmedContent.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/);
|
|
70
|
-
if (codeBlockMatch && codeBlockMatch[1]) {
|
|
71
|
-
trimmedContent = codeBlockMatch[1].trim();
|
|
72
|
-
}
|
|
73
|
-
// Try to parse entire content as single JSON tool call
|
|
74
|
-
if (trimmedContent.startsWith('{') && trimmedContent.endsWith('}')) {
|
|
75
|
-
// Skip empty or nearly empty JSON objects
|
|
76
|
-
if (trimmedContent === '{}' || trimmedContent.replace(/\s/g, '') === '{}') {
|
|
77
|
-
return extractedCalls;
|
|
78
|
-
}
|
|
79
|
-
try {
|
|
80
|
-
const parsed = JSON.parse(trimmedContent);
|
|
81
|
-
if (parsed.name && parsed.arguments !== undefined) {
|
|
82
|
-
// Reject null, undefined, or non-object arguments
|
|
83
|
-
if (parsed.arguments === null ||
|
|
84
|
-
typeof parsed.arguments !== 'object' ||
|
|
85
|
-
Array.isArray(parsed.arguments)) {
|
|
86
|
-
return extractedCalls;
|
|
87
|
-
}
|
|
88
|
-
const toolCall = {
|
|
89
|
-
id: `call_${Date.now()}`,
|
|
90
|
-
function: {
|
|
91
|
-
name: parsed.name || '',
|
|
92
|
-
arguments: parsed.arguments, // Type preserved in memory!
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
extractedCalls.push(toolCall);
|
|
96
|
-
return extractedCalls;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
// Failed to parse - will be caught by malformed detection
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Look for standalone JSON blocks in the content (multiline without code blocks)
|
|
104
|
-
const jsonBlockRegex = /\{\s*\n\s*"name":\s*"([^"]+)",\s*\n\s*"arguments":\s*\{[\s\S]*?\}\s*\n\s*\}/g;
|
|
105
|
-
let jsonMatch;
|
|
106
|
-
while ((jsonMatch = jsonBlockRegex.exec(contentStr)) !== null) {
|
|
107
|
-
try {
|
|
108
|
-
const parsed = JSON.parse(jsonMatch[0]);
|
|
109
|
-
if (parsed.name && parsed.arguments !== undefined) {
|
|
110
|
-
// Reject null, undefined, or non-object arguments
|
|
111
|
-
if (parsed.arguments === null ||
|
|
112
|
-
typeof parsed.arguments !== 'object' ||
|
|
113
|
-
Array.isArray(parsed.arguments)) {
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
const toolCall = {
|
|
117
|
-
id: `call_${Date.now()}_${extractedCalls.length}`,
|
|
118
|
-
function: {
|
|
119
|
-
name: parsed.name || '',
|
|
120
|
-
arguments: parsed.arguments, // Type preserved in memory!
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
extractedCalls.push(toolCall);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
catch {
|
|
127
|
-
// Failed to parse - will be caught by malformed detection
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Look for embedded tool calls using regex patterns
|
|
131
|
-
const toolCallPatterns = [
|
|
132
|
-
/\{"name":\s*"([^"]+)",\s*"arguments":\s*(\{[\s\S]*?\})\}/g,
|
|
133
|
-
];
|
|
134
|
-
for (const pattern of toolCallPatterns) {
|
|
135
|
-
let match;
|
|
136
|
-
while ((match = pattern.exec(contentStr)) !== null) {
|
|
137
|
-
const [, name, argsStr] = match;
|
|
138
|
-
try {
|
|
139
|
-
let args = null;
|
|
140
|
-
// Only parse if arguments is a JSON object
|
|
141
|
-
if (argsStr && argsStr.startsWith('{')) {
|
|
142
|
-
const parsed = JSON.parse(argsStr || '{}');
|
|
143
|
-
// Ensure arguments is a non-null object (not null, undefined, primitive, or array)
|
|
144
|
-
if (parsed !== null &&
|
|
145
|
-
typeof parsed === 'object' &&
|
|
146
|
-
!Array.isArray(parsed)) {
|
|
147
|
-
args = parsed; // Type preserved in memory!
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
// Only add tool call if we have a valid object
|
|
151
|
-
if (args !== null) {
|
|
152
|
-
extractedCalls.push({
|
|
153
|
-
id: `call_${Date.now()}_${extractedCalls.length}`,
|
|
154
|
-
function: {
|
|
155
|
-
name: name || '',
|
|
156
|
-
arguments: args, // Type preserved in memory!
|
|
157
|
-
},
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// Failed to parse - skip this tool call
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return extractedCalls;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Cleans content by removing tool call JSON blocks
|
|
170
|
-
* Type-preserving: Accepts unknown type, converts to string for processing
|
|
171
|
-
* This is an internal function - use tool-parser.ts for public API
|
|
172
|
-
*/
|
|
173
|
-
export function cleanJSONToolCalls(content, toolCalls) {
|
|
174
|
-
// Type guard: ensure content is string for processing operations
|
|
175
|
-
// BUT original type is preserved in memory via the ToolCall structure
|
|
176
|
-
const contentStr = ensureString(content);
|
|
177
|
-
if (toolCalls.length === 0)
|
|
178
|
-
return contentStr;
|
|
179
|
-
let cleanedContent = contentStr;
|
|
180
|
-
// Handle markdown code blocks that contain only tool calls
|
|
181
|
-
const codeBlockRegex = /```(?:json)?\s*\n?([\s\S]*?)\n?```/g;
|
|
182
|
-
cleanedContent = cleanedContent.replace(codeBlockRegex, (match, blockContent) => {
|
|
183
|
-
const trimmedBlock = blockContent.trim();
|
|
184
|
-
// Check if this block contains a tool call that we parsed
|
|
185
|
-
try {
|
|
186
|
-
const parsed = JSON.parse(trimmedBlock);
|
|
187
|
-
if (parsed.name && parsed.arguments !== undefined) {
|
|
188
|
-
// This code block contains only a tool call, remove the entire block
|
|
189
|
-
return '';
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
catch {
|
|
193
|
-
// Not valid JSON, keep the code block
|
|
194
|
-
}
|
|
195
|
-
// Keep the code block as-is if it doesn't contain a tool call
|
|
196
|
-
return match;
|
|
197
|
-
});
|
|
198
|
-
// Remove JSON blocks that were parsed as tool calls (for non-code-block cases)
|
|
199
|
-
const toolCallPatterns = [
|
|
200
|
-
/\{\s*\n\s*"name":\s*"([^"]+)",\s*\n\s*"arguments":\s*\{[\s\S]*?\}\s*\n\s*\}/g, // Multiline JSON blocks
|
|
201
|
-
/\{"name":\s*"([^"]+)",\s*"arguments":\s*(\{[\s\S]*?\})\}/g, // Consolidated inline pattern
|
|
202
|
-
];
|
|
203
|
-
for (const pattern of toolCallPatterns) {
|
|
204
|
-
cleanedContent = cleanedContent.replace(pattern, '');
|
|
205
|
-
}
|
|
206
|
-
// Clean up whitespace artifacts left by removed tool calls
|
|
207
|
-
cleanedContent = cleanedContent
|
|
208
|
-
// Remove trailing whitespace from each line
|
|
209
|
-
.replace(/[ \t]+$/gm, '')
|
|
210
|
-
// Collapse multiple spaces (but not at start of line for indentation)
|
|
211
|
-
.replace(/([^ \t\n]) {2,}/g, '$1 ')
|
|
212
|
-
// Remove lines that are only whitespace
|
|
213
|
-
.replace(/^[ \t]+$/gm, '')
|
|
214
|
-
// Collapse 2+ consecutive blank lines to a single blank line
|
|
215
|
-
.replace(/\n{3,}/g, '\n\n')
|
|
216
|
-
.trim();
|
|
217
|
-
return cleanedContent;
|
|
218
|
-
}
|
|
219
|
-
//# sourceMappingURL=json-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../source/tool-calling/json-parser.ts"],"names":[],"mappings":"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"}
|