@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,45 @@
|
|
|
1
|
+
import { env } from '../utils/env.js'
|
|
2
|
+
|
|
3
|
+
// The former is better vertically aligned, but isn't usually supported on Windows/Linux
|
|
4
|
+
export const BLACK_CIRCLE = env.platform === 'darwin' ? '⏺' : '●'
|
|
5
|
+
export const BULLET_OPERATOR = '∙'
|
|
6
|
+
export const TEARDROP_ASTERISK = '✻'
|
|
7
|
+
export const UP_ARROW = '\u2191' // ↑ - used for opus 1m merge notice
|
|
8
|
+
export const DOWN_ARROW = '\u2193' // ↓ - used for scroll hint
|
|
9
|
+
export const LIGHTNING_BOLT = '↯' // \u21af - used for fast mode indicator
|
|
10
|
+
export const EFFORT_LOW = '○' // \u25cb - effort level: low
|
|
11
|
+
export const EFFORT_MEDIUM = '◐' // \u25d0 - effort level: medium
|
|
12
|
+
export const EFFORT_HIGH = '●' // \u25cf - effort level: high
|
|
13
|
+
export const EFFORT_MAX = '◉' // \u25c9 - effort level: max (Opus 4.6 only)
|
|
14
|
+
|
|
15
|
+
// Media/trigger status indicators
|
|
16
|
+
export const PLAY_ICON = '\u25b6' // ▶
|
|
17
|
+
export const PAUSE_ICON = '\u23f8' // ⏸
|
|
18
|
+
|
|
19
|
+
// MCP subscription indicators
|
|
20
|
+
export const REFRESH_ARROW = '\u21bb' // ↻ - used for resource update indicator
|
|
21
|
+
export const CHANNEL_ARROW = '\u2190' // ← - inbound channel message indicator
|
|
22
|
+
export const INJECTED_ARROW = '\u2192' // → - cross-session injected message indicator
|
|
23
|
+
export const FORK_GLYPH = '\u2442' // ⑂ - fork directive indicator
|
|
24
|
+
|
|
25
|
+
// Review status indicators (ultrareview diamond states)
|
|
26
|
+
export const DIAMOND_OPEN = '\u25c7' // ◇ - running
|
|
27
|
+
export const DIAMOND_FILLED = '\u25c6' // ◆ - completed/failed
|
|
28
|
+
export const REFERENCE_MARK = '\u203b' // ※ - komejirushi, away-summary recap marker
|
|
29
|
+
|
|
30
|
+
// Issue flag indicator
|
|
31
|
+
export const FLAG_ICON = '\u2691' // ⚑ - used for issue flag banner
|
|
32
|
+
|
|
33
|
+
// Blockquote indicator
|
|
34
|
+
export const BLOCKQUOTE_BAR = '\u258e' // ▎ - left one-quarter block, used as blockquote line prefix
|
|
35
|
+
export const HEAVY_HORIZONTAL = '\u2501' // ━ - heavy box-drawing horizontal
|
|
36
|
+
|
|
37
|
+
// Bridge status indicators
|
|
38
|
+
export const BRIDGE_SPINNER_FRAMES = [
|
|
39
|
+
'\u00b7|\u00b7',
|
|
40
|
+
'\u00b7/\u00b7',
|
|
41
|
+
'\u00b7\u2014\u00b7',
|
|
42
|
+
'\u00b7\\\u00b7',
|
|
43
|
+
]
|
|
44
|
+
export const BRIDGE_READY_INDICATOR = '\u00b7\u2714\ufe0e\u00b7'
|
|
45
|
+
export const BRIDGE_FAILED_INDICATOR = '\u00d7'
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary file extensions to skip for text-based operations.
|
|
3
|
+
* These files can't be meaningfully compared as text and are often large.
|
|
4
|
+
*/
|
|
5
|
+
export const BINARY_EXTENSIONS = new Set([
|
|
6
|
+
// Images
|
|
7
|
+
'.png',
|
|
8
|
+
'.jpg',
|
|
9
|
+
'.jpeg',
|
|
10
|
+
'.gif',
|
|
11
|
+
'.bmp',
|
|
12
|
+
'.ico',
|
|
13
|
+
'.webp',
|
|
14
|
+
'.tiff',
|
|
15
|
+
'.tif',
|
|
16
|
+
// Videos
|
|
17
|
+
'.mp4',
|
|
18
|
+
'.mov',
|
|
19
|
+
'.avi',
|
|
20
|
+
'.mkv',
|
|
21
|
+
'.webm',
|
|
22
|
+
'.wmv',
|
|
23
|
+
'.flv',
|
|
24
|
+
'.m4v',
|
|
25
|
+
'.mpeg',
|
|
26
|
+
'.mpg',
|
|
27
|
+
// Audio
|
|
28
|
+
'.mp3',
|
|
29
|
+
'.wav',
|
|
30
|
+
'.ogg',
|
|
31
|
+
'.flac',
|
|
32
|
+
'.aac',
|
|
33
|
+
'.m4a',
|
|
34
|
+
'.wma',
|
|
35
|
+
'.aiff',
|
|
36
|
+
'.opus',
|
|
37
|
+
// Archives
|
|
38
|
+
'.zip',
|
|
39
|
+
'.tar',
|
|
40
|
+
'.gz',
|
|
41
|
+
'.bz2',
|
|
42
|
+
'.7z',
|
|
43
|
+
'.rar',
|
|
44
|
+
'.xz',
|
|
45
|
+
'.z',
|
|
46
|
+
'.tgz',
|
|
47
|
+
'.iso',
|
|
48
|
+
// Executables/binaries
|
|
49
|
+
'.exe',
|
|
50
|
+
'.dll',
|
|
51
|
+
'.so',
|
|
52
|
+
'.dylib',
|
|
53
|
+
'.bin',
|
|
54
|
+
'.o',
|
|
55
|
+
'.a',
|
|
56
|
+
'.obj',
|
|
57
|
+
'.lib',
|
|
58
|
+
'.app',
|
|
59
|
+
'.msi',
|
|
60
|
+
'.deb',
|
|
61
|
+
'.rpm',
|
|
62
|
+
// Documents (PDF is here; FileReadTool excludes it at the call site)
|
|
63
|
+
'.pdf',
|
|
64
|
+
'.doc',
|
|
65
|
+
'.docx',
|
|
66
|
+
'.xls',
|
|
67
|
+
'.xlsx',
|
|
68
|
+
'.ppt',
|
|
69
|
+
'.pptx',
|
|
70
|
+
'.odt',
|
|
71
|
+
'.ods',
|
|
72
|
+
'.odp',
|
|
73
|
+
// Fonts
|
|
74
|
+
'.ttf',
|
|
75
|
+
'.otf',
|
|
76
|
+
'.woff',
|
|
77
|
+
'.woff2',
|
|
78
|
+
'.eot',
|
|
79
|
+
// Bytecode / VM artifacts
|
|
80
|
+
'.pyc',
|
|
81
|
+
'.pyo',
|
|
82
|
+
'.class',
|
|
83
|
+
'.jar',
|
|
84
|
+
'.war',
|
|
85
|
+
'.ear',
|
|
86
|
+
'.node',
|
|
87
|
+
'.wasm',
|
|
88
|
+
'.rlib',
|
|
89
|
+
// Database files
|
|
90
|
+
'.sqlite',
|
|
91
|
+
'.sqlite3',
|
|
92
|
+
'.db',
|
|
93
|
+
'.mdb',
|
|
94
|
+
'.idx',
|
|
95
|
+
// Design / 3D
|
|
96
|
+
'.psd',
|
|
97
|
+
'.ai',
|
|
98
|
+
'.eps',
|
|
99
|
+
'.sketch',
|
|
100
|
+
'.fig',
|
|
101
|
+
'.xd',
|
|
102
|
+
'.blend',
|
|
103
|
+
'.3ds',
|
|
104
|
+
'.max',
|
|
105
|
+
// Flash
|
|
106
|
+
'.swf',
|
|
107
|
+
'.fla',
|
|
108
|
+
// Lock/profiling data
|
|
109
|
+
'.lockb',
|
|
110
|
+
'.dat',
|
|
111
|
+
'.data',
|
|
112
|
+
])
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Check if a file path has a binary extension.
|
|
116
|
+
*/
|
|
117
|
+
export function hasBinaryExtension(filePath: string): boolean {
|
|
118
|
+
const ext = filePath.slice(filePath.lastIndexOf('.')).toLowerCase()
|
|
119
|
+
return BINARY_EXTENSIONS.has(ext)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Number of bytes to read for binary content detection.
|
|
124
|
+
*/
|
|
125
|
+
const BINARY_CHECK_SIZE = 8192
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Check if a buffer contains binary content by looking for null bytes
|
|
129
|
+
* or a high proportion of non-printable characters.
|
|
130
|
+
*/
|
|
131
|
+
export function isBinaryContent(buffer: Buffer): boolean {
|
|
132
|
+
// Check first BINARY_CHECK_SIZE bytes (or full buffer if smaller)
|
|
133
|
+
const checkSize = Math.min(buffer.length, BINARY_CHECK_SIZE)
|
|
134
|
+
|
|
135
|
+
let nonPrintable = 0
|
|
136
|
+
for (let i = 0; i < checkSize; i++) {
|
|
137
|
+
const byte = buffer[i]!
|
|
138
|
+
// Null byte is a strong indicator of binary
|
|
139
|
+
if (byte === 0) {
|
|
140
|
+
return true
|
|
141
|
+
}
|
|
142
|
+
// Count non-printable, non-whitespace bytes
|
|
143
|
+
// Printable ASCII is 32-126, plus common whitespace (9, 10, 13)
|
|
144
|
+
if (
|
|
145
|
+
byte < 32 &&
|
|
146
|
+
byte !== 9 && // tab
|
|
147
|
+
byte !== 10 && // newline
|
|
148
|
+
byte !== 13 // carriage return
|
|
149
|
+
) {
|
|
150
|
+
nonPrintable++
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// If more than 10% non-printable, likely binary
|
|
155
|
+
return nonPrintable / checkSize > 0.1
|
|
156
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
export const PR_TITLE = 'Add Claude Code GitHub Workflow'
|
|
2
|
+
|
|
3
|
+
export const GITHUB_ACTION_SETUP_DOCS_URL =
|
|
4
|
+
'https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md'
|
|
5
|
+
|
|
6
|
+
export const WORKFLOW_CONTENT = `name: Claude Code
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
issue_comment:
|
|
10
|
+
types: [created]
|
|
11
|
+
pull_request_review_comment:
|
|
12
|
+
types: [created]
|
|
13
|
+
issues:
|
|
14
|
+
types: [opened, assigned]
|
|
15
|
+
pull_request_review:
|
|
16
|
+
types: [submitted]
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
claude:
|
|
20
|
+
if: |
|
|
21
|
+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
22
|
+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
23
|
+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
|
24
|
+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
permissions:
|
|
27
|
+
contents: read
|
|
28
|
+
pull-requests: read
|
|
29
|
+
issues: read
|
|
30
|
+
id-token: write
|
|
31
|
+
actions: read # Required for Claude to read CI results on PRs
|
|
32
|
+
steps:
|
|
33
|
+
- name: Checkout repository
|
|
34
|
+
uses: actions/checkout@v4
|
|
35
|
+
with:
|
|
36
|
+
fetch-depth: 1
|
|
37
|
+
|
|
38
|
+
- name: Run Claude Code
|
|
39
|
+
id: claude
|
|
40
|
+
uses: anthropics/claude-code-action@v1
|
|
41
|
+
with:
|
|
42
|
+
anthropic_api_key: \${{ secrets.ANTHROPIC_API_KEY }}
|
|
43
|
+
|
|
44
|
+
# This is an optional setting that allows Claude to read CI results on PRs
|
|
45
|
+
additional_permissions: |
|
|
46
|
+
actions: read
|
|
47
|
+
|
|
48
|
+
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
|
|
49
|
+
# prompt: 'Update the pull request description to include a summary of changes.'
|
|
50
|
+
|
|
51
|
+
# Optional: Add claude_args to customize behavior and configuration
|
|
52
|
+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
|
|
53
|
+
# or https://code.claude.com/docs/en/cli-reference for available options
|
|
54
|
+
# claude_args: '--allowed-tools Bash(gh pr:*)'
|
|
55
|
+
|
|
56
|
+
`
|
|
57
|
+
|
|
58
|
+
export const PR_BODY = `## 🤖 Installing Claude Code GitHub App
|
|
59
|
+
|
|
60
|
+
This PR adds a GitHub Actions workflow that enables Claude Code integration in our repository.
|
|
61
|
+
|
|
62
|
+
### What is Claude Code?
|
|
63
|
+
|
|
64
|
+
[Claude Code](https://claude.com/claude-code) is an AI coding agent that can help with:
|
|
65
|
+
- Bug fixes and improvements
|
|
66
|
+
- Documentation updates
|
|
67
|
+
- Implementing new features
|
|
68
|
+
- Code reviews and suggestions
|
|
69
|
+
- Writing tests
|
|
70
|
+
- And more!
|
|
71
|
+
|
|
72
|
+
### How it works
|
|
73
|
+
|
|
74
|
+
Once this PR is merged, we'll be able to interact with Claude by mentioning @claude in a pull request or issue comment.
|
|
75
|
+
Once the workflow is triggered, Claude will analyze the comment and surrounding context, and execute on the request in a GitHub action.
|
|
76
|
+
|
|
77
|
+
### Important Notes
|
|
78
|
+
|
|
79
|
+
- **This workflow won't take effect until this PR is merged**
|
|
80
|
+
- **@claude mentions won't work until after the merge is complete**
|
|
81
|
+
- The workflow runs automatically whenever Claude is mentioned in PR or issue comments
|
|
82
|
+
- Claude gets access to the entire PR or issue context including files, diffs, and previous comments
|
|
83
|
+
|
|
84
|
+
### Security
|
|
85
|
+
|
|
86
|
+
- Our Anthropic API key is securely stored as a GitHub Actions secret
|
|
87
|
+
- Only users with write access to the repository can trigger the workflow
|
|
88
|
+
- All Claude runs are stored in the GitHub Actions run history
|
|
89
|
+
- Claude's default tools are limited to reading/writing files and interacting with our repo by creating comments, branches, and commits.
|
|
90
|
+
- We can add more allowed tools by adding them to the workflow file like:
|
|
91
|
+
|
|
92
|
+
\`\`\`
|
|
93
|
+
allowed_tools: Bash(npm install),Bash(npm run build),Bash(npm run lint),Bash(npm run test)
|
|
94
|
+
\`\`\`
|
|
95
|
+
|
|
96
|
+
There's more information in the [Claude Code action repo](https://github.com/anthropics/claude-code-action).
|
|
97
|
+
|
|
98
|
+
After merging this PR, let's try mentioning @claude in a comment on any PR to get started!`
|
|
99
|
+
|
|
100
|
+
export const CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT = `name: Claude Code Review
|
|
101
|
+
|
|
102
|
+
on:
|
|
103
|
+
pull_request:
|
|
104
|
+
types: [opened, synchronize, ready_for_review, reopened]
|
|
105
|
+
# Optional: Only run on specific file changes
|
|
106
|
+
# paths:
|
|
107
|
+
# - "src/**/*.ts"
|
|
108
|
+
# - "src/**/*.tsx"
|
|
109
|
+
# - "src/**/*.js"
|
|
110
|
+
# - "src/**/*.jsx"
|
|
111
|
+
|
|
112
|
+
jobs:
|
|
113
|
+
claude-review:
|
|
114
|
+
# Optional: Filter by PR author
|
|
115
|
+
# if: |
|
|
116
|
+
# github.event.pull_request.user.login == 'external-contributor' ||
|
|
117
|
+
# github.event.pull_request.user.login == 'new-developer' ||
|
|
118
|
+
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
|
|
119
|
+
|
|
120
|
+
runs-on: ubuntu-latest
|
|
121
|
+
permissions:
|
|
122
|
+
contents: read
|
|
123
|
+
pull-requests: read
|
|
124
|
+
issues: read
|
|
125
|
+
id-token: write
|
|
126
|
+
|
|
127
|
+
steps:
|
|
128
|
+
- name: Checkout repository
|
|
129
|
+
uses: actions/checkout@v4
|
|
130
|
+
with:
|
|
131
|
+
fetch-depth: 1
|
|
132
|
+
|
|
133
|
+
- name: Run Claude Code Review
|
|
134
|
+
id: claude-review
|
|
135
|
+
uses: anthropics/claude-code-action@v1
|
|
136
|
+
with:
|
|
137
|
+
anthropic_api_key: \${{ secrets.ANTHROPIC_API_KEY }}
|
|
138
|
+
plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
|
|
139
|
+
plugins: 'code-review@claude-code-plugins'
|
|
140
|
+
prompt: '/code-review:code-review \${{ github.repository }}/pull/\${{ github.event.pull_request.number }}'
|
|
141
|
+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
|
|
142
|
+
# or https://code.claude.com/docs/en/cli-reference for available options
|
|
143
|
+
|
|
144
|
+
`
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { isEnvTruthy } from '../utils/envUtils.js'
|
|
2
|
+
|
|
3
|
+
// Lazy read so ENABLE_GROWTHBOOK_DEV from globalSettings.env (applied after
|
|
4
|
+
// module load) is picked up. USER_TYPE is a build-time define so it's safe.
|
|
5
|
+
export function getGrowthBookClientKey(): string {
|
|
6
|
+
return process.env.USER_TYPE === 'ant'
|
|
7
|
+
? isEnvTruthy(process.env.ENABLE_GROWTHBOOK_DEV)
|
|
8
|
+
? 'sdk-yZQvlplybuXjYh6L'
|
|
9
|
+
: 'sdk-xRVcrliHIlrg4og4'
|
|
10
|
+
: 'sdk-zAZezfDKGoZuXXKe'
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const NO_CONTENT_MESSAGE = '(no content)'
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { isEnvTruthy } from 'src/utils/envUtils.js'
|
|
2
|
+
|
|
3
|
+
// Default to prod config, override with test/staging if enabled
|
|
4
|
+
type OauthConfigType = 'prod' | 'staging' | 'local'
|
|
5
|
+
|
|
6
|
+
function getOauthConfigType(): OauthConfigType {
|
|
7
|
+
if (process.env.USER_TYPE === 'ant') {
|
|
8
|
+
if (isEnvTruthy(process.env.USE_LOCAL_OAUTH)) {
|
|
9
|
+
return 'local'
|
|
10
|
+
}
|
|
11
|
+
if (isEnvTruthy(process.env.USE_STAGING_OAUTH)) {
|
|
12
|
+
return 'staging'
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return 'prod'
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function fileSuffixForOauthConfig(): string {
|
|
19
|
+
if (process.env.CLAUDE_CODE_CUSTOM_OAUTH_URL) {
|
|
20
|
+
return '-custom-oauth'
|
|
21
|
+
}
|
|
22
|
+
switch (getOauthConfigType()) {
|
|
23
|
+
case 'local':
|
|
24
|
+
return '-local-oauth'
|
|
25
|
+
case 'staging':
|
|
26
|
+
return '-staging-oauth'
|
|
27
|
+
case 'prod':
|
|
28
|
+
// No suffix for production config
|
|
29
|
+
return ''
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const CLAUDE_AI_INFERENCE_SCOPE = 'user:inference' as const
|
|
34
|
+
export const CLAUDE_AI_PROFILE_SCOPE = 'user:profile' as const
|
|
35
|
+
const CONSOLE_SCOPE = 'org:create_api_key' as const
|
|
36
|
+
export const OAUTH_BETA_HEADER = 'oauth-2025-04-20' as const
|
|
37
|
+
|
|
38
|
+
// Console OAuth scopes - for API key creation via Console
|
|
39
|
+
export const CONSOLE_OAUTH_SCOPES = [
|
|
40
|
+
CONSOLE_SCOPE,
|
|
41
|
+
CLAUDE_AI_PROFILE_SCOPE,
|
|
42
|
+
] as const
|
|
43
|
+
|
|
44
|
+
// Claude.ai OAuth scopes - for Claude.ai subscribers (Pro/Max/Team/Enterprise)
|
|
45
|
+
export const CLAUDE_AI_OAUTH_SCOPES = [
|
|
46
|
+
CLAUDE_AI_PROFILE_SCOPE,
|
|
47
|
+
CLAUDE_AI_INFERENCE_SCOPE,
|
|
48
|
+
'user:sessions:claude_code',
|
|
49
|
+
'user:mcp_servers',
|
|
50
|
+
'user:file_upload',
|
|
51
|
+
] as const
|
|
52
|
+
|
|
53
|
+
// All OAuth scopes - union of all scopes used in Claude CLI
|
|
54
|
+
// When logging in, request all scopes in order to handle both Console -> Claude.ai redirect
|
|
55
|
+
// Ensure that `OAuthConsentPage` in apps repo is kept in sync with this list.
|
|
56
|
+
export const ALL_OAUTH_SCOPES = Array.from(
|
|
57
|
+
new Set([...CONSOLE_OAUTH_SCOPES, ...CLAUDE_AI_OAUTH_SCOPES]),
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
type OauthConfig = {
|
|
61
|
+
BASE_API_URL: string
|
|
62
|
+
CONSOLE_AUTHORIZE_URL: string
|
|
63
|
+
CLAUDE_AI_AUTHORIZE_URL: string
|
|
64
|
+
/**
|
|
65
|
+
* The claude.ai web origin. Separate from CLAUDE_AI_AUTHORIZE_URL because
|
|
66
|
+
* that now routes through claude.com/cai/* for attribution — deriving
|
|
67
|
+
* .origin from it would give claude.com, breaking links to /code,
|
|
68
|
+
* /settings/connectors, and other claude.ai web pages.
|
|
69
|
+
*/
|
|
70
|
+
CLAUDE_AI_ORIGIN: string
|
|
71
|
+
TOKEN_URL: string
|
|
72
|
+
API_KEY_URL: string
|
|
73
|
+
ROLES_URL: string
|
|
74
|
+
CONSOLE_SUCCESS_URL: string
|
|
75
|
+
CLAUDEAI_SUCCESS_URL: string
|
|
76
|
+
MANUAL_REDIRECT_URL: string
|
|
77
|
+
CLIENT_ID: string
|
|
78
|
+
OAUTH_FILE_SUFFIX: string
|
|
79
|
+
MCP_PROXY_URL: string
|
|
80
|
+
MCP_PROXY_PATH: string
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Production OAuth configuration - Used in normal operation
|
|
84
|
+
const PROD_OAUTH_CONFIG = {
|
|
85
|
+
BASE_API_URL: 'https://api.anthropic.com',
|
|
86
|
+
CONSOLE_AUTHORIZE_URL: 'https://platform.claude.com/oauth/authorize',
|
|
87
|
+
// Bounces through claude.com/cai/* so CLI sign-ins connect to claude.com
|
|
88
|
+
// visits for attribution. 307s to claude.ai/oauth/authorize in two hops.
|
|
89
|
+
CLAUDE_AI_AUTHORIZE_URL: 'https://claude.com/cai/oauth/authorize',
|
|
90
|
+
CLAUDE_AI_ORIGIN: 'https://claude.ai',
|
|
91
|
+
TOKEN_URL: 'https://platform.claude.com/v1/oauth/token',
|
|
92
|
+
API_KEY_URL: 'https://api.anthropic.com/api/oauth/claude_cli/create_api_key',
|
|
93
|
+
ROLES_URL: 'https://api.anthropic.com/api/oauth/claude_cli/roles',
|
|
94
|
+
CONSOLE_SUCCESS_URL:
|
|
95
|
+
'https://platform.claude.com/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code',
|
|
96
|
+
CLAUDEAI_SUCCESS_URL:
|
|
97
|
+
'https://platform.claude.com/oauth/code/success?app=claude-code',
|
|
98
|
+
MANUAL_REDIRECT_URL: 'https://platform.claude.com/oauth/code/callback',
|
|
99
|
+
CLIENT_ID: '9d1c250a-e61b-44d9-88ed-5944d1962f5e',
|
|
100
|
+
// No suffix for production config
|
|
101
|
+
OAUTH_FILE_SUFFIX: '',
|
|
102
|
+
MCP_PROXY_URL: 'https://mcp-proxy.anthropic.com',
|
|
103
|
+
MCP_PROXY_PATH: '/v1/mcp/{server_id}',
|
|
104
|
+
} as const
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Client ID Metadata Document URL for MCP OAuth (CIMD / SEP-991).
|
|
108
|
+
* When an MCP auth server advertises client_id_metadata_document_supported: true,
|
|
109
|
+
* Claude Code uses this URL as its client_id instead of Dynamic Client Registration.
|
|
110
|
+
* The URL must point to a JSON document hosted by Anthropic.
|
|
111
|
+
* See: https://datatracker.ietf.org/doc/html/draft-ietf-oauth-client-id-metadata-document-00
|
|
112
|
+
*/
|
|
113
|
+
export const MCP_CLIENT_METADATA_URL =
|
|
114
|
+
'https://claude.ai/oauth/claude-code-client-metadata'
|
|
115
|
+
|
|
116
|
+
// Staging OAuth configuration - only included in ant builds with staging flag
|
|
117
|
+
// Uses literal check for dead code elimination
|
|
118
|
+
const STAGING_OAUTH_CONFIG =
|
|
119
|
+
process.env.USER_TYPE === 'ant'
|
|
120
|
+
? ({
|
|
121
|
+
BASE_API_URL: 'https://api-staging.anthropic.com',
|
|
122
|
+
CONSOLE_AUTHORIZE_URL:
|
|
123
|
+
'https://platform.staging.ant.dev/oauth/authorize',
|
|
124
|
+
CLAUDE_AI_AUTHORIZE_URL:
|
|
125
|
+
'https://claude-ai.staging.ant.dev/oauth/authorize',
|
|
126
|
+
CLAUDE_AI_ORIGIN: 'https://claude-ai.staging.ant.dev',
|
|
127
|
+
TOKEN_URL: 'https://platform.staging.ant.dev/v1/oauth/token',
|
|
128
|
+
API_KEY_URL:
|
|
129
|
+
'https://api-staging.anthropic.com/api/oauth/claude_cli/create_api_key',
|
|
130
|
+
ROLES_URL:
|
|
131
|
+
'https://api-staging.anthropic.com/api/oauth/claude_cli/roles',
|
|
132
|
+
CONSOLE_SUCCESS_URL:
|
|
133
|
+
'https://platform.staging.ant.dev/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code',
|
|
134
|
+
CLAUDEAI_SUCCESS_URL:
|
|
135
|
+
'https://platform.staging.ant.dev/oauth/code/success?app=claude-code',
|
|
136
|
+
MANUAL_REDIRECT_URL:
|
|
137
|
+
'https://platform.staging.ant.dev/oauth/code/callback',
|
|
138
|
+
CLIENT_ID: '22422756-60c9-4084-8eb7-27705fd5cf9a',
|
|
139
|
+
OAUTH_FILE_SUFFIX: '-staging-oauth',
|
|
140
|
+
MCP_PROXY_URL: 'https://mcp-proxy-staging.anthropic.com',
|
|
141
|
+
MCP_PROXY_PATH: '/v1/mcp/{server_id}',
|
|
142
|
+
} as const)
|
|
143
|
+
: undefined
|
|
144
|
+
|
|
145
|
+
// Three local dev servers: :8000 api-proxy (`api dev start -g ccr`),
|
|
146
|
+
// :4000 claude-ai frontend, :3000 Console frontend. Env vars let
|
|
147
|
+
// scripts/claude-localhost override if your layout differs.
|
|
148
|
+
function getLocalOauthConfig(): OauthConfig {
|
|
149
|
+
const api =
|
|
150
|
+
process.env.CLAUDE_LOCAL_OAUTH_API_BASE?.replace(/\/$/, '') ??
|
|
151
|
+
'http://localhost:8000'
|
|
152
|
+
const apps =
|
|
153
|
+
process.env.CLAUDE_LOCAL_OAUTH_APPS_BASE?.replace(/\/$/, '') ??
|
|
154
|
+
'http://localhost:4000'
|
|
155
|
+
const consoleBase =
|
|
156
|
+
process.env.CLAUDE_LOCAL_OAUTH_CONSOLE_BASE?.replace(/\/$/, '') ??
|
|
157
|
+
'http://localhost:3000'
|
|
158
|
+
return {
|
|
159
|
+
BASE_API_URL: api,
|
|
160
|
+
CONSOLE_AUTHORIZE_URL: `${consoleBase}/oauth/authorize`,
|
|
161
|
+
CLAUDE_AI_AUTHORIZE_URL: `${apps}/oauth/authorize`,
|
|
162
|
+
CLAUDE_AI_ORIGIN: apps,
|
|
163
|
+
TOKEN_URL: `${api}/v1/oauth/token`,
|
|
164
|
+
API_KEY_URL: `${api}/api/oauth/claude_cli/create_api_key`,
|
|
165
|
+
ROLES_URL: `${api}/api/oauth/claude_cli/roles`,
|
|
166
|
+
CONSOLE_SUCCESS_URL: `${consoleBase}/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code`,
|
|
167
|
+
CLAUDEAI_SUCCESS_URL: `${consoleBase}/oauth/code/success?app=claude-code`,
|
|
168
|
+
MANUAL_REDIRECT_URL: `${consoleBase}/oauth/code/callback`,
|
|
169
|
+
CLIENT_ID: '22422756-60c9-4084-8eb7-27705fd5cf9a',
|
|
170
|
+
OAUTH_FILE_SUFFIX: '-local-oauth',
|
|
171
|
+
MCP_PROXY_URL: 'http://localhost:8205',
|
|
172
|
+
MCP_PROXY_PATH: '/v1/toolbox/shttp/mcp/{server_id}',
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Allowed base URLs for CLAUDE_CODE_CUSTOM_OAUTH_URL override.
|
|
177
|
+
// Only FedStart/PubSec deployments are permitted to prevent OAuth tokens
|
|
178
|
+
// from being sent to arbitrary endpoints.
|
|
179
|
+
const ALLOWED_OAUTH_BASE_URLS = [
|
|
180
|
+
'https://beacon.claude-ai.staging.ant.dev',
|
|
181
|
+
'https://claude.fedstart.com',
|
|
182
|
+
'https://claude-staging.fedstart.com',
|
|
183
|
+
]
|
|
184
|
+
|
|
185
|
+
// Default to prod config, override with test/staging if enabled
|
|
186
|
+
export function getOauthConfig(): OauthConfig {
|
|
187
|
+
let config: OauthConfig = (() => {
|
|
188
|
+
switch (getOauthConfigType()) {
|
|
189
|
+
case 'local':
|
|
190
|
+
return getLocalOauthConfig()
|
|
191
|
+
case 'staging':
|
|
192
|
+
return STAGING_OAUTH_CONFIG ?? PROD_OAUTH_CONFIG
|
|
193
|
+
case 'prod':
|
|
194
|
+
return PROD_OAUTH_CONFIG
|
|
195
|
+
}
|
|
196
|
+
})()
|
|
197
|
+
|
|
198
|
+
// Allow overriding all OAuth URLs to point to an approved FedStart deployment.
|
|
199
|
+
// Only allowlisted base URLs are accepted to prevent credential leakage.
|
|
200
|
+
const oauthBaseUrl = process.env.CLAUDE_CODE_CUSTOM_OAUTH_URL
|
|
201
|
+
if (oauthBaseUrl) {
|
|
202
|
+
const base = oauthBaseUrl.replace(/\/$/, '')
|
|
203
|
+
if (!ALLOWED_OAUTH_BASE_URLS.includes(base)) {
|
|
204
|
+
throw new Error(
|
|
205
|
+
'CLAUDE_CODE_CUSTOM_OAUTH_URL is not an approved endpoint.',
|
|
206
|
+
)
|
|
207
|
+
}
|
|
208
|
+
config = {
|
|
209
|
+
...config,
|
|
210
|
+
BASE_API_URL: base,
|
|
211
|
+
CONSOLE_AUTHORIZE_URL: `${base}/oauth/authorize`,
|
|
212
|
+
CLAUDE_AI_AUTHORIZE_URL: `${base}/oauth/authorize`,
|
|
213
|
+
CLAUDE_AI_ORIGIN: base,
|
|
214
|
+
TOKEN_URL: `${base}/v1/oauth/token`,
|
|
215
|
+
API_KEY_URL: `${base}/api/oauth/claude_cli/create_api_key`,
|
|
216
|
+
ROLES_URL: `${base}/api/oauth/claude_cli/roles`,
|
|
217
|
+
CONSOLE_SUCCESS_URL: `${base}/oauth/code/success?app=claude-code`,
|
|
218
|
+
CLAUDEAI_SUCCESS_URL: `${base}/oauth/code/success?app=claude-code`,
|
|
219
|
+
MANUAL_REDIRECT_URL: `${base}/oauth/code/callback`,
|
|
220
|
+
OAUTH_FILE_SUFFIX: '-custom-oauth',
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Allow CLIENT_ID override via environment variable (e.g., for Xcode integration)
|
|
225
|
+
const clientIdOverride = process.env.CLAUDE_CODE_OAUTH_CLIENT_ID
|
|
226
|
+
if (clientIdOverride) {
|
|
227
|
+
config = {
|
|
228
|
+
...config,
|
|
229
|
+
CLIENT_ID: clientIdOverride,
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return config
|
|
234
|
+
}
|