@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 XortexAI
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# XCode
|
|
2
|
+
|
|
3
|
+
**AI-powered coding assistant with persistent memory.**
|
|
4
|
+
|
|
5
|
+
XCode is a terminal-based AI coding assistant that leverages **XMem** — a multi-modal, multi-agentic long-term memory layer — to remember context across sessions, projects, and platforms.
|
|
6
|
+
|
|
7
|
+
## 🌟 Features
|
|
8
|
+
|
|
9
|
+
- **🧠 Persistent Memory**: XMem integration remembers your preferences, codebase patterns, and conversation history
|
|
10
|
+
- **🤖 Multi-Model Support**: Use Claude, Gemini, Kimi K2.5, DeepSeek V3.2, and more via OpenRouter
|
|
11
|
+
- **💻 Code-First Design**: Built for developers with powerful code search, editing, and analysis tools
|
|
12
|
+
- **🔧 Extensible**: Plugin system for custom agents, tools, and integrations
|
|
13
|
+
- **🚀 Fast & Local**: Runs in your terminal with local file system access
|
|
14
|
+
|
|
15
|
+
## 📦 Installation
|
|
16
|
+
|
|
17
|
+
### Quick Install (Recommended)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Using curl
|
|
21
|
+
curl -fsSL https://raw.githubusercontent.com/XortexAI/XCode/main/install.sh | bash
|
|
22
|
+
|
|
23
|
+
# Or using wget
|
|
24
|
+
wget -qO- https://raw.githubusercontent.com/XortexAI/XCode/main/install.sh | bash
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Install via npm
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install -g @xortex/xcode
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Manual Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1. Clone the repository
|
|
37
|
+
git clone https://github.com/XortexAI/XCode.git ~/.xcode
|
|
38
|
+
|
|
39
|
+
# 2. Install dependencies
|
|
40
|
+
cd ~/.xcode
|
|
41
|
+
bun install # or: npm install
|
|
42
|
+
|
|
43
|
+
# 3. Create symlink
|
|
44
|
+
ln -s ~/.xcode/bin/xcode ~/.local/bin/xcode
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 🚀 Usage
|
|
48
|
+
|
|
49
|
+
### Start a Session
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
xcode
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Use Specific Models
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Gemini 2.5 Pro (recommended for coding)
|
|
59
|
+
xcode --model gemini-2.5-pro
|
|
60
|
+
|
|
61
|
+
# Kimi K2.5 (256K context window)
|
|
62
|
+
xcode --model kimi-k2.5
|
|
63
|
+
|
|
64
|
+
# DeepSeek V3.2 (strong reasoning)
|
|
65
|
+
xcode --model deepseek-v3.2
|
|
66
|
+
|
|
67
|
+
# Claude models (via Anthropic or OpenRouter)
|
|
68
|
+
xcode --model claude-sonnet-4.6
|
|
69
|
+
xcode --model claude-opus-4.6
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### OpenRouter Mode
|
|
73
|
+
|
|
74
|
+
Enable OpenRouter for access to all models:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
export CLAUDE_CODE_USE_OPENROUTER=1
|
|
78
|
+
export OPENROUTER_API_KEY=your-api-key
|
|
79
|
+
xcode
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 🔧 Configuration
|
|
83
|
+
|
|
84
|
+
### Environment Variables
|
|
85
|
+
|
|
86
|
+
| Variable | Description | Default |
|
|
87
|
+
|----------|-------------|---------|
|
|
88
|
+
| `OPENROUTER_API_KEY` | OpenRouter API key | - |
|
|
89
|
+
| `ANTHROPIC_API_KEY` | Anthropic API key (for Claude) | - |
|
|
90
|
+
| `GEMINI_API_KEY` | Google Gemini API key | - |
|
|
91
|
+
| `XMEM_API_URL` | XMem server URL | `http://localhost:8000` |
|
|
92
|
+
| `XMEM_API_KEY` | XMem API key | - |
|
|
93
|
+
| `CLAUDE_CODE_USE_OPENROUTER` | Enable OpenRouter | `false` |
|
|
94
|
+
|
|
95
|
+
### Setup XMem Memory Server
|
|
96
|
+
|
|
97
|
+
XCode works best with the XMem memory server:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# 1. Clone and start XMem
|
|
101
|
+
git clone https://github.com/XortexAI/XMem.git
|
|
102
|
+
cd XMem
|
|
103
|
+
pip install -e .
|
|
104
|
+
cp .env.example .env
|
|
105
|
+
# Edit .env with your API keys
|
|
106
|
+
uvicorn src.api.app:create_app --factory --host 0.0.0.0 --port 8000
|
|
107
|
+
|
|
108
|
+
# 2. In another terminal, start XCode
|
|
109
|
+
export XMEM_API_URL=http://localhost:8000
|
|
110
|
+
xcode
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 🛠️ Commands
|
|
114
|
+
|
|
115
|
+
Inside XCode, use these commands:
|
|
116
|
+
|
|
117
|
+
| Command | Description |
|
|
118
|
+
|---------|-------------|
|
|
119
|
+
| `/model <name>` | Switch AI model |
|
|
120
|
+
| `/memory` | Open memory file editor |
|
|
121
|
+
| `/compact` | Compact conversation context |
|
|
122
|
+
| `/clear` | Clear conversation history |
|
|
123
|
+
| `/quit` | Exit XCode |
|
|
124
|
+
|
|
125
|
+
## 🧪 Development
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Clone the repo
|
|
129
|
+
git clone https://github.com/XortexAI/XCode.git
|
|
130
|
+
cd XCode
|
|
131
|
+
|
|
132
|
+
# Install dependencies
|
|
133
|
+
bun install
|
|
134
|
+
|
|
135
|
+
# Run in development mode
|
|
136
|
+
bun run start
|
|
137
|
+
|
|
138
|
+
# Build for distribution
|
|
139
|
+
bun run build
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## 📚 Architecture
|
|
143
|
+
|
|
144
|
+
XCode consists of:
|
|
145
|
+
|
|
146
|
+
1. **Terminal UI**: React + Ink-based interactive interface
|
|
147
|
+
2. **Query Engine**: Multi-turn conversation loop with tool execution
|
|
148
|
+
3. **Memory Layer**: XMem integration for long-term storage
|
|
149
|
+
4. **Tool System**: Extensible tools for code search, editing, bash execution
|
|
150
|
+
5. **Model Router**: Unified interface for multiple LLM providers
|
|
151
|
+
|
|
152
|
+
## 🤝 Contributing
|
|
153
|
+
|
|
154
|
+
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
155
|
+
|
|
156
|
+
## 📄 License
|
|
157
|
+
|
|
158
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
159
|
+
|
|
160
|
+
## 🔗 Links
|
|
161
|
+
|
|
162
|
+
- **GitHub**: https://github.com/XortexAI/XCode
|
|
163
|
+
- **XMem**: https://github.com/XortexAI/XMem
|
|
164
|
+
- **OpenRouter**: https://openrouter.ai
|
|
165
|
+
- **Documentation**: https://github.com/XortexAI/XCode/tree/main/docs
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
**Made with ❤️ by XortexAI**
|
|
170
|
+
|
|
171
|
+
*Forget forgetting. Build with XMem.*
|
package/bin/xcode
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* XCode CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* This is the executable that gets installed when users run:
|
|
6
|
+
* - npm install -g @xortex/xcode
|
|
7
|
+
* - Or use the curl installer
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const { execSync } = require('child_process');
|
|
11
|
+
const path = require('path');
|
|
12
|
+
const fs = require('fs');
|
|
13
|
+
|
|
14
|
+
// Get the project root (where this script is located)
|
|
15
|
+
const projectRoot = path.resolve(__dirname, '..');
|
|
16
|
+
const mainScript = path.join(projectRoot, 'entrypoints', 'cli.tsx');
|
|
17
|
+
|
|
18
|
+
// Check if bun is available
|
|
19
|
+
function getRuntime() {
|
|
20
|
+
try {
|
|
21
|
+
execSync('bun --version', { stdio: 'ignore' });
|
|
22
|
+
return 'bun';
|
|
23
|
+
} catch {
|
|
24
|
+
try {
|
|
25
|
+
execSync('node --version', { stdio: 'ignore' });
|
|
26
|
+
// Check if tsx is available for Node
|
|
27
|
+
execSync('npx tsx --version', { stdio: 'ignore' });
|
|
28
|
+
return 'node';
|
|
29
|
+
} catch {
|
|
30
|
+
console.error('❌ Error: Neither Bun nor Node.js with tsx is installed.');
|
|
31
|
+
console.error('');
|
|
32
|
+
console.error('Please install one of the following:');
|
|
33
|
+
console.error(' • Bun (recommended): curl -fsSL https://bun.sh/install | bash');
|
|
34
|
+
console.error(' • Node.js + tsx: npm install -g tsx');
|
|
35
|
+
console.error('');
|
|
36
|
+
console.error('Then try running xcode again.');
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Set up environment
|
|
43
|
+
process.env.XCODE_CLI = 'true';
|
|
44
|
+
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
|
|
45
|
+
|
|
46
|
+
// Handle special commands
|
|
47
|
+
const args = process.argv.slice(2);
|
|
48
|
+
const command = args[0];
|
|
49
|
+
|
|
50
|
+
if (command === '--version' || command === '-v') {
|
|
51
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(projectRoot, 'package.json'), 'utf8'));
|
|
52
|
+
console.log(`xcode v${pkg.version}`);
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (command === '--help' || command === '-h') {
|
|
57
|
+
console.log(`
|
|
58
|
+
XCode - AI-powered coding assistant with XMem memory
|
|
59
|
+
|
|
60
|
+
Usage: xcode [options] [command]
|
|
61
|
+
|
|
62
|
+
Options:
|
|
63
|
+
-v, --version Show version number
|
|
64
|
+
-h, --help Show help
|
|
65
|
+
--model <model> Start with specific model (e.g., gemini-2.5-pro, kimi-k2.5)
|
|
66
|
+
--openrouter Use OpenRouter for model access
|
|
67
|
+
|
|
68
|
+
Commands:
|
|
69
|
+
(none) Start interactive session
|
|
70
|
+
--model gemini-2.5-pro Use Gemini 2.5 Pro via OpenRouter
|
|
71
|
+
--model kimi-k2.5 Use Kimi K2.5 via OpenRouter
|
|
72
|
+
--model deepseek-v3.2 Use DeepSeek V3.2 via OpenRouter
|
|
73
|
+
|
|
74
|
+
Environment Variables:
|
|
75
|
+
OPENROUTER_API_KEY OpenRouter API key (for non-Anthropic models)
|
|
76
|
+
XMEM_API_URL XMem memory server URL (default: http://localhost:8000)
|
|
77
|
+
XMEM_API_KEY XMem memory API key
|
|
78
|
+
ANTHROPIC_API_KEY Anthropic API key (for Claude models)
|
|
79
|
+
GEMINI_API_KEY Gemini API key (for Google models)
|
|
80
|
+
|
|
81
|
+
Examples:
|
|
82
|
+
xcode # Start with default model
|
|
83
|
+
xcode --model gemini-2.5-pro # Use Gemini via OpenRouter
|
|
84
|
+
OPENROUTER_API_KEY=xxx xcode --model kimi-k2.5 # Use specific API key
|
|
85
|
+
`);
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Check for model argument
|
|
90
|
+
const modelIndex = args.indexOf('--model');
|
|
91
|
+
if (modelIndex !== -1 && args[modelIndex + 1]) {
|
|
92
|
+
const model = args[modelIndex + 1];
|
|
93
|
+
process.env.ANTHROPIC_MODEL = model;
|
|
94
|
+
|
|
95
|
+
// If using OpenRouter models, auto-enable OpenRouter
|
|
96
|
+
const openRouterModels = ['kimi', 'deepseek', 'gemini', 'moonshot', 'google/gemini'];
|
|
97
|
+
if (openRouterModels.some(m => model.toLowerCase().includes(m.toLowerCase()))) {
|
|
98
|
+
process.env.CLAUDE_CODE_USE_OPENROUTER = 'true';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Check for explicit OpenRouter flag
|
|
103
|
+
if (args.includes('--openrouter')) {
|
|
104
|
+
process.env.CLAUDE_CODE_USE_OPENROUTER = 'true';
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Run the main application
|
|
108
|
+
const runtime = getRuntime();
|
|
109
|
+
|
|
110
|
+
try {
|
|
111
|
+
if (runtime === 'bun') {
|
|
112
|
+
execSync(`bun run "${mainScript}"`, {
|
|
113
|
+
cwd: projectRoot,
|
|
114
|
+
stdio: 'inherit',
|
|
115
|
+
env: process.env,
|
|
116
|
+
});
|
|
117
|
+
} else {
|
|
118
|
+
execSync(`npx tsx "${mainScript}"`, {
|
|
119
|
+
cwd: projectRoot,
|
|
120
|
+
stdio: 'inherit',
|
|
121
|
+
env: process.env,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
} catch (error) {
|
|
125
|
+
// Exit with the same code as the child process
|
|
126
|
+
process.exit(error.status || 1);
|
|
127
|
+
}
|
package/bin/xcode-test
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* XCode Installation Test Script
|
|
4
|
+
*
|
|
5
|
+
* Run this after installation to verify everything is working:
|
|
6
|
+
* xcode-test
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const { execSync } = require('child_process');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
|
|
12
|
+
const GREEN = '\x1b[32m';
|
|
13
|
+
const RED = '\x1b[31m';
|
|
14
|
+
const YELLOW = '\x1b[33m';
|
|
15
|
+
const NC = '\x1b[0m';
|
|
16
|
+
|
|
17
|
+
let passed = 0;
|
|
18
|
+
let failed = 0;
|
|
19
|
+
|
|
20
|
+
function test(name, fn) {
|
|
21
|
+
try {
|
|
22
|
+
fn();
|
|
23
|
+
console.log(`${GREEN}✓${NC} ${name}`);
|
|
24
|
+
passed++;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
console.log(`${RED}✗${NC} ${name}`);
|
|
27
|
+
console.log(` ${YELLOW}Error:${NC} ${error.message}`);
|
|
28
|
+
failed++;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
console.log('🧪 Testing XCode Installation...\n');
|
|
33
|
+
|
|
34
|
+
// Test 1: Check if xcode command exists
|
|
35
|
+
test('xcode command is in PATH', () => {
|
|
36
|
+
execSync('which xcode', { stdio: 'ignore' });
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// Test 2: Check if runtime exists
|
|
40
|
+
test('Runtime available (Bun or Node)', () => {
|
|
41
|
+
try {
|
|
42
|
+
execSync('bun --version', { stdio: 'ignore' });
|
|
43
|
+
} catch {
|
|
44
|
+
execSync('node --version', { stdio: 'ignore' });
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Test 3: Check installation directory
|
|
49
|
+
test('Installation directory exists', () => {
|
|
50
|
+
const fs = require('fs');
|
|
51
|
+
const installDir = path.join(require('os').homedir(), '.xcode');
|
|
52
|
+
if (!fs.existsSync(installDir)) {
|
|
53
|
+
throw new Error(`~/.xcode not found`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// Test 4: Check dependencies
|
|
58
|
+
test('Node modules installed', () => {
|
|
59
|
+
const fs = require('fs');
|
|
60
|
+
const nodeModules = path.join(require('os').homedir(), '.xcode', 'node_modules');
|
|
61
|
+
if (!fs.existsSync(nodeModules)) {
|
|
62
|
+
throw new Error('node_modules not found, run: cd ~/.xcode && bun install');
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Test 5: Version check
|
|
67
|
+
test('xcode --version works', () => {
|
|
68
|
+
const output = execSync('xcode --version', { encoding: 'utf8' });
|
|
69
|
+
if (!output.includes('xcode')) {
|
|
70
|
+
throw new Error('Unexpected version output');
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Summary
|
|
75
|
+
console.log('\n' + '─'.repeat(40));
|
|
76
|
+
if (failed === 0) {
|
|
77
|
+
console.log(`${GREEN}✅ All tests passed!${NC}`);
|
|
78
|
+
console.log('\nYou can now run: xcode');
|
|
79
|
+
} else {
|
|
80
|
+
console.log(`${RED}❌ ${failed} test(s) failed${NC}`);
|
|
81
|
+
console.log(`${GREEN}✓ ${passed} test(s) passed${NC}`);
|
|
82
|
+
console.log(`\n${YELLOW}Fix the issues above, then try again.${NC}`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
package/bin/xcode.cmd
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
:: XCode CLI for Windows
|
|
3
|
+
:: Launcher script for npm global installation
|
|
4
|
+
|
|
5
|
+
setlocal enabledelayedexpansion
|
|
6
|
+
|
|
7
|
+
:: Get the directory where this script is located
|
|
8
|
+
set "SCRIPT_DIR=%~dp0"
|
|
9
|
+
set "PROJECT_ROOT=%SCRIPT_DIR%.."
|
|
10
|
+
|
|
11
|
+
:: Check for Bun
|
|
12
|
+
where bun >nul 2>nul
|
|
13
|
+
if %errorlevel% == 0 (
|
|
14
|
+
bun run "%PROJECT_ROOT%\entrypoints\cli.tsx" %*
|
|
15
|
+
exit /b %errorlevel%
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
:: Check for Node + tsx
|
|
19
|
+
where npx >nul 2>nul
|
|
20
|
+
if %errorlevel% == 0 (
|
|
21
|
+
npx tsx "%PROJECT_ROOT%\entrypoints\cli.tsx" %*
|
|
22
|
+
exit /b %errorlevel%
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
echo ❌ Error: Neither Bun nor Node.js with tsx is installed.
|
|
26
|
+
echo.
|
|
27
|
+
echo Please install one of the following:
|
|
28
|
+
echo • Bun ^(recommended^): https://bun.sh/docs/installation
|
|
29
|
+
echo • Node.js + tsx: npm install -g tsx
|
|
30
|
+
echo.
|
|
31
|
+
exit /b 1
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic API Limits
|
|
3
|
+
*
|
|
4
|
+
* These constants define server-side limits enforced by the Anthropic API.
|
|
5
|
+
* Keep this file dependency-free to prevent circular imports.
|
|
6
|
+
*
|
|
7
|
+
* Last verified: 2025-12-22
|
|
8
|
+
* Source: api/api/schemas/messages/blocks/ and api/api/config.py
|
|
9
|
+
*
|
|
10
|
+
* Future: See issue #13240 for dynamic limits fetching from server.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// IMAGE LIMITS
|
|
15
|
+
// =============================================================================
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Maximum base64-encoded image size (API enforced).
|
|
19
|
+
* The API rejects images where the base64 string length exceeds this value.
|
|
20
|
+
* Note: This is the base64 length, NOT raw bytes. Base64 increases size by ~33%.
|
|
21
|
+
*/
|
|
22
|
+
export const API_IMAGE_MAX_BASE64_SIZE = 5 * 1024 * 1024 // 5 MB
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Target raw image size to stay under base64 limit after encoding.
|
|
26
|
+
* Base64 encoding increases size by 4/3, so we derive the max raw size:
|
|
27
|
+
* raw_size * 4/3 = base64_size → raw_size = base64_size * 3/4
|
|
28
|
+
*/
|
|
29
|
+
export const IMAGE_TARGET_RAW_SIZE = (API_IMAGE_MAX_BASE64_SIZE * 3) / 4 // 3.75 MB
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Client-side maximum dimensions for image resizing.
|
|
33
|
+
*
|
|
34
|
+
* Note: The API internally resizes images larger than 1568px (source:
|
|
35
|
+
* encoding/full_encoding.py), but this is handled server-side and doesn't
|
|
36
|
+
* cause errors. These client-side limits (2000px) are slightly larger to
|
|
37
|
+
* preserve quality when beneficial.
|
|
38
|
+
*
|
|
39
|
+
* The API_IMAGE_MAX_BASE64_SIZE (5MB) is the actual hard limit that causes
|
|
40
|
+
* API errors if exceeded.
|
|
41
|
+
*/
|
|
42
|
+
export const IMAGE_MAX_WIDTH = 2000
|
|
43
|
+
export const IMAGE_MAX_HEIGHT = 2000
|
|
44
|
+
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// PDF LIMITS
|
|
47
|
+
// =============================================================================
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Maximum raw PDF file size that fits within the API request limit after encoding.
|
|
51
|
+
* The API has a 32MB total request size limit. Base64 encoding increases size by
|
|
52
|
+
* ~33% (4/3), so 20MB raw → ~27MB base64, leaving room for conversation context.
|
|
53
|
+
*/
|
|
54
|
+
export const PDF_TARGET_RAW_SIZE = 20 * 1024 * 1024 // 20 MB
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Maximum number of pages in a PDF accepted by the API.
|
|
58
|
+
*/
|
|
59
|
+
export const API_PDF_MAX_PAGES = 100
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Size threshold above which PDFs are extracted into page images
|
|
63
|
+
* instead of being sent as base64 document blocks. This applies to
|
|
64
|
+
* first-party API only; non-first-party always uses extraction.
|
|
65
|
+
*/
|
|
66
|
+
export const PDF_EXTRACT_SIZE_THRESHOLD = 3 * 1024 * 1024 // 3 MB
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Maximum PDF file size for the page extraction path. PDFs larger than
|
|
70
|
+
* this are rejected to avoid processing extremely large files.
|
|
71
|
+
*/
|
|
72
|
+
export const PDF_MAX_EXTRACT_SIZE = 100 * 1024 * 1024 // 100 MB
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Max pages the Read tool will extract in a single call with the pages parameter.
|
|
76
|
+
*/
|
|
77
|
+
export const PDF_MAX_PAGES_PER_READ = 20
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* PDFs with more pages than this get the reference treatment on @ mention
|
|
81
|
+
* instead of being inlined into context.
|
|
82
|
+
*/
|
|
83
|
+
export const PDF_AT_MENTION_INLINE_THRESHOLD = 10
|
|
84
|
+
|
|
85
|
+
// =============================================================================
|
|
86
|
+
// MEDIA LIMITS
|
|
87
|
+
// =============================================================================
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Maximum number of media items (images + PDFs) allowed per API request.
|
|
91
|
+
* The API rejects requests exceeding this limit with a confusing error.
|
|
92
|
+
* We validate client-side to provide a clear error message.
|
|
93
|
+
*/
|
|
94
|
+
export const API_MAX_MEDIA_PER_REQUEST = 100
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { feature } from 'bun:bundle'
|
|
2
|
+
|
|
3
|
+
export const CLAUDE_CODE_20250219_BETA_HEADER = 'claude-code-20250219'
|
|
4
|
+
export const INTERLEAVED_THINKING_BETA_HEADER =
|
|
5
|
+
'interleaved-thinking-2025-05-14'
|
|
6
|
+
export const CONTEXT_1M_BETA_HEADER = 'context-1m-2025-08-07'
|
|
7
|
+
export const CONTEXT_MANAGEMENT_BETA_HEADER = 'context-management-2025-06-27'
|
|
8
|
+
export const STRUCTURED_OUTPUTS_BETA_HEADER = 'structured-outputs-2025-12-15'
|
|
9
|
+
export const WEB_SEARCH_BETA_HEADER = 'web-search-2025-03-05'
|
|
10
|
+
// Tool search beta headers differ by provider:
|
|
11
|
+
// - Claude API / Foundry: advanced-tool-use-2025-11-20
|
|
12
|
+
// - Vertex AI / Bedrock: tool-search-tool-2025-10-19
|
|
13
|
+
export const TOOL_SEARCH_BETA_HEADER_1P = 'advanced-tool-use-2025-11-20'
|
|
14
|
+
export const TOOL_SEARCH_BETA_HEADER_3P = 'tool-search-tool-2025-10-19'
|
|
15
|
+
export const EFFORT_BETA_HEADER = 'effort-2025-11-24'
|
|
16
|
+
export const TASK_BUDGETS_BETA_HEADER = 'task-budgets-2026-03-13'
|
|
17
|
+
export const PROMPT_CACHING_SCOPE_BETA_HEADER =
|
|
18
|
+
'prompt-caching-scope-2026-01-05'
|
|
19
|
+
export const FAST_MODE_BETA_HEADER = 'fast-mode-2026-02-01'
|
|
20
|
+
export const REDACT_THINKING_BETA_HEADER = 'redact-thinking-2026-02-12'
|
|
21
|
+
export const TOKEN_EFFICIENT_TOOLS_BETA_HEADER =
|
|
22
|
+
'token-efficient-tools-2026-03-28'
|
|
23
|
+
export const SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER = feature('CONNECTOR_TEXT')
|
|
24
|
+
? 'summarize-connector-text-2026-03-13'
|
|
25
|
+
: ''
|
|
26
|
+
export const AFK_MODE_BETA_HEADER = feature('TRANSCRIPT_CLASSIFIER')
|
|
27
|
+
? 'afk-mode-2026-01-31'
|
|
28
|
+
: ''
|
|
29
|
+
export const CLI_INTERNAL_BETA_HEADER =
|
|
30
|
+
process.env.USER_TYPE === 'ant' ? 'cli-internal-2026-02-09' : ''
|
|
31
|
+
export const ADVISOR_BETA_HEADER = 'advisor-tool-2026-03-01'
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Bedrock only supports a limited number of beta headers and only through
|
|
35
|
+
* extraBodyParams. This set maintains the beta strings that should be in
|
|
36
|
+
* Bedrock extraBodyParams *and not* in Bedrock headers.
|
|
37
|
+
*/
|
|
38
|
+
export const BEDROCK_EXTRA_PARAMS_HEADERS = new Set([
|
|
39
|
+
INTERLEAVED_THINKING_BETA_HEADER,
|
|
40
|
+
CONTEXT_1M_BETA_HEADER,
|
|
41
|
+
TOOL_SEARCH_BETA_HEADER_3P,
|
|
42
|
+
])
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Betas allowed on Vertex countTokens API.
|
|
46
|
+
* Other betas will cause 400 errors.
|
|
47
|
+
*/
|
|
48
|
+
export const VERTEX_COUNT_TOKENS_ALLOWED_BETAS = new Set([
|
|
49
|
+
CLAUDE_CODE_20250219_BETA_HEADER,
|
|
50
|
+
INTERLEAVED_THINKING_BETA_HEADER,
|
|
51
|
+
CONTEXT_MANAGEMENT_BETA_HEADER,
|
|
52
|
+
])
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import memoize from 'lodash-es/memoize.js'
|
|
2
|
+
|
|
3
|
+
// This ensures you get the LOCAL date in ISO format
|
|
4
|
+
export function getLocalISODate(): string {
|
|
5
|
+
// Check for ant-only date override
|
|
6
|
+
if (process.env.CLAUDE_CODE_OVERRIDE_DATE) {
|
|
7
|
+
return process.env.CLAUDE_CODE_OVERRIDE_DATE
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const now = new Date()
|
|
11
|
+
const year = now.getFullYear()
|
|
12
|
+
const month = String(now.getMonth() + 1).padStart(2, '0')
|
|
13
|
+
const day = String(now.getDate()).padStart(2, '0')
|
|
14
|
+
return `${year}-${month}-${day}`
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Memoized for prompt-cache stability — captures the date once at session start.
|
|
18
|
+
// The main interactive path gets this behavior via memoize(getUserContext) in
|
|
19
|
+
// context.ts; simple mode (--bare) calls getSystemPrompt per-request and needs
|
|
20
|
+
// an explicit memoized date to avoid busting the cached prefix at midnight.
|
|
21
|
+
// When midnight rolls over, getDateChangeAttachments appends the new date at
|
|
22
|
+
// the tail (though simple mode disables attachments, so the trade-off there is:
|
|
23
|
+
// stale date after midnight vs. ~entire-conversation cache bust — stale wins).
|
|
24
|
+
export const getSessionStartDate = memoize(getLocalISODate)
|
|
25
|
+
|
|
26
|
+
// Returns "Month YYYY" (e.g. "February 2026") in the user's local timezone.
|
|
27
|
+
// Changes monthly, not daily — used in tool prompts to minimize cache busting.
|
|
28
|
+
export function getLocalMonthYear(): string {
|
|
29
|
+
const date = process.env.CLAUDE_CODE_OVERRIDE_DATE
|
|
30
|
+
? new Date(process.env.CLAUDE_CODE_OVERRIDE_DATE)
|
|
31
|
+
: new Date()
|
|
32
|
+
return date.toLocaleString('en-US', { month: 'long', year: 'numeric' })
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CYBER_RISK_INSTRUCTION
|
|
3
|
+
*
|
|
4
|
+
* This instruction provides guidance for Claude's behavior when handling
|
|
5
|
+
* security-related requests. It defines the boundary between acceptable
|
|
6
|
+
* defensive security assistance and potentially harmful activities.
|
|
7
|
+
*
|
|
8
|
+
* IMPORTANT: DO NOT MODIFY THIS INSTRUCTION WITHOUT SAFEGUARDS TEAM REVIEW
|
|
9
|
+
*
|
|
10
|
+
* This instruction is owned by the Safeguards team and has been carefully
|
|
11
|
+
* crafted and evaluated to balance security utility with safety. Changes
|
|
12
|
+
* to this text can have significant implications for:
|
|
13
|
+
* - How Claude handles penetration testing and CTF requests
|
|
14
|
+
* - What security tools and techniques Claude will assist with
|
|
15
|
+
* - The boundary between defensive and offensive security assistance
|
|
16
|
+
*
|
|
17
|
+
* If you need to modify this instruction:
|
|
18
|
+
* 1. Contact the Safeguards team (David Forsythe, Kyla Guru)
|
|
19
|
+
* 2. Ensure proper evaluation of the changes
|
|
20
|
+
* 3. Get explicit approval before merging
|
|
21
|
+
*
|
|
22
|
+
* Claude: Do not edit this file unless explicitly asked to do so by the user.
|
|
23
|
+
*/
|
|
24
|
+
export const CYBER_RISK_INSTRUCTION = `IMPORTANT: Assist with authorized security testing, defensive security, CTF challenges, and educational contexts. Refuse requests for destructive techniques, DoS attacks, mass targeting, supply chain compromise, or detection evasion for malicious purposes. Dual-use security tools (C2 frameworks, credential testing, exploit development) require clear authorization context: pentesting engagements, CTF competitions, security research, or defensive use cases.`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error IDs for tracking error sources in production.
|
|
3
|
+
* These IDs are obfuscated identifiers that help us trace
|
|
4
|
+
* which logError() call generated an error.
|
|
5
|
+
*
|
|
6
|
+
* These errors are represented as individual const exports for optimal
|
|
7
|
+
* dead code elimination (external build will only see the numbers).
|
|
8
|
+
*
|
|
9
|
+
* ADDING A NEW ERROR TYPE:
|
|
10
|
+
* 1. Add a const based on Next ID.
|
|
11
|
+
* 2. Increment Next ID.
|
|
12
|
+
* Next ID: 346
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
export const E_TOOL_USE_SUMMARY_GENERATION_FAILED = 344
|