@gitkraken/core-gitlens 0.5.110 → 0.5.112
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/CHANGELOG.md +19 -1
- package/dist/git/cache.d.ts +111 -6
- package/dist/git/cache.d.ts.map +1 -1
- package/dist/git/cache.js +312 -43
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts +11 -0
- package/dist/git/context.d.ts.map +1 -1
- package/dist/git/context.js.map +1 -1
- package/dist/git/models/fileStatus.d.ts +1 -0
- package/dist/git/models/fileStatus.d.ts.map +1 -1
- package/dist/git/models/fileStatus.js +1 -0
- package/dist/git/models/fileStatus.js.map +1 -1
- package/dist/git/models/issue.d.ts +4 -0
- package/dist/git/models/issue.d.ts.map +1 -1
- package/dist/git/models/mergeConflicts.d.ts +2 -0
- package/dist/git/models/mergeConflicts.d.ts.map +1 -1
- package/dist/git/models/pullRequest.d.ts +38 -2
- package/dist/git/models/pullRequest.d.ts.map +1 -1
- package/dist/git/models/pullRequest.js +12 -1
- package/dist/git/models/pullRequest.js.map +1 -1
- package/dist/git/models/repository.d.ts +32 -5
- package/dist/git/models/repository.d.ts.map +1 -1
- package/dist/git/models/repository.js +58 -12
- package/dist/git/models/repository.js.map +1 -1
- package/dist/git/models/statusFile.d.ts.map +1 -1
- package/dist/git/models/statusFile.js +3 -0
- package/dist/git/models/statusFile.js.map +1 -1
- package/dist/git/providers/branches.d.ts +2 -0
- package/dist/git/providers/branches.d.ts.map +1 -1
- package/dist/git/providers/commits.d.ts +8 -0
- package/dist/git/providers/commits.d.ts.map +1 -1
- package/dist/git/providers/config.d.ts +19 -1
- package/dist/git/providers/config.d.ts.map +1 -1
- package/dist/git/providers/operations.d.ts +1 -0
- package/dist/git/providers/operations.d.ts.map +1 -1
- package/dist/git/providers/pausedOperations.d.ts +2 -0
- package/dist/git/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git/providers/status.d.ts +1 -0
- package/dist/git/providers/status.d.ts.map +1 -1
- package/dist/git/utils/config.utils.d.ts +3 -0
- package/dist/git/utils/config.utils.d.ts.map +1 -0
- package/dist/git/utils/config.utils.js +8 -0
- package/dist/git/utils/config.utils.js.map +1 -0
- package/dist/git/utils/issue.utils.d.ts.map +1 -1
- package/dist/git/utils/issue.utils.js +2 -0
- package/dist/git/utils/issue.utils.js.map +1 -1
- package/dist/git/utils/pausedOperationStatus.utils.d.ts +14 -0
- package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +1 -1
- package/dist/git/utils/pausedOperationStatus.utils.js +23 -0
- package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
- package/dist/git/utils/pullRequest.utils.d.ts +14 -1
- package/dist/git/utils/pullRequest.utils.d.ts.map +1 -1
- package/dist/git/utils/pullRequest.utils.js +31 -0
- package/dist/git/utils/pullRequest.utils.js.map +1 -1
- package/dist/git/watching/changeEvent.d.ts +6 -1
- package/dist/git/watching/changeEvent.d.ts.map +1 -1
- package/dist/git/watching/classifyChange.d.ts.map +1 -1
- package/dist/git/watching/classifyChange.js +14 -1
- package/dist/git/watching/classifyChange.js.map +1 -1
- package/dist/git/watching/watchService.d.ts.map +1 -1
- package/dist/git/watching/watchService.js +18 -3
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git/watching/watchSession.d.ts +8 -1
- package/dist/git/watching/watchSession.d.ts.map +1 -1
- package/dist/git/watching/watchSession.js +38 -6
- package/dist/git/watching/watchSession.js.map +1 -1
- package/dist/git/watching/watcherPatterns.d.ts +2 -2
- package/dist/git/watching/watcherPatterns.d.ts.map +1 -1
- package/dist/git/watching/watcherPatterns.js +1 -1
- package/dist/git/watching/watcherPatterns.js.map +1 -1
- package/dist/git-cli/exec/git.d.ts +1 -1
- package/dist/git-cli/exec/git.d.ts.map +1 -1
- package/dist/git-cli/exec/git.js +13 -3
- package/dist/git-cli/exec/git.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts +19 -0
- package/dist/git-cli/providers/branches.d.ts.map +1 -1
- package/dist/git-cli/providers/branches.js +282 -78
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts +4 -0
- package/dist/git-cli/providers/commits.d.ts.map +1 -1
- package/dist/git-cli/providers/commits.js +84 -11
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts +42 -0
- package/dist/git-cli/providers/config.d.ts.map +1 -1
- package/dist/git-cli/providers/config.js +186 -5
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/contributors.d.ts.map +1 -1
- package/dist/git-cli/providers/contributors.js +1 -1
- package/dist/git-cli/providers/contributors.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts +2 -2
- package/dist/git-cli/providers/graph.d.ts.map +1 -1
- package/dist/git-cli/providers/graph.js +27 -9
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/operations.d.ts.map +1 -1
- package/dist/git-cli/providers/operations.js +40 -12
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/pausedOperations.d.ts +5 -0
- package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git-cli/providers/pausedOperations.js +87 -16
- package/dist/git-cli/providers/pausedOperations.js.map +1 -1
- package/dist/git-cli/providers/refs.d.ts +5 -3
- package/dist/git-cli/providers/refs.d.ts.map +1 -1
- package/dist/git-cli/providers/refs.js +33 -4
- package/dist/git-cli/providers/refs.js.map +1 -1
- package/dist/git-cli/providers/status.d.ts +1 -0
- package/dist/git-cli/providers/status.d.ts.map +1 -1
- package/dist/git-cli/providers/status.js +18 -3
- package/dist/git-cli/providers/status.js.map +1 -1
- package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
- package/dist/git-cli/providers/worktrees.js +4 -0
- package/dist/git-cli/providers/worktrees.js.map +1 -1
- package/dist/git-cli/service.d.ts.map +1 -1
- package/dist/git-cli/service.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts +39 -1
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.js +978 -71
- package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +24 -2
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -1
- package/dist/plus/agents/providers/claudeCodeTranscript.js +84 -9
- package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
- package/dist/plus/agents/types.d.ts +37 -2
- package/dist/plus/agents/types.d.ts.map +1 -1
- package/dist/plus/agents/types.js +2 -0
- package/dist/plus/agents/types.js.map +1 -1
- package/dist/plus/ai/errors.d.ts +10 -0
- package/dist/plus/ai/errors.d.ts.map +1 -1
- package/dist/plus/ai/errors.js +29 -0
- package/dist/plus/ai/errors.js.map +1 -1
- package/dist/plus/ai/models/model.d.ts +4 -0
- package/dist/plus/ai/models/model.d.ts.map +1 -1
- package/dist/plus/ai/models/model.js +51 -6
- package/dist/plus/ai/models/model.js.map +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
- package/dist/plus/ai/models/provider.d.ts +60 -2
- package/dist/plus/ai/models/provider.d.ts.map +1 -1
- package/dist/plus/ai/prompts.d.ts +12 -0
- package/dist/plus/ai/prompts.d.ts.map +1 -1
- package/dist/plus/ai/prompts.js +177 -61
- package/dist/plus/ai/prompts.js.map +1 -1
- package/dist/plus/ai/providers/anthropicProvider.d.ts +10 -2
- package/dist/plus/ai/providers/anthropicProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/anthropicProvider.js +139 -46
- package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
- package/dist/plus/ai/providers/deepSeekProvider.d.ts +2 -0
- package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/deepSeekProvider.js +10 -21
- package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
- package/dist/plus/ai/providers/geminiProvider.d.ts +1 -0
- package/dist/plus/ai/providers/geminiProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/geminiProvider.js +19 -0
- package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts +5 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.js +118 -3
- package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts +1 -0
- package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/huggingFaceProvider.js +5 -0
- package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
- package/dist/plus/ai/providers/mistralProvider.d.ts +3 -1
- package/dist/plus/ai/providers/mistralProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/mistralProvider.js +99 -19
- package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
- package/dist/plus/ai/providers/ollamaProvider.d.ts +4 -3
- package/dist/plus/ai/providers/ollamaProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/ollamaProvider.js +38 -3
- package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.d.ts +1 -0
- package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProvider.js +4 -0
- package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +154 -5
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js +259 -10
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
- package/dist/plus/ai/providers/openRouterProvider.d.ts +4 -0
- package/dist/plus/ai/providers/openRouterProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/openRouterProvider.js +9 -0
- package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
- package/dist/plus/ai/providers/openaiProvider.d.ts +1 -0
- package/dist/plus/ai/providers/openaiProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/openaiProvider.js +1 -0
- package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
- package/dist/plus/ai/providers/responseFormatCache.d.ts +8 -0
- package/dist/plus/ai/providers/responseFormatCache.d.ts.map +1 -0
- package/dist/plus/ai/providers/responseFormatCache.js +25 -0
- package/dist/plus/ai/providers/responseFormatCache.js.map +1 -0
- package/dist/plus/ai/providers/xaiProvider.d.ts +1 -0
- package/dist/plus/ai/providers/xaiProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/xaiProvider.js +10 -1
- package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
- package/dist/plus/ai/utils/ai.utils.d.ts +3 -0
- package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/ai.utils.js +13 -0
- package/dist/plus/ai/utils/ai.utils.js.map +1 -1
- package/dist/plus/ai/utils/results.utils.d.ts +16 -2
- package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/results.utils.js +204 -28
- package/dist/plus/ai/utils/results.utils.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +55 -0
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +177 -4
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/models.d.ts +16 -0
- package/dist/plus/git-github/models.d.ts.map +1 -1
- package/dist/plus/git-github/models.js +29 -3
- package/dist/plus/git-github/models.js.map +1 -1
- package/dist/plus/git-github/providers/github/status.d.ts +1 -0
- package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/status.js.map +1 -1
- package/dist/plus/integrations/context.d.ts +4 -0
- package/dist/plus/integrations/context.d.ts.map +1 -1
- package/dist/plus/integrations/index.d.ts.map +1 -1
- package/dist/plus/integrations/index.js +2 -0
- package/dist/plus/integrations/index.js.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +6 -3
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.js +12 -2
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +3 -1
- package/dist/plus/integrations/models/integration.d.ts.map +1 -1
- package/dist/plus/integrations/models/integration.js +2 -2
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/providers/accounts.d.ts.map +1 -1
- package/dist/plus/integrations/providers/accounts.js +4 -0
- package/dist/plus/integrations/providers/accounts.js.map +1 -1
- package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/azure/models.js +3 -0
- package/dist/plus/integrations/providers/azure/models.js.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/bitbucket/models.js +1 -0
- package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
- package/dist/plus/integrations/providers/github.d.ts +14 -2
- package/dist/plus/integrations/providers/github.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github.js +55 -3
- package/dist/plus/integrations/providers/github.js.map +1 -1
- package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
- package/dist/plus/integrations/providers/gitlab.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/models.js +30 -4
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/reads/broaden.d.ts.map +1 -1
- package/dist/plus/integrations/reads/broaden.js +6 -1
- package/dist/plus/integrations/reads/broaden.js.map +1 -1
- package/dist/plus/integrations/reads/drains.d.ts.map +1 -1
- package/dist/plus/integrations/reads/drains.js +7 -4
- package/dist/plus/integrations/reads/drains.js.map +1 -1
- package/dist/plus/integrations/reads/hierarchy.d.ts.map +1 -1
- package/dist/plus/integrations/reads/hierarchy.js +3 -1
- package/dist/plus/integrations/reads/hierarchy.js.map +1 -1
- package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -1
- package/dist/plus/integrations/reads/issueTracker.js +8 -3
- package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
- package/dist/plus/integrations/reads/issues.d.ts.map +1 -1
- package/dist/plus/integrations/reads/issues.js +9 -4
- package/dist/plus/integrations/reads/issues.js.map +1 -1
- package/dist/plus/integrations/reads/pullRequests.d.ts.map +1 -1
- package/dist/plus/integrations/reads/pullRequests.js +9 -4
- package/dist/plus/integrations/reads/pullRequests.js.map +1 -1
- package/dist/utils/env/browser/base64.d.ts +1 -1
- package/dist/utils/env/browser/base64.d.ts.map +1 -1
- package/dist/utils/env/node/base64.d.ts +1 -1
- package/dist/utils/env/node/base64.d.ts.map +1 -1
- package/dist/utils/env/node/base64.js +2 -0
- package/dist/utils/env/node/base64.js.map +1 -1
- package/dist/utils/keys/chord.d.ts +52 -0
- package/dist/utils/keys/chord.d.ts.map +1 -0
- package/dist/utils/keys/chord.js +135 -0
- package/dist/utils/keys/chord.js.map +1 -0
- package/dist/utils/keys/keybinding.d.ts +53 -0
- package/dist/utils/keys/keybinding.d.ts.map +1 -0
- package/dist/utils/keys/keybinding.js +58 -0
- package/dist/utils/keys/keybinding.js.map +1 -0
- package/dist/utils/path.d.ts +11 -0
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +13 -0
- package/dist/utils/path.js.map +1 -1
- package/package.json +13 -5
- package/src/git/cache.ts +383 -47
- package/src/git/context.ts +11 -0
- package/src/git/models/fileStatus.ts +1 -0
- package/src/git/models/issue.ts +4 -0
- package/src/git/models/mergeConflicts.ts +3 -2
- package/src/git/models/pullRequest.ts +33 -1
- package/src/git/models/repository.ts +58 -17
- package/src/git/models/statusFile.ts +3 -0
- package/src/git/providers/branches.ts +6 -0
- package/src/git/providers/commits.ts +11 -0
- package/src/git/providers/config.ts +18 -0
- package/src/git/providers/operations.ts +1 -0
- package/src/git/providers/pausedOperations.ts +2 -0
- package/src/git/providers/status.ts +1 -0
- package/src/git/utils/config.utils.ts +8 -0
- package/src/git/utils/issue.utils.ts +2 -0
- package/src/git/utils/pausedOperationStatus.utils.ts +28 -0
- package/src/git/utils/pullRequest.utils.ts +36 -0
- package/src/git/watching/changeEvent.ts +6 -1
- package/src/git/watching/classifyChange.ts +15 -1
- package/src/git/watching/watchService.ts +20 -3
- package/src/git/watching/watchSession.ts +41 -6
- package/src/git/watching/watcherPatterns.ts +1 -1
- package/src/git-cli/exec/git.ts +13 -3
- package/src/git-cli/providers/branches.ts +384 -132
- package/src/git-cli/providers/commits.ts +106 -15
- package/src/git-cli/providers/config.ts +229 -8
- package/src/git-cli/providers/contributors.ts +5 -1
- package/src/git-cli/providers/graph.ts +26 -13
- package/src/git-cli/providers/operations.ts +45 -20
- package/src/git-cli/providers/pausedOperations.ts +109 -17
- package/src/git-cli/providers/refs.ts +33 -3
- package/src/git-cli/providers/status.ts +25 -4
- package/src/git-cli/providers/worktrees.ts +5 -0
- package/src/git-cli/service.ts +0 -1
- package/src/plus/agents/providers/claudeCodeProvider.ts +1130 -87
- package/src/plus/agents/providers/claudeCodeTranscript.ts +95 -9
- package/src/plus/agents/types.ts +46 -2
- package/src/plus/ai/errors.ts +30 -0
- package/src/plus/ai/models/model.ts +56 -6
- package/src/plus/ai/models/promptTemplates.ts +1 -1
- package/src/plus/ai/models/provider.ts +69 -2
- package/src/plus/ai/prompts.ts +186 -61
- package/src/plus/ai/providers/anthropicProvider.ts +155 -47
- package/src/plus/ai/providers/deepSeekProvider.ts +11 -21
- package/src/plus/ai/providers/geminiProvider.ts +19 -0
- package/src/plus/ai/providers/gitkrakenProvider.ts +126 -3
- package/src/plus/ai/providers/huggingFaceProvider.ts +6 -0
- package/src/plus/ai/providers/mistralProvider.ts +102 -19
- package/src/plus/ai/providers/ollamaProvider.ts +55 -4
- package/src/plus/ai/providers/openAICompatibleProvider.ts +5 -0
- package/src/plus/ai/providers/openAICompatibleProviderBase.ts +360 -17
- package/src/plus/ai/providers/openRouterProvider.ts +17 -0
- package/src/plus/ai/providers/openaiProvider.ts +1 -0
- package/src/plus/ai/providers/responseFormatCache.ts +39 -0
- package/src/plus/ai/providers/xaiProvider.ts +10 -1
- package/src/plus/ai/utils/ai.utils.ts +14 -0
- package/src/plus/ai/utils/results.utils.ts +255 -31
- package/src/plus/git-github/api/github.ts +291 -7
- package/src/plus/git-github/models.ts +48 -2
- package/src/plus/git-github/providers/github/status.ts +1 -0
- package/src/plus/integrations/context.ts +4 -0
- package/src/plus/integrations/index.ts +2 -0
- package/src/plus/integrations/models/gitHostIntegration.ts +25 -2
- package/src/plus/integrations/models/integration.ts +23 -13
- package/src/plus/integrations/providers/accounts.ts +4 -0
- package/src/plus/integrations/providers/azure/models.ts +3 -0
- package/src/plus/integrations/providers/bitbucket/models.ts +1 -0
- package/src/plus/integrations/providers/github.ts +85 -1
- package/src/plus/integrations/providers/gitlab.ts +2 -10
- package/src/plus/integrations/providers/models.ts +36 -4
- package/src/plus/integrations/reads/broaden.ts +6 -1
- package/src/plus/integrations/reads/drains.ts +7 -4
- package/src/plus/integrations/reads/hierarchy.ts +3 -1
- package/src/plus/integrations/reads/issueTracker.ts +9 -3
- package/src/plus/integrations/reads/issues.ts +9 -4
- package/src/plus/integrations/reads/pullRequests.ts +9 -4
- package/src/utils/env/browser/base64.ts +1 -1
- package/src/utils/env/node/base64.ts +3 -1
- package/src/utils/keys/chord.ts +184 -0
- package/src/utils/keys/keybinding.ts +116 -0
- package/src/utils/path.ts +14 -0
|
@@ -52,10 +52,15 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
52
52
|
});
|
|
53
53
|
import { CancellationError, isCancellationError } from '../../../utils/cancellation.js';
|
|
54
54
|
import { uuid } from '../../../utils/crypto.js';
|
|
55
|
-
import { getLoggableName } from '../../../utils/logger.js';
|
|
55
|
+
import { getLoggableName, Logger } from '../../../utils/logger.js';
|
|
56
56
|
import { maybeStartScopedLogger } from '../../../utils/logger.scoped.js';
|
|
57
57
|
import { AIError, AIErrorReason } from '../errors.js';
|
|
58
58
|
import { getActionName, getReducedMaxInputTokens, getValidatedTemperature } from '../utils/ai.utils.js';
|
|
59
|
+
import { isResponseFormatRejected, rememberResponseFormatRejection } from './responseFormatCache.js';
|
|
60
|
+
// Native-format rejection wording varies by provider ("response_format", "structured outputs",
|
|
61
|
+
// Gemini's "Json mode is not enabled", and its OpenAI-compat layer's `generation_config.response_schema`
|
|
62
|
+
// path in INVALID_ARGUMENT bodies, ...)
|
|
63
|
+
const formatRejectionRegex = /response[_ ]?(?:format|schema)|structured[_ ]?output|output_config|json_schema|json[_ ]?mode/i;
|
|
59
64
|
export class OpenAICompatibleProviderBase {
|
|
60
65
|
context;
|
|
61
66
|
constructor(context) {
|
|
@@ -91,6 +96,12 @@ export class OpenAICompatibleProviderBase {
|
|
|
91
96
|
url: keyUrl,
|
|
92
97
|
}, silent);
|
|
93
98
|
}
|
|
99
|
+
isResponseFormatSessionRejected(model, responseFormat) {
|
|
100
|
+
return isResponseFormatRejected(this.id, model, responseFormat);
|
|
101
|
+
}
|
|
102
|
+
rememberResponseFormatRejection(model, responseFormat) {
|
|
103
|
+
rememberResponseFormatRejection(this.id, model, responseFormat);
|
|
104
|
+
}
|
|
94
105
|
getHeaders(_action, apiKey, _model, _url,
|
|
95
106
|
// Deliberately unused here: only the GitKraken provider forwards the conversation ID (as
|
|
96
107
|
// `GK-Conversation-ID`); it must never reach third-party APIs.
|
|
@@ -106,7 +117,7 @@ export class OpenAICompatibleProviderBase {
|
|
|
106
117
|
try {
|
|
107
118
|
const scope = __addDisposableResource(env_1, maybeStartScopedLogger(`${getLoggableName(this)}.sendRequest`), false);
|
|
108
119
|
try {
|
|
109
|
-
const result = await this.fetch(action, model, apiKey, getMessages, options.modelOptions, options.signal, options.conversationId);
|
|
120
|
+
const result = await this.fetch(action, model, apiKey, getMessages, options.modelOptions, options.responseFormat, options.signal, options.conversationId, options.tools);
|
|
110
121
|
return result;
|
|
111
122
|
}
|
|
112
123
|
catch (ex) {
|
|
@@ -131,33 +142,97 @@ export class OpenAICompatibleProviderBase {
|
|
|
131
142
|
__disposeResources(env_1);
|
|
132
143
|
}
|
|
133
144
|
}
|
|
134
|
-
async fetch(action, model, apiKey, messages, modelOptions, signal, conversationId) {
|
|
145
|
+
async fetch(action, model, apiKey, messages, modelOptions, responseFormat, signal, conversationId, tools) {
|
|
135
146
|
let retries = 0;
|
|
136
147
|
let maxInputTokens = model.maxTokens.input;
|
|
148
|
+
// Latched when the provider rejects the `tools` field, so the retry drops tools entirely and
|
|
149
|
+
// the caller can stop offering them for the rest of the session.
|
|
150
|
+
let toolsRejected = false;
|
|
137
151
|
while (true) {
|
|
152
|
+
const useTools = tools?.length && !toolsRejected ? tools : undefined;
|
|
153
|
+
const { messages: msgs, system } = this.extractSystemPrompt(await messages(maxInputTokens, retries));
|
|
138
154
|
const request = {
|
|
139
155
|
model: model.id,
|
|
140
|
-
|
|
156
|
+
messages: this.serializeMessages(msgs),
|
|
157
|
+
...(system != null ? { system: system } : undefined),
|
|
158
|
+
...(useTools != null ? this.serializeTools(useTools) : undefined),
|
|
141
159
|
stream: false,
|
|
142
160
|
max_completion_tokens: model.maxTokens.output
|
|
143
161
|
? Math.min(modelOptions?.outputTokens ?? Infinity, model.maxTokens.output)
|
|
144
162
|
: modelOptions?.outputTokens,
|
|
145
163
|
temperature: getValidatedTemperature(model, modelOptions?.temperature ?? model.temperature, this.context.defaultTemperature),
|
|
146
164
|
};
|
|
147
|
-
|
|
165
|
+
if (responseFormat != null &&
|
|
166
|
+
!this.isResponseFormatSessionRejected(model, responseFormat) &&
|
|
167
|
+
this.supportsResponseFormat(model)) {
|
|
168
|
+
this.applyResponseFormat(request, model, responseFormat);
|
|
169
|
+
}
|
|
170
|
+
let rsp = await this.fetchCore(action, model, apiKey, request, signal, conversationId);
|
|
171
|
+
// Read once and forward to `handleFetchFailure` so the error body isn't decoded twice
|
|
172
|
+
let errorBody;
|
|
173
|
+
if (!rsp.ok && (request.response_format != null || request.output_config != null)) {
|
|
174
|
+
// If the native format was rejected (stale model snapshot, older Azure api-version,
|
|
175
|
+
// proxy converter gaps, OpenRouter's require_parameters matching no endpoint), strip
|
|
176
|
+
// it and resend the same request — the prompt still describes the JSON. Resending
|
|
177
|
+
// directly avoids re-running the (non-idempotent) prompt build and its side effects
|
|
178
|
+
// Leave it `undefined` (not '') when the read fails, so `handleFetchFailure` falls
|
|
179
|
+
// back to reading the still-unconsumed response instead of parsing an empty string
|
|
180
|
+
errorBody = await rsp
|
|
181
|
+
.clone()
|
|
182
|
+
.text()
|
|
183
|
+
.catch(() => undefined);
|
|
184
|
+
if (this.isResponseFormatRejection(rsp.status, errorBody ?? '')) {
|
|
185
|
+
Logger.warn(`(${this.name}) ${model.id}: native response format was rejected (${rsp.status}); retrying without it`);
|
|
186
|
+
const rejected = responseFormat;
|
|
187
|
+
responseFormat = undefined;
|
|
188
|
+
delete request.response_format;
|
|
189
|
+
delete request.output_config;
|
|
190
|
+
delete request.provider;
|
|
191
|
+
rsp = await this.fetchCore(action, model, apiKey, request, signal, conversationId);
|
|
192
|
+
errorBody = undefined;
|
|
193
|
+
// Memoize only when stripping fixed it — proof the format (not e.g. an oversized
|
|
194
|
+
// prompt behind the same wrapped status) caused the failure
|
|
195
|
+
if (rsp.ok && rejected != null) {
|
|
196
|
+
this.rememberResponseFormatRejection(model, rejected);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
148
200
|
if (!rsp.ok) {
|
|
149
|
-
const result = await this.handleFetchFailure(rsp, action, model, retries, maxInputTokens);
|
|
201
|
+
const result = await this.handleFetchFailure(rsp, action, model, retries, maxInputTokens, errorBody, useTools != null);
|
|
150
202
|
if (result.retry) {
|
|
151
203
|
maxInputTokens = result.maxInputTokens;
|
|
204
|
+
if (result.withoutTools) {
|
|
205
|
+
// Say so explicitly: the caller degrades silently by design, so the only remaining
|
|
206
|
+
// evidence would be `toolCalls=0` — indistinguishable from a model that simply chose
|
|
207
|
+
// not to consult the repository. That ambiguity is the whole reason to log it.
|
|
208
|
+
Logger.warn(`(${this.name}) ${model.id}: tools were rejected (${rsp.status}); retrying without them — repository consultation is unavailable for the rest of this session`);
|
|
209
|
+
toolsRejected = true;
|
|
210
|
+
}
|
|
152
211
|
retries++;
|
|
153
212
|
continue;
|
|
154
213
|
}
|
|
155
214
|
}
|
|
156
215
|
const data = (await rsp.json());
|
|
216
|
+
const toolCalls = this.parseToolCalls(data);
|
|
217
|
+
// A tool-call-only turn carries no text, which `extractContent` correctly reports as '' — it
|
|
218
|
+
// selects the text block by type, so a `tool_use` (or thinking) block is never mistaken for one.
|
|
219
|
+
// The calls ride alongside on `toolCalls` below.
|
|
220
|
+
const content = this.extractContent(data);
|
|
221
|
+
// Some providers/proxies (e.g. OpenRouter) report upstream failures as an OK response
|
|
222
|
+
// carrying an error envelope and no choices — surface that instead of empty content
|
|
223
|
+
if (!content && toolCalls == null && data.error != null) {
|
|
224
|
+
if (data.error.code === 429 || data.error.code === '429') {
|
|
225
|
+
throw new AIError(AIErrorReason.RateLimitOrFundsExceeded, new Error(`(${this.name}) ${data.error.message || 'Rate limit exceeded'}`));
|
|
226
|
+
}
|
|
227
|
+
throw new Error(`(${this.name}) ${data.error.message || 'Unknown error'}`);
|
|
228
|
+
}
|
|
157
229
|
const result = {
|
|
158
230
|
id: data.id ?? uuid(),
|
|
159
|
-
content:
|
|
231
|
+
content: content,
|
|
232
|
+
finishReason: this.extractFinishReason(data),
|
|
160
233
|
model: model,
|
|
234
|
+
...(toolCalls?.length ? { toolCalls: toolCalls } : undefined),
|
|
235
|
+
...(toolsRejected ? { toolsRejected: true } : undefined),
|
|
161
236
|
usage: {
|
|
162
237
|
promptTokens: data.usage?.prompt_tokens ?? data.usage?.input_tokens,
|
|
163
238
|
completionTokens: data.usage?.completion_tokens ?? data.usage?.output_tokens,
|
|
@@ -183,7 +258,167 @@ export class OpenAICompatibleProviderBase {
|
|
|
183
258
|
extractSystemPrompt(messages) {
|
|
184
259
|
return { messages: messages };
|
|
185
260
|
}
|
|
186
|
-
|
|
261
|
+
/** Whether the given model accepts a native response-format/schema field; when false the
|
|
262
|
+
* prompt's JSON description is the only format control (the request is unchanged).
|
|
263
|
+
* Dynamic-catalog providers (GitKraken, OpenRouter) populate
|
|
264
|
+
* {@link AIModel.supportsStructuredOutputs}; static providers override with id-based gates */
|
|
265
|
+
supportsResponseFormat(model) {
|
|
266
|
+
return model.supportsStructuredOutputs ?? true;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Whether a failed response reads as a rejection of the `tools` field rather than a problem with the
|
|
270
|
+
* prompt — the trigger for one retry without tools, so a tool-using feature degrades to single-shot
|
|
271
|
+
* instead of failing outright.
|
|
272
|
+
*
|
|
273
|
+
* Providers that wrap upstream rejections in their own envelope (e.g. GitKraken) must override this:
|
|
274
|
+
* the wrapper's prose names neither "tool" nor "function", so the text match here cannot see through
|
|
275
|
+
* it and the fallback would never fire.
|
|
276
|
+
*/
|
|
277
|
+
isToolsRejection(status, message) {
|
|
278
|
+
if (status !== 400 || !message)
|
|
279
|
+
return false;
|
|
280
|
+
const m = message.toLowerCase();
|
|
281
|
+
return ((m.includes('tool') || m.includes('function')) &&
|
|
282
|
+
(m.includes('unsupported') ||
|
|
283
|
+
m.includes('not supported') ||
|
|
284
|
+
m.includes('unknown') ||
|
|
285
|
+
m.includes('unrecognized') ||
|
|
286
|
+
m.includes('invalid') ||
|
|
287
|
+
m.includes('unexpected')));
|
|
288
|
+
}
|
|
289
|
+
/** Whether a failed response means the native response format itself was rejected — the
|
|
290
|
+
* trigger for stripping it and retrying via the prompt-described JSON. Providers that wrap
|
|
291
|
+
* upstream rejections in their own envelope (e.g. GitKraken) extend this */
|
|
292
|
+
isResponseFormatRejection(status, body) {
|
|
293
|
+
return ((status === 400 && formatRejectionRegex.test(body)) ||
|
|
294
|
+
// OpenRouter answers 404 when `require_parameters` matches no serving endpoint
|
|
295
|
+
(status === 404 && /no endpoints found/i.test(body)));
|
|
296
|
+
}
|
|
297
|
+
/** Translates the canonical response format onto the request; called only when
|
|
298
|
+
* {@link supportsResponseFormat} allows it. Base emits the OpenAI `response_format.json_schema`
|
|
299
|
+
* envelope. Overrides must REPLACE this for providers with a different native field
|
|
300
|
+
* (e.g. Anthropic `output_config`) — never leave both on the request. */
|
|
301
|
+
applyResponseFormat(request, _model, responseFormat) {
|
|
302
|
+
request.response_format = {
|
|
303
|
+
type: 'json_schema',
|
|
304
|
+
json_schema: {
|
|
305
|
+
name: responseFormat.name,
|
|
306
|
+
strict: true,
|
|
307
|
+
schema: responseFormat.schema,
|
|
308
|
+
},
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
// Finds the text block by type rather than position — with some Anthropic models (e.g. Sonnet 5,
|
|
312
|
+
// where thinking runs by default) a thinking block can precede the text block
|
|
313
|
+
extractContent(data) {
|
|
314
|
+
return (data.choices?.[0]?.message?.content?.trim() ??
|
|
315
|
+
data.content?.find(b => b.type === 'text')?.text?.trim() ??
|
|
316
|
+
'');
|
|
317
|
+
}
|
|
318
|
+
/** Normalizes abnormal completion signals (all arrive as HTTP 200) so consumers can
|
|
319
|
+
* distinguish truncated/filtered/refused output from a malformed-but-complete reply */
|
|
320
|
+
extractFinishReason(data) {
|
|
321
|
+
const choice = data.choices?.[0];
|
|
322
|
+
if (choice != null) {
|
|
323
|
+
// Truthy check — some OpenAI-compatible servers serialize `"refusal": ""` on normal replies
|
|
324
|
+
if (choice.message?.refusal)
|
|
325
|
+
return 'refusal';
|
|
326
|
+
if (choice.finish_reason === 'length')
|
|
327
|
+
return 'length';
|
|
328
|
+
if (choice.finish_reason === 'content_filter')
|
|
329
|
+
return 'content_filter';
|
|
330
|
+
return undefined;
|
|
331
|
+
}
|
|
332
|
+
switch (data.stop_reason) {
|
|
333
|
+
// `model_context_window_exceeded` means the context filled before the output limit — the
|
|
334
|
+
// reply is truncated all the same
|
|
335
|
+
case 'max_tokens':
|
|
336
|
+
case 'model_context_window_exceeded':
|
|
337
|
+
return 'length';
|
|
338
|
+
case 'refusal':
|
|
339
|
+
return 'refusal';
|
|
340
|
+
default:
|
|
341
|
+
return undefined;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Maps messages onto the provider's wire shape. The default is OpenAI Chat Completions: assistant
|
|
346
|
+
* tool calls go in `tool_calls` with `arguments` JSON-stringified, and tool results are `tool`-role
|
|
347
|
+
* entries keyed by `tool_call_id`. Providers with a different tool encoding (e.g. Anthropic's
|
|
348
|
+
* content blocks) override this.
|
|
349
|
+
*/
|
|
350
|
+
serializeMessages(messages) {
|
|
351
|
+
return messages.map(m => {
|
|
352
|
+
if (m.role === 'tool') {
|
|
353
|
+
// A tool result is only addressable by the id of the call it answers. Without one, send it
|
|
354
|
+
// as plain text — the same shape used for providers that can't carry tool calls at all —
|
|
355
|
+
// rather than a `tool_call_id: undefined` the provider rejects with nothing to trace it to.
|
|
356
|
+
if (m.toolCallId == null)
|
|
357
|
+
return { role: 'user', content: m.content };
|
|
358
|
+
return { role: 'tool', tool_call_id: m.toolCallId, content: m.content };
|
|
359
|
+
}
|
|
360
|
+
if (m.role === 'assistant' && m.toolCalls?.length) {
|
|
361
|
+
return {
|
|
362
|
+
role: 'assistant',
|
|
363
|
+
// OpenAI requires `content` to be present, but allows null on a tool-call-only turn
|
|
364
|
+
content: m.content || null,
|
|
365
|
+
tool_calls: m.toolCalls.map(c => ({
|
|
366
|
+
id: c.id,
|
|
367
|
+
type: 'function',
|
|
368
|
+
function: { name: c.name, arguments: JSON.stringify(c.args) },
|
|
369
|
+
// Only the GitKraken proxy mints these, so the field can only ever be present on a
|
|
370
|
+
// conversation with that proxy — no other provider sees it.
|
|
371
|
+
...(c.providerSignature != null ? { thought_signature: c.providerSignature } : undefined),
|
|
372
|
+
})),
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
return { role: m.role, content: m.content };
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
/** Returns the tool-related request fields. The default is the OpenAI `function` envelope. */
|
|
379
|
+
serializeTools(tools) {
|
|
380
|
+
return {
|
|
381
|
+
tools: tools.map(t => ({
|
|
382
|
+
type: 'function',
|
|
383
|
+
function: { name: t.name, description: t.description, parameters: t.parameters },
|
|
384
|
+
})),
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Extracts tool calls from a response, handling both the OpenAI shape
|
|
389
|
+
* (`choices[].message.tool_calls`, whose `arguments` is a JSON string) and the Anthropic shape
|
|
390
|
+
* (`content[]` blocks of type `tool_use`) — mirroring how {@link fetch} already reads content
|
|
391
|
+
* from both.
|
|
392
|
+
*/
|
|
393
|
+
parseToolCalls(data) {
|
|
394
|
+
const calls = [];
|
|
395
|
+
for (const call of data.choices?.[0]?.message?.tool_calls ?? []) {
|
|
396
|
+
let args = {};
|
|
397
|
+
try {
|
|
398
|
+
// Providers can emit '' for a no-argument call
|
|
399
|
+
args = call.function.arguments ? JSON.parse(call.function.arguments) : {};
|
|
400
|
+
}
|
|
401
|
+
catch {
|
|
402
|
+
// Leave args empty — the tool dispatcher reports the resulting validation error back to
|
|
403
|
+
// the model, which is more recoverable than failing the whole request here.
|
|
404
|
+
}
|
|
405
|
+
calls.push({
|
|
406
|
+
id: call.id,
|
|
407
|
+
name: call.function.name,
|
|
408
|
+
args: args,
|
|
409
|
+
...(call.thought_signature != null ? { providerSignature: call.thought_signature } : undefined),
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
for (const block of data.content ?? []) {
|
|
413
|
+
if (block.type !== 'tool_use' || block.id == null || block.name == null)
|
|
414
|
+
continue;
|
|
415
|
+
calls.push({ id: block.id, name: block.name, args: block.input ?? {} });
|
|
416
|
+
}
|
|
417
|
+
return calls.length ? calls : undefined;
|
|
418
|
+
}
|
|
419
|
+
async handleFetchFailure(rsp, _action, model, retries, maxInputTokens,
|
|
420
|
+
/** The already-read error body, when the caller had to read it (avoids a second decode) */
|
|
421
|
+
body, sentTools) {
|
|
187
422
|
if (rsp.status === 404) {
|
|
188
423
|
throw new AIError(AIErrorReason.Unauthorized, new Error(`Your API key doesn't seem to have access to the selected '${model.id}' model`));
|
|
189
424
|
}
|
|
@@ -192,7 +427,7 @@ export class OpenAICompatibleProviderBase {
|
|
|
192
427
|
}
|
|
193
428
|
let json;
|
|
194
429
|
try {
|
|
195
|
-
json = (await rsp.json());
|
|
430
|
+
json = (body != null ? JSON.parse(body) : await rsp.json());
|
|
196
431
|
}
|
|
197
432
|
catch { }
|
|
198
433
|
if (Array.isArray(json)) {
|
|
@@ -204,6 +439,12 @@ export class OpenAICompatibleProviderBase {
|
|
|
204
439
|
}
|
|
205
440
|
throw new AIError(AIErrorReason.RequestTooLarge, new Error(`(${this.name}) ${rsp.status}: ${json?.error?.message || rsp.statusText}`));
|
|
206
441
|
}
|
|
442
|
+
// A provider that advertises the OpenAI shape but rejects `tools` (an older or partial
|
|
443
|
+
// implementation) gets one retry without them, so the caller degrades to text-only instead of
|
|
444
|
+
// failing outright.
|
|
445
|
+
if (sentTools && this.isToolsRejection(rsp.status, json?.error?.message)) {
|
|
446
|
+
return { retry: true, maxInputTokens: maxInputTokens, withoutTools: true };
|
|
447
|
+
}
|
|
207
448
|
throw new Error(`(${this.name}) ${rsp.status}: ${json?.error?.message || rsp.statusText}`);
|
|
208
449
|
}
|
|
209
450
|
async fetchCore(action, model, apiKey, request, signal, conversationId) {
|
|
@@ -211,11 +452,19 @@ export class OpenAICompatibleProviderBase {
|
|
|
211
452
|
if (!url) {
|
|
212
453
|
throw new Error(`(${this.name}) ${getActionName(action)}: No URL configured`);
|
|
213
454
|
}
|
|
455
|
+
const body = JSON.stringify(request);
|
|
456
|
+
// A rejected request is otherwise undiagnosable: a proxying backend reports only its own
|
|
457
|
+
// "upstream AI provider error (<provider> HTTP <status>)", so which field the upstream objected to
|
|
458
|
+
// can only be inferred. Log the request's shape — which fields were sent, and how much — but not
|
|
459
|
+
// the messages, which carry the user's source code.
|
|
460
|
+
Logger.trace(`(${this.name}) ${getActionName(action)} → ${model.id}: fields=[${Object.keys(request)
|
|
461
|
+
.sort()
|
|
462
|
+
.join(',')}] bytes=${body.length}`);
|
|
214
463
|
try {
|
|
215
464
|
return await this.context.fetch(url, {
|
|
216
465
|
headers: await this.getHeaders(action, apiKey, model, url, conversationId),
|
|
217
466
|
method: 'POST',
|
|
218
|
-
body:
|
|
467
|
+
body: body,
|
|
219
468
|
signal: signal,
|
|
220
469
|
});
|
|
221
470
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAICompatibleProviderBase.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProviderBase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openAICompatibleProviderBase.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProviderBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAatD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAExG,OAAO,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAErG,+FAA+F;AAC/F,yGAAyG;AACzG,wCAAwC;AACxC,MAAM,oBAAoB,GACzB,+FAA+F,CAAC;AAEjG,MAAM,OAAgB,4BAA4B;IAClB,OAAO;IAAtC,YAA+B,OAA0B;uBAA1B,OAAO;IAAsB,CAAC;IAE7D,OAAO,KAAU,CAAC;IAClB,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,UAAU,CAAC,MAAe;QAC/B,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,MAAM,IAAI,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACb,IAAI,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE1C,MAAM,EAAE,CAAC;QACV,CAAC;IACF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAe;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC;QAEpC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAC5B;YACC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;YAChD,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;YACxE,GAAG,EAAE,MAAM;SACX,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAIS,+BAA+B,CAAC,KAAiB,EAAE,cAAgC;QAC5F,OAAO,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IAES,+BAA+B,CAAC,KAAiB,EAAE,cAAgC;QAC5F,+BAA+B,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IAIS,UAAU,CACnB,OAAgB,EAChB,MAAc,EACd,MAAkB,EAClB,IAAY;IACZ,yFAAyF;IACzF,+DAA+D;IAC/D,eAAwB;QAExB,OAAO;YACN,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,MAAM,EAAE;SACjC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,MAAe,EACf,KAAiB,EACjB,MAAc,EACd,WAAqG,EACrG,OAMC;;;YAED,MAAM,KAAK,kCAAG,sBAAsB,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,QAAA,CAAC;YAE7E,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC9B,MAAM,EACN,KAAK,EACL,MAAM,EACN,WAAW,EACX,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,KAAK,CACb,CAAC;gBACF,OAAO,MAAM,CAAC;YACf,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACb,IAAI,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,wBAAwB,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;oBAC5F,MAAM,EAAE,CAAC;gBACV,CAAC;gBAED,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,aAAa,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;gBACjF,IAAI,EAAE,YAAY,OAAO;oBAAE,MAAM,EAAE,CAAC;gBAEpC,SAAS;gBACT,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC7F,KAAK,EAAE,EAAE;iBACT,CAAC,CAAC;YACJ,CAAC;;;;;;;;;IACF,CAAC;IAES,KAAK,CAAC,KAAK,CACpB,MAAe,EACf,KAAiB,EACjB,MAAc,EACd,QAAkG,EAClG,YAA8D,EAC9D,cAAiC,EACjC,MAAoB,EACpB,cAAuB,EACvB,KAAmC;QAEnC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QAC3C,6FAA6F;QAC7F,iEAAiE;QACjE,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YACrG,MAAM,OAAO,GAA0B;gBACtC,KAAK,EAAE,KAAK,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBACtC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpD,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjE,MAAM,EAAE,KAAK;gBACb,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;oBAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,IAAI,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;oBAC1E,CAAC,CAAC,YAAY,EAAE,YAAY;gBAC7B,WAAW,EAAE,uBAAuB,CACnC,KAAK,EACL,YAAY,EAAE,WAAW,IAAI,KAAK,CAAC,WAAW,EAC9C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC/B;aACD,CAAC;YACF,IACC,cAAc,IAAI,IAAI;gBACtB,CAAC,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,cAAc,CAAC;gBAC5D,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EACjC,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YAC1D,CAAC;YAED,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACvF,sFAAsF;YACtF,IAAI,SAA6B,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE,CAAC;gBACnF,oFAAoF;gBACpF,qFAAqF;gBACrF,kFAAkF;gBAClF,oFAAoF;gBACpF,mFAAmF;gBACnF,mFAAmF;gBACnF,SAAS,GAAG,MAAM,GAAG;qBACnB,KAAK,EAAE;qBACP,IAAI,EAAE;qBACN,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACzB,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;oBACjE,MAAM,CAAC,IAAI,CACV,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,0CAA0C,GAAG,CAAC,MAAM,wBAAwB,CACtG,CAAC;oBACF,MAAM,QAAQ,GAAG,cAAc,CAAC;oBAChC,cAAc,GAAG,SAAS,CAAC;oBAC3B,OAAO,OAAO,CAAC,eAAe,CAAC;oBAC/B,OAAO,OAAO,CAAC,aAAa,CAAC;oBAC7B,OAAO,OAAO,CAAC,QAAQ,CAAC;oBACxB,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;oBACnF,SAAS,GAAG,SAAS,CAAC;oBACtB,iFAAiF;oBACjF,4DAA4D;oBAC5D,IAAI,GAAG,CAAC,EAAE,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;wBAChC,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBACvD,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC3C,GAAG,EACH,MAAM,EACN,KAAK,EACL,OAAO,EACP,cAAc,EACd,SAAS,EACT,QAAQ,IAAI,IAAI,CAChB,CAAC;gBACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClB,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;oBACvC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;wBACzB,mFAAmF;wBACnF,qFAAqF;wBACrF,+EAA+E;wBAC/E,MAAM,CAAC,IAAI,CACV,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,0BAA0B,GAAG,CAAC,MAAM,gGAAgG,CAC9J,CAAC;wBACF,aAAa,GAAG,IAAI,CAAC;oBACtB,CAAC;oBACD,OAAO,EAAE,CAAC;oBACV,SAAS;gBACV,CAAC;YACF,CAAC;YAED,MAAM,IAAI,GAA2B,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;YAClF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5C,6FAA6F;YAC7F,iGAAiG;YACjG,iDAAiD;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,sFAAsF;YACtF,oFAAoF;YACpF,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1D,MAAM,IAAI,OAAO,CAChB,aAAa,CAAC,wBAAwB,EACtC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,qBAAqB,EAAE,CAAC,CAC1E,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,MAAM,GAA6B;gBACxC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE;gBACrB,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5C,KAAK,EAAE,KAAK;gBACZ,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7D,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxD,KAAK,EAAE;oBACN,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY;oBACnE,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,IAAI,IAAI,CAAC,KAAK,EAAE,aAAa;oBAC5E,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY;oBACrC,MAAM,EACL,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI;wBACtB,CAAC,CAAC;4BACA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;4BACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;4BAC1B,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC;yBAC3C;wBACF,CAAC,CAAC,SAAS;iBACb;gBACD,MAAM,EAAE,SAAS;aACjB,CAAC;YACF,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAED;;;;OAIG;IACO,mBAAmB,CAAC,QAA4C;QAIzE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;;mGAG+F;IACrF,sBAAsB,CAAC,KAAiB;QACjD,OAAO,KAAK,CAAC,yBAAyB,IAAI,IAAI,CAAC;IAChD,CAAC;IAED;;;;;;;;OAQG;IACO,gBAAgB,CAAC,MAAc,EAAE,OAA2B;QACrE,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE7C,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO,CACN,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACzB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAC3B,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC1B,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAC1B,CAAC;IACH,CAAC;IAED;;iFAE6E;IACnE,yBAAyB,CAAC,MAAc,EAAE,IAAY;QAC/D,OAAO,CACN,CAAC,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,+EAA+E;YAC/E,CAAC,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;IACH,CAAC;IAED;;;8EAG0E;IAChE,mBAAmB,CAC5B,OAA8B,EAC9B,MAAkB,EAClB,cAAgC;QAEhC,OAAO,CAAC,eAAe,GAAG;YACzB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE;gBACZ,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,cAAc,CAAC,MAAM;aAC7B;SACD,CAAC;IACH,CAAC;IAED,iGAAiG;IACjG,8EAA8E;IACpE,cAAc,CAAC,IAA4B;QACpD,OAAO,CACN,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;YACxD,EAAE,CACF,CAAC;IACH,CAAC;IAED;4FACwF;IAC9E,mBAAmB,CAAC,IAA4B;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACpB,4FAA4F;YAC5F,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC9C,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YACvD,IAAI,MAAM,CAAC,aAAa,KAAK,gBAAgB;gBAAE,OAAO,gBAAgB,CAAC;YACvE,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,yFAAyF;YACzF,kCAAkC;YAClC,KAAK,YAAY,CAAC;YAClB,KAAK,+BAA+B;gBACnC,OAAO,QAAQ,CAAC;YACjB,KAAK,SAAS;gBACb,OAAO,SAAS,CAAC;YAClB;gBACC,OAAO,SAAS,CAAC;QACnB,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACO,iBAAiB,CAAC,QAA4C;QACvE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,2FAA2F;gBAC3F,yFAAyF;gBACzF,4FAA4F;gBAC5F,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;gBAEtE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACzE,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBACnD,OAAO;oBACN,IAAI,EAAE,WAAW;oBACjB,oFAAoF;oBACpF,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;oBAC1B,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACjC,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;wBAC7D,mFAAmF;wBACnF,4DAA4D;wBAC5D,GAAG,CAAC,CAAC,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;qBACzF,CAAC,CAAC;iBACH,CAAC;YACH,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,8FAA8F;IACpF,cAAc,CAAC,KAAkC;QAC1D,OAAO;YACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE;aAChF,CAAC,CAAC;SACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACO,cAAc,CAAC,IAA4B;QACpD,MAAM,KAAK,GAAiB,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;YACjE,IAAI,IAAI,GAA4B,EAAE,CAAC;YACvC,IAAI,CAAC;gBACJ,+CAA+C;gBAC/C,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,CAAC;YAAC,MAAM,CAAC;gBACR,wFAAwF;gBACxF,4EAA4E;YAC7E,CAAC;YAED,KAAK,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,IAAI,EAAE,IAAI;gBACV,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAC/F,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI;gBAAE,SAAS;YAElF,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACzC,CAAC;IAES,KAAK,CAAC,kBAAkB,CACjC,GAAa,EACb,OAAgB,EAChB,KAAiB,EACjB,OAAe,EACf,cAAsB;IACtB,2FAA2F;IAC3F,IAAa,EACb,SAAmB;QAEnB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,IAAI,OAAO,CAChB,aAAa,CAAC,YAAY,EAC1B,IAAI,KAAK,CAAC,6DAA6D,KAAK,CAAC,EAAE,SAAS,CAAC,CACzF,CAAC;QACH,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,IAAI,OAAO,CAChB,aAAa,CAAC,wBAAwB,EACtC,IAAI,KAAK,CACR,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,2EAA2E,CACvG,CACD,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACJ,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE9C,CAAC;QACd,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACrD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,wBAAwB,CAAC,cAAc,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/F,CAAC;YAED,MAAM,IAAI,OAAO,CAChB,aAAa,CAAC,eAAe,EAC7B,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CACpF,CAAC;QACH,CAAC;QAED,uFAAuF;QACvF,8FAA8F;QAC9F,oBAAoB;QACpB,IAAI,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,CAAC;IAES,KAAK,CAAC,SAAS,CACxB,MAAe,EACf,KAAiB,EACjB,MAAc,EACd,OAAe,EACf,MAA+B,EAC/B,cAAuB;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAErC,yFAAyF;QACzF,mGAAmG;QACnG,iGAAiG;QACjG,oDAAoD;QACpD,MAAM,CAAC,KAAK,CACX,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,aAAa,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACpF,IAAI,EAAE;aACN,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CACnC,CAAC;QAEF,IAAI,CAAC;YACJ,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACpC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC;gBAC1E,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,MAAM;aACd,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACb,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY;gBAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC9D,MAAM,EAAE,CAAC;QACV,CAAC;IACF,CAAC;CACD"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { openRouterProviderDescriptor as provider } from '../constants.js';
|
|
2
2
|
import type { AIActionType, AIModel } from '../models/model.js';
|
|
3
|
+
import type { AIResponseFormat } from '../models/provider.js';
|
|
4
|
+
import type { ChatCompletionRequest } from './openAICompatibleProviderBase.js';
|
|
3
5
|
import { OpenAICompatibleProviderBase } from './openAICompatibleProviderBase.js';
|
|
4
6
|
export declare class OpenRouterProvider extends OpenAICompatibleProviderBase<typeof provider.id> {
|
|
5
7
|
readonly id: "openrouter";
|
|
6
8
|
readonly name: string;
|
|
9
|
+
readonly supportsTools = true;
|
|
7
10
|
protected readonly descriptor: import("../models/model.js").AIProviderDescriptor<"openrouter">;
|
|
8
11
|
protected readonly config: {
|
|
9
12
|
keyUrl: string;
|
|
10
13
|
keyValidator: RegExp;
|
|
11
14
|
};
|
|
12
15
|
getModels(): Promise<readonly AIModel<typeof provider.id>[]>;
|
|
16
|
+
protected applyResponseFormat(request: ChatCompletionRequest, model: AIModel<typeof provider.id>, responseFormat: AIResponseFormat): void;
|
|
13
17
|
protected getUrl(_model: AIModel<typeof provider.id>): string;
|
|
14
18
|
protected getHeaders<TAction extends AIActionType>(_action: TAction, apiKey: string, _model: AIModel<typeof provider.id>, _url: string): Record<string, string>;
|
|
15
19
|
private getHeadersCore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openRouterProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openRouterProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAIjF,qBAAa,kBAAmB,SAAQ,4BAA4B,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;IACvF,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,SAAiB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,kEAAY;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACxB,MAAM;QACN,YAAY;MACX;IAEI,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"openRouterProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openRouterProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAIjF,qBAAa,kBAAmB,SAAQ,4BAA4B,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;IACvF,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,SAAiB;IAC9B,QAAQ,CAAC,aAAa,QAAQ;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,kEAAY;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACxB,MAAM;QACN,YAAY;MACX;IAEI,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CA8CjE;IAED,UAAmB,mBAAmB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAClC,cAAc,EAAE,gBAAgB,GAC9B,IAAI,CAKN;IAED,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAE5D;IAED,UAAmB,UAAU,CAAC,OAAO,SAAS,YAAY,EACzD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;IAED,OAAO,CAAC,cAAc;CAStB"}
|
|
@@ -4,6 +4,7 @@ import { OpenAICompatibleProviderBase } from './openAICompatibleProviderBase.js'
|
|
|
4
4
|
export class OpenRouterProvider extends OpenAICompatibleProviderBase {
|
|
5
5
|
id = provider.id;
|
|
6
6
|
name = provider.name;
|
|
7
|
+
supportsTools = true;
|
|
7
8
|
descriptor = provider;
|
|
8
9
|
config = {
|
|
9
10
|
keyUrl: 'https://openrouter.ai/keys',
|
|
@@ -36,8 +37,16 @@ export class OpenRouterProvider extends OpenAICompatibleProviderBase {
|
|
|
36
37
|
},
|
|
37
38
|
provider: provider,
|
|
38
39
|
temperature: null,
|
|
40
|
+
// OpenRouter hard-errors when `response_format` reaches a model that doesn't advertise support
|
|
41
|
+
supportsStructuredOutputs: m.supported_parameters?.includes('structured_outputs') ?? false,
|
|
39
42
|
}));
|
|
40
43
|
}
|
|
44
|
+
applyResponseFormat(request, model, responseFormat) {
|
|
45
|
+
super.applyResponseFormat(request, model, responseFormat);
|
|
46
|
+
// `supported_parameters` is a union across the providers serving a model — restrict routing
|
|
47
|
+
// to providers that actually support every parameter sent
|
|
48
|
+
request.provider = { require_parameters: true };
|
|
49
|
+
}
|
|
41
50
|
getUrl(_model) {
|
|
42
51
|
return 'https://openrouter.ai/api/v1/chat/completions';
|
|
43
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openRouterProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openRouterProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,4BAA4B,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"openRouterProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openRouterProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,4BAA4B,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAIjF,MAAM,OAAO,kBAAmB,SAAQ,4BAAgD;IAC9E,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACjB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrB,aAAa,GAAG,IAAI,CAAC;IACX,UAAU,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG;QAC3B,MAAM,EAAE,4BAA4B;QACpC,YAAY,EAAE,oBAAoB;KAClC,CAAC;IAEF,KAAK,CAAC,SAAS;QACd,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACJ,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACb,IAAI,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEvC,MAAM,EAAE,CAAC;QACV,CAAC;QAED,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,qCAAqC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,aAAa,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;QACtF,CAAC;QAcD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;QACrD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CACtB,CAAC,CAAC,EAAE,CACH,CAAC;YACA,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE;gBACV,KAAK,EAAE,CAAC,CAAC,cAAc;gBACvB,MAAM,EAAE,CAAC,CAAC,YAAY,EAAE,qBAAqB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;aACjF;YACD,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,IAAI;YACjB,+FAA+F;YAC/F,yBAAyB,EAAE,CAAC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK;SAC1F,CAA2B,CAC7B,CAAC;IACH,CAAC;IAEkB,mBAAmB,CACrC,OAA8B,EAC9B,KAAkC,EAClC,cAAgC;QAEhC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,4FAA4F;QAC5F,0DAA0D;QAC1D,OAAO,CAAC,QAAQ,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAES,MAAM,CAAC,MAAmC;QACnD,OAAO,+CAA+C,CAAC;IACxD,CAAC;IAEkB,UAAU,CAC5B,OAAgB,EAChB,MAAc,EACd,MAAmC,EACnC,IAAY;QAEZ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEO,cAAc,CAAC,MAAc;QACpC,OAAO;YACN,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,wBAAwB;YACxC,SAAS,EAAE,WAAW;YACtB,aAAa,EAAE,UAAU,MAAM,EAAE;SACjC,CAAC;IACH,CAAC;CACD"}
|
|
@@ -4,6 +4,7 @@ import { OpenAICompatibleProviderBase } from './openAICompatibleProviderBase.js'
|
|
|
4
4
|
export declare class OpenAIProvider extends OpenAICompatibleProviderBase<typeof provider.id> {
|
|
5
5
|
readonly id: "openai";
|
|
6
6
|
readonly name: string;
|
|
7
|
+
readonly supportsTools = true;
|
|
7
8
|
protected readonly descriptor: import("../models/model.js").AIProviderDescriptor<"openai">;
|
|
8
9
|
protected readonly config: {
|
|
9
10
|
keyUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAKjF,qBAAa,cAAe,SAAQ,4BAA4B,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;IACnF,QAAQ,CAAC,EAAE,WAAe;IAC1B,QAAQ,CAAC,IAAI,SAAiB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,8DAAY;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACxB,MAAM;QACN,YAAY;MACX;IAEF,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAE3D;IAED,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAKxE;IAED,UAAmB,UAAU,CAAC,OAAO,SAAS,YAAY,EACzD,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAClC,GAAG,EAAE,MAAM,GACT,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAU1D;CACD"}
|
|
1
|
+
{"version":3,"file":"openaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAKjF,qBAAa,cAAe,SAAQ,4BAA4B,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;IACnF,QAAQ,CAAC,EAAE,WAAe;IAC1B,QAAQ,CAAC,IAAI,SAAiB;IAC9B,QAAQ,CAAC,aAAa,QAAQ;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,8DAAY;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACxB,MAAM;QACN,YAAY;MACX;IAEF,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAE3D;IAED,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAKxE;IAED,UAAmB,UAAU,CAAC,OAAO,SAAS,YAAY,EACzD,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAClC,GAAG,EAAE,MAAM,GACT,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAU1D;CACD"}
|
|
@@ -6,6 +6,7 @@ const models = openAIModels(provider);
|
|
|
6
6
|
export class OpenAIProvider extends OpenAICompatibleProviderBase {
|
|
7
7
|
id = provider.id;
|
|
8
8
|
name = provider.name;
|
|
9
|
+
supportsTools = true;
|
|
9
10
|
descriptor = provider;
|
|
10
11
|
config = {
|
|
11
12
|
keyUrl: 'https://platform.openai.com/account/api-keys',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGjF,MAAM,MAAM,GAAkB,YAAY,CAAC,QAAQ,CAAC,CAAC;AAErD,MAAM,OAAO,cAAe,SAAQ,4BAAgD;IAC1E,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACjB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACX,UAAU,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG;QAC3B,MAAM,EAAE,8CAA8C;QACtD,YAAY,EAAE,0BAA0B;KACxC,CAAC;IAEF,SAAS;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,MAAM,CAAC,MAAmC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAEnC,OAAO,GAAG,CAAC,GAAG,IAAI,4CAA4C,CAAC;IAChE,CAAC;IAEkB,UAAU,CAC5B,MAAe,EACf,MAAc,EACd,KAAkC,EAClC,GAAW;QAEX,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO;gBACN,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,MAAM;aACjB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"openaiProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGjF,MAAM,MAAM,GAAkB,YAAY,CAAC,QAAQ,CAAC,CAAC;AAErD,MAAM,OAAO,cAAe,SAAQ,4BAAgD;IAC1E,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACjB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrB,aAAa,GAAG,IAAI,CAAC;IACX,UAAU,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG;QAC3B,MAAM,EAAE,8CAA8C;QACtD,YAAY,EAAE,0BAA0B;KACxC,CAAC;IAEF,SAAS;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,MAAM,CAAC,MAAmC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAEnC,OAAO,GAAG,CAAC,GAAG,IAAI,4CAA4C,CAAC;IAChE,CAAC;IAEkB,UAAU,CAC5B,MAAe,EACf,MAAc,EACd,KAAkC,EAClC,GAAW;QAEX,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO;gBACN,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,MAAM;aACjB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;CACD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AIModel } from '../models/model.js';
|
|
2
|
+
import type { AIResponseFormat } from '../models/provider.js';
|
|
3
|
+
export declare function isResponseFormatRejected(providerId: string, model: AIModel, responseFormat: AIResponseFormat): boolean;
|
|
4
|
+
export declare function rememberResponseFormatRejection(providerId: string, model: AIModel, responseFormat: AIResponseFormat): void;
|
|
5
|
+
/** Drops the remembered rejections; shares the provider model-list cache's lifetime, so a
|
|
6
|
+
* misclassified rejection can't outlive the capability data it was inferred from */
|
|
7
|
+
export declare function clearResponseFormatRejections(): void;
|
|
8
|
+
//# sourceMappingURL=responseFormatCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseFormatCache.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/responseFormatCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAiB9D,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,gBAAgB,GAC9B,OAAO,CAET;AAED,wBAAgB,+BAA+B,CAC9C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,gBAAgB,GAC9B,IAAI,CAEN;AAED;qFACqF;AACrF,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `providerId:modelId:schemaName` keys whose native format was rejected. Module-scoped because the
|
|
3
|
+
* service constructs a fresh provider instance per request, so instance state wouldn't survive to
|
|
4
|
+
* skip the doomed probe. Keyed per schema: e.g. GitKraken-Gemini rejects the null-union review
|
|
5
|
+
* schemas but happily enforces the commits schema on the same model.
|
|
6
|
+
*
|
|
7
|
+
* Lives in its own (dependency-free) module so the AI service can clear it without statically
|
|
8
|
+
* importing a provider implementation — every provider is loaded lazily into the `ai` chunk.
|
|
9
|
+
*/
|
|
10
|
+
const rejectedResponseFormats = new Set();
|
|
11
|
+
function getKey(providerId, model, responseFormat) {
|
|
12
|
+
return `${providerId}:${model.id}:${responseFormat.name}`;
|
|
13
|
+
}
|
|
14
|
+
export function isResponseFormatRejected(providerId, model, responseFormat) {
|
|
15
|
+
return rejectedResponseFormats.has(getKey(providerId, model, responseFormat));
|
|
16
|
+
}
|
|
17
|
+
export function rememberResponseFormatRejection(providerId, model, responseFormat) {
|
|
18
|
+
rejectedResponseFormats.add(getKey(providerId, model, responseFormat));
|
|
19
|
+
}
|
|
20
|
+
/** Drops the remembered rejections; shares the provider model-list cache's lifetime, so a
|
|
21
|
+
* misclassified rejection can't outlive the capability data it was inferred from */
|
|
22
|
+
export function clearResponseFormatRejections() {
|
|
23
|
+
rejectedResponseFormats.clear();
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=responseFormatCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseFormatCache.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/responseFormatCache.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;AAElD,SAAS,MAAM,CAAC,UAAkB,EAAE,KAAc,EAAE,cAAgC;IACnF,OAAO,GAAG,UAAU,IAAI,KAAK,CAAC,EAAE,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,UAAkB,EAClB,KAAc,EACd,cAAgC;IAEhC,OAAO,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC9C,UAAkB,EAClB,KAAc,EACd,cAAgC;IAEhC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;qFACqF;AACrF,MAAM,UAAU,6BAA6B;IAC5C,uBAAuB,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { OpenAICompatibleProviderBase } from './openAICompatibleProviderBase.js'
|
|
|
4
4
|
export declare class XAIProvider extends OpenAICompatibleProviderBase<typeof provider.id> {
|
|
5
5
|
readonly id: "xai";
|
|
6
6
|
readonly name: string;
|
|
7
|
+
readonly supportsTools = true;
|
|
7
8
|
protected readonly descriptor: import("../models/model.js").AIProviderDescriptor<"xai">;
|
|
8
9
|
protected readonly config: {
|
|
9
10
|
keyUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/xaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"xaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/xaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAkCjF,qBAAa,WAAY,SAAQ,4BAA4B,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;IAChF,QAAQ,CAAC,EAAE,QAAe;IAC1B,QAAQ,CAAC,IAAI,SAAiB;IAC9B,QAAQ,CAAC,aAAa,QAAQ;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,2DAAY;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACxB,MAAM;QACN,YAAY;MACX;IAEF,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAE3D;IAED,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAE5D;CACD"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { xAIProviderDescriptor as provider } from '../constants.js';
|
|
2
2
|
import { OpenAICompatibleProviderBase } from './openAICompatibleProviderBase.js';
|
|
3
3
|
const models = [
|
|
4
|
+
{
|
|
5
|
+
id: 'grok-4.6',
|
|
6
|
+
name: 'Grok 4.6',
|
|
7
|
+
maxTokens: { input: 500000, output: 65536 }, // xAI publishes no output cap; mirrors Grok 4.5 to bound cost
|
|
8
|
+
provider: provider,
|
|
9
|
+
},
|
|
4
10
|
{
|
|
5
11
|
id: 'grok-4.5',
|
|
6
12
|
name: 'Grok 4.5',
|
|
@@ -10,7 +16,7 @@ const models = [
|
|
|
10
16
|
{
|
|
11
17
|
id: 'grok-4.3',
|
|
12
18
|
name: 'Grok 4.3',
|
|
13
|
-
maxTokens: { input:
|
|
19
|
+
maxTokens: { input: 1000000, output: 65536 },
|
|
14
20
|
provider: provider,
|
|
15
21
|
default: true,
|
|
16
22
|
},
|
|
@@ -20,11 +26,14 @@ const models = [
|
|
|
20
26
|
maxTokens: { input: 131072, output: 4096 },
|
|
21
27
|
provider: provider,
|
|
22
28
|
hidden: true,
|
|
29
|
+
// Structured outputs require grok-2-1212 or newer; grok-beta predates that floor
|
|
30
|
+
supportsStructuredOutputs: false,
|
|
23
31
|
},
|
|
24
32
|
];
|
|
25
33
|
export class XAIProvider extends OpenAICompatibleProviderBase {
|
|
26
34
|
id = provider.id;
|
|
27
35
|
name = provider.name;
|
|
36
|
+
supportsTools = true;
|
|
28
37
|
descriptor = provider;
|
|
29
38
|
config = {
|
|
30
39
|
keyUrl: 'https://console.x.ai/',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xaiProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/xaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGjF,MAAM,MAAM,GAAe;IAC1B;QACC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAC3C,QAAQ,EAAE,QAAQ;KAClB;IACD;QACC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC5C,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,IAAI;KACb;IACD;QACC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAC1C,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"xaiProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/xaiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGjF,MAAM,MAAM,GAAe;IAC1B;QACC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,8DAA8D;QAC3G,QAAQ,EAAE,QAAQ;KAClB;IACD;QACC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAC3C,QAAQ,EAAE,QAAQ;KAClB;IACD;QACC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC5C,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,IAAI;KACb;IACD;QACC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAC1C,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,IAAI;QACZ,iFAAiF;QACjF,yBAAyB,EAAE,KAAK;KAChC;CACD,CAAC;AAEF,MAAM,OAAO,WAAY,SAAQ,4BAAgD;IACvE,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACjB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrB,aAAa,GAAG,IAAI,CAAC;IACX,UAAU,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG;QAC3B,MAAM,EAAE,uBAAuB;QAC/B,YAAY,EAAE,2BAA2B;KACzC,CAAC;IAEF,SAAS;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,MAAM,CAAC,MAAmC;QACnD,OAAO,sCAAsC,CAAC;IAC/C,CAAC;CACD"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { AIActionType, AIModel } from '../models/model.js';
|
|
2
|
+
import type { AIFinishReason } from '../models/provider.js';
|
|
3
|
+
/** Whether the model declined to fulfill the request (refused or content-filtered) */
|
|
4
|
+
export declare function didModelDecline(finishReason: AIFinishReason | undefined): boolean;
|
|
2
5
|
export declare function getActionName(action: AIActionType): string;
|
|
3
6
|
export declare const estimatedCharactersPerToken = 2.8;
|
|
4
7
|
export declare function getValidatedTemperature(model: AIModel, modelTemperature?: number | null, defaultTemperature?: number): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.utils.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/utils/ai.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ai.utils.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/utils/ai.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,YAAY,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAEjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAuB1D;AAED,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,OAAO,EACd,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,EAChC,kBAAkB,CAAC,EAAE,MAAM,GACzB,MAAM,GAAG,SAAS,CAepB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAuBrH"}
|