yzcode-cli 1.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/QueryEngine.ts +1295 -0
- package/Task.ts +125 -0
- package/Tool.ts +792 -0
- package/bin/yzcode-init.js +31 -0
- package/bin/yzcode.js +35 -0
- package/cli/exit.ts +31 -0
- package/cli/handlers/agents.ts +70 -0
- package/cli/handlers/auth.ts +330 -0
- package/cli/handlers/autoMode.ts +170 -0
- package/cli/handlers/mcp.tsx +362 -0
- package/cli/handlers/plugins.ts +878 -0
- package/cli/handlers/util.tsx +110 -0
- package/cli/ndjsonSafeStringify.ts +32 -0
- package/cli/print.ts +5594 -0
- package/cli/remoteIO.ts +255 -0
- package/cli/structuredIO.ts +859 -0
- package/cli/transports/HybridTransport.ts +282 -0
- package/cli/transports/SSETransport.ts +711 -0
- package/cli/transports/SerialBatchEventUploader.ts +275 -0
- package/cli/transports/WebSocketTransport.ts +800 -0
- package/cli/transports/WorkerStateUploader.ts +131 -0
- package/cli/transports/ccrClient.ts +998 -0
- package/cli/transports/transportUtils.ts +45 -0
- package/cli/update.ts +422 -0
- package/commands/add-dir/add-dir.tsx +126 -0
- package/commands/add-dir/index.ts +11 -0
- package/commands/add-dir/validation.ts +110 -0
- package/commands/advisor.ts +109 -0
- package/commands/agents/agents.tsx +12 -0
- package/commands/agents/index.ts +10 -0
- package/commands/ant-trace/index.js +1 -0
- package/commands/autofix-pr/index.js +1 -0
- package/commands/backfill-sessions/index.js +1 -0
- package/commands/branch/branch.ts +296 -0
- package/commands/branch/index.ts +14 -0
- package/commands/break-cache/index.js +1 -0
- package/commands/bridge/bridge.tsx +509 -0
- package/commands/bridge/index.ts +26 -0
- package/commands/bridge-kick.ts +200 -0
- package/commands/brief.ts +130 -0
- package/commands/btw/btw.tsx +243 -0
- package/commands/btw/index.ts +13 -0
- package/commands/bughunter/index.js +1 -0
- package/commands/chrome/chrome.tsx +285 -0
- package/commands/chrome/index.ts +13 -0
- package/commands/clear/caches.ts +144 -0
- package/commands/clear/clear.ts +7 -0
- package/commands/clear/conversation.ts +251 -0
- package/commands/clear/index.ts +19 -0
- package/commands/color/color.ts +93 -0
- package/commands/color/index.ts +16 -0
- package/commands/commit-push-pr.ts +158 -0
- package/commands/commit.ts +92 -0
- package/commands/compact/compact.ts +287 -0
- package/commands/compact/index.ts +15 -0
- package/commands/config/config.tsx +7 -0
- package/commands/config/index.ts +11 -0
- package/commands/context/context-noninteractive.ts +325 -0
- package/commands/context/context.tsx +64 -0
- package/commands/context/index.ts +24 -0
- package/commands/copy/copy.tsx +371 -0
- package/commands/copy/index.ts +15 -0
- package/commands/cost/cost.ts +24 -0
- package/commands/cost/index.ts +23 -0
- package/commands/createMovedToPluginCommand.ts +65 -0
- package/commands/ctx_viz/index.js +1 -0
- package/commands/debug-tool-call/index.js +1 -0
- package/commands/desktop/desktop.tsx +9 -0
- package/commands/desktop/index.ts +26 -0
- package/commands/diff/diff.tsx +9 -0
- package/commands/diff/index.ts +8 -0
- package/commands/doctor/doctor.tsx +7 -0
- package/commands/doctor/index.ts +12 -0
- package/commands/effort/effort.tsx +183 -0
- package/commands/effort/index.ts +13 -0
- package/commands/env/index.js +1 -0
- package/commands/exit/exit.tsx +33 -0
- package/commands/exit/index.ts +12 -0
- package/commands/export/export.tsx +91 -0
- package/commands/export/index.ts +11 -0
- package/commands/extra-usage/extra-usage-core.ts +118 -0
- package/commands/extra-usage/extra-usage-noninteractive.ts +16 -0
- package/commands/extra-usage/extra-usage.tsx +17 -0
- package/commands/extra-usage/index.ts +31 -0
- package/commands/fast/fast.tsx +269 -0
- package/commands/fast/index.ts +26 -0
- package/commands/feedback/feedback.tsx +25 -0
- package/commands/feedback/index.ts +26 -0
- package/commands/files/files.ts +19 -0
- package/commands/files/index.ts +12 -0
- package/commands/good-claude/index.js +1 -0
- package/commands/heapdump/heapdump.ts +17 -0
- package/commands/heapdump/index.ts +12 -0
- package/commands/help/help.tsx +11 -0
- package/commands/help/index.ts +10 -0
- package/commands/hooks/hooks.tsx +13 -0
- package/commands/hooks/index.ts +11 -0
- package/commands/ide/ide.tsx +646 -0
- package/commands/ide/index.ts +11 -0
- package/commands/init-verifiers.ts +262 -0
- package/commands/init.ts +256 -0
- package/commands/insights.ts +3200 -0
- package/commands/install-github-app/ApiKeyStep.tsx +231 -0
- package/commands/install-github-app/CheckExistingSecretStep.tsx +190 -0
- package/commands/install-github-app/CheckGitHubStep.tsx +15 -0
- package/commands/install-github-app/ChooseRepoStep.tsx +211 -0
- package/commands/install-github-app/CreatingStep.tsx +65 -0
- package/commands/install-github-app/ErrorStep.tsx +85 -0
- package/commands/install-github-app/ExistingWorkflowStep.tsx +103 -0
- package/commands/install-github-app/InstallAppStep.tsx +94 -0
- package/commands/install-github-app/OAuthFlowStep.tsx +276 -0
- package/commands/install-github-app/SuccessStep.tsx +96 -0
- package/commands/install-github-app/WarningsStep.tsx +73 -0
- package/commands/install-github-app/index.ts +13 -0
- package/commands/install-github-app/install-github-app.tsx +587 -0
- package/commands/install-github-app/setupGitHubActions.ts +325 -0
- package/commands/install-slack-app/index.ts +12 -0
- package/commands/install-slack-app/install-slack-app.ts +30 -0
- package/commands/install.tsx +300 -0
- package/commands/issue/index.js +1 -0
- package/commands/keybindings/index.ts +13 -0
- package/commands/keybindings/keybindings.ts +53 -0
- package/commands/login/index.ts +14 -0
- package/commands/login/login.tsx +104 -0
- package/commands/logout/index.ts +10 -0
- package/commands/logout/logout.tsx +82 -0
- package/commands/mcp/addCommand.ts +280 -0
- package/commands/mcp/index.ts +12 -0
- package/commands/mcp/mcp.tsx +85 -0
- package/commands/mcp/xaaIdpCommand.ts +266 -0
- package/commands/memory/index.ts +10 -0
- package/commands/memory/memory.tsx +90 -0
- package/commands/mobile/index.ts +11 -0
- package/commands/mobile/mobile.tsx +274 -0
- package/commands/mock-limits/index.js +1 -0
- package/commands/model/index.ts +16 -0
- package/commands/model/model.tsx +297 -0
- package/commands/oauth-refresh/index.js +1 -0
- package/commands/onboarding/index.js +1 -0
- package/commands/output-style/index.ts +11 -0
- package/commands/output-style/output-style.tsx +7 -0
- package/commands/passes/index.ts +22 -0
- package/commands/passes/passes.tsx +24 -0
- package/commands/perf-issue/index.js +1 -0
- package/commands/permissions/index.ts +11 -0
- package/commands/permissions/permissions.tsx +10 -0
- package/commands/plan/index.ts +11 -0
- package/commands/plan/plan.tsx +122 -0
- package/commands/plugin/AddMarketplace.tsx +162 -0
- package/commands/plugin/BrowseMarketplace.tsx +802 -0
- package/commands/plugin/DiscoverPlugins.tsx +781 -0
- package/commands/plugin/ManageMarketplaces.tsx +838 -0
- package/commands/plugin/ManagePlugins.tsx +2215 -0
- package/commands/plugin/PluginErrors.tsx +124 -0
- package/commands/plugin/PluginOptionsDialog.tsx +357 -0
- package/commands/plugin/PluginOptionsFlow.tsx +135 -0
- package/commands/plugin/PluginSettings.tsx +1072 -0
- package/commands/plugin/PluginTrustWarning.tsx +32 -0
- package/commands/plugin/UnifiedInstalledCell.tsx +565 -0
- package/commands/plugin/ValidatePlugin.tsx +98 -0
- package/commands/plugin/index.tsx +11 -0
- package/commands/plugin/parseArgs.ts +103 -0
- package/commands/plugin/plugin.tsx +7 -0
- package/commands/plugin/pluginDetailsHelpers.tsx +117 -0
- package/commands/plugin/usePagination.ts +171 -0
- package/commands/pr_comments/index.ts +50 -0
- package/commands/privacy-settings/index.ts +14 -0
- package/commands/privacy-settings/privacy-settings.tsx +58 -0
- package/commands/rate-limit-options/index.ts +19 -0
- package/commands/rate-limit-options/rate-limit-options.tsx +210 -0
- package/commands/release-notes/index.ts +11 -0
- package/commands/release-notes/release-notes.ts +50 -0
- package/commands/reload-plugins/index.ts +18 -0
- package/commands/reload-plugins/reload-plugins.ts +61 -0
- package/commands/remote-env/index.ts +15 -0
- package/commands/remote-env/remote-env.tsx +7 -0
- package/commands/remote-setup/api.ts +182 -0
- package/commands/remote-setup/index.ts +20 -0
- package/commands/remote-setup/remote-setup.tsx +187 -0
- package/commands/rename/generateSessionName.ts +67 -0
- package/commands/rename/index.ts +12 -0
- package/commands/rename/rename.ts +87 -0
- package/commands/reset-limits/index.js +4 -0
- package/commands/resume/index.ts +12 -0
- package/commands/resume/resume.tsx +275 -0
- package/commands/review/UltrareviewOverageDialog.tsx +96 -0
- package/commands/review/reviewRemote.ts +316 -0
- package/commands/review/ultrareviewCommand.tsx +58 -0
- package/commands/review/ultrareviewEnabled.ts +14 -0
- package/commands/review.ts +57 -0
- package/commands/rewind/index.ts +13 -0
- package/commands/rewind/rewind.ts +13 -0
- package/commands/sandbox-toggle/index.ts +50 -0
- package/commands/sandbox-toggle/sandbox-toggle.tsx +83 -0
- package/commands/security-review.ts +243 -0
- package/commands/session/index.ts +16 -0
- package/commands/session/session.tsx +140 -0
- package/commands/share/index.js +1 -0
- package/commands/skills/index.ts +10 -0
- package/commands/skills/skills.tsx +8 -0
- package/commands/stats/index.ts +10 -0
- package/commands/stats/stats.tsx +7 -0
- package/commands/status/index.ts +12 -0
- package/commands/status/status.tsx +8 -0
- package/commands/statusline.tsx +24 -0
- package/commands/stickers/index.ts +11 -0
- package/commands/stickers/stickers.ts +16 -0
- package/commands/summary/index.js +1 -0
- package/commands/tag/index.ts +12 -0
- package/commands/tag/tag.tsx +215 -0
- package/commands/tasks/index.ts +11 -0
- package/commands/tasks/tasks.tsx +8 -0
- package/commands/teleport/index.js +1 -0
- package/commands/terminalSetup/index.ts +23 -0
- package/commands/terminalSetup/terminalSetup.tsx +531 -0
- package/commands/theme/index.ts +10 -0
- package/commands/theme/theme.tsx +57 -0
- package/commands/thinkback/index.ts +13 -0
- package/commands/thinkback/thinkback.tsx +554 -0
- package/commands/thinkback-play/index.ts +17 -0
- package/commands/thinkback-play/thinkback-play.ts +43 -0
- package/commands/ultraplan.tsx +471 -0
- package/commands/upgrade/index.ts +16 -0
- package/commands/upgrade/upgrade.tsx +38 -0
- package/commands/usage/index.ts +9 -0
- package/commands/usage/usage.tsx +7 -0
- package/commands/version.ts +22 -0
- package/commands/vim/index.ts +11 -0
- package/commands/vim/vim.ts +38 -0
- package/commands/voice/index.ts +20 -0
- package/commands/voice/voice.ts +150 -0
- package/commands.ts +754 -0
- package/components/AgentProgressLine.tsx +136 -0
- package/components/App.tsx +56 -0
- package/components/ApproveApiKey.tsx +123 -0
- package/components/AutoModeOptInDialog.tsx +142 -0
- package/components/AutoUpdater.tsx +198 -0
- package/components/AutoUpdaterWrapper.tsx +91 -0
- package/components/AwsAuthStatusBox.tsx +82 -0
- package/components/BaseTextInput.tsx +136 -0
- package/components/BashModeProgress.tsx +56 -0
- package/components/BridgeDialog.tsx +401 -0
- package/components/BypassPermissionsModeDialog.tsx +87 -0
- package/components/ChannelDowngradeDialog.tsx +102 -0
- package/components/ClaudeCodeHint/PluginHintMenu.tsx +78 -0
- package/components/ClaudeInChromeOnboarding.tsx +121 -0
- package/components/ClaudeMdExternalIncludesDialog.tsx +137 -0
- package/components/ClickableImageRef.tsx +73 -0
- package/components/CompactSummary.tsx +118 -0
- package/components/ConfigurableShortcutHint.tsx +57 -0
- package/components/ConsoleOAuthFlow.tsx +631 -0
- package/components/ContextSuggestions.tsx +47 -0
- package/components/ContextVisualization.tsx +489 -0
- package/components/CoordinatorAgentStatus.tsx +273 -0
- package/components/CostThresholdDialog.tsx +50 -0
- package/components/CtrlOToExpand.tsx +51 -0
- package/components/CustomSelect/SelectMulti.tsx +213 -0
- package/components/CustomSelect/index.ts +3 -0
- package/components/CustomSelect/option-map.ts +50 -0
- package/components/CustomSelect/select-input-option.tsx +488 -0
- package/components/CustomSelect/select-option.tsx +68 -0
- package/components/CustomSelect/select.tsx +690 -0
- package/components/CustomSelect/use-multi-select-state.ts +414 -0
- package/components/CustomSelect/use-select-input.ts +287 -0
- package/components/CustomSelect/use-select-navigation.ts +653 -0
- package/components/CustomSelect/use-select-state.ts +157 -0
- package/components/DesktopHandoff.tsx +193 -0
- package/components/DesktopUpsell/DesktopUpsellStartup.tsx +171 -0
- package/components/DevBar.tsx +49 -0
- package/components/DevChannelsDialog.tsx +105 -0
- package/components/DiagnosticsDisplay.tsx +95 -0
- package/components/EffortCallout.tsx +265 -0
- package/components/EffortIndicator.ts +42 -0
- package/components/ExitFlow.tsx +48 -0
- package/components/ExportDialog.tsx +128 -0
- package/components/FallbackToolUseErrorMessage.tsx +116 -0
- package/components/FallbackToolUseRejectedMessage.tsx +16 -0
- package/components/FastIcon.tsx +46 -0
- package/components/Feedback.tsx +592 -0
- package/components/FeedbackSurvey/FeedbackSurvey.tsx +174 -0
- package/components/FeedbackSurvey/FeedbackSurveyView.tsx +108 -0
- package/components/FeedbackSurvey/TranscriptSharePrompt.tsx +88 -0
- package/components/FeedbackSurvey/submitTranscriptShare.ts +112 -0
- package/components/FeedbackSurvey/useDebouncedDigitInput.ts +82 -0
- package/components/FeedbackSurvey/useFeedbackSurvey.tsx +296 -0
- package/components/FeedbackSurvey/useMemorySurvey.tsx +213 -0
- package/components/FeedbackSurvey/usePostCompactSurvey.tsx +206 -0
- package/components/FeedbackSurvey/useSurveyState.tsx +100 -0
- package/components/FileEditToolDiff.tsx +181 -0
- package/components/FileEditToolUpdatedMessage.tsx +124 -0
- package/components/FileEditToolUseRejectedMessage.tsx +170 -0
- package/components/FilePathLink.tsx +43 -0
- package/components/FullscreenLayout.tsx +637 -0
- package/components/GlobalSearchDialog.tsx +343 -0
- package/components/HelpV2/Commands.tsx +82 -0
- package/components/HelpV2/General.tsx +23 -0
- package/components/HelpV2/HelpV2.tsx +184 -0
- package/components/HighlightedCode/Fallback.tsx +193 -0
- package/components/HighlightedCode.tsx +190 -0
- package/components/HistorySearchDialog.tsx +118 -0
- package/components/IdeAutoConnectDialog.tsx +154 -0
- package/components/IdeOnboardingDialog.tsx +167 -0
- package/components/IdeStatusIndicator.tsx +58 -0
- package/components/IdleReturnDialog.tsx +118 -0
- package/components/InterruptedByUser.tsx +15 -0
- package/components/InvalidConfigDialog.tsx +156 -0
- package/components/InvalidSettingsDialog.tsx +89 -0
- package/components/KeybindingWarnings.tsx +55 -0
- package/components/LanguagePicker.tsx +86 -0
- package/components/LogSelector.tsx +1575 -0
- package/components/LogoV2/AnimatedAsterisk.tsx +50 -0
- package/components/LogoV2/AnimatedClawd.tsx +124 -0
- package/components/LogoV2/ChannelsNotice.tsx +266 -0
- package/components/LogoV2/Clawd.tsx +240 -0
- package/components/LogoV2/CondensedLogo.tsx +161 -0
- package/components/LogoV2/EmergencyTip.tsx +58 -0
- package/components/LogoV2/Feed.tsx +112 -0
- package/components/LogoV2/FeedColumn.tsx +59 -0
- package/components/LogoV2/GuestPassesUpsell.tsx +70 -0
- package/components/LogoV2/LogoV2.tsx +543 -0
- package/components/LogoV2/Opus1mMergeNotice.tsx +55 -0
- package/components/LogoV2/OverageCreditUpsell.tsx +166 -0
- package/components/LogoV2/VoiceModeNotice.tsx +68 -0
- package/components/LogoV2/WelcomeV2.tsx +433 -0
- package/components/LogoV2/feedConfigs.tsx +92 -0
- package/components/LspRecommendation/LspRecommendationMenu.tsx +88 -0
- package/components/MCPServerApprovalDialog.tsx +115 -0
- package/components/MCPServerDesktopImportDialog.tsx +203 -0
- package/components/MCPServerDialogCopy.tsx +15 -0
- package/components/MCPServerMultiselectDialog.tsx +133 -0
- package/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +149 -0
- package/components/ManagedSettingsSecurityDialog/utils.ts +144 -0
- package/components/Markdown.tsx +236 -0
- package/components/MarkdownTable.tsx +322 -0
- package/components/MemoryUsageIndicator.tsx +37 -0
- package/components/Message.tsx +627 -0
- package/components/MessageModel.tsx +43 -0
- package/components/MessageResponse.tsx +78 -0
- package/components/MessageRow.tsx +383 -0
- package/components/MessageSelector.tsx +831 -0
- package/components/MessageTimestamp.tsx +63 -0
- package/components/Messages.tsx +834 -0
- package/components/ModelPicker.tsx +448 -0
- package/components/NativeAutoUpdater.tsx +193 -0
- package/components/NotebookEditToolUseRejectedMessage.tsx +92 -0
- package/components/OffscreenFreeze.tsx +44 -0
- package/components/Onboarding.tsx +244 -0
- package/components/OutputStylePicker.tsx +112 -0
- package/components/PackageManagerAutoUpdater.tsx +104 -0
- package/components/Passes/Passes.tsx +184 -0
- package/components/PrBadge.tsx +97 -0
- package/components/PressEnterToContinue.tsx +15 -0
- package/components/PromptInput/HistorySearchInput.tsx +51 -0
- package/components/PromptInput/IssueFlagBanner.tsx +12 -0
- package/components/PromptInput/Notifications.tsx +332 -0
- package/components/PromptInput/PromptInput.tsx +2339 -0
- package/components/PromptInput/PromptInputFooter.tsx +191 -0
- package/components/PromptInput/PromptInputFooterLeftSide.tsx +517 -0
- package/components/PromptInput/PromptInputFooterSuggestions.tsx +293 -0
- package/components/PromptInput/PromptInputHelpMenu.tsx +358 -0
- package/components/PromptInput/PromptInputModeIndicator.tsx +93 -0
- package/components/PromptInput/PromptInputQueuedCommands.tsx +117 -0
- package/components/PromptInput/PromptInputStashNotice.tsx +25 -0
- package/components/PromptInput/SandboxPromptFooterHint.tsx +64 -0
- package/components/PromptInput/ShimmeredInput.tsx +143 -0
- package/components/PromptInput/VoiceIndicator.tsx +137 -0
- package/components/PromptInput/inputModes.ts +33 -0
- package/components/PromptInput/inputPaste.ts +90 -0
- package/components/PromptInput/useMaybeTruncateInput.ts +58 -0
- package/components/PromptInput/usePromptInputPlaceholder.ts +76 -0
- package/components/PromptInput/useShowFastIconHint.ts +31 -0
- package/components/PromptInput/useSwarmBanner.ts +155 -0
- package/components/PromptInput/utils.ts +60 -0
- package/components/QuickOpenDialog.tsx +244 -0
- package/components/RemoteCallout.tsx +76 -0
- package/components/RemoteEnvironmentDialog.tsx +340 -0
- package/components/ResumeTask.tsx +268 -0
- package/components/SandboxViolationExpandedView.tsx +99 -0
- package/components/ScrollKeybindingHandler.tsx +1012 -0
- package/components/SearchBox.tsx +72 -0
- package/components/SentryErrorBoundary.ts +28 -0
- package/components/SessionBackgroundHint.tsx +108 -0
- package/components/SessionPreview.tsx +194 -0
- package/components/Settings/Config.tsx +1822 -0
- package/components/Settings/Settings.tsx +137 -0
- package/components/Settings/Status.tsx +241 -0
- package/components/Settings/Usage.tsx +377 -0
- package/components/ShowInIDEPrompt.tsx +170 -0
- package/components/SkillImprovementSurvey.tsx +152 -0
- package/components/Spinner/FlashingChar.tsx +61 -0
- package/components/Spinner/GlimmerMessage.tsx +328 -0
- package/components/Spinner/ShimmerChar.tsx +36 -0
- package/components/Spinner/SpinnerAnimationRow.tsx +265 -0
- package/components/Spinner/SpinnerGlyph.tsx +80 -0
- package/components/Spinner/TeammateSpinnerLine.tsx +233 -0
- package/components/Spinner/TeammateSpinnerTree.tsx +272 -0
- package/components/Spinner/index.ts +10 -0
- package/components/Spinner/teammateSelectHint.ts +1 -0
- package/components/Spinner/useShimmerAnimation.ts +31 -0
- package/components/Spinner/useStalledAnimation.ts +75 -0
- package/components/Spinner/utils.ts +84 -0
- package/components/Spinner.tsx +562 -0
- package/components/Stats.tsx +1228 -0
- package/components/StatusLine.tsx +324 -0
- package/components/StatusNotices.tsx +55 -0
- package/components/StructuredDiff/Fallback.tsx +487 -0
- package/components/StructuredDiff/colorDiff.ts +37 -0
- package/components/StructuredDiff.tsx +190 -0
- package/components/StructuredDiffList.tsx +30 -0
- package/components/TagTabs.tsx +139 -0
- package/components/TaskListV2.tsx +378 -0
- package/components/TeammateViewHeader.tsx +82 -0
- package/components/TeleportError.tsx +189 -0
- package/components/TeleportProgress.tsx +140 -0
- package/components/TeleportRepoMismatchDialog.tsx +104 -0
- package/components/TeleportResumeWrapper.tsx +167 -0
- package/components/TeleportStash.tsx +116 -0
- package/components/TextInput.tsx +124 -0
- package/components/ThemePicker.tsx +333 -0
- package/components/ThinkingToggle.tsx +153 -0
- package/components/TokenWarning.tsx +179 -0
- package/components/ToolUseLoader.tsx +42 -0
- package/components/TrustDialog/TrustDialog.tsx +290 -0
- package/components/TrustDialog/utils.ts +245 -0
- package/components/ValidationErrorsList.tsx +148 -0
- package/components/VimTextInput.tsx +140 -0
- package/components/VirtualMessageList.tsx +1082 -0
- package/components/WorkflowMultiselectDialog.tsx +128 -0
- package/components/WorktreeExitDialog.tsx +231 -0
- package/components/agents/AgentDetail.tsx +220 -0
- package/components/agents/AgentEditor.tsx +178 -0
- package/components/agents/AgentNavigationFooter.tsx +26 -0
- package/components/agents/AgentsList.tsx +440 -0
- package/components/agents/AgentsMenu.tsx +800 -0
- package/components/agents/ColorPicker.tsx +112 -0
- package/components/agents/ModelSelector.tsx +68 -0
- package/components/agents/ToolSelector.tsx +562 -0
- package/components/agents/agentFileUtils.ts +272 -0
- package/components/agents/generateAgent.ts +197 -0
- package/components/agents/new-agent-creation/CreateAgentWizard.tsx +97 -0
- package/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +84 -0
- package/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +378 -0
- package/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx +74 -0
- package/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +123 -0
- package/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx +143 -0
- package/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +80 -0
- package/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +113 -0
- package/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +80 -0
- package/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +52 -0
- package/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +128 -0
- package/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +61 -0
- package/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +103 -0
- package/components/agents/types.ts +27 -0
- package/components/agents/utils.ts +18 -0
- package/components/agents/validateAgent.ts +109 -0
- package/components/design-system/Byline.tsx +77 -0
- package/components/design-system/Dialog.tsx +138 -0
- package/components/design-system/Divider.tsx +149 -0
- package/components/design-system/FuzzyPicker.tsx +312 -0
- package/components/design-system/KeyboardShortcutHint.tsx +81 -0
- package/components/design-system/ListItem.tsx +244 -0
- package/components/design-system/LoadingState.tsx +94 -0
- package/components/design-system/Pane.tsx +77 -0
- package/components/design-system/ProgressBar.tsx +86 -0
- package/components/design-system/Ratchet.tsx +80 -0
- package/components/design-system/StatusIcon.tsx +95 -0
- package/components/design-system/Tabs.tsx +340 -0
- package/components/design-system/ThemeProvider.tsx +170 -0
- package/components/design-system/ThemedBox.tsx +156 -0
- package/components/design-system/ThemedText.tsx +124 -0
- package/components/design-system/color.ts +30 -0
- package/components/diff/DiffDetailView.tsx +281 -0
- package/components/diff/DiffDialog.tsx +383 -0
- package/components/diff/DiffFileList.tsx +292 -0
- package/components/grove/Grove.tsx +463 -0
- package/components/hooks/HooksConfigMenu.tsx +578 -0
- package/components/hooks/PromptDialog.tsx +90 -0
- package/components/hooks/SelectEventMode.tsx +127 -0
- package/components/hooks/SelectHookMode.tsx +112 -0
- package/components/hooks/SelectMatcherMode.tsx +144 -0
- package/components/hooks/ViewHookMode.tsx +199 -0
- package/components/mcp/CapabilitiesSection.tsx +61 -0
- package/components/mcp/ElicitationDialog.tsx +1169 -0
- package/components/mcp/MCPAgentServerMenu.tsx +183 -0
- package/components/mcp/MCPListPanel.tsx +504 -0
- package/components/mcp/MCPReconnect.tsx +167 -0
- package/components/mcp/MCPRemoteServerMenu.tsx +649 -0
- package/components/mcp/MCPSettings.tsx +398 -0
- package/components/mcp/MCPStdioServerMenu.tsx +177 -0
- package/components/mcp/MCPToolDetailView.tsx +212 -0
- package/components/mcp/MCPToolListView.tsx +141 -0
- package/components/mcp/McpParsingWarnings.tsx +213 -0
- package/components/mcp/index.ts +9 -0
- package/components/mcp/utils/reconnectHelpers.tsx +49 -0
- package/components/memory/MemoryFileSelector.tsx +438 -0
- package/components/memory/MemoryUpdateNotification.tsx +45 -0
- package/components/messageActions.tsx +450 -0
- package/components/messages/AdvisorMessage.tsx +158 -0
- package/components/messages/AssistantRedactedThinkingMessage.tsx +31 -0
- package/components/messages/AssistantTextMessage.tsx +270 -0
- package/components/messages/AssistantThinkingMessage.tsx +86 -0
- package/components/messages/AssistantToolUseMessage.tsx +368 -0
- package/components/messages/AttachmentMessage.tsx +536 -0
- package/components/messages/CollapsedReadSearchContent.tsx +484 -0
- package/components/messages/CompactBoundaryMessage.tsx +18 -0
- package/components/messages/GroupedToolUseContent.tsx +58 -0
- package/components/messages/HighlightedThinkingText.tsx +162 -0
- package/components/messages/HookProgressMessage.tsx +116 -0
- package/components/messages/PlanApprovalMessage.tsx +222 -0
- package/components/messages/RateLimitMessage.tsx +161 -0
- package/components/messages/ShutdownMessage.tsx +132 -0
- package/components/messages/SystemAPIErrorMessage.tsx +141 -0
- package/components/messages/SystemTextMessage.tsx +827 -0
- package/components/messages/TaskAssignmentMessage.tsx +76 -0
- package/components/messages/UserAgentNotificationMessage.tsx +83 -0
- package/components/messages/UserBashInputMessage.tsx +58 -0
- package/components/messages/UserBashOutputMessage.tsx +54 -0
- package/components/messages/UserChannelMessage.tsx +137 -0
- package/components/messages/UserCommandMessage.tsx +108 -0
- package/components/messages/UserImageMessage.tsx +59 -0
- package/components/messages/UserLocalCommandOutputMessage.tsx +167 -0
- package/components/messages/UserMemoryInputMessage.tsx +75 -0
- package/components/messages/UserPlanMessage.tsx +42 -0
- package/components/messages/UserPromptMessage.tsx +80 -0
- package/components/messages/UserResourceUpdateMessage.tsx +121 -0
- package/components/messages/UserTeammateMessage.tsx +206 -0
- package/components/messages/UserTextMessage.tsx +275 -0
- package/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +31 -0
- package/components/messages/UserToolResultMessage/RejectedToolUseMessage.tsx +16 -0
- package/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +16 -0
- package/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +103 -0
- package/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +95 -0
- package/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +106 -0
- package/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +104 -0
- package/components/messages/UserToolResultMessage/utils.tsx +44 -0
- package/components/messages/nullRenderingAttachments.ts +70 -0
- package/components/messages/teamMemCollapsed.tsx +140 -0
- package/components/messages/teamMemSaved.ts +19 -0
- package/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +645 -0
- package/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +229 -0
- package/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.tsx +328 -0
- package/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +178 -0
- package/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +465 -0
- package/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +144 -0
- package/components/permissions/AskUserQuestionPermissionRequest/use-multiple-choice-state.ts +179 -0
- package/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +482 -0
- package/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +147 -0
- package/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +441 -0
- package/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +122 -0
- package/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +768 -0
- package/components/permissions/FallbackPermissionRequest.tsx +333 -0
- package/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +182 -0
- package/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +204 -0
- package/components/permissions/FilePermissionDialog/ideDiffConfig.ts +42 -0
- package/components/permissions/FilePermissionDialog/permissionOptions.tsx +177 -0
- package/components/permissions/FilePermissionDialog/useFilePermissionDialog.ts +212 -0
- package/components/permissions/FilePermissionDialog/usePermissionHandler.ts +185 -0
- package/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +161 -0
- package/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +89 -0
- package/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +115 -0
- package/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +166 -0
- package/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +235 -0
- package/components/permissions/PermissionDecisionDebugInfo.tsx +460 -0
- package/components/permissions/PermissionDialog.tsx +72 -0
- package/components/permissions/PermissionExplanation.tsx +272 -0
- package/components/permissions/PermissionPrompt.tsx +336 -0
- package/components/permissions/PermissionRequest.tsx +217 -0
- package/components/permissions/PermissionRequestTitle.tsx +66 -0
- package/components/permissions/PermissionRuleExplanation.tsx +121 -0
- package/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx +235 -0
- package/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx +91 -0
- package/components/permissions/SandboxPermissionRequest.tsx +163 -0
- package/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +230 -0
- package/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +369 -0
- package/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +258 -0
- package/components/permissions/WorkerBadge.tsx +49 -0
- package/components/permissions/WorkerPendingPermission.tsx +105 -0
- package/components/permissions/hooks.ts +209 -0
- package/components/permissions/rules/AddPermissionRules.tsx +180 -0
- package/components/permissions/rules/AddWorkspaceDirectory.tsx +340 -0
- package/components/permissions/rules/PermissionRuleDescription.tsx +76 -0
- package/components/permissions/rules/PermissionRuleInput.tsx +138 -0
- package/components/permissions/rules/PermissionRuleList.tsx +1179 -0
- package/components/permissions/rules/RecentDenialsTab.tsx +207 -0
- package/components/permissions/rules/RemoveWorkspaceDirectory.tsx +110 -0
- package/components/permissions/rules/WorkspaceTab.tsx +150 -0
- package/components/permissions/shellPermissionHelpers.tsx +164 -0
- package/components/permissions/useShellPermissionFeedback.ts +148 -0
- package/components/permissions/utils.ts +25 -0
- package/components/sandbox/SandboxConfigTab.tsx +45 -0
- package/components/sandbox/SandboxDependenciesTab.tsx +120 -0
- package/components/sandbox/SandboxDoctorSection.tsx +46 -0
- package/components/sandbox/SandboxOverridesTab.tsx +193 -0
- package/components/sandbox/SandboxSettings.tsx +296 -0
- package/components/shell/ExpandShellOutputContext.tsx +36 -0
- package/components/shell/OutputLine.tsx +118 -0
- package/components/shell/ShellProgressMessage.tsx +150 -0
- package/components/shell/ShellTimeDisplay.tsx +74 -0
- package/components/skills/SkillsMenu.tsx +237 -0
- package/components/tasks/AsyncAgentDetailDialog.tsx +229 -0
- package/components/tasks/BackgroundTask.tsx +345 -0
- package/components/tasks/BackgroundTaskStatus.tsx +429 -0
- package/components/tasks/BackgroundTasksDialog.tsx +652 -0
- package/components/tasks/DreamDetailDialog.tsx +251 -0
- package/components/tasks/InProcessTeammateDetailDialog.tsx +266 -0
- package/components/tasks/RemoteSessionDetailDialog.tsx +904 -0
- package/components/tasks/RemoteSessionProgress.tsx +243 -0
- package/components/tasks/ShellDetailDialog.tsx +404 -0
- package/components/tasks/ShellProgress.tsx +87 -0
- package/components/tasks/renderToolActivity.tsx +33 -0
- package/components/tasks/taskStatusUtils.tsx +107 -0
- package/components/teams/TeamStatus.tsx +80 -0
- package/components/teams/TeamsDialog.tsx +715 -0
- package/components/ui/OrderedList.tsx +71 -0
- package/components/ui/OrderedListItem.tsx +45 -0
- package/components/ui/TreeSelect.tsx +397 -0
- package/components/wizard/WizardDialogLayout.tsx +65 -0
- package/components/wizard/WizardNavigationFooter.tsx +24 -0
- package/components/wizard/WizardProvider.tsx +213 -0
- package/components/wizard/index.ts +9 -0
- package/components/wizard/useWizard.ts +13 -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 +914 -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/context/QueuedMessageContext.tsx +63 -0
- package/context/fpsMetrics.tsx +30 -0
- package/context/mailbox.tsx +38 -0
- package/context/modalContext.tsx +58 -0
- package/context/notifications.tsx +240 -0
- package/context/overlayContext.tsx +151 -0
- package/context/promptOverlayContext.tsx +125 -0
- package/context/stats.tsx +220 -0
- package/context/voice.tsx +88 -0
- package/context.ts +189 -0
- package/cost-tracker.ts +323 -0
- package/costHook.ts +22 -0
- package/dialogLaunchers.tsx +133 -0
- package/entrypoints/agentSdkTypes.ts +443 -0
- package/entrypoints/cli.tsx +310 -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 +73 -0
- package/entrypoints/sdk/coreTypes.ts +62 -0
- package/entrypoints/sdk/runtimeTypes.ts +74 -0
- package/entrypoints/sdk/toolTypes.ts +12 -0
- package/global.d.ts +18 -0
- package/history.ts +464 -0
- package/hooks/fileSuggestions.ts +811 -0
- package/hooks/notifs/useAutoModeUnavailableNotification.ts +56 -0
- package/hooks/notifs/useCanSwitchToExistingSubscription.tsx +60 -0
- package/hooks/notifs/useDeprecationWarningNotification.tsx +44 -0
- package/hooks/notifs/useFastModeNotification.tsx +162 -0
- package/hooks/notifs/useIDEStatusIndicator.tsx +186 -0
- package/hooks/notifs/useInstallMessages.tsx +26 -0
- package/hooks/notifs/useLspInitializationNotification.tsx +143 -0
- package/hooks/notifs/useMcpConnectivityStatus.tsx +88 -0
- package/hooks/notifs/useModelMigrationNotifications.tsx +52 -0
- package/hooks/notifs/useNpmDeprecationNotification.tsx +25 -0
- package/hooks/notifs/usePluginAutoupdateNotification.tsx +83 -0
- package/hooks/notifs/usePluginInstallationStatus.tsx +128 -0
- package/hooks/notifs/useRateLimitWarningNotification.tsx +114 -0
- package/hooks/notifs/useSettingsErrors.tsx +69 -0
- package/hooks/notifs/useStartupNotification.ts +41 -0
- package/hooks/notifs/useTeammateShutdownNotification.ts +78 -0
- package/hooks/renderPlaceholder.ts +51 -0
- package/hooks/toolPermission/PermissionContext.ts +388 -0
- package/hooks/toolPermission/handlers/coordinatorHandler.ts +65 -0
- package/hooks/toolPermission/handlers/interactiveHandler.ts +536 -0
- package/hooks/toolPermission/handlers/swarmWorkerHandler.ts +159 -0
- package/hooks/toolPermission/permissionLogging.ts +238 -0
- package/hooks/unifiedSuggestions.ts +202 -0
- package/hooks/useAfterFirstRender.ts +17 -0
- package/hooks/useApiKeyVerification.ts +84 -0
- package/hooks/useArrowKeyHistory.tsx +229 -0
- package/hooks/useAssistantHistory.ts +250 -0
- package/hooks/useAwaySummary.ts +125 -0
- package/hooks/useBackgroundTaskNavigation.ts +251 -0
- package/hooks/useBlink.ts +34 -0
- package/hooks/useCanUseTool.tsx +204 -0
- package/hooks/useCancelRequest.ts +276 -0
- package/hooks/useChromeExtensionNotification.tsx +50 -0
- package/hooks/useClaudeCodeHintRecommendation.tsx +129 -0
- package/hooks/useClipboardImageHint.ts +77 -0
- package/hooks/useCommandKeybindings.tsx +108 -0
- package/hooks/useCommandQueue.ts +15 -0
- package/hooks/useCopyOnSelect.ts +98 -0
- package/hooks/useDeferredHookMessages.ts +46 -0
- package/hooks/useDiffData.ts +110 -0
- package/hooks/useDiffInIDE.ts +379 -0
- package/hooks/useDirectConnect.ts +229 -0
- package/hooks/useDoublePress.ts +62 -0
- package/hooks/useDynamicConfig.ts +22 -0
- package/hooks/useElapsedTime.ts +37 -0
- package/hooks/useExitOnCtrlCD.ts +95 -0
- package/hooks/useExitOnCtrlCDWithKeybindings.ts +24 -0
- package/hooks/useFileHistorySnapshotInit.ts +25 -0
- package/hooks/useGlobalKeybindings.tsx +249 -0
- package/hooks/useHistorySearch.ts +303 -0
- package/hooks/useIDEIntegration.tsx +70 -0
- package/hooks/useIdeAtMentioned.ts +76 -0
- package/hooks/useIdeConnectionStatus.ts +33 -0
- package/hooks/useIdeLogging.ts +41 -0
- package/hooks/useIdeSelection.ts +150 -0
- package/hooks/useInboxPoller.ts +969 -0
- package/hooks/useInputBuffer.ts +132 -0
- package/hooks/useIssueFlagBanner.ts +133 -0
- package/hooks/useLogMessages.ts +119 -0
- package/hooks/useLspPluginRecommendation.tsx +194 -0
- package/hooks/useMailboxBridge.ts +21 -0
- package/hooks/useMainLoopModel.ts +34 -0
- package/hooks/useManagePlugins.ts +304 -0
- package/hooks/useMemoryUsage.ts +39 -0
- package/hooks/useMergedClients.ts +23 -0
- package/hooks/useMergedCommands.ts +15 -0
- package/hooks/useMergedTools.ts +44 -0
- package/hooks/useMinDisplayTime.ts +35 -0
- package/hooks/useNotifyAfterTimeout.ts +65 -0
- package/hooks/useOfficialMarketplaceNotification.tsx +48 -0
- package/hooks/usePasteHandler.ts +285 -0
- package/hooks/usePluginRecommendationBase.tsx +105 -0
- package/hooks/usePrStatus.ts +106 -0
- package/hooks/usePromptSuggestion.ts +177 -0
- package/hooks/usePromptsFromClaudeInChrome.tsx +71 -0
- package/hooks/useQueueProcessor.ts +68 -0
- package/hooks/useRemoteSession.ts +605 -0
- package/hooks/useReplBridge.tsx +723 -0
- package/hooks/useSSHSession.ts +241 -0
- package/hooks/useScheduledTasks.ts +139 -0
- package/hooks/useSearchInput.ts +364 -0
- package/hooks/useSessionBackgrounding.ts +158 -0
- package/hooks/useSettings.ts +17 -0
- package/hooks/useSettingsChange.ts +25 -0
- package/hooks/useSkillImprovementSurvey.ts +105 -0
- package/hooks/useSkillsChange.ts +62 -0
- package/hooks/useSwarmInitialization.ts +81 -0
- package/hooks/useSwarmPermissionPoller.ts +330 -0
- package/hooks/useTaskListWatcher.ts +221 -0
- package/hooks/useTasksV2.ts +250 -0
- package/hooks/useTeammateViewAutoExit.ts +63 -0
- package/hooks/useTeleportResume.tsx +85 -0
- package/hooks/useTerminalSize.ts +15 -0
- package/hooks/useTextInput.ts +529 -0
- package/hooks/useTimeout.ts +14 -0
- package/hooks/useTurnDiffs.ts +213 -0
- package/hooks/useTypeahead.tsx +1385 -0
- package/hooks/useUpdateNotification.ts +34 -0
- package/hooks/useVimInput.ts +316 -0
- package/hooks/useVirtualScroll.ts +721 -0
- package/hooks/useVoice.ts +1144 -0
- package/hooks/useVoiceEnabled.ts +25 -0
- package/hooks/useVoiceIntegration.tsx +677 -0
- package/ink/Ansi.tsx +292 -0
- package/ink/bidi.ts +139 -0
- package/ink/clearTerminal.ts +74 -0
- package/ink/colorize.ts +231 -0
- package/ink/components/AlternateScreen.tsx +80 -0
- package/ink/components/App.tsx +658 -0
- package/ink/components/AppContext.ts +21 -0
- package/ink/components/Box.tsx +214 -0
- package/ink/components/Button.tsx +192 -0
- package/ink/components/ClockContext.tsx +112 -0
- package/ink/components/CursorDeclarationContext.ts +32 -0
- package/ink/components/ErrorOverview.tsx +109 -0
- package/ink/components/Link.tsx +42 -0
- package/ink/components/Newline.tsx +39 -0
- package/ink/components/NoSelect.tsx +68 -0
- package/ink/components/RawAnsi.tsx +57 -0
- package/ink/components/ScrollBox.tsx +237 -0
- package/ink/components/Spacer.tsx +20 -0
- package/ink/components/StdinContext.ts +49 -0
- package/ink/components/TerminalFocusContext.tsx +52 -0
- package/ink/components/TerminalSizeContext.tsx +7 -0
- package/ink/components/Text.tsx +254 -0
- package/ink/constants.ts +2 -0
- package/ink/dom.ts +484 -0
- package/ink/events/click-event.ts +38 -0
- package/ink/events/dispatcher.ts +235 -0
- package/ink/events/emitter.ts +39 -0
- package/ink/events/event-handlers.ts +73 -0
- package/ink/events/event.ts +11 -0
- package/ink/events/focus-event.ts +21 -0
- package/ink/events/input-event.ts +205 -0
- package/ink/events/keyboard-event.ts +51 -0
- package/ink/events/terminal-event.ts +107 -0
- package/ink/events/terminal-focus-event.ts +19 -0
- package/ink/focus.ts +181 -0
- package/ink/frame.ts +124 -0
- package/ink/get-max-width.ts +27 -0
- package/ink/global.d.ts +14 -0
- package/ink/hit-test.ts +130 -0
- package/ink/hooks/use-animation-frame.ts +57 -0
- package/ink/hooks/use-app.ts +8 -0
- package/ink/hooks/use-declared-cursor.ts +73 -0
- package/ink/hooks/use-input.ts +92 -0
- package/ink/hooks/use-interval.ts +67 -0
- package/ink/hooks/use-search-highlight.ts +53 -0
- package/ink/hooks/use-selection.ts +104 -0
- package/ink/hooks/use-stdin.ts +8 -0
- package/ink/hooks/use-tab-status.ts +72 -0
- package/ink/hooks/use-terminal-focus.ts +16 -0
- package/ink/hooks/use-terminal-title.ts +31 -0
- package/ink/hooks/use-terminal-viewport.ts +96 -0
- package/ink/ink.tsx +1723 -0
- package/ink/instances.ts +10 -0
- package/ink/layout/engine.ts +6 -0
- package/ink/layout/geometry.ts +97 -0
- package/ink/layout/node.ts +152 -0
- package/ink/layout/yoga.ts +308 -0
- package/ink/line-width-cache.ts +24 -0
- package/ink/log-update.ts +773 -0
- package/ink/measure-element.ts +23 -0
- package/ink/measure-text.ts +47 -0
- package/ink/node-cache.ts +54 -0
- package/ink/optimizer.ts +93 -0
- package/ink/output.ts +797 -0
- package/ink/parse-keypress.ts +801 -0
- package/ink/reconciler.ts +512 -0
- package/ink/render-border.ts +231 -0
- package/ink/render-node-to-output.ts +1462 -0
- package/ink/render-to-screen.ts +231 -0
- package/ink/renderer.ts +178 -0
- package/ink/root.ts +184 -0
- package/ink/screen.ts +1486 -0
- package/ink/searchHighlight.ts +93 -0
- package/ink/selection.ts +917 -0
- package/ink/squash-text-nodes.ts +92 -0
- package/ink/stringWidth.ts +222 -0
- package/ink/styles.ts +771 -0
- package/ink/supports-hyperlinks.ts +57 -0
- package/ink/tabstops.ts +46 -0
- package/ink/terminal-focus-state.ts +47 -0
- package/ink/terminal-querier.ts +212 -0
- package/ink/terminal.ts +248 -0
- package/ink/termio/ansi.ts +75 -0
- package/ink/termio/csi.ts +319 -0
- package/ink/termio/dec.ts +60 -0
- package/ink/termio/esc.ts +67 -0
- package/ink/termio/osc.ts +493 -0
- package/ink/termio/parser.ts +394 -0
- package/ink/termio/sgr.ts +308 -0
- package/ink/termio/tokenize.ts +319 -0
- package/ink/termio/types.ts +236 -0
- package/ink/termio.ts +42 -0
- package/ink/useTerminalNotification.ts +126 -0
- package/ink/warn.ts +9 -0
- package/ink/widest-line.ts +19 -0
- package/ink/wrap-text.ts +74 -0
- package/ink/wrapAnsi.ts +20 -0
- package/ink.ts +85 -0
- package/interactiveHelpers.tsx +366 -0
- package/main.tsx +4702 -0
- package/package.json +95 -0
- package/projectOnboardingState.ts +83 -0
- package/query/config.ts +46 -0
- package/query/deps.ts +40 -0
- package/query/stopHooks.ts +473 -0
- package/query/tokenBudget.ts +93 -0
- package/query.ts +1729 -0
- package/replLauncher.tsx +23 -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 +3419 -0
- package/services/api/client.ts +389 -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/grove.ts +357 -0
- package/services/api/logging.ts +788 -0
- package/services/api/metricsOptOut.ts +159 -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 +615 -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/setup.ts +477 -0
- package/state/AppState.tsx +200 -0
- package/state/AppStateStore.ts +569 -0
- package/state/onChangeAppState.ts +171 -0
- package/state/selectors.ts +76 -0
- package/state/store.ts +34 -0
- package/state/teammateViewHelpers.ts +141 -0
- package/tasks.ts +39 -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/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 +5 -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/tools.ts +392 -0
- package/types/command.ts +216 -0
- package/types/connectorText.ts +21 -0
- package/types/generated/events_mono/claude_code/v1/claude_code_internal_event.ts +865 -0
- package/types/generated/events_mono/common/v1/auth.ts +100 -0
- package/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.ts +223 -0
- package/types/generated/google/protobuf/timestamp.ts +187 -0
- package/types/hooks.ts +290 -0
- package/types/ids.ts +44 -0
- package/types/logs.ts +330 -0
- package/types/permissions.ts +441 -0
- package/types/plugin.ts +363 -0
- package/types/textInputTypes.ts +387 -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 +3997 -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/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 +293 -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/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/filePersistence/types.ts +28 -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 +350 -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 +5512 -0
- package/utils/model/agent.ts +157 -0
- package/utils/model/aliases.ts +25 -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 +118 -0
- package/utils/model/contextWindowUpgradeCheck.ts +47 -0
- package/utils/model/deprecation.ts +101 -0
- package/utils/model/model.ts +618 -0
- package/utils/model/modelAllowlist.ts +170 -0
- package/utils/model/modelCapabilities.ts +118 -0
- package/utils/model/modelOptions.ts +540 -0
- package/utils/model/modelStrings.ts +166 -0
- package/utils/model/modelSupportOverrides.ts +50 -0
- package/utils/model/providers.ts +40 -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 +77 -0
- package/utils/ripgrep.ts +679 -0
- package/utils/sandbox/sandbox-adapter.ts +987 -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 +1148 -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/unaryLogging.ts +39 -0
- package/utils/undercover.ts +89 -0
- package/utils/user.ts +194 -0
- package/utils/userAgent.ts +10 -0
- package/utils/userConfig.ts +181 -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/xml.ts +16 -0
- package/utils/yaml.ts +15 -0
- package/utils/zodToJsonSchema.ts +23 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI utilities for sandbox violations
|
|
3
|
+
* These utilities are used for displaying sandbox-related information in the UI
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Remove <sandbox_violations> tags from text
|
|
8
|
+
* Used to clean up error messages for display purposes
|
|
9
|
+
*/
|
|
10
|
+
export function removeSandboxViolationTags(text: string): string {
|
|
11
|
+
return text.replace(/<sandbox_violations>[\s\S]*?<\/sandbox_violations>/g, '')
|
|
12
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unicode Sanitization for Hidden Character Attack Mitigation
|
|
3
|
+
*
|
|
4
|
+
* This module implements security measures against Unicode-based hidden character attacks,
|
|
5
|
+
* specifically targeting ASCII Smuggling and Hidden Prompt Injection vulnerabilities.
|
|
6
|
+
* These attacks use invisible Unicode characters (such as Tag characters, format controls,
|
|
7
|
+
* private use areas, and noncharacters) to hide malicious instructions that are invisible
|
|
8
|
+
* to users but processed by AI models.
|
|
9
|
+
*
|
|
10
|
+
* The vulnerability was demonstrated in HackerOne report #3086545 targeting Claude Desktop's
|
|
11
|
+
* MCP (Model Context Protocol) implementation, where attackers could inject hidden instructions
|
|
12
|
+
* using Unicode Tag characters that would be executed by Claude but remain invisible to users.
|
|
13
|
+
*
|
|
14
|
+
* Reference: https://embracethered.com/blog/posts/2024/hiding-and-finding-text-with-unicode-tags/
|
|
15
|
+
*
|
|
16
|
+
* This implementation provides comprehensive protection by:
|
|
17
|
+
* 1. Applying NFKC Unicode normalization to handle composed character sequences
|
|
18
|
+
* 2. Removing dangerous Unicode categories while preserving legitimate text and formatting
|
|
19
|
+
* 3. Supporting recursive sanitization of complex nested data structures
|
|
20
|
+
* 4. Maintaining performance with efficient regex processing
|
|
21
|
+
*
|
|
22
|
+
* The sanitization is always enabled to protect against these attacks.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export function partiallySanitizeUnicode(prompt: string): string {
|
|
26
|
+
let current = prompt
|
|
27
|
+
let previous = ''
|
|
28
|
+
let iterations = 0
|
|
29
|
+
const MAX_ITERATIONS = 10 // Safety limit to prevent infinite loops
|
|
30
|
+
|
|
31
|
+
// Iteratively sanitize until no more changes occur or max iterations reached
|
|
32
|
+
while (current !== previous && iterations < MAX_ITERATIONS) {
|
|
33
|
+
previous = current
|
|
34
|
+
|
|
35
|
+
// Apply NFKC normalization to handle composed character sequences
|
|
36
|
+
current = current.normalize('NFKC')
|
|
37
|
+
|
|
38
|
+
// Remove dangerous Unicode categories using explicit character ranges
|
|
39
|
+
|
|
40
|
+
// Method 1: Strip dangerous Unicode property classes
|
|
41
|
+
// This is the primary defence and is the solution that is widely used in OSS libraries.
|
|
42
|
+
current = current.replace(/[\p{Cf}\p{Co}\p{Cn}]/gu, '')
|
|
43
|
+
|
|
44
|
+
// Method 2: Explicit character ranges. There are some subtle issues with the above method
|
|
45
|
+
// failing in certain environments that don't support regexes for unicode property classes,
|
|
46
|
+
// so we also implement a fallback that strips out some specifically known dangerous ranges.
|
|
47
|
+
current = current
|
|
48
|
+
.replace(/[\u200B-\u200F]/g, '') // Zero-width spaces, LTR/RTL marks
|
|
49
|
+
.replace(/[\u202A-\u202E]/g, '') // Directional formatting characters
|
|
50
|
+
.replace(/[\u2066-\u2069]/g, '') // Directional isolates
|
|
51
|
+
.replace(/[\uFEFF]/g, '') // Byte order mark
|
|
52
|
+
.replace(/[\uE000-\uF8FF]/g, '') // Basic Multilingual Plane private use
|
|
53
|
+
|
|
54
|
+
iterations++
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// If we hit max iterations, crash loudly. This should only ever happen if there is a bug or if someone purposefully created a deeply nested unicode string.
|
|
58
|
+
if (iterations >= MAX_ITERATIONS) {
|
|
59
|
+
throw new Error(
|
|
60
|
+
`Unicode sanitization reached maximum iterations (${MAX_ITERATIONS}) for input: ${prompt.slice(0, 100)}`,
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return current
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function recursivelySanitizeUnicode(value: string): string
|
|
68
|
+
export function recursivelySanitizeUnicode<T>(value: T[]): T[]
|
|
69
|
+
export function recursivelySanitizeUnicode<T extends object>(value: T): T
|
|
70
|
+
export function recursivelySanitizeUnicode<T>(value: T): T
|
|
71
|
+
export function recursivelySanitizeUnicode(value: unknown): unknown {
|
|
72
|
+
if (typeof value === 'string') {
|
|
73
|
+
return partiallySanitizeUnicode(value)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (Array.isArray(value)) {
|
|
77
|
+
return value.map(recursivelySanitizeUnicode)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (value !== null && typeof value === 'object') {
|
|
81
|
+
const sanitized: Record<string, unknown> = {}
|
|
82
|
+
for (const [key, val] of Object.entries(value)) {
|
|
83
|
+
sanitized[recursivelySanitizeUnicode(key)] =
|
|
84
|
+
recursivelySanitizeUnicode(val)
|
|
85
|
+
}
|
|
86
|
+
return sanitized
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Return other primitive values (numbers, booleans, null, undefined) unchanged
|
|
90
|
+
return value
|
|
91
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { mkdir, unlink, writeFile } from 'fs/promises'
|
|
2
|
+
import { tmpdir } from 'os'
|
|
3
|
+
import { join } from 'path'
|
|
4
|
+
import { type AnsiToPngOptions, ansiToPng } from './ansiToPng.js'
|
|
5
|
+
import { execFileNoThrowWithCwd } from './execFileNoThrow.js'
|
|
6
|
+
import { logError } from './log.js'
|
|
7
|
+
import { getPlatform } from './platform.js'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Copies an image (from ANSI text) to the system clipboard.
|
|
11
|
+
* Supports macOS, Linux (with xclip/xsel), and Windows.
|
|
12
|
+
*
|
|
13
|
+
* Pure-TS pipeline: ANSI text → bitmap-font render → PNG encode. No WASM,
|
|
14
|
+
* no system fonts, so this works in every build (native and JS).
|
|
15
|
+
*/
|
|
16
|
+
export async function copyAnsiToClipboard(
|
|
17
|
+
ansiText: string,
|
|
18
|
+
options?: AnsiToPngOptions,
|
|
19
|
+
): Promise<{ success: boolean; message: string }> {
|
|
20
|
+
try {
|
|
21
|
+
const tempDir = join(tmpdir(), 'claude-code-screenshots')
|
|
22
|
+
await mkdir(tempDir, { recursive: true })
|
|
23
|
+
|
|
24
|
+
const pngPath = join(tempDir, `screenshot-${Date.now()}.png`)
|
|
25
|
+
const pngBuffer = ansiToPng(ansiText, options)
|
|
26
|
+
await writeFile(pngPath, pngBuffer)
|
|
27
|
+
|
|
28
|
+
const result = await copyPngToClipboard(pngPath)
|
|
29
|
+
|
|
30
|
+
try {
|
|
31
|
+
await unlink(pngPath)
|
|
32
|
+
} catch {
|
|
33
|
+
// Ignore cleanup errors
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return result
|
|
37
|
+
} catch (error) {
|
|
38
|
+
logError(error)
|
|
39
|
+
return {
|
|
40
|
+
success: false,
|
|
41
|
+
message: `Failed to copy screenshot: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async function copyPngToClipboard(
|
|
47
|
+
pngPath: string,
|
|
48
|
+
): Promise<{ success: boolean; message: string }> {
|
|
49
|
+
const platform = getPlatform()
|
|
50
|
+
|
|
51
|
+
if (platform === 'macos') {
|
|
52
|
+
// macOS: Use osascript to copy PNG to clipboard
|
|
53
|
+
// Escape backslashes and double quotes for AppleScript string
|
|
54
|
+
const escapedPath = pngPath.replace(/\\/g, '\\\\').replace(/"/g, '\\"')
|
|
55
|
+
const script = `set the clipboard to (read (POSIX file "${escapedPath}") as «class PNGf»)`
|
|
56
|
+
const result = await execFileNoThrowWithCwd('osascript', ['-e', script], {
|
|
57
|
+
timeout: 5000,
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
if (result.code === 0) {
|
|
61
|
+
return { success: true, message: 'Screenshot copied to clipboard' }
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
success: false,
|
|
65
|
+
message: `Failed to copy to clipboard: ${result.stderr}`,
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (platform === 'linux') {
|
|
70
|
+
// Linux: Try xclip first, then xsel
|
|
71
|
+
const xclipResult = await execFileNoThrowWithCwd(
|
|
72
|
+
'xclip',
|
|
73
|
+
['-selection', 'clipboard', '-t', 'image/png', '-i', pngPath],
|
|
74
|
+
{ timeout: 5000 },
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
if (xclipResult.code === 0) {
|
|
78
|
+
return { success: true, message: 'Screenshot copied to clipboard' }
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Try xsel as fallback
|
|
82
|
+
const xselResult = await execFileNoThrowWithCwd(
|
|
83
|
+
'xsel',
|
|
84
|
+
['--clipboard', '--input', '--type', 'image/png'],
|
|
85
|
+
{ timeout: 5000 },
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
if (xselResult.code === 0) {
|
|
89
|
+
return { success: true, message: 'Screenshot copied to clipboard' }
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return {
|
|
93
|
+
success: false,
|
|
94
|
+
message:
|
|
95
|
+
'Failed to copy to clipboard. Please install xclip or xsel: sudo apt install xclip',
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (platform === 'windows') {
|
|
100
|
+
// Windows: Use PowerShell to copy image to clipboard
|
|
101
|
+
const psScript = `Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Clipboard]::SetImage([System.Drawing.Image]::FromFile('${pngPath.replace(/'/g, "''")}'))`
|
|
102
|
+
const result = await execFileNoThrowWithCwd(
|
|
103
|
+
'powershell',
|
|
104
|
+
['-NoProfile', '-Command', psScript],
|
|
105
|
+
{ timeout: 5000 },
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
if (result.code === 0) {
|
|
109
|
+
return { success: true, message: 'Screenshot copied to clipboard' }
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
success: false,
|
|
113
|
+
message: `Failed to copy to clipboard: ${result.stderr}`,
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
success: false,
|
|
119
|
+
message: `Screenshot to clipboard is not supported on ${platform}`,
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { UUID } from 'crypto'
|
|
2
|
+
import { randomUUID } from 'crypto'
|
|
3
|
+
import { getIsNonInteractiveSession, getSessionId } from '../bootstrap/state.js'
|
|
4
|
+
import type { SdkWorkflowProgress } from '../types/tools.js'
|
|
5
|
+
|
|
6
|
+
type TaskStartedEvent = {
|
|
7
|
+
type: 'system'
|
|
8
|
+
subtype: 'task_started'
|
|
9
|
+
task_id: string
|
|
10
|
+
tool_use_id?: string
|
|
11
|
+
description: string
|
|
12
|
+
task_type?: string
|
|
13
|
+
workflow_name?: string
|
|
14
|
+
prompt?: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
type TaskProgressEvent = {
|
|
18
|
+
type: 'system'
|
|
19
|
+
subtype: 'task_progress'
|
|
20
|
+
task_id: string
|
|
21
|
+
tool_use_id?: string
|
|
22
|
+
description: string
|
|
23
|
+
usage: {
|
|
24
|
+
total_tokens: number
|
|
25
|
+
tool_uses: number
|
|
26
|
+
duration_ms: number
|
|
27
|
+
}
|
|
28
|
+
last_tool_name?: string
|
|
29
|
+
summary?: string
|
|
30
|
+
// Delta batch of workflow state changes. Clients upsert by
|
|
31
|
+
// `${type}:${index}` then group by phaseIndex to rebuild the phase tree,
|
|
32
|
+
// same fold as collectFromEvents + groupByPhase in PhaseProgress.tsx.
|
|
33
|
+
workflow_progress?: SdkWorkflowProgress[]
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Emitted when a foreground agent completes without being backgrounded.
|
|
37
|
+
// Drained by drainSdkEvents() directly into the output stream — does NOT
|
|
38
|
+
// go through the print.ts XML task_notification parser and does NOT trigger
|
|
39
|
+
// the LLM loop. Consumers (e.g. VS Code session.ts) use this to remove the
|
|
40
|
+
// task from the subagent panel.
|
|
41
|
+
type TaskNotificationSdkEvent = {
|
|
42
|
+
type: 'system'
|
|
43
|
+
subtype: 'task_notification'
|
|
44
|
+
task_id: string
|
|
45
|
+
tool_use_id?: string
|
|
46
|
+
status: 'completed' | 'failed' | 'stopped'
|
|
47
|
+
output_file: string
|
|
48
|
+
summary: string
|
|
49
|
+
usage?: {
|
|
50
|
+
total_tokens: number
|
|
51
|
+
tool_uses: number
|
|
52
|
+
duration_ms: number
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Mirrors notifySessionStateChanged. The CCR bridge already receives this
|
|
57
|
+
// via its own listener; SDK consumers (scmuxd, VS Code) need the same signal
|
|
58
|
+
// to know when the main turn's generator is idle vs actively producing.
|
|
59
|
+
// The 'idle' transition fires AFTER heldBackResult flushes and the bg-agent
|
|
60
|
+
// do-while loop exits — so SDK consumers can trust it as the authoritative
|
|
61
|
+
// "turn is over" signal even when result was withheld for background agents.
|
|
62
|
+
type SessionStateChangedEvent = {
|
|
63
|
+
type: 'system'
|
|
64
|
+
subtype: 'session_state_changed'
|
|
65
|
+
state: 'idle' | 'running' | 'requires_action'
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export type SdkEvent =
|
|
69
|
+
| TaskStartedEvent
|
|
70
|
+
| TaskProgressEvent
|
|
71
|
+
| TaskNotificationSdkEvent
|
|
72
|
+
| SessionStateChangedEvent
|
|
73
|
+
|
|
74
|
+
const MAX_QUEUE_SIZE = 1000
|
|
75
|
+
const queue: SdkEvent[] = []
|
|
76
|
+
|
|
77
|
+
export function enqueueSdkEvent(event: SdkEvent): void {
|
|
78
|
+
// SDK events are only consumed (drained) in headless/streaming mode.
|
|
79
|
+
// In TUI mode they would accumulate up to the cap and never be read.
|
|
80
|
+
if (!getIsNonInteractiveSession()) {
|
|
81
|
+
return
|
|
82
|
+
}
|
|
83
|
+
if (queue.length >= MAX_QUEUE_SIZE) {
|
|
84
|
+
queue.shift()
|
|
85
|
+
}
|
|
86
|
+
queue.push(event)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function drainSdkEvents(): Array<
|
|
90
|
+
SdkEvent & { uuid: UUID; session_id: string }
|
|
91
|
+
> {
|
|
92
|
+
if (queue.length === 0) {
|
|
93
|
+
return []
|
|
94
|
+
}
|
|
95
|
+
const events = queue.splice(0)
|
|
96
|
+
return events.map(e => ({
|
|
97
|
+
...e,
|
|
98
|
+
uuid: randomUUID(),
|
|
99
|
+
session_id: getSessionId(),
|
|
100
|
+
}))
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Emit a task_notification SDK event for a task reaching a terminal state.
|
|
105
|
+
*
|
|
106
|
+
* registerTask() always emits task_started; this is the closing bookend.
|
|
107
|
+
* Call this from any exit path that sets a task terminal WITHOUT going
|
|
108
|
+
* through enqueuePendingNotification-with-<task-id> (print.ts parses that
|
|
109
|
+
* XML into the same SDK event, so paths that do both would double-emit).
|
|
110
|
+
* Paths that suppress the XML notification (notified:true pre-set, kill
|
|
111
|
+
* paths, abort branches) must call this directly so SDK consumers
|
|
112
|
+
* (Scuttle's bg-task dot, VS Code subagent panel) see the task close.
|
|
113
|
+
*/
|
|
114
|
+
export function emitTaskTerminatedSdk(
|
|
115
|
+
taskId: string,
|
|
116
|
+
status: 'completed' | 'failed' | 'stopped',
|
|
117
|
+
opts?: {
|
|
118
|
+
toolUseId?: string
|
|
119
|
+
summary?: string
|
|
120
|
+
outputFile?: string
|
|
121
|
+
usage?: { total_tokens: number; tool_uses: number; duration_ms: number }
|
|
122
|
+
},
|
|
123
|
+
): void {
|
|
124
|
+
enqueueSdkEvent({
|
|
125
|
+
type: 'system',
|
|
126
|
+
subtype: 'task_notification',
|
|
127
|
+
task_id: taskId,
|
|
128
|
+
tool_use_id: opts?.toolUseId,
|
|
129
|
+
status,
|
|
130
|
+
output_file: opts?.outputFile ?? '',
|
|
131
|
+
summary: opts?.summary ?? '',
|
|
132
|
+
usage: opts?.usage,
|
|
133
|
+
})
|
|
134
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { SecureStorage, SecureStorageData } from './types.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates a fallback storage that tries to use the primary storage first,
|
|
5
|
+
* and if that fails, falls back to the secondary storage
|
|
6
|
+
*/
|
|
7
|
+
export function createFallbackStorage(
|
|
8
|
+
primary: SecureStorage,
|
|
9
|
+
secondary: SecureStorage,
|
|
10
|
+
): SecureStorage {
|
|
11
|
+
return {
|
|
12
|
+
name: `${primary.name}-with-${secondary.name}-fallback`,
|
|
13
|
+
read(): SecureStorageData {
|
|
14
|
+
const result = primary.read()
|
|
15
|
+
if (result !== null && result !== undefined) {
|
|
16
|
+
return result
|
|
17
|
+
}
|
|
18
|
+
return secondary.read() || {}
|
|
19
|
+
},
|
|
20
|
+
async readAsync(): Promise<SecureStorageData | null> {
|
|
21
|
+
const result = await primary.readAsync()
|
|
22
|
+
if (result !== null && result !== undefined) {
|
|
23
|
+
return result
|
|
24
|
+
}
|
|
25
|
+
return (await secondary.readAsync()) || {}
|
|
26
|
+
},
|
|
27
|
+
update(data: SecureStorageData): { success: boolean; warning?: string } {
|
|
28
|
+
// Capture state before update
|
|
29
|
+
const primaryDataBefore = primary.read()
|
|
30
|
+
|
|
31
|
+
const result = primary.update(data)
|
|
32
|
+
|
|
33
|
+
if (result.success) {
|
|
34
|
+
// Delete secondary when migrating to primary for the first time
|
|
35
|
+
// This preserves credentials when sharing .claude between host and containers
|
|
36
|
+
// See: https://github.com/anthropics/claude-code/issues/1414
|
|
37
|
+
if (primaryDataBefore === null) {
|
|
38
|
+
secondary.delete()
|
|
39
|
+
}
|
|
40
|
+
return result
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const fallbackResult = secondary.update(data)
|
|
44
|
+
|
|
45
|
+
if (fallbackResult.success) {
|
|
46
|
+
// Primary write failed but primary may still hold an *older* valid
|
|
47
|
+
// entry. read() prefers primary whenever it returns non-null, so that
|
|
48
|
+
// stale entry would shadow the fresh data we just wrote to secondary —
|
|
49
|
+
// e.g. a refresh token the server has already rotated away, causing a
|
|
50
|
+
// /login loop (#30337). Best-effort delete; if this also fails the
|
|
51
|
+
// user's keychain is in a bad state we can't fix from here.
|
|
52
|
+
if (primaryDataBefore !== null) {
|
|
53
|
+
primary.delete()
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
success: true,
|
|
57
|
+
warning: fallbackResult.warning,
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return { success: false }
|
|
62
|
+
},
|
|
63
|
+
delete(): boolean {
|
|
64
|
+
const primarySuccess = primary.delete()
|
|
65
|
+
const secondarySuccess = secondary.delete()
|
|
66
|
+
|
|
67
|
+
return primarySuccess || secondarySuccess
|
|
68
|
+
},
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createFallbackStorage } from './fallbackStorage.js'
|
|
2
|
+
import { macOsKeychainStorage } from './macOsKeychainStorage.js'
|
|
3
|
+
import { plainTextStorage } from './plainTextStorage.js'
|
|
4
|
+
import type { SecureStorage } from './types.js'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Get the appropriate secure storage implementation for the current platform
|
|
8
|
+
*/
|
|
9
|
+
export function getSecureStorage(): SecureStorage {
|
|
10
|
+
if (process.platform === 'darwin') {
|
|
11
|
+
return createFallbackStorage(macOsKeychainStorage, plainTextStorage)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// TODO: add libsecret support for Linux
|
|
15
|
+
|
|
16
|
+
return plainTextStorage
|
|
17
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal module for firing macOS keychain reads in parallel with main.tsx
|
|
3
|
+
* module evaluation, same pattern as startMdmRawRead() in settings/mdm/rawRead.ts.
|
|
4
|
+
*
|
|
5
|
+
* isRemoteManagedSettingsEligible() reads two separate keychain entries
|
|
6
|
+
* SEQUENTIALLY via sync execSync during applySafeConfigEnvironmentVariables():
|
|
7
|
+
* 1. "Claude Code-credentials" (OAuth tokens) — ~32ms
|
|
8
|
+
* 2. "Claude Code" (legacy API key) — ~33ms
|
|
9
|
+
* Sequential cost: ~65ms on every macOS startup.
|
|
10
|
+
*
|
|
11
|
+
* Firing both here lets the subprocesses run in parallel with the ~65ms of
|
|
12
|
+
* main.tsx imports. ensureKeychainPrefetchCompleted() is awaited alongside
|
|
13
|
+
* ensureMdmSettingsLoaded() in main.tsx preAction — nearly free since the
|
|
14
|
+
* subprocesses finish during import evaluation. Sync read() and
|
|
15
|
+
* getApiKeyFromConfigOrMacOSKeychain() then hit their caches.
|
|
16
|
+
*
|
|
17
|
+
* Imports stay minimal: child_process + macOsKeychainHelpers.ts (NOT
|
|
18
|
+
* macOsKeychainStorage.ts — that pulls in execa → human-signals →
|
|
19
|
+
* cross-spawn, ~58ms of synchronous module init). The helpers file's own
|
|
20
|
+
* import chain (envUtils, oauth constants, crypto) is already evaluated by
|
|
21
|
+
* startupProfiler.ts at main.tsx:5, so no new module-init cost lands here.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { execFile } from 'child_process'
|
|
25
|
+
import { isBareMode } from '../envUtils.js'
|
|
26
|
+
import {
|
|
27
|
+
CREDENTIALS_SERVICE_SUFFIX,
|
|
28
|
+
getMacOsKeychainStorageServiceName,
|
|
29
|
+
getUsername,
|
|
30
|
+
primeKeychainCacheFromPrefetch,
|
|
31
|
+
} from './macOsKeychainHelpers.js'
|
|
32
|
+
|
|
33
|
+
const KEYCHAIN_PREFETCH_TIMEOUT_MS = 10_000
|
|
34
|
+
|
|
35
|
+
// Shared with auth.ts getApiKeyFromConfigOrMacOSKeychain() so it can skip its
|
|
36
|
+
// sync spawn when the prefetch already landed. Distinguishing "not started" (null)
|
|
37
|
+
// from "completed with no key" ({ stdout: null }) lets the sync reader only
|
|
38
|
+
// trust a completed prefetch.
|
|
39
|
+
let legacyApiKeyPrefetch: { stdout: string | null } | null = null
|
|
40
|
+
|
|
41
|
+
let prefetchPromise: Promise<void> | null = null
|
|
42
|
+
|
|
43
|
+
type SpawnResult = { stdout: string | null; timedOut: boolean }
|
|
44
|
+
|
|
45
|
+
function spawnSecurity(serviceName: string): Promise<SpawnResult> {
|
|
46
|
+
return new Promise(resolve => {
|
|
47
|
+
execFile(
|
|
48
|
+
'security',
|
|
49
|
+
['find-generic-password', '-a', getUsername(), '-w', '-s', serviceName],
|
|
50
|
+
{ encoding: 'utf-8', timeout: KEYCHAIN_PREFETCH_TIMEOUT_MS },
|
|
51
|
+
(err, stdout) => {
|
|
52
|
+
// Exit 44 (entry not found) is a valid "no key" result and safe to
|
|
53
|
+
// prime as null. But timeout (err.killed) means the keychain MAY have
|
|
54
|
+
// a key we couldn't fetch — don't prime, let sync spawn retry.
|
|
55
|
+
// biome-ignore lint/nursery/noFloatingPromises: resolve() is not a floating promise
|
|
56
|
+
resolve({
|
|
57
|
+
stdout: err ? null : stdout?.trim() || null,
|
|
58
|
+
timedOut: Boolean(err && 'killed' in err && err.killed),
|
|
59
|
+
})
|
|
60
|
+
},
|
|
61
|
+
)
|
|
62
|
+
})
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Fire both keychain reads in parallel. Called at main.tsx top-level
|
|
67
|
+
* immediately after startMdmRawRead(). Non-darwin is a no-op.
|
|
68
|
+
*/
|
|
69
|
+
export function startKeychainPrefetch(): void {
|
|
70
|
+
if (process.platform !== 'darwin' || prefetchPromise || isBareMode()) return
|
|
71
|
+
|
|
72
|
+
// Fire both subprocesses immediately (non-blocking). They run in parallel
|
|
73
|
+
// with each other AND with main.tsx imports. The await in Promise.all
|
|
74
|
+
// happens later via ensureKeychainPrefetchCompleted().
|
|
75
|
+
const oauthSpawn = spawnSecurity(
|
|
76
|
+
getMacOsKeychainStorageServiceName(CREDENTIALS_SERVICE_SUFFIX),
|
|
77
|
+
)
|
|
78
|
+
const legacySpawn = spawnSecurity(getMacOsKeychainStorageServiceName())
|
|
79
|
+
|
|
80
|
+
prefetchPromise = Promise.all([oauthSpawn, legacySpawn]).then(
|
|
81
|
+
([oauth, legacy]) => {
|
|
82
|
+
// Timed-out prefetch: don't prime. Sync read/spawn will retry with its
|
|
83
|
+
// own (longer) timeout. Priming null here would shadow a key that the
|
|
84
|
+
// sync path might successfully fetch.
|
|
85
|
+
if (!oauth.timedOut) primeKeychainCacheFromPrefetch(oauth.stdout)
|
|
86
|
+
if (!legacy.timedOut) legacyApiKeyPrefetch = { stdout: legacy.stdout }
|
|
87
|
+
},
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Await prefetch completion. Called in main.tsx preAction alongside
|
|
93
|
+
* ensureMdmSettingsLoaded() — nearly free since subprocesses finish during
|
|
94
|
+
* the ~65ms of main.tsx imports. Resolves immediately on non-darwin.
|
|
95
|
+
*/
|
|
96
|
+
export async function ensureKeychainPrefetchCompleted(): Promise<void> {
|
|
97
|
+
if (prefetchPromise) await prefetchPromise
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Consumed by getApiKeyFromConfigOrMacOSKeychain() in auth.ts before it
|
|
102
|
+
* falls through to sync execSync. Returns null if prefetch hasn't completed.
|
|
103
|
+
*/
|
|
104
|
+
export function getLegacyApiKeyPrefetchResult(): {
|
|
105
|
+
stdout: string | null
|
|
106
|
+
} | null {
|
|
107
|
+
return legacyApiKeyPrefetch
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Clear prefetch result. Called alongside getApiKeyFromConfigOrMacOSKeychain
|
|
112
|
+
* cache invalidation so a stale prefetch doesn't shadow a fresh write.
|
|
113
|
+
*/
|
|
114
|
+
export function clearLegacyApiKeyPrefetch(): void {
|
|
115
|
+
legacyApiKeyPrefetch = null
|
|
116
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight helpers shared between keychainPrefetch.ts and
|
|
3
|
+
* macOsKeychainStorage.ts.
|
|
4
|
+
*
|
|
5
|
+
* This module MUST NOT import execa, execFileNoThrow, or
|
|
6
|
+
* execFileNoThrowPortable. keychainPrefetch.ts fires at the very top of
|
|
7
|
+
* main.tsx (before the ~65ms of module evaluation it parallelizes), and Bun's
|
|
8
|
+
* __esm wrapper evaluates the ENTIRE module when any symbol is accessed —
|
|
9
|
+
* so a heavy transitive import here defeats the prefetch. The execa →
|
|
10
|
+
* human-signals → cross-spawn chain alone is ~58ms of synchronous init.
|
|
11
|
+
*
|
|
12
|
+
* The imports below (envUtils, oauth constants, crypto, os) are already
|
|
13
|
+
* evaluated by startupProfiler.ts at main.tsx:5, so they add no module-init
|
|
14
|
+
* cost when keychainPrefetch.ts pulls this file in.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { createHash } from 'crypto'
|
|
18
|
+
import { userInfo } from 'os'
|
|
19
|
+
import { getOauthConfig } from 'src/constants/oauth.js'
|
|
20
|
+
import { getClaudeConfigHomeDir } from '../envUtils.js'
|
|
21
|
+
import type { SecureStorageData } from './types.js'
|
|
22
|
+
|
|
23
|
+
// Suffix distinguishing the OAuth credentials keychain entry from the legacy
|
|
24
|
+
// API key entry (which uses no suffix). Both share the service name base.
|
|
25
|
+
// DO NOT change this value — it's part of the keychain lookup key and would
|
|
26
|
+
// orphan existing stored credentials.
|
|
27
|
+
export const CREDENTIALS_SERVICE_SUFFIX = '-credentials'
|
|
28
|
+
|
|
29
|
+
export function getMacOsKeychainStorageServiceName(
|
|
30
|
+
serviceSuffix: string = '',
|
|
31
|
+
): string {
|
|
32
|
+
const configDir = getClaudeConfigHomeDir()
|
|
33
|
+
const isDefaultDir = !process.env.CLAUDE_CONFIG_DIR
|
|
34
|
+
|
|
35
|
+
// Use a hash of the config dir path to create a unique but stable suffix
|
|
36
|
+
// Only add suffix for non-default directories to maintain backwards compatibility
|
|
37
|
+
const dirHash = isDefaultDir
|
|
38
|
+
? ''
|
|
39
|
+
: `-${createHash('sha256').update(configDir).digest('hex').substring(0, 8)}`
|
|
40
|
+
return `Claude Code${getOauthConfig().OAUTH_FILE_SUFFIX}${serviceSuffix}${dirHash}`
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function getUsername(): string {
|
|
44
|
+
try {
|
|
45
|
+
return process.env.USER || userInfo().username
|
|
46
|
+
} catch {
|
|
47
|
+
return 'claude-code-user'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// --
|
|
52
|
+
|
|
53
|
+
// Cache for keychain reads to avoid repeated expensive security CLI calls.
|
|
54
|
+
// TTL bounds staleness for cross-process scenarios (another CC instance
|
|
55
|
+
// refreshing/invalidating tokens) without forcing a blocking spawnSync on
|
|
56
|
+
// every read. In-process writes invalidate via clearKeychainCache() directly.
|
|
57
|
+
//
|
|
58
|
+
// The sync read() path takes ~500ms per `security` spawn. With 50+ claude.ai
|
|
59
|
+
// MCP connectors authenticating at startup, a short TTL expires mid-storm and
|
|
60
|
+
// triggers repeat sync reads — observed as a 5.5s event-loop stall
|
|
61
|
+
// (go/ccshare/adamj-20260326-212235). 30s of cross-process staleness is fine:
|
|
62
|
+
// OAuth tokens expire in hours, and the only cross-process writer is another
|
|
63
|
+
// CC instance's /login or refresh.
|
|
64
|
+
//
|
|
65
|
+
// Lives here (not in macOsKeychainStorage.ts) so keychainPrefetch.ts can
|
|
66
|
+
// prime it without pulling in execa. Wrapped in an object because ES module
|
|
67
|
+
// `let` bindings aren't writable across module boundaries — both this file
|
|
68
|
+
// and macOsKeychainStorage.ts need to mutate all three fields.
|
|
69
|
+
export const KEYCHAIN_CACHE_TTL_MS = 30_000
|
|
70
|
+
|
|
71
|
+
export const keychainCacheState: {
|
|
72
|
+
cache: { data: SecureStorageData | null; cachedAt: number } // cachedAt 0 = invalid
|
|
73
|
+
// Incremented on every cache invalidation. readAsync() captures this before
|
|
74
|
+
// spawning and skips its cache write if a newer generation exists, preventing
|
|
75
|
+
// a stale subprocess result from overwriting fresh data written by update().
|
|
76
|
+
generation: number
|
|
77
|
+
// Deduplicates concurrent readAsync() calls so TTL expiry under load spawns
|
|
78
|
+
// one subprocess, not N. Cleared on invalidation so fresh reads don't join
|
|
79
|
+
// a stale in-flight promise.
|
|
80
|
+
readInFlight: Promise<SecureStorageData | null> | null
|
|
81
|
+
} = {
|
|
82
|
+
cache: { data: null, cachedAt: 0 },
|
|
83
|
+
generation: 0,
|
|
84
|
+
readInFlight: null,
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export function clearKeychainCache(): void {
|
|
88
|
+
keychainCacheState.cache = { data: null, cachedAt: 0 }
|
|
89
|
+
keychainCacheState.generation++
|
|
90
|
+
keychainCacheState.readInFlight = null
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Prime the keychain cache from a prefetch result (keychainPrefetch.ts).
|
|
95
|
+
* Only writes if the cache hasn't been touched yet — if sync read() or
|
|
96
|
+
* update() already ran, their result is authoritative and we discard this.
|
|
97
|
+
*/
|
|
98
|
+
export function primeKeychainCacheFromPrefetch(stdout: string | null): void {
|
|
99
|
+
if (keychainCacheState.cache.cachedAt !== 0) return
|
|
100
|
+
let data: SecureStorageData | null = null
|
|
101
|
+
if (stdout) {
|
|
102
|
+
try {
|
|
103
|
+
// eslint-disable-next-line custom-rules/no-direct-json-operations -- jsonParse() pulls slowOperations (lodash-es/cloneDeep) into the early-startup import chain; see file header
|
|
104
|
+
data = JSON.parse(stdout)
|
|
105
|
+
} catch {
|
|
106
|
+
// malformed prefetch result — let sync read() re-fetch
|
|
107
|
+
return
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
keychainCacheState.cache = { data, cachedAt: Date.now() }
|
|
111
|
+
}
|