@xortex/xcode 3.0.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 +21 -0
- package/README.md +171 -0
- package/bin/xcode +127 -0
- package/bin/xcode-test +84 -0
- package/bin/xcode.cmd +31 -0
- package/constants/apiLimits.ts +94 -0
- package/constants/betas.ts +52 -0
- package/constants/common.ts +33 -0
- package/constants/cyberRiskInstruction.ts +24 -0
- package/constants/errorIds.ts +15 -0
- package/constants/figures.ts +45 -0
- package/constants/files.ts +156 -0
- package/constants/github-app.ts +144 -0
- package/constants/keys.ts +11 -0
- package/constants/messages.ts +1 -0
- package/constants/oauth.ts +234 -0
- package/constants/outputStyles.ts +216 -0
- package/constants/product.ts +76 -0
- package/constants/prompts.ts +939 -0
- package/constants/spinnerVerbs.ts +204 -0
- package/constants/system.ts +95 -0
- package/constants/systemPromptSections.ts +68 -0
- package/constants/toolLimits.ts +56 -0
- package/constants/tools.ts +112 -0
- package/constants/turnCompletionVerbs.ts +12 -0
- package/constants/xml.ts +86 -0
- package/entrypoints/agentSdkTypes.ts +443 -0
- package/entrypoints/cli.tsx +307 -0
- package/entrypoints/init.ts +340 -0
- package/entrypoints/mcp.ts +196 -0
- package/entrypoints/sandboxTypes.ts +156 -0
- package/entrypoints/sdk/controlSchemas.ts +663 -0
- package/entrypoints/sdk/coreSchemas.ts +1889 -0
- package/entrypoints/sdk/coreTypes.generated.ts +2 -0
- package/entrypoints/sdk/coreTypes.ts +62 -0
- package/entrypoints/sdk/runtimeTypes.ts +140 -0
- package/entrypoints/sdk/sdkUtilityTypes.ts +3 -0
- package/entrypoints/sdk/toolTypes.ts +90 -0
- package/main.tsx +4686 -0
- package/package.json +120 -0
- package/services/AgentSummary/agentSummary.ts +179 -0
- package/services/MagicDocs/magicDocs.ts +254 -0
- package/services/MagicDocs/prompts.ts +127 -0
- package/services/PromptSuggestion/promptSuggestion.ts +523 -0
- package/services/PromptSuggestion/speculation.ts +991 -0
- package/services/SessionMemory/prompts.ts +324 -0
- package/services/SessionMemory/sessionMemory.ts +495 -0
- package/services/SessionMemory/sessionMemoryUtils.ts +207 -0
- package/services/analytics/config.ts +38 -0
- package/services/analytics/datadog.ts +307 -0
- package/services/analytics/firstPartyEventLogger.ts +449 -0
- package/services/analytics/firstPartyEventLoggingExporter.ts +806 -0
- package/services/analytics/growthbook.ts +1155 -0
- package/services/analytics/index.ts +173 -0
- package/services/analytics/metadata.ts +973 -0
- package/services/analytics/sink.ts +114 -0
- package/services/analytics/sinkKillswitch.ts +25 -0
- package/services/api/adminRequests.ts +119 -0
- package/services/api/bootstrap.ts +141 -0
- package/services/api/claude.ts +3422 -0
- package/services/api/client.ts +406 -0
- package/services/api/dumpPrompts.ts +226 -0
- package/services/api/emptyUsage.ts +22 -0
- package/services/api/errorUtils.ts +260 -0
- package/services/api/errors.ts +1207 -0
- package/services/api/filesApi.ts +748 -0
- package/services/api/firstTokenDate.ts +60 -0
- package/services/api/gemini.ts +359 -0
- package/services/api/geminiAdapter.ts +123 -0
- package/services/api/geminiClient.ts +291 -0
- package/services/api/grove.ts +357 -0
- package/services/api/logging.ts +788 -0
- package/services/api/metricsOptOut.ts +159 -0
- package/services/api/openRouterClient.ts +453 -0
- package/services/api/overageCreditGrant.ts +137 -0
- package/services/api/promptCacheBreakDetection.ts +727 -0
- package/services/api/referral.ts +281 -0
- package/services/api/sessionIngress.ts +514 -0
- package/services/api/ultrareviewQuota.ts +38 -0
- package/services/api/usage.ts +63 -0
- package/services/api/withRetry.ts +822 -0
- package/services/autoDream/autoDream.ts +324 -0
- package/services/autoDream/config.ts +21 -0
- package/services/autoDream/consolidationLock.ts +140 -0
- package/services/autoDream/consolidationPrompt.ts +65 -0
- package/services/awaySummary.ts +74 -0
- package/services/claudeAiLimits.ts +515 -0
- package/services/claudeAiLimitsHook.ts +23 -0
- package/services/compact/apiMicrocompact.ts +153 -0
- package/services/compact/autoCompact.ts +351 -0
- package/services/compact/compact.ts +1705 -0
- package/services/compact/compactWarningHook.ts +16 -0
- package/services/compact/compactWarningState.ts +18 -0
- package/services/compact/grouping.ts +63 -0
- package/services/compact/microCompact.ts +530 -0
- package/services/compact/postCompactCleanup.ts +77 -0
- package/services/compact/prompt.ts +374 -0
- package/services/compact/sessionMemoryCompact.ts +630 -0
- package/services/compact/timeBasedMCConfig.ts +43 -0
- package/services/diagnosticTracking.ts +397 -0
- package/services/extractMemories/extractMemories.ts +517 -0
- package/services/extractMemories/prompts.ts +154 -0
- package/services/internalLogging.ts +90 -0
- package/services/lsp/LSPClient.ts +447 -0
- package/services/lsp/LSPDiagnosticRegistry.ts +386 -0
- package/services/lsp/LSPServerInstance.ts +511 -0
- package/services/lsp/LSPServerManager.ts +420 -0
- package/services/lsp/config.ts +79 -0
- package/services/lsp/manager.ts +289 -0
- package/services/lsp/passiveFeedback.ts +328 -0
- package/services/mcp/InProcessTransport.ts +63 -0
- package/services/mcp/MCPConnectionManager.tsx +73 -0
- package/services/mcp/SdkControlTransport.ts +136 -0
- package/services/mcp/auth.ts +2465 -0
- package/services/mcp/channelAllowlist.ts +76 -0
- package/services/mcp/channelNotification.ts +316 -0
- package/services/mcp/channelPermissions.ts +240 -0
- package/services/mcp/claudeai.ts +164 -0
- package/services/mcp/client.ts +3348 -0
- package/services/mcp/config.ts +1578 -0
- package/services/mcp/elicitationHandler.ts +313 -0
- package/services/mcp/envExpansion.ts +38 -0
- package/services/mcp/headersHelper.ts +138 -0
- package/services/mcp/mcpStringUtils.ts +106 -0
- package/services/mcp/normalization.ts +23 -0
- package/services/mcp/oauthPort.ts +78 -0
- package/services/mcp/officialRegistry.ts +72 -0
- package/services/mcp/types.ts +258 -0
- package/services/mcp/useManageMCPConnections.ts +1141 -0
- package/services/mcp/utils.ts +575 -0
- package/services/mcp/vscodeSdkMcp.ts +112 -0
- package/services/mcp/xaa.ts +511 -0
- package/services/mcp/xaaIdpLogin.ts +487 -0
- package/services/mcpServerApproval.tsx +41 -0
- package/services/mockRateLimits.ts +882 -0
- package/services/notifier.ts +156 -0
- package/services/oauth/auth-code-listener.ts +211 -0
- package/services/oauth/client.ts +566 -0
- package/services/oauth/crypto.ts +23 -0
- package/services/oauth/getOauthProfile.ts +53 -0
- package/services/oauth/index.ts +198 -0
- package/services/plugins/PluginInstallationManager.ts +184 -0
- package/services/plugins/pluginCliCommands.ts +344 -0
- package/services/plugins/pluginOperations.ts +1088 -0
- package/services/policyLimits/index.ts +663 -0
- package/services/policyLimits/types.ts +27 -0
- package/services/preventSleep.ts +165 -0
- package/services/rateLimitMessages.ts +344 -0
- package/services/rateLimitMocking.ts +144 -0
- package/services/remoteManagedSettings/index.ts +638 -0
- package/services/remoteManagedSettings/securityCheck.tsx +74 -0
- package/services/remoteManagedSettings/syncCache.ts +112 -0
- package/services/remoteManagedSettings/syncCacheState.ts +96 -0
- package/services/remoteManagedSettings/types.ts +31 -0
- package/services/settingsSync/index.ts +581 -0
- package/services/settingsSync/types.ts +67 -0
- package/services/teamMemorySync/index.ts +1256 -0
- package/services/teamMemorySync/secretScanner.ts +324 -0
- package/services/teamMemorySync/teamMemSecretGuard.ts +44 -0
- package/services/teamMemorySync/types.ts +156 -0
- package/services/teamMemorySync/watcher.ts +387 -0
- package/services/tips/tipHistory.ts +17 -0
- package/services/tips/tipRegistry.ts +686 -0
- package/services/tips/tipScheduler.ts +58 -0
- package/services/tokenEstimation.ts +495 -0
- package/services/toolUseSummary/toolUseSummaryGenerator.ts +112 -0
- package/services/tools/StreamingToolExecutor.ts +530 -0
- package/services/tools/toolExecution.ts +1745 -0
- package/services/tools/toolHooks.ts +650 -0
- package/services/tools/toolOrchestration.ts +188 -0
- package/services/vcr.ts +406 -0
- package/services/voice.ts +525 -0
- package/services/voiceKeyterms.ts +106 -0
- package/services/voiceStreamSTT.ts +544 -0
- package/tools/AgentTool/AgentTool.tsx +1398 -0
- package/tools/AgentTool/UI.tsx +872 -0
- package/tools/AgentTool/agentColorManager.ts +66 -0
- package/tools/AgentTool/agentDisplay.ts +104 -0
- package/tools/AgentTool/agentMemory.ts +177 -0
- package/tools/AgentTool/agentMemorySnapshot.ts +197 -0
- package/tools/AgentTool/agentToolUtils.ts +686 -0
- package/tools/AgentTool/built-in/claudeCodeGuideAgent.ts +205 -0
- package/tools/AgentTool/built-in/exploreAgent.ts +83 -0
- package/tools/AgentTool/built-in/generalPurposeAgent.ts +34 -0
- package/tools/AgentTool/built-in/planAgent.ts +92 -0
- package/tools/AgentTool/built-in/statuslineSetup.ts +144 -0
- package/tools/AgentTool/built-in/verificationAgent.ts +152 -0
- package/tools/AgentTool/builtInAgents.ts +72 -0
- package/tools/AgentTool/constants.ts +12 -0
- package/tools/AgentTool/forkSubagent.ts +210 -0
- package/tools/AgentTool/loadAgentsDir.ts +755 -0
- package/tools/AgentTool/prompt.ts +287 -0
- package/tools/AgentTool/resumeAgent.ts +265 -0
- package/tools/AgentTool/runAgent.ts +973 -0
- package/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +266 -0
- package/tools/AskUserQuestionTool/prompt.ts +44 -0
- package/tools/BashTool/BashTool.tsx +1144 -0
- package/tools/BashTool/BashToolResultMessage.tsx +191 -0
- package/tools/BashTool/UI.tsx +185 -0
- package/tools/BashTool/bashCommandHelpers.ts +265 -0
- package/tools/BashTool/bashPermissions.ts +2621 -0
- package/tools/BashTool/bashSecurity.ts +2592 -0
- package/tools/BashTool/commandSemantics.ts +140 -0
- package/tools/BashTool/commentLabel.ts +13 -0
- package/tools/BashTool/destructiveCommandWarning.ts +102 -0
- package/tools/BashTool/modeValidation.ts +115 -0
- package/tools/BashTool/pathValidation.ts +1303 -0
- package/tools/BashTool/prompt.ts +369 -0
- package/tools/BashTool/readOnlyValidation.ts +1990 -0
- package/tools/BashTool/sedEditParser.ts +322 -0
- package/tools/BashTool/sedValidation.ts +684 -0
- package/tools/BashTool/shouldUseSandbox.ts +153 -0
- package/tools/BashTool/toolName.ts +2 -0
- package/tools/BashTool/utils.ts +223 -0
- package/tools/BriefTool/BriefTool.ts +204 -0
- package/tools/BriefTool/UI.tsx +101 -0
- package/tools/BriefTool/attachments.ts +110 -0
- package/tools/BriefTool/prompt.ts +22 -0
- package/tools/BriefTool/upload.ts +174 -0
- package/tools/ConfigTool/ConfigTool.ts +467 -0
- package/tools/ConfigTool/UI.tsx +38 -0
- package/tools/ConfigTool/constants.ts +1 -0
- package/tools/ConfigTool/prompt.ts +93 -0
- package/tools/ConfigTool/supportedSettings.ts +211 -0
- package/tools/EnterPlanModeTool/EnterPlanModeTool.ts +126 -0
- package/tools/EnterPlanModeTool/UI.tsx +33 -0
- package/tools/EnterPlanModeTool/constants.ts +1 -0
- package/tools/EnterPlanModeTool/prompt.ts +170 -0
- package/tools/EnterWorktreeTool/EnterWorktreeTool.ts +127 -0
- package/tools/EnterWorktreeTool/UI.tsx +20 -0
- package/tools/EnterWorktreeTool/constants.ts +1 -0
- package/tools/EnterWorktreeTool/prompt.ts +30 -0
- package/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts +493 -0
- package/tools/ExitPlanModeTool/UI.tsx +82 -0
- package/tools/ExitPlanModeTool/constants.ts +2 -0
- package/tools/ExitPlanModeTool/prompt.ts +29 -0
- package/tools/ExitWorktreeTool/ExitWorktreeTool.ts +329 -0
- package/tools/ExitWorktreeTool/UI.tsx +25 -0
- package/tools/ExitWorktreeTool/constants.ts +1 -0
- package/tools/ExitWorktreeTool/prompt.ts +32 -0
- package/tools/FileEditTool/FileEditTool.ts +625 -0
- package/tools/FileEditTool/UI.tsx +289 -0
- package/tools/FileEditTool/constants.ts +11 -0
- package/tools/FileEditTool/prompt.ts +28 -0
- package/tools/FileEditTool/types.ts +85 -0
- package/tools/FileEditTool/utils.ts +775 -0
- package/tools/FileReadTool/FileReadTool.ts +1183 -0
- package/tools/FileReadTool/UI.tsx +185 -0
- package/tools/FileReadTool/imageProcessor.ts +94 -0
- package/tools/FileReadTool/limits.ts +92 -0
- package/tools/FileReadTool/prompt.ts +49 -0
- package/tools/FileWriteTool/FileWriteTool.ts +434 -0
- package/tools/FileWriteTool/UI.tsx +405 -0
- package/tools/FileWriteTool/prompt.ts +18 -0
- package/tools/GlobTool/GlobTool.ts +198 -0
- package/tools/GlobTool/UI.tsx +63 -0
- package/tools/GlobTool/prompt.ts +7 -0
- package/tools/GrepTool/GrepTool.ts +577 -0
- package/tools/GrepTool/UI.tsx +201 -0
- package/tools/GrepTool/prompt.ts +18 -0
- package/tools/LSPTool/LSPTool.ts +860 -0
- package/tools/LSPTool/UI.tsx +228 -0
- package/tools/LSPTool/formatters.ts +592 -0
- package/tools/LSPTool/prompt.ts +21 -0
- package/tools/LSPTool/schemas.ts +215 -0
- package/tools/LSPTool/symbolContext.ts +90 -0
- package/tools/ListMcpResourcesTool/ListMcpResourcesTool.ts +123 -0
- package/tools/ListMcpResourcesTool/UI.tsx +29 -0
- package/tools/ListMcpResourcesTool/prompt.ts +20 -0
- package/tools/MCPTool/MCPTool.ts +77 -0
- package/tools/MCPTool/UI.tsx +403 -0
- package/tools/MCPTool/classifyForCollapse.ts +604 -0
- package/tools/MCPTool/prompt.ts +3 -0
- package/tools/McpAuthTool/McpAuthTool.ts +215 -0
- package/tools/NotebookEditTool/NotebookEditTool.ts +490 -0
- package/tools/NotebookEditTool/UI.tsx +93 -0
- package/tools/NotebookEditTool/constants.ts +2 -0
- package/tools/NotebookEditTool/prompt.ts +3 -0
- package/tools/PowerShellTool/PowerShellTool.tsx +1001 -0
- package/tools/PowerShellTool/UI.tsx +131 -0
- package/tools/PowerShellTool/clmTypes.ts +211 -0
- package/tools/PowerShellTool/commandSemantics.ts +142 -0
- package/tools/PowerShellTool/commonParameters.ts +30 -0
- package/tools/PowerShellTool/destructiveCommandWarning.ts +109 -0
- package/tools/PowerShellTool/gitSafety.ts +176 -0
- package/tools/PowerShellTool/modeValidation.ts +404 -0
- package/tools/PowerShellTool/pathValidation.ts +2049 -0
- package/tools/PowerShellTool/powershellPermissions.ts +1648 -0
- package/tools/PowerShellTool/powershellSecurity.ts +1090 -0
- package/tools/PowerShellTool/prompt.ts +145 -0
- package/tools/PowerShellTool/readOnlyValidation.ts +1823 -0
- package/tools/PowerShellTool/toolName.ts +2 -0
- package/tools/REPLTool/constants.ts +46 -0
- package/tools/REPLTool/primitiveTools.ts +39 -0
- package/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts +158 -0
- package/tools/ReadMcpResourceTool/UI.tsx +37 -0
- package/tools/ReadMcpResourceTool/prompt.ts +16 -0
- package/tools/RemoteTriggerTool/RemoteTriggerTool.ts +161 -0
- package/tools/RemoteTriggerTool/UI.tsx +17 -0
- package/tools/RemoteTriggerTool/prompt.ts +15 -0
- package/tools/ScheduleCronTool/CronCreateTool.ts +157 -0
- package/tools/ScheduleCronTool/CronDeleteTool.ts +95 -0
- package/tools/ScheduleCronTool/CronListTool.ts +97 -0
- package/tools/ScheduleCronTool/UI.tsx +60 -0
- package/tools/ScheduleCronTool/prompt.ts +135 -0
- package/tools/SendMessageTool/SendMessageTool.ts +917 -0
- package/tools/SendMessageTool/UI.tsx +31 -0
- package/tools/SendMessageTool/constants.ts +1 -0
- package/tools/SendMessageTool/prompt.ts +49 -0
- package/tools/SkillTool/SkillTool.ts +1108 -0
- package/tools/SkillTool/UI.tsx +128 -0
- package/tools/SkillTool/constants.ts +1 -0
- package/tools/SkillTool/prompt.ts +241 -0
- package/tools/SleepTool/prompt.ts +17 -0
- package/tools/SyntheticOutputTool/SyntheticOutputTool.ts +163 -0
- package/tools/TaskCreateTool/TaskCreateTool.ts +138 -0
- package/tools/TaskCreateTool/constants.ts +1 -0
- package/tools/TaskCreateTool/prompt.ts +56 -0
- package/tools/TaskGetTool/TaskGetTool.ts +128 -0
- package/tools/TaskGetTool/constants.ts +1 -0
- package/tools/TaskGetTool/prompt.ts +24 -0
- package/tools/TaskListTool/TaskListTool.ts +116 -0
- package/tools/TaskListTool/constants.ts +1 -0
- package/tools/TaskListTool/prompt.ts +49 -0
- package/tools/TaskOutputTool/TaskOutputTool.tsx +584 -0
- package/tools/TaskOutputTool/constants.ts +1 -0
- package/tools/TaskStopTool/TaskStopTool.ts +131 -0
- package/tools/TaskStopTool/UI.tsx +41 -0
- package/tools/TaskStopTool/prompt.ts +8 -0
- package/tools/TaskUpdateTool/TaskUpdateTool.ts +406 -0
- package/tools/TaskUpdateTool/constants.ts +1 -0
- package/tools/TaskUpdateTool/prompt.ts +77 -0
- package/tools/TeamCreateTool/TeamCreateTool.ts +240 -0
- package/tools/TeamCreateTool/UI.tsx +6 -0
- package/tools/TeamCreateTool/constants.ts +1 -0
- package/tools/TeamCreateTool/prompt.ts +113 -0
- package/tools/TeamDeleteTool/TeamDeleteTool.ts +139 -0
- package/tools/TeamDeleteTool/UI.tsx +20 -0
- package/tools/TeamDeleteTool/constants.ts +1 -0
- package/tools/TeamDeleteTool/prompt.ts +16 -0
- package/tools/TodoWriteTool/TodoWriteTool.ts +115 -0
- package/tools/TodoWriteTool/constants.ts +1 -0
- package/tools/TodoWriteTool/prompt.ts +184 -0
- package/tools/ToolSearchTool/ToolSearchTool.ts +471 -0
- package/tools/ToolSearchTool/constants.ts +1 -0
- package/tools/ToolSearchTool/prompt.ts +121 -0
- package/tools/TungstenTool/TungstenTool.ts +4 -0
- package/tools/WebFetchTool/UI.tsx +72 -0
- package/tools/WebFetchTool/WebFetchTool.ts +318 -0
- package/tools/WebFetchTool/preapproved.ts +166 -0
- package/tools/WebFetchTool/prompt.ts +46 -0
- package/tools/WebFetchTool/utils.ts +530 -0
- package/tools/WebSearchTool/UI.tsx +101 -0
- package/tools/WebSearchTool/WebSearchTool.ts +435 -0
- package/tools/WebSearchTool/prompt.ts +34 -0
- package/tools/WorkflowTool/constants.ts +2 -0
- package/tools/XMemIngestTool/XMemIngestTool.ts +140 -0
- package/tools/XMemIngestTool/prompt.ts +13 -0
- package/tools/XMemRetrieveTool/XMemRetrieveTool.ts +177 -0
- package/tools/XMemRetrieveTool/prompt.ts +16 -0
- package/tools/XMemSearchTool/XMemSearchTool.ts +172 -0
- package/tools/XMemSearchTool/prompt.ts +11 -0
- package/tools/shared/gitOperationTracking.ts +277 -0
- package/tools/shared/spawnMultiAgent.ts +1093 -0
- package/tools/testing/TestingPermissionTool.tsx +74 -0
- package/tools/utils.ts +40 -0
- package/utils/CircularBuffer.ts +84 -0
- package/utils/Cursor.ts +1530 -0
- package/utils/QueryGuard.ts +121 -0
- package/utils/Shell.ts +474 -0
- package/utils/ShellCommand.ts +465 -0
- package/utils/abortController.ts +99 -0
- package/utils/activityManager.ts +164 -0
- package/utils/advisor.ts +145 -0
- package/utils/agentContext.ts +178 -0
- package/utils/agentId.ts +99 -0
- package/utils/agentSwarmsEnabled.ts +44 -0
- package/utils/agenticSessionSearch.ts +307 -0
- package/utils/analyzeContext.ts +1382 -0
- package/utils/ansiToPng.ts +334 -0
- package/utils/ansiToSvg.ts +272 -0
- package/utils/api.ts +718 -0
- package/utils/apiPreconnect.ts +71 -0
- package/utils/appleTerminalBackup.ts +124 -0
- package/utils/argumentSubstitution.ts +145 -0
- package/utils/array.ts +13 -0
- package/utils/asciicast.ts +239 -0
- package/utils/attachments.ts +4091 -0
- package/utils/attribution.ts +393 -0
- package/utils/auth.ts +2002 -0
- package/utils/authFileDescriptor.ts +196 -0
- package/utils/authPortable.ts +19 -0
- package/utils/autoModeDenials.ts +26 -0
- package/utils/autoRunIssue.tsx +122 -0
- package/utils/autoUpdater.ts +561 -0
- package/utils/aws.ts +74 -0
- package/utils/awsAuthStatusManager.ts +81 -0
- package/utils/axios.ts +8 -0
- package/utils/background/remote/preconditions.ts +235 -0
- package/utils/background/remote/remoteSession.ts +98 -0
- package/utils/backgroundHousekeeping.ts +94 -0
- package/utils/bash/ParsedCommand.ts +318 -0
- package/utils/bash/ShellSnapshot.ts +582 -0
- package/utils/bash/ast.ts +2679 -0
- package/utils/bash/bashParser.ts +4436 -0
- package/utils/bash/bashPipeCommand.ts +294 -0
- package/utils/bash/commands.ts +1339 -0
- package/utils/bash/heredoc.ts +733 -0
- package/utils/bash/parser.ts +230 -0
- package/utils/bash/prefix.ts +204 -0
- package/utils/bash/registry.ts +53 -0
- package/utils/bash/shellCompletion.ts +259 -0
- package/utils/bash/shellPrefix.ts +28 -0
- package/utils/bash/shellQuote.ts +304 -0
- package/utils/bash/shellQuoting.ts +128 -0
- package/utils/bash/specs/alias.ts +14 -0
- package/utils/bash/specs/index.ts +18 -0
- package/utils/bash/specs/nohup.ts +13 -0
- package/utils/bash/specs/pyright.ts +91 -0
- package/utils/bash/specs/sleep.ts +13 -0
- package/utils/bash/specs/srun.ts +31 -0
- package/utils/bash/specs/time.ts +13 -0
- package/utils/bash/specs/timeout.ts +20 -0
- package/utils/bash/treeSitterAnalysis.ts +506 -0
- package/utils/betas.ts +434 -0
- package/utils/billing.ts +78 -0
- package/utils/binaryCheck.ts +53 -0
- package/utils/browser.ts +68 -0
- package/utils/bufferedWriter.ts +100 -0
- package/utils/bundledMode.ts +22 -0
- package/utils/caCerts.ts +115 -0
- package/utils/caCertsConfig.ts +88 -0
- package/utils/cachePaths.ts +38 -0
- package/utils/classifierApprovals.ts +88 -0
- package/utils/classifierApprovalsHook.ts +17 -0
- package/utils/claudeCodeHints.ts +193 -0
- package/utils/claudeDesktop.ts +152 -0
- package/utils/claudeInChrome/chromeNativeHost.ts +527 -0
- package/utils/claudeInChrome/common.ts +540 -0
- package/utils/claudeInChrome/mcpServer.ts +292 -0
- package/utils/claudeInChrome/prompt.ts +83 -0
- package/utils/claudeInChrome/setup.ts +400 -0
- package/utils/claudeInChrome/setupPortable.ts +233 -0
- package/utils/claudeInChrome/toolRendering.tsx +262 -0
- package/utils/claudemd.ts +1479 -0
- package/utils/cleanup.ts +602 -0
- package/utils/cleanupRegistry.ts +25 -0
- package/utils/cliArgs.ts +60 -0
- package/utils/cliHighlight.ts +54 -0
- package/utils/codeIndexing.ts +206 -0
- package/utils/collapseBackgroundBashNotifications.ts +84 -0
- package/utils/collapseHookSummaries.ts +59 -0
- package/utils/collapseReadSearch.ts +1109 -0
- package/utils/collapseTeammateShutdowns.ts +55 -0
- package/utils/color-diff-mock.ts +27 -0
- package/utils/combinedAbortSignal.ts +47 -0
- package/utils/commandLifecycle.ts +21 -0
- package/utils/commitAttribution.ts +961 -0
- package/utils/completionCache.ts +166 -0
- package/utils/computerUse/appNames.ts +196 -0
- package/utils/computerUse/cleanup.ts +86 -0
- package/utils/computerUse/common.ts +61 -0
- package/utils/computerUse/computerUseLock.ts +215 -0
- package/utils/computerUse/drainRunLoop.ts +79 -0
- package/utils/computerUse/escHotkey.ts +54 -0
- package/utils/computerUse/executor.ts +658 -0
- package/utils/computerUse/gates.ts +72 -0
- package/utils/computerUse/hostAdapter.ts +69 -0
- package/utils/computerUse/inputLoader.ts +30 -0
- package/utils/computerUse/mcpServer.ts +106 -0
- package/utils/computerUse/setup.ts +53 -0
- package/utils/computerUse/swiftLoader.ts +23 -0
- package/utils/computerUse/toolRendering.tsx +125 -0
- package/utils/computerUse/wrapper.tsx +336 -0
- package/utils/concurrentSessions.ts +204 -0
- package/utils/config.ts +1817 -0
- package/utils/configConstants.ts +21 -0
- package/utils/contentArray.ts +51 -0
- package/utils/context.ts +221 -0
- package/utils/contextAnalysis.ts +272 -0
- package/utils/contextSuggestions.ts +235 -0
- package/utils/controlMessageCompat.ts +32 -0
- package/utils/conversationRecovery.ts +597 -0
- package/utils/cron.ts +308 -0
- package/utils/cronJitterConfig.ts +75 -0
- package/utils/cronScheduler.ts +565 -0
- package/utils/cronTasks.ts +458 -0
- package/utils/cronTasksLock.ts +195 -0
- package/utils/crossProjectResume.ts +75 -0
- package/utils/crypto.ts +13 -0
- package/utils/cwd.ts +32 -0
- package/utils/debug.ts +268 -0
- package/utils/debugFilter.ts +157 -0
- package/utils/deepLink/banner.ts +123 -0
- package/utils/deepLink/parseDeepLink.ts +170 -0
- package/utils/deepLink/protocolHandler.ts +136 -0
- package/utils/deepLink/registerProtocol.ts +348 -0
- package/utils/deepLink/terminalLauncher.ts +557 -0
- package/utils/deepLink/terminalPreference.ts +54 -0
- package/utils/desktopDeepLink.ts +236 -0
- package/utils/detectRepository.ts +178 -0
- package/utils/diagLogs.ts +94 -0
- package/utils/diff.ts +177 -0
- package/utils/directMemberMessage.ts +69 -0
- package/utils/displayTags.ts +51 -0
- package/utils/doctorContextWarnings.ts +265 -0
- package/utils/doctorDiagnostic.ts +625 -0
- package/utils/dxt/helpers.ts +88 -0
- package/utils/dxt/zip.ts +226 -0
- package/utils/earlyInput.ts +191 -0
- package/utils/editor.ts +183 -0
- package/utils/effort.ts +329 -0
- package/utils/embeddedTools.ts +29 -0
- package/utils/env.ts +347 -0
- package/utils/envDynamic.ts +151 -0
- package/utils/envUtils.ts +183 -0
- package/utils/envValidation.ts +38 -0
- package/utils/errorLogSink.ts +235 -0
- package/utils/errors.ts +238 -0
- package/utils/exampleCommands.ts +184 -0
- package/utils/execFileNoThrow.ts +150 -0
- package/utils/execFileNoThrowPortable.ts +89 -0
- package/utils/execSyncWrapper.ts +38 -0
- package/utils/exportRenderer.tsx +98 -0
- package/utils/extraUsage.ts +23 -0
- package/utils/fastMode.ts +532 -0
- package/utils/file.ts +584 -0
- package/utils/fileHistory.ts +1115 -0
- package/utils/fileOperationAnalytics.ts +71 -0
- package/utils/filePersistence/filePersistence.ts +287 -0
- package/utils/filePersistence/outputsScanner.ts +126 -0
- package/utils/fileRead.ts +102 -0
- package/utils/fileReadCache.ts +96 -0
- package/utils/fileStateCache.ts +142 -0
- package/utils/findExecutable.ts +17 -0
- package/utils/fingerprint.ts +76 -0
- package/utils/forkedAgent.ts +689 -0
- package/utils/format.ts +308 -0
- package/utils/formatBriefTimestamp.ts +81 -0
- package/utils/fpsTracker.ts +47 -0
- package/utils/frontmatterParser.ts +370 -0
- package/utils/fsOperations.ts +770 -0
- package/utils/fullscreen.ts +202 -0
- package/utils/generatedFiles.ts +136 -0
- package/utils/generators.ts +88 -0
- package/utils/genericProcessUtils.ts +184 -0
- package/utils/getWorktreePaths.ts +70 -0
- package/utils/getWorktreePathsPortable.ts +27 -0
- package/utils/ghPrStatus.ts +106 -0
- package/utils/git/gitConfigParser.ts +277 -0
- package/utils/git/gitFilesystem.ts +699 -0
- package/utils/git/gitignore.ts +99 -0
- package/utils/git.ts +926 -0
- package/utils/gitDiff.ts +532 -0
- package/utils/gitSettings.ts +18 -0
- package/utils/github/ghAuthStatus.ts +29 -0
- package/utils/githubRepoPathMapping.ts +162 -0
- package/utils/glob.ts +130 -0
- package/utils/gracefulShutdown.ts +529 -0
- package/utils/groupToolUses.ts +182 -0
- package/utils/handlePromptSubmit.ts +610 -0
- package/utils/hash.ts +46 -0
- package/utils/headlessProfiler.ts +178 -0
- package/utils/heapDumpService.ts +303 -0
- package/utils/heatmap.ts +198 -0
- package/utils/highlightMatch.tsx +28 -0
- package/utils/hooks/AsyncHookRegistry.ts +309 -0
- package/utils/hooks/apiQueryHookHelper.ts +141 -0
- package/utils/hooks/execAgentHook.ts +339 -0
- package/utils/hooks/execHttpHook.ts +242 -0
- package/utils/hooks/execPromptHook.ts +211 -0
- package/utils/hooks/fileChangedWatcher.ts +191 -0
- package/utils/hooks/hookEvents.ts +192 -0
- package/utils/hooks/hookHelpers.ts +83 -0
- package/utils/hooks/hooksConfigManager.ts +400 -0
- package/utils/hooks/hooksConfigSnapshot.ts +133 -0
- package/utils/hooks/hooksSettings.ts +271 -0
- package/utils/hooks/postSamplingHooks.ts +70 -0
- package/utils/hooks/registerFrontmatterHooks.ts +67 -0
- package/utils/hooks/registerSkillHooks.ts +64 -0
- package/utils/hooks/sessionHooks.ts +447 -0
- package/utils/hooks/skillImprovement.ts +267 -0
- package/utils/hooks/ssrfGuard.ts +294 -0
- package/utils/hooks.ts +5022 -0
- package/utils/horizontalScroll.ts +137 -0
- package/utils/http.ts +136 -0
- package/utils/hyperlink.ts +39 -0
- package/utils/iTermBackup.ts +73 -0
- package/utils/ide.ts +1494 -0
- package/utils/idePathConversion.ts +90 -0
- package/utils/idleTimeout.ts +53 -0
- package/utils/imagePaste.ts +416 -0
- package/utils/imageResizer.ts +880 -0
- package/utils/imageStore.ts +167 -0
- package/utils/imageValidation.ts +104 -0
- package/utils/immediateCommand.ts +15 -0
- package/utils/inProcessTeammateHelpers.ts +102 -0
- package/utils/ink.ts +26 -0
- package/utils/intl.ts +94 -0
- package/utils/jetbrains.ts +191 -0
- package/utils/json.ts +277 -0
- package/utils/jsonRead.ts +16 -0
- package/utils/keyboardShortcuts.ts +14 -0
- package/utils/lazySchema.ts +8 -0
- package/utils/listSessionsImpl.ts +454 -0
- package/utils/localInstaller.ts +162 -0
- package/utils/lockfile.ts +43 -0
- package/utils/log.ts +362 -0
- package/utils/logoV2Utils.ts +347 -0
- package/utils/mailbox.ts +73 -0
- package/utils/managedEnv.ts +199 -0
- package/utils/managedEnvConstants.ts +191 -0
- package/utils/markdown.ts +381 -0
- package/utils/markdownConfigLoader.ts +600 -0
- package/utils/mcp/dateTimeParser.ts +121 -0
- package/utils/mcp/elicitationValidation.ts +336 -0
- package/utils/mcpInstructionsDelta.ts +130 -0
- package/utils/mcpOutputStorage.ts +189 -0
- package/utils/mcpValidation.ts +208 -0
- package/utils/mcpWebSocketTransport.ts +200 -0
- package/utils/memoize.ts +269 -0
- package/utils/memory/types.ts +12 -0
- package/utils/memory/versions.ts +8 -0
- package/utils/memoryFileDetection.ts +289 -0
- package/utils/messagePredicates.ts +8 -0
- package/utils/messageQueueManager.ts +547 -0
- package/utils/messages/mappers.ts +290 -0
- package/utils/messages/systemInit.ts +96 -0
- package/utils/messages.ts +5520 -0
- package/utils/model/agent.ts +157 -0
- package/utils/model/aliases.ts +35 -0
- package/utils/model/antModels.ts +64 -0
- package/utils/model/bedrock.ts +265 -0
- package/utils/model/check1mAccess.ts +72 -0
- package/utils/model/configs.ts +158 -0
- package/utils/model/contextWindowUpgradeCheck.ts +47 -0
- package/utils/model/deprecation.ts +101 -0
- package/utils/model/model.ts +654 -0
- package/utils/model/modelAllowlist.ts +170 -0
- package/utils/model/modelCapabilities.ts +118 -0
- package/utils/model/modelOptions.ts +589 -0
- package/utils/model/modelStrings.ts +170 -0
- package/utils/model/modelSupportOverrides.ts +50 -0
- package/utils/model/providers.ts +42 -0
- package/utils/model/validateModel.ts +159 -0
- package/utils/modelCost.ts +231 -0
- package/utils/modifiers.ts +36 -0
- package/utils/mtls.ts +179 -0
- package/utils/nativeInstaller/download.ts +523 -0
- package/utils/nativeInstaller/index.ts +18 -0
- package/utils/nativeInstaller/installer.ts +1708 -0
- package/utils/nativeInstaller/packageManagers.ts +336 -0
- package/utils/nativeInstaller/pidLock.ts +433 -0
- package/utils/notebook.ts +224 -0
- package/utils/objectGroupBy.ts +18 -0
- package/utils/pasteStore.ts +104 -0
- package/utils/path.ts +155 -0
- package/utils/pdf.ts +300 -0
- package/utils/pdfUtils.ts +70 -0
- package/utils/peerAddress.ts +21 -0
- package/utils/permissions/PermissionMode.ts +141 -0
- package/utils/permissions/PermissionPromptToolResultSchema.ts +127 -0
- package/utils/permissions/PermissionResult.ts +35 -0
- package/utils/permissions/PermissionRule.ts +40 -0
- package/utils/permissions/PermissionUpdate.ts +389 -0
- package/utils/permissions/PermissionUpdateSchema.ts +78 -0
- package/utils/permissions/autoModeState.ts +39 -0
- package/utils/permissions/bashClassifier.ts +61 -0
- package/utils/permissions/bypassPermissionsKillswitch.ts +155 -0
- package/utils/permissions/classifierDecision.ts +98 -0
- package/utils/permissions/classifierShared.ts +39 -0
- package/utils/permissions/dangerousPatterns.ts +80 -0
- package/utils/permissions/denialTracking.ts +45 -0
- package/utils/permissions/filesystem.ts +1777 -0
- package/utils/permissions/getNextPermissionMode.ts +101 -0
- package/utils/permissions/pathValidation.ts +485 -0
- package/utils/permissions/permissionExplainer.ts +250 -0
- package/utils/permissions/permissionRuleParser.ts +198 -0
- package/utils/permissions/permissionSetup.ts +1532 -0
- package/utils/permissions/permissions.ts +1486 -0
- package/utils/permissions/permissionsLoader.ts +296 -0
- package/utils/permissions/shadowedRuleDetection.ts +234 -0
- package/utils/permissions/shellRuleMatching.ts +228 -0
- package/utils/permissions/yoloClassifier.ts +1495 -0
- package/utils/planModeV2.ts +95 -0
- package/utils/plans.ts +397 -0
- package/utils/platform.ts +150 -0
- package/utils/plugins/addDirPluginSettings.ts +71 -0
- package/utils/plugins/cacheUtils.ts +196 -0
- package/utils/plugins/dependencyResolver.ts +305 -0
- package/utils/plugins/fetchTelemetry.ts +135 -0
- package/utils/plugins/gitAvailability.ts +69 -0
- package/utils/plugins/headlessPluginInstall.ts +174 -0
- package/utils/plugins/hintRecommendation.ts +164 -0
- package/utils/plugins/installCounts.ts +292 -0
- package/utils/plugins/installedPluginsManager.ts +1268 -0
- package/utils/plugins/loadPluginAgents.ts +348 -0
- package/utils/plugins/loadPluginCommands.ts +946 -0
- package/utils/plugins/loadPluginHooks.ts +287 -0
- package/utils/plugins/loadPluginOutputStyles.ts +178 -0
- package/utils/plugins/lspPluginIntegration.ts +387 -0
- package/utils/plugins/lspRecommendation.ts +374 -0
- package/utils/plugins/managedPlugins.ts +27 -0
- package/utils/plugins/marketplaceHelpers.ts +592 -0
- package/utils/plugins/marketplaceManager.ts +2643 -0
- package/utils/plugins/mcpPluginIntegration.ts +634 -0
- package/utils/plugins/mcpbHandler.ts +968 -0
- package/utils/plugins/officialMarketplace.ts +25 -0
- package/utils/plugins/officialMarketplaceGcs.ts +216 -0
- package/utils/plugins/officialMarketplaceStartupCheck.ts +439 -0
- package/utils/plugins/orphanedPluginFilter.ts +114 -0
- package/utils/plugins/parseMarketplaceInput.ts +162 -0
- package/utils/plugins/performStartupChecks.tsx +70 -0
- package/utils/plugins/pluginAutoupdate.ts +284 -0
- package/utils/plugins/pluginBlocklist.ts +127 -0
- package/utils/plugins/pluginDirectories.ts +178 -0
- package/utils/plugins/pluginFlagging.ts +208 -0
- package/utils/plugins/pluginIdentifier.ts +123 -0
- package/utils/plugins/pluginInstallationHelpers.ts +595 -0
- package/utils/plugins/pluginLoader.ts +3302 -0
- package/utils/plugins/pluginOptionsStorage.ts +400 -0
- package/utils/plugins/pluginPolicy.ts +20 -0
- package/utils/plugins/pluginStartupCheck.ts +341 -0
- package/utils/plugins/pluginVersioning.ts +157 -0
- package/utils/plugins/reconciler.ts +265 -0
- package/utils/plugins/refresh.ts +215 -0
- package/utils/plugins/schemas.ts +1681 -0
- package/utils/plugins/validatePlugin.ts +903 -0
- package/utils/plugins/walkPluginMarkdown.ts +69 -0
- package/utils/plugins/zipCache.ts +406 -0
- package/utils/plugins/zipCacheAdapters.ts +164 -0
- package/utils/powershell/dangerousCmdlets.ts +185 -0
- package/utils/powershell/parser.ts +1804 -0
- package/utils/powershell/staticPrefix.ts +316 -0
- package/utils/preflightChecks.tsx +151 -0
- package/utils/privacyLevel.ts +55 -0
- package/utils/process.ts +68 -0
- package/utils/processUserInput/processBashCommand.tsx +140 -0
- package/utils/processUserInput/processSlashCommand.tsx +922 -0
- package/utils/processUserInput/processTextPrompt.ts +100 -0
- package/utils/processUserInput/processUserInput.ts +605 -0
- package/utils/profilerBase.ts +46 -0
- package/utils/promptCategory.ts +49 -0
- package/utils/promptEditor.ts +188 -0
- package/utils/promptShellExecution.ts +183 -0
- package/utils/proxy.ts +426 -0
- package/utils/queryContext.ts +179 -0
- package/utils/queryHelpers.ts +552 -0
- package/utils/queryProfiler.ts +301 -0
- package/utils/queueProcessor.ts +95 -0
- package/utils/readEditContext.ts +227 -0
- package/utils/readFileInRange.ts +383 -0
- package/utils/releaseNotes.ts +360 -0
- package/utils/renderOptions.ts +113 -0
- package/utils/ripgrep.ts +679 -0
- package/utils/sandbox/sandbox-adapter.ts +985 -0
- package/utils/sandbox/sandbox-ui-utils.ts +12 -0
- package/utils/sanitization.ts +91 -0
- package/utils/screenshotClipboard.ts +121 -0
- package/utils/sdkEventQueue.ts +134 -0
- package/utils/secureStorage/fallbackStorage.ts +70 -0
- package/utils/secureStorage/index.ts +17 -0
- package/utils/secureStorage/keychainPrefetch.ts +116 -0
- package/utils/secureStorage/macOsKeychainHelpers.ts +111 -0
- package/utils/secureStorage/macOsKeychainStorage.ts +231 -0
- package/utils/secureStorage/plainTextStorage.ts +84 -0
- package/utils/semanticBoolean.ts +29 -0
- package/utils/semanticNumber.ts +36 -0
- package/utils/semver.ts +59 -0
- package/utils/sequential.ts +56 -0
- package/utils/sessionActivity.ts +133 -0
- package/utils/sessionEnvVars.ts +22 -0
- package/utils/sessionEnvironment.ts +166 -0
- package/utils/sessionFileAccessHooks.ts +250 -0
- package/utils/sessionIngressAuth.ts +140 -0
- package/utils/sessionRestore.ts +551 -0
- package/utils/sessionStart.ts +232 -0
- package/utils/sessionState.ts +150 -0
- package/utils/sessionStorage.ts +5105 -0
- package/utils/sessionStoragePortable.ts +793 -0
- package/utils/sessionTitle.ts +129 -0
- package/utils/sessionUrl.ts +64 -0
- package/utils/set.ts +53 -0
- package/utils/settings/allErrors.ts +32 -0
- package/utils/settings/applySettingsChange.ts +92 -0
- package/utils/settings/changeDetector.ts +488 -0
- package/utils/settings/constants.ts +202 -0
- package/utils/settings/internalWrites.ts +37 -0
- package/utils/settings/managedPath.ts +34 -0
- package/utils/settings/mdm/constants.ts +81 -0
- package/utils/settings/mdm/rawRead.ts +130 -0
- package/utils/settings/mdm/settings.ts +316 -0
- package/utils/settings/permissionValidation.ts +262 -0
- package/utils/settings/pluginOnlyPolicy.ts +60 -0
- package/utils/settings/schemaOutput.ts +8 -0
- package/utils/settings/settings.ts +1015 -0
- package/utils/settings/settingsCache.ts +80 -0
- package/utils/settings/toolValidationConfig.ts +103 -0
- package/utils/settings/types.ts +1149 -0
- package/utils/settings/validateEditTool.ts +45 -0
- package/utils/settings/validation.ts +265 -0
- package/utils/settings/validationTips.ts +164 -0
- package/utils/shell/bashProvider.ts +255 -0
- package/utils/shell/outputLimits.ts +14 -0
- package/utils/shell/powershellDetection.ts +107 -0
- package/utils/shell/powershellProvider.ts +123 -0
- package/utils/shell/prefix.ts +367 -0
- package/utils/shell/readOnlyCommandValidation.ts +1893 -0
- package/utils/shell/resolveDefaultShell.ts +14 -0
- package/utils/shell/shellProvider.ts +33 -0
- package/utils/shell/shellToolUtils.ts +22 -0
- package/utils/shell/specPrefix.ts +241 -0
- package/utils/shellConfig.ts +167 -0
- package/utils/sideQuery.ts +222 -0
- package/utils/sideQuestion.ts +155 -0
- package/utils/signal.ts +43 -0
- package/utils/sinks.ts +16 -0
- package/utils/skills/skillChangeDetector.ts +311 -0
- package/utils/slashCommandParsing.ts +60 -0
- package/utils/sleep.ts +84 -0
- package/utils/sliceAnsi.ts +91 -0
- package/utils/slowOperations.ts +286 -0
- package/utils/standaloneAgent.ts +23 -0
- package/utils/startupProfiler.ts +194 -0
- package/utils/staticRender.tsx +116 -0
- package/utils/stats.ts +1061 -0
- package/utils/statsCache.ts +434 -0
- package/utils/status.tsx +362 -0
- package/utils/statusNoticeDefinitions.tsx +198 -0
- package/utils/statusNoticeHelpers.ts +20 -0
- package/utils/stream.ts +76 -0
- package/utils/streamJsonStdoutGuard.ts +123 -0
- package/utils/streamlinedTransform.ts +201 -0
- package/utils/stringUtils.ts +235 -0
- package/utils/subprocessEnv.ts +99 -0
- package/utils/suggestions/commandSuggestions.ts +567 -0
- package/utils/suggestions/directoryCompletion.ts +263 -0
- package/utils/suggestions/shellHistoryCompletion.ts +119 -0
- package/utils/suggestions/skillUsageTracking.ts +55 -0
- package/utils/suggestions/slackChannelSuggestions.ts +209 -0
- package/utils/swarm/It2SetupPrompt.tsx +380 -0
- package/utils/swarm/backends/ITermBackend.ts +370 -0
- package/utils/swarm/backends/InProcessBackend.ts +339 -0
- package/utils/swarm/backends/PaneBackendExecutor.ts +354 -0
- package/utils/swarm/backends/TmuxBackend.ts +764 -0
- package/utils/swarm/backends/detection.ts +128 -0
- package/utils/swarm/backends/it2Setup.ts +245 -0
- package/utils/swarm/backends/registry.ts +464 -0
- package/utils/swarm/backends/teammateModeSnapshot.ts +87 -0
- package/utils/swarm/backends/types.ts +311 -0
- package/utils/swarm/constants.ts +33 -0
- package/utils/swarm/inProcessRunner.ts +1552 -0
- package/utils/swarm/leaderPermissionBridge.ts +54 -0
- package/utils/swarm/permissionSync.ts +928 -0
- package/utils/swarm/reconnection.ts +119 -0
- package/utils/swarm/spawnInProcess.ts +328 -0
- package/utils/swarm/spawnUtils.ts +146 -0
- package/utils/swarm/teamHelpers.ts +683 -0
- package/utils/swarm/teammateInit.ts +129 -0
- package/utils/swarm/teammateLayoutManager.ts +107 -0
- package/utils/swarm/teammateModel.ts +10 -0
- package/utils/swarm/teammatePromptAddendum.ts +18 -0
- package/utils/systemDirectories.ts +74 -0
- package/utils/systemPrompt.ts +123 -0
- package/utils/systemPromptType.ts +14 -0
- package/utils/systemTheme.ts +119 -0
- package/utils/taggedId.ts +54 -0
- package/utils/task/TaskOutput.ts +390 -0
- package/utils/task/diskOutput.ts +451 -0
- package/utils/task/framework.ts +308 -0
- package/utils/task/outputFormatting.ts +38 -0
- package/utils/task/sdkProgress.ts +36 -0
- package/utils/tasks.ts +862 -0
- package/utils/teamDiscovery.ts +81 -0
- package/utils/teamMemoryOps.ts +88 -0
- package/utils/teammate.ts +292 -0
- package/utils/teammateContext.ts +96 -0
- package/utils/teammateMailbox.ts +1183 -0
- package/utils/telemetry/betaSessionTracing.ts +491 -0
- package/utils/telemetry/bigqueryExporter.ts +252 -0
- package/utils/telemetry/events.ts +75 -0
- package/utils/telemetry/instrumentation.ts +825 -0
- package/utils/telemetry/logger.ts +26 -0
- package/utils/telemetry/perfettoTracing.ts +1120 -0
- package/utils/telemetry/pluginTelemetry.ts +289 -0
- package/utils/telemetry/sessionTracing.ts +927 -0
- package/utils/telemetry/skillLoadedEvent.ts +39 -0
- package/utils/telemetryAttributes.ts +71 -0
- package/utils/teleport/api.ts +466 -0
- package/utils/teleport/environmentSelection.ts +77 -0
- package/utils/teleport/environments.ts +120 -0
- package/utils/teleport/gitBundle.ts +292 -0
- package/utils/teleport.tsx +1226 -0
- package/utils/tempfile.ts +31 -0
- package/utils/terminal.ts +131 -0
- package/utils/terminalPanel.ts +191 -0
- package/utils/textHighlighting.ts +166 -0
- package/utils/theme.ts +639 -0
- package/utils/thinking.ts +162 -0
- package/utils/timeouts.ts +39 -0
- package/utils/tmuxSocket.ts +427 -0
- package/utils/todo/types.ts +18 -0
- package/utils/tokenBudget.ts +73 -0
- package/utils/tokens.ts +261 -0
- package/utils/toolErrors.ts +132 -0
- package/utils/toolPool.ts +79 -0
- package/utils/toolResultStorage.ts +1040 -0
- package/utils/toolSchemaCache.ts +26 -0
- package/utils/toolSearch.ts +756 -0
- package/utils/transcriptSearch.ts +202 -0
- package/utils/treeify.ts +170 -0
- package/utils/truncate.ts +179 -0
- package/utils/ultraplan/ccrSession.ts +349 -0
- package/utils/ultraplan/keyword.ts +127 -0
- package/utils/ultraplan/prompt.txt +1 -0
- package/utils/unaryLogging.ts +39 -0
- package/utils/undercover.ts +89 -0
- package/utils/user.ts +194 -0
- package/utils/userAgent.ts +10 -0
- package/utils/userPromptKeywords.ts +27 -0
- package/utils/uuid.ts +27 -0
- package/utils/warningHandler.ts +121 -0
- package/utils/which.ts +82 -0
- package/utils/windowsPaths.ts +173 -0
- package/utils/withResolvers.ts +13 -0
- package/utils/words.ts +800 -0
- package/utils/workloadContext.ts +57 -0
- package/utils/worktree.ts +1519 -0
- package/utils/worktreeModeEnabled.ts +11 -0
- package/utils/xdg.ts +65 -0
- package/utils/xmem.ts +6 -0
- package/utils/xml.ts +16 -0
- package/utils/yaml.ts +15 -0
- package/utils/zodToJsonSchema.ts +23 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { PermissionMode } from '../permissions/PermissionMode.js'
|
|
2
|
+
import { capitalize } from '../stringUtils.js'
|
|
3
|
+
import { MODEL_ALIASES, type ModelAlias } from './aliases.js'
|
|
4
|
+
import { applyBedrockRegionPrefix, getBedrockRegionPrefix } from './bedrock.js'
|
|
5
|
+
import {
|
|
6
|
+
getCanonicalName,
|
|
7
|
+
getRuntimeMainLoopModel,
|
|
8
|
+
parseUserSpecifiedModel,
|
|
9
|
+
} from './model.js'
|
|
10
|
+
import { getAPIProvider } from './providers.js'
|
|
11
|
+
|
|
12
|
+
export const AGENT_MODEL_OPTIONS = [...MODEL_ALIASES, 'inherit'] as const
|
|
13
|
+
export type AgentModelAlias = (typeof AGENT_MODEL_OPTIONS)[number]
|
|
14
|
+
|
|
15
|
+
export type AgentModelOption = {
|
|
16
|
+
value: AgentModelAlias
|
|
17
|
+
label: string
|
|
18
|
+
description: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get the default subagent model. Returns 'inherit' so subagents inherit
|
|
23
|
+
* the model from the parent thread.
|
|
24
|
+
*/
|
|
25
|
+
export function getDefaultSubagentModel(): string {
|
|
26
|
+
return 'inherit'
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get the effective model string for an agent.
|
|
31
|
+
*
|
|
32
|
+
* For Bedrock, if the parent model uses a cross-region inference prefix (e.g., "eu.", "us."),
|
|
33
|
+
* that prefix is inherited by subagents using alias models (e.g., "sonnet", "haiku", "opus").
|
|
34
|
+
* This ensures subagents use the same region as the parent, which is necessary when
|
|
35
|
+
* IAM permissions are scoped to specific cross-region inference profiles.
|
|
36
|
+
*/
|
|
37
|
+
export function getAgentModel(
|
|
38
|
+
agentModel: string | undefined,
|
|
39
|
+
parentModel: string,
|
|
40
|
+
toolSpecifiedModel?: ModelAlias,
|
|
41
|
+
permissionMode?: PermissionMode,
|
|
42
|
+
): string {
|
|
43
|
+
if (process.env.CLAUDE_CODE_SUBAGENT_MODEL) {
|
|
44
|
+
return parseUserSpecifiedModel(process.env.CLAUDE_CODE_SUBAGENT_MODEL)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Extract Bedrock region prefix from parent model to inherit for subagents.
|
|
48
|
+
// This ensures subagents use the same cross-region inference profile (e.g., "eu.", "us.")
|
|
49
|
+
// as the parent, which is required when IAM permissions only allow specific regions.
|
|
50
|
+
const parentRegionPrefix = getBedrockRegionPrefix(parentModel)
|
|
51
|
+
|
|
52
|
+
// Helper to apply parent region prefix for Bedrock models.
|
|
53
|
+
// `originalSpec` is the raw model string before resolution (alias or full ID).
|
|
54
|
+
// If the user explicitly specified a full model ID that already carries its own
|
|
55
|
+
// region prefix (e.g., "eu.anthropic.…"), we preserve it instead of overwriting
|
|
56
|
+
// with the parent's prefix. This prevents silent data-residency violations when
|
|
57
|
+
// an agent config intentionally pins to a different region than the parent.
|
|
58
|
+
const applyParentRegionPrefix = (
|
|
59
|
+
resolvedModel: string,
|
|
60
|
+
originalSpec: string,
|
|
61
|
+
): string => {
|
|
62
|
+
if (parentRegionPrefix && getAPIProvider() === 'bedrock') {
|
|
63
|
+
if (getBedrockRegionPrefix(originalSpec)) return resolvedModel
|
|
64
|
+
return applyBedrockRegionPrefix(resolvedModel, parentRegionPrefix)
|
|
65
|
+
}
|
|
66
|
+
return resolvedModel
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Prioritize tool-specified model if provided
|
|
70
|
+
if (toolSpecifiedModel) {
|
|
71
|
+
if (aliasMatchesParentTier(toolSpecifiedModel, parentModel)) {
|
|
72
|
+
return parentModel
|
|
73
|
+
}
|
|
74
|
+
const model = parseUserSpecifiedModel(toolSpecifiedModel)
|
|
75
|
+
return applyParentRegionPrefix(model, toolSpecifiedModel)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const agentModelWithExp = agentModel ?? getDefaultSubagentModel()
|
|
79
|
+
|
|
80
|
+
if (agentModelWithExp === 'inherit') {
|
|
81
|
+
// Apply runtime model resolution for inherit to get the effective model
|
|
82
|
+
// This ensures agents using 'inherit' get opusplan→Opus resolution in plan mode
|
|
83
|
+
return getRuntimeMainLoopModel({
|
|
84
|
+
permissionMode: permissionMode ?? 'default',
|
|
85
|
+
mainLoopModel: parentModel,
|
|
86
|
+
exceeds200kTokens: false,
|
|
87
|
+
})
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (aliasMatchesParentTier(agentModelWithExp, parentModel)) {
|
|
91
|
+
return parentModel
|
|
92
|
+
}
|
|
93
|
+
const model = parseUserSpecifiedModel(agentModelWithExp)
|
|
94
|
+
return applyParentRegionPrefix(model, agentModelWithExp)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Check if a bare family alias (opus/sonnet/haiku) matches the parent model's
|
|
99
|
+
* tier. When it does, the subagent inherits the parent's exact model string
|
|
100
|
+
* instead of resolving the alias to a provider default.
|
|
101
|
+
*
|
|
102
|
+
* Prevents surprising downgrades: a Vertex user on Opus 4.6 (via /model) who
|
|
103
|
+
* spawns a subagent with `model: opus` should get Opus 4.6, not whatever
|
|
104
|
+
* getDefaultOpusModel() returns for 3P.
|
|
105
|
+
* See https://github.com/anthropics/claude-code/issues/30815.
|
|
106
|
+
*
|
|
107
|
+
* Only bare family aliases match. `opus[1m]`, `best`, `opusplan` fall through
|
|
108
|
+
* since they carry semantics beyond "same tier as parent".
|
|
109
|
+
*/
|
|
110
|
+
function aliasMatchesParentTier(alias: string, parentModel: string): boolean {
|
|
111
|
+
const canonical = getCanonicalName(parentModel)
|
|
112
|
+
switch (alias.toLowerCase()) {
|
|
113
|
+
case 'opus':
|
|
114
|
+
return canonical.includes('opus')
|
|
115
|
+
case 'sonnet':
|
|
116
|
+
return canonical.includes('sonnet')
|
|
117
|
+
case 'haiku':
|
|
118
|
+
return canonical.includes('haiku')
|
|
119
|
+
default:
|
|
120
|
+
return false
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function getAgentModelDisplay(model: string | undefined): string {
|
|
125
|
+
// When model is omitted, getDefaultSubagentModel() returns 'inherit' at runtime
|
|
126
|
+
if (!model) return 'Inherit from parent (default)'
|
|
127
|
+
if (model === 'inherit') return 'Inherit from parent'
|
|
128
|
+
return capitalize(model)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Get available model options for agents
|
|
133
|
+
*/
|
|
134
|
+
export function getAgentModelOptions(): AgentModelOption[] {
|
|
135
|
+
return [
|
|
136
|
+
{
|
|
137
|
+
value: 'sonnet',
|
|
138
|
+
label: 'Sonnet',
|
|
139
|
+
description: 'Balanced performance - best for most agents',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
value: 'opus',
|
|
143
|
+
label: 'Opus',
|
|
144
|
+
description: 'Most capable for complex reasoning tasks',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
value: 'haiku',
|
|
148
|
+
label: 'Haiku',
|
|
149
|
+
description: 'Fast and efficient for simple tasks',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
value: 'inherit',
|
|
153
|
+
label: 'Inherit from parent',
|
|
154
|
+
description: 'Use the same model as the main conversation',
|
|
155
|
+
},
|
|
156
|
+
]
|
|
157
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const MODEL_ALIASES = [
|
|
2
|
+
'sonnet',
|
|
3
|
+
'opus',
|
|
4
|
+
'haiku',
|
|
5
|
+
'best',
|
|
6
|
+
'sonnet[1m]',
|
|
7
|
+
'opus[1m]',
|
|
8
|
+
'opusplan',
|
|
9
|
+
// OpenRouter model aliases
|
|
10
|
+
'kimi',
|
|
11
|
+
'kimi2.5',
|
|
12
|
+
'kimi-k2.5',
|
|
13
|
+
'deepseek',
|
|
14
|
+
'deepseek-v3.2',
|
|
15
|
+
'gemini',
|
|
16
|
+
'gemini-pro',
|
|
17
|
+
'gemini-2.5',
|
|
18
|
+
'gemini-2.5-pro',
|
|
19
|
+
] as const
|
|
20
|
+
export type ModelAlias = (typeof MODEL_ALIASES)[number]
|
|
21
|
+
|
|
22
|
+
export function isModelAlias(modelInput: string): modelInput is ModelAlias {
|
|
23
|
+
return MODEL_ALIASES.includes(modelInput as ModelAlias)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Bare model family aliases that act as wildcards in the availableModels allowlist.
|
|
28
|
+
* When "opus" is in the allowlist, ANY opus model is allowed (opus 4.5, 4.6, etc.).
|
|
29
|
+
* When a specific model ID is in the allowlist, only that exact version is allowed.
|
|
30
|
+
*/
|
|
31
|
+
export const MODEL_FAMILY_ALIASES = ['sonnet', 'opus', 'haiku', 'kimi', 'deepseek', 'gemini'] as const
|
|
32
|
+
|
|
33
|
+
export function isModelFamilyAlias(model: string): boolean {
|
|
34
|
+
return (MODEL_FAMILY_ALIASES as readonly string[]).includes(model)
|
|
35
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { getFeatureValue_CACHED_MAY_BE_STALE } from 'src/services/analytics/growthbook.js'
|
|
2
|
+
import type { EffortLevel } from '../effort.js'
|
|
3
|
+
|
|
4
|
+
export type AntModel = {
|
|
5
|
+
alias: string
|
|
6
|
+
model: string
|
|
7
|
+
label: string
|
|
8
|
+
description?: string
|
|
9
|
+
defaultEffortValue?: number
|
|
10
|
+
defaultEffortLevel?: EffortLevel
|
|
11
|
+
contextWindow?: number
|
|
12
|
+
defaultMaxTokens?: number
|
|
13
|
+
upperMaxTokensLimit?: number
|
|
14
|
+
/** Model defaults to adaptive thinking and rejects `thinking: { type: 'disabled' }`. */
|
|
15
|
+
alwaysOnThinking?: boolean
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type AntModelSwitchCalloutConfig = {
|
|
19
|
+
modelAlias?: string
|
|
20
|
+
description: string
|
|
21
|
+
version: string
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type AntModelOverrideConfig = {
|
|
25
|
+
defaultModel?: string
|
|
26
|
+
defaultModelEffortLevel?: EffortLevel
|
|
27
|
+
defaultSystemPromptSuffix?: string
|
|
28
|
+
antModels?: AntModel[]
|
|
29
|
+
switchCallout?: AntModelSwitchCalloutConfig
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// @[MODEL LAUNCH]: Update tengu_ant_model_override with new ant-only models
|
|
33
|
+
// @[MODEL LAUNCH]: Add the codename to scripts/excluded-strings.txt to prevent it from leaking to external builds.
|
|
34
|
+
export function getAntModelOverrideConfig(): AntModelOverrideConfig | null {
|
|
35
|
+
if (process.env.USER_TYPE !== 'ant') {
|
|
36
|
+
return null
|
|
37
|
+
}
|
|
38
|
+
return getFeatureValue_CACHED_MAY_BE_STALE<AntModelOverrideConfig | null>(
|
|
39
|
+
'tengu_ant_model_override',
|
|
40
|
+
null,
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function getAntModels(): AntModel[] {
|
|
45
|
+
if (process.env.USER_TYPE !== 'ant') {
|
|
46
|
+
return []
|
|
47
|
+
}
|
|
48
|
+
return getAntModelOverrideConfig()?.antModels ?? []
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function resolveAntModel(
|
|
52
|
+
model: string | undefined,
|
|
53
|
+
): AntModel | undefined {
|
|
54
|
+
if (process.env.USER_TYPE !== 'ant') {
|
|
55
|
+
return undefined
|
|
56
|
+
}
|
|
57
|
+
if (model === undefined) {
|
|
58
|
+
return undefined
|
|
59
|
+
}
|
|
60
|
+
const lower = model.toLowerCase()
|
|
61
|
+
return getAntModels().find(
|
|
62
|
+
m => m.alias === model || lower.includes(m.model.toLowerCase()),
|
|
63
|
+
)
|
|
64
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import memoize from 'lodash-es/memoize.js'
|
|
2
|
+
import { refreshAndGetAwsCredentials } from '../auth.js'
|
|
3
|
+
import { getAWSRegion, isEnvTruthy } from '../envUtils.js'
|
|
4
|
+
import { logError } from '../log.js'
|
|
5
|
+
import { getAWSClientProxyConfig } from '../proxy.js'
|
|
6
|
+
|
|
7
|
+
export const getBedrockInferenceProfiles = memoize(async function (): Promise<
|
|
8
|
+
string[]
|
|
9
|
+
> {
|
|
10
|
+
const [client, { ListInferenceProfilesCommand }] = await Promise.all([
|
|
11
|
+
createBedrockClient(),
|
|
12
|
+
import('@aws-sdk/client-bedrock'),
|
|
13
|
+
])
|
|
14
|
+
const allProfiles = []
|
|
15
|
+
let nextToken: string | undefined
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
do {
|
|
19
|
+
const command = new ListInferenceProfilesCommand({
|
|
20
|
+
...(nextToken && { nextToken }),
|
|
21
|
+
typeEquals: 'SYSTEM_DEFINED',
|
|
22
|
+
})
|
|
23
|
+
const response = await client.send(command)
|
|
24
|
+
|
|
25
|
+
if (response.inferenceProfileSummaries) {
|
|
26
|
+
allProfiles.push(...response.inferenceProfileSummaries)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
nextToken = response.nextToken
|
|
30
|
+
} while (nextToken)
|
|
31
|
+
|
|
32
|
+
// Filter for Anthropic models (SYSTEM_DEFINED filtering handled in query)
|
|
33
|
+
return allProfiles
|
|
34
|
+
.filter(profile => profile.inferenceProfileId?.includes('anthropic'))
|
|
35
|
+
.map(profile => profile.inferenceProfileId)
|
|
36
|
+
.filter(Boolean) as string[]
|
|
37
|
+
} catch (error) {
|
|
38
|
+
logError(error as Error)
|
|
39
|
+
throw error
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
export function findFirstMatch(
|
|
44
|
+
profiles: string[],
|
|
45
|
+
substring: string,
|
|
46
|
+
): string | null {
|
|
47
|
+
return profiles.find(p => p.includes(substring)) ?? null
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function createBedrockClient() {
|
|
51
|
+
const { BedrockClient } = await import('@aws-sdk/client-bedrock')
|
|
52
|
+
// Match the Anthropic Bedrock SDK's region behavior exactly:
|
|
53
|
+
// - Reads AWS_REGION or AWS_DEFAULT_REGION env vars (not AWS config files)
|
|
54
|
+
// - Falls back to 'us-east-1' if neither is set
|
|
55
|
+
// This ensures we query profiles from the same region the client will use
|
|
56
|
+
const region = getAWSRegion()
|
|
57
|
+
|
|
58
|
+
const skipAuth = isEnvTruthy(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)
|
|
59
|
+
|
|
60
|
+
const clientConfig: ConstructorParameters<typeof BedrockClient>[0] = {
|
|
61
|
+
region,
|
|
62
|
+
...(process.env.ANTHROPIC_BEDROCK_BASE_URL && {
|
|
63
|
+
endpoint: process.env.ANTHROPIC_BEDROCK_BASE_URL,
|
|
64
|
+
}),
|
|
65
|
+
...(await getAWSClientProxyConfig()),
|
|
66
|
+
...(skipAuth && {
|
|
67
|
+
requestHandler: new (
|
|
68
|
+
await import('@smithy/node-http-handler')
|
|
69
|
+
).NodeHttpHandler(),
|
|
70
|
+
httpAuthSchemes: [
|
|
71
|
+
{
|
|
72
|
+
schemeId: 'smithy.api#noAuth',
|
|
73
|
+
identityProvider: () => async () => ({}),
|
|
74
|
+
signer: new (await import('@smithy/core')).NoAuthSigner(),
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
httpAuthSchemeProvider: () => [{ schemeId: 'smithy.api#noAuth' }],
|
|
78
|
+
}),
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (!skipAuth && !process.env.AWS_BEARER_TOKEN_BEDROCK) {
|
|
82
|
+
// Only refresh credentials if not using API key authentication
|
|
83
|
+
const cachedCredentials = await refreshAndGetAwsCredentials()
|
|
84
|
+
if (cachedCredentials) {
|
|
85
|
+
clientConfig.credentials = {
|
|
86
|
+
accessKeyId: cachedCredentials.accessKeyId,
|
|
87
|
+
secretAccessKey: cachedCredentials.secretAccessKey,
|
|
88
|
+
sessionToken: cachedCredentials.sessionToken,
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return new BedrockClient(clientConfig)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export async function createBedrockRuntimeClient() {
|
|
97
|
+
const { BedrockRuntimeClient } = await import(
|
|
98
|
+
'@aws-sdk/client-bedrock-runtime'
|
|
99
|
+
)
|
|
100
|
+
const region = getAWSRegion()
|
|
101
|
+
const skipAuth = isEnvTruthy(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)
|
|
102
|
+
|
|
103
|
+
const clientConfig: ConstructorParameters<typeof BedrockRuntimeClient>[0] = {
|
|
104
|
+
region,
|
|
105
|
+
...(process.env.ANTHROPIC_BEDROCK_BASE_URL && {
|
|
106
|
+
endpoint: process.env.ANTHROPIC_BEDROCK_BASE_URL,
|
|
107
|
+
}),
|
|
108
|
+
...(await getAWSClientProxyConfig()),
|
|
109
|
+
...(skipAuth && {
|
|
110
|
+
// BedrockRuntimeClient defaults to HTTP/2 without fallback
|
|
111
|
+
// proxy servers may not support this, so we explicitly force HTTP/1.1
|
|
112
|
+
requestHandler: new (
|
|
113
|
+
await import('@smithy/node-http-handler')
|
|
114
|
+
).NodeHttpHandler(),
|
|
115
|
+
httpAuthSchemes: [
|
|
116
|
+
{
|
|
117
|
+
schemeId: 'smithy.api#noAuth',
|
|
118
|
+
identityProvider: () => async () => ({}),
|
|
119
|
+
signer: new (await import('@smithy/core')).NoAuthSigner(),
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
httpAuthSchemeProvider: () => [{ schemeId: 'smithy.api#noAuth' }],
|
|
123
|
+
}),
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (!skipAuth && !process.env.AWS_BEARER_TOKEN_BEDROCK) {
|
|
127
|
+
// Only refresh credentials if not using API key authentication
|
|
128
|
+
const cachedCredentials = await refreshAndGetAwsCredentials()
|
|
129
|
+
if (cachedCredentials) {
|
|
130
|
+
clientConfig.credentials = {
|
|
131
|
+
accessKeyId: cachedCredentials.accessKeyId,
|
|
132
|
+
secretAccessKey: cachedCredentials.secretAccessKey,
|
|
133
|
+
sessionToken: cachedCredentials.sessionToken,
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return new BedrockRuntimeClient(clientConfig)
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export const getInferenceProfileBackingModel = memoize(async function (
|
|
142
|
+
profileId: string,
|
|
143
|
+
): Promise<string | null> {
|
|
144
|
+
try {
|
|
145
|
+
const [client, { GetInferenceProfileCommand }] = await Promise.all([
|
|
146
|
+
createBedrockClient(),
|
|
147
|
+
import('@aws-sdk/client-bedrock'),
|
|
148
|
+
])
|
|
149
|
+
const command = new GetInferenceProfileCommand({
|
|
150
|
+
inferenceProfileIdentifier: profileId,
|
|
151
|
+
})
|
|
152
|
+
const response = await client.send(command)
|
|
153
|
+
|
|
154
|
+
if (!response.models || response.models.length === 0) {
|
|
155
|
+
return null
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Use the first model as the primary backing model for cost calculation
|
|
159
|
+
// In practice, application inference profiles typically load balance between
|
|
160
|
+
// similar models with the same cost structure
|
|
161
|
+
const primaryModel = response.models[0]
|
|
162
|
+
if (!primaryModel?.modelArn) {
|
|
163
|
+
return null
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Extract model name from ARN
|
|
167
|
+
// ARN format: arn:aws:bedrock:region:account:foundation-model/model-name
|
|
168
|
+
const lastSlashIndex = primaryModel.modelArn.lastIndexOf('/')
|
|
169
|
+
return lastSlashIndex >= 0
|
|
170
|
+
? primaryModel.modelArn.substring(lastSlashIndex + 1)
|
|
171
|
+
: primaryModel.modelArn
|
|
172
|
+
} catch (error) {
|
|
173
|
+
logError(error as Error)
|
|
174
|
+
return null
|
|
175
|
+
}
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Check if a model ID is a foundation model (e.g., "anthropic.claude-sonnet-4-5-20250929-v1:0")
|
|
180
|
+
*/
|
|
181
|
+
export function isFoundationModel(modelId: string): boolean {
|
|
182
|
+
return modelId.startsWith('anthropic.')
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Cross-region inference profile prefixes for Bedrock.
|
|
187
|
+
* These prefixes allow routing requests to models in specific regions.
|
|
188
|
+
*/
|
|
189
|
+
const BEDROCK_REGION_PREFIXES = ['us', 'eu', 'apac', 'global'] as const
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Extract the model/inference profile ID from a Bedrock ARN.
|
|
193
|
+
* If the input is not an ARN, returns it unchanged.
|
|
194
|
+
*
|
|
195
|
+
* ARN format: arn:aws:bedrock:<region>:<account>:inference-profile/<profile-id>
|
|
196
|
+
* Also handles: arn:aws:bedrock:<region>:<account>:application-inference-profile/<profile-id>
|
|
197
|
+
* And foundation model ARNs: arn:aws:bedrock:<region>::foundation-model/<model-id>
|
|
198
|
+
*/
|
|
199
|
+
export function extractModelIdFromArn(modelId: string): string {
|
|
200
|
+
if (!modelId.startsWith('arn:')) {
|
|
201
|
+
return modelId
|
|
202
|
+
}
|
|
203
|
+
const lastSlashIndex = modelId.lastIndexOf('/')
|
|
204
|
+
if (lastSlashIndex === -1) {
|
|
205
|
+
return modelId
|
|
206
|
+
}
|
|
207
|
+
return modelId.substring(lastSlashIndex + 1)
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export type BedrockRegionPrefix = (typeof BEDROCK_REGION_PREFIXES)[number]
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Extract the region prefix from a Bedrock cross-region inference model ID.
|
|
214
|
+
* Handles both plain model IDs and full ARN format.
|
|
215
|
+
* For example:
|
|
216
|
+
* - "eu.anthropic.claude-sonnet-4-5-20250929-v1:0" → "eu"
|
|
217
|
+
* - "us.anthropic.claude-3-7-sonnet-20250219-v1:0" → "us"
|
|
218
|
+
* - "arn:aws:bedrock:ap-northeast-2:123:inference-profile/global.anthropic.claude-opus-4-6-v1" → "global"
|
|
219
|
+
* - "anthropic.claude-3-5-sonnet-20241022-v2:0" → undefined (foundation model)
|
|
220
|
+
* - "claude-sonnet-4-5-20250929" → undefined (first-party format)
|
|
221
|
+
*/
|
|
222
|
+
export function getBedrockRegionPrefix(
|
|
223
|
+
modelId: string,
|
|
224
|
+
): BedrockRegionPrefix | undefined {
|
|
225
|
+
// Extract the inference profile ID from ARN format if present
|
|
226
|
+
// ARN format: arn:aws:bedrock:<region>:<account>:inference-profile/<profile-id>
|
|
227
|
+
const effectiveModelId = extractModelIdFromArn(modelId)
|
|
228
|
+
|
|
229
|
+
for (const prefix of BEDROCK_REGION_PREFIXES) {
|
|
230
|
+
if (effectiveModelId.startsWith(`${prefix}.anthropic.`)) {
|
|
231
|
+
return prefix
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return undefined
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Apply a region prefix to a Bedrock model ID.
|
|
239
|
+
* If the model already has a different region prefix, it will be replaced.
|
|
240
|
+
* If the model is a foundation model (anthropic.*), the prefix will be added.
|
|
241
|
+
* If the model is not a Bedrock model, it will be returned as-is.
|
|
242
|
+
*
|
|
243
|
+
* For example:
|
|
244
|
+
* - applyBedrockRegionPrefix("us.anthropic.claude-sonnet-4-5-v1:0", "eu") → "eu.anthropic.claude-sonnet-4-5-v1:0"
|
|
245
|
+
* - applyBedrockRegionPrefix("anthropic.claude-sonnet-4-5-v1:0", "eu") → "eu.anthropic.claude-sonnet-4-5-v1:0"
|
|
246
|
+
* - applyBedrockRegionPrefix("claude-sonnet-4-5-20250929", "eu") → "claude-sonnet-4-5-20250929" (not a Bedrock model)
|
|
247
|
+
*/
|
|
248
|
+
export function applyBedrockRegionPrefix(
|
|
249
|
+
modelId: string,
|
|
250
|
+
prefix: BedrockRegionPrefix,
|
|
251
|
+
): string {
|
|
252
|
+
// Check if it already has a region prefix and replace it
|
|
253
|
+
const existingPrefix = getBedrockRegionPrefix(modelId)
|
|
254
|
+
if (existingPrefix) {
|
|
255
|
+
return modelId.replace(`${existingPrefix}.`, `${prefix}.`)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Check if it's a foundation model (anthropic.*) and add the prefix
|
|
259
|
+
if (isFoundationModel(modelId)) {
|
|
260
|
+
return `${prefix}.${modelId}`
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Not a Bedrock model format, return as-is
|
|
264
|
+
return modelId
|
|
265
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { OverageDisabledReason } from 'src/services/claudeAiLimits.js'
|
|
2
|
+
import { isClaudeAISubscriber } from '../auth.js'
|
|
3
|
+
import { getGlobalConfig } from '../config.js'
|
|
4
|
+
import { is1mContextDisabled } from '../context.js'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Check if extra usage is enabled based on the cached disabled reason.
|
|
8
|
+
* Extra usage is considered enabled if there's no disabled reason,
|
|
9
|
+
* or if the disabled reason indicates it's provisioned but temporarily unavailable.
|
|
10
|
+
*/
|
|
11
|
+
function isExtraUsageEnabled(): boolean {
|
|
12
|
+
const reason = getGlobalConfig().cachedExtraUsageDisabledReason
|
|
13
|
+
// undefined = no cache yet, treat as not enabled (conservative)
|
|
14
|
+
if (reason === undefined) {
|
|
15
|
+
return false
|
|
16
|
+
}
|
|
17
|
+
// null = no disabled reason from API, extra usage is enabled
|
|
18
|
+
if (reason === null) {
|
|
19
|
+
return true
|
|
20
|
+
}
|
|
21
|
+
// Check which disabled reasons still mean "provisioned"
|
|
22
|
+
switch (reason as OverageDisabledReason) {
|
|
23
|
+
// Provisioned but credits depleted — still counts as enabled
|
|
24
|
+
case 'out_of_credits':
|
|
25
|
+
return true
|
|
26
|
+
// Not provisioned or actively disabled
|
|
27
|
+
case 'overage_not_provisioned':
|
|
28
|
+
case 'org_level_disabled':
|
|
29
|
+
case 'org_level_disabled_until':
|
|
30
|
+
case 'seat_tier_level_disabled':
|
|
31
|
+
case 'member_level_disabled':
|
|
32
|
+
case 'seat_tier_zero_credit_limit':
|
|
33
|
+
case 'group_zero_credit_limit':
|
|
34
|
+
case 'member_zero_credit_limit':
|
|
35
|
+
case 'org_service_level_disabled':
|
|
36
|
+
case 'org_service_zero_credit_limit':
|
|
37
|
+
case 'no_limits_configured':
|
|
38
|
+
case 'unknown':
|
|
39
|
+
return false
|
|
40
|
+
default:
|
|
41
|
+
return false
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// @[MODEL LAUNCH]: Add check if the new model supports 1M context
|
|
46
|
+
export function checkOpus1mAccess(): boolean {
|
|
47
|
+
if (is1mContextDisabled()) {
|
|
48
|
+
return false
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (isClaudeAISubscriber()) {
|
|
52
|
+
// Subscribers have access if extra usage is enabled for their account
|
|
53
|
+
return isExtraUsageEnabled()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Non-subscribers (API/PAYG) have access
|
|
57
|
+
return true
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function checkSonnet1mAccess(): boolean {
|
|
61
|
+
if (is1mContextDisabled()) {
|
|
62
|
+
return false
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (isClaudeAISubscriber()) {
|
|
66
|
+
// Subscribers have access if extra usage is enabled for their account
|
|
67
|
+
return isExtraUsageEnabled()
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Non-subscribers (API/PAYG) have access
|
|
71
|
+
return true
|
|
72
|
+
}
|