command-code 1.79.0 → 1.79.1

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/dist/cli.mjs CHANGED
@@ -13,4 +13,4 @@ import*as e from"path";import n,{join as o,dirname as r,parse as s,resolve as a,
13
13
  ░▀▀▀░▀░░░▀░▀▀░░
14
14
  `,LN=getMaxLineWidth(RN),ON=IN,DN=__name(e=>{const n=e??getTerminalWidth();return n>=MN?"full":n>=ON?"compact":"minimal"},"getHeaderLayout");new Set(["dark","light"]),Jt(),hL();var NN=!1;async function resolveStartupTheme(){return NN||(NN=!0,setDetectedTerminalTheme(await detectTerminalTheme())),resolveCliTheme(getCliTheme())}async function applyStartupTheme(){const e=await resolveStartupTheme();return applyTuiTheme(e),e}__name(resolveStartupTheme,"resolveStartupTheme"),__name(applyStartupTheme,"applyStartupTheme"),Jt(),Jt(),Jt(),Jt();var FN=["en","zh"],_N={en:{label:"English",description:"Command Code's interface in English.",bcp47:"en"},zh:{label:"简体中文",description:"Command Code 界面以简体中文显示。",bcp47:"zh-Hans"}};function isLocale(e){return"en"===e||"zh"===e}__name(isLocale,"isLocale"),Jt(),hL(),Jt();var $N={languageSetTo:"Language set to: {{label}}",selectLanguage:"Select a language",languageSubtitle:"Choose the language for Command Code's interface · currently {{label}}",pressEscToCancel:"Press Esc to cancel",language:"Language",unknownLanguageOptions:'Unknown language "{{value}}". Options: {{options}}.',selectTheme:"Select a theme",themeSubtitle:"Choose the color palette for this terminal · currently {{label}}",themeAuto:"Auto theme",themeAutoDescription:"Automatically detect your terminal background and use light or dark to match.",themeDark:"Dark theme",themeDarkDescription:"Use purple accent colors on dark backgrounds.",themeLight:"Light theme",themeLightDescription:"Use higher-contrast colors for white terminal backgrounds.",toInterrupt:"to interrupt",waitingForFileEditPermission:"Waiting for file edit permission...",waitingForShellCommandPermission:"Waiting for shell command permission...",waitingForToolPermission:"Waiting for tool permission...",permissionDenied:"Permission denied",permissionGranted:"Permission granted",waitingForYourAnswer:"Waiting for your answer…",helpUsage:"Usage",helpOptions:"Options",helpCommands:"Commands",helpSlashCommands:"Slash Commands",helpKeyboardShortcuts:"Keyboard Shortcuts",helpExamples:"Examples",helpLinks:"Links",stashed:"stashed",tasteOn:"taste on",tasteOff:"taste off",tasteOffByok:"taste off (byok)",enterToOpen:"Enter to open",arrowDownToManage:"↓ to manage",updatedColon:"updated:",updateAvailableColon:"Update available:",providerColon:"Provider:",bashModeHint:"! for bash mode",sharedColon:"SHARED:",copiedToClipboardParen:"(copied to clipboard)",unknownProviderRunConnectToSeeAvailableProviders:"Unknown provider '{{v0}}'. Run /connect to see available providers.",doesNotUseProviderLoginRunLoginWithoutAProviderForCommandCodeAccountAuth:"{{v0}} does not use provider login. Run /login without a provider for Command Code account auth.",providerLoginIsNotAvailableHere:"Provider login is not available here.",ready:"Ready...",doesNotUseProviderLogoutRunLogoutWithoutAProviderForCommandCodeAccountAuth:"{{v0}} does not use provider logout. Run /logout without a provider for Command Code account auth.",loggedOutOf:"Logged out of {{v0}}",noSavedCredentialFound:"No saved {{v0}} credential found",unknownError:"Unknown error",failedToLogOutOf:"Failed to log out of {{v0}}: {{v1}}",noChangelogAvailableInThisBuild:"No changelog available in this build.",theChangelogIsEmpty:"The changelog is empty.",andEarlierReleasesChangelogAll:"\n\n_…and {{v0}} earlier releases · /changelog all_",whatSNew:"**What's new**\n\n{{v0}}{{v1}}",nothingToCloneYet:"Nothing to clone yet.",couldnTCloneTheSessionStorageErrorStayingOnTheCurrentSession:"Couldn't clone the session (storage error). Staying on the current session.",clonedToSwitching:"Cloned to {{v0}} — switching…",terminalTabTitlesNeedNoSetupTitlesAreSetAutomaticallyViaStandardEscapeSequencesVsCode1117HonorsThemOutOfTheBox:"Terminal tab titles need no setup — titles are set automatically via standard escape sequences (VS Code 1.117+ honors them out of the box).",shiftEnterAlreadyWorksNativelyInThisTerminalKittyKeyboardProtocolTheVsCodeKeybindingsOnlyApplyInsideAVsCodeFamilyTerminal:"Shift+Enter already works natively in this terminal (kitty keyboard protocol) — the VS Code keybindings only apply inside a VS Code-family terminal.",openingInYourBrowser:"Opening {{v0}} in your browser…",failedToOpenBrowser:"Failed to open browser",nameASkillToRunSkillNameRunSkillsToSeeWhatIsInstalled:"Name a skill to run: /skill:<name>. Run /skills to see what is installed.",noSkillNamedRunSkillsToSeeWhatIsInstalled:'No skill named "{{v0}}". Run /skills to see what is installed.',noTodosInThisSessionYet:"No todos in this session yet.",modCommandFailed:"Mod command /{{v0}} failed: {{v1}}",compactingConversation:"Compacting conversation...",nothingToCopyYetNoReplyInThisSession:"Nothing to copy yet — no reply in this session.",copiedTheLastReplyToTheClipboardChars:"Copied the last reply to the clipboard ({{v0}} chars).",couldNotReachTheClipboardIsThisAHeadlessTerminal:"Could not reach the clipboard — is this a headless terminal?",reasoningEffortSetTo:"Reasoning effort set to {{v0}}.",unknownEffortSupported:'Unknown effort "{{v0}}". Supported: {{v1}}.',provideALevelEGEffortHigh:"Provide a level, e.g. --effort high.",hasNoAdjustableReasoningEffort:"{{v0}} has no adjustable reasoning effort.",reasoningEffortSetToFor:"Reasoning effort set to {{v0}} for {{v1}}.",nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage:"Nothing to export yet — the transcript is created on the first message.",supportedExportFormatsHtmlJsonlMd:"Supported export formats: .html, .jsonl, .md",exportedSessionTo:"Exported {{v0}} session to {{v1}}",exportFailed:"Export failed: {{v0}}",unknownExportExtension:'Unknown export extension "{{v0}}". {{v1}}',keyboardShortcuts:"**Keyboard shortcuts**",noSetupWasFoundToImportLookedForClaudeCodeCodexCursorPiOpencodeAndGeminiCliConfigInYourHomeDirectoryAndThisProject:"No setup was found to import (looked for Claude Code, Codex, Cursor, Pi, OpenCode, and Gemini CLI config in your home directory and this project).",importFailed:"Import failed: {{v0}}",isACustomModelThisMachineServesTheSandboxKeepsItsCurrentModel:"{{v0}} is a custom model this machine serves; the cloud session keeps its current model.",failedToSetModel:"Failed to set model",unknownModelOpeningTheModelPickerSoYouCanChoose:'Unknown model "{{v0}}" — opening the model picker so you can choose.',provideAModelEGModelGpt5:"Provide a model, e.g. --model gpt-5.",unknownModelRunWithListModelsToSeeTheOptions:'Unknown model "{{v0}}". Run with --list-models to see the options.',note:" (note: {{v0}})",defaultModelSetTo:"Default model set to {{v0}}.{{v1}}",tryRcRcStatusRcDefaultRcAutoAcceptRcYoloRcOffRcTelegramOffRcDiscordOffRcTokenBotTokenRcUserId:"Try: /rc · /rc status · /rc default · /rc auto-accept · /rc yolo · /rc off · /rc telegram off · /rc discord off · /rc token <bot-token> · /rc user <id>",notSetUpYetRunRcAndItWalksYouThroughIt:"Not set up yet. Run /rc and it walks you through it.",rcOnlyWorksAtTheTerminalTheBotCannotReconfigureItselfFromTheChatStatusAndStopWorkFromHere:"/rc only works at the terminal. The bot cannot reconfigure itself from the chat. /status and /stop work from here.",itNeverAsksBeforeEditingFilesOrRunningCommands:"it never asks before editing files or running commands",itEditsFilesOnItsOwnAndAsksInTheChatBeforeRunningCommands:"it edits files on its own, and asks in the chat before running commands",itAsksYouInTheChatBeforeEachNewTool:"it asks you in the chat before each new tool",remote:"Remote: {{v0}}",justNow:"just now",mAgo:"{{v0}}m ago",hAgo:"{{v0}}h ago",startedPid:" started {{v0}} · pid {{v1}}",anotherSessionHasTheBot:"Another session has the bot:",runRcToTakeItOver:"Run /rc to take it over.",onViaInMode:"on via {{v0}} in {{v1}} mode, {{v2}}",remoteControl:"Remote control: {{v0}}",tokenAllowedUser:" {{v0}} token: {{v1}} · allowed user: {{v2}}",credentials:" credentials: {{v0}}",remoteControlIsNotRunning:"Remote control is not running.",remoteControlStopped:"Remote control stopped.",remoteControlStoppedNothingOfMineLeftInTheChat:"Remote control stopped. Nothing of mine left in the chat.",remoteControlStoppedAndMessageSClearedFromTheChatYourOwnMessagesStayBecauseABotCanOnlyDeleteItsOwnAndOnlyFor48Hours:"Remote control stopped, and {{v0}} message(s) cleared from the chat. Your own messages stay, because a bot can only delete its own, and only for 48 hours.",remoteControlMovedToAnotherSessionWhichTookOverTheBotRunRcHereToTakeItBack:"Remote control moved to another session, which took over the bot. Run /rc here to take it back.",skippedMessageSQueuedWhileNoSessionWasConnected:"Skipped {{v0}} message(s) queued while no session was connected.",theBotIsAttachedToAnotherSessionRunRcAndPickTakeItOverToMoveItHere:'The bot is attached to another session:\n{{v0}}\n\nRun /rc and pick "Take it over" to move it here.',theBotIsAttachedToAnotherSessionRunRcToTakeItOver:"The bot is attached to another session. Run /rc to take it over.",discordDisconnected:"Discord disconnected: {{v0}}",remoteControlIsOnSendAMessageHereOrOnToContinueOrRcToDisconnect:"Remote control is on. Send a message here or on {{v0}} to continue, or /rc to disconnect.",restartingRemoteControlWithTheNewSettings:"Restarting remote control with the new settings…",isNotConnectedIsRunRcOffToStopThatOne:"{{v0}} is not connected, {{v1}} is. Run /rc {{v2}} off to stop that one.",tryRcOffOrRcToConnect:"Try /rc {{v0}} off, or /rc to connect.",provideTheBotTokenRcTokenBotToken:"Provide the bot token: /rc token <bot-token>",botTokenSavedTo:"{{v0}} bot token saved to {{v1}}.",provideYourNumericDiscordIdRcUserIdInDiscordTurnOnSettingsDeveloperDeveloperModeThenRightClickYourNameCopyUserId:"Provide your numeric Discord id: /rc user <id>. In Discord, turn on Settings → Developer → Developer Mode, then right-click your name → Copy User ID.",provideYourNumericTelegramIdRcUserIdMessageUserinfobotOnTelegramAndItRepliesWithTheNumber:"Provide your numeric Telegram id: /rc user <id>. Message @userinfobot on Telegram and it replies with the number.",allowedUserSetTo:"Allowed {{v0}} user set to {{v1}}.",unknownRcArgument:'Unknown /rc argument "{{v0}}". {{v1}}',nothingToNameYetSendAMessageFirstOrUseRenameName:"Nothing to name yet — send a message first, or use /rename <name>.",couldNotGenerateATitleTryRenameNameInstead:"Could not generate a title. Try /rename <name> instead.",thisSessionHasNoNameYetUseNameNameToSetOne:"This session has no name yet. Use /name <name> to set one.",namingSession:"Naming session…",currentName:"Current name: {{v0}}",restoringCheckpoint:"Restoring checkpoint...",notCreatedYet:"{{v0}} (not created yet)",noActiveSession:"No active session.",sessionIdCurrentSessionFile:"Session ID: {{v0}}\nCurrent session file: {{v1}}",useConfigKeyValueEGConfigThemeDark:"Use --config key=value, e.g. --config theme=dark.",set:"Set {{v0}} = {{v1}}.",couldNotSetConfig:'Could not set config "{{v0}}".',requiresTheGithubCliGhHttpsCliGithubCom:"Requires the GitHub CLI (gh) — https://cli.github.com",nothingToShareYetTheTranscriptIsCreatedOnTheFirstMessage:"Nothing to share yet — the transcript is created on the first message.",supportedGistFormatsHtmlJsonlMd:"Supported gist formats: html, jsonl, md",unknownGistFormat:'Unknown gist format "{{v0}}". {{v1}}',ghGistCreateDidNotReturnAUrl:"gh gist create did not return a URL: {{v0}}",sharedSessionGist:"Shared session gist: {{v0}}",runGhAuthLogin:"{{v0}} — run gh auth login",shareFailed:"Share failed: {{v0}}",creatingShareLink:"Creating share link...",removingShareLink:"Removing share link...",withEffort:"{{v0}} with {{v1}} effort",theSandboxIsNotConnectedYetWaitForTheConnectedToSandboxLineOrItsErrorThenSendAgain:'The cloud session is not connected yet. Wait for the "Connected to cloud" line (or its error), then send again.',unknownThemeOptions:'Unknown theme "{{v0}}". Options: {{v1}}.',provideAThemeEGThemeAuto:"Provide a theme, e.g. --theme auto.",themeSetTo:"Theme set to {{v0}}.",copiedToClipboard:" (copied to clipboard)",traceId:"Trace ID: {{v0}}{{v1}}",traceIdNotGeneratedSendAMessageFirst:"Trace ID not generated: Send a message first",noTraceIdRequestTracingIsOffThisSession:"No trace ID — request tracing is off this session.",alreadyAtThisPoint:"Already at this point",navigatedToSelectedPoint:"Navigated to selected point",failedToNavigate:"Failed to navigate: {{v0}}",failedToSetLabel:"Failed to set label: {{v0}}",noWorktreesFound:"No worktrees found.",main:"{{v0}} (main)",detached:" [detached]",worktrees:"Worktrees:",switchWithWorktreeName:"Switch with /worktree <name>.",worktreeRequiresAGitRepository:"/worktree requires a git repository.",usageWorktreeRemoveName:"Usage: /worktree remove <name>",canTRemoveTheWorktreeYouReInSwitchAwayFirstThenRemoveIt:"Can't remove the worktree you're in. Switch away first, then remove it.",noWorktreeNamed:'No worktree named "{{v0}}".',couldnTRemoveCommitOrStashChangesOrRemoveItManuallyWithGitWorktreeRemoveForce:'Couldn\'t remove "{{v0}}": {{v1}}. Commit or stash changes, or remove it manually with: git worktree remove --force {{v2}}',removedWorktree:'Removed worktree "{{v0}}".',couldnTCreateWorktree:"Couldn't create worktree: {{v0}}",alreadyInWorktree:'Already in worktree "{{v0}}".',created:"Created",reusing:"Reusing",copiedFileS:" (copied {{v0}} file(s))",includeCopyFailureS:" ({{v0}} include copy failure(s))",worktreeSwitchingAFreshSessionStartsInTheWorktreeThisOneStaysResumable:'{{v0}} worktree "{{v1}}"{{v2}}{{v3}}. Switching… (a fresh session starts in the worktree; this one stays resumable).',addedToDirectoryScope:"Added {{v0}} to directory scope",isNoLongerInWorkspaceScope:"{{v0}} is no longer in workspace scope",removedFromDirectoryScope:"Removed {{v0}} from directory scope",addDirectoryToWorkspace:"Add directory to workspace",commandCodeWillBeAbleToReadFilesInThisDirectoryAndMakeEditsWhenAcceptEditsModeIsOn:"Command Code will be able to read files in this directory and make edits when accept edits mode is on.",addedDirectories:"Added directories",noneYet:"None yet",path:"Path",examplesSharedDocsAbsPath:"Examples: ../shared ~/docs /abs/path",suggestions:"Suggestions",designComplete:"/design {{v0}} complete",enterToRunEscToDismiss:"Enter to run · Esc to dismiss",runDesignManually:"run /design manually",skip:" skip ",completeBrief:"Complete brief",ifTheTargetGoalAudienceOrArtifactIsClearActWithoutAsking:"If the target, goal, audience, or artifact is clear, act without asking.",composition:"Composition",chooseLayoutFromTheWorkPatternMonitorOperateCompareConfigureLearnDecideOrExplore:"Choose layout from the work pattern: monitor, operate, compare, configure, learn, decide, or explore.",scope:"Scope",broadPromptsGetTheFullModePassNarrowPromptsStayNarrow:"Broad prompts get the full mode pass. Narrow prompts stay narrow.",truth:"Truth",onlyClaimChangesThatExistInFilesAndAreVisibleOrVerifiable:"Only claim changes that exist in files and are visible or verifiable.",templates:"Templates",designHtmlAndReportHtmlAreDocumentationTemplatesNotUiInspiration:"design-html and report-html are documentation templates, not UI inspiration.",reports:"Reports",followUpModesReadMarkdownReportsApplyRelevantFindingsThenStillRunTheirOwnFullModePass:"Follow-up modes read markdown reports, apply relevant findings, then still run their own full mode pass.",use:"Use",designLtModeGtQuotTargetOrRequestQuot:'/design <mode> "target or request"',designQuotFreeformRequestQuotAlsoWorksTheClosestModeIsInferred:'/design "freeform request" also works. The closest mode is inferred.',modes:"Modes",workingRules:"Working rules",quickExamples:"Quick examples:",pressEscToCloseTypeDesignHelpAnytimeToReturn:"Press Esc to close. Type /design help anytime to return.",loading:"Loading",oopsSomethingWentWrong:"Oops, something went wrong:",apiKey:"API Key:",pasteYourApiKey:"Paste your API key...",checkingApiKeyWithServer:"Checking API key with server...",ctrlCToCancel:"ctrl+c to cancel",signInToCommandCode:"Sign in to Command Code",key:"key",storedInAuthJson:"stored in auth.json",overrides:" · overrides {{v0}}",noKeyTheEndpointAsksForNone:"no key — the endpoint asks for none",noKeyYetRequestsFailUntilOneIsAdded:"no key yet, requests fail until one is added",updateModels:"update models",delete:"delete",close:"close",save:"save",replaceKey:"replace key",clear:"clear",addKey:"add key",storeKey:"store key",isNotInProvidersJson:"'{{v0}}' is not in providers.json",theModelRegistry:"the model registry",couldnTFetchModels:"couldn't fetch models — {{v0}}",theEndpoint:"the endpoint",config:"· config:",remove:"Remove {{v0}}?",itsEntryModelsAndStoredKeyGoWithIt:"Its entry, models, and stored key go with it",remove2:"remove",anyOtherKeyKeepsIt:"any other key keeps it",deletesTheEntryFrom:"Deletes the entry from",andClearsItsStoredKey:"and clears its stored key.",removing:"Removing '{{v0}}'…",refetchingModelsFor:"Refetching models for '{{v0}}'…",removed:"{{v0}} removed",providerDeletedFrom:"Provider deleted from",storedKeyClearedItsModelsLeftModel:"· stored key cleared · its models left /model",itOwnedYourActiveModelSwitchedToYourLaneSDefault:" · it owned your active model — switched to your lane’s default",back:"back",modelsUpdated:"Models updated —",declaredFrom:"declared from",theRefetch:"the refetch",keySavedFor:"Key saved for {{v0}}",storedInCommandcodeAuthJson:"Stored in ~/.commandcode/auth.json",pickAModel:"pick a model",storedKeyClearedFor:"Stored key cleared for {{v0}}",itsModelsStayListed:"Its models stay listed",theProvidersJsonKeyAppliesAgain:" — the providers.json key applies again",requestsWillNeedAKeyAgain:"; requests will need a key again",couldNotUpdate:"Could not update {{v0}}",checkThatCommandcodeIsWritableOrSetApikeyToAEnvVarReferenceInProvidersJson:'Check that ~/.commandcode is writable, or set "apiKey" to a "$ENV_VAR" reference in providers.json',apiKeyFor:"API key for {{v0}}",savedToCommandcodeAuthJsonUnderRequestsGoStraightToThisProviderWithYourKey:"Saved to ~/.commandcode/auth.json under '{{v0}}'. requests go straight to this provider with your key",key2:"key:",pasteYourApiKey2:"paste your API key…",openaiCompatible:"OpenAI-compatible",chatCompletionsOllamaVllmLmStudioMostHostedApis:"/chat/completions · Ollama, vLLM, LM Studio, most hosted APIs",responsesEndpointsSpeakingTheOpenaiResponsesApi:"/responses · endpoints speaking the OpenAI Responses API",anthropicWire:"Anthropic wire",v1MessagesEndpointsSpeakingTheClaudeMessagesApi:"/v1/messages · endpoints speaking the Claude Messages API",theIdYouTyped:"the id you typed",apiRootNoRoute:"API root, no route",referenceNeverARawKey:"reference — never a raw key",editAnytimeReloadsLive:"edit anytime, reloads live",prefilledForEditItOrPressEnterToAccept:"Prefilled for {{v0}} — edit it or press enter to accept",theMessagesApiRootV1IsAddedOnTheWireWhenMissing:"The Messages API root · /v1 is added on the wire when missing",theApiRootRequestsGoToResponsesIsAddedOnTheWire:"The API root requests go to · /responses is added on the wire",theApiRootRequestsGoToMostEndInV1:"The API root requests go to · most end in /v1",alreadyExistsSelectItInConnectToManageIt:"'{{v0}}' already exists — select it in /connect to manage it.",lowercaseLettersDigitsDotsDashesAndUnderscoresOnly:"Lowercase letters, digits, dots, dashes and underscores only.",isABuiltInSubscriptionLaneTryApi:"'{{v0}}' is a built-in subscription lane — try '{{v1}}-api'.",thatIsNotAUrlIncludeTheSchemeHttp:"That is not a URL — include the scheme (http…).",httpOrHttpsUrlsOnly:"http:// or https:// URLs only.",removedTheEndpointIsTheApiRoot:"removed {{v0}} — the endpoint is the API root",theKeyCouldNotBeStoredCheckThatCommandcodeIsWritable:"The key could not be stored — check that ~/.commandcode is writable.",addAProvider:"Add a provider · {{v0}}",addAProvider2:"Add a provider",askingWhichModelsItServes:"Asking {{v0}} which models it serves…",writingToCommandcodeProvidersJson:"Writing '{{v0}}' to ~/.commandcode/providers.json…",isSetUp:"'{{v0}}' is set up",declared:"{{v0}} {{v1}} declared{{v2}}",providerAddedTo:"Provider added to",editItAnytimeItReloadsLive:". Edit it anytime, it reloads live.",addingDidnTFinish:"Adding '{{v0}}' didn't finish",addingAProviderTheShortVersion:"Adding a provider: the short version",docs:"docs:",anyKeyToGoBack:"any key to go back",providerIdNamesTheEntryIn:"• provider id names the entry in",modelsSelectAsIdModel:"· models select as id/model",endpointIsTheBaseUrlRequestsGoToMostEndInV1:"• endpoint is the base URL requests go to · most end in /v1",pastedKeysGoToAuthJsonProvidersJsonOnlyEverHoldsEnvVarOrCommandReferences:"• pasted keys go to auth.json · providers.json only ever holds $ENV_VAR or !command references",noKeyNeededPressEnterOnTheEmptyKeyFieldLocalServers:"• no key needed? press enter on the empty key field (local servers)",modelsYouCanImportTheFetchedListProbeTheEndpointAposSModelsRouteOrTypeIdsByHandIdsYouLeaveUndeclaredStillRunAsIdModel:"• models: you can import the fetched list, probe the endpoint's /models route, or type ids by hand. Ids you leave undeclared still run as id/model",the:"• the",fileIsYoursEditItAnytimeItReloadsLiveManageItFromConnect:"file is yours · edit it anytime, it reloads live · manage it from /connect",whatItWrites:"what it writes:",couldnTListModelsAutomatically:"Couldn't list models automatically — {{v0}}",whichModelsDoesServe:"Which models does {{v0}} serve?",commaSeparatedExactIds:"comma-separated, exact ids",models:"models:",keysLiveInCommandcodeAuthJsonNeverInProvidersJson:"Keys live in ~/.commandcode/auth.json, never in providers.json",emptyEnterKeylessLocalServers:"empty enter = keyless (local servers)",pasteItOrPressEnterIfNoneIsNeeded:"paste it — or press enter if none is needed",whatDoesTheEndpointSpeak:"What does the endpoint speak?",switch:"switch",continue:"continue",help:"help",baseUrl:"base URL:",pickAKnownProviderBelowOrTypeYourOwnId:"Pick a known provider below, or type your own id.",pickFromTheList:"pick from the list",providerId:"provider id:",more:"↑ {{v0}} more · ",more2:"↓ {{v0}} more",apiKey2:"API Key",manualApiKey:"Manual API Key",loggedInAs:"Logged in as {{v0}}",loggedInSuccessfully:"Logged in successfully",authenticationCancelledByUser:"Authentication cancelled by user.",failedToOpenBrowserPleaseManuallyOpen:"Failed to open browser. Please manually open: {{v0}}",loggingIntoCopilotUseThisCode:"Logging into Copilot, use this code: {{v0}}{{v1}}",authenticationFailed:"Authentication failed",thisWillGetAGithubSignInCode:"This will get a GitHub sign-in code.",thisWillOpenYourBrowserToSignInWith:"This will open your browser to sign in with {{v0}}.",signInTo:"Sign in to {{v0}}",cancel:"cancel",gettingSignInCode:"Getting sign-in code…",submit:"submit",login:"Login:",openAuthPage:"Open auth page ↗",authorizationCode:"Authorization code",pasteCodeHere:"Paste code here...",pressEnterToOpenGithubAndPasteTheCodeThere:"Press enter to open GitHub and paste the code there",pressEnterToOpenYourBrowser:"Press enter to open your browser",waitingForAuthorization:"Waiting for authorization…",open:"Open:",alreadyConnected:"Already connected",alreadyAuthenticated:"Already authenticated",connecting:"Connecting {{v0}}...",connectedTo:"{{v0}} Connected to {{v1}}",failed:"{{v0}} Failed: {{v1}}",authenticating:"Authenticating {{v0}}...",authenticatedWith:"{{v0}} Authenticated with {{v1}}",authFailed:"{{v0}} Auth failed: {{v1}}",disabling:"Disabling {{v0}}...",failedToDisableServerMayNoLongerExistInScope:"{{v0}} Failed to disable {{v1}}, server may no longer exist in {{v2}} scope",disabled:"{{v0}} Disabled {{v1}}",enabling:"Enabling {{v0}}...",failedToEnableServerMayNoLongerExistInScope:"{{v0}} Failed to enable {{v1}}, server may no longer exist in {{v2}} scope",enabled:"{{v0}} Enabled {{v1}}",manageMcpServers:"Manage MCP servers",loading2:"Loading...",navigateEnterToSelectEscToCancel:"↑↓ navigate · Enter to select · Esc to cancel",thisWillRemoveTheServerFrom:"This will remove the server from",config2:"config.",yesRemove:"Yes, remove",cancel2:"Cancel",navigateEnterToSelectEscToGoBack:"↑↓ navigate · Enter to select · Esc to go back",escToClose:"Esc to close",navigateEnterToSelectEscToClose:"↑↓ navigate · Enter to select · Esc to close",noMcpServersConfigured:"No MCP servers configured.",use2:'Use "',mcpAddToAddAServer:'mcp add" to add a server.',viewMcpDocs:"View MCP Docs ↗",showing:"Showing",of:"of",more3:" · ↑ more",more4:" · ↓ more",failedToDiscoverMemoryFiles:"Failed to discover memory files",errorOpeningMemoryFilePleaseEnsureYouHaveAnEditorSetUp:"Error opening memory file. Please ensure you have an editor set up.",selectMemoryToEdit:"Select memory to edit:",loadingMemoryFiles:"Loading memory files...",toNavigateEnterToEditEscToCancel:"↑/↓ to navigate · enter to edit · esc to cancel",compactNormalDefault:"Compact Normal (default)",summarizeSessionWhenContextLimitReached:"Summarize session when context limit reached.",compactFast:"Compact Fast",fastTieredCompactionHigherQualityUsesMoreTokens:"Fast tiered compaction. Higher quality, uses more tokens.",selectACompactModeToCompactSessions:"Select a compact mode to compact sessions",chooseHowCommandCodeHandlesAutomaticContextCompaction:"Choose how Command Code handles automatic context compaction.",press:"Press",toCancel:"to cancel",listingOnlyModelsWithAZeroDataRetentionUpstream:"Listing only models with a zero-data-retention upstream.",selectModel:"{{v0}} › select model",pickAModelForThisTaskOrResetItToTheDefault:"Pick a model for this task, or reset it to the default.",whyBackgroundRequests:"Why background requests?",typeToSearchNavigateEnterSelect:"type to search · ↑/↓ navigate · enter select",escToClear:" · esc to clear",escBack:" · esc back",typeToSearchModels:"Type to search models...",loadingAvailableModels:"Loading available models…",default:"Default",default2:" (default)",free:" (FREE)",default3:"{{v0}} (default)",selectModel2:"Select model",switchBetweenTheAvailableModelsSetsTheDefaultForNewSessionsOtherOpenSessionsAreUnaffected:"Switch between the available models. Sets the default for new sessions; other open sessions are unaffected.",typeToSearchNavigateShiftJumpProviderEnterToSelect:"type to search · ↑/↓ navigate · shift+↑/↓ jump provider · enter to select",escToCancel:" · esc to cancel",providerLoginRequiredRunConnectToAuthenticate:"Provider login required. Run /connect to authenticate.",noModelsMatch:'No models match "{{v0}}"',notConnected:"○ not connected",needsAKey:"○ needs a key",recommended:"{{v0}} (recommended)",byokAddYourOwnProvider:"(BYOK) Add your own provider",connect:"Connect",connectToAiProvidersAndSeeCurrentlyConnectedProviders:"Connect to AI providers and see currently connected providers",navigateEnterSelectEscClose:"↑/↓ navigate · enter select · esc close",needsAttention:"needs attention —",oneEntry:"one entry",someEntries:"some entries",didNotLoadAsWritten:"did not load as written:",and:"… and",more5:"more",selectReasoningEffortFor:"Select reasoning effort for {{v0}}",navigateEnterToSelectEscToGoBack2:"↑/↓ navigate · enter to select · esc to go back",driveThisSessionFromATelegramBot:"Drive this session from a Telegram bot.",aThreadPerSessionSoSeveralCanRunAtOnce:"A thread per session, so several can run at once.",asksBeforeEachNewToolApproveOrDenyInTheChat:"Asks before each new tool. Approve or Deny in the chat.",readsAndWritesFilesAsksBeforeRunningCommands:"Reads and writes files. Asks before running commands.",dangerouslyBypassesEveryPermissionNeverAsks:"Dangerously bypasses every permission. Never asks.",disconnect:"Disconnect",stopTheBotTheSessionKeepsRunningHere:"Stop the bot. The session keeps running here.",takeItOver:"Take it over",thatSessionDisconnectsThisOneTakesTheBot:"That session disconnects, this one takes the bot.",leaveItAlone:"Leave it alone",thatSessionKeepsTheBot:"That session keeps the bot.",keepTheChatHistory:"Keep the chat history.",disconnectAndClearAllChatHistory:"Disconnect and clear all chat history",deleteTheBotSMessagesYoursStay:"Delete the bot's messages. Yours stay.",isDigitsOnly:"{{v0}} is digits only.",createTheBot:"create the bot","1OpenTelegramAndSearchForBotfather":"1. Open Telegram and search for @BotFather","2SendItNewbot":"2. Send it /newbot","3ItAsksForANameThenAUsernameAnyNameWillDo":"3. It asks for a name, then a username. Any name will do;",theUsernameHasToEndInBotEGYournameCmdBot:' the username has to end in "bot" (e.g. yourname_cmd_bot)',"4ItRepliesWithATokenCopyItAndPasteItHere":"4. It replies with a token. Copy it and paste it here",thatDoesNotLookLikeABotTokenItIsANumberAColonThenALongString:"That does not look like a bot token. It is a number, a colon, then a long string.",sayWhoMayUseIt:"say who may use it","1InTelegramSearchForUserinfobot":"1. In Telegram, search for @userinfobot","2SendItStart":"2. Send it /start","3ItRepliesWithYourUserIdPasteThatNumberHere":"3. It replies with your user ID. Paste that number here",yourTelegramId:"Your Telegram id","1OpenDiscordComDevelopersApplicationsAndLogIn":"1. Open discord.com/developers/applications and log in","2TopRightClickNewApplicationGiveItAnyName":'2. Top right: click "New Application". Give it any name,',tickTheTermsBoxClickCreate:' tick the terms box, click "Create"',"3InTheLeftSidebarClickBot":'3. In the left sidebar, click "Bot"',"4ClickResetTokenConfirmThenCopyDiscordShows":'4. Click "Reset Token", confirm, then "Copy". Discord shows',aTokenOnceIfYouLoseItResetItAgain:" a token once. If you lose it, reset it again","5StillOnThatPageScrollToPrivilegedGatewayIntents":'5. Still on that page, scroll to "Privileged Gateway Intents"',andTurnOnMessageContentIntentClickSaveChanges:' and turn ON "Message Content Intent". Click "Save Changes"',"6PasteTheTokenHere":"6. Paste the token here","1InTheDiscordAppNotThePortalClickTheGearBy":"1. In the Discord app (not the portal): click the gear by",yourNameDeveloperTurnOnDeveloperMode:' your name → "Developer" → turn ON "Developer Mode"',"2RightClickYourOwnNameInAnyChatCopyUserId":'2. Right-click your own name in any chat → "Copy User ID"',"3PasteThatNumberHere":"3. Paste that number here",yourDiscordId:"Your Discord id",inviteTheBotThenPickItsChannel:"invite the bot, then pick its channel","1BackInThePortalLeftSidebarOauth2":'1. Back in the portal, left sidebar: "OAuth2"',"2UnderOauth2UrlGeneratorTickTwoScopes":'2. Under "OAuth2 URL Generator", tick TWO scopes:',botAndApplicationsCommands:' "bot" and "applications.commands"',"3ABotPermissionsBoxOpensUnderneathTickFour":'3. A "Bot Permissions" box opens underneath. Tick four:',viewChannelsSendMessages:' "View Channels", "Send Messages",',createPublicThreadsSendMessagesInThreads:' "Create Public Threads", "Send Messages in Threads"',"4AtTheBottomCopyTheGeneratedUrlOpenItInA":'4. At the bottom, copy the "Generated URL". Open it in a',browserChooseYourServerClickAuthorize:' browser, choose your server, click "Authorize"',"5BackInDiscordRightClickTheChannelTheBotShould":"5. Back in Discord, right-click the channel the bot should",postInCopyChannelId:' post in → "Copy Channel ID"',"6PasteThatNumberHere":"6. Paste that number here",everyRcOpensItsOwnThreadInThatChannelSoSeveral:"Every /rc opens its own thread in that channel, so several",sessionsCanRunOnOneBotAtTheSameTime:"sessions can run on one bot at the same time.",aChannelId:"A channel id","1OpenTelegramAndFindTheBotYouJustMade":"1. Open Telegram and find the bot you just made",aBotCannotTextYouFirstSoThisIsWhatCreatesTheChat:"A bot cannot text you first, so this is what creates the chat.",doneCheckIt:"Done, check it",sendsAMessageBackSoYouSeeItWorks:"Sends a message back, so you see it works.",skip2:"Skip",nothingReachesTelegramUntilYouDoIt:"Nothing reaches Telegram until you do it.",thatDoesNotLookLikeABotTokenItHasThreePartsSeparatedByDotsSoMakeSureYouCopiedTheBotTokenNotTheApplicationId:"That does not look like a bot token. It has three parts separated by dots, so make sure you copied the Bot token, not the Application ID.",couldNotSave:"Could not save: {{v0}}",sendingAMessageToYourBot:"Sending a message to your bot…",theCredentialsAreNotSaved:"the credentials are not saved",telegramHasNoChatYetSendYourBotStartThenTryAgain:"Telegram has no chat yet. Send your bot /start, then try again.",telegramRefused:"Telegram refused: {{v0}}",remoteControl2:"Remote control",stepOfOpenTheChat:"{{v0}} · step {{v1}} of {{v2}} · open the chat",toGoBack:"to go back",stepOf:"{{v0}} · step {{v1}} of {{v2}} · {{v3}}",anotherSessionHasTheBot2:"Another session has the bot",clearTheChatOnTheWayOut:"Clear the chat on the way out?",whichPermissionMode:"Which permission mode?",runThisSessionFromAChatAppCurrently:"Run this session from a chat app · currently {{v0}}",to:"to",goBack:"go back",telegramAllowsOneSessionPerBotSoOnlyOneCanHaveIt:"Telegram allows one session per bot, so only one can have it.",noActiveConversationStartChattingFirst:"No active conversation. Start chatting first.",failedToAnalyzeContext:"Failed to analyze context.",toReturnToConversation:"to return to conversation",context:"Context",loadingContextAnalysis:"Loading context analysis",systemInformation:"System Information",version:"Version",date:"Date",platform:"Platform",hostname:"Hostname",user:"User",cpus:"CPUs",cores:"cores",memory:"Memory",uptime:"Uptime",home:"Home",shell:"Shell",terminal:"Terminal",cpuDetails:"CPU Details",core:"Core {{v0}}",network:"Network",core2:"Core",couldNotLoadStatus:"Could not load status:",gatheringStatus:"Gathering status…",failedToGatherStatus:"Failed to gather status",toSelectEnterToViewXToStopEscToGoBackToFeed:"↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed",toGoBackEscEnterSpaceToCloseXToStop:"← to go back · Esc/Enter/Space to close · x to stop",shell2:"{{v0}} shell{{v1}}",monitor:"{{v0}} monitor{{v1}}",noneRunning:"none running",activeShell:"{{v0}} active shell{{v1}}",activeMonitor:"{{v0}} active monitor{{v1}}",status:"Status:",runtime:"Runtime:",script:"Script:",output:"Output:",noOutputYet:"No output yet.",line:"line",monitorDetails:"Monitor details",shellDetails:"Shell details",background:"Background",monitors:"Monitors",shells:"Shells",theme:"{{v0}} theme",inProgress:"(in progress)",todos:"Todos",itemsDone:"{{v0}} items · {{v1}} done",items:"{{v0}} items",noOutput:"(No output)",executing:"Executing…",see:"See",context2:"{{v0}}CONTEXT{{v1}}",remaining:"remaining",estimated:"(estimated)",tokens:" tokens",hiddenMessagesToExpandMore:" {{v0}} hidden messages [{{v1}} to expand more] ",base:"(base: {{v0}})",branch:"(branch: {{v0}})",cloudSandbox:"cloud",withEffort2:" with {{v0}} effort",perTaskModelOverridesRevertedToZdrSafeDefaultsRun:"Per-task model overrides reverted to ZDR safe defaults. Run",toReviewEscToDismiss:"to review · esc to dismiss",escToDismiss:"· esc to dismiss",skippedRun:"Skipped. Run",or:"or",anytime:"anytime.",confidence:" [Confidence {{v0}}]",skill:"{{v0}}SKILL{{v1}}",loaded:"loaded",goalAchieved:"Goal achieved",goal:"Goal:",forked:"⑂ Forked.",youReNowIn:"You're now in",youReNowInTheNewSession:"You're now in the new session",originalSessionSavedResumeToSwitchBack:"Original session saved · /resume to switch back",sessionId:"Session ID:",running:"Running (",visit:"Visit",forUsageAndBilling:"for usage and billing",account:"Account:",run:"— run",model:"Model",branch2:"Branch",worktree:"Worktree",repository:"Repository:",pullRequest:"Pull Request:",directory:"Directory",skills:"Skills",agents:"Agents",system:"System",proxy:"Proxy",todos2:"{{v0}}TODOS{{v1}}",ctrlXToExpand:"ctrl+x to expand",ctrlXToManage:"ctrl+x to manage",completed:"completed",more6:" … +{{v0}} more",rejectedUpdateTo:"Rejected update to",updated:"Updated",with:"with",addition:"addition",and2:" and ",removal:"removal",thoughtForSecond:"Thought for {{v0}} second{{v1}}",oToExpand:"{{v0}}+o to expand",usingYourTaste:"Using your taste",packageOf:"package of ",runningInBackground:"Running in background",interrupted:"Interrupted",done:"Done",question:"Question",linesOToExpand:"... +{{v0}} lines [{{v1}}+o to expand]",oToExpand2:"... [{{v0}}+o to expand]",moreOToExpand:"… ({{v0}} more {{v1}}) [{{v2}}+o to expand]",emptyFile:"(empty file)",processing:"Processing…",selected:"Selected",from:"from",in:"in",toolPermission:"Tool Permission",needsToRun:"{{v0}} needs to run ",navigateEnterSelect:"↑/↓ navigate · enter select",docs2:"Docs ↗",run2:"· Run",toBypassAllPermissions:"to bypass all permissions (",makeThisEditTo:"make this edit to",editFile:"Edit File",createFile:"Create File",deleteFile:"Delete File",executeFile:"Execute File",fileOperation:"File Operation",doYouWantTo:"Do you want to",useShiftTabToEnableAcceptEdits:"Use shift+tab to enable accept edits",shellCommandAllowed:"Shell command allowed",shellCommandDenied:"Shell command denied",processTerminationAllowed:"Process termination allowed",processTerminationDenied:"Process termination denied",toolCallAllowed:"Tool call allowed",toolCallDenied:"Tool call denied",allowOperation:"Allow {{v0}} operation",fileOperationAllowed:"File operation allowed",fileOperationDenied:"File operation denied",moreLineCtrlOToExpand:"… +{{v0}} more line{{v1}} · ctrl+o to expand",plan:"Plan",ctrlOToCollapse:"ctrl+o to collapse",lineHidden:"─── ✂ ─── {{v0}} line{{v1}} hidden ",preview:"Preview","1Submit":"1. Submit","2Cancel":"2. Cancel",review:"Review",youHaveNotAnsweredAllQuestions:"⚠ You have not answered all questions",noAnswer:"No answer",toGoBackAndEdit:"to go back and edit",typeSomething:"Type something...",notes:"notes:",addNotesOnThisDesign:"Add notes on this design…",attached:"attached —",submit2:"Submit",next:"Next",enterToSelectArrowKeysToNavigate:"Enter to select | Arrow keys to navigate |",escToCancel2:"Esc to cancel","19QuickSelectNNotesCChatEscToCancel":"1-9 quick select | n notes | c chat | Esc to cancel",answersSubmitted:"Answers submitted",executeShellCommand:"Execute Shell Command",needsToExecute:"{{v0}} needs to execute ",navigateEnterSelectExplain:"↑/↓ navigate · enter select · {{v0}} explain",workingDirectory:"Working directory:",toExplainThisCommand:"to explain this command",explainingThisCommand:"Explaining this command…",couldnTGenerateAnExplanationPress:"Couldn't generate an explanation — press",toRetry:"to retry",searchingFor:'Searching for: "{{v0}}"',files:"Files: {{v0}}",noFilesFoundMatching:'No files found matching "{{v0}}"',noFilesFoundInThisDirectory:"No files found in this directory",navigate:"↑↓ navigate",toOpenFolder:"→ to open folder",enterToSelect:"Enter to select",connectingToTheSandbox:"Connecting to the cloud…",executing2:"Executing: {{v0}}",tip:"Tip:",askYourQuestion:"Ask your question...",backgroundFocusedToSelectEnterToViewXToStopEscToGoBackToFeed:"Background focused · ↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed",saveAndCloseTheEditorToContinue:"Save and close the editor to continue...",availableShortcuts:"Available Shortcuts:",forCommands:"/ for commands",forFilePaths:"@ for file paths",toToggleAcceptEdits:"to toggle accept edits",doubleTapEscToClearInput:"double tap esc to clear input",forNewline:"for newline",ctrlGToOpenInEditor:"ctrl + g to open in editor",ctrlZToUndo:"ctrl + z to undo",ctrlSToStashPrompt:"ctrl + s to stash prompt",toPasteImage:"to paste image",pastesTextOnlyIn:"pastes text only in",enterYourInput:"Enter your input…",queued:" Queued ({{v0}}) ",readingClipboard:"Reading clipboard…",workedFor:"{{v0}} Worked for {{v1}}","1YesDelete":"1. Yes, delete","2NoCancel":"2. No, cancel","1ViewAgent":"1. View agent","2DeleteAgent":"2. Delete agent","2Back":"2. Back","3Back":"3. Back",failedToDeleteAgent:"Failed to delete agent: {{v0}}",editFunctionalityComingSoon:"Edit functionality coming soon...",deleteAgent:"Delete agent",areYouSureYouWantToDeleteTheAgent:"Are you sure you want to delete the agent {{v0}}?",toNavigate:"to navigate ·",toSelect:"to select ·","1CreateAgentsWithCommandCodeRecommended":"1. Create agents with Command Code (recommended)","2CreateManually":"2. Create manually",loadingAgents:"Loading agents",agent:" ({{v0}} agent{{v1}})",noCustomAgents:" (No custom agents)",createdAgent:"Created agent:",userAgents:"User agents",projectAgents:"Project agents",defaultAgentsReadOnly:"Default agents (read-only)",agentsLiveInCommandcodeAgentsProjectAndCommandcodeAgentsAllProjectsEditTheFilesDirectlyAnytime:"Agents live in .commandcode/agents/ (project) and ~/.commandcode/agents/ (all projects) — edit the files directly anytime.",docs3:"Docs:",chooseLocation:"Choose location",agentTypeIdentifier:"Agent type (identifier)",systemPrompt:"System prompt",descriptionTellWhenToUseThisAgent:"Description (Tell {{v0}} when to use this agent)",selectTools:"Select tools",selectReasoningEffort:"Select reasoning effort",confirmAndSave:"Confirm and save",createNewAgent:"Create new agent",createAgentsWithCommandCode:"Create agents with Command Code",askCommandCodeToCreateOrUpdateSubagentsForYouEG:"Ask Command Code to create or update subagents for you, e.g.",createACodeReviewerSubagentThatReviewsDiffsForBugs:"“create a code-reviewer subagent that reviews diffs for bugs”",makeAChangelogAgentThatUsesAFastModel:"“make a changelog agent that uses a fast model”",orEditTheFilesDirectly:"Or edit the files directly:",commandcodeAgentsThisProject:" • .commandcode/agents/ (this project)",commandcodeAgentsAllProjects:" • ~/.commandcode/agents/ (all projects)",toGoBackAndJustAsk:"to go back and just ask","1ProjectAgents":"1. Project ({{v0}}/agents/)","2PersonalAgents":"2. Personal (~/{{v0}}/agents/)",enterAUniqueIdentifierForYourAgent:"Enter a unique identifier for your agent:",thisNameConflictsWithAnExistingToolNamePleaseChooseADifferentName:"This name conflicts with an existing tool name. Please choose a different name.",thisNameIsReservedReservedNames:"This name is reserved. Reserved names:",eGCodeReviewerUnitTester:"e.g. code-reviewer, unit-tester",enterTheSystemPromptForYourAgent:"Enter the system prompt for your agent:",beComprehensiveForBestResults:"Be comprehensive for best results.",youAreAHelpfulCodingReviewer:"You are a helpful coding reviewer...",whenShould:"When should",useThisAgent:"use this agent?",eGUseThisAgentWhenYouAreDoneWritingCode:"e.g., Use this agent when you are done writing code...",inheritFromSession:"Inherit from session","1InheritFromSessionDefault":"1. Inherit from session (default)","2PickASpecificModel":"2. Pick a specific model",pinAModelForThisAgentItWillAlwaysRunOnThisModelIndependentOfTheSessionSModel:"Pin a model for this agent. It will always run on this model, independent of the session's /model.",currentlyPinned:"Currently pinned:",inheritFollowsModelPinnedAgentsKeepTheirOwnModelAndPromptCache:"Inherit follows /model; pinned agents keep their own model and prompt cache",agentConfigurationIsIncomplete:"Agent configuration is incomplete",errorSavingAgent:"Error saving agent:",unknownErrorOccurred:"Unknown error occurred",name:"Name:",location:"Location:",tools:"Tools:",model2:"Model:",reasoningEffort:"Reasoning effort:",modelDefault:"model default",description:"Description",tells:"(Tells",whenToUseThisAgent:"when to use this agent):",systemPrompt2:"System Prompt:",toSave:"to save ·",savingAgent:"Saving agent…",error:"Error:",individualTools:"Individual Tools:",continue2:"[ Continue ]",showAdvancedOptions:"[ Show advanced options ]",hideAdvancedOptions:"[ Hide advanced options ]",allToolsSelected:"All tools selected",toolsSelected:"tools selected",noToolsSelected:"No tools selected",lockedBySettingsLocalJson:" (locked by settings.local.json)",unavailableOnByok:" (unavailable on BYOK)",tasteLearningIsOffOnByokModelsSwitchToACommandCodeModelToChangeIt:"Taste learning is off on BYOK models. Switch to a Command Code model to change it.",enabled2:"Enabled",disabled2:"Disabled",isLockedBySettingsLocalJsonEditThatFileToChangeIt:"{{v0}} is locked by settings.local.json — edit that file to change it.",isAlreadyAtItsDefault:"{{v0}} is already at its default.",settings:"Settings",loadingSettings:"Loading settings",typeToFilter:"type to filter",enterToChange:"enter to change",tabToReset:"tab to reset",escToClear2:"esc to clear",escToClose2:"esc to close",searchSettings:"Search settings...",noSettingsMatch:'No settings match "',skipped:"skipped",noSkillsFound:"No skills found",createSkillsIn:"Create skills in:",user2:"/ (user)",userAgents2:"/ (user, .agents)",project:"/ (project)",projectAgents2:"/ (project, .agents)",spaceToViewIssues:"space to view issues · ",toClose:"to close",noEditorFoundSetEditorSetxEditorCode:'No editor found. Set $EDITOR: setx EDITOR "code"',noEditorFoundSetEditorEchoExportEditorCode:"No editor found. Set $EDITOR: echo 'export EDITOR=\"code\"' >> {{v0}}",clipboardUnavailable:"clipboard unavailable",copiedIssueToClipboard:"Copied {{v0}} issue{{v1}} to clipboard",clipboardWriteFailed:"Clipboard write failed",skipped2:"Skipped",pressCToCopyAllIssues:"Press c to copy all issues",noIssuesEverySkillLoaded:"No issues — every skill loaded.",cCopyAllIssuesEscBackToSkills:"c copy all issues · esc back to skills",escBackToSkills:"esc back to skills",off:"[off] ",on:"[on] ",tokens2:" tokens ",failedToLoadSkills:"Failed to load skills",failedToSave:"Failed to save: {{v0}}",editorEnvironmentVariable:"$EDITOR environment variable",failedToOpenSkillInEditor:"Failed to open skill in editor",loadingSkills:"Loading skills...",skill2:"skill",off2:"off",typeToSearchNavigateEnterToToggleTabToEdit:"type to search · ↑/↓ navigate · enter to toggle · tab to edit",spaceToViewIssues2:" · space to view issues",escToClose3:" · esc to close",addSkills:"add skills:",typeToSearchSkills:"Type to search skills...",noSkillsMatch:'No skills match "',projectSkills:"Project skills",orAgents:"({{v0}}/{{v1}} or .agents/{{v2}})",userSkills:"User skills",orAgents2:"(~/{{v0}}/{{v1}} or ~/.agents/{{v2}})",bundledSkills:"Bundled skills",shipsWithCommandCode:"(ships with Command Code)",thisProject:"This project",showInFeed:"Show in feed",tasteLearning:"Taste Learning",loadingConfiguration:"Loading configuration",learnFromYourInteractions:"Learn from your interactions.",navigateEnterToToggleRResetToDefaultEscToClose:"↑/↓ navigate · enter to toggle · r reset to default · esc to close",unavailableOnByok2:"(unavailable on BYOK)",setInSettingsLocalJson:"(set in settings.local.json)",showInFeedOnlyHidesTheNoticesLearningStaysOn:'"Show in feed" only hides the notices — learning stays on.',tasteDataStoredInCommandcodeTasteTasteMd:"Taste data stored in .commandcode/taste/taste.md",thisProjectIsPinnedByCommandcodeSettingsLocalJsonEditThatFileToChangeIt:"This project is pinned by .commandcode/settings.local.json — edit that file to change it.",spendLimits:"Spend limits",resetsIn:" · resets in {{v0}}",usage:"{{v0}}USAGE{{v1}}",plan2:"{{v0}} Plan",runningLowKeepGoing:"Running low? Keep going:",payAsYouGoAtApiCostZeroMarkup:"pay-as-you-go at API cost, zero markup",biggerLimits:"bigger limits",toRetry2:" to retry · ",press2:"Press ",toClose2:" to close",notAuthenticatedRunLoginToConnectYourAccount:"Not authenticated. Run /login to connect your account.",somethingWentWrong:"Something went wrong.",noBillingDataFound:"No billing data found.",forUsageDetails:"for usage details.",used:" {{v0}}% used",planDetailsUnavailable:"Plan details unavailable",requestsThisMonth:" requests this month",requests:" requests",renewsToday:"renews today",day:"{{v0}} day{{v1}}",toRenew:" to renew",extraCredits:"Extra Credits:",usageLimits:"Usage limits",weekly:"Weekly",sandboxMinutes:"Cloud minutes",month:"Month",minUsedThisMonthBilledPerMinute:"{{v0}} min used this month, billed per minute",fullBreakdownAt:"Full breakdown at",errorInitializingOnboarding:"Error initializing onboarding:",traceId2:"Trace ID:",continuingWithoutOnboarding:"Continuing without onboarding...",observationsScroll:"{{v0}} observations (↑↓ scroll)",scroll:"↑{{v0}} ↓{{v1}} (↑↓ scroll)",meetYourCodingTaste:"Meet Your Coding Taste",commandCodeLearnsYourCodingStyleAsYouWork:"Command Code learns your coding style as you work.",hereSHowYourPreferencesEvolveInRealTime:"Here's how your preferences evolve in real-time:",saved:"Saved(",demoComplete:"Demo Complete!",commandCodeWillNowUseThesePreferencesToGenerate:"Command Code will now use these preferences to generate",betterSuggestionsTailoredToYourCodingStyleThe:"better suggestions tailored to your coding style. The",moreYouCodeTheSmarterItGets:"more you code, the smarter it gets.",pressEnterToGetStarted:"Press Enter to get started →",spacePauseEnterNextEscSkip:"[SPACE: pause] [ENTER: next] [ESC: skip]{{v0}}",buildYourCodingTaste:"Build Your Coding Taste",found:"Found",oneSession:"one session",sessions:"{{v0}} sessions",forThisProject:"for this project.",analyze:"Analyze",thatSession:"that session",thoseSessions:"those sessions",toBuildYourCodingTastePackage:"to build your coding taste package?","1YesLearnRecommended":"1. Yes, learn (recommended)",ok:"ok ·",skip3:"skip ·",never:"never",session:"{{v0}} session{{v1}}",yourTasteIsUpToDate:"Your Taste is Up to Date",yourTasteWasAlreadyLearned:"Your taste was already learned •",noNewSessionsToLearn:"No new sessions to learn",newSession:"{{v0}} new session{{v1}}",browseTasteAtCommandcodeTasteTasteMd:"Browse taste at .commandcode/taste/taste.md",toContinue:"to continue",across:" across {{v0}} {{v1}}",learnedYourCodingTaste:"learned your coding taste",learned:"Learned",preference:"preference",storedIn:"Stored in",commandCodeAutomaticallyUsesUpdatesTasteFiles:"Command Code automatically uses & updates taste files.",submitReview:"Submit review ({{v0}})",agentRevisesThePlanReturnsItForReview:"agent revises the plan, returns it for review",approve:"Approve",executesThePlanCommentsGoAlongAsNotes:"executes the plan · comments go along as notes",executesThePlan:"executes the plan",executePlan:"Execute plan",executesThePlanAsWritten:"executes the plan as written",back2:"Back",failedToSaveCommentsToDisk:"Failed to save comments to disk",planNotSavedToAFileYet:"(plan not saved to a file yet)",thisPlanIsNotSavedToAFileYet:"This plan is not saved to a file yet",failedToOpenTheEditor:"Failed to open the editor",enterToKeepClearEnterRemovesEscKeepAsWas:"enter to keep · clear + enter removes · esc keep as was",enterToPinEscDiscard:"enter to pin · esc discard",chooseEnterConfirmEscBack:"←/→ choose · enter confirm · esc back",enterDiscardEscBack:"enter discard · esc back",chooseEnterToRun:"↑/↓ choose · enter to run",typeEnterToComment:"type + enter to comment",ctrlNPJump:"ctrl+n/p jump {{v0}}",quickWhyXCutRisky:"quick: ? why x cut ! risky",planReview:"Plan review: {{v0}}",reviewThePlanLikeAPrTypeOnAnyLineToCommentEnterPinsItUnderTheLine:"Review the plan like a PR — type on any line to comment, enter pins it under the line.",loadingPlan:"Loading plan...",planFileIsEmptyOrMissingOnDisk:"Plan file is empty or missing on disk.",typeYourComment:"Type your comment…",review2:" REVIEW ",pendingComment:" {{v0}} pending comment{{v1}}",round:" · round {{v0}}{{v1}}",comment:"comment",asNotes:"as notes",originalPlanDiscardComments:"original plan · discard comments",discard:"Discard",pendingComment2:"pending comment",andExitReview:"and exit review?",approved:"{{v0}} approved",setAside:"{{v0}} set aside",pending:"{{v0}} pending",failedToLoadPlans:"Failed to load plans",plans:"Plans",loadingPlans:"Loading plans...",plan3:"plan",thisSession:"This session",allPlans:"All plans",typeToSearchNavigateSwitchTabEnterToOpen:"type to search · ↑/↓ navigate · ←/→ switch tab · enter to open",typeToSearchPlans:"Type to search plans...",noPlansMatch:'No plans match "{{v0}}"',noPlansInThisSessionYetUsePlanOrPlanModeToCreateOnePressForAllPlans:"No plans in this session yet — use /plan or plan mode to create one. Press → for all plans.",noSavedPlansYetPlansLandInCommandcodePlansWhenYouUsePlanMode:"No saved plans yet — plans land in ~/.commandcode/plans when you use plan mode.",learned2:"Learned {{v0}} {{v1}}",tasteProfileInitialized:"Taste profile initialized",in2:" in {{v0}} {{v1}}",tasteStoredIn:"Taste stored in",shareYourCodingTaste:"Share your coding taste:",commandCodeAutomaticallyUsesUpdatesTasteFilesAsYouCode:"Command Code automatically uses & updates taste files as you code.",commandCodeWillLearnYourPreferencesAsYouCode:"Command Code will learn your preferences as you code.",toExit:"to exit",recentSignalsLearned:"Recent signals · {{v0}} {{v1}} learned",recentSignals:"Recent signals",learningInterrupted:"learning interrupted",learningYourCodingTasteFrom:"Learning your coding taste from",thisMayTakeAFewMinutesDependingOnRepositorySize:"This may take a few minutes depending on repository size",loginCancelled:"Login cancelled",noCodeChanges:"No code changes",fileChanged:"{{v0}} file{{v1}} changed",rewind:"Rewind",noCheckpointsAvailableStartAConversationToCreateCheckpoints:"No checkpoints available. Start a conversation to create checkpoints.",restoreTo:"Restore to:",toConfirm:"to confirm ·",selectACheckpointToRestoreYourSession:"Select a checkpoint to restore your session",noPrompt:"(no prompt)",latest:" (latest)",recent:"Recent",messages:"Messages",noNamedSessions:"No named sessions.",pressCtrlNToShowAll:"Press ctrl+n to show all.",noSessionsMatch:'No sessions match "{{v0}}"',pressEscToClearSearch:"Press Esc to clear search.",noSessionsFoundForBranch:'No sessions found for branch "{{v0}}"',pressCtrlBToShowAllBranchesEscToCancel:"Press ctrl+b to show all branches, Esc to cancel",noPreviousSessionsFound:"No previous sessions found",pressEscToGoBack:"Press Esc to go back",sessionMovedToTrash:"Session moved to trash",sessionDeleted:"Session deleted",failedToDeleteSession:"Failed to delete session: {{v0}}",failedToRenameSession:"Failed to rename session: {{v0}}",cannotDeleteTheCurrentSession:"Cannot delete the current session",loadingSessions:"Loading sessions",deletePressEnterToConfirmAnyOtherKeyToCancel:'Delete "{{v0}}"? Press Enter to confirm, any other key to cancel.',resumeSession:"Resume Session",sortNameBranch:"Sort: {{v0}} · Name: {{v1}} · Branch: {{v2}}",typeToSearchSessions:"Type to search sessions...",modified:"Modified",gitBranch:"Git Branch",summary:"Summary",path2:" · Path",rename:"Rename: ",enterResume:"enter resume",ctrlSSort:"ctrl+s sort",ctrlNNamed:"ctrl+n named",ctrlRRename:"ctrl+r rename",ctrlDDelete:"ctrl+d delete",ctrlPPath:"ctrl+p path",ctrlBBranch:"ctrl+b branch",typeToSearch:"type to search",read:"[read: {{v0}}:{{v1}}-{{v2}}]",read2:"[read: {{v0}}]",write:"[write: {{v0}}]",edit:"[edit: {{v0}}]",bash:"[bash: {{v0}}]",grepIn:"[grep: /{{v0}}/ in {{v1}}]",glob:"[glob: {{v0}}]",ls:"[ls: {{v0}}]",toolResult:"[tool result]",user3:"user: {{v0}}",assistant:"assistant: {{v0}}",assistantNoContent:"assistant: (no content)",compactionKTokens:"[compaction: {{v0}}k tokens]",branchSummary:"[branch summary]: {{v0}}",custom:"[custom: {{v0}}]",model3:"[model: {{v0}}]",effort:"[effort: {{v0}}]",label:"[label: {{v0}}]",title:"[title: {{v0}}]",titleEmpty:"[title: (empty)]",branchSummary2:"branch summary",noSummary:"No summary",summarize:"Summarize",summarizeWithCustomPrompt:"Summarize with custom prompt",summarizingAbandonedBranchEscToCancel:"Summarizing abandoned branch… (Esc to cancel)",youReLeavingWorkBehindOnThisBranchSummarizeItBeforeJumping:"You're leaving work behind on this branch. Summarize it before jumping?",enterConfirmEscBack:"enter confirm · esc back",focusInstructionsForTheSummary:"Focus instructions for the summary:",label2:"Label:",enterSaveEmptyClearsEscCancel:"enter save (empty clears) · esc cancel",typeToSearch2:"Type to search…",noEntriesFound:"No entries found",labelTime:" [+label time]",movePageTabAltBranchShiftLLabelShiftTLabelTime:"↑/↓ move · ←/→ page · tab / alt+←/→ branch · shift+L label · shift+T label time",filtersCtrlDTULACycleCtrlOTypeToSearchRebindViaCommandcodeKeybindingsJson:"filters ctrl+d/t/u/l/a · cycle ctrl+o · type to search · rebind via ~/.commandcode/keybindings.json",doYouTrustTheFilesInThisFolder:"Do you trust the files in this folder?",toNavigateEnterToSelectEscToExit:"↑/↓ to navigate · enter to select · esc to exit",mayReadFilesInThisFolderReadingUntrustedFilesMayLeadToBehaveInUnexpectedWays:"{{v0}} may read files in this folder. Reading untrusted files may lead {{v1}} to behave in unexpected ways.",withYourPermissionMayExecuteFilesInThisFolderExecutingUntrustedCodeIsUnsafe:"With your permission {{v0}} may execute files in this folder. Executing untrusted code is unsafe.","1YesProceed":"1. Yes, proceed","2NoExit":"2. No, exit",exitingWorktreeSession:"Exiting worktree session",enterToConfirmEscToCancel:"Enter to confirm · Esc to cancel","1KeepWorktree":"1. Keep worktree",staysAt:"Stays at","2RemoveWorktree":"2. Remove worktree",allChangesAndCommitsWillBeLost:"All changes and commits will be lost.",errorInteractiveModeRequiresATtyTerminal:"Error: Interactive mode requires a TTY terminal.",pleaseRunThisCommandDirectlyInYourTerminalNotThroughAPipeOrRedirect:"Please run this command directly in your terminal, not through a pipe or redirect.",noConversationsFoundToResume:"No conversations found to resume.",forkSessionIgnoredNoSessionToForkUseWithResumeIdNameOrContinue:"--fork-session ignored: no session to fork (use with --resume <id|name> or --continue).",forkSessionFailedResumingTheOriginalSession:"--fork-session failed: {{v0}}. Resuming the original session.",projectNotInitializedRunCmdToStartAConversationFirst:"Project not initialized. Run cmd to start a conversation first.",sessionIsNeitherAnExistingJsonlTranscriptNorAKnownSessionIdPrefix:'--session "{{v0}}" is neither an existing .jsonl transcript nor a known session-id prefix.',sessionIsAmbiguousMatches:'--session "{{v0}}" is ambiguous — matches: {{v1}}',youHaveUncommittedFileTheseWillBeLostIfYouRemoveTheWorktree:"You have {{v0}} uncommitted file{{v1}}. These will be lost if you remove the worktree.",thisWorktreeHasCommitsThatAreNotOnYourMainBranchTheyWillBeLostIfYouRemoveIt:"This worktree has commits that are not on your main branch. They will be lost if you remove it.",removedEmptyWorktree:"Removed empty worktree",removedWorktree2:"Removed worktree",detailedTranscript:"{{v0}}DETAILED TRANSCRIPT{{v1}}",toToggle:"to toggle",showAll:"show all",todosFocusedToSelectCToCompleteXToRemoveAAllDoneEscToGoBackToFeed:"Todos focused · ↑/↓ to select · c to complete · x to remove · a all done · Esc to go back to feed",notAuthenticated:"Not authenticated.",noAnswerFromTheSandboxEventsWereLost:"No answer from the cloud session: events were lost.",noAnswerFromTheSandbox:"No answer from the cloud session: {{v0}}.",theSandboxReported:"the cloud session reported {{v0}}",theStreamEnded:"the stream ended",theSandboxStoppedBeforeItsProcessWasReady:"The cloud session stopped before it was ready.",theSandboxDidNotComeUpInTime:"The sandbox did not come up in time.",noAnswerFromTheSandboxItsAgentProcessIsNotResponding:"No answer from the cloud session: its agent is not responding.",theSandboxIsWorkingOnATurnRunAgainOnceItHasFinished:"The cloud session is working on a turn; run {{v0}} again once it has finished.",theChangeWasRefused:"the change was refused",theSandboxKeptIts:"The cloud session kept its {{v0}}: {{v1}}.",commandsAreNotSupportedInASandboxSessionYet:"! commands are not supported in a cloud session yet.",isNotSupportedInASandboxSessionYet:"/{{v0}} is not supported in a cloud session yet.",runFailed:"Run failed",theTurnDidNotFinish:"The turn did not finish: {{v0}}.",theSandboxRefusedTheTurn:"The cloud session refused the turn",thisModelHasNoReasoningEffortToSet:"This model has no reasoning effort to set.",reasoningEffortTapOneOrSendEffortLevel:"Reasoning effort\nTap one, or send /effort <level>\n\n{{v0}}",isNotALevelTry:'"{{v0}}" is not a level. Try: {{v1}}.',aModelIdOrLeaveEmptyForTheList:"a model id, or leave empty for the list",aLevelOrLeaveEmptyForTheList:"a level, or leave empty for the list",compacting:"Compacting…",cleared:"Cleared.",thisSessionItsModelAndWhetherItAsksFirst:"this session, its model, and whether it asks first",interruptWhateverItIsDoing:"interrupt whatever it is doing",whatYouCanSend:"what you can send",whatYouCanSend2:"What you can send",anythingElseIsAPromptForTheAgent:"Anything else is a prompt for the agent.",pickOneOrSendModelId:"Pick one, or send /model <id>",runACommand:"Run a command",killARunningProcess:"Kill a running process",editAFile:"Edit a file",writeAFile:"Write a file",readAFile:"Read a file",listADirectory:"List a directory",fetchAUrl:"Fetch a URL",searchTheWeb:"Search the web",approve2:"⏸ **Approve?**",of2:"❓ **{{v0}}** ({{v1}} of {{v2}})",pickOneHereOrAnswerAtTheTerminalForSeveral:"Pick one here, or answer at the terminal for several.",queuedItGoesInAfterTheAnswerAbove:"⏳ Queued. It goes in after the answer above.",line2:"{{v0}} line{{v1}}",startingAuthentication:"Starting authentication...",editorError:"Editor error: {{v0}}",permissionsAreBypassedInASandboxSessionTheModeCannotBeChangedHereYet:"Permissions are bypassed in a cloud session; the mode cannot be changed here yet.",connectingToTheSandbox2:"Connecting to the cloud",startingTheSandbox:"Starting the cloud session",isACustomModelThisMachineServesTheSandboxRunsItsDefaultModelInstead:"{{v0}} is a custom model this machine serves; the cloud session runs its default model instead.",connectedToSandboxBranch:"Connected to sandbox {{v0}} ({{v1}}, branch {{v2}})",sandbox:"Cloud: {{v0}}",ranSessionStartHook:"Ran {{v0}} session start hook{{v1}}",runIde:"run /ide",loopStoppedScheduledCancelled:"Loop stopped · {{v0}} scheduled {{v1}} cancelled",questionCancelled:"Question cancelled",isNotOnYourPlan:"{{v0}} is not on your plan.",switchingTo:"Switching to {{v0}}.",notConnected2:"not connected",unknownModelSendModelForTheList:'Unknown model "{{v0}}". Send /model for the list.',setTo:"Set {{v0}} to {{v1}}.",interrupted2:"Interrupted.",doesnTWorkFromTheChatSendHelpForWhatDoesOrSendItWithoutTheSlashToMakeItAPrompt:"/{{v0}} doesn't work from the chat. Send /help for what does, or send it without the slash to make it a prompt.",thatPromptIsNoLongerWaiting:"That prompt is no longer waiting.",approved2:"Approved",denied:"Denied",thatQuestionIsAlreadyAnswered:"That question is already answered.",notedLeft:"Noted: {{v0}}. {{v1}} left.",answered:"Answered: {{v0}}",thatFailed:"That failed: {{v0}}",thatMenuIsOutOfDate:"That menu is out of date.",thatCommandFailed:"That command failed: {{v0}}",approve3:"✅ Approve",deny:"⛔️ Deny",planSavedRunPlansToReviewAnnotateOrExecuteItAnytime:"Plan saved — run /plans to review, annotate, or execute it anytime.",composing:"Composing",sendThePrompt:"Send the prompt",insertANewline:"Insert a newline",editThePromptInEditor:"Edit the prompt in $EDITOR",stashRestoreTheCurrentPrompt:"Stash / restore the current prompt",browsePromptHistory:"Browse prompt history",mentionAFileFuzzySearch:"Mention a file (fuzzy search)",openTheCommandMenu:"Open the command menu",bashModeRunAShellCommand:"Bash mode — run a shell command",whileItWorks:"While it works",interruptTheCurrentTurn:"Interrupt the current turn",typeEnter:"Type + Enter",queueASteeringMessage:"Queue a steering message",openTheTodoManagerTodosForTheCurrentPlan:"Open the todo manager (/todos) for the current plan",transcript:"Transcript",toggleExpandedToolOutput:"Toggle expanded tool output",toggleTheFullTranscript:"Toggle the full transcript",sessionModes:"Session & modes",cycleModeStandardAcceptEditsPlanYolo:"Cycle mode: standard → accept edits → plan → yolo",quickModelSwitch:"Quick model switch",rewindToACheckpoint:"Rewind to a checkpoint",exit:"Exit",general:"General",sharing:"Sharing",featureModels:"Feature models",theme2:"Theme",terminalColorThemeSameSettingAsThemeAutoAutomaticallyDetectsYourTerminalBackgroundAndUsesLightOrDarkToMatch:"Terminal color theme (same setting as /theme). Auto automatically detects your terminal background and uses light or dark to match.",compactMode:"Compact mode",autoCompactAggressivenessWhenContextFillsUpSameSettingAsCompactMode:"Auto-compact aggressiveness when context fills up (same setting as /compact-mode).",treeDefaultFilter:"Tree default filter",defaultFilterWhenOpeningTree:"Default filter when opening /tree.",onDemandCommandExplanations:"On-demand command explanations",explainShellCommandsOnPermissionPromptsOnlyWhenYouPressCtrlEDefaultTurnOffToGenerateEveryExplanationUpfront:"Explain shell commands on permission prompts only when you press ctrl+e (default). Turn off to generate every explanation upfront.",imageVision:"Image vision",letATextOnlyModelReadAttachedImagesByDescribingThemWithTheVisionModelAskOnFirstUsePromptsTheFirstTimeYouAttachAnImage:'Let a text-only model read attached images by describing them with the vision model ("Ask on first use" prompts the first time you attach an image).',skipBranchSummaryPrompt:"Skip branch summary prompt",neverAskAboutSummarizingWhenSwitchingBranchesInTree:"Never ask about summarizing when switching branches in /tree.",defaultExportFormat:"Default export format",formatABareExportNoFormatOrPathWritesAnExplicitExportHtmlJsonlMdPathAlwaysOverrides:"Format a bare /export (no format or path) writes — an explicit /export html|jsonl|md|<path> always overrides.",defaultShareGistFormat:"Default share gist format",formatABareShareGistNoFormatArgumentPostsAnExplicitShareGistHtmlJsonlMdAlwaysOverrides:"Format a bare /share gist (no format argument) posts — an explicit /share gist html|jsonl|md always overrides.",tasteLearningUser:"Taste learning (user)",learnYourCodingStyleFromYourSessionsUserWideSameSettingAsTaste:"Learn your coding style from your sessions, user-wide (same setting as /taste).",showTasteLearningInFeed:"Show Taste learning in feed",showTasteLearningNoticesInTheConversationFeedTurningThisOffKeepsLearningEnabledAndOnlyHidesTheNotices:"Show Taste learning notices in the conversation feed. Turning this off keeps learning enabled and only hides the notices.",tasteLearningThisProject:"Taste learning (this project)",learnYourCodingStyleFromThisProjectOnlySameSettingAsTaste:"Learn your coding style from this project only (same setting as /taste).",lockedBySettingsLocalJsonEditThatFileToChangeIt:"Locked by settings.local.json — edit that file to change it.",dark:"Dark",light:"Light",auto:"Auto",compactNormal:"Compact Normal",noTools:"No tools",userMessages:"User messages",labeledOnly:"Labeled only",everything:"Everything",askOnFirstUse:"Ask on first use",inheritFromUser:"Inherit from user",sessionTitles:"Session titles",namesYourSessionsAfterTheFirstExchange:"Names your sessions after the first exchange.",compaction:"Compaction",summarizesLongConversationsWhenContextFillsUp:"Summarizes long conversations when context fills up.",commandExplanations:"Command explanations",writesTheOneLineCommandSummariesOnPermissionPrompts:"Writes the one-line command summaries on permission prompts.",tasteLearning2:"Taste learning",learnsYourCodingStyleFromYourSessions:"Learns your coding style from your sessions.",streamsLiveObservationsDuringOnboarding:"Streams live observations during onboarding.",treeBranchSummaries:"/tree branch summaries",summarizesAnAbandonedBranchWhenYouJumpAwayFromIt:"Summarizes an abandoned branch when you jump away from it.",describesAttachedImagesSoATextOnlyModelCanReadThem:"Describes attached images so a text-only model can read them.",yes:"Yes",no:"No",yesAllowAllEditsThisSessionShiftTab:"Yes, allow all edits this session [shift+tab]",noTellCommandCodeWhatToDoDifferently:"No, tell Command Code what to do differently",both:"Both",restoreConversationAndCodeRecommended:"Restore conversation and code (recommended)",conversationOnly:"Conversation only",rewindConversationKeepCurrentCode:"Rewind conversation, keep current code",codeOnly:"Code only",restoreCodeKeepConversation:"Restore code, keep conversation",thisExactCommand:"this exact command",theseCommands:"these commands",enabled3:"enabled",disabled3:"disabled",connected:"connected",connecting2:"connecting…",failed2:"failed",configured:"configured",notSet:"not set",on2:"on",all:"all",named:"named",default4:"default",standard:"standard",yolo:"yolo",pending2:"pending",approved3:"approved",discarded:"discarded",complete:"complete",running2:"running",interrupted3:"interrupted",blocked:"blocked",paused:"paused",idle:"idle",open2:"open",closed:"closed",merged:"merged",learned3:"LEARNED",reinforced:"Reinforced",downgraded:"Downgraded",refactored:"Refactored",moved:"Moved",continuousLearning:"continuous learning",userSettings:"user settings",projectShared:"project shared",projectLocal:"project local",unknown:"Unknown",nA:"N/A",learningOn:"Learning on",learningOff:"Learning off",learningOffByok:"Learning off (byok)",resumeThisSessionWith:"Resume this session with:",failedToSetTheme:"Failed to set theme",failedToSetCompactMode:"Failed to set compact mode",couldnTSaveTheForkStorageErrorStayingOnTheCurrentSession:"Couldn't save the fork (storage error). Staying on the current session.",imageAttached:"(Image attached)",notShared:"NOT SHARED",free2:"(FREE)",file:"file",files2:"files",session2:"session",sessions2:"sessions",preferences:"preferences",observation:"observation",observations:"observations",learning:"learning",learnings:"learnings",category:"category",categories:"categories",lines:"lines",second:"second",seconds:"seconds",permissionCommands:"{{commands}} commands",permissionRememberProject:"Yes, don't ask again for {{subject}} in this project",interruptedWhatShouldCommandCodeDoInstead:"Interrupted · What should Command Code do instead?",systemTools:"System tools",subagents:"Subagents",identity:"identity",thisCommand:"this command",thisTool:"this tool",repository2:"repository",checkpoint:"checkpoint",packages:"packages",model4:"model",models2:"models",additions:"additions",removals:"removals",agent2:"Agent",read3:"READ",readN:"READ[n]",write2:"WRITE",edit2:"EDIT",list:"LIST",search:"SEARCH",glob2:"GLOB",shell3:"SHELL",shellOutput:"SHELL(output)",shellTasks:"SHELL(tasks)",diagnostics:"DIAGNOSTICS",run3:"RUN",worktreeEnter:"WORKTREE(enter)",worktreeExit:"WORKTREE(exit)",planEnter:"PLAN(enter)",planExit:"PLAN(exit)",planReview2:"PLAN(review)",killShell:"KILL(shell)",vision:"VISION",searchTools:"SEARCH TOOLS",todos3:"TODOS",cronCreate:"CRON(create)",cronList:"CRON(list)",cronDelete:"CRON(delete)",loop:"LOOP",question2:"QUESTION",sleep:"SLEEP",webSearch:"WEB(search)",webFetch:"WEB(fetch)",taskNew:"TASK(new)",taskUpdate:"TASK(update)",taskList:"TASK(list)",taskGet:"TASK(get)",taskOutput:"TASK(output)",taskStop:"TASK(stop)",skill3:"SKILL",knowledge:"KNOWLEDGE",monitor2:"MONITOR",monitorEvents:"MONITOR(events)",bestComboOfSpeedIntelligenceRecommended:"best combo of speed & intelligence (recommended)",prevSonnetStillFastCapable:"prev Sonnet, still fast & capable",olderSonnetStillFastCapable:"older Sonnet, still fast & capable",mostCapableForDemandingReasoningLongHorizonAgents:"most capable for demanding reasoning & long-horizon agents",prevFableStillStrongForDeepReasoningAgents:"prev Fable, still strong for deep reasoning & agents",mostIntelligentOpusForAgentsAndCoding:"most intelligent Opus for agents and coding",prevFlagshipStillStrongForAgentsAndCoding:"prev flagship, still strong for agents and coding",olderOpusStillStrongForAgentsAndCoding:"older Opus, still strong for agents and coding",fastestMostCompactGreatForQuickTasks:"fastest & most compact, great for quick tasks",mostCapableOpenaiModelForDemandingReasoningAgents:"most capable OpenAI model for demanding reasoning & agents",nearAstraPerformanceForComplexWorkAtALowerCost:"near-Astra performance for complex work at a lower cost",builtForComplexCodingAgenticWorkflows:"built for complex coding & agentic workflows",mostEfficientOpenaiModelForFocusedHighVolumeTasks:"most efficient OpenAI model for focused, high-volume tasks",frontierModelForComplexProfessionalWork:"frontier model for complex professional work",balancesIntelligenceAndCost:"balances intelligence and cost",optimizedForCostSensitiveWorkloads:"optimized for cost-sensitive workloads",latestFrontierModelForGeneralComplexWork:"latest frontier model for general complex work",frontierModelForGeneralComplexWork:"frontier model for general complex work",frontierCodingModel:"frontier coding model",fastCostEffectiveModelForEverydayTasks:"fast, cost-effective model for everyday tasks",frontierCodingAgentsNativeMultimodality:"frontier coding, agents & native multimodality",hybridAttentionLongContextReasoning:"hybrid-attention long-context reasoning",fastHybridAttentionReasoning:"fast hybrid-attention reasoning",fastHybridAttentionReasoningWithVision:"fast hybrid-attention reasoning with vision",lowLatencyV4FlashDeployment:"low-latency V4 Flash deployment",v41HybridAttentionReasoningWithVision:"V4.1 hybrid-attention reasoning with vision",highThroughputV41Flash:"High throughput V4.1 Flash",longHorizonCodingKnowledgeWorkWith1mContext:"long-horizon coding & knowledge work with 1M context",improvedLongHorizonCodingWithVision:"improved long-horizon coding with vision",highSpeedLongHorizonCodingWithVision:"high-speed long-horizon coding with vision",longHorizonCodingWithVision:"long-horizon coding with vision",multimodalFrontendCoding:"multimodal frontend coding",fastAffordableGlmCodingWith1mContext:"fast, affordable GLM coding with 1M context",highSpeedGlm53FlashWith1mContext:"high-speed GLM-5.3 Flash with 1M context",frontierCodingWithEmergentCyberCapabilities:"frontier coding with emergent cyber capabilities",powerfulCodingWith1mContextAndLongHorizonTasks:"powerful coding with 1M context and long-horizon tasks",highThroughputGlm52With1mContext:"high-throughput GLM-5.2 with 1M context",longHorizonAutonomousCodingAgent:"long-horizon autonomous coding agent",multiModeThinkingLongRangePlanning:"multi-mode thinking & long-range planning",endToEndSoftwareEngineeringAgent:"end-to-end software engineering agent",crossPlatformFullStackAgenticDev:"cross-platform full-stack agentic dev",flagshipMultimodalAgenticCodingWith1mContext:"flagship multimodal agentic coding with 1M context",lowLatencyServingTierOfMimoV26Pro:"low-latency serving tier of MiMo V2.6 Pro",efficientMultimodalAgenticCodingWith1mContext:"efficient multimodal agentic coding with 1M context",highCapabilityLongContextAgenticCoding:"high-capability long-context agentic coding",efficientLongContextAgenticCoding:"efficient long-context agentic coding",omniModalUnderstandingMultimediaAgenticWork:"omni-modal understanding & multimedia agentic work",upgradedQwen38MaxStrongerCodingAgenticToolUse:"upgraded Qwen 3.8 Max: stronger coding & agentic tool use",autonomousLongHorizonCodingProfessionalWork:"autonomous long-horizon coding & professional work",compactVisionLanguageCodingAgenticWork:"compact vision-language coding & agentic work",fastLowCostAgenticCodingReasoning:"fast low-cost agentic coding & reasoning",frontierCodingLongHorizonAgentExecution:"frontier coding & long-horizon agent execution",agenticCodingReasoningAtLowerCost:"agentic coding & reasoning at lower cost",vibeCodingEfficientAgentExecution:"vibe coding & efficient agent execution",agenticCodingReasoning:"agentic coding & reasoning",trillionParameterAgenticCodingWith1mContext:"trillion-parameter agentic coding with 1M context","600bSparseMoeAgenticCodingWith1mContext":"600B sparse-MoE agentic coding with 1M context",multimodalSparseMoeReasoning:"multimodal sparse-MoE reasoning",fastSparseMoeAgenticReasoning:"fast sparse-MoE agentic reasoning",sparseMoeReasoningAgenticToolUse:"sparse-MoE reasoning & agentic tool use",agenticCodingSustainedMultiStepToolUse:"agentic coding & sustained multi-step tool use",newestGeminiFlashImprovedCoreReasoning:"newest Gemini Flash, improved core reasoning",higherQualityCodingAgenticWorkflowsFewerTokens:"higher-quality coding & agentic workflows, fewer tokens",previousGeminiFlashStillFastCapable:"previous Gemini Flash, still fast & capable",proLevelCodingProficiencyParallelAgenticExecution:"Pro-level coding proficiency, parallel agentic execution",upgradedAgenticCapabilitiesIdealForSubagents:"upgraded agentic capabilities, ideal for subagents",highVolumeWorkhorseModelWithImplicitCaching:"high-volume workhorse model with implicit caching",multiAgentOrchestrationAcrossFrontierModels:"multi-agent orchestration across frontier models",openReasoningModelForLongHorizonAutonomousAgents:"open reasoning model for long-horizon autonomous agents",multimodalMoeReasoning:"multimodal MoE reasoning",lightweightMoeReasoningAtLowerCostAndLatency:"lightweight MoE reasoning at lower cost and latency",stealthModelWith1mContext:"stealth model with 1M context",stealthCodingModelForWebAndMobileApps:"stealth coding model for web and mobile apps",openWeightAgenticCodingAndLongHorizonWork:"open-weight agentic coding and long-horizon work",fastLightweightMoeCodingAgenticWork:"fast lightweight-MoE coding & agentic work",healthMedicineTunedLightweightMoeStillStrongOnCode:"health & medicine tuned lightweight-MoE, still strong on code",hybridReasoningMoeForCodingToolUsingAgents:"hybrid-reasoning MoE for coding & tool-using agents",agenticPerformanceToolUseAndComputerUse:"agentic performance, tool use, and computer use",codingOptimizedForAgenticWorkflowsAndLargeCodebases:"coding-optimized for agentic workflows and large codebases",museSpark12At95Off:"Muse Spark 1.2 at ~95% off",multimodalReasoningForLongHorizonAgenticAndCodingWorkflows:"multimodal reasoning for long-horizon agentic and coding workflows",museSpark13AtUpTo95Off:"Muse Spark 1.3 at up to 95% off",smartestModelForCodingAgenticTasksKnowledgeWork:"smartest model for coding, agentic tasks, knowledge work",frontierPerformanceOnCodingKnowledgeWorkAndStem:"frontier performance on coding, knowledge work, and STEM",codingAndKnowledgeWorkBuiltForMultiHourTasks:"coding and knowledge work, built for multi-hour tasks",recommended2:"recommended",claudeProMax:"Claude Pro/Max",copilotSubscription:"Copilot subscription",chatgptProPlusSubscription:"ChatGPT Pro/Plus subscription",copiedSuffix:" (copied)",pausedSuffix:" (paused)",server:"server",servers:"servers",skills2:"skills",allTools:"All tools",readOnlyTools:"Read-only tools",editTools:"Edit tools",executionTools:"Execution tools",searchTools2:"Search tools",otherTools:"Other tools",fastHealthScanWithClearPrescriptions:"Fast health scan with clear prescriptions",findGenericAiLookingPatterns:"Find generic AI-looking patterns",judgmentPassWithScoresAndFixes:"Judgment pass with scores and fixes",removeAiSlopFromTheDesignSurface:"Remove AI slop from the design surface",typeScaleHierarchyRhythmMeasure:"Type scale, hierarchy, rhythm, measure",paletteRolesContrastStateColor:"Palette, roles, contrast, state color",pageWideMotionSystemAndMissingAnimations:"Page-wide motion system and missing animations",statesAffordancesFeedbackTouchTargets:"States, affordances, feedback, touch targets",focusKeyboardSemanticsNamesHitAreas:"Focus, keyboard, semantics, names, hit areas",structuralCompositionNotMinorSpacing:"Structural composition, not minor spacing",recomposeAcrossMobileTabletAndDesktop:"Recompose across mobile, tablet, and desktop",changeTheFullVisualDirectionOfExistingUi:"Change the full visual direction of existing UI",tokenizeRepeatedPatternsIntoReusableComponents:"Tokenize repeated patterns into reusable components",initializeProjectWithBriefMdDesignContext:"Initialize project with brief.md design context",finalPreShipPassWithVerifiedClaims:"Final pre-ship pass with verified claims",removeNoiseAndStrengthenWhatRemains:"Remove noise and strengthen what remains",makeMarketingSurfacesMemorableAndSpecific:"Make marketing surfaces memorable and specific",hardenAppUiForRealOperatorsAndRealData:"Harden app UI for real operators and real data",validateChangesOrDocumentTheNewDesign:"Validate changes or document the new design",tokenizeComponentsOrRedesignTheInterface:"Tokenize components or redesign the interface",redesignWithExtractedComponentsOrOptimizeLayout:"Redesign with extracted components or optimize layout",polishDetailsOrRedesignBasedOnFeedback:"Polish details or redesign based on feedback",improveVisualsOrFixLayoutIssues:"Improve visuals or fix layout issues",removeDetectedSlopOrPolishFurther:"Remove detected slop or polish further",verifyTheFixesOrPolishFurther:"Verify the fixes or polish further",fineTuneTypographyColorsOrTestResponsiveness:"Fine-tune typography/colors or test responsiveness",applyVoiceThroughColorsOrUpdateTypography:"Apply voice through colors or update typography",optimizeTheProductSurfaceOrAddInteractions:"Optimize the product surface or add interactions",polishFurtherOrTestResponsiveness:"Polish further or test responsiveness",checkResponsivenessOrAdjustColors:"Check responsiveness or adjust colors",testResponsiveColorsOrAddAnimations:"Test responsive colors or add animations",verifyResponsiveLayoutOrAddInteractions:"Verify responsive layout or add interactions",addInteractionsOrDocumentAnimations:"Add interactions or document animations",addInteractionsOrFinalizeDesign:"Add interactions or finalize design",addAnimationsOrDocumentInteractions:"Add animations or document interactions",repairTheInteractionStatesOrVerifyTheFixes:"Repair the interaction states or verify the fixes",fastResponsesWithLighterReasoning:"Fast responses with lighter reasoning",balancesSpeedAndReasoningDepthForEverydayTasks:"Balances speed and reasoning depth for everyday tasks",greaterReasoningDepthForComplexProblems:"Greater reasoning depth for complex problems",extraReasoningDepthForComplexProblems:"Extra reasoning depth for complex problems",maximumReasoningBudgetForTheHardestProblems:"Maximum reasoning budget for the hardest problems",useTheProviderDefaultReasoningLevel:"Use the provider default reasoning level",tasteLearningIsUnavailableOnByokSwitchToACommandCodeModelWithModelOrCmdModelFirst:"Taste learning is unavailable on BYOK — switch to a Command Code model with /model or cmd --model first.",readFile:"Read File",readDirectory:"Read Directory",writeFile:"Write File",grep:"Grep",glob3:"Glob",shellCommand:"Shell Command",shellOutput2:"Shell Output",monitorCommand:"Monitor Command",monitorEvents2:"Monitor Events",shellTasks2:"Shell Tasks",cronCreate2:"Cron Create",cronList2:"Cron List",cronDelete2:"Cron Delete",scheduleWakeup:"Schedule Wakeup",todoWrite:"Todo Write",taskCreate:"Task Create",taskUpdate2:"Task Update",taskList2:"Task List",taskGet2:"Task Get",taskOutput2:"Task Output",taskStop2:"Task Stop",askUserQuestion:"Ask User Question",runCommand:"Run Command",killShell2:"Kill Shell",sleep2:"Sleep",exitPlanMode:"Exit Plan Mode",enterPlanMode:"Enter Plan Mode",planReview3:"Plan Review",enterWorktree:"Enter Worktree",exitWorktree:"Exit Worktree",getDiagnostics:"Get Diagnostics",webSearch2:"Web Search",webFetch2:"Web Fetch",vision2:"Vision",agentOutput:"Agent Output",activateSkill:"Activate Skill",connectedTo2:"Connected to ",ideExtensionInstalledIn:"IDE extension installed in ",ideExtensionUpToDateIn:"IDE extension up to date in ",ideExtensionInstalledReload:"IDE extension installed — reload ",sWindowToActivate:"'s window to activate",extensionInstallFailed:" extension install failed",extensionInstallFailed2:"Extension install failed",noSupportedIdeDetected:"No supported IDE detected",collectingCommitsFromRepository:"Collecting commits from repository",extractingTasteSignalsFromDiffs:"Extracting taste signals from diffs",compilingTasteContext:"Compiling taste context",learningTasteFromChangePatterns:"Learning taste from change patterns",tasteLearned:"Taste learned",cloningRepository:"Cloning repository",initializingTasteProfile:"Initializing Taste Profile",organizingYourSessions:"Organizing your sessions",learningYourCodingTaste:"Learning your coding taste",learnedYourCodingTaste2:"Learned your coding taste!",planCount:"{{count}} plan{{suffix}}",cancelLower:"cancel",collapse:"collapse",fiveHour:"5-hour",imageNumber:"[Image #{{index}}",approveWithComments:"with {{count}} comment{{suffix}} as notes",discardPendingComments:"Discard {{count}} pending comment{{suffix}} and exit review?",couldNotSaveLanguage:"Could not save language: {{reason}}. Report issues at https://cond.dev/issue",providerModelCount_one:"{{count}} model",providerModelCount_other:"{{count}} models",sandboxStoppedReportingProgress:"The cloud session stopped reporting progress while starting. Try again, or reopen it later.",pickPhaseModel:"Pick the model this phase runs on, or reset it to follow your current model.",reasoningEffortForModelSetTo:"Reasoning effort{{suffix}} set to {{v0}}.",effortForModelSuffix:" for {{model}}",useCurrentModel:"Use current model ({{model}})",planningFeature:"Planning",implementationFeature:"Implementation",planningDescription:"Model that runs while you are in plan mode (shift+tab, /plan, or enter_plan_mode) — exploring the codebase and writing the plan.",implementationDescription:"Model that takes over when you approve a plan — writing the code. Only applies after a planning round.",largeRepoCloneHint:"Large repo: it is cloned once per session, and reopening is fast.",planningPhase:"planning",implementingPhase:"implementing"},UN={languageSetTo:"语言已设置为:{{label}}",selectLanguage:"选择语言",languageSubtitle:"选择 Command Code 界面的显示语言 · 当前为 {{label}}",pressEscToCancel:"按 Esc 取消",language:"语言",unknownLanguageOptions:"未知语言“{{value}}”。可选项:{{options}}。",selectTheme:"选择主题",themeSubtitle:"选择此终端的配色方案 · 当前为 {{label}}",themeAuto:"自动主题",themeAutoDescription:"自动检测终端背景,匹配浅色或深色。",themeDark:"深色主题",themeDarkDescription:"在深色背景上使用紫色强调色。",themeLight:"浅色主题",themeLightDescription:"为白色终端背景使用更高对比度的颜色。",toInterrupt:"中断",waitingForFileEditPermission:"正在等待文件编辑权限……",waitingForShellCommandPermission:"正在等待 shell 命令权限……",waitingForToolPermission:"正在等待工具权限……",permissionDenied:"权限已拒绝",permissionGranted:"已授予权限",waitingForYourAnswer:"正在等待你的回答…",helpUsage:"用法",helpOptions:"选项",helpCommands:"命令",helpSlashCommands:"斜杠命令",helpKeyboardShortcuts:"键盘快捷键",helpExamples:"示例",helpLinks:"链接",stashed:"已暂存",tasteOn:"Taste 开启",tasteOff:"Taste 关闭",tasteOffByok:"Taste 关闭(byok)",enterToOpen:"回车打开",arrowDownToManage:"↓ 管理",updatedColon:"已更新:",updateAvailableColon:"有可用更新:",providerColon:"提供方:",bashModeHint:"! 进入 Bash 模式",sharedColon:"已分享:",copiedToClipboardParen:"(已复制到剪贴板)",unknownProviderRunConnectToSeeAvailableProviders:"未知提供方 '{{v0}}'。运行 /connect 查看可用提供方。",doesNotUseProviderLoginRunLoginWithoutAProviderForCommandCodeAccountAuth:"{{v0}} 不使用提供方登录。请运行不带提供方的 /login 来登录 Command Code 账户。",providerLoginIsNotAvailableHere:"此处无法登录提供方。",ready:"就绪...",doesNotUseProviderLogoutRunLogoutWithoutAProviderForCommandCodeAccountAuth:"{{v0}} 不使用提供方退出登录。请运行不带提供方的 /logout 来退出 Command Code 账户。",loggedOutOf:"已退出 {{v0}}",noSavedCredentialFound:"未找到已保存的 {{v0}} 凭据",unknownError:"未知错误",failedToLogOutOf:"退出 {{v0}} 失败:{{v1}}",noChangelogAvailableInThisBuild:"此版本没有可用的更新日志。",theChangelogIsEmpty:"更新日志为空。",andEarlierReleasesChangelogAll:"\n\n_…以及 {{v0}} 个更早的版本 · /changelog all_",whatSNew:"**更新内容**\n\n{{v0}}{{v1}}",nothingToCloneYet:"暂无可克隆的内容。",couldnTCloneTheSessionStorageErrorStayingOnTheCurrentSession:"无法克隆会话(存储错误)。将保留当前会话。",clonedToSwitching:"已克隆到 {{v0}},正在切换…",terminalTabTitlesNeedNoSetupTitlesAreSetAutomaticallyViaStandardEscapeSequencesVsCode1117HonorsThemOutOfTheBox:"终端标签页标题无需设置,会通过标准转义序列自动设置(VS Code 1.117+ 默认支持)。",shiftEnterAlreadyWorksNativelyInThisTerminalKittyKeyboardProtocolTheVsCodeKeybindingsOnlyApplyInsideAVsCodeFamilyTerminal:"此终端已原生支持 Shift+Enter(kitty 键盘协议)。VS Code 快捷键设置仅适用于 VS Code 系列终端。",openingInYourBrowser:"正在浏览器中打开 {{v0}}…",failedToOpenBrowser:"无法打开浏览器",nameASkillToRunSkillNameRunSkillsToSeeWhatIsInstalled:"指定要运行的技能:/skill:<name>。运行 /skills 查看已安装的技能。",noSkillNamedRunSkillsToSeeWhatIsInstalled:'没有名为 "{{v0}}" 的技能。运行 /skills 查看已安装的技能。',noTodosInThisSessionYet:"此会话暂无待办事项。",modCommandFailed:"Mod 命令 /{{v0}} 失败:{{v1}}",compactingConversation:"正在压缩对话...",nothingToCopyYetNoReplyInThisSession:"暂无可复制的内容,此会话还没有回复。",copiedTheLastReplyToTheClipboardChars:"已将上一条回复复制到剪贴板({{v0}} 个字符)。",couldNotReachTheClipboardIsThisAHeadlessTerminal:"无法访问剪贴板,此终端是否为无界面环境?",reasoningEffortSetTo:"推理强度已设置为 {{v0}}。",unknownEffortSupported:'未知推理强度 "{{v0}}"。支持:{{v1}}。',provideALevelEGEffortHigh:"请提供强度级别,例如 --effort high。",hasNoAdjustableReasoningEffort:"{{v0}} 的推理强度不可调整。",reasoningEffortSetToFor:"已将 {{v1}} 的推理强度设置为 {{v0}}。",nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage:"暂无可导出的内容,发送第一条消息后才会创建对话记录。",supportedExportFormatsHtmlJsonlMd:"支持的导出格式:.html、.jsonl、.md",exportedSessionTo:"已将 {{v0}} 会话导出到 {{v1}}",exportFailed:"导出失败:{{v0}}",unknownExportExtension:'未知导出扩展名 "{{v0}}"。{{v1}}',keyboardShortcuts:"**键盘快捷键**",noSetupWasFoundToImportLookedForClaudeCodeCodexCursorPiOpencodeAndGeminiCliConfigInYourHomeDirectoryAndThisProject:"未找到可导入的设置(已在主目录和当前项目中查找 Claude Code、Codex、Cursor、Pi、OpenCode 和 Gemini CLI 配置)。",importFailed:"导入失败:{{v0}}",isACustomModelThisMachineServesTheSandboxKeepsItsCurrentModel:"{{v0}} 是此计算机提供的自定义模型,云端会话将保留当前模型。",failedToSetModel:"无法设置模型",unknownModelOpeningTheModelPickerSoYouCanChoose:'未知模型 "{{v0}}",正在打开模型选择器。',provideAModelEGModelGpt5:"请提供模型,例如 --model gpt-5。",unknownModelRunWithListModelsToSeeTheOptions:'未知模型 "{{v0}}"。使用 --list-models 查看可用模型。',note:"(注意:{{v0}})",defaultModelSetTo:"默认模型已设置为 {{v0}}。{{v1}}",tryRcRcStatusRcDefaultRcAutoAcceptRcYoloRcOffRcTelegramOffRcDiscordOffRcTokenBotTokenRcUserId:"试试:/rc · /rc status · /rc default · /rc auto-accept · /rc yolo · /rc off · /rc telegram off · /rc discord off · /rc token <bot-token> · /rc user <id>",notSetUpYetRunRcAndItWalksYouThroughIt:"尚未设置。运行 /rc 按步骤完成设置。",rcOnlyWorksAtTheTerminalTheBotCannotReconfigureItselfFromTheChatStatusAndStopWorkFromHere:"/rc 只能在终端中使用。机器人无法通过聊天重新配置自身。此处可使用 /status 和 /stop。",itNeverAsksBeforeEditingFilesOrRunningCommands:"编辑文件或运行命令前不会询问",itEditsFilesOnItsOwnAndAsksInTheChatBeforeRunningCommands:"自动编辑文件,运行命令前会在聊天中询问",itAsksYouInTheChatBeforeEachNewTool:"每次使用新工具前都会在聊天中询问",remote:"远程:{{v0}}",justNow:"刚刚",mAgo:"{{v0}} 分钟前",hAgo:"{{v0}} 小时前",startedPid:" 启动于 {{v0}} · pid {{v1}}",anotherSessionHasTheBot:"另一个会话正在使用机器人:",runRcToTakeItOver:"运行 /rc 接管。",onViaInMode:"已通过 {{v0}} 开启 {{v1}} 模式,{{v2}}",remoteControl:"远程控制:{{v0}}",tokenAllowedUser:" {{v0}} 令牌:{{v1}} · 允许的用户:{{v2}}",credentials:" 凭据:{{v0}}",remoteControlIsNotRunning:"远程控制未运行。",remoteControlStopped:"远程控制已停止。",remoteControlStoppedNothingOfMineLeftInTheChat:"远程控制已停止。聊天中已没有我的消息。",remoteControlStoppedAndMessageSClearedFromTheChatYourOwnMessagesStayBecauseABotCanOnlyDeleteItsOwnAndOnlyFor48Hours:"远程控制已停止,已从聊天中清除 {{v0}} 条消息。你的消息会保留,因为机器人只能删除自己在 48 小时内发送的消息。",remoteControlMovedToAnotherSessionWhichTookOverTheBotRunRcHereToTakeItBack:"另一个会话已接管机器人。运行 /rc 将其接管回来。",skippedMessageSQueuedWhileNoSessionWasConnected:"已跳过未连接会话时排队的 {{v0}} 条消息。",theBotIsAttachedToAnotherSessionRunRcAndPickTakeItOverToMoveItHere:'机器人已连接到另一个会话:\n{{v0}}\n\n运行 /rc 并选择"接管",将其移到此会话。',theBotIsAttachedToAnotherSessionRunRcToTakeItOver:"机器人已连接到另一个会话。运行 /rc 接管。",discordDisconnected:"Discord 已断开连接:{{v0}}",remoteControlIsOnSendAMessageHereOrOnToContinueOrRcToDisconnect:"远程控制已开启。在此处或 {{v0}} 中发送消息继续,或运行 /rc 断开连接。",restartingRemoteControlWithTheNewSettings:"正在使用新设置重启远程控制…",isNotConnectedIsRunRcOffToStopThatOne:"{{v0}} 未连接,当前连接的是 {{v1}}。运行 /rc {{v2}} off 将其停止。",tryRcOffOrRcToConnect:"试试 /rc {{v0}} off,或运行 /rc 连接。",provideTheBotTokenRcTokenBotToken:"请提供机器人令牌:/rc token <bot-token>",botTokenSavedTo:"{{v0}} 机器人令牌已保存到 {{v1}}。",provideYourNumericDiscordIdRcUserIdInDiscordTurnOnSettingsDeveloperDeveloperModeThenRightClickYourNameCopyUserId:"请提供 Discord 数字用户 ID:/rc user <id>。在 Discord 中打开 设置 → 开发者 → 开发者模式,然后右键点击你的名字 → 复制用户 ID。",provideYourNumericTelegramIdRcUserIdMessageUserinfobotOnTelegramAndItRepliesWithTheNumber:"请提供 Telegram 数字用户 ID:/rc user <id>。在 Telegram 中向 @userinfobot 发送消息即可获取。",allowedUserSetTo:"允许的 {{v0}} 用户已设置为 {{v1}}。",unknownRcArgument:'未知 /rc 参数 "{{v0}}"。{{v1}}',nothingToNameYetSendAMessageFirstOrUseRenameName:"暂无可命名的内容,请先发送消息或使用 /rename <name>。",couldNotGenerateATitleTryRenameNameInstead:"无法生成标题。请尝试 /rename <name>。",thisSessionHasNoNameYetUseNameNameToSetOne:"此会话尚未命名。使用 /name <name> 设置名称。",namingSession:"正在命名会话…",currentName:"当前名称:{{v0}}",restoringCheckpoint:"正在恢复检查点...",notCreatedYet:"{{v0}}(尚未创建)",noActiveSession:"没有活动会话。",sessionIdCurrentSessionFile:"会话 ID:{{v0}}\n当前会话文件:{{v1}}",useConfigKeyValueEGConfigThemeDark:"使用 --config key=value,例如 --config theme=dark。",set:"已设置 {{v0}} = {{v1}}。",couldNotSetConfig:'无法设置配置 "{{v0}}"。',requiresTheGithubCliGhHttpsCliGithubCom:"需要 GitHub CLI(gh):https://cli.github.com",nothingToShareYetTheTranscriptIsCreatedOnTheFirstMessage:"暂无可分享的内容,发送第一条消息后才会创建对话记录。",supportedGistFormatsHtmlJsonlMd:"支持的 gist 格式:html、jsonl、md",unknownGistFormat:'未知 gist 格式 "{{v0}}"。{{v1}}',ghGistCreateDidNotReturnAUrl:"gh gist create 未返回 URL:{{v0}}",sharedSessionGist:"已分享会话 gist:{{v0}}",runGhAuthLogin:"{{v0}},请运行 gh auth login",shareFailed:"分享失败:{{v0}}",creatingShareLink:"正在创建分享链接...",removingShareLink:"正在删除分享链接...",withEffort:"{{v0}},推理强度 {{v1}}",theSandboxIsNotConnectedYetWaitForTheConnectedToSandboxLineOrItsErrorThenSendAgain:'云端会话尚未连接。请等待"已连接到云端"提示或错误信息,然后重新发送。',unknownThemeOptions:'未知主题 "{{v0}}"。选项:{{v1}}。',provideAThemeEGThemeAuto:"请提供主题,例如 --theme auto。",themeSetTo:"主题已设置为 {{v0}}。",copiedToClipboard:"(已复制到剪贴板)",traceId:"追踪 ID:{{v0}}{{v1}}",traceIdNotGeneratedSendAMessageFirst:"尚未生成追踪 ID,请先发送一条消息",noTraceIdRequestTracingIsOffThisSession:"没有追踪 ID,此会话未启用请求追踪。",alreadyAtThisPoint:"已在此位置",navigatedToSelectedPoint:"已导航到所选位置",failedToNavigate:"导航失败:{{v0}}",failedToSetLabel:"无法设置标签:{{v0}}",noWorktreesFound:"未找到工作树。",main:"{{v0}}(主工作树)",detached:" [游离]",worktrees:"工作树:",switchWithWorktreeName:"使用 /worktree <name> 切换。",worktreeRequiresAGitRepository:"/worktree 需要 git 仓库。",usageWorktreeRemoveName:"用法:/worktree remove <name>",canTRemoveTheWorktreeYouReInSwitchAwayFirstThenRemoveIt:"无法删除当前工作树。请先切换到其他工作树,再删除。",noWorktreeNamed:'没有名为 "{{v0}}" 的工作树。',couldnTRemoveCommitOrStashChangesOrRemoveItManuallyWithGitWorktreeRemoveForce:'无法删除 "{{v0}}":{{v1}}。请提交或暂存更改,或手动运行:git worktree remove --force {{v2}}',removedWorktree:'已删除工作树 "{{v0}}"。',couldnTCreateWorktree:"无法创建工作树:{{v0}}",alreadyInWorktree:'已在工作树 "{{v0}}" 中。',created:"创建时间",reusing:"正在复用",copiedFileS:"(已复制 {{v0}} 个文件)",includeCopyFailureS:"({{v0}} 个文件复制失败)",worktreeSwitchingAFreshSessionStartsInTheWorktreeThisOneStaysResumable:'{{v0}}工作树 "{{v1}}"{{v2}}{{v3}}。正在切换…(将在此工作树中启动新会话,当前会话仍可恢复)。',addedToDirectoryScope:"已将 {{v0}} 添加到目录范围",isNoLongerInWorkspaceScope:"{{v0}} 已不在工作区范围内",removedFromDirectoryScope:"已从目录范围中移除 {{v0}}",addDirectoryToWorkspace:"添加目录到工作区",commandCodeWillBeAbleToReadFilesInThisDirectoryAndMakeEditsWhenAcceptEditsModeIsOn:"Command Code 可以读取此目录中的文件,并在接受编辑模式下进行修改。",addedDirectories:"已添加的目录",noneYet:"暂无",path:"路径",examplesSharedDocsAbsPath:"示例:../shared ~/docs /abs/path",suggestions:"建议",designComplete:"/design {{v0}} 已完成",enterToRunEscToDismiss:"Enter 运行 · Esc 关闭",runDesignManually:"手动运行 /design",skip:"跳过",completeBrief:"完整需求",ifTheTargetGoalAudienceOrArtifactIsClearActWithoutAsking:"目标、目的、受众或产物明确时,直接执行。",composition:"布局",chooseLayoutFromTheWorkPatternMonitorOperateCompareConfigureLearnDecideOrExplore:"根据工作方式选择布局:监控、操作、比较、配置、学习、决策或探索。",scope:"范围",broadPromptsGetTheFullModePassNarrowPromptsStayNarrow:"宽泛的请求执行完整模式流程,具体的请求保持范围明确。",truth:"真实性",onlyClaimChangesThatExistInFilesAndAreVisibleOrVerifiable:"仅报告已写入文件且可见或可验证的更改。",templates:"模板",designHtmlAndReportHtmlAreDocumentationTemplatesNotUiInspiration:"design-html 和 report-html 是文档模板,不是界面设计参考。",reports:"报告",followUpModesReadMarkdownReportsApplyRelevantFindingsThenStillRunTheirOwnFullModePass:"后续模式读取 Markdown 报告,应用相关发现,然后执行自身完整流程。",use:"用法",designLtModeGtQuotTargetOrRequestQuot:'/design <mode> "目标或请求"',designQuotFreeformRequestQuotAlsoWorksTheClosestModeIsInferred:'也可以使用 /design "自由形式请求",会自动推断最接近的模式。',modes:"模式",workingRules:"工作规则",quickExamples:"快速示例:",pressEscToCloseTypeDesignHelpAnytimeToReturn:"按 Esc 关闭。随时输入 /design help 返回。",loading:"正在加载",oopsSomethingWentWrong:"出错了:",apiKey:"API 密钥:",pasteYourApiKey:"粘贴 API 密钥...",checkingApiKeyWithServer:"正在向服务器验证 API 密钥...",ctrlCToCancel:"Ctrl+C 取消",signInToCommandCode:"登录 Command Code",key:"密钥",storedInAuthJson:"存储于 auth.json",overrides:"· 覆盖 {{v0}}",noKeyTheEndpointAsksForNone:"无需密钥,端点不要求认证",noKeyYetRequestsFailUntilOneIsAdded:"尚无密钥,添加前请求会失败",updateModels:"更新模型",delete:"删除",close:"关闭",save:"保存",replaceKey:"替换密钥",clear:"清除",addKey:"添加密钥",storeKey:"存储密钥",isNotInProvidersJson:"providers.json 中没有 '{{v0}}'",theModelRegistry:"模型注册表",couldnTFetchModels:"无法获取模型:{{v0}}",theEndpoint:"端点",config:"· 配置:",remove:"移除 {{v0}}?",itsEntryModelsAndStoredKeyGoWithIt:"将同时移除其条目、模型和存储的密钥",remove2:"移除",anyOtherKeyKeepsIt:"按其他任意键保留",deletesTheEntryFrom:"从以下文件删除条目:",andClearsItsStoredKey:"并清除其存储的密钥。",removing:"正在移除 '{{v0}}'…",refetchingModelsFor:"正在重新获取 '{{v0}}' 的模型…",removed:"已移除 {{v0}}",providerDeletedFrom:"提供方已从以下文件删除:",storedKeyClearedItsModelsLeftModel:"· 存储的密钥已清除 · 其模型已从 /model 移除",itOwnedYourActiveModelSwitchedToYourLaneSDefault:"· 当前模型属于此提供方,已切换到当前线路的默认模型",back:"返回",modelsUpdated:"模型已更新:",declaredFrom:"声明来源:",theRefetch:"重新获取的结果",keySavedFor:"已为 {{v0}} 保存密钥",storedInCommandcodeAuthJson:"存储于 ~/.commandcode/auth.json",pickAModel:"选择模型",storedKeyClearedFor:"已清除 {{v0}} 存储的密钥",itsModelsStayListed:"其模型仍列在列表中",theProvidersJsonKeyAppliesAgain:",providers.json 中的密钥重新生效",requestsWillNeedAKeyAgain:";请求将再次需要密钥",couldNotUpdate:"无法更新 {{v0}}",checkThatCommandcodeIsWritableOrSetApikeyToAEnvVarReferenceInProvidersJson:'请检查 ~/.commandcode 是否可写,或在 providers.json 中将 "apiKey" 设置为 "$ENV_VAR" 引用',apiKeyFor:"{{v0}} 的 API 密钥",savedToCommandcodeAuthJsonUnderRequestsGoStraightToThisProviderWithYourKey:"保存在 ~/.commandcode/auth.json 的 '{{v0}}' 下。请求会使用你的密钥直接发送到此提供方",key2:"密钥:",pasteYourApiKey2:"粘贴 API 密钥…",openaiCompatible:"兼容 OpenAI",chatCompletionsOllamaVllmLmStudioMostHostedApis:"/chat/completions · Ollama、vLLM、LM Studio 及大多数托管 API",responsesEndpointsSpeakingTheOpenaiResponsesApi:"/responses · 使用 OpenAI Responses API 的端点",anthropicWire:"Anthropic 协议",v1MessagesEndpointsSpeakingTheClaudeMessagesApi:"/v1/messages · 使用 Claude Messages API 的端点",theIdYouTyped:"你输入的 ID",apiRootNoRoute:"API 根地址,不含路由",referenceNeverARawKey:"引用,不存储原始密钥",editAnytimeReloadsLive:"随时编辑,实时重新加载",prefilledForEditItOrPressEnterToAccept:"已为 {{v0}} 预填,修改或按 Enter 确认",theMessagesApiRootV1IsAddedOnTheWireWhenMissing:"Messages API 根地址,缺少 /v1 时会自动添加",theApiRootRequestsGoToResponsesIsAddedOnTheWire:"请求发送到的 API 根地址,会自动添加 /responses",theApiRootRequestsGoToMostEndInV1:"请求发送到的 API 根地址,通常以 /v1 结尾",alreadyExistsSelectItInConnectToManageIt:"'{{v0}}' 已存在,请在 /connect 中选择并管理。",lowercaseLettersDigitsDotsDashesAndUnderscoresOnly:"仅允许小写字母、数字、点、连字符和下划线。",isABuiltInSubscriptionLaneTryApi:"'{{v0}}' 是内置订阅线路,请尝试 '{{v1}}-api'。",thatIsNotAUrlIncludeTheSchemeHttp:"这不是 URL,请包含协议(http…)。",httpOrHttpsUrlsOnly:"仅支持 http:// 或 https:// URL。",removedTheEndpointIsTheApiRoot:"已移除 {{v0}},端点应为 API 根地址",theKeyCouldNotBeStoredCheckThatCommandcodeIsWritable:"无法存储密钥,请检查 ~/.commandcode 是否可写。",addAProvider:"添加提供方 · {{v0}}",addAProvider2:"添加提供方",askingWhichModelsItServes:"正在向 {{v0}} 查询可用模型…",writingToCommandcodeProvidersJson:"正在将 '{{v0}}' 写入 ~/.commandcode/providers.json…",isSetUp:"'{{v0}}' 已设置",declared:"已声明 {{v0}} {{v1}}{{v2}}",providerAddedTo:"提供方已添加到",editItAnytimeItReloadsLive:"。可随时编辑,实时重新加载。",addingDidnTFinish:"添加 '{{v0}}' 未完成",addingAProviderTheShortVersion:"添加提供方:简要说明",docs:"文档:",anyKeyToGoBack:"按任意键返回",providerIdNamesTheEntryIn:"• 提供方 ID 用于命名以下文件中的条目:",modelsSelectAsIdModel:"· 模型通过 id/model 选择",endpointIsTheBaseUrlRequestsGoToMostEndInV1:"• 端点是请求发送到的基础 URL,通常以 /v1 结尾",pastedKeysGoToAuthJsonProvidersJsonOnlyEverHoldsEnvVarOrCommandReferences:"• 粘贴的密钥存储在 auth.json 中,providers.json 仅存储 $ENV_VAR 或 !command 引用",noKeyNeededPressEnterOnTheEmptyKeyFieldLocalServers:"• 无需密钥?在空密钥字段上按 Enter(本地服务器)",modelsYouCanImportTheFetchedListProbeTheEndpointAposSModelsRouteOrTypeIdsByHandIdsYouLeaveUndeclaredStillRunAsIdModel:"• 模型:可导入获取的列表、探测端点的 /models 路由,或手动输入 ID。未声明的 ID 仍可通过 id/model 运行",the:"•",fileIsYoursEditItAnytimeItReloadsLiveManageItFromConnect:"文件由你管理,可随时编辑并实时重新加载,也可通过 /connect 管理",whatItWrites:"写入内容:",couldnTListModelsAutomatically:"无法自动列出模型:{{v0}}",whichModelsDoesServe:"{{v0}} 提供哪些模型?",commaSeparatedExactIds:"以逗号分隔的准确 ID",models:"模型:",keysLiveInCommandcodeAuthJsonNeverInProvidersJson:"密钥存储在 ~/.commandcode/auth.json 中,不会存储在 providers.json 中",emptyEnterKeylessLocalServers:"空字段按 Enter = 无密钥(本地服务器)",pasteItOrPressEnterIfNoneIsNeeded:"粘贴密钥,或在无需密钥时按 Enter",whatDoesTheEndpointSpeak:"端点使用哪种协议?",switch:"切换",continue:"继续",help:"帮助",baseUrl:"基础 URL:",pickAKnownProviderBelowOrTypeYourOwnId:"在下方选择已知提供方,或输入自定义 ID。",pickFromTheList:"从列表选择",providerId:"提供方 ID:",more:"↑ 还有 {{v0}} 项 ·",more2:"↓ 还有 {{v0}} 项",apiKey2:"API 密钥",manualApiKey:"手动输入 API 密钥",loggedInAs:"已登录为 {{v0}}",loggedInSuccessfully:"登录成功",authenticationCancelledByUser:"用户已取消认证。",failedToOpenBrowserPleaseManuallyOpen:"无法打开浏览器。请手动打开:{{v0}}",loggingIntoCopilotUseThisCode:"正在登录 Copilot,请使用此代码:{{v0}}{{v1}}",authenticationFailed:"认证失败",thisWillGetAGithubSignInCode:"将获取 GitHub 登录代码。",thisWillOpenYourBrowserToSignInWith:"将打开浏览器以登录 {{v0}}。",signInTo:"登录 {{v0}}",cancel:"取消",gettingSignInCode:"正在获取登录代码…",submit:"提交",login:"登录:",openAuthPage:"打开认证页面 ↗",authorizationCode:"授权码",pasteCodeHere:"在此粘贴代码...",pressEnterToOpenGithubAndPasteTheCodeThere:"按 Enter 打开 GitHub 并粘贴代码",pressEnterToOpenYourBrowser:"按 Enter 打开浏览器",waitingForAuthorization:"正在等待授权…",open:"打开:",alreadyConnected:"已连接",alreadyAuthenticated:"已认证",connecting:"正在连接 {{v0}}...",connectedTo:"{{v0}} 已连接到 {{v1}}",failed:"{{v0}} 失败:{{v1}}",authenticating:"正在认证 {{v0}}...",authenticatedWith:"{{v0}} 已通过 {{v1}} 认证",authFailed:"{{v0}} 认证失败:{{v1}}",disabling:"正在禁用 {{v0}}...",failedToDisableServerMayNoLongerExistInScope:"{{v0}} 无法禁用 {{v1}},服务器可能已不在 {{v2}} 范围中",disabled:"{{v0}} 已禁用 {{v1}}",enabling:"正在启用 {{v0}}...",failedToEnableServerMayNoLongerExistInScope:"{{v0}} 无法启用 {{v1}},服务器可能已不在 {{v2}} 范围中",enabled:"{{v0}} 已启用 {{v1}}",manageMcpServers:"管理 MCP 服务器",loading2:"正在加载...",navigateEnterToSelectEscToCancel:"↑↓ 导航 · Enter 选择 · Esc 取消",thisWillRemoveTheServerFrom:"将从以下范围的配置中移除此服务器:",config2:"。",yesRemove:"是,移除",cancel2:"取消",navigateEnterToSelectEscToGoBack:"↑↓ 导航 · Enter 选择 · Esc 返回",escToClose:"Esc 关闭",navigateEnterToSelectEscToClose:"↑↓ 导航 · Enter 选择 · Esc 关闭",noMcpServersConfigured:"未配置 MCP 服务器。",use2:'使用 "',mcpAddToAddAServer:'mcp add" 添加服务器。',viewMcpDocs:"查看 MCP 文档 ↗",showing:"显示",of:"/",more3:"· ↑ 更多",more4:"· ↓ 更多",failedToDiscoverMemoryFiles:"无法发现记忆文件",errorOpeningMemoryFilePleaseEnsureYouHaveAnEditorSetUp:"打开记忆文件时出错。请确认已设置编辑器。",selectMemoryToEdit:"选择要编辑的记忆:",loadingMemoryFiles:"正在加载记忆文件...",toNavigateEnterToEditEscToCancel:"↑/↓ 导航 · Enter 编辑 · Esc 取消",compactNormalDefault:"常规压缩(默认)",summarizeSessionWhenContextLimitReached:"达到上下文限制时总结会话。",compactFast:"快速压缩",fastTieredCompactionHigherQualityUsesMoreTokens:"快速分层压缩。质量更高,使用更多 token。",selectACompactModeToCompactSessions:"选择会话压缩模式",chooseHowCommandCodeHandlesAutomaticContextCompaction:"选择 Command Code 自动压缩上下文的方式。",press:"按",toCancel:"取消",listingOnlyModelsWithAZeroDataRetentionUpstream:"仅列出上游支持零数据保留的模型。",selectModel:"{{v0}} › 选择模型",pickAModelForThisTaskOrResetItToTheDefault:"为此任务选择模型,或恢复为默认模型。",whyBackgroundRequests:"为什么会有后台请求?",typeToSearchNavigateEnterSelect:"输入搜索 · ↑/↓ 导航 · Enter 选择",escToClear:"· Esc 清除",escBack:"· Esc 返回",typeToSearchModels:"输入以搜索模型...",loadingAvailableModels:"正在加载可用模型…",default:"默认",default2:"(默认)",free:"(免费)",default3:"{{v0}}(默认)",selectModel2:"选择模型",switchBetweenTheAvailableModelsSetsTheDefaultForNewSessionsOtherOpenSessionsAreUnaffected:"切换可用模型,并设置新会话的默认模型;其他已打开的会话不受影响。",typeToSearchNavigateShiftJumpProviderEnterToSelect:"输入搜索 · ↑/↓ 导航 · Shift+↑/↓ 跳转提供方 · Enter 选择",escToCancel:"· Esc 取消",providerLoginRequiredRunConnectToAuthenticate:"需要登录提供方。运行 /connect 完成认证。",noModelsMatch:'没有匹配 "{{v0}}" 的模型',notConnected:"○ 未连接",needsAKey:"○ 需要密钥",recommended:"{{v0}}(推荐)",byokAddYourOwnProvider:"(BYOK)添加自己的提供方",connect:"连接",connectToAiProvidersAndSeeCurrentlyConnectedProviders:"连接 AI 提供方并查看当前连接的提供方",navigateEnterSelectEscClose:"↑/↓ 导航 · Enter 选择 · Esc 关闭",needsAttention:"需要处理:",oneEntry:"一个条目",someEntries:"部分条目",didNotLoadAsWritten:"未按配置加载:",and:"…还有",more5:"项",selectReasoningEffortFor:"选择 {{v0}} 的推理强度",navigateEnterToSelectEscToGoBack2:"↑/↓ 导航 · Enter 选择 · Esc 返回",driveThisSessionFromATelegramBot:"通过 Telegram 机器人控制此会话。",aThreadPerSessionSoSeveralCanRunAtOnce:"每个会话一个讨论串,可同时运行多个会话。",asksBeforeEachNewToolApproveOrDenyInTheChat:"使用每个新工具前询问。在聊天中批准或拒绝。",readsAndWritesFilesAsksBeforeRunningCommands:"读取和写入文件,运行命令前询问。",dangerouslyBypassesEveryPermissionNeverAsks:"危险地绕过所有权限检查,不再询问。",disconnect:"断开连接",stopTheBotTheSessionKeepsRunningHere:"停止机器人,会话仍在此处运行。",takeItOver:"接管",thatSessionDisconnectsThisOneTakesTheBot:"断开另一个会话,由此会话接管机器人。",leaveItAlone:"保持不变",thatSessionKeepsTheBot:"另一个会话继续使用机器人。",keepTheChatHistory:"保留聊天记录。",disconnectAndClearAllChatHistory:"断开连接并清除所有聊天记录",deleteTheBotSMessagesYoursStay:"删除机器人的消息,保留你的消息。",isDigitsOnly:"{{v0}} 只能包含数字。",createTheBot:"创建机器人","1OpenTelegramAndSearchForBotfather":"1. 打开 Telegram 并搜索 @BotFather","2SendItNewbot":"2. 发送 /newbot","3ItAsksForANameThenAUsernameAnyNameWillDo":"3. 按提示输入名称和用户名。名称可任意填写;",theUsernameHasToEndInBotEGYournameCmdBot:'用户名必须以 "bot" 结尾(例如 yourname_cmd_bot)',"4ItRepliesWithATokenCopyItAndPasteItHere":"4. 收到令牌后,复制并粘贴到此处",thatDoesNotLookLikeABotTokenItIsANumberAColonThenALongString:"这不像机器人令牌,应为数字、冒号和一段长字符串。",sayWhoMayUseIt:"指定允许使用的用户","1InTelegramSearchForUserinfobot":"1. 在 Telegram 中搜索 @userinfobot","2SendItStart":"2. 发送 /start","3ItRepliesWithYourUserIdPasteThatNumberHere":"3. 收到用户 ID 后,将数字粘贴到此处",yourTelegramId:"你的 Telegram ID","1OpenDiscordComDevelopersApplicationsAndLogIn":"1. 打开 discord.com/developers/applications 并登录","2TopRightClickNewApplicationGiveItAnyName":'2. 点击右上角 "New Application",输入任意名称,',tickTheTermsBoxClickCreate:'勾选条款复选框,点击 "Create"',"3InTheLeftSidebarClickBot":'3. 在左侧栏点击 "Bot"',"4ClickResetTokenConfirmThenCopyDiscordShows":'4. 点击 "Reset Token",确认后点击 "Copy"。令牌仅显示一次,',aTokenOnceIfYouLoseItResetItAgain:"丢失后需重新生成","5StillOnThatPageScrollToPrivilegedGatewayIntents":'5. 在同一页面向下找到 "Privileged Gateway Intents",',andTurnOnMessageContentIntentClickSaveChanges:'开启 "Message Content Intent",点击 "Save Changes"',"6PasteTheTokenHere":"6. 将令牌粘贴到此处","1InTheDiscordAppNotThePortalClickTheGearBy":"1. 在 Discord 应用中(不是开发者门户),点击名字旁的齿轮,",yourNameDeveloperTurnOnDeveloperMode:'选择 "Developer",开启 "Developer Mode"',"2RightClickYourOwnNameInAnyChatCopyUserId":'2. 在任意聊天中右键点击自己的名字,选择 "Copy User ID"',"3PasteThatNumberHere":"3. 将数字粘贴到此处",yourDiscordId:"你的 Discord ID",inviteTheBotThenPickItsChannel:"邀请机器人并选择频道","1BackInThePortalLeftSidebarOauth2":'1. 返回门户,在左侧栏选择 "OAuth2"',"2UnderOauth2UrlGeneratorTickTwoScopes":'2. 在 "OAuth2 URL Generator" 下勾选两个范围:',botAndApplicationsCommands:'"bot" 和 "applications.commands"',"3ABotPermissionsBoxOpensUnderneathTickFour":'3. 下方出现 "Bot Permissions",勾选四项:',viewChannelsSendMessages:'"View Channels"、"Send Messages"、',createPublicThreadsSendMessagesInThreads:'"Create Public Threads"、"Send Messages in Threads"',"4AtTheBottomCopyTheGeneratedUrlOpenItInA":'4. 在底部复制 "Generated URL",在浏览器打开,',browserChooseYourServerClickAuthorize:'选择服务器并点击 "Authorize"',"5BackInDiscordRightClickTheChannelTheBotShould":"5. 返回 Discord,右键点击机器人将发送消息的频道,",postInCopyChannelId:'选择 "Copy Channel ID"',"6PasteThatNumberHere":"6. 将数字粘贴到此处",everyRcOpensItsOwnThreadInThatChannelSoSeveral:"每次 /rc 都会在该频道创建独立讨论串,",sessionsCanRunOnOneBotAtTheSameTime:"因此多个会话可以同时使用同一个机器人。",aChannelId:"频道 ID","1OpenTelegramAndFindTheBotYouJustMade":"1. 打开 Telegram 并找到刚创建的机器人",aBotCannotTextYouFirstSoThisIsWhatCreatesTheChat:"机器人无法主动发消息,这一步用于创建聊天。",doneCheckIt:"完成,测试连接",sendsAMessageBackSoYouSeeItWorks:"发送一条消息,以确认连接正常。",skip2:"跳过",nothingReachesTelegramUntilYouDoIt:"完成此步骤前,Telegram 无法收到消息。",thatDoesNotLookLikeABotTokenItHasThreePartsSeparatedByDotsSoMakeSureYouCopiedTheBotTokenNotTheApplicationId:"这不像机器人令牌。令牌由点分隔的三部分组成,请确认复制的是 Bot token,而不是 Application ID。",couldNotSave:"无法保存:{{v0}}",sendingAMessageToYourBot:"正在向机器人发送消息…",theCredentialsAreNotSaved:"凭据尚未保存",telegramHasNoChatYetSendYourBotStartThenTryAgain:"Telegram 尚无聊天。向机器人发送 /start 后重试。",telegramRefused:"Telegram 拒绝请求:{{v0}}",remoteControl2:"远程控制",stepOfOpenTheChat:"{{v0}} · 第 {{v1}} 步,共 {{v2}} 步 · 打开聊天",toGoBack:"返回",stepOf:"{{v0}} · 第 {{v1}} 步,共 {{v2}} 步 · {{v3}}",anotherSessionHasTheBot2:"另一个会话正在使用机器人",clearTheChatOnTheWayOut:"断开时清除聊天记录?",whichPermissionMode:"选择权限模式",runThisSessionFromAChatAppCurrently:"通过聊天应用控制此会话 · 当前 {{v0}}",to:"以",goBack:"返回",telegramAllowsOneSessionPerBotSoOnlyOneCanHaveIt:"Telegram 的每个机器人只能由一个会话使用。",noActiveConversationStartChattingFirst:"没有活动对话,请先开始聊天。",failedToAnalyzeContext:"无法分析上下文。",toReturnToConversation:"返回对话",context:"上下文",loadingContextAnalysis:"正在加载上下文分析",systemInformation:"系统信息",version:"版本",date:"日期",platform:"平台",hostname:"主机名",user:"用户",cpus:"CPU",cores:"核心",memory:"内存",uptime:"运行时间",home:"主目录",shell:"Shell",terminal:"终端",cpuDetails:"CPU 详情",core:"核心 {{v0}}",network:"网络",core2:"核心",couldNotLoadStatus:"无法加载状态:",gatheringStatus:"正在收集状态…",failedToGatherStatus:"无法收集状态",toSelectEnterToViewXToStopEscToGoBackToFeed:"↑/↓ 选择 · Enter 查看 · x 停止 · ←/Esc 返回对话",toGoBackEscEnterSpaceToCloseXToStop:"← 返回 · Esc/Enter/Space 关闭 · x 停止",shell2:"{{v0}} 个 Shell",monitor:"{{v0}} 个监控任务",noneRunning:"没有运行中的任务",activeShell:"{{v0}} 个运行中的 Shell",activeMonitor:"{{v0}} 个运行中的监控任务",status:"状态:",runtime:"运行时间:",script:"脚本:",output:"输出:",noOutputYet:"暂无输出。",line:"行",monitorDetails:"监控任务详情",shellDetails:"Shell 详情",background:"后台任务",monitors:"监控任务",shells:"Shell",theme:"{{v0}} 主题",inProgress:"(进行中)",todos:"待办事项",itemsDone:"{{v0}} 项 · {{v1}} 项已完成",items:"{{v0}} 项",noOutput:"(无输出)",executing:"正在执行…",see:"查看",context2:"{{v0}}上下文{{v1}}",remaining:"剩余",estimated:"(估算)",tokens:" token",hiddenMessagesToExpandMore:"{{v0}} 条隐藏消息 [{{v1}} 展开更多]",base:"(基础分支:{{v0}})",branch:"(分支:{{v0}})",cloudSandbox:"云端",withEffort2:" · 推理强度 {{v0}}",perTaskModelOverridesRevertedToZdrSafeDefaultsRun:"任务模型覆盖已恢复为 ZDR 安全默认值。运行",toReviewEscToDismiss:"查看 · Esc 关闭",escToDismiss:"· Esc 关闭",skippedRun:"已跳过。随时运行",or:"或",anytime:"。",confidence:"[置信度 {{v0}}]",skill:"{{v0}}技能{{v1}}",loaded:"已加载",goalAchieved:"目标已达成",goal:"目标:",forked:"⑂ 已创建分支。",youReNowIn:"当前位于",youReNowInTheNewSession:"当前位于新会话",originalSessionSavedResumeToSwitchBack:"原会话已保存 · /resume 切换返回",sessionId:"会话 ID:",running:"运行中(",visit:"访问",forUsageAndBilling:"查看用量和账单",account:"账户:",run:",运行",model:"模型",branch2:"分支",worktree:"工作树",repository:"仓库:",pullRequest:"拉取请求:",directory:"目录",skills:"技能",agents:"代理",system:"系统",proxy:"代理服务器",todos2:"{{v0}}待办{{v1}}",ctrlXToExpand:"Ctrl+X 展开",ctrlXToManage:"Ctrl+X 管理",completed:"已完成",more6:"…还有 {{v0}} 项",rejectedUpdateTo:"已拒绝更新",updated:"已更新",with:"附带",addition:"行新增",and2:"和",removal:"行删除",thoughtForSecond:"思考了 {{v0}} 秒",oToExpand:"{{v0}}+O 展开",usingYourTaste:"正在使用你的 Taste",packageOf:"包:",runningInBackground:"在后台运行",interrupted:"已中断",done:"完成",question:"问题",linesOToExpand:"…还有 {{v0}} 行 [{{v1}}+O 展开]",oToExpand2:"… [{{v0}}+O 展开]",moreOToExpand:"…(还有 {{v0}} 行)[{{v2}}+O 展开]",emptyFile:"(空文件)",processing:"正在处理…",selected:"已选择",from:"来自",in:"位于",toolPermission:"工具权限",needsToRun:"{{v0}} 需要运行 ",navigateEnterSelect:"↑/↓ 导航 · Enter 选择",docs2:"文档 ↗",run2:"· 运行",toBypassAllPermissions:"绕过所有权限检查(",makeThisEditTo:"对以下文件进行此编辑:",editFile:"编辑文件",createFile:"创建文件",deleteFile:"删除文件",executeFile:"执行文件",fileOperation:"文件操作",doYouWantTo:"是否要",useShiftTabToEnableAcceptEdits:"使用 Shift+Tab 启用接受编辑",shellCommandAllowed:"已允许 Shell 命令",shellCommandDenied:"已拒绝 Shell 命令",processTerminationAllowed:"已允许终止进程",processTerminationDenied:"已拒绝终止进程",toolCallAllowed:"已允许工具调用",toolCallDenied:"已拒绝工具调用",allowOperation:"允许 {{v0}} 操作",fileOperationAllowed:"已允许文件操作",fileOperationDenied:"已拒绝文件操作",moreLineCtrlOToExpand:"…还有 {{v0}} 行 · Ctrl+O 展开",plan:"计划",ctrlOToCollapse:"Ctrl+O 收起",lineHidden:"─── ✂ ─── 隐藏 {{v0}} 行 ",preview:"预览","1Submit":"1. 提交","2Cancel":"2. 取消",review:"审阅",youHaveNotAnsweredAllQuestions:"⚠ 你尚未回答所有问题",noAnswer:"未回答",toGoBackAndEdit:"返回并编辑",typeSomething:"输入内容...",notes:"备注:",addNotesOnThisDesign:"添加对此设计的备注…",attached:"已附加,",submit2:"提交",next:"下一步",enterToSelectArrowKeysToNavigate:"Enter 选择 | 方向键导航 |",escToCancel2:"Esc 取消","19QuickSelectNNotesCChatEscToCancel":"1–9 快速选择 | n 备注 | c 聊天 | Esc 取消",answersSubmitted:"答案已提交",executeShellCommand:"执行 Shell 命令",needsToExecute:"{{v0}} 需要执行 ",navigateEnterSelectExplain:"↑/↓ 导航 · Enter 选择 · {{v0}} 解释",workingDirectory:"工作目录:",toExplainThisCommand:"解释此命令",explainingThisCommand:"正在解释此命令…",couldnTGenerateAnExplanationPress:"无法生成解释,请按",toRetry:"重试",searchingFor:'正在搜索:"{{v0}}"',files:"文件:{{v0}}",noFilesFoundMatching:'未找到匹配 "{{v0}}" 的文件',noFilesFoundInThisDirectory:"此目录中未找到文件",navigate:"↑↓ 导航",toOpenFolder:"→ 打开文件夹",enterToSelect:"Enter 选择",connectingToTheSandbox:"正在连接云端…",executing2:"正在执行:{{v0}}",tip:"提示:",askYourQuestion:"输入你的问题...",backgroundFocusedToSelectEnterToViewXToStopEscToGoBackToFeed:"后台任务已聚焦 · ↑/↓ 选择 · Enter 查看 · x 停止 · ←/Esc 返回对话",saveAndCloseTheEditorToContinue:"保存并关闭编辑器以继续...",availableShortcuts:"可用快捷键:",forCommands:"/ 打开命令菜单",forFilePaths:"@ 引用文件路径",toToggleAcceptEdits:"切换接受编辑",doubleTapEscToClearInput:"双击 Esc 清空输入",forNewline:"换行",ctrlGToOpenInEditor:"Ctrl+G 在编辑器中打开",ctrlZToUndo:"Ctrl+Z 撤销",ctrlSToStashPrompt:"Ctrl+S 暂存提示词",toPasteImage:"粘贴图片",pastesTextOnlyIn:"仅粘贴文本于",enterYourInput:"输入内容…",queued:"队列({{v0}})",readingClipboard:"正在读取剪贴板…",workedFor:"{{v0}} 工作了 {{v1}}","1YesDelete":"1. 是,删除","2NoCancel":"2. 否,取消","1ViewAgent":"1. 查看代理","2DeleteAgent":"2. 删除代理","2Back":"2. 返回","3Back":"3. 返回",failedToDeleteAgent:"删除代理失败:{{v0}}",editFunctionalityComingSoon:"编辑功能即将推出...",deleteAgent:"删除代理",areYouSureYouWantToDeleteTheAgent:"确定要删除代理 {{v0}} 吗?",toNavigate:"导航 ·",toSelect:"选择 ·","1CreateAgentsWithCommandCodeRecommended":"1. 使用 Command Code 创建代理(推荐)","2CreateManually":"2. 手动创建",loadingAgents:"正在加载代理",agent:"({{v0}} 个代理)",noCustomAgents:"(无自定义代理)",createdAgent:"已创建代理:",userAgents:"用户代理",projectAgents:"项目代理",defaultAgentsReadOnly:"默认代理(只读)",agentsLiveInCommandcodeAgentsProjectAndCommandcodeAgentsAllProjectsEditTheFilesDirectlyAnytime:"代理存储在 .commandcode/agents/(项目)和 ~/.commandcode/agents/(所有项目)中,可随时直接编辑文件。",docs3:"文档:",chooseLocation:"选择位置",agentTypeIdentifier:"代理类型(标识符)",systemPrompt:"系统提示",descriptionTellWhenToUseThisAgent:"描述(告诉 {{v0}} 何时使用此代理)",selectTools:"选择工具",selectReasoningEffort:"选择推理强度",confirmAndSave:"确认并保存",createNewAgent:"创建新代理",createAgentsWithCommandCode:"使用 Command Code 创建代理",askCommandCodeToCreateOrUpdateSubagentsForYouEG:"让 Command Code 帮你创建或更新子代理,例如",createACodeReviewerSubagentThatReviewsDiffsForBugs:'"创建一个 code-reviewer 子代理,检查 diff 中的缺陷"',makeAChangelogAgentThatUsesAFastModel:'"创建一个使用快速模型的更新日志代理"',orEditTheFilesDirectly:"也可直接编辑文件:",commandcodeAgentsThisProject:"• .commandcode/agents/(当前项目)",commandcodeAgentsAllProjects:"• ~/.commandcode/agents/(所有项目)",toGoBackAndJustAsk:"返回并直接提问","1ProjectAgents":"1. 项目({{v0}}/agents/)","2PersonalAgents":"2. 个人(~/{{v0}}/agents/)",enterAUniqueIdentifierForYourAgent:"输入代理的唯一标识符:",thisNameConflictsWithAnExistingToolNamePleaseChooseADifferentName:"此名称与现有工具名称冲突,请选择其他名称。",thisNameIsReservedReservedNames:"此名称为保留名称。保留名称:",eGCodeReviewerUnitTester:"例如 code-reviewer、unit-tester",enterTheSystemPromptForYourAgent:"输入代理的系统提示词:",beComprehensiveForBestResults:"尽量完整以获得更好的效果。",youAreAHelpfulCodingReviewer:"你是一名代码审查助手...",whenShould:"何时应让",useThisAgent:"使用此代理?",eGUseThisAgentWhenYouAreDoneWritingCode:"例如:完成代码编写后使用此代理...",inheritFromSession:"继承会话模型","1InheritFromSessionDefault":"1. 继承会话模型(默认)","2PickASpecificModel":"2. 选择特定模型",pinAModelForThisAgentItWillAlwaysRunOnThisModelIndependentOfTheSessionSModel:"为此代理固定模型。它始终使用此模型,不受会话 /model 设置影响。",currentlyPinned:"当前固定模型:",inheritFollowsModelPinnedAgentsKeepTheirOwnModelAndPromptCache:"继承模式跟随 /model;固定模型的代理保留自身模型和提示词缓存",agentConfigurationIsIncomplete:"代理配置不完整",errorSavingAgent:"保存代理时出错:",unknownErrorOccurred:"发生未知错误",name:"名称:",location:"位置:",tools:"工具:",model2:"模型:",reasoningEffort:"推理强度:",modelDefault:"模型默认值",description:"描述",tells:"(告诉",whenToUseThisAgent:"何时使用此代理):",systemPrompt2:"系统提示词:",toSave:"保存 ·",savingAgent:"正在保存代理…",error:"错误:",individualTools:"单独工具:",continue2:"[ 继续 ]",showAdvancedOptions:"[ 显示高级选项 ]",hideAdvancedOptions:"[ 隐藏高级选项 ]",allToolsSelected:"已选择所有工具",toolsSelected:"个工具已选择",noToolsSelected:"未选择工具",lockedBySettingsLocalJson:"(由 settings.local.json 锁定)",unavailableOnByok:"(BYOK 不可用)",tasteLearningIsOffOnByokModelsSwitchToACommandCodeModelToChangeIt:"BYOK 模型不启用 Taste 学习。切换到 Command Code 模型后可更改。",enabled2:"已启用",disabled2:"已禁用",isLockedBySettingsLocalJsonEditThatFileToChangeIt:"{{v0}} 由 settings.local.json 锁定,请编辑该文件更改。",isAlreadyAtItsDefault:"{{v0}} 已为默认值。",settings:"设置",loadingSettings:"正在加载设置",typeToFilter:"输入筛选",enterToChange:"Enter 更改",tabToReset:"Tab 重置",escToClear2:"Esc 清除",escToClose2:"Esc 关闭",searchSettings:"搜索设置...",noSettingsMatch:'没有匹配 "',skipped:"已跳过",noSkillsFound:"未找到技能",createSkillsIn:"在以下位置创建技能:",user2:"/(用户)",userAgents2:"/(用户,.agents)",project:"/(项目)",projectAgents2:"/(项目,.agents)",spaceToViewIssues:"Space 查看问题 ·",toClose:"关闭",noEditorFoundSetEditorSetxEditorCode:'未找到编辑器。设置 $EDITOR:setx EDITOR "code"',noEditorFoundSetEditorEchoExportEditorCode:"未找到编辑器。设置 $EDITOR:echo 'export EDITOR=\"code\"' >> {{v0}}",clipboardUnavailable:"剪贴板不可用",copiedIssueToClipboard:"已将 {{v0}} 个问题复制到剪贴板",clipboardWriteFailed:"写入剪贴板失败",skipped2:"已跳过",pressCToCopyAllIssues:"按 c 复制所有问题",noIssuesEverySkillLoaded:"没有问题,所有技能均已加载。",cCopyAllIssuesEscBackToSkills:"c 复制所有问题 · Esc 返回技能",escBackToSkills:"Esc 返回技能",off:"[关]",on:"[开]",tokens2:"token",failedToLoadSkills:"无法加载技能",failedToSave:"保存失败:{{v0}}",editorEnvironmentVariable:"$EDITOR 环境变量",failedToOpenSkillInEditor:"无法在编辑器中打开技能",loadingSkills:"正在加载技能...",skill2:"个技能",off2:"关闭",typeToSearchNavigateEnterToToggleTabToEdit:"输入搜索 · ↑/↓ 导航 · Enter 切换 · Tab 编辑",spaceToViewIssues2:"· Space 查看问题",escToClose3:"· Esc 关闭",addSkills:"添加技能:",typeToSearchSkills:"输入以搜索技能...",noSkillsMatch:'没有匹配 "',projectSkills:"项目技能",orAgents:"({{v0}}/{{v1}} 或 .agents/{{v2}})",userSkills:"用户技能",orAgents2:"(~/{{v0}}/{{v1}} 或 ~/.agents/{{v2}})",bundledSkills:"内置技能",shipsWithCommandCode:"(随 Command Code 提供)",thisProject:"当前项目",showInFeed:"在对话中显示",tasteLearning:"Taste 学习",loadingConfiguration:"正在加载配置",learnFromYourInteractions:"从你的交互中学习。",navigateEnterToToggleRResetToDefaultEscToClose:"↑/↓ 导航 · Enter 切换 · r 恢复默认 · Esc 关闭",unavailableOnByok2:"(BYOK 不可用)",setInSettingsLocalJson:"(在 settings.local.json 中设置)",showInFeedOnlyHidesTheNoticesLearningStaysOn:'"在对话中显示"仅隐藏通知,学习仍保持开启。',tasteDataStoredInCommandcodeTasteTasteMd:"Taste 数据存储于 .commandcode/taste/taste.md",thisProjectIsPinnedByCommandcodeSettingsLocalJsonEditThatFileToChangeIt:"此项目由 .commandcode/settings.local.json 固定,请编辑该文件更改。",spendLimits:"消费限额",resetsIn:"· {{v0}} 后重置",usage:"{{v0}}用量{{v1}}",plan2:"{{v0}} 套餐",runningLowKeepGoing:"额度不足?继续使用:",payAsYouGoAtApiCostZeroMarkup:"按 API 成本计费,零加价",biggerLimits:"更高限额",toRetry2:"重试 ·",press2:"按",toClose2:"关闭",notAuthenticatedRunLoginToConnectYourAccount:"未认证。运行 /login 连接账户。",somethingWentWrong:"出错了。",noBillingDataFound:"未找到账单数据。",forUsageDetails:"查看用量详情。",used:"已使用 {{v0}}%",planDetailsUnavailable:"套餐详情不可用",requestsThisMonth:"本月请求次数",requests:"次请求",renewsToday:"今日续订",day:"{{v0}} 天",toRenew:"后续订",extraCredits:"额外额度:",usageLimits:"用量限额",weekly:"每周",sandboxMinutes:"云端分钟数",month:"本月",minUsedThisMonthBilledPerMinute:"本月已使用 {{v0}} 分钟,按分钟计费",fullBreakdownAt:"完整明细见",errorInitializingOnboarding:"初始化引导时出错:",traceId2:"追踪 ID:",continuingWithoutOnboarding:"继续运行,跳过引导...",observationsScroll:"{{v0}} 条观察(↑↓ 滚动)",scroll:"↑{{v0}} ↓{{v1}}(↑↓ 滚动)",meetYourCodingTaste:"认识你的编程 Taste",commandCodeLearnsYourCodingStyleAsYouWork:"Command Code 在你工作时学习你的编程风格。",hereSHowYourPreferencesEvolveInRealTime:"你的偏好会这样实时演变:",saved:"已保存(",demoComplete:"演示完成!",commandCodeWillNowUseThesePreferencesToGenerate:"Command Code 现在将使用这些偏好,生成",betterSuggestionsTailoredToYourCodingStyleThe:"更符合你编程风格的建议。",moreYouCodeTheSmarterItGets:"代码写得越多,建议越贴合你的习惯。",pressEnterToGetStarted:"按 Enter 开始 →",spacePauseEnterNextEscSkip:"[Space 暂停] [Enter 下一步] [Esc 跳过]{{v0}}",buildYourCodingTaste:"建立你的编程 Taste",found:"找到",oneSession:"一个会话",sessions:"{{v0}} 个会话",forThisProject:",属于此项目。",analyze:"分析",thatSession:"此会话",thoseSessions:"这些会话",toBuildYourCodingTastePackage:"以建立你的编程 Taste 包?","1YesLearnRecommended":"1. 是,学习(推荐)",ok:"确认 ·",skip3:"跳过 ·",never:"不再询问",session:"{{v0}} 个会话",yourTasteIsUpToDate:"你的 Taste 已是最新",yourTasteWasAlreadyLearned:"已学习你的 Taste •",noNewSessionsToLearn:"没有可学习的新会话",newSession:"{{v0}} 个新会话",browseTasteAtCommandcodeTasteTasteMd:"在 .commandcode/taste/taste.md 查看 Taste",toContinue:"继续",across:"涵盖 {{v0}} {{v1}}",learnedYourCodingTaste:"已学习你的编程 Taste",learned:"已学习",preference:"项偏好",storedIn:"存储于",commandCodeAutomaticallyUsesUpdatesTasteFiles:"Command Code 自动使用并更新 Taste 文件。",submitReview:"提交审阅({{v0}})",agentRevisesThePlanReturnsItForReview:"代理修改计划后,再次提交审阅",approve:"批准",executesThePlanCommentsGoAlongAsNotes:"执行计划,并将评论作为备注附上",executesThePlan:"执行计划",executePlan:"执行计划",executesThePlanAsWritten:"按原样执行计划",back2:"返回",failedToSaveCommentsToDisk:"无法将评论保存到磁盘",planNotSavedToAFileYet:"(计划尚未保存到文件)",thisPlanIsNotSavedToAFileYet:"此计划尚未保存到文件",failedToOpenTheEditor:"无法打开编辑器",enterToKeepClearEnterRemovesEscKeepAsWas:"Enter 保留 · 清空后 Enter 删除 · Esc 保持原样",enterToPinEscDiscard:"Enter 固定 · Esc 放弃",chooseEnterConfirmEscBack:"←/→ 选择 · Enter 确认 · Esc 返回",enterDiscardEscBack:"Enter 放弃 · Esc 返回",chooseEnterToRun:"↑/↓ 选择 · Enter 运行",typeEnterToComment:"输入后 Enter 评论",ctrlNPJump:"Ctrl+N/P 跳转 {{v0}}",quickWhyXCutRisky:"快捷:? 原因 x 删除 ! 风险",planReview:"计划审阅:{{v0}}",reviewThePlanLikeAPrTypeOnAnyLineToCommentEnterPinsItUnderTheLine:"像审查 PR 一样审阅计划,在任意行输入评论,按 Enter 固定在该行下方。",loadingPlan:"正在加载计划...",planFileIsEmptyOrMissingOnDisk:"计划文件为空或磁盘上不存在。",typeYourComment:"输入评论…",review2:"审阅",pendingComment:"{{v0}} 条待处理评论",round:"· 第 {{v0}} 轮{{v1}}",comment:"条评论",asNotes:"作为备注",originalPlanDiscardComments:"原始计划 · 放弃评论",discard:"放弃",pendingComment2:"条待处理评论",andExitReview:"并退出审阅?",approved:"{{v0}} 个已批准",setAside:"{{v0}} 个已搁置",pending:"{{v0}} 个待处理",failedToLoadPlans:"无法加载计划",plans:"计划",loadingPlans:"正在加载计划...",plan3:"计划",thisSession:"当前会话",allPlans:"所有计划",typeToSearchNavigateSwitchTabEnterToOpen:"输入搜索 · ↑/↓ 导航 · ←/→ 切换标签 · Enter 打开",typeToSearchPlans:"输入以搜索计划...",noPlansMatch:'没有匹配 "{{v0}}" 的计划',noPlansInThisSessionYetUsePlanOrPlanModeToCreateOnePressForAllPlans:"此会话暂无计划,使用 /plan 或计划模式创建。按 → 查看所有计划。",noSavedPlansYetPlansLandInCommandcodePlansWhenYouUsePlanMode:"暂无已保存的计划,计划模式会将计划保存到 ~/.commandcode/plans。",learned2:"已学习 {{v0}} {{v1}}",tasteProfileInitialized:"Taste 配置已初始化",in2:"位于 {{v0}} {{v1}}",tasteStoredIn:"Taste 存储于",shareYourCodingTaste:"分享你的编程 Taste:",commandCodeAutomaticallyUsesUpdatesTasteFilesAsYouCode:"Command Code 在你编写代码时自动使用并更新 Taste 文件。",commandCodeWillLearnYourPreferencesAsYouCode:"Command Code 会在你编写代码时学习你的偏好。",toExit:"退出",recentSignalsLearned:"近期信号 · 已学习 {{v0}} {{v1}}",recentSignals:"近期信号",learningInterrupted:"学习已中断",learningYourCodingTasteFrom:"正在从以下位置学习你的编程 Taste:",thisMayTakeAFewMinutesDependingOnRepositorySize:"根据仓库大小,可能需要几分钟",loginCancelled:"登录已取消",noCodeChanges:"无代码更改",fileChanged:"{{v0}} 个文件已更改",rewind:"回退",noCheckpointsAvailableStartAConversationToCreateCheckpoints:"暂无检查点,开始对话后会创建检查点。",restoreTo:"恢复到:",toConfirm:"确认 ·",selectACheckpointToRestoreYourSession:"选择检查点以恢复会话",noPrompt:"(无提示词)",latest:"(最新)",recent:"最近",messages:"消息",noNamedSessions:"没有已命名的会话。",pressCtrlNToShowAll:"按 Ctrl+N 显示全部。",noSessionsMatch:'没有匹配 "{{v0}}" 的会话',pressEscToClearSearch:"按 Esc 清除搜索。",noSessionsFoundForBranch:'未找到分支 "{{v0}}" 的会话',pressCtrlBToShowAllBranchesEscToCancel:"按 Ctrl+B 显示所有分支,Esc 取消",noPreviousSessionsFound:"未找到历史会话",pressEscToGoBack:"按 Esc 返回",sessionMovedToTrash:"会话已移到回收站",sessionDeleted:"会话已删除",failedToDeleteSession:"删除会话失败:{{v0}}",failedToRenameSession:"重命名会话失败:{{v0}}",cannotDeleteTheCurrentSession:"无法删除当前会话",loadingSessions:"正在加载会话",deletePressEnterToConfirmAnyOtherKeyToCancel:'删除 "{{v0}}"?按 Enter 确认,按其他任意键取消。',resumeSession:"恢复会话",sortNameBranch:"排序:{{v0}} · 名称:{{v1}} · 分支:{{v2}}",typeToSearchSessions:"输入以搜索会话...",modified:"修改时间",gitBranch:"Git 分支",summary:"摘要",path2:"· 路径",rename:"重命名:",enterResume:"Enter 恢复",ctrlSSort:"Ctrl+S 排序",ctrlNNamed:"Ctrl+N 已命名",ctrlRRename:"Ctrl+R 重命名",ctrlDDelete:"Ctrl+D 删除",ctrlPPath:"Ctrl+P 路径",ctrlBBranch:"Ctrl+B 分支",typeToSearch:"输入搜索",read:"[读取:{{v0}}:{{v1}}-{{v2}}]",read2:"[读取:{{v0}}]",write:"[写入:{{v0}}]",edit:"[编辑:{{v0}}]",bash:"[bash:{{v0}}]",grepIn:"[grep:/{{v0}}/ 位于 {{v1}}]",glob:"[glob:{{v0}}]",ls:"[ls:{{v0}}]",toolResult:"[工具结果]",user3:"用户:{{v0}}",assistant:"助手:{{v0}}",assistantNoContent:"助手:(无内容)",compactionKTokens:"[压缩:{{v0}}k token]",branchSummary:"[分支摘要]:{{v0}}",custom:"[自定义:{{v0}}]",model3:"[模型:{{v0}}]",effort:"[推理强度:{{v0}}]",label:"[标签:{{v0}}]",title:"[标题:{{v0}}]",titleEmpty:"[标题:(空)]",branchSummary2:"分支摘要",noSummary:"不总结",summarize:"总结",summarizeWithCustomPrompt:"使用自定义提示词总结",summarizingAbandonedBranchEscToCancel:"正在总结离开的分支…(Esc 取消)",youReLeavingWorkBehindOnThisBranchSummarizeItBeforeJumping:"即将离开此分支上的工作,是否在跳转前总结?",enterConfirmEscBack:"Enter 确认 · Esc 返回",focusInstructionsForTheSummary:"摘要重点说明:",label2:"标签:",enterSaveEmptyClearsEscCancel:"Enter 保存(空字段清除)· Esc 取消",typeToSearch2:"输入搜索…",noEntriesFound:"未找到条目",labelTime:"[+标签时间]",movePageTabAltBranchShiftLLabelShiftTLabelTime:"↑/↓ 移动 · ←/→ 翻页 · Tab / Alt+←/→ 切换分支 · Shift+L 标签 · Shift+T 标签时间",filtersCtrlDTULACycleCtrlOTypeToSearchRebindViaCommandcodeKeybindingsJson:"筛选 Ctrl+D/T/U/L/A · Ctrl+O 循环 · 输入搜索 · 通过 ~/.commandcode/keybindings.json 重设快捷键",doYouTrustTheFilesInThisFolder:"你信任此文件夹中的文件吗?",toNavigateEnterToSelectEscToExit:"↑/↓ 导航 · Enter 选择 · Esc 退出",mayReadFilesInThisFolderReadingUntrustedFilesMayLeadToBehaveInUnexpectedWays:"{{v0}} 可能读取此文件夹中的文件。读取不可信的文件可能使 {{v1}} 产生意外行为。",withYourPermissionMayExecuteFilesInThisFolderExecutingUntrustedCodeIsUnsafe:"经你允许,{{v0}} 可以执行此文件夹中的文件。执行不可信代码存在安全风险。","1YesProceed":"1. 是,继续","2NoExit":"2. 否,退出",exitingWorktreeSession:"正在退出工作树会话",enterToConfirmEscToCancel:"Enter 确认 · Esc 取消","1KeepWorktree":"1. 保留工作树",staysAt:"保留于","2RemoveWorktree":"2. 移除工作树",allChangesAndCommitsWillBeLost:"所有更改和提交都将丢失。",errorInteractiveModeRequiresATtyTerminal:"错误:交互模式需要 TTY 终端。",pleaseRunThisCommandDirectlyInYourTerminalNotThroughAPipeOrRedirect:"请在终端中直接运行此命令,不要通过管道或重定向运行。",noConversationsFoundToResume:"未找到可恢复的对话。",forkSessionIgnoredNoSessionToForkUseWithResumeIdNameOrContinue:"已忽略 --fork-session:没有可创建分支的会话(请与 --resume <id|name> 或 --continue 一起使用)。",forkSessionFailedResumingTheOriginalSession:"--fork-session 失败:{{v0}}。正在恢复原会话。",projectNotInitializedRunCmdToStartAConversationFirst:"项目尚未初始化。请先运行 cmd 开始对话。",sessionIsNeitherAnExistingJsonlTranscriptNorAKnownSessionIdPrefix:'--session "{{v0}}" 既不是已有的 .jsonl 对话记录,也不是已知的会话 ID 前缀。',sessionIsAmbiguousMatches:'--session "{{v0}}" 存在歧义,匹配:{{v1}}',youHaveUncommittedFileTheseWillBeLostIfYouRemoveTheWorktree:"你有 {{v0}} 个未提交的文件。移除工作树将丢失这些文件。",thisWorktreeHasCommitsThatAreNotOnYourMainBranchTheyWillBeLostIfYouRemoveIt:"此工作树包含主分支上不存在的提交,移除后将丢失。",removedEmptyWorktree:"已移除空工作树",removedWorktree2:"已移除工作树",detailedTranscript:"{{v0}}详细对话记录{{v1}}",toToggle:"切换",showAll:"显示全部",todosFocusedToSelectCToCompleteXToRemoveAAllDoneEscToGoBackToFeed:"待办事项已聚焦 · ↑/↓ 选择 · c 完成 · x 移除 · a 全部完成 · Esc 返回对话",notAuthenticated:"未认证。",noAnswerFromTheSandboxEventsWereLost:"云端会话没有响应,事件已丢失。",noAnswerFromTheSandbox:"云端会话没有响应:{{v0}}。",theSandboxReported:"云端会话报告 {{v0}}",theStreamEnded:"事件流已结束",theSandboxStoppedBeforeItsProcessWasReady:"云端会话在进程就绪前已停止。",theSandboxDidNotComeUpInTime:"沙箱未能及时启动。",noAnswerFromTheSandboxItsAgentProcessIsNotResponding:"云端会话没有响应,其代理进程未响应。",theSandboxIsWorkingOnATurnRunAgainOnceItHasFinished:"云端会话正在处理一轮任务,请在完成后再次运行 {{v0}}。",theChangeWasRefused:"更改被拒绝",theSandboxKeptIts:"云端会话保留了其{{v0}}:{{v1}}。",commandsAreNotSupportedInASandboxSessionYet:"云端会话暂不支持 ! 命令。",isNotSupportedInASandboxSessionYet:"云端会话暂不支持 /{{v0}}。",runFailed:"运行失败",theTurnDidNotFinish:"本轮任务未完成:{{v0}}。",theSandboxRefusedTheTurn:"云端会话拒绝了本轮任务",thisModelHasNoReasoningEffortToSet:"此模型不支持设置推理强度。",reasoningEffortTapOneOrSendEffortLevel:"推理强度\n点击选择,或发送 /effort <level>\n\n{{v0}}",isNotALevelTry:'"{{v0}}" 不是有效级别。试试:{{v1}}。',aModelIdOrLeaveEmptyForTheList:"模型 ID,留空查看列表",aLevelOrLeaveEmptyForTheList:"强度级别,留空查看列表",compacting:"正在压缩…",cleared:"已清除。",thisSessionItsModelAndWhetherItAsksFirst:"此会话、模型及权限询问方式",interruptWhateverItIsDoing:"中断当前操作",whatYouCanSend:"可以发送的内容",whatYouCanSend2:"可以发送的内容",anythingElseIsAPromptForTheAgent:"其他内容都将作为代理的提示词。",pickOneOrSendModelId:"选择一个,或发送 /model <id>",runACommand:"运行命令",killARunningProcess:"终止正在运行的进程",editAFile:"编辑文件",writeAFile:"写入文件",readAFile:"读取文件",listADirectory:"列出目录",fetchAUrl:"获取 URL",searchTheWeb:"搜索网页",approve2:"⏸ **是否批准?**",of2:"❓ **{{v0}}**(第 {{v1}} 个,共 {{v2}} 个)",pickOneHereOrAnswerAtTheTerminalForSeveral:"在此选择一项,或在终端中选择多项。",queuedItGoesInAfterTheAnswerAbove:"⏳ 已排队,将在上方问题回答后处理。",line2:"{{v0}} 行",startingAuthentication:"正在开始认证...",editorError:"编辑器错误:{{v0}}",permissionsAreBypassedInASandboxSessionTheModeCannotBeChangedHereYet:"云端会话中权限已绕过,暂无法在此更改模式。",connectingToTheSandbox2:"正在连接云端",startingTheSandbox:"正在启动云端会话",isACustomModelThisMachineServesTheSandboxRunsItsDefaultModelInstead:"{{v0}} 是此计算机提供的自定义模型,云端会话将改用默认模型。",connectedToSandboxBranch:"已连接到沙箱 {{v0}}({{v1}},分支 {{v2}})",sandbox:"云端:{{v0}}",ranSessionStartHook:"已运行 {{v0}} 个会话启动钩子",runIde:"运行 /ide",loopStoppedScheduledCancelled:"循环已停止 · 已取消 {{v0}} 个已调度任务",questionCancelled:"问题已取消",isNotOnYourPlan:"你的套餐不包含 {{v0}}。",switchingTo:"正在切换到 {{v0}}。",notConnected2:"未连接",unknownModelSendModelForTheList:'未知模型 "{{v0}}"。发送 /model 查看列表。',setTo:"已将 {{v0}} 设置为 {{v1}}。",interrupted2:"已中断。",doesnTWorkFromTheChatSendHelpForWhatDoesOrSendItWithoutTheSlashToMakeItAPrompt:"无法通过聊天运行 /{{v0}}。发送 /help 查看可用命令,或去掉斜杠将其作为提示词发送。",thatPromptIsNoLongerWaiting:"该请求已不再等待。",approved2:"已批准",denied:"已拒绝",thatQuestionIsAlreadyAnswered:"该问题已回答。",notedLeft:"已记录:{{v0}}。剩余 {{v1}} 个。",answered:"已回答:{{v0}}",thatFailed:"操作失败:{{v0}}",thatMenuIsOutOfDate:"该菜单已过期。",thatCommandFailed:"命令失败:{{v0}}",approve3:"✅ 批准",deny:"⛔️ 拒绝",planSavedRunPlansToReviewAnnotateOrExecuteItAnytime:"计划已保存,随时运行 /plans 审阅、注释或执行。",composing:"编写输入",sendThePrompt:"发送提示词",insertANewline:"插入换行",editThePromptInEditor:"在 $EDITOR 中编辑提示词",stashRestoreTheCurrentPrompt:"暂存或恢复当前提示词",browsePromptHistory:"浏览提示词历史",mentionAFileFuzzySearch:"引用文件(模糊搜索)",openTheCommandMenu:"打开命令菜单",bashModeRunAShellCommand:"Bash 模式,运行 Shell 命令",whileItWorks:"运行期间",interruptTheCurrentTurn:"中断当前轮次",typeEnter:"输入 + Enter",queueASteeringMessage:"将补充指令加入队列",openTheTodoManagerTodosForTheCurrentPlan:"打开当前计划的待办事项管理器(/todos)",transcript:"对话记录",toggleExpandedToolOutput:"展开或收起工具输出",toggleTheFullTranscript:"切换完整对话记录",sessionModes:"会话与模式",cycleModeStandardAcceptEditsPlanYolo:"循环切换模式:标准 → 接受编辑 → 计划 → yolo",quickModelSwitch:"快速切换模型",rewindToACheckpoint:"回退到检查点",exit:"退出",general:"常规",sharing:"分享",featureModels:"功能模型",theme2:"主题",terminalColorThemeSameSettingAsThemeAutoAutomaticallyDetectsYourTerminalBackgroundAndUsesLightOrDarkToMatch:"终端颜色主题(与 /theme 相同)。自动检测终端背景,并选择匹配的浅色或深色主题。",compactMode:"压缩模式",autoCompactAggressivenessWhenContextFillsUpSameSettingAsCompactMode:"上下文填满时的自动压缩方式(与 /compact-mode 相同)。",treeDefaultFilter:"会话树默认筛选",defaultFilterWhenOpeningTree:"打开 /tree 时的默认筛选。",onDemandCommandExplanations:"按需命令解释",explainShellCommandsOnPermissionPromptsOnlyWhenYouPressCtrlEDefaultTurnOffToGenerateEveryExplanationUpfront:"仅在权限提示中按 Ctrl+E 时解释 Shell 命令(默认)。关闭后会提前生成所有解释。",imageVision:"图像理解",letATextOnlyModelReadAttachedImagesByDescribingThemWithTheVisionModelAskOnFirstUsePromptsTheFirstTimeYouAttachAnImage:'使用视觉模型描述附加图片,让纯文本模型理解图片("首次使用时询问"会在首次附加图片时提示)。',skipBranchSummaryPrompt:"跳过分支摘要提示",neverAskAboutSummarizingWhenSwitchingBranchesInTree:"在 /tree 中切换分支时不询问是否总结。",defaultExportFormat:"默认导出格式",formatABareExportNoFormatOrPathWritesAnExplicitExportHtmlJsonlMdPathAlwaysOverrides:"不带格式或路径的 /export 使用的格式。显式指定 /export html|jsonl|md|<path> 始终覆盖此设置。",defaultShareGistFormat:"默认 gist 分享格式",formatABareShareGistNoFormatArgumentPostsAnExplicitShareGistHtmlJsonlMdAlwaysOverrides:"不带格式参数的 /share gist 使用的格式。显式指定 /share gist html|jsonl|md 始终覆盖此设置。",tasteLearningUser:"Taste 学习(用户)",learnYourCodingStyleFromYourSessionsUserWideSameSettingAsTaste:"从会话中学习你的编程风格,对所有项目生效(与 /taste 相同)。",showTasteLearningInFeed:"在对话中显示 Taste 学习",showTasteLearningNoticesInTheConversationFeedTurningThisOffKeepsLearningEnabledAndOnlyHidesTheNotices:"在对话中显示 Taste 学习通知。关闭此项仅隐藏通知,学习仍保持开启。",tasteLearningThisProject:"Taste 学习(当前项目)",learnYourCodingStyleFromThisProjectOnlySameSettingAsTaste:"仅学习当前项目的编程风格(与 /taste 相同)。",lockedBySettingsLocalJsonEditThatFileToChangeIt:"由 settings.local.json 锁定,请编辑该文件更改。",dark:"深色",light:"浅色",auto:"自动",compactNormal:"常规压缩",noTools:"隐藏工具",userMessages:"用户消息",labeledOnly:"仅带标签",everything:"全部",askOnFirstUse:"首次使用时询问",inheritFromUser:"继承用户设置",sessionTitles:"会话标题",namesYourSessionsAfterTheFirstExchange:"首次交互后为会话命名。",compaction:"上下文压缩",summarizesLongConversationsWhenContextFillsUp:"上下文填满时总结长对话。",commandExplanations:"命令解释",writesTheOneLineCommandSummariesOnPermissionPrompts:"为权限提示生成单行命令摘要。",tasteLearning2:"Taste 学习",learnsYourCodingStyleFromYourSessions:"从会话中学习你的编程风格。",streamsLiveObservationsDuringOnboarding:"在引导期间实时显示观察结果。",treeBranchSummaries:"/tree 分支摘要",summarizesAnAbandonedBranchWhenYouJumpAwayFromIt:"跳转离开分支时总结该分支。",describesAttachedImagesSoATextOnlyModelCanReadThem:"描述附加图片,让纯文本模型理解图片。",yes:"是",no:"否",yesAllowAllEditsThisSessionShiftTab:"是,允许此会话的所有编辑 [shift+tab]",noTellCommandCodeWhatToDoDifferently:"否,告诉 Command Code 如何调整",both:"对话和代码",restoreConversationAndCodeRecommended:"恢复对话和代码(推荐)",conversationOnly:"仅对话",rewindConversationKeepCurrentCode:"回退对话,保留当前代码",codeOnly:"仅代码",restoreCodeKeepConversation:"恢复代码,保留对话",thisExactCommand:"此精确命令",theseCommands:"这些命令",enabled3:"已启用",disabled3:"已禁用",connected:"已连接",connecting2:"连接中…",failed2:"失败",configured:"已配置",notSet:"未设置",on2:"开启",all:"全部",named:"已命名",default4:"默认",standard:"标准",yolo:"完全放行",pending2:"待处理",approved3:"已批准",discarded:"已放弃",complete:"完成",running2:"运行中",interrupted3:"已中断",blocked:"受阻",paused:"已暂停",idle:"空闲",open2:"开放",closed:"已关闭",merged:"已合并",learned3:"已学习",reinforced:"已强化",downgraded:"已降低",refactored:"已重构",moved:"已移动",continuousLearning:"持续学习",userSettings:"用户设置",projectShared:"项目共享",projectLocal:"项目本地",unknown:"未知",nA:"不适用",learningOn:"学习开启",learningOff:"学习关闭",learningOffByok:"学习关闭(BYOK)",resumeThisSessionWith:"使用以下命令恢复此会话:",failedToSetTheme:"无法设置主题",failedToSetCompactMode:"无法设置压缩模式",couldnTSaveTheForkStorageErrorStayingOnTheCurrentSession:"无法保存分支(存储错误),将保留当前会话。",imageAttached:"(已附加图片)",notShared:"未分享",free2:"(免费)",file:"个文件",files2:"个文件",session2:"个会话",sessions2:"个会话",preferences:"项偏好",observation:"条观察",observations:"条观察",learning:"条学习记录",learnings:"条学习记录",category:"个类别",categories:"个类别",lines:"行",second:"秒",seconds:"秒",permissionCommands:"{{commands}} 命令",permissionRememberProject:"是,此项目中的{{subject}}不再询问",interruptedWhatShouldCommandCodeDoInstead:"已中断 · Command Code 接下来应如何调整?",systemTools:"系统工具",subagents:"子代理",identity:"身份",thisCommand:"此命令",thisTool:"此工具",repository2:"代码仓库",checkpoint:"检查点",packages:"包",model4:"模型",models2:"模型",additions:"行新增",removals:"行删除",agent2:"代理",read3:"读取",readN:"读取[n]",write2:"写入",edit2:"编辑",list:"列表",search:"搜索",glob2:"匹配",shell3:"Shell",shellOutput:"Shell(输出)",shellTasks:"Shell(任务)",diagnostics:"诊断",run3:"运行",worktreeEnter:"工作树(进入)",worktreeExit:"工作树(退出)",planEnter:"计划(进入)",planExit:"计划(退出)",planReview2:"计划(审阅)",killShell:"终止(Shell)",vision:"视觉",searchTools:"搜索工具",todos3:"待办",cronCreate:"定时任务(创建)",cronList:"定时任务(列表)",cronDelete:"定时任务(删除)",loop:"循环",question2:"提问",sleep:"等待",webSearch:"网络(搜索)",webFetch:"网络(获取)",taskNew:"任务(新建)",taskUpdate:"任务(更新)",taskList:"任务(列表)",taskGet:"任务(获取)",taskOutput:"任务(输出)",taskStop:"任务(停止)",skill3:"技能",knowledge:"知识",monitor2:"监控",monitorEvents:"监控(事件)",bestComboOfSpeedIntelligenceRecommended:"速度与智能的最佳组合(推荐)",prevSonnetStillFastCapable:"上一代 Sonnet,速度快、能力强",olderSonnetStillFastCapable:"较早的 Sonnet,速度快、能力强",mostCapableForDemandingReasoningLongHorizonAgents:"适合高难度推理与长期代理任务的最强模型",prevFableStillStrongForDeepReasoningAgents:"上一代 Fable,深度推理与代理能力依然强劲",mostIntelligentOpusForAgentsAndCoding:"适合代理与编程的最智能 Opus",prevFlagshipStillStrongForAgentsAndCoding:"上一代旗舰,代理与编程能力依然强劲",olderOpusStillStrongForAgentsAndCoding:"较早的 Opus,代理与编程能力依然强劲",fastestMostCompactGreatForQuickTasks:"速度最快、体积最小,适合快速任务",mostCapableOpenaiModelForDemandingReasoningAgents:"适合高难度推理与代理的最强 OpenAI 模型",nearAstraPerformanceForComplexWorkAtALowerCost:"以较低成本提供接近 Astra 的复杂任务性能",builtForComplexCodingAgenticWorkflows:"专为复杂编程与代理工作流打造",mostEfficientOpenaiModelForFocusedHighVolumeTasks:"适合专注、大批量任务的最高效 OpenAI 模型",frontierModelForComplexProfessionalWork:"适合复杂专业工作的前沿模型",balancesIntelligenceAndCost:"兼顾智能与成本",optimizedForCostSensitiveWorkloads:"针对成本敏感的工作负载优化",latestFrontierModelForGeneralComplexWork:"适合通用复杂工作的最新前沿模型",frontierModelForGeneralComplexWork:"适合通用复杂工作的前沿模型",frontierCodingModel:"前沿编程模型",fastCostEffectiveModelForEverydayTasks:"适合日常任务的快速、高性价比模型",frontierCodingAgentsNativeMultimodality:"前沿编程、代理与原生多模态能力",hybridAttentionLongContextReasoning:"混合注意力与长上下文推理",fastHybridAttentionReasoning:"快速混合注意力推理",fastHybridAttentionReasoningWithVision:"支持视觉的快速混合注意力推理",lowLatencyV4FlashDeployment:"低延迟 V4 Flash 部署",v41HybridAttentionReasoningWithVision:"支持视觉的 V4.1 混合注意力推理",highThroughputV41Flash:"高吞吐量 V4.1 Flash",longHorizonCodingKnowledgeWorkWith1mContext:"支持 1M 上下文的长期编程与知识工作",improvedLongHorizonCodingWithVision:"增强的长期编程与视觉能力",highSpeedLongHorizonCodingWithVision:"支持视觉的高速长期编程",longHorizonCodingWithVision:"支持视觉的长期编程",multimodalFrontendCoding:"多模态前端编程",fastAffordableGlmCodingWith1mContext:"支持 1M 上下文的快速、经济 GLM 编程",highSpeedGlm53FlashWith1mContext:"支持 1M 上下文的高速 GLM-5.3 Flash",frontierCodingWithEmergentCyberCapabilities:"具备新兴网络安全能力的前沿编程",powerfulCodingWith1mContextAndLongHorizonTasks:"支持 1M 上下文与长期任务的强大编程能力",highThroughputGlm52With1mContext:"支持 1M 上下文的高吞吐量 GLM-5.2",longHorizonAutonomousCodingAgent:"长期自主编程代理",multiModeThinkingLongRangePlanning:"多模式思考与长期规划",endToEndSoftwareEngineeringAgent:"端到端软件工程代理",crossPlatformFullStackAgenticDev:"跨平台全栈代理开发",flagshipMultimodalAgenticCodingWith1mContext:"支持 1M 上下文的旗舰多模态代理编程",lowLatencyServingTierOfMimoV26Pro:"MiMo V2.6 Pro 的低延迟服务层",efficientMultimodalAgenticCodingWith1mContext:"支持 1M 上下文的高效多模态代理编程",highCapabilityLongContextAgenticCoding:"高能力长上下文代理编程",efficientLongContextAgenticCoding:"高效长上下文代理编程",omniModalUnderstandingMultimediaAgenticWork:"全模态理解与多媒体代理工作",upgradedQwen38MaxStrongerCodingAgenticToolUse:"升级版 Qwen 3.8 Max:更强的编程与代理工具使用能力",autonomousLongHorizonCodingProfessionalWork:"自主长期编程与专业工作",compactVisionLanguageCodingAgenticWork:"轻量视觉语言编程与代理工作",fastLowCostAgenticCodingReasoning:"快速、低成本代理编程与推理",frontierCodingLongHorizonAgentExecution:"前沿编程与长期代理执行",agenticCodingReasoningAtLowerCost:"较低成本的代理编程与推理",vibeCodingEfficientAgentExecution:"氛围编程与高效代理执行",agenticCodingReasoning:"代理编程与推理",trillionParameterAgenticCodingWith1mContext:"支持 1M 上下文的万亿参数代理编程","600bSparseMoeAgenticCodingWith1mContext":"支持 1M 上下文的 600B 稀疏 MoE 代理编程",multimodalSparseMoeReasoning:"多模态稀疏 MoE 推理",fastSparseMoeAgenticReasoning:"快速稀疏 MoE 代理推理",sparseMoeReasoningAgenticToolUse:"稀疏 MoE 推理与代理工具使用",agenticCodingSustainedMultiStepToolUse:"代理编程与持续多步工具使用",newestGeminiFlashImprovedCoreReasoning:"最新 Gemini Flash,核心推理能力增强",higherQualityCodingAgenticWorkflowsFewerTokens:"更高质量的编程与代理工作流,使用更少 token",previousGeminiFlashStillFastCapable:"上一代 Gemini Flash,速度快、能力强",proLevelCodingProficiencyParallelAgenticExecution:"Pro 级编程能力与并行代理执行",upgradedAgenticCapabilitiesIdealForSubagents:"增强的代理能力,适合子代理",highVolumeWorkhorseModelWithImplicitCaching:"支持隐式缓存的大批量任务主力模型",multiAgentOrchestrationAcrossFrontierModels:"跨前沿模型的多代理编排",openReasoningModelForLongHorizonAutonomousAgents:"适合长期自主代理的开放推理模型",multimodalMoeReasoning:"多模态 MoE 推理",lightweightMoeReasoningAtLowerCostAndLatency:"成本与延迟更低的轻量 MoE 推理",stealthModelWith1mContext:"支持 1M 上下文的未公开模型",stealthCodingModelForWebAndMobileApps:"面向网页与移动应用的未公开编程模型",openWeightAgenticCodingAndLongHorizonWork:"开放权重代理编程与长期工作",fastLightweightMoeCodingAgenticWork:"快速轻量 MoE 编程与代理工作",healthMedicineTunedLightweightMoeStillStrongOnCode:"针对健康与医学优化的轻量 MoE,编程能力依然强劲",hybridReasoningMoeForCodingToolUsingAgents:"适合编程与工具代理的混合推理 MoE",agenticPerformanceToolUseAndComputerUse:"代理性能、工具使用与计算机操作",codingOptimizedForAgenticWorkflowsAndLargeCodebases:"针对代理工作流与大型代码库优化的编程能力",museSpark12At95Off:"Muse Spark 1.2,约 95% 折扣",multimodalReasoningForLongHorizonAgenticAndCodingWorkflows:"适合长期代理与编程工作流的多模态推理",museSpark13AtUpTo95Off:"Muse Spark 1.3,最高 95% 折扣",smartestModelForCodingAgenticTasksKnowledgeWork:"适合编程、代理任务与知识工作的最智能模型",frontierPerformanceOnCodingKnowledgeWorkAndStem:"编程、知识工作与 STEM 的前沿性能",codingAndKnowledgeWorkBuiltForMultiHourTasks:"适合持续数小时任务的编程与知识工作",recommended2:"推荐",claudeProMax:"Claude Pro/Max",copilotSubscription:"Copilot 订阅",chatgptProPlusSubscription:"ChatGPT Pro/Plus 订阅",copiedSuffix:"(已复制)",pausedSuffix:"(已暂停)",server:"个服务器",servers:"个服务器",skills2:"个技能",allTools:"全部工具",readOnlyTools:"只读工具",editTools:"编辑工具",executionTools:"执行工具",searchTools2:"搜索工具",otherTools:"其他工具",fastHealthScanWithClearPrescriptions:"快速检查界面并给出明确修复建议",findGenericAiLookingPatterns:"找出常见的 AI 生成设计痕迹",judgmentPassWithScoresAndFixes:"评估设计并给出评分与修复建议",removeAiSlopFromTheDesignSurface:"去除界面中的模板化 AI 设计痕迹",typeScaleHierarchyRhythmMeasure:"字号比例、层级、节奏与行宽",paletteRolesContrastStateColor:"配色、色彩角色、对比度与状态颜色",pageWideMotionSystemAndMissingAnimations:"整页动效系统与缺失的动画",statesAffordancesFeedbackTouchTargets:"状态、操作提示、反馈与触控区域",focusKeyboardSemanticsNamesHitAreas:"焦点、键盘、语义、名称与点击区域",structuralCompositionNotMinorSpacing:"调整结构布局",recomposeAcrossMobileTabletAndDesktop:"适配手机、平板与桌面布局",changeTheFullVisualDirectionOfExistingUi:"重新设计现有界面的整体视觉方向",tokenizeRepeatedPatternsIntoReusableComponents:"将重复样式整理为设计变量与可复用组件",initializeProjectWithBriefMdDesignContext:"使用 brief.md 初始化项目设计背景",finalPreShipPassWithVerifiedClaims:"发布前检查并验证各项说明",removeNoiseAndStrengthenWhatRemains:"去除干扰并强化保留的内容",makeMarketingSurfacesMemorableAndSpecific:"让营销页面更鲜明、更具体",hardenAppUiForRealOperatorsAndRealData:"完善面向真实用户与数据的应用界面",validateChangesOrDocumentTheNewDesign:"验证改动或记录新设计",tokenizeComponentsOrRedesignTheInterface:"整理组件设计变量或重新设计界面",redesignWithExtractedComponentsOrOptimizeLayout:"使用提取的组件重新设计或优化布局",polishDetailsOrRedesignBasedOnFeedback:"完善细节或根据反馈重新设计",improveVisualsOrFixLayoutIssues:"改善视觉效果或修复布局问题",removeDetectedSlopOrPolishFurther:"去除发现的设计痕迹或继续完善",verifyTheFixesOrPolishFurther:"验证修复或继续完善",fineTuneTypographyColorsOrTestResponsiveness:"微调排版与配色或测试响应式布局",applyVoiceThroughColorsOrUpdateTypography:"通过配色表达风格或更新排版",optimizeTheProductSurfaceOrAddInteractions:"优化产品界面或添加交互",polishFurtherOrTestResponsiveness:"继续完善或测试响应式布局",checkResponsivenessOrAdjustColors:"检查响应式布局或调整配色",testResponsiveColorsOrAddAnimations:"测试响应式配色或添加动画",verifyResponsiveLayoutOrAddInteractions:"验证响应式布局或添加交互",addInteractionsOrDocumentAnimations:"添加交互或记录动画",addInteractionsOrFinalizeDesign:"添加交互或完成设计",addAnimationsOrDocumentInteractions:"添加动画或记录交互",repairTheInteractionStatesOrVerifyTheFixes:"修复交互状态或验证修复",fastResponsesWithLighterReasoning:"轻量推理,快速响应",balancesSpeedAndReasoningDepthForEverydayTasks:"平衡速度与推理深度,适合日常任务",greaterReasoningDepthForComplexProblems:"更深入地推理复杂问题",extraReasoningDepthForComplexProblems:"以额外推理深度处理复杂问题",maximumReasoningBudgetForTheHardestProblems:"使用最高推理预算处理最难的问题",useTheProviderDefaultReasoningLevel:"使用服务商默认的推理强度",tasteLearningIsUnavailableOnByokSwitchToACommandCodeModelWithModelOrCmdModelFirst:"BYOK 不支持 Taste 学习,请先使用 /model 或 cmd --model 切换到 Command Code 模型。",readFile:"读取文件",readDirectory:"读取目录",writeFile:"写入文件",grep:"搜索内容",glob3:"匹配文件",shellCommand:"Shell 命令",shellOutput2:"Shell 输出",monitorCommand:"监控命令",monitorEvents2:"监控事件",shellTasks2:"Shell 任务",cronCreate2:"创建定时任务",cronList2:"定时任务列表",cronDelete2:"删除定时任务",scheduleWakeup:"安排唤醒",todoWrite:"写入待办事项",taskCreate:"创建任务",taskUpdate2:"更新任务",taskList2:"任务列表",taskGet2:"获取任务",taskOutput2:"任务输出",taskStop2:"停止任务",askUserQuestion:"向用户提问",runCommand:"运行命令",killShell2:"停止 Shell",sleep2:"等待",exitPlanMode:"退出计划模式",enterPlanMode:"进入计划模式",planReview3:"审阅计划",enterWorktree:"进入工作树",exitWorktree:"退出工作树",getDiagnostics:"获取诊断",webSearch2:"网页搜索",webFetch2:"获取网页",vision2:"视觉分析",agentOutput:"代理输出",activateSkill:"启用技能",connectedTo2:"已连接到 ",ideExtensionInstalledIn:"IDE 扩展已安装于 ",ideExtensionUpToDateIn:"IDE 扩展已为最新版本:",ideExtensionInstalledReload:"IDE 扩展已安装,请重新加载 ",sWindowToActivate:" 的窗口以启用",extensionInstallFailed:" 扩展安装失败",extensionInstallFailed2:"扩展安装失败",noSupportedIdeDetected:"未检测到受支持的 IDE",collectingCommitsFromRepository:"收集仓库提交",extractingTasteSignalsFromDiffs:"从差异中提取风格线索",compilingTasteContext:"整理风格上下文",learningTasteFromChangePatterns:"从改动模式中学习风格",tasteLearned:"已学习风格",cloningRepository:"克隆仓库",initializingTasteProfile:"初始化 Taste 档案",organizingYourSessions:"整理你的会话",learningYourCodingTaste:"学习你的编程风格",learnedYourCodingTaste2:"已学会你的编程风格!",planCount:"{{count}} 个计划",cancelLower:"取消",collapse:"折叠",fiveHour:"5 小时",imageNumber:"[图片 #{{index}}",approveWithComments:"附带 {{count}} 条批注作为备注",discardPendingComments:"丢弃 {{count}} 条待处理批注并退出审阅?",couldNotSaveLanguage:"无法保存语言设置:{{reason}}。如需报告问题,请访问 https://cond.dev/issue",providerModelCount_one:"{{count}} 个模型",providerModelCount_other:"{{count}} 个模型",sandboxStoppedReportingProgress:"云端会话启动时停止报告进度。请重试,或稍后重新打开。",pickPhaseModel:"选择此阶段运行的模型,或重置为跟随当前模型。",reasoningEffortForModelSetTo:"{{suffix}}推理强度已设置为 {{v0}}。",effortForModelSuffix:"{{model}} 的",useCurrentModel:"使用当前模型({{model}})",planningFeature:"规划",implementationFeature:"实现",planningDescription:"在计划模式(Shift+Tab、/plan 或 enter_plan_mode)中探索代码库并编写计划的模型。",implementationDescription:"批准计划后接手编写代码的模型,仅在完成规划后生效。",largeRepoCloneHint:"大型仓库每个会话只克隆一次,再次打开会更快。",planningPhase:"规划",implementingPhase:"实现"};function createI18nInstance(e){const n=A();return n.use(Lt).init({lng:e,fallbackLng:"en",supportedLngs:FN,defaultNS:"cli",ns:["cli"],resources:{en:{cli:$N},zh:{cli:UN}},showSupportNotice:!1,interpolation:{escapeValue:!1},react:{useSuspense:!1},initImmediate:!1}),n}__name(createI18nInstance,"createI18nInstance");var BN=null;function getI18n(){if(null!==BN)return BN;const e=getCliLanguage();return setHarnessLocale(e),BN=createI18nInstance(e)}function t(e,n,o){return String(getI18n().t(e,n,o))}async function changeUiLanguage(e){const n=getI18n();await setCliLanguage({language:e}),setHarnessLocale(e),await n.changeLanguage(e)}__name(getI18n,"getI18n"),__name(t,"t"),__name(changeUiLanguage,"changeUiLanguage"),Jt();var jN=new Map(Object.entries($N).map(([e,n])=>[n,e]));function translateUiCopy(e){const n=jN.get(e);return void 0===n?e:t(n,e)}function translatePermissionLabel(e){const n=/^Yes, don't ask again for (.+) in this project$/.exec(e);if(null!==n){const e=n[1]??"",o=/^(.*) commands$/.exec(e),r=null===o?translateUiCopy(e):t("permissionCommands","{{commands}} commands",{commands:o[1]});return t("permissionRememberProject","Yes, don't ask again for {{subject}} in this project",{subject:r})}return translateUiCopy(e)}function useAuthFlow(e){const{onSuccess:n,onFailure:o,onCancel:r,timeout:s=Ds}=e,[a,i]=mt("initializing"),[l,c]=mt(t("startingAuthentication","Starting authentication...")),[d,u]=mt(""),[m,p]=mt(null),g=pt(n),h=pt(o),f=pt(r);gt(()=>{g.current=n,h.current=o,f.current=r});const y=pt(null);y.current??=createAuthFlowController({timeoutMs:s,openBrowser:__name(e=>Ot(e),"openBrowser"),onAuthStateChange:i,onStatusMessageChange:c,onBrowserUrlChange:p,onSuccess:__name(({config:e,source:n})=>g.current(e,n),"onSuccess"),onFailure:__name(({reason:e,message:n})=>h.current(e,n),"onFailure"),onCancel:__name(()=>f.current(),"onCancel")});const v=y.current,S=ht(()=>{v.cancel()},[v]),w=ht(e=>v.submitApiKey(e),[v]);return gt(()=>(v.start(),()=>{v.dispose()}),[v]),{authState:a,statusMessage:l,browserUrl:m,apiKeyInput:d,setApiKeyInput:u,handleApiKeySubmit:w,cancel:S,hasCompleted:v.hasCompleted()}}function useCursorState({value:e,focus:n,showCursor:o,initialCursor:r}){const[s,a]=mt(r??(e||"").length),i=pt(s),l=pt(e);gt(()=>{const r=l.current;if(l.current=e,e===r)return;if(!n)return;if(!o)return;const c=(e||"").length;s>c&&(a(c),i.current=c)},[e,n,o,s]);const c=ht(e=>{a(e),i.current=e},[]);return{cursor:s,setCursor:c,cursorRef:i}}function useRawStdinHandler({focus:e,valueRef:n,cursorRef:o,onUpdate:r,setHandled:s,stripBracketedPaste:a=!1,transformPaste:i,deferEmptyPaste:l=!1}){const c=pt(!1),d=pt(i);d.current=i;const u=pt(l);u.current=l,gt(()=>{if(!e)return;const i=process.stdin,l=__name(e=>{s(!0);const n=clampCursor(e.cursor,e.value.length);r(e.value,n),setTimeout(()=>s(!1),0)},"emitStdinResult"),m=__name(e=>{const r=e.toString();if(a){const e=processBracketedPasteInput({input:r,value:n.current,cursor:o.current,transform:d.current});if(e.handled)return void(e.value===n.current&&u.current||l(e))}const s=processRawInput(r,n.current,o.current);s.handled&&l(s)},"handleRawInput");if(i.on("data",m),!c.current&&hasBufferedInput()){c.current=!0;const e=consumeBufferedInput();e&&m(Buffer.from(e))}return stopEarlyInputCapture(),()=>{i.off("data",m)}},[e,n,o,r,s,a])}function useInkInputHandler({focus:e,showCursor:n,valueRef:o,cursorRef:r,isHandledByStdin:s,onUpdate:a,onSubmit:i}){at((e,l)=>{if(s())return;if(isIgnoredKey(e,l))return;if(l.return)return void(l.shift||l.ctrl||l.meta||i?.(o.current));const c=processInkInput(e,l,o.current,r.current,n);if(!c.handled)return;const d=clampCursor(c.cursor,c.value.length);a(c.value,d)},{isActive:e})}function useSyncedRef(e){const n=pt(e);return n.current=e,n}function useEchoAwareValueRef(e){const n=pt(e),o=pt([]),r=o.current.indexOf(e);return-1!==r&&o.current.splice(0,r+1),-1===r&&n.current!==e&&(n.current=e,o.current=[]),{valueRef:n,noteEmittedValue:ht(e=>{o.current.push(e),o.current.length>64&&o.current.shift()},[])}}__name(translateUiCopy,"translateUiCopy"),__name(translatePermissionLabel,"translatePermissionLabel"),hL(),__name(useAuthFlow,"useAuthFlow"),Jt(),hL(),Jt(),hL(),Jt(),hL(),__name(useCursorState,"useCursorState"),__name(useRawStdinHandler,"useRawStdinHandler"),__name(useInkInputHandler,"useInkInputHandler"),__name(useSyncedRef,"useSyncedRef"),__name(useEchoAwareValueRef,"useEchoAwareValueRef"),Jt(),hL();var WN=St.hex(XO.DIM),HN=__name(e=>St.hex(fD.CODE)(e),"accentHex"),GN=/^\/[A-Za-z0-9][\w/:-]*/,VN=/(^|\s)(@\S+)/g;function pastedTokenRanges(e,n){const o=[],r=new RegExp(uI.source,"g");let s;for(;null!==(s=r.exec(e));)o.push({start:s.index,end:s.index+s[0].length,link:null,color:"dim"});if(n&&n.size>0){const r=new RegExp(mI.source,"g");for(;null!==(s=r.exec(e));){const e=Number(s[1]);if(!n.has(e))continue;const r=n.get(e)??null;o.push({start:s.index,end:s.index+s[0].length,link:r?fileUrl(r):null,color:"dim"})}}return o.sort((e,n)=>e.start-n.start)}function accentTokenRanges(e,n,o){const r=__name((e,o)=>n.some(n=>e<n.end&&o>n.start),"overlapsOccupied"),s=__name(e=>!o||o(e),"isAccentedCommand"),a=[],i=GN.exec(e);i&&!r(0,i[0].length)&&s(i[0])&&a.push({start:0,end:i[0].length,link:null,color:"accent"});const l=new RegExp(VN.source,"g");let c;for(;null!==(c=l.exec(e));){const e=c.index+c[1].length,n=e+c[2].length;r(e,n)||a.push({start:e,end:n,link:null,color:"accent"})}return a}function renderPlainSpan(e,n,o,r,s){let a="";for(let i=n;i<o;i++){const n=e[i];a+=s&&i===r?"\n"===n?It.inverse(" ")+"\n":It.inverse(n):n}return a}function renderTokenSpan(e,n,o,r,s,a="dim"){const i="accent"===a?HN:WN;return s&&r>=n&&r<o?i(e.slice(n,r))+It.inverse(e[r])+i(e.slice(r+1,o)):i(e.slice(n,o))}function renderPlaceholder(e,n){return n?0===e.length?It.inverse(" "):It.inverse(e[0])+WN(e.slice(1)):WN(e)}function renderValue(e,n,o,r,s){const a=pastedTokenRanges(e,r),i=[...a,...accentTokenRanges(e,a,s)].sort((e,n)=>e.start-n.start);if(!o&&0===i.length)return e;if(o&&0===e.length)return It.inverse(" ");let l="",c=0;for(const{start:r,end:s,link:a,color:d}of i){l+=renderPlainSpan(e,c,r,n,o);const i=renderTokenSpan(e,r,s,n,o,d);l+=a?createOSC8Link(a,i,!1):i,c=s}return l+=renderPlainSpan(e,c,e.length,n,o),o&&n===e.length&&(l+=It.inverse(" ")),l}function wrapWithIndent(e,n,o){if(n<=o)return e;const r=" ".repeat(o),s=n-o,a=n;if(bt(e).length<=a)return e;const i=e.split(/(\s+)/);let l="",c=0,d=!0;for(const e of i){const n=bt(e).length;if(c+n>(d?a:s)&&c>0&&(l+="\n"+r,c=o,d=!1),l+=e,c+=n,e.includes("\n")){const n=e.substring(e.lastIndexOf("\n")+1);c=bt(n).length,d=!0}}return l}function getDisplayValue(e,n,o,r,s,a,i){const l=r&&s;return 0===e.length&&n?renderPlaceholder(n,l):renderValue(e,o,l,a,i)}function getMaskedValue(e,n){return n?n.repeat(e.length):e}__name(pastedTokenRanges,"pastedTokenRanges"),__name(accentTokenRanges,"accentTokenRanges"),__name(renderPlainSpan,"renderPlainSpan"),__name(renderTokenSpan,"renderTokenSpan"),__name(renderPlaceholder,"renderPlaceholder"),__name(renderValue,"renderValue"),__name(wrapWithIndent,"wrapWithIndent"),__name(getDisplayValue,"getDisplayValue"),__name(getMaskedValue,"getMaskedValue"),hL();var KN={white:It.white,green:It.green,red:It.red,blue:It.blue,yellow:It.yellow,cyan:It.cyan,magenta:It.magenta,gray:It.gray,grey:It.gray};function TextInput({value:e,placeholder:n="",focus:o=!0,mask:r,showCursor:s=!0,onChange:a,onSubmit:i,onCursorChange:l,prefix:c="",prefixColor:d,singleLine:u=!1,maxWidth:m,stripBracketedPaste:p=!1,disablePasteRouting:g=!1,clipboardOnEmptyPaste:h=!1,collapsePastedText:f=!1,onPasteCollapsed:y,initialCursor:v,imageTokenLinks:S,isRecognizedSlashCommand:w}){const k=pt(!1),C=pt(0),{valueRef:b,noteEmittedValue:T}=useEchoAwareValueRef(e),E=useSyncedRef(a),P=useSyncedRef(y),{cursor:M,setCursor:I,cursorRef:A}=useCursorState({value:e,focus:o,showCursor:s,initialCursor:v});ct.useEffect(()=>{l?.(M)},[M,l]);const x=ht((e,n)=>{I(n),e!==b.current&&(T(e),b.current=e,E.current(e))},[I,b,E,T]),R=ht(e=>{const n=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n");return f&&isPasteWorthCollapsing({content:n,multiline:!0})?(P.current?.(n),pastedTextToken(n)):e},[f,P]),L=ht(e=>{k.current=e},[]),O=ht(()=>k.current||C.current>0,[]);useRawStdinHandler({focus:o,valueRef:b,cursorRef:A,onUpdate:x,setHandled:L,stripBracketedPaste:p,transformPaste:R,deferEmptyPaste:h}),ct.useEffect(()=>{if(!o||g)return;let e=!0;const n=registerPasteConsumer(n=>{k.current||__name(async()=>{let o=n.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(0===o.length){if(!h)return;C.current+=1;try{const e=await detectClipboardText();o=e?e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"):""}finally{C.current-=1}if(!e||!o)return}const r=R(o),s=insertTextAt(b.current,A.current,r);x(s.text,s.cursor)},"applyRoutedPaste")().catch(()=>{})});return()=>{e=!1,n()}},[o,g,h,R,b,A,x]),useInkInputHandler({focus:o,showCursor:s,valueRef:b,cursorRef:A,isHandledByStdin:O,onUpdate:x,onSubmit:i});const{stdout:D}=rt(),N=D?.columns??80,F=getMaskedValue(e,r),_=d?KN[d]:void 0,$=c?_?_(c):c:"",U=getDisplayValue(F,n,M,s,o,S,w),B=c?.length??0,j=$+U;if(u){const e=j.replace(/\n/g," ");return null!=m?ct.createElement(tt,{width:m},ct.createElement(nt,{wrap:"truncate"},e)):ct.createElement(nt,{wrap:"truncate"},e)}const W=wrapWithIndent(j,N,B);return ct.createElement(nt,{wrap:"wrap"},W)}__name(TextInput,"TextInput"),Jt();var zN=__name(({children:e})=>ct.createElement(nt,{italic:!0,color:XO.DIM},e),"HintText"),qN=__name(({children:e})=>ct.createElement(nt,{bold:!0},e),"HintKey"),YN=__name(({hints:e,marginTop:n=1})=>{const o=e.filter(e=>null!=e&&!1!==e&&""!==e);return 0===o.length?null:ct.createElement(tt,{marginTop:n},ct.createElement(zN,null,o.map((e,n)=>ct.createElement(ct.Fragment,{key:n},n>0&&" · ",e))))},"HintBar");Jt();var JN=ZO,QN=XO.DIM,XN=XO.DIMMER,ZN=ZO,eF=XO.WHITE,tF=XO.GRAY,nF=XO.GREEN;function hasContent(e){return null!=e&&""!==e}__name(hasContent,"hasContent");var oF=__name(({title:e,titleSuffix:n,subtitle:o,children:r,hint:s,footer:a,rule:i=!0,titleColor:l=JN,ruleColor:c=XN,gapAfterHeader:d=!0,boxProps:u})=>{const m=hasContent(o);return ct.createElement(tt,{flexDirection:"column",width:"100%",...u},i&&ct.createElement(MD,{dividerColor:c}),ct.createElement(tt,null,ct.createElement(nt,{bold:!0,color:l},e),hasContent(n)&&ct.createElement(nt,{color:QN},n)),m?ct.createElement(tt,{marginBottom:d?1:0},ct.createElement(nt,{color:QN},o)):d&&ct.createElement(tt,{marginBottom:1}),r,a?ct.createElement(tt,{marginTop:1},a):s?ct.createElement(tt,{marginTop:1},ct.createElement(nt,{italic:!0,color:QN},s)):null)},"Overlay"),rF=ct.memo(({authState:e,browserUrl:n,apiKeyInput:o,setApiKeyInput:r,handleApiKeySubmit:s})=>{const{t:a}=xt(),i="waiting_browser"===e||"manual_entry"===e||"invalid_key"===e,l=n&&("waiting_browser"===e||"manual_entry"===e);return ct.createElement(ct.Fragment,null,i&&ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{borderStyle:"single",borderColor:"manual_entry"===e||"invalid_key"===e?XO.YELLOW:XO.GRAY,paddingX:1},ct.createElement(nt,{color:XO.DIM},a("apiKey","API Key:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:o,onChange:r,onSubmit:s,placeholder:a("pasteYourApiKey","Paste your API key..."),mask:"*",showCursor:!0}))),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},getCommandAuthHelpText(e))),l&&ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},getCommandAuthUrlLabel(e)),ct.createElement(_D,{url:n,text:n,color:XO.CYAN,dimColor:!0}))),"validating"===e&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},a("checkingApiKeyWithServer","Checking API key with server..."))),("waiting_browser"===e||"manual_entry"===e||"invalid_key"===e)&&ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,a("ctrlCToCancel","ctrl+c to cancel"))))});rF.displayName="AuthInputSection";var sF=__name(({authState:e,statusMessage:n,browserUrl:o,apiKeyInput:r,setApiKeyInput:s,handleApiKeySubmit:a})=>{const{t:i}=xt(),l=__name(()=>"waiting_browser"===e?ct.createElement(Et,{type:"dots"}):"browser_success"===e||"success"===e?ct.createElement(nt,{color:XO.GREEN},vt.tick):"denied"===e||"invalid_key"===e?ct.createElement(nt,{color:XO.RED},vt.cross):"manual_entry"===e?ct.createElement(nt,{color:XO.YELLOW},vt.arrowDown):"error"===e?ct.createElement(nt,{color:XO.RED},vt.warning):ct.createElement(Et,{type:"dots"}),"getStatusIcon"),c=__name(()=>getCommandAuthStatusColor(e),"getStatusColor");return"browser_success"===e||"success"===e||"denied"===e?null:ct.createElement(oF,{title:i("signInToCommandCode","Sign in to Command Code")},ct.createElement(tt,{marginBottom:1},ct.createElement(tt,{marginRight:1},l()),ct.createElement(nt,{color:c()},n)),ct.createElement(rF,{authState:e,browserUrl:o,apiKeyInput:r,setApiKeyInput:s,handleApiKeySubmit:a}))},"AuthFlowUI"),aF=__name(({onComplete:e})=>{const{t:n}=xt(),{authState:o,statusMessage:r,browserUrl:s,apiKeyInput:a,setApiKeyInput:i,handleApiKeySubmit:l,cancel:c}=useAuthFlow({onSuccess:__name((n,o)=>{e({success:!0,config:n,source:o})},"onSuccess"),onFailure:__name((n,o)=>{e({success:!1,reason:n,message:o})},"onFailure"),onCancel:__name(()=>{e({success:!1,reason:"cancelled",message:n("authenticationCancelledByUser","Authentication cancelled by user.")})},"onCancel")});return at((e,n)=>{n.ctrl&&"c"===e&&c()}),ct.createElement(sF,{authState:o,statusMessage:r,browserUrl:s,apiKeyInput:a,setApiKeyInput:i,handleApiKeySubmit:l})},"LoginWithApiKey");Jt(),hL();var iF=getPackageJson(import.meta.url),lF="string"==typeof iF.version&&iF.version.trim()?iF.version:"unknown";function createApiClient(e){return createCommandApiClient({baseUrl:e.baseUrl,timeout:e.timeout,cliVersion:lF,deps:{getAuthKey:getAuthKey,getTraceId:getTraceId,getTelemetryEnv:getTelemetryEnv,trackApiCallStart:trackAPICallStart,cmdZdrEnabled:__name(()=>"1"===process.env.CMD_ZDR,"cmdZdrEnabled"),deepseekInternalEnabled:__name(()=>"1"===process.env.CMD_PROVIDER_DEEPSEEK_INTERNAL,"deepseekInternalEnabled")}})}function getAuthKey(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function formatColoredUserSuffix(e){return isGenericUserName(e)?"":formatUserSuffix(e).replace(e,It.cyan(e))}function getStartedLine(){return`${It.dim("Run")} ${It.cyan(getBinaryCommand())} ${It.dim("to get started.")}`}function getLoginSuccessSuffix(e,n){const o=getLoginSuccessSuffixKind({userName:e,providerLabel:n});return"user"===o?formatColoredUserSuffix(e):"none"===o?"":" successfully"}function formatLoginSuccessStyled(e){const{userName:n,authFileName:o,providerLabel:r,providerWarning:s}=e,a=getLoginSuccessSuffix(n,r),i=r?` with ${It.cyan(r)}`:"",l=[`${It.green(vt.tick)} ${It.bold("Logged in")}${a}${i}`];return s&&l.push(` ${It.yellow(vt.warning)} ${It.yellow(s)}`),l.push("",`${It.dim("API key stored in")} ${It.cyan(`~/.commandcode/${o}`)}`,getStartedLine()),l.join("\n")}function formatAlreadyLoggedInStyled(e){const n=formatColoredUserSuffix(e);return[`${It.green(vt.tick)} ${It.bold("Already logged in")}${n}`,"",getStartedLine()].join("\n")}function resolveProviderAuthTarget(e){const n=resolveCommandProviderId(e.provider);if(!n)return{success:!1,error:`Unknown provider '${e.provider}'. Supported providers: anthropic, copilot, openai.`};const o=Us[n],r=getProviderDisplayName(n);return o?.requiresAuth?{success:!0,provider:n,displayName:r}:{success:!1,error:`${r} does not use provider ${e.action}. Run cmd ${e.action} without a provider for Command Code account auth.`}}function printProviderInstructions(e){console.log(It.yellow(` ${e}`)),console.log()}function printLoginLink(e){console.log(),console.log(It.dim(" Login: ")+createOSC8Link(e,"Open auth page ↗")),console.log()}async function openAuthPage(e,n){await Ot(e,n).catch(()=>{console.log(It.dim(` Could not auto-open browser. Open: ${e}`))})}async function confirmOpenAfterCode(){const e=await Xe({message:"Press Enter to open GitHub and paste the code there.",active:"Open",inactive:"Cancel",initialValue:!0});if(Ze(e)||!0!==e)throw new Error("GitHub Copilot authentication cancelled")}function extractDeviceCode(e){const n=e.match(/copy\s+this\s+code:\s*([^\s]+)/i);return n?.[1]??null}async function printDeviceCode(e){const n=extractDeviceCode(e);if(!n)return void printProviderInstructions(e);const o=await writeClipboardText(n)?It.dim(" (copied)"):"";console.log(` ${It.yellow("Logging into Copilot, use this code:")} ${It.bold(n)}${o}`),console.log()}async function performProviderAuth(e){const{provider:n}=e,o=getProviderDisplayName(n);try{let e=!0;const r=n===qr.COPILOT;if(!r){const n=await Xe({message:`Open browser to sign in with ${o}?`,initialValue:!0});if(Ze(n))return{success:!1,error:`${o} authentication cancelled`};e=!0===n}return await providerLogin({provider:n,onPending:__name(async n=>{if(!n.prompt){if(r)return await printDeviceCode(n.instructions),await confirmOpenAfterCode(),await openAuthPage(n.url),console.log(),void console.log(` ${It.dim(vt.circleFilled)} ${It.dim("Waiting for GitHub...")}`);printProviderInstructions(n.instructions)}if(printLoginLink(n.url),!0===e&&await openAuthPage(n.url,n.prompt?void 0:{wait:!1,background:!0}),n.prompt){printProviderInstructions(n.instructions);const e=await et({message:n.prompt.label,mask:"*"});if(Ze(e)||!String(e).trim())throw new Error("No authorization code provided");return{code:String(e).trim()}}console.log(` ${It.dim(vt.circleFilled)} ${It.dim("Waiting for authorization...")}`)},"onPending")}),{success:!0}}catch(e){const o=e instanceof Error?e.message:"Unknown error";return dlog("[ProviderAuth] performProviderAuth failed",{provider:n,error:o}),{success:!1,error:o}}}__name(createApiClient,"createApiClient"),__name(getAuthKey,"getAuthKey"),Jt(),hL(),__name(formatColoredUserSuffix,"formatColoredUserSuffix"),__name(getStartedLine,"getStartedLine"),__name(getLoginSuccessSuffix,"getLoginSuccessSuffix"),__name(formatLoginSuccessStyled,"formatLoginSuccessStyled"),__name(formatAlreadyLoggedInStyled,"formatAlreadyLoggedInStyled"),Jt(),hL(),__name(resolveProviderAuthTarget,"resolveProviderAuthTarget"),__name(printProviderInstructions,"printProviderInstructions"),__name(printLoginLink,"printLoginLink"),__name(openAuthPage,"openAuthPage"),__name(confirmOpenAfterCode,"confirmOpenAfterCode"),__name(extractDeviceCode,"extractDeviceCode"),__name(printDeviceCode,"printDeviceCode"),__name(performProviderAuth,"performProviderAuth");var cF=__name(({message:e})=>ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.CYAN},ct.createElement(Et,{type:"dots"})),ct.createElement(nt,null," ",e)),"LoadingIndicator"),dF=__name(({message:e})=>ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.GREEN},vt.tick),ct.createElement(nt,null," ",e)),"SuccessIndicator"),uF=__name(({children:e})=>ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,null," "),ct.createElement(tt,null,e)),"StatusContainer");async function checkExistingAuth(e){return checkExistingCommandAuth({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(e)})}function buildAlreadyLoggedInMessage(e){return formatAlreadyLoggedInStyled(e)}function buildSuccessMessage(e,n){return formatLoginSuccessStyled({userName:e,authFileName:n})}function showAuthIntro(){console.log("\n"),qe.intro(heading({text:"Command Code Authentication"}))}function showLoginCancelMessage(e){Ye(`${vt.cross} ${e}`)}function printMessage(e){console.log(""),console.log(e),console.log("")}function runLoginWithApiKeyFlow(){return new Promise(e=>{const{unmount:n}=st(ct.createElement(aF,{onComplete:__name(o=>{setTimeout(()=>{n(),e(o)},100)},"onComplete")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1})})}__name(checkExistingAuth,"checkExistingAuth"),__name(buildAlreadyLoggedInMessage,"buildAlreadyLoggedInMessage"),__name(buildSuccessMessage,"buildSuccessMessage"),__name(showAuthIntro,"showAuthIntro"),__name(showLoginCancelMessage,"showLoginCancelMessage"),__name(printMessage,"printMessage"),__name(runLoginWithApiKeyFlow,"runLoginWithApiKeyFlow");var mF=__name(({env:e,onComplete:n})=>{const[o,r]=mt("checking"),[s,a]=mt(null);return gt(()=>{checkExistingAuth(e).then(e=>{a(e),r(e.isAuthenticated?"logged_in":"not_logged_in")})},[e]),gt(()=>{if("checking"!==o&&null!==s){const e=setTimeout(()=>n(s),100);return()=>clearTimeout(e)}},[o,s,n]),ct.createElement(uF,null,"checking"===o&&ct.createElement(cF,{message:"Checking authentication status..."}),"logged_in"===o&&ct.createElement(dF,{message:"Authenticated"}),"not_logged_in"===o&&ct.createElement(dF,{message:"Ready to log in"}))},"AuthCheckSpinner");async function checkAuthWithSpinner(e){return new Promise(n=>{const{unmount:o}=st(ct.createElement(mF,{env:e,onComplete:e=>{o(),n(e)}}),{stdout:process.stdout,stderr:process.stderr,stdin:process.stdin})})}async function performProviderLogin(e){const n=resolveProviderAuthTarget({provider:e.provider,action:"login"});if(!n.success)return{success:!1,error:n.error};try{const o=await(e.authenticateProvider??performProviderAuth)({provider:n.provider});return o.success?(await(e.persistProvider??persistProviderSelection)(n.provider),{success:!0,provider:n.provider,message:`Logged in to ${n.displayName}`}):{success:!1,provider:n.provider,error:o.error??`${n.displayName} authentication failed`}}catch(e){return{success:!1,provider:n.provider,error:getErrorMessage(e)}}}async function runLogin(){await applyStartupTheme();const e=getApiEnv();return runLoginSequence({checkExistingAuth:__name(()=>checkAuthWithSpinner(e),"checkExistingAuth"),showAlreadyLoggedIn:__name(({userName:e})=>printMessage(buildAlreadyLoggedInMessage(e)),"showAlreadyLoggedIn"),showIntro:showAuthIntro,runCommandLogin:runLoginWithApiKeyFlow,showLoginCancelled:__name(({message:e})=>showLoginCancelMessage(e),"showLoginCancelled"),trackFirstInstall:__name(()=>detectAndTrackFirstInstall({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),getCliVersion:__name(()=>getPackageJson(import.meta.url).version??"unknown","getCliVersion"),log:dlog}),"trackFirstInstall"),showLoginSuccess:__name(({userName:n})=>printMessage(buildSuccessMessage(n,getCommandAuthFileName(e))),"showLoginSuccess"),log:dlog})}async function loginAction(e){try{await applyStartupTheme();const n=e?.trim();if(n){const e=await performProviderLogin({provider:n});e.success||(Ye(`${vt.cross} Login failed: ${e.error}`),process.exit(1)),Je(It.green(`${vt.tick} ${e.message}`)),process.exit(0)}await runLogin(),process.exit(0)}catch(e){isUserCancellation(e)&&process.exit(0),console.error(`${vt.cross} Login failed:`,getErrorMessage(e)),process.exit(1)}}__name(checkAuthWithSpinner,"checkAuthWithSpinner"),__name(performProviderLogin,"performProviderLogin"),__name(runLogin,"runLogin"),__name(loginAction,"loginAction");var pF=new Ve("login").description("Login with Command Code account or a provider").argument("[provider]","Provider to log in with").allowUnknownOption().allowExcessArguments().action(loginAction);function performLogout(){return performCommandLogout({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(),env:process.env,envVarName:ro})}async function performProviderLogout(e){const n=resolveProviderAuthTarget({provider:e.provider,action:"logout"});if(!n.success)return{success:!1,error:n.error};try{const o=await(e.logoutProvider??providerLogout)({provider:n.provider});return{success:!0,provider:n.provider,removed:o,message:o?`Logged out of ${n.displayName}`:`No saved ${n.displayName} credential found`}}catch(e){const o=e instanceof Error?e.message:"Unknown error";return{success:!1,provider:n.provider,error:`Failed to log out of ${n.displayName}: ${o}`}}}function readLogoutUserName(){return getCommandAuthUserName({runtime:getCommandConfigRuntime(),path:getAuthFile()})}Jt(),hL(),__name(performLogout,"performLogout"),__name(performProviderLogout,"performProviderLogout"),__name(readLogoutUserName,"readLogoutUserName");var gF=__name(({userName:e})=>{const n=e?`Logging out ${e}...`:"Logging out...";return ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.CYAN},ct.createElement(Et,{type:"dots"})),ct.createElement(nt,null," ",n))},"LoadingIndicator"),hF=__name(({userName:e,wasAuthenticated:n})=>{const o=!1===n?formatNotAuthenticated():formatLogoutSuccess(e);return ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.GREEN},vt.tick),ct.createElement(nt,null," ",o))},"SuccessIndicator"),fF=__name(({errorMessage:e})=>ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.RED},vt.cross),ct.createElement(nt,{color:XO.RED}," Logout failed: ",e)),"ErrorIndicator"),yF=__name(({status:e,errorMessage:n,userName:o,wasAuthenticated:r})=>"loading"===e?ct.createElement(gF,{userName:o}):"success"===e?ct.createElement(hF,{userName:o,wasAuthenticated:r}):ct.createElement(fF,{errorMessage:n}),"StatusDisplay"),vF=__name(({onComplete:e,userName:n})=>{const[o,r]=mt("loading"),[s,a]=mt(""),[i,l]=mt(null);return gt(()=>{performLogout().then(e=>{l(e),e.success?r("success"):(a(e.error||"Unknown error"),r("error"))})},[]),gt(()=>{if(("success"===o||"error"===o)&&i){const n=setTimeout(()=>e(i),100);return()=>clearTimeout(n)}},[o,i,e]),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,null," "),ct.createElement(tt,null,ct.createElement(yF,{status:o,errorMessage:s,userName:n,wasAuthenticated:i?.wasAuthenticated})))},"LogoutSpinner");function printWarnings(e){0!==e.length&&(console.warn(It.yellow("\nLogout completed with warnings:")),e.forEach(e=>console.warn(It.yellow(` - ${e}`))))}async function renderLogoutUI(){let e;await applyStartupTheme();try{const n=await readLogoutUserName();e=n||void 0}catch{e=void 0}return new Promise(n=>{const{unmount:o}=st(ct.createElement(vF,{onComplete:e=>{o(),n(e)},userName:e}),{stdout:process.stdout,stderr:process.stderr,stdin:process.stdin})})}async function logoutAction(e){const n=e?.trim();if(n){const e=await performProviderLogout({provider:n});e.success||(console.error(`${vt.cross} ${e.error}`),process.exit(1)),console.log(`${vt.tick} ${e.message}`),process.exit(0)}const o=await renderLogoutUI();o.success||process.exit(1),printWarnings(o.warnings),console.log(""),process.exit(0)}__name(printWarnings,"printWarnings"),__name(renderLogoutUI,"renderLogoutUI"),__name(logoutAction,"logoutAction");var SF=new Ve("logout").description("Log out of Command Code or a provider").argument("[provider]","Provider to log out from").allowUnknownOption().allowExcessArguments().action(logoutAction);function checkAuthStatus(e){return checkCommandAuthStatus({runtime:getCommandConfigRuntime(),path:getAuthFile(e),env:process.env})}async function buildStatusJson(){return resolveCommandAuthStatusJson({version:getPackageJson(import.meta.url).version??"unknown",runtime:getCommandConfigRuntime(),apiEnv:getApiEnv(),env:process.env})}async function statusAction(e){if(e.json){const e=await buildStatusJson(),n=!e.authenticated||e.error?1:0;return void process.stdout.write(`${JSON.stringify(e)}\n`,()=>process.exit(n))}const n=Dt("Checking authentication status...").start();try{const e=getApiEnv(),o=await checkAuthStatus(e);o.error&&(n.fail(It.red(`Status check failed: ${o.error}`)),process.exit(1)),o.authenticated||(n.fail(It.red("Not authenticated")),console.log(""),console.log(`${It.dim("Run")} ${It.cyan(`${getBinaryCommand()} auth login`)} ${It.dim("to authenticate.")}`),console.log(""),process.exit(1));const r=isGenericCommandAuthUserName(o.userName)?"":` as ${It.cyan(o.userName)}`;n.succeed("Authentication verified"),console.log(`${It.green(vt.tick)} ${It.bold("Authenticated")}${r}`),console.log(` ${It.dim("Provider:")} ${It.cyan("Command Code")}`),o.fromEnv&&console.log(` ${It.dim("Source:")} ${It.cyan(`$${ro}`)} ${It.dim("(env var)")}`),console.log(""),process.exit(0)}catch(e){n.fail(It.red(`Status check failed: ${e instanceof Error?e.message:"Unknown error"}`)),process.exit(1)}}Jt(),hL(),__name(checkAuthStatus,"checkAuthStatus"),__name(buildStatusJson,"buildStatusJson"),__name(statusAction,"statusAction");var wF=new Ve("status").description("Show authentication status").option("--json","Output status as JSON for automation").allowUnknownOption().allowExcessArguments().action(statusAction);function parseValue(e){try{const n=JSON.parse(e);if("string"==typeof n||"boolean"==typeof n||"number"==typeof n)return n}catch{}return e}function rowValue(e){return e.currentValue}function rowMatchesScope(e,n){return"effective"===n||e.scope===n}function printValue(e,n){console.log(n?JSON.stringify(e,null,2):String(e))}function liveApplyInfo(e){return e===yg?{liveSessionReloadsOnNextRound:!1,message:"This sets the default model for new sessions. Use /model to change the running session."}:{liveSessionReloadsOnNextRound:!0,message:"A running session picks this up at the start of its next round."}}function unknownKeyMessage(e,n){const o=e.suggest({raw:n});return 0===o.length?`Unknown configuration setting: ${n}`:`Unknown configuration setting: ${n}. Did you mean: ${o.join(", ")}?`}async function createRegistry(){const e=getCommandConfigRuntime(),n=await loadCommandCodeConfig({runtime:e});let o=normalizePermissionMode(n.permissions?.defaultMode)??normalizePermissionMode(n.permissionMode)??"default";return createConfigToolRegistry({runtime:e,listModelIds:__name(()=>listKnownModelIds(),"listModelIds"),model:{current:__name(()=>getConfiguredModel(),"current"),set:__name(async({model:e})=>persistDefaultModel({model:e}),"set")},permissionMode:{current:__name(()=>o,"current"),set:__name(async({mode:n})=>{await updateUserSettings({runtime:e,patch:{permissions:{defaultMode:n}}}),o=n},"set")}})}function withCommonOptions(e){return e.addOption(new Ke("--scope <scope>","Configuration scope").choices(["effective","user","project"]).default("effective")).option("--json","Print machine-readable JSON")}new Ve("auth").description("Manage authentication with Command Code").addCommand(pF).addCommand(SF).addCommand(wF),Jt(),hL(),__name(parseValue,"parseValue"),__name(rowValue,"rowValue"),__name(rowMatchesScope,"rowMatchesScope"),__name(printValue,"printValue"),__name(liveApplyInfo,"liveApplyInfo"),__name(unknownKeyMessage,"unknownKeyMessage"),__name(createRegistry,"createRegistry"),__name(withCommonOptions,"withCommonOptions");var kF=withCommonOptions(new Ve("list").alias("ls").description("List configuration settings")).action(async e=>{const n=await createRegistry(),o=(await n.list()).filter(n=>rowMatchesScope(n,e.scope));if(e.json)printValue(o.map(e=>({id:e.id,value:rowValue(e),scope:e.scope,locked:!0===e.locked})),!0);else for(const e of o)console.log(`${e.id} = ${JSON.stringify(rowValue(e))} (${e.scope})`)}),CF=withCommonOptions(new Ve("get").description("Read one configuration setting").argument("<key>","Setting id")).action(async(e,n,o)=>{const r=await createRegistry(),s=r.resolveId({raw:e});s||o.error(unknownKeyMessage(r,e));const a=await r.get({id:s});a||o.error(unknownKeyMessage(r,e)),rowMatchesScope(a,n.scope)||o.error(`${s} is not available in ${n.scope} scope. It lives in ${a.scope} scope - use --scope ${a.scope}.`),n.json?printValue({id:a.id,value:rowValue(a),scope:a.scope},!0):printValue(rowValue(a),!1)}),bF=withCommonOptions(new Ve("set").description("Validate and write one configuration setting").argument("<key>","Setting id").argument("<value>","JSON scalar or plain string value")).action(async(e,n,o,r)=>{"effective"===o.scope&&r.error("config set requires --scope user or project");const s=await createRegistry(),a=s.resolveId({raw:e});a||r.error(unknownKeyMessage(s,e));const i=await s.get({id:a});let l;i||r.error(unknownKeyMessage(s,e)),rowMatchesScope(i,o.scope)||r.error(`${a} cannot be written in ${o.scope} scope. It is a ${i.scope}-scope setting - use --scope ${i.scope}.`);try{l=await s.set({id:a,value:parseValue(n)})}catch(e){r.error(e instanceof Error?e.message:String(e))}const c=liveApplyInfo(l.id),d={id:l.id,previousValue:l.previousValue,newValue:l.newValue,scope:o.scope,liveSessionReloaded:!1,liveSessionReloadsOnNextRound:c.liveSessionReloadsOnNextRound};o.json?printValue(d,!0):(console.log(`${l.id}: ${JSON.stringify(l.previousValue)} -> ${JSON.stringify(l.newValue)} (${o.scope})`),console.log(c.message))}),TF=new Ve("default").description("Reset one configuration setting to its default value").argument("<key>","Setting id").option("--json","Print machine-readable JSON").action(async(e,n,o)=>{const r=await createRegistry(),s=r.resolveId({raw:e});s||o.error(unknownKeyMessage(r,e));const a=await r.get({id:s});let i;a||o.error(unknownKeyMessage(r,e)),void 0===a.defaultValue&&o.error(`${s} has no default value to reset to.`);try{i=await r.set({id:s,value:a.defaultValue})}catch(e){o.error(e instanceof Error?e.message:String(e))}const l=liveApplyInfo(i.id),c={id:i.id,previousValue:i.previousValue,newValue:i.newValue,scope:a.scope,liveSessionReloaded:!1,liveSessionReloadsOnNextRound:l.liveSessionReloadsOnNextRound};n.json?printValue(c,!0):(console.log(`${i.id}: ${JSON.stringify(i.previousValue)} -> ${JSON.stringify(i.newValue)} (default, ${a.scope})`),console.log(l.message))}),EF=new Ve("config").description("Inspect and update validated configuration settings").addCommand(kF).addCommand(CF).addCommand(bF).addCommand(TF);async function openGitHubIssue(e){const n=buildGitHubIssueUrl(e),o=Dt("Opening the GitHub issue…").start();try{await Ot(n,{wait:!1,background:!0}),o.succeed(`Opened ${createOSC8Link(n,"the GitHub issue",!1)} in your browser`),console.log("")}catch(e){o.fail("Failed to open browser"),console.log(""),console.log(createOSC8Link(n,"Open GitHub issue manually",!1)),console.log("")}}Jt(),hL(),__name(openGitHubIssue,"openGitHubIssue");var PF=new Ve("feedback").alias("issue").description("Report a bug or share feedback — opens a GitHub issue").argument("[title]","Optional issue title").action(openGitHubIssue);Jt();var MF=new Ve("help").description("Display help information").allowUnknownOption().allowExcessArguments().action(function(){this.parent?.help()});Jt(),Jt(),hL(),Jt(),hL();var IF=__name(({icon:e,label:n,children:o})=>ct.createElement(nt,null,ct.createElement(nt,{color:XO.CYAN},e," "),ct.createElement(nt,{color:XO.DIM},n.padEnd(12)),o),"Row"),AF=__name(({title:e})=>ct.createElement(nt,null,ct.createElement(nt,{color:XO.GRAY},"───"),ct.createElement(nt,{color:XO.WHITE}," ",e," "),ct.createElement(nt,{color:XO.GRAY},"─".repeat(35))),"Header"),xF=__name(({title:e,marginTop:n=0,children:o})=>ct.createElement(tt,{flexDirection:"column",marginTop:n},ct.createElement(AF,{title:e}),ct.createElement(tt,{flexDirection:"column",paddingY:1},o)),"Section"),RF=__name(({host:e,systemInfo:n})=>{const{t:o}=xt();return ct.createElement(xF,{title:o("systemInformation","System Information")},ct.createElement(IF,{icon:vt.bullet,label:o("version","Version")},ct.createElement(nt,{color:XO.GREEN},n.version)),ct.createElement(IF,{icon:vt.bullet,label:o("date","Date")},ct.createElement(nt,null,formatDate())),ct.createElement(IF,{icon:vt.pointer,label:o("platform","Platform")},ct.createElement(nt,{color:XO.GREEN},n.os),ct.createElement(nt,{color:XO.DIM}," ","(",e.platform,", ",e.arch,")")),ct.createElement(IF,{icon:vt.triangleUp,label:o("hostname","Hostname")},ct.createElement(nt,null,e.hostname)),ct.createElement(IF,{icon:vt.bullet,label:o("user","User")},ct.createElement(nt,{color:XO.YELLOW},e.username)),ct.createElement(IF,{icon:vt.bullet,label:o("cpus","CPUs")},ct.createElement(nt,{color:XO.MAGENTA},e.cpus.length," ",o("cores","cores"))),ct.createElement(IF,{icon:vt.bullet,label:o("memory","Memory")},ct.createElement(nt,{color:XO.CYAN},e.totalMemoryGb," GB")),ct.createElement(IF,{icon:vt.play,label:o("uptime","Uptime")},ct.createElement(nt,null,formatUptime(e.uptimeSeconds))),ct.createElement(IF,{icon:vt.arrowRight,label:o("home","Home")},ct.createElement(nt,{color:XO.DIM},e.homeDir)),ct.createElement(IF,{icon:vt.pointer,label:o("shell","Shell")},ct.createElement(nt,null,n.shell)),ct.createElement(IF,{icon:vt.bullet,label:"Node"},ct.createElement(nt,{color:XO.GREEN},e.nodeVersion)),ct.createElement(IF,{icon:vt.pointer,label:o("terminal","Terminal")},ct.createElement(nt,{color:XO.CYAN},n.terminal)),ct.createElement(IF,{icon:vt.bullet,label:"IDE"},ct.createElement(nt,null,n.ide)))},"SystemInfoSection"),LF=__name(({cpus:e})=>{const{t:n}=xt();return ct.createElement(xF,{title:n("cpuDetails","CPU Details"),marginTop:1},e.map((e,o)=>ct.createElement(IF,{key:o,icon:vt.bullet,label:n("core","Core {{v0}}",{v0:o})},ct.createElement(nt,null,e.model),ct.createElement(nt,{color:XO.YELLOW}," @ ",e.speedMHz," MHz"))))},"CPUDetailsSection"),OF=__name(({addresses:e})=>{const{t:n}=xt();return ct.createElement(xF,{title:n("network","Network"),marginTop:1},e.map((e,n)=>ct.createElement(IF,{key:`${e.interfaceName}-${n}`,icon:vt.bullet,label:e.interfaceName},ct.createElement(nt,{color:XO.GREEN},e.address))))},"NetworkSection"),DF=__name(({host:e,verbose:n,systemInfo:o})=>{const{t:r}=xt();return ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,null,r("systemInformation","System Information")),ct.createElement(nt,null,"─".repeat(40)),ct.createElement(nt,null,r("version","Version")," ",o.version),ct.createElement(nt,null,r("date","Date")," ",formatDate()),ct.createElement(nt,null,r("platform","Platform")," ",o.os," (",e.platform,","," ",e.arch,")"),ct.createElement(nt,null,r("hostname","Hostname")," ",e.hostname),ct.createElement(nt,null,r("user","User")," ",e.username),ct.createElement(nt,null,r("cpus","CPUs")," ",e.cpus.length," ",r("cores","cores")),ct.createElement(nt,null,r("memory","Memory")," ",e.totalMemoryGb," GB"),ct.createElement(nt,null,r("uptime","Uptime")," ",formatUptime(e.uptimeSeconds)),ct.createElement(nt,null,r("home","Home")," ",e.homeDir),ct.createElement(nt,null,r("shell","Shell")," ",o.shell),ct.createElement(nt,null,"Node ",e.nodeVersion),ct.createElement(nt,null,r("terminal","Terminal")," ",o.terminal),ct.createElement(nt,null,"IDE ",o.ide),n&&ct.createElement(ct.Fragment,null,ct.createElement(nt,null,"\n",r("cpuDetails","CPU Details")),ct.createElement(nt,null,"─".repeat(40)),e.cpus.map((e,n)=>ct.createElement(nt,{key:n},r("core2","Core")," ",String(n).padEnd(10),e.model," @ ",e.speedMHz," MHz")),ct.createElement(nt,null,"\n",r("network","Network")),ct.createElement(nt,null,"─".repeat(40)),e.externalIpv4.map((e,n)=>ct.createElement(nt,{key:`${e.interfaceName}-${n}`},e.interfaceName.padEnd(12),e.address))))},"PlainTextInfo"),NF=__name(({host:e,verbose:n,systemInfo:o})=>ct.createElement(tt,{flexDirection:"column"},ct.createElement(RF,{host:e,systemInfo:o}),n&&ct.createElement(LF,{cpus:e.cpus}),n&&ct.createElement(OF,{addresses:e.externalIpv4})),"StyledInfo"),FF=__name(({verbose:e=!1,text:n=!1,systemInfo:o})=>{const{exit:r}=it();gt(()=>{const e=setTimeout(()=>r(),50);return()=>clearTimeout(e)},[r]);const s=ut(()=>collectHostDiagnostics(),[]);return n?ct.createElement(DF,{host:s,verbose:e,systemInfo:o}):ct.createElement(NF,{host:s,verbose:e,systemInfo:o})},"InfoUI");async function runInfo(e){await applyStartupTheme();const n=getSystemInfo(),{waitUntilExit:o}=st(ct.createElement(FF,{verbose:e.verbose,text:e.text,systemInfo:n}));await o()}__name(runInfo,"runInfo");var _F=new Ve("info").description("Display system information").option("--verbose","Show detailed CPU and network information").option("--text","Print plain text without colors").allowUnknownOption().allowExcessArguments().action(async e=>{await runInfo(e)});Jt(),hL(),Jt(),Jt(),Jt(),hL(),Jt(),Jt();var $F=__name(({label:e=t("loading","Loading"),spinner:n=!1})=>{const{t:o}=xt();return ct.createElement(nt,{color:XO.DIM},n&&ct.createElement(ct.Fragment,null,ct.createElement(Et,{type:"dots"})," "),e,"…")},"LoadingLine"),UF=__name(({children:e,glyph:n=!0})=>ct.createElement(nt,{color:XO.RED},n&&`${vt.cross} `,e),"ErrorLine"),BF=__name(({children:e,glyph:n=!0})=>ct.createElement(nt,{color:XO.GREEN},n&&`${vt.tick} `,e),"SuccessLine"),jF=__name(({title:e=t("oopsSomethingWentWrong","Oops, something went wrong:"),children:n})=>{const{t:o}=xt();return ct.createElement(tt,{flexDirection:"column",borderStyle:"single",borderColor:XO.RED,paddingX:2,paddingY:1,marginTop:1},ct.createElement(nt,{color:XO.RED,bold:!0},e),ct.createElement(tt,{marginTop:1},ct.createElement(nt,null,n)))},"ErrorPanel"),WF=__name(({message:e,hint:n})=>ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},e),n?ct.createElement(nt,{color:XO.DIM},n):null),"EmptyState"),HF=__name(({error:e,traceId:n})=>{const{t:o}=xt();return ct.createElement(tt,{marginBottom:2},ct.createElement(jF,null,e,n&&ct.createElement(nt,{color:XO.DIM},"\n\n",o("traceId2","Trace ID:")," ",n)))},"ErrorSection");async function runTasteImport(e={}){const n=await runOnboardingImportWithEvents({events:qp,signal:e.signal,onDebug:__name(e=>dlog(e),"onDebug"),runOnboarding:__name(async e=>(await createHarnessSession({sessionId:`taste-onboarding-${crypto.randomUUID()}`,baseUrl:getApiBaseUrl()})).runTasteOnboarding(e),"runOnboarding")});return{success:n.success,totalPrompts:n.totalPrompts,preferencesLearned:n.preferencesLearned,errors:[...n.errors],status:n.status,totalSessions:n.totalSessions,learnedSessions:n.learnedSessions,agentSessions:n.agentSessions?.map(e=>({agent:e.agent,sessionIds:[...e.sessionIds],displayName:e.displayName}))}}Jt(),Jt(),hL(),Jt(),hL(),__name(runTasteImport,"runTasteImport");var GF={isImporting:!1,waitingForInput:!1,error:null},VF=__name(e=>{const n=pt(null),o=pt(e);o.current=e;const[r,s]=mt({isImporting:!0,waitingForInput:!1,alreadyLearned:!1,learnedSessionCount:0,totalSessionCount:0,agentSessions:[],error:null}),a=ht(()=>{const e=n.current;!e||e.isAborted()||(e.finishCancelled(),s(e=>({...e,...GF})))},[]);return gt(()=>{const e=createOnboardingImportLifecycle({events:qp});n.current=e;let r=!1;return(async()=>{try{const n=await e.race(runTasteImport({signal:e.signal}));if(e.isAborted())return;if("cancelled"===n.status)return void s(e=>({...e,...GF}));if(n.success)return void s(e=>({...e,isImporting:!1,waitingForInput:!0}));if("already-learned"===n.status)return void s(e=>({...e,isImporting:!1,alreadyLearned:!0,learnedSessionCount:n.learnedSessions||0,totalSessionCount:n.totalSessions||0,agentSessions:n.agentSessions||[],waitingForInput:!0}));const r=n.errors.join("\n");s(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),o.current&&o.current(r)}catch(n){if(e.isAborted())return;const r=e.handleFailure(n);s(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),o.current&&o.current(r)}finally{e.dispose(),r=!0}})(),()=>{e.dispose(),r||e.finishCancelled(),n.current===e&&(n.current=null)}},[]),{...r,cancelImport:a}},"useImportProcess");Jt();var KF,zF,qF=__name(({onEscape:e,onEnter:n,enabled:o=!0})=>{at((r,s)=>{o&&(s.escape&&e(),(s.return||"\n"===r)&&n())})},"useKeyboardInput");function getRuntime(){return KF??=createNodeRuntime()}function getStore(){return zF??=createOnboardingStore({runtime:getRuntime()})}async function checkOnboardingConditions2(){const e=await checkOnboardingConditions({runtime:getRuntime(),store:getStore()});return{shouldTrigger:e.shouldTrigger,reason:e.reason,sessionCount:e.sessionCount,hasTasteContent:e.hasTasteContent,agentSessions:e.agentSessions.map(e=>({agent:e.agent,sessionIds:[...e.sessionIds],displayName:e.displayName}))}}async function markOnboardingCompleted(){await getStore().markCompleted()}async function markOnboardingSkipped2(){await markOnboardingSkipped({runtime:getRuntime(),store:getStore()})}async function dismissOnboardingForeverForProject(){await getStore().dismissForever()}async function triggerTasteOnboarding({projectTrusted:e,onboardingComplete:n,isOnboardingMode:o,tasteOnboardingCheckedRef:r,setIsOnboardingMode:s}){if(e)if(n)dlog("[Onboarding] skipped - already completed");else if(o)dlog("[Onboarding] skipped - already showing");else if(r.current)dlog("[Onboarding] skipped - already checked this session");else{r.current=!0,dlog("[Onboarding] checking if taste learning should start...");try{const e=await checkOnboardingConditions2();if(!e.shouldTrigger)return void dlog("[Onboarding] not needed");dlog(`[Onboarding] starting taste learning (${e.reason})`),s(!0)}catch(e){dlog("[Onboarding] error",e)}}else dlog("[Onboarding] skipped - project not yet trusted")}Jt(),hL(),Jt(),hL(),__name(getRuntime,"getRuntime"),__name(getStore,"getStore"),__name(checkOnboardingConditions2,"checkOnboardingConditions"),__name(markOnboardingCompleted,"markOnboardingCompleted"),__name(markOnboardingSkipped2,"markOnboardingSkipped"),__name(dismissOnboardingForeverForProject,"dismissOnboardingForeverForProject"),__name(triggerTasteOnboarding,"triggerTasteOnboarding");var YF=__name(({autoLearn:e,onShouldSkip:n})=>{const[o,r]=mt(null),[s,a]=mt(null),[i,l]=mt(void 0),c=pt(!1);return gt(()=>{if(c.current)return;let o=null;return(async()=>{try{c.current=!0,dlog("[Hook:Conditions] loading...");const o=await checkOnboardingConditions2();if(r(o),!o.shouldTrigger&&!e)return dlog("[Hook:Conditions] no trigger, skipping"),void n();dlog(`[Hook:Conditions] result: ${o.reason}, sessions: ${o.sessionCount}`)}catch(e){const r=e instanceof Error?e.message:String(e);dlog("[Hook:Conditions] error",r);const s=trackError({error:e instanceof Error?e:new Error(r),context:{component:Rs.LEARN_TASTE_COMMAND,heading:"Onboarding conditions check failed"}});l(s),a(r),o=setTimeout(()=>n(),2e3)}})(),()=>{o&&clearTimeout(o)}},[e,n]),{conditions:o,error:s,traceId:i,isLoading:!o&&!s}},"useOnboardingConditions");Jt(),hL();var JF=__name(({conditions:e,autoLearn:n})=>{const[o,r]=mt("checking"),s=pt(!1);return gt(()=>{if(e&&!s.current){if(s.current=!0,n)return dlog("[Flow] autoLearn → learning"),void r("learning");dlog(`[Flow] → asking (${e.reason})`),r("asking")}},[e,n]),gt(()=>{dlog(`[Flow] step: ${o}`)},[o]),{step:o,setStep:r}},"useOnboardingFlow");async function completeOnboarding(e){try{await markOnboardingCompleted(),dlog("[Helper] onboarding marked complete")}catch(e){dlog(`[Helper] complete error: ${e instanceof Error?e.message:String(e)}`)}finally{qp.reset(),e()}}async function skipOnboarding(e){try{await markOnboardingSkipped2(),dlog("[Helper] onboarding marked skipped")}catch(e){dlog(`[Helper] skip error: ${e instanceof Error?e.message:String(e)}`)}finally{qp.reset(),e()}}Jt(),hL(),Jt(),hL(),__name(completeOnboarding,"completeOnboarding"),__name(skipOnboarding,"skipOnboarding");var QF=__name(({onStepChange:e,onError:n,onCompleteCallback:o})=>{const r=pt(o),s=ht(()=>{dlog("[Handler] import started → learning"),e("learning")},[e]),a=ht(async()=>{dlog("[Handler] import complete → done"),e("done"),await completeOnboarding(()=>r.current())},[e]),i=ht(e=>{dlog(`[Handler] import error: ${e}`),n(e)},[n]),l=ht(async()=>{dlog("[Handler] error dismissed by user → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]),c=ht(async()=>{dlog("[Handler] skipped → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]);return o!==r.current&&(r.current=o),{handleImportStart:s,handleImportComplete:a,handleImportError:i,handleErrorDismiss:l,handleSkip:c}},"useOnboardingHandlers");Jt(),hL();var XF=__name(e=>{const[n,o]=mt(()=>createTasteImportProjection({initialSteps:e})),r=ht(e=>{o(n=>({...n,importError:e}))},[]);return gt(()=>{const n=__name(()=>{o(resetTasteImportProjection({initialSteps:e}))},"handleReset"),r=__name(e=>{o(n=>reduceTasteImportEvent({state:n,event:e}))},"handleNewEvent");return qp.on("reset",n),qp.on("new-event",r),()=>{qp.off("reset",n),qp.off("new-event",r)}},[e]),{steps:n.steps,importError:n.importError,importTraceId:n.importTraceId,setImportError:r}},"useProgressEvents");Jt(),Jt(),Jt();var ZF=__name(({isImporting:e=!1,waitingForInput:n=!1})=>{const{t:o}=xt();return ct.createElement(ct.Fragment,null,e&&ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("escToCancel2","Esc to cancel"))),n&&ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("press","Press")," ",ct.createElement(qN,null,"Enter")," ",o("toContinue","to continue"))))},"HelpTextSection");Jt(),Jt(),Jt(),Jt();var e_=__name(()=>{const[e,n]=mt(!0);return gt(()=>{const e=setInterval(()=>{n(e=>!e)},500);return()=>clearInterval(e)},[]),ct.createElement(nt,{color:XO.YELLOW},e?vt.circleFilled:vt.circle)},"PulsingDot");Jt();var t_=[vt.bullet,vt.squareSmallFilled,vt.lozenge,vt.star,vt.triangleRight,vt.triangleUp,vt.circleFilled,vt.pointer],n_=__name(e=>String(e).padStart(3," "),"padNum"),o_=__name(e=>t_[e%t_.length],"getSymbol"),r_=__name((e,n,o,r)=>r?t("observationsScroll","{{v0}} observations (↑↓ scroll)",{v0:e}):t("scroll","↑{{v0}} ↓{{v1}} (↑↓ scroll)",{v0:n_(n),v1:n_(o)}),"buildStatusLine"),s_=__name(({insights:e})=>{const[n,o]=mt(0),[r,s]=mt(!0),a=e.length,i=a>10,l=Math.max(0,a-10),c=r&&i?l:n;if(at((e,n)=>{if(i){if(n.upArrow)return s(!1),void o(Math.max(0,c-1));if(n.downArrow){const e=Math.min(l,c+1);s(e===l),o(e)}}}),0===a)return null;const d=e.slice(c,c+10),u=c,m=a-c-10;return ct.createElement(tt,{flexDirection:"column",marginLeft:4,marginBottom:0},i&&ct.createElement(nt,{color:XO.DIM},r_(a,u,m,r)),d.map((e,n)=>{const o=c+n;return ct.createElement(tt,{key:o,marginBottom:0},ct.createElement(nt,{color:XO.DIM},o_(o)," ",e))}))},"ScrollableInsights");function getLabelColor(e,n){return e?XO.WHITE:n?XO.YELLOW:XO.DIM}function formatCategorySuffix(e){if(0===e.length)return"";const n=1===e.length?"category":"categories";return t("across"," across {{v0}} {{v1}}",{v0:e.length,v1:n})}__name(getLabelColor,"getLabelColor"),__name(formatCategorySuffix,"formatCategorySuffix");var a_=__name(({label:e,message:n,active:o,complete:r,items:s,insights:a,isIntro:i,isAllComplete:l,summary:c,warning:d})=>{const{t:u}=xt();if(i)return ct.createElement(tt,{flexDirection:"column",marginBottom:0},ct.createElement(YD,null),ct.createElement(tt,{marginTop:0},ct.createElement(nt,{color:XO.DIM},VD),ct.createElement(tt,{marginLeft:2},l?ct.createElement(nt,{color:eD.TEXT},u("learnedYourCodingTaste","learned your coding taste")):ct.createElement(BD,null))));const m=__name(()=>r?ct.createElement(nt,{color:rD.BG},vt.square):o?ct.createElement(e_,null):ct.createElement(nt,{color:XO.DIM},vt.circle),"getStatusIcon"),p=s.length>0||a.length>0||n||c&&c.learningCount>0;return!r||o||p?ct.createElement(tt,{flexDirection:"column",marginBottom:0},(o||r)&&ct.createElement(tt,{marginBottom:0},ct.createElement(tt,{marginRight:1},m()),ct.createElement(nt,{color:getLabelColor(r,o)},translateUiCopy(e))),r&&n&&(!c||0===c.learningCount)&&ct.createElement(tt,{marginLeft:3,marginBottom:0},ct.createElement(nt,{color:XO.DIM},n)),s.length>0&&ct.createElement(tt,{flexDirection:"column",marginLeft:1,marginBottom:0},s.map(e=>ct.createElement(nt,{key:e,color:XO.DIM},`${vt.bullet} ${e}`))),a.length>0&&ct.createElement(s_,{insights:a}),r&&c&&c.learningCount>0&&ct.createElement(tt,{flexDirection:"column",marginLeft:1,marginBottom:0},ct.createElement(tt,{marginBottom:1,flexDirection:"row"},ct.createElement(nt,null,VD),ct.createElement(tt,{marginLeft:2},ct.createElement(nt,{color:eD.TEXT},u("learned","Learned")," ",c.learningCount," ",translateUiCopy(1===c.learningCount?"preference":"preferences"),formatCategorySuffix(c.categories)))),ct.createElement(tt,{flexDirection:"column",marginLeft:1},ct.createElement(nt,{color:XO.DIM},vt.pointerSmall," ",u("storedIn","Stored in")," ",c.storage),ct.createElement(nt,{color:XO.DIM},u("commandCodeAutomaticallyUsesUpdatesTasteFiles","Command Code automatically uses & updates taste files.")))),r&&d&&ct.createElement(tt,{flexDirection:"column",marginLeft:1,marginBottom:0},d.split("\n").map(e=>ct.createElement(nt,{key:e,color:XO.YELLOW},`${vt.warning} ${e}`)))):null},"StepItem"),i_=__name(({steps:e})=>{const n=e.find(e=>"complete"===e.id)?.complete??!1;return ct.createElement(tt,{flexDirection:"column",marginBottom:1},e.map((e,o)=>ct.createElement(tt,{key:e.id,marginLeft:0===o?0:3},ct.createElement(a_,{label:e.label,message:e.message,active:e.active,complete:e.complete,items:e.items,insights:e.insights,summary:e.summary,warning:e.warning,isIntro:0===o,isAllComplete:n}))))},"StepsSection"),l_=__name(({steps:e})=>ct.createElement(i_,{steps:e}),"ProgressSection"),c_=__name(({onComplete:e,onCancel:n,onError:o,onErrorDismiss:r})=>{const{steps:s,importError:a,importTraceId:i}=XF(Mx),{isImporting:l,waitingForInput:c,error:d,cancelImport:u}=VF(o);return qF({onEscape:__name(()=>{if(l)return u(),void n?.();c&&((d||a)&&r?r():e())},"onEscape"),onEnter:__name(()=>{c&&((d||a)&&r?r():e())},"onEnter"),enabled:l||c}),ct.createElement(tt,{flexDirection:"column",padding:1},a&&ct.createElement(HF,{error:a,traceId:i}),!a&&ct.createElement(l_,{steps:s}),ct.createElement(ZF,{isImporting:l,waitingForInput:c}))},"ImportProgress");async function runLearnTaste(){await applyStartupTheme();const{unmount:e}=st(ct.createElement(c_,{onComplete:__name(()=>{e(),process.exit(0)},"onComplete"),onCancel:__name(()=>{e(),process.exit(0)},"onCancel"),onErrorDismiss:__name(()=>{e(),process.exit(1)},"onErrorDismiss")}))}__name(runLearnTaste,"runLearnTaste");var d_=new Ve("learn-taste").description("Learn from your previous sessions - updates your taste profile").allowUnknownOption().allowExcessArguments().action(async()=>{try{if(await loadCustomProviderModels(),isByok({model:getConfiguredModel()??""}))return console.log(Xg),void await shutdownTelemetry();await runLearnTaste()}catch(e){trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"learn_taste_render_failed"}),context:{component:Rs.LEARN_TASTE_COMMAND,heading:"Learn taste render failed"}}),dlog(`[/learn-taste] render failed: ${e instanceof Error?e.message:String(e)}`),await shutdownTelemetry(),process.exit(1)}});function getBinNames(){const e=getPackageJson(import.meta.url);return e.bin&&"object"==typeof e.bin?Object.keys(e.bin):e.bin&&"string"==typeof e.bin?[e.name??getBinaryCommand()]:[getBinaryCommand()]}function getInvokedCommandName(){try{const e=getBinNames(),o=process.argv[1];if(!o)return e[0]||getBinaryCommand();const r=n.basename(o).replace(/\.(m?[jt]s|cjs)$/,"");return e.includes(r)?r:e[0]||getBinaryCommand()}catch{return getBinaryCommand()}}function addMcpCommand(){const e=new Ve("add");return e.description("Add an MCP server").argument("<name>","Server name (unique identifier)").argument("[url]","Server URL (required for http transport)").option("-t, --transport <type>","Transport type (stdio or http)","stdio").addOption(new Ke("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("-e, --env <KEY=value>","Environment variable (repeatable)",collectKeyValue,{}).option("-H, --header <header>","HTTP header (repeatable, http only)",collectHeaders,{}).allowUnknownOption().allowExcessArguments().action(async(e,n,o,r)=>{const s=getInvokedCommandName();try{const a=await addMcpServerFromCliInput({name:e,url:n,transport:o.transport,scope:o.scope,env:o.env,headers:o.header,rawArgs:r.args,argv:process.argv,cliName:s,addMcpServer:addMcpServer,checkServerAuthRequirements:__name(async e=>{console.log(St.gray("Checking server authentication requirements..."));const n=await checkCommandMcpServerAuthRequirements(e);return n.requiresAuth&&console.log(St.cyan("Server requires OAuth authentication.")),n},"checkServerAuthRequirements"),registerOAuthClient:__name(async e=>(console.log(St.gray("Registering OAuth client...")),registerCommandMcpOAuthClient({registrationEndpoint:e.registrationEndpoint,clientName:e.clientName,redirectUris:[...e.redirectUris]})),"registerOAuthClient"),performOAuthFlow:__name(async e=>{console.log(St.gray("A browser window will open for authentication.\n"));const n=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0,resource:e.config.resource},{onStatus:e.onStatus});return{success:n.success,token:n.tokens,error:n.error}},"performOAuthFlow"),onStatus:__name(e=>{console.log(St.gray(` ${e}`))},"onStatus")});for(const e of a.warnings)console.log(St.yellow(`Warning: ${e}`));"success"===a.authStatus&&console.log(St.green("✓ Successfully authenticated")),"failed"===a.authStatus&&(console.log(St.yellow(`Warning: Authentication failed: ${a.authError}`)),console.log(St.gray(`You can retry with: ${getBinaryCommand()} mcp auth ${e}`)),console.log(St.gray("Or authenticate via the /mcp menu in a session")));const i="failed"===a.authStatus?`✓ Added MCP server '${e}' to ${a.scopeLabel} config (authentication pending)`:`✓ Added MCP server '${e}' to ${a.scopeLabel} config`;console.log("failed"===a.authStatus?St.yellow(i):St.green(i)),console.log(St.gray(` ${formatMcpCommandSummary(a.serverConfig)}`)),console.log(""),console.log(St.cyan("Next steps:")),console.log(St.gray(`Start ${s} and run /mcp to manage configured MCP servers.`))}catch(e){printMcpAddError(e,{cliName:s}),process.exit(1)}}),e}function printMcpAddError(e,n){if(e instanceof EP)if(console.error(St.red(`Error: ${e.message}`)),"invalid-name"!==e.code)if("invalid-transport"!==e.code){if("missing-http-url"!==e.code)return"missing-stdio-command"===e.code?(console.error(St.gray(`Usage: ${n.cliName} mcp add --transport stdio <name> -- <command> [args...]`)),void console.error(St.gray(` or: ${n.cliName} mcp add <name> <command> [args...]`))):void("stdio-command-is-url"!==e.code?"insecure-oauth-url"===e.code&&(console.error(St.gray("OAuth requires https:// (http:// is only allowed for loopback hosts: localhost, 127.0.0.1, [::1]).")),console.error(St.gray("Switch the URL to https:// or use a non-OAuth server."))):e.suggestedCommand&&console.error(St.gray(`Did you mean: ${e.suggestedCommand}`)));console.error(St.gray(`Usage: ${n.cliName} mcp add --transport http <name> <url>`))}else console.error(St.gray("Valid options: stdio, http"));else console.error(St.gray(TP));else console.error(St.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function collectKeyValue(e,n){try{return addMcpKeyValue(e,n)}catch(e){printCollectError(e),process.exit(1)}}function collectHeaders(e,n){try{return addMcpHeader(e,n)}catch(e){printCollectError(e),process.exit(1)}}function printCollectError(e){console.error(St.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function addJsonMcpCommand(){const e=new Ve("add-json");return e.description("Add an MCP server from JSON configuration").argument("<name>","Server name (unique identifier)").argument("<json>","Server configuration as JSON string").addOption(new Ke("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("--client-secret <secret>","OAuth client secret (injected into oauth config)").action(async(e,n,o)=>{const r=getInvokedCommandName();try{const s=await addMcpServerFromJson({name:e,json:n,scope:o.scope,clientSecret:o.clientSecret,addMcpServer:addMcpServer,performOAuthFlow:__name(async e=>{console.log(St.cyan("Starting OAuth authentication...")),console.log(St.gray("A browser window will open for authentication.\n"));const n=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0,resource:e.config.resource},{port:e.port,onStatus:e.onStatus});return{success:n.success,token:n.tokens,error:n.error}},"performOAuthFlow"),onStatus:__name(e=>{console.log(St.gray(` ${e}`))},"onStatus")});"success"===s.authStatus&&console.log(St.green(`\n✓ Successfully authenticated with '${e}'`)),"failed"===s.authStatus&&(console.error(St.yellow(`\nWarning: Authentication failed: ${s.authError}`)),console.error(St.gray(`You can retry with: ${r} mcp auth ${e}`)),console.error(St.gray("Or authenticate via the /mcp menu in a session")));const a="failed"===s.authStatus?`✓ Added MCP server '${e}' to ${s.scopeLabel} config (authentication pending)`:`✓ Added MCP server '${e}' to ${s.scopeLabel} config`;console.log("failed"===s.authStatus?St.yellow(a):St.green(a)),console.log(St.gray(` ${formatMcpCommandSummary(s.serverConfig)}`)),console.log(""),console.log(St.cyan("Next steps:")),console.log(St.gray(`Start ${r} and run /mcp to manage configured MCP servers.`))}catch(e){printMcpAddJsonError(e,{cliName:r}),process.exit(1)}}),e}function printMcpAddJsonError(e,n){if(e instanceof EP)if(console.error(St.red(`Error: ${e.message}`)),"invalid-name"!==e.code){if("invalid-json"===e.code)return console.error(St.gray("Make sure to quote the JSON string properly")),void console.error(St.gray(`Example: ${n.cliName} mcp add-json github '{"type":"stdio","command":"npx"}'`));if("invalid-config"===e.code&&e.issues)for(const n of e.issues)console.error(St.gray(` ${n.path.join(".")}: ${n.message}`));else"missing-http-url"!==e.code&&e.code}else console.error(St.gray(TP));else console.error(St.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function authMcpCommand(){const e=new Ve("auth");return e.description("Manage OAuth authentication for MCP servers").argument("[server]","Server name to authenticate").option("--status","Check authentication status").option("--clear","Clear stored authentication").option("--list","List servers with stored authentication").action(async(e,n)=>{const o=getInvokedCommandName();try{if(n.list)return void await printAuthList();if(e||(console.error(St.red("Error: Server name is required")),console.error(St.gray(`Usage: ${o} mcp auth <server>`)),console.error(St.gray(` ${o} mcp auth --list`)),process.exit(1)),n.status)return void await printAuthStatus(e);if(n.clear)return(await clearMcpAuth({serverName:e,deleteTokens:deleteTokens})).deleted?void console.log(St.green(`✓ Cleared authentication for '${e}'`)):void console.log(St.yellow(`No authentication stored for '${e}'`));console.log(St.cyan(`Authenticating with '${e}'...`)),console.log(St.gray("A browser window will open for authentication.\n")),await authenticateConfiguredMcpServer({serverName:e,getMcpServer:getMcpServer,performOAuthFlow:__name(async e=>{const n=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0,resource:e.config.resource},{onStatus:e.onStatus});return{success:n.success,token:n.tokens,error:n.error}},"performOAuthFlow"),discoverAndAuthenticate:discoverAndAuthenticateCommandMcpServer,onStatus:__name(e=>{console.log(St.gray(` ${e}`))},"onStatus")}),console.log(St.green(`\n✓ Successfully authenticated with '${e}'`)),console.log(St.gray("Restart the session to connect with the authenticated server."))}catch(n){printMcpAuthError(n,{cliName:o,serverName:e}),process.exit(1)}}),e}async function printAuthList(){const e=await listMcpAuthStatuses({listServersWithTokens:listServersWithTokens,getTokens:getTokens,isTokenExpired:isTokenExpired});if(0!==e.length){console.log(St.hex("#E4CCFF").bold("\nAuthenticated MCP Servers\n"));for(const n of e){const e=n.expired?St.yellow("expired"):St.green("valid");console.log(` ${n.serverName}: ${e}`)}console.log("")}else console.log(St.yellow("No servers with stored authentication."))}async function printAuthStatus(e){const n=await getMcpAuthStatus({serverName:e,hasTokens:hasTokens,getTokens:getTokens,isTokenExpired:isTokenExpired});if("missing"!==n.status){if("expired"===n.status)return console.log(St.yellow(`Authentication for '${e}' has expired`)),void(n.hasRefreshToken&&console.log(St.gray(" A refresh token is available for re-authentication")));console.log(St.green(`Authentication for '${e}' is valid`)),"number"==typeof n.expiresInMinutes&&console.log(St.gray(` Expires in ${n.expiresInMinutes} minutes`)),n.scope&&console.log(St.gray(` Scopes: ${n.scope}`))}else console.log(St.yellow(`No authentication stored for '${e}'`))}function printMcpAuthError(e,n){if(e instanceof EP)return"server-not-found"===e.code?(console.error(St.red(`Error: ${e.message}`)),void console.error(St.gray(`Use "${n.cliName} mcp list" to see configured servers`))):"auth-failed"===e.code?(console.error(St.red(`\nError: ${e.message}`)),void(n.serverName&&console.log(St.gray(`Try again with "${n.cliName} mcp auth ${n.serverName}"`)))):void console.error(St.red(`Error: ${e.message}`));console.error(St.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function getMcpCommand(){const e=new Ve("get");return e.description("Show details for an MCP server").argument("<name>","Server name").action(async e=>{try{const n=await getMcpServerDetails({name:e,getMcpServer:getMcpServer}),{config:o,scope:r}=n;if(console.log(St.hex("#E4CCFF").bold(`\nMCP Server: ${e}\n`)),console.log(` ${St.dim("Scope:")} ${r}`),console.log(` ${St.dim("Transport:")} ${o.transport}`),console.log(` ${St.dim("Status:")} ${o.enabled?St.green("enabled"):St.gray("disabled")}`),"http"===o.transport){if(console.log(` ${St.dim("URL:")} ${o.url}`),n.headers.length>0){console.log(` ${St.dim("Headers:")}`);for(const e of n.headers)console.log(` ${e.key}: ${e.value}`)}}else console.log(` ${St.dim("Command:")} ${o.command}`),o.args&&o.args.length>0&&console.log(` ${St.dim("Args:")} ${o.args.join(" ")}`);if(n.env.length>0){console.log(` ${St.dim("Environment:")}`);for(const e of n.env)console.log(` ${e.key}=${e.value}`)}console.log("")}catch(e){e instanceof EP&&(console.error(St.red(`Error: ${e.message}`)),process.exit(1)),console.error(St.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function formatAuthIcon(e){return"authenticated"===e||"static"===e?St.green(vt.tick):"missing"===e?St.red(vt.cross):St.gray("-")}function listMcpCommand(){const e=new Ve("list");return e.description("List configured MCP servers").action(async()=>{try{const e=await listMcpServerSummaries({listMcpServers:listMcpServers,hasTokens:hasTokens});if(0===e.length)return console.log(St.yellow("\nNo MCP servers configured\n")),console.log(St.gray("Add a server with:")),console.log(St.gray(` ${getBinaryCommand()} mcp add --transport http <name> <url>`)),console.log(St.gray(` ${getBinaryCommand()} mcp add --transport stdio <name> -- <command>`)),void console.log(St.gray("\nDocs: https://commandcode.ai/docs/mcp"));console.log(St.hex("#E4CCFF").bold("\nMCP Servers\n"));const n=Math.max(4,...e.map(e=>e.name.length)),o=5,r=7;console.log(St.dim(` ${"NAME".padEnd(n)} ${"TYPE".padEnd(o)} ${"SCOPE".padEnd(r)} AUTH STATUS`));for(const s of e){const e=s.enabled?St.green("enabled"):St.gray("disabled"),a=formatAuthIcon(s.authStatus);console.log(` ${St.white(s.name.padEnd(n))} ${St.cyan(s.transport.padEnd(o))} ${St.gray(s.scope.padEnd(r))} ${a} ${e}`)}console.log(St.dim(`\nTotal: ${e.length} server${1!==e.length?"s":""}\n`))}catch(e){console.error(St.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function removeMcpCommand(){const e=new Ve("remove");return e.description("Remove an MCP server").argument("<name>","Server name").addOption(new Ke("-s, --scope <scope>","Scope to remove from (auto-detects if not specified)").choices(["local","project","user"])).action(async(e,n)=>{try{const o=await removeMcpServerByName({name:e,scope:n.scope,getMcpServer:getMcpServer,removeMcpServer:removeMcpServer});console.log(St.green(`✓ Removed MCP server '${e}' from ${o.scopeLabel} config`))}catch(e){e instanceof EP&&(console.error(St.red(`Error: ${e.message}`)),process.exit(1)),console.error(St.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function createMcpCommand(){const e=new Ve("mcp");return e.description("Manage MCP (Model Context Protocol) servers").allowUnknownOption().allowExcessArguments(),e.addCommand(addMcpCommand()),e.addCommand(listMcpCommand()),e.addCommand(getMcpCommand()),e.addCommand(removeMcpCommand()),e.addCommand(addJsonMcpCommand()),e.addCommand(authMcpCommand()),e}function shortenModPath(e,n){if(n){const o=i(n,e);if(o&&!o.startsWith("..")&&!l(o))return o}const o=i(K(),e);return!o||o.startsWith("..")||l(o)?e:`~${c}${o}`}Jt(),Jt(),hL(),Jt(),hL(),__name(getBinNames,"getBinNames"),__name(getInvokedCommandName,"getInvokedCommandName"),__name(addMcpCommand,"addMcpCommand"),__name(printMcpAddError,"printMcpAddError"),__name(collectKeyValue,"collectKeyValue"),__name(collectHeaders,"collectHeaders"),__name(printCollectError,"printCollectError"),Jt(),hL(),__name(addJsonMcpCommand,"addJsonMcpCommand"),__name(printMcpAddJsonError,"printMcpAddJsonError"),Jt(),hL(),__name(authMcpCommand,"authMcpCommand"),__name(printAuthList,"printAuthList"),__name(printAuthStatus,"printAuthStatus"),__name(printMcpAuthError,"printMcpAuthError"),Jt(),hL(),__name(getMcpCommand,"getMcpCommand"),Jt(),hL(),__name(formatAuthIcon,"formatAuthIcon"),__name(listMcpCommand,"listMcpCommand"),Jt(),hL(),__name(removeMcpCommand,"removeMcpCommand"),__name(createMcpCommand,"createMcpCommand"),Jt(),Jt(),hL(),Jt(),hL(),__name(shortenModPath,"shortenModPath");var u_=__name(e=>e.split(K()).join("~"),"shortenHomeInText");async function createModPathShortener(e){const n=await modsDirectoryPath({runtime:e,scope:"project"}),o=n?a(n,"..",".."):void 0;return e=>shortenModPath(e,o)}async function addAction(e,n){const o=createNodeRuntime(),r=n.global?"user":"project";try{const n=parseModSource(e);console.log(It.dim(`Installing ${n.kind} mod source ${It.reset(It.cyan(e))} (${r})…`));const s=await installModSource({runtime:o,source:e,scope:r}),a=await createModPathShortener(o);console.log(`${It.green(vt.tick)} Installed ${It.cyan(s.identity)}`),s.installedPath&&console.log(It.dim(` ${a(s.installedPath)}`)),console.log(It.dim(` Recorded in ${a(s.settingsPath)}`))}catch(e){console.error(`${It.red(vt.cross)} ${u_(e instanceof Error?e.message:String(e))}`),process.exit(1)}}__name(createModPathShortener,"createModPathShortener"),__name(addAction,"addAction");var m_=new Ve("add").alias("install").description("Install a mod package (<npm-name>, owner/repo[@ref], or a local path)").argument("<source>","mod source: an npm package name, a git repo (owner/repo[@ref]), or a local path").option("-g, --global","install for all projects (user scope)").action(addAction);Jt(),hL();var p_={user:"user settings",projectShared:"project settings",projectLocal:"project-local settings"};function conflictAction(e){const{name:n,file:o}=e;return"user"===o.scope?`To enable it at the user level, run: ${getBinaryCommand()} mods enable ${n} -g`:"projectShared"===o.scope?`To enable it at the project level, run: ${getBinaryCommand()} mods enable ${n}`:`Remove "${n}" from "mods.disabled" in that file, then run this again.`}function toggleReport(e){const{name:n,enabled:o,global:r,includeProject:s,settingsPath:a,disabledIn:i}=e,[l]=i;if(o&&l)return{conflict:!0,headline:`${n} is still disabled`,detail:`Your ${p_[l.scope]} (${l.path}) disable it.`,action:conflictAction({name:n,file:l})};const c=`${o?"Enabled":"Disabled"} ${n} at the ${r?"user":"project"} level`;return r||s?{conflict:!1,headline:c,detail:`Saved to ${a} · applies from your next session (or /reload)`}:{conflict:!1,headline:c,detail:`Saved to ${a} · applies once you start Command Code in this project`,action:`To ${o?"enable":"disable"} at user level: ${getBinaryCommand()} mods ${o?"enable":"disable"} ${n} -g`}}function notBuiltinHint(e){const{name:n,enabled:o}=e;if(o&&!commandBuiltinMods().some(e=>e.name===n))return`${n} is not a built-in mod, so this only lifts a disable — it does not install anything (${getBinaryCommand()} mods add does)`}async function toggleAction(e){const{name:n,enabled:o,options:r}=e,s=createNodeRuntime();try{const e=await setModEnabledInSettings({runtime:s,scope:r.global?"user":"projectShared",name:n,enabled:o}),a=await createModPathShortener(s),i=await isCommandProjectSessionInitialized(),l=await modDisabledSettingsFiles({runtime:s,includeProject:!0,name:n}),c=toggleReport({name:n,enabled:o,global:!0===r.global,includeProject:i,settingsPath:a(e),disabledIn:l.map(e=>({...e,path:a(e.path)}))});if(c.conflict)return console.error(`${It.yellow(vt.warning)} ${c.headline}`),console.error(It.dim(` ${c.detail}`)),c.action&&console.error(It.dim(` ${c.action}`)),void(process.exitCode=1);console.log(`${It.green(vt.tick)} ${c.headline}`),console.log(It.dim(` ${c.detail}`));const d=notBuiltinHint({name:n,enabled:o});d&&console.log(It.dim(` ${d}`)),c.action&&console.log(It.dim(` ${c.action}`))}catch(e){console.error(`${It.red(vt.cross)} ${u_(e instanceof Error?e.message:String(e))}`),process.exit(1)}}__name(conflictAction,"conflictAction"),__name(toggleReport,"toggleReport"),__name(notBuiltinHint,"notBuiltinHint"),__name(toggleAction,"toggleAction");var g_=new Ve("enable").description("Switch a mod on by name — how opt-in built-ins are turned on").argument("<name>","mod name (e.g. update-notice)").option("-g, --global","write user scope instead of project").action((e,n)=>toggleAction({name:e,enabled:!0,options:n})),h_=new Ve("disable").description("Switch a mod off by name without uninstalling it").argument("<name>","mod name from `mods list` (or a built-in)").option("-g, --global","write user scope instead of project").action((e,n)=>toggleAction({name:e,enabled:!1,options:n}));function builtinState(e){const{builtin:n,disabled:o,enabled:r}=e;return o.has(n.name)?"disabled":!1!==n.defaultEnabled||r.has(n.name)?"enabled":`off by default · \`${getBinaryCommand()} mods enable ${n.name}\``}Jt(),hL(),__name(builtinState,"builtinState");var f_=__name((e,n,o)=>` ${It.cyan(e)} ${It.dim(`· ${n} · ${o}`)}`,"formatModLine"),y_=__name((e,n)=>`${It.bold(It.white(e))} ${It.dim(`(${n})`)}`,"formatSectionHeader");function scopeFor(e){const{entry:n}=e;if("project"===n.source)return"project";if("user"===n.source)return"user";if("path"===n.source)return"session";const o=modSourceForPath({statuses:e.sources,path:n.path});return o?.scope??"package"}function detailFor(e){const{entry:n}=e,o=e.disabled.has(n.name)?" (disabled)":"";if("package"===n.source){const r=modSourceForPath({statuses:e.sources,path:n.path});return`from ${r?.identity??"a package source"}${o}`}return`${shortenModPath(n.path,e.projectRoot)}${o}`}async function listAction(e){const n=createNodeRuntime(),o=await isCommandProjectSessionInitialized(),r=await discoverMods({runtime:n,includeProject:o}),s=await listModSources({runtime:n,includeProject:o}),i=new Set(r.disabled),l=new Set(r.enabled),c=await modsDirectoryPath({runtime:n,scope:"project"}),d=await modsDirectoryPath({runtime:n,scope:"user"}),u=c?a(c,"..",".."):void 0,m=["project","user","package","path"].flatMap(e=>r.entries.filter(n=>n.source===e));console.log(""),console.log(`${It.bold(It.white("Mods"))} ${It.dim(`(${r.entries.length})`)}`),0===r.entries.length&&(console.log(""),console.log(It.dim(" No mods loaded. Looking in:")),c&&console.log(It.dim(` ${shortenModPath(c,u)} ${It.white("(project)")}`)),d&&console.log(It.dim(` ${shortenModPath(d,void 0)} ${It.white("(user)")}`)),console.log(""),console.log(It.dim(` Drop a .ts file in one (\`${getBinaryCommand()} mods open --user\`) or install a package: \`${getBinaryCommand()} mods add <source>\`.`)));for(const e of m)console.log(f_(e.name,scopeFor({entry:e,sources:s}),detailFor({entry:e,sources:s,projectRoot:u,disabled:i})));if(!0===e.builtin){const e=commandBuiltinMods();console.log(""),console.log(y_("Built-in",e.length));for(const n of e)console.log(f_(n.name,"builtin",builtinState({builtin:n,disabled:i,enabled:l})))}const p=new Set;if(s.length>0){const e=__name(e=>r.entries.some(n=>"package"===n.source&&void 0!==modSourceForPath({statuses:[e],path:n.path})),"contributes"),n=s.filter(n=>!n.installed||!e(n));if(n.length>0){console.log(""),console.log(y_("Package sources",n.length));for(const e of n){p.add(e.source);const n=e.installed?It.yellow("installed, but provides no mods"):It.yellow(`not installed — run \`${getBinaryCommand()} mods update\``);console.log(f_(e.identity,e.scope,n))}}}const g=r.warnings.filter(e=>!p.has(e.path));if(g.length>0){console.log(""),console.log(`${It.bold(It.yellow("Warnings"))} ${It.dim(`(${g.length})`)}`);for(const e of g)console.log(` ${It.cyan(shortenModPath(e.path,u))} ${It.dim(`· ${e.reason}`)}`)}console.log("")}__name(scopeFor,"scopeFor"),__name(detailFor,"detailFor"),__name(listAction,"listAction");var v_=new Ve("list").alias("ls").description("List the mods a session loads, and where each one comes from").addOption(new Ke("--builtin","also list Command Code's built-in mods").hideHelp()).action(listAction);async function openAction(e){const n=createNodeRuntime(),o=!0===e.user||!0===e.global;try{const r=o?void 0:await modsDirectoryPath({runtime:n,scope:"project"}),s=r??await modsDirectoryPath({runtime:n,scope:"user"});if(!s)throw new Error("Could not resolve a mods directory");const a=r?"project":"user";if(!0===e.path)return void console.log(s);await n.fs.mkdir({path:s}),await Ot(s);const i=await createModPathShortener(n);console.log(`${It.green(vt.tick)} Opened ${It.cyan(i(s))} ${It.dim(`· ${a}`)}`)}catch(e){console.error(`${It.red(vt.cross)} ${u_(e instanceof Error?e.message:String(e))}`),process.exit(1)}}Jt(),hL(),__name(openAction,"openAction");var S_=new Ve("open").description("Open the mods directory (project by default, --user for ~)").option("-u, --user","open the user mods directory (~/.commandcode/mods)").option("-g, --global","alias for --user").option("--path","print the directory path instead of opening it").action(openAction);async function removeAction(e,n){const o=createNodeRuntime();commandBuiltinMods().some(n=>n.name===e)&&(console.error(`${It.red(vt.cross)} ${It.cyan(e)} is a built-in mod — it cannot be removed. Add it to ${It.cyan('"mods": {"disabled": [...]}')} in settings.json to turn it off.`),process.exit(1));const r=await isCommandProjectSessionInitialized();try{const s=await removeMod({runtime:o,target:e,scope:n.global?"user":"project",includeProject:r});if(!s.removedFromSettings&&!s.removedPath)return void console.log(`${It.yellow(vt.warning)} ${It.cyan(s.target)} is not configured (${s.scope} scope) — nothing to remove`);const a=await createModPathShortener(o);console.log(`${It.green(vt.tick)} Removed ${It.cyan(s.target)} ${It.dim(`· ${s.scope}`)}`),s.sourceIdentity&&s.sourceIdentity!==s.target&&console.log(It.dim(` Removed its source ${s.sourceIdentity}`)),s.alsoRemoved&&s.alsoRemoved.length>0&&console.log(It.dim(` That source also provided ${s.alsoRemoved.join(", ")}`)),s.removedPath&&console.log(It.dim(` Deleted ${a(s.removedPath)}`)),s.removedFromSettings&&s.settingsPath&&console.log(It.dim(` Updated ${a(s.settingsPath)}`))}catch(e){console.error(`${It.red(vt.cross)} ${u_(e instanceof Error?e.message:String(e))}`),process.exit(1)}}Jt(),hL(),__name(removeAction,"removeAction");var w_=new Ve("remove").alias("rm").alias("uninstall").description("Remove a mod by its listed name or by its package source").argument("<target>","mod name from `mods list`, or the mod source (any spelling of it)").option("-g, --global","remove from user scope instead of project").action(removeAction);async function updateAction(){const e=createNodeRuntime(),n=await updateModSources({runtime:e,includeProject:await isCommandProjectSessionInitialized()});for(const e of n.updated)console.log(`${It.green(vt.tick)} ${It.cyan(e)}`);for(const e of n.failures)console.error(`${It.red(vt.cross)} ${e.source} ${It.dim(`· ${e.reason}`)}`);0===n.updated.length&&0===n.failures.length&&console.log(It.dim("No mod package sources configured.")),n.failures.length>0&&process.exit(1)}Jt(),hL(),__name(updateAction,"updateAction");var k_=new Ve("update").alias("up").description("Reinstall and reconcile every configured mod package").action(updateAction),C_=new Ve("mods").description("Manage mods — loadable extensions from npm, git, or local paths").addCommand(m_).addCommand(w_).addCommand(v_).addCommand(k_).addCommand(S_).addCommand(g_).addCommand(h_);function resolveBundledRipgrepPath(){try{const e=Tt(import.meta.url),{rgPath:n}=e("@vscode/ripgrep");if("string"==typeof n&&n.length>0&&L(n))return n}catch{}}function registerBundledRipgrep(){if(process.env[Jc])return;const e=resolveBundledRipgrepPath();void 0!==e&&(process.env[Jc]=e)}Jt(),hL(),__name(resolveBundledRipgrepPath,"resolveBundledRipgrepPath"),__name(registerBundledRipgrep,"registerBundledRipgrep"),Jt(),hL(),Jt();var b_=["EPIPE","ECONNRESET","EOF"];function asErrnoLike(e){if("object"==typeof e&&null!==e)return e}function isBenignStreamWriteError(e){const n=asErrnoLike(e);if(!n)return!1;const o="string"==typeof n.code?n.code:"",r="string"==typeof n.message?n.message:"";return!!b_.some(e=>r.startsWith(`write ${e}`))||"write"===("string"==typeof n.syscall?n.syscall:"")&&b_.includes(o)}__name(asErrnoLike,"asErrnoLike"),__name(isBenignStreamWriteError,"isBenignStreamWriteError"),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt();var T_={enabled:!1,requestedSessionId:null,baseBranch:null,connection:null};function enableSandboxMode(e){T_.enabled=!0,T_.requestedSessionId=e.sessionId??null,T_.baseBranch=e.baseBranch??null}function getRequestedSandboxBase(){return T_.baseBranch}function isSandboxMode(){return T_.enabled}function getRequestedSandboxSessionId(){return T_.requestedSessionId}function setSandboxConnection(e){T_.connection=e}function getSandboxConnection(){return T_.connection}__name(enableSandboxMode,"enableSandboxMode"),__name(getRequestedSandboxBase,"getRequestedSandboxBase"),__name(isSandboxMode,"isSandboxMode"),__name(getRequestedSandboxSessionId,"getRequestedSandboxSessionId"),__name(setSandboxConnection,"setSandboxConnection"),__name(getSandboxConnection,"getSandboxConnection");var E_="Running the task in the cloud",P_=null;function setAdoptedTurn(e){P_=e}function hasAdoptedTurn(){return null!==P_}function takeAdoptedTurn(){const e=P_;return P_=null,e}__name(setAdoptedTurn,"setAdoptedTurn"),__name(hasAdoptedTurn,"hasAdoptedTurn"),__name(takeAdoptedTurn,"takeAdoptedTurn");var M_=!1;function interruptSandboxTurn(e){M_=!0,e.request({method:"turn/interrupt"}).catch(()=>{})}function takeInterruptWanted(){const e=M_;return M_=!1,e}__name(interruptSandboxTurn,"interruptSandboxTurn"),__name(takeInterruptWanted,"takeInterruptWanted");var I_=!1;function setSandboxConnecting(e){I_=e}function isSandboxConnecting(){return I_}__name(setSandboxConnecting,"setSandboxConnecting"),__name(isSandboxConnecting,"isSandboxConnecting");var A_=null;function openSandboxConnectionOnce(e){return A_||(A_=e()),A_}__name(openSandboxConnectionOnce,"openSandboxConnectionOnce");var x_=new Set(["rewind","tree","fork","clone","share","compact","mcp","plan","mode","worktree","rename","resume","goal","reload","clear","loop","rc","init","import","memory","learn-taste","add-dir","connect","ide","taste","sessions","name","unshare","session-file","context","todos","trace"]);function sandboxBashMessage(){return T_.enabled?t("commandsAreNotSupportedInASandboxSessionYet","! commands are not supported in a cloud session yet."):null}__name(sandboxBashMessage,"sandboxBashMessage");var R_={taste:"Taste learning is off in cloud sessions. /taste changes your local settings: run it in a local session."};function sandboxGateMessage(e){return T_.enabled&&x_.has(e)?R_[e]??t("isNotSupportedInASandboxSessionYet","/{{v0}} is not supported in a cloud session yet.",{v0:e}):null}__name(sandboxGateMessage,"sandboxGateMessage"),Jt();var L_=[],O_=new Set;function publish(e){L_=e;for(const e of O_)e()}async function whileWaiting(e){const n={label:e.label};publish([...L_,n]);try{return await e.run()}finally{publish(L_.filter(e=>e!==n))}}function getSandboxWaiting(){return L_.at(-1)?.label??null}function useSandboxWaiting(){return ft(e=>(O_.add(e),()=>O_.delete(e)),getSandboxWaiting)}function sandboxModelFor(e){if(e)return byokProviderId({model:e})?void 0:e}function sandboxEffortFor(e){if(!e||!sandboxModelFor(e))return;const n=getReasoningEffort(e);return n&&(customReasoningEfforts(e)??getSupportedEfforts(e)??[]).includes(String(n))?String(n):void 0}async function tellSandboxEffort(e){const n=getSandboxConnection();if(!n||void 0===e.effort)return{ok:!0};const o=e.effort,r=(await whileWaiting({label:`Setting effort to ${o} in the cloud`,run:__name(()=>n.request({method:"session/set_effort",params:{effort:o}}),"run")}).catch(e=>({error:{message:String(e)}}))).error;return r?{ok:!1,message:sandboxRefusal({failure:r,command:"/effort",what:"effort"})}:{ok:!0}}function sandboxRefusal(e){const{failure:n,command:o,what:r}=e;if(n.code===hP.TURN_ACTIVE)return t("theSandboxIsWorkingOnATurnRunAgainOnceItHasFinished","The cloud session is working on a turn; run {{v0}} again once it has finished.",{v0:o});const s=(n.message??t("theChangeWasRefused","the change was refused")).replace(/^Error: /,"");return t("theSandboxKeptIts","The cloud session kept its {{v0}}: {{v1}}.",{v0:r,v1:s.replace(/\.$/,"")})}async function handleEffortCommand(e,n){const o=hO(e.sessionId),r=o?.getActiveModel?.()??e.currentModel,s=r?customReasoningEfforts(r)??getSupportedEfforts(r):null,a=n.trim().toLowerCase();if(a&&r&&s){if(s.includes(a)){const n=a,o=getReasoningEffort(r),s=hO(e.sessionId),i=s?.getActiveEffort?.()??o,l=await tellSandboxEffort({effort:n});if(!l.ok)return void e.setFeed(e=>[...e,Zh(l.message)]);n!==o&&await setReasoningEffort({modelId:r,effort:n}),n!==i&&(s?.recordEffortChange({model:r,effort:n}),hardResetForResize(),e.setStaticKey(e=>e+1));const c=r===e.currentModel?"":t("effortForModelSuffix"," for {{model}}",{model:XL(r)});return void e.setFeed(e=>[...e,Zh(t("reasoningEffortForModelSetTo","Reasoning effort{{suffix}} set to {{v0}}.",{v0:n,suffix:c}))])}if(s.length>0)return void e.setFeed(e=>[...e,Zh(t("unknownEffortSupported",'Unknown effort "{{v0}}". Supported: {{v1}}.',{v0:n.trim(),v1:s.join(", ")}))])}const i=resolveEffortCommand({model:r,supportedEfforts:s,modelLabel:r?XL(r):void 0});"notice"!==i.kind?e.setShowEffortSelector(!0):e.setFeed(e=>[...e,Zh(i.message)])}async function applyEffortSetting(e,n){const o=e.trim().toLowerCase();if(!o)return{ok:!1,message:t("provideALevelEGEffortHigh","Provide a level, e.g. --effort high.")};const r=n?.model??getConfiguredModel(),s=customReasoningEfforts(r)??getSupportedEfforts(r);return s&&0!==s.length?s.includes(o)?(await setReasoningEffort({modelId:r,effort:o}),{ok:!0,message:t("reasoningEffortSetToFor","Reasoning effort set to {{v0}} for {{v1}}.",{v0:o,v1:XL(r)})}):{ok:!1,message:t("unknownEffortSupported",'Unknown effort "{{v0}}". Supported: {{v1}}.',{v0:e.trim(),v1:s.join(", ")})}:{ok:!1,message:t("hasNoAdjustableReasoningEffort","{{v0}} has no adjustable reasoning effort.",{v0:XL(r)})}}function usePasteAwareChange(e){const{onChange:n,onPaste:o}=e,r=pt(!1);return ht(async e=>{const s=processBracketedPaste(e),a=o??n,i=__name(async()=>{r.current=!1;const e=await detectClipboardTextNative();e?a(e):s.cleanedContent&&a(s.cleanedContent)},"applyPastedText");if(!s.isPasteStart||r.current)r.current&&!s.isPasteEnd||(r.current&&s.isPasteEnd?await i():n(e));else{if(r.current=!0,!s.isPasteEnd)return;await i()}},[n,o])}function extractDeviceCode2(e){const n=e.match(/copy\s+this\s+code:\s*([^\s]+)/i);return n?.[1]??null}__name(publish,"publish"),__name(whileWaiting,"whileWaiting"),__name(getSandboxWaiting,"getSandboxWaiting"),__name(useSandboxWaiting,"useSandboxWaiting"),__name(sandboxModelFor,"sandboxModelFor"),__name(sandboxEffortFor,"sandboxEffortFor"),__name(tellSandboxEffort,"tellSandboxEffort"),__name(sandboxRefusal,"sandboxRefusal"),__name(handleEffortCommand,"handleEffortCommand"),__name(applyEffortSetting,"applyEffortSetting"),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt(),hL(),__name(usePasteAwareChange,"usePasteAwareChange"),__name(extractDeviceCode2,"extractDeviceCode");var D_=__name(({providerId:e,onSuccess:n,onCancel:o,onFailure:r})=>{const{t:s}=xt(),a=getProviderDisplayName(e),[i,l]=mt("confirm"),[c,d]=mt(""),[u,m]=mt(""),[p,g]=mt(""),[h,f]=mt(""),[y,v]=mt(null),S=pt(!1),w=pt(!0),k=pt(!1),C=pt(null),b=pt(null),T=pt(null),E=pt(!1);gt(()=>()=>{w.current=!1,C.current&&clearTimeout(C.current),T.current=null},[]);const P=ht(e=>{k.current||(k.current=!0,C.current=setTimeout(()=>{if(C.current=null,!w.current)return;const n=e.keepTerminalActive?{wait:!1,background:!0}:void 0;Ot(e.authUrl,n).catch(()=>{w.current&&v(s("failedToOpenBrowserPleaseManuallyOpen","Failed to open browser. Please manually open: {{v0}}",{v0:e.authUrl}))})},300))},[]),M=ht(async n=>{if(!w.current)return;if(d(n.url),n.prompt)return m(n.instructions),E.current=!0,g(n.prompt.label),l("paste"),P({authUrl:n.url,keepTerminalActive:!1}),new Promise(e=>{b.current=e});E.current=!1;const o=e===qr.COPILOT?extractDeviceCode2(n.instructions):null;if(o){const e=await writeClipboardText(o);if(!w.current)return;m(s("loggingIntoCopilotUseThisCode","Logging into Copilot, use this code: {{v0}}{{v1}}",{v0:o,v1:e?s("copiedSuffix"," (copied)"):""}))}else m(n.instructions);return l("open-browser"),new Promise(e=>{T.current=()=>{T.current=null,l("waiting"),Ot(n.url).catch(()=>{w.current&&v(s("failedToOpenBrowserPleaseManuallyOpen","Failed to open browser. Please manually open: {{v0}}",{v0:n.url}))}),e({})}})},[e,P]),I=pt(()=>{});I.current=()=>{providerLogin({provider:e,onPending:M}).then(async()=>{w.current&&(await persistProviderSelection(e),l("success"),n())}).catch(e=>{if(!w.current)return;const n=e instanceof Error?e.message:s("authenticationFailed","Authentication failed");if(v(n),S.current=!1,b.current=null,r?.(n),E.current)return f(""),void I.current();l("error")})};const A=ht(e=>{f(e.trim())},[]),x=usePasteAwareChange({onChange:f,onPaste:A}),R=__name(()=>{if(!h.trim()||S.current||!b.current)return;S.current=!0,v(null);const e=b.current;b.current=null,e({code:h.trim()})},"handleSubmit");if(at((e,n)=>{if(n.escape)o();else if(!n.leftArrow||"confirm"!==i&&"open-browser"!==i&&"waiting"!==i&&"error"!==i&&("paste"!==i||h)){if("confirm"===i){if(n.return||"y"===e||"Y"===e)return l("connecting"),void I.current();"n"!==e&&"N"!==e||o()}"open-browser"===i&&n.return&&T.current?.()}else o()}),"confirm"===i){const n=e===qr.COPILOT?s("thisWillGetAGithubSignInCode","This will get a GitHub sign-in code."):s("thisWillOpenYourBrowserToSignInWith","This will open your browser to sign in with {{v0}}.",{v0:a});return ct.createElement(oF,{title:s("signInTo","Sign in to {{v0}}",{v0:a}),subtitle:n,footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"y"),"/",ct.createElement(qN,null,"enter")," ",s("continue","continue")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"n"),"/",ct.createElement(qN,null,"esc")," ",s("cancel","cancel"))]})})}return"connecting"===i?ct.createElement(oF,{title:s("signInTo","Sign in to {{v0}}",{v0:a}),subtitle:s("gettingSignInCode","Getting sign-in code…"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",s("cancel","cancel"))]})}):"paste"===i?ct.createElement(oF,{title:s("signInTo","Sign in to {{v0}}",{v0:a}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",s("submit","submit")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",s("cancel","cancel"))]})},c&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},s("login","Login:")," "),ct.createElement(_D,{url:c,text:s("openAuthPage","Open auth page ↗"),color:XO.CYAN})),u&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},u)),y&&ct.createElement(tt,{marginBottom:1},ct.createElement(UF,null,y)),ct.createElement(tt,null,ct.createElement(nt,null,p||s("authorizationCode","Authorization code"),":"," "),ct.createElement(TextInput,{mask:"*",focus:!0,value:h,onChange:x,onSubmit:R,placeholder:s("pasteCodeHere","Paste code here...")}))):"open-browser"===i?ct.createElement(oF,{title:s("signInTo","Sign in to {{v0}}",{v0:a}),subtitle:e===qr.COPILOT?s("pressEnterToOpenGithubAndPasteTheCodeThere","Press enter to open GitHub and paste the code there"):s("pressEnterToOpenYourBrowser","Press enter to open your browser"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",s("cancel","cancel"))]})},u&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.GREEN},u)),c&&e!==qr.COPILOT&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},s("login","Login:")," "),ct.createElement(_D,{url:c,text:s("openAuthPage","Open auth page ↗"),color:XO.CYAN}))):"waiting"===i?ct.createElement(oF,{title:s("signInTo","Sign in to {{v0}}",{v0:a}),subtitle:s("waitingForAuthorization","Waiting for authorization…"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",s("cancel","cancel"))]})},u&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.GREEN},u)),c&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},s("open","Open:")," "),ct.createElement(_D,{url:c,text:s("openAuthPage","Open auth page ↗"),color:XO.CYAN}))):"error"===i?ct.createElement(oF,{title:s("signInTo","Sign in to {{v0}}",{v0:a}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",s("back","back"))]})},ct.createElement(UF,null,y)):null},"ProviderAuth");function makeProviderAuthComponent(e){const n=__name(({onSuccess:n,onCancel:o})=>ct.createElement(D_,{providerId:e,onSuccess:n,onCancel:o}),"Bound");return n.displayName=`ProviderAuth(${e})`,n}__name(makeProviderAuthComponent,"makeProviderAuthComponent");var N_=Object.fromEntries(Object.entries(Bs).map(([e,n])=>[e,{...n}]));function getProviderConfig(e){return N_[e]}async function getProviderAuthState(e){if(!e)return null;const n=getProviderConfig(e);return n?resolveProviderAuthState({displayName:n.displayName,requiresAuth:n.requiresAuth,checkAuth:n.checkAuth}):null}async function handleModelSelect({modelId:e,provider:n,routeProvider:o,setCurrentModel:r,setShowModelSelector:s,setStatus:a,modelNotificationTimer:i,setShowModelNotification:l,setCurrentProvider:c,setStaticKey:d,sessionId:u,setFeed:m,setContextUsage:p,setModelNotice:g}){try{const h=n&&getProviderConfig(n)?n:void 0,f=o??(n&&!getProviderConfig(n)?n:void 0),y=h?await getConfiguredProvider():void 0,v=getSandboxConnection(),S=null!==v&&void 0!==sandboxModelFor(e),w=null!==v&&null!==await getProviderAuthState(h);if(v&&S&&!w){const n=(await whileWaiting({label:`Switching to ${e} in the cloud`,run:__name(()=>v.request({method:"session/set_model",params:{model:e}}),"run")}).catch(e=>({error:{message:String(e)}}))).error;if(n)return m?.(e=>[...e,Zh(sandboxRefusal({failure:n,command:"/model",what:"model"}))]),void s(!1)}const k=await applyCommandModelSelection({modelId:e,provider:h,routeProvider:f,sessionId:u,catalog:{getDisplayName:XL},deps:{getProviderAuthState:getProviderAuthState,getCurrentModel:getConfiguredModel,persistProvider:__name(async n=>{dlog(`[Model] Setting provider to ${n} for ${e}`),await updateUserConfig({provider:n})},"persistProvider"),persistDefaultModel:__name(async(e,n)=>{await persistDefaultModel({model:e,provider:n})},"persistDefaultModel"),setSessionModel:setSessionModel,clearModelOverride:clearModelOverride,saveSessionModel:__name(async({sessionId:e,modelId:n,routeProvider:o})=>{await saveCommandSessionMeta({sessionId:e,meta:{model:n,modelProvider:o}})},"saveSessionModel"),onProviderPersisted:c,log:dlog}});if("auth-blocked"===k.status)return a(k.message),void s(!1);if(u&&h&&h!==y&&await rebuildHarnessSession(u),r(e),(u?hO(u):void 0)?.releaseModelLanes(),k.modelChanged&&(hardResetForResize(),d(e=>e+1)),s(!1),a(k.statusMessage),k.modelChanged&&g?.(getModelNotice(e)??null),v&&!S)m?.(n=>[...n,Zh(t("isACustomModelThisMachineServesTheSandboxKeepsItsCurrentModel","{{v0}} is a custom model this machine serves; the cloud session keeps its current model.",{v0:e}))]);else if(v){const n=await tellSandboxEffort({effort:sandboxEffortFor(e)});n.ok||m?.(e=>[...e,Zh(n.message)])}if(k.modelChanged){const n=await reconcileCommandModelSelection({modelId:e,...void 0!==f?{routeProvider:f}:{},modelName:k.modelName,previousModel:k.previousModel,harness:u?hO(u):void 0,catalog:{getContextLimit:__name(e=>customAwareContextLimit({modelId:e,fallback:getContextLimit}),"getContextLimit"),supportsVision:YL},hasImagesInHistory:harnessHasImagesInHistory});p?.(n.contextUsage);for(const e of n.notices)m?.(n=>[...n,Zh(e.message)])}i.current&&clearTimeout(i.current),l(!0),i.current=setTimeout(()=>{l(!1),i.current=null},5e3)}catch(e){console.error("Failed to set model:",e),a(t("failedToSetModel","Failed to set model")),s(!1)}}function handleModelCancel({setShowModelSelector:e}){e(!1)}async function handleModelCommand(e,n){const o=n.trim();if(!o)return void e.setShowModelSelector(!0);const r=await resolveSelectableModel(o);if(!r)return e.setFeed(e=>[...e,Zh(t("unknownModelOpeningTheModelPickerSoYouCanChoose",'Unknown model "{{v0}}" — opening the model picker so you can choose.',{v0:o}))]),void e.setShowModelSelector(!0);r.warning&&e.setFeed(e=>[...e,Zh(r.warning)]);const s=r.modelId;await handleModelSelect({modelId:s,routeProvider:r.providerId,provider:r.providerId?void 0:getProviderFromModel(s)||void 0,setCurrentModel:e.setCurrentModel??(()=>{}),setShowModelSelector:e.setShowModelSelector,setStatus:e.setStatus,modelNotificationTimer:{current:null},setShowModelNotification:__name(()=>{},"setShowModelNotification"),setStaticKey:e.setStaticKey,sessionId:e.sessionId,setFeed:e.setFeed,setContextUsage:e.setContextUsage,setModelNotice:e.setModelNotice})}async function applyModelSetting(e){const n=e.trim();if(!n)return{ok:!1,message:t("provideAModelEGModelGpt5","Provide a model, e.g. --model gpt-5.")};const o=await resolveSelectableModel(n);if(!o)return{ok:!1,message:t("unknownModelRunWithListModelsToSeeTheOptions",'Unknown model "{{v0}}". Run with --list-models to see the options.',{v0:n})};const r=o.modelId;await persistDefaultModel({model:r,provider:o.providerId});const s=o.providerId?void 0:getProviderFromModel(r);s&&await updateUserConfig({provider:s});const a=o.warning?t("note"," (note: {{v0}})",{v0:o.warning}):"";return{ok:!0,message:t("defaultModelSetTo","Default model set to {{v0}}.{{v1}}",{v0:XL(r),v1:a})}}async function handleThemeSelect({theme:e,setShowThemeSelector:n,setStatus:o,setStaticKey:r}){n(!1);try{const n=resolveCliTheme(getCliTheme()),s=resolveCliTheme(e),a=n!==s;await setCliTheme({theme:e}),applyTuiTheme(s),a&&(sN(),hardResetForResize(),r(e=>e+1)),o(buildThemeStatusMessage(e))}catch{o(translateUiCopy(ls))}}function handleThemeCancel({setShowThemeSelector:e}){e(!1)}async function handleThemeCommand(e,n){const o=n.trim().toLowerCase();o?Br.includes(o)?await handleThemeSelect({theme:o,setShowThemeSelector:e.setShowThemeSelector,setStatus:e.setStatus,setStaticKey:e.setStaticKey}):e.setFeed(e=>[...e,Zh(t("unknownThemeOptions",'Unknown theme "{{v0}}". Options: {{v1}}.',{v0:o,v1:Br.join(", ")}))]):e.setShowThemeSelector(!0)}async function applyThemeSetting(e){const n=e.trim().toLowerCase();return n?Br.includes(n)?(await setCliTheme({theme:n}),{ok:!0,message:t("themeSetTo","Theme set to {{v0}}.",{v0:n})}):{ok:!1,message:t("unknownThemeOptions",'Unknown theme "{{v0}}". Options: {{v1}}.',{v0:e.trim(),v1:Br.join(", ")})}:{ok:!1,message:t("provideAThemeEGThemeAuto","Provide a theme, e.g. --theme auto.")}}N_.anthropic&&(N_.anthropic.authComponent=makeProviderAuthComponent(qr.ANTHROPIC),N_.anthropic.checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:qr.ANTHROPIC});return!!e}),N_["github-copilot"]&&(N_["github-copilot"].authComponent=makeProviderAuthComponent(qr.COPILOT),N_["github-copilot"].checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:qr.COPILOT});return!!e}),N_.codex&&(N_.codex.authComponent=makeProviderAuthComponent(qr.CODEX),N_.codex.checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:qr.CODEX});return!!e}),__name(getProviderConfig,"getProviderConfig"),__name(getProviderAuthState,"getProviderAuthState"),__name(handleModelSelect,"handleModelSelect"),__name(handleModelCancel,"handleModelCancel"),__name(handleModelCommand,"handleModelCommand"),__name(applyModelSetting,"applyModelSetting"),Jt(),hL(),__name(handleThemeSelect,"handleThemeSelect"),__name(handleThemeCancel,"handleThemeCancel"),__name(handleThemeCommand,"handleThemeCommand"),__name(applyThemeSetting,"applyThemeSetting");var F_=[{key:"model",apply:__name(e=>applyModelSetting(e),"apply")},{key:"effort",valueHint:"level",description:"Set reasoning effort for the session (e.g. low, medium, high) — depends on the model",apply:__name((e,n)=>applyEffortSetting(e,n),"apply")},{key:"theme",valueHint:"theme",description:"Set the color theme (dark or light)",apply:__name(e=>applyThemeSetting(e),"apply")}],__=__name(e=>`--${e.key} <${e.valueHint}>`,"flagSpecOf"),$_=F_.filter(e=>void 0!==e.valueHint&&void 0!==e.description);async function applyConfigSetting(e){const n=e.indexOf("=");if(n<1)return{ok:!1,message:t("useConfigKeyValueEGConfigThemeDark","Use --config key=value, e.g. --config theme=dark.")};const o=e.slice(0,n).trim().toLowerCase(),r=e.slice(n+1).trim(),s=F_.find(e=>e.key===o);if(s)return s.apply(r);const a="true"===r||"false"!==r&&r;try{return await updateConfigSetting({id:o,value:a}),{ok:!0,message:t("set","Set {{v0}} = {{v1}}.",{v0:o,v1:r})}}catch(e){return{ok:!1,message:e instanceof Error?e.message:t("couldNotSetConfig",'Could not set config "{{v0}}".',{v0:o})}}}__name(applyConfigSetting,"applyConfigSetting"),Jt(),hL();var U_=["default","standard","plan","accept-edits","auto-accept","yolo","bypass","dont-ask"];function parsePermissionModeOption(e){const n=U_.includes(e)?normalizePermissionMode(e):void 0;if(!n)throw new ze(`Allowed choices are ${U_.join(", ")}.`);return n}__name(parsePermissionModeOption,"parsePermissionModeOption");var B_=getPackageJson(import.meta.url),j_=__name((e,n=[])=>[...n,e],"collectAddDir"),W_=__name((e,n=[])=>[...n,e],"collectConfig");function displayCustomHelp(){const e=B_.version,n=getInvokedCommandName(),o=getVisibleSlashCommands();console.log(),console.log(St.bold("Command Code")+St.gray(` v${e}`)),console.log(St.gray(oi)),console.log(),console.log(St.bold("Usage")),console.log(` ${n} <command> [options]`),console.log(),console.log(St.bold("Options"));for(const e of ci){const o=e.key.replace(/^cmd/,n);console.log(" "+o.padEnd(ri)+St.gray(e.description))}console.log(),console.log(St.bold("Commands"));for(const e of ui){const o=e.key.replace(/^cmd/,n);console.log(" "+o.padEnd(ri)+St.gray(e.description))}console.log(),console.log(St.bold("Slash Commands"));for(const e of o)console.log(" "+e.key.padEnd(ri)+St.gray(e.description));console.log(),console.log(St.bold("Keyboard Shortcuts"));for(const e of li)console.log(" "+e.key.padEnd(ri)+St.gray(e.description));console.log(),console.log(St.bold("Examples"));for(const e of pi){const o=e.key.replace(/^cmd/,n);console.log(" "+o.padEnd(ri)+St.gray(e.description))}console.log(),console.log(St.cyan("❯")+" "+St.gray(si.replace(/cmd/,n))),console.log(),console.log(St.bold("Links"));for(const e of mi)console.log(" "+e.key.padEnd(ri)+St.cyan(e.description));console.log()}function createProgram(){const e=new Ve;e.name(getInvokedCommandName()).description("Command Code with your coding taste.").version(B_.version??"0.0.0","-v, --version","display the version number").argument("[prompt]","Your prompt to run in interactive mode").option("-r, --resume [name]","Resume a session by id or name, or pick from history").option("--sessions [name]","Alias of --resume — resume a session by id or name, or pick from history").option("-c, --continue"," Continue the most recent session in the current directory").option("--fork-session","With --resume/--continue, fork the session into a new one (original left untouched)").option("--session <path|id>","Resume a session by transcript path (.jsonl) or a unique session-id prefix").option("--no-session","Don't persist this session to disk (in-memory only)").option("-n, --name <name>","Set the session display name").option("-t, --trust","Trust the project (skip initial trust permission prompt)").addOption(new Ke("--dangerously-skip-permissions","Bypass all permission prompts (use with caution)").hideHelp()).addOption(new Ke("--yolo","Bypass all permission prompts (alias for --dangerously-skip-permissions)").implies({dangerouslySkipPermissions:!0})).option("--plan","Start in plan mode (read-only exploration and planning)").addOption(new Ke("--accept-edits","Start in accept edits mode").implies({permissionMode:"auto-accept"})).addOption(new Ke("--auto-accept").implies({permissionMode:"auto-accept"}).hideHelp()).addOption(new Ke("--permission-mode <mode>","Set permission mode").choices(U_).argParser(parsePermissionModeOption)).option("--skip-onboarding","Skip taste onboarding (for non-interactive/automated runs)").option("-p, --print [query]","Run in non-interactive mode, output response and exit").option("--max-turns <number>",`Max agentic turns (model API round trips): print mode limit (default ${ti}); interactive mode sets the /goal turn budget (default 100)`,e=>{const n=parseInt(e,10);if(isNaN(n)||n<1)throw new ze("--max-turns must be a positive integer");return n}).option("--verbose","Stream tool execution progress to stderr in print mode").option("--tools-all","Print mode: enable every tool, including the ones a headless run withholds").option("--tools-enable <names>","Print mode: enable specific withheld tools by name, comma-separated (e.g. ask_user_question,exit_plan_mode); repeatable",j_,[]).addOption(new Ke("--output-format <format>","Print-mode output: text (default) or json — newline-delimited AgentEvent frames plus one final result line").choices(["text","json"])).option("--ide-setup",ai).option("--no-auto-update","Disable automatic background updates for this run").option("--add-dir <directory>","Add directory to workspace context",j_,[]).option("-w, --worktree [name]","Run this session in an isolated git worktree (managed under ~/.commandcode/worktrees/). Accepts a name, a path, or a PR (#1234). Generates a name when omitted.").option("--mod <path>","Load a mod file or directory for this session (repeatable)",j_,[]).option("--mod-option <name=value>","Set a mod-declared flag value (repeatable)",j_,[]).option("--skill <path>","Load extra skills from a path (a skill directory or a directory of skills); repeatable",j_,[]).option("--no-skills","Skip skill discovery; paths given via --skill still load").option("-m, --model <model>","Run on a specific model this session (e.g. claude-sonnet-4-6, kimi-k2.5). Unknown ids are rejected; see --list-models.").option("--list-models","List the models available for use").addOption(new Ke("--benchmark-output <path>","Path to write benchmark metrics JSON").hideHelp()).addOption(new Ke("--experimental","Enable experimental features").hideHelp()).addOption(new Ke("-d, --debug","Enable debug mode").hideHelp()).option("--local-only","For BYOK: local-only with your BYOK providers, no Command Code traffic (same as CMD_LOCAL_ONLY=1)").addOption(new Ke("--local","Use local server").hideHelp()).addOption(new Ke("--staging","Use staging server").hideHelp()).helpOption("-h, --help","Display help message").allowUnknownOption();for(const n of $_)e.option(__(n),n.description);return e.option("--config <key=value>","Set a setting headlessly, e.g. --config theme=dark (repeatable)",W_),e.configureHelp({formatHelp:__name(()=>(displayCustomHelp(),""),"formatHelp")}),e}__name(displayCustomHelp,"displayCustomHelp"),__name(createProgram,"createProgram");var H_=new Map([["--cloud","optional"],["--base","required"]]),G_=new Map([["--rpc",null]]);function firstOperand(e){const{tokens:n,valueFlags:o}=e;for(let e=0;e<n.length;e++){const r=n[e]??"";if(!r.startsWith("-")||"-"===r)return r;if(r.includes("="))continue;const s=o.get(r),a=n[e+1];("required"===s||"optional"===s&&void 0!==a&&!a.startsWith("-"))&&e++}return null}function ownWords(e){const n=e.indexOf("--");return(-1===n?e:e.slice(0,n)).slice(2)}function wantsRootModeFlags(e){const n=firstOperand({tokens:ownWords(e.argv),valueFlags:new Map([...e.valueFlags,...H_,...G_])});return null===n||!e.subcommands.has(n)}function wantsExperimentalRootFlags(e){return!!isExperimentalEnabled()&&!!ownWords(e.argv).includes("--experimental")&&wantsRootModeFlags(e)}function valueKind(e){return e.required?"required":e.optional?"optional":null}function rootValueFlags(e){const n=new Map;for(const o of e.options){const e=valueKind(o);o.long&&n.set(o.long,e),o.short&&n.set(o.short,e)}return n}function addRootModeOptions(e){const n={argv:process.argv,subcommands:new Set(e.commands.flatMap(e=>[e.name(),...e.aliases()])),valueFlags:rootValueFlags(e)};wantsExperimentalRootFlags(n)&&e.option("--rpc","Experimental: serve one session as newline-delimited JSON-RPC on stdin/stdout"),wantsRootModeFlags(n)&&e.option("--cloud [sessionIdOrMessage]","Run in the cloud (beta); pass a session id to reopen one").option("--base <branch>","Base branch for a new cloud session")}__name(firstOperand,"firstOperand"),__name(ownWords,"ownWords"),__name(wantsRootModeFlags,"wantsRootModeFlags"),__name(wantsExperimentalRootFlags,"wantsExperimentalRootFlags"),__name(valueKind,"valueKind"),__name(rootValueFlags,"rootValueFlags"),__name(addRootModeOptions,"addRootModeOptions");var V_=null;function commandPath(e){const n=[];let o=e;for(;null!==o&&null!==o.parent;)n.unshift(o.name()),o=o.parent;return n.join(" ")}function flagNames(e){return Object.entries(e.opts()).filter(([,e])=>void 0!==e&&!1!==e).map(([e])=>`--${e}`).join(" ")}function failPendingCommandSpan(e){null!==V_&&(recordError({span:V_,error:sanitizeErrorForTelemetry({error:e,label:"command_error"})}),V_.end(),V_=null)}function abandonPendingCommandSpan(){null!==V_&&(V_.setAttribute("cmd.command.outcome","abandoned"),V_.end(),V_=null)}function setupCommanderHooks(e){e.hook("preAction",(e,n)=>{dlogSection("cmd");const o=n.name(),r=n.parent?.name();dlog(`[cmd] ${r&&r!==o?"subcommand":"running"}: ${o}`);const s=n.opts(),a=Object.entries(s).filter(([,e])=>void 0!==e&&!1!==e).map(([e,n])=>!0===n?`--${e}`:`--${e}=${n}`).join(" ");a&&dlog(`[cmd] options: ${a}`);const i=n.args;i.length>0&&dlog(`[cmd] arguments: ${i.join(" ")}`);const l=commandPath(n);if(!l)return;const c=flagNames(n);V_=createSpan({name:`command:${l}`,attributes:{"cmd.command.name":l,"cmd.command.arg_count":i.length,...c?{"cmd.command.args":c}:{}}})}),e.hook("postAction",()=>{dlogSection("Done"),null!==V_&&(endSpan({span:V_,status:"success"}),V_=null)})}__name(commandPath,"commandPath"),__name(flagNames,"flagNames"),__name(failPendingCommandSpan,"failPendingCommandSpan"),__name(abandonPendingCommandSpan,"abandonPendingCommandSpan"),__name(setupCommanderHooks,"setupCommanderHooks");var{red:K_,yellow:z_,dim:q_}=St;function printErrorDetails(e,n){if(console.log(`${Nt.error} ${K_(n)}`),console.log(`${Nt.error} ${K_("ERROR →")} ${e.name}`),console.log(`${Nt.info} ${K_("REASON →")} ${e.message}`),console.log(`${Nt.info} ${K_("ERROR STACK ↓ \n")} ${e.stack}\n`),!isTelemetryInitialized())return;const o=getDisplayTraceId();console.log(`${Nt.info} ${q_(`Trace ID: ${o}`)}`),console.log(`${q_(" Share this ID with support to help debug your issue.")}\n`)}__name(printErrorDetails,"printErrorDetails");var Y_=__name(e=>{const{heading:n="ERROR: ",error:o,displayError:r=!0,exit:s=!0,skipTelemetry:a=!1}=e;if(o){if(a||trackCliError({error:o,heading:n}),failPendingCommandSpan(o),console.log(),r||console.log(`${Nt.warning} ${z_(n)}\n`),r&&printErrorDetails(o,n),!s)return!1;process.exit(0)}},"handleError");function handleStdoutError(e){if(!isBenignStreamWriteError(e))throw e;exitAfterModHostTeardown(0)}function handleStderrError(e){if(!isBenignStreamWriteError(e))throw e}function reportBenignUncaughtWriteError(e){dlog(`[uncaughtException] survived benign write error: ${e.message}`),trackError({error:sanitizeErrorForTelemetry({error:e,label:"uncaught_benign_write"}),context:{component:Rs.UNCAUGHT_EXCEPTION,heading:"Benign Uncaught Write Error"}})}function handleUnhandledErrors(){process.stdout.on("error",handleStdoutError),process.stderr.on("error",handleStderrError),process.on("unhandledRejection",e=>{const n=e instanceof Error?e:new Error(String(e));trackError({error:sanitizeErrorForTelemetry({error:n,label:"unhandled_rejection"}),context:{component:Rs.UNHANDLED_REJECTION,heading:"Unhandled Promise Rejection"}}),Y_({heading:At`CRITICAL: Unhandled Promise Rejection!
15
15
  This is an unexpected error. Please file a bug report at https://github.com/CommandCodeAI/command-code/issues/new`,error:n,skipTelemetry:!0,exit:!1}),shutdownTelemetry().finally(()=>{process.exit(1)})}),process.on("uncaughtException",e=>{isBenignStreamWriteError(e)?reportBenignUncaughtWriteError(e):(trackError({error:sanitizeErrorForTelemetry({error:e,label:"uncaught_exception"}),context:{component:Rs.UNCAUGHT_EXCEPTION,heading:"Uncaught Exception"}}),Y_({heading:At`CRITICAL: Uncaught Exception!
16
- This is an unexpected error. Please file a bug report at https://github.com/CommandCodeAI/command-code/issues/new`,error:e,skipTelemetry:!0,exit:!1}),shutdownTelemetry().finally(()=>{process.exit(1)}))})}__name(handleStdoutError,"handleStdoutError"),__name(handleStderrError,"handleStderrError"),__name(reportBenignUncaughtWriteError,"reportBenignUncaughtWriteError"),__name(handleUnhandledErrors,"handleUnhandledErrors"),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt();var J_=null,Q_={};function requestReload(e){J_=e}function discardPendingReload(){J_=null}function consumePendingReload(){const e=J_;return J_=null,e}function setOriginalInvocation(e){Q_=e}function getOriginalInvocation(){return Q_}function clearedHandoffEnv(e=process.env,n=process.pid){return{...releasedPaneOwnerEnv(e,n)}}function canRespawn(){if(process.versions.bun)return!1;const e=process.argv[1];return"string"==typeof e&&e.length>0}function resetTerminalForRespawn(){process.stdout.isTTY&&sN()}async function writeReloadHandoff(e){const n=process.env[WI];if(n)try{await J.writeFile(n,serializeReloadCarryover(e))}catch{}}async function consumeReloadHandoff(e){try{return parseReloadCarryover(await J.readFile(e,"utf-8"))}catch{return null}finally{await J.unlink(e).catch(()=>{})}}function restoreTerminal({signal:e=null}={}){try{process.stdin.isTTY&&process.stdin.setRawMode(!1)}catch{}try{process.stdout.write("[?25h")}catch{}if(e)try{popKittyKeyboardProtocol()}catch{}}__name(requestReload,"requestReload"),__name(discardPendingReload,"discardPendingReload"),__name(consumePendingReload,"consumePendingReload"),__name(setOriginalInvocation,"setOriginalInvocation"),__name(getOriginalInvocation,"getOriginalInvocation"),__name(clearedHandoffEnv,"clearedHandoffEnv"),__name(canRespawn,"canRespawn"),__name(resetTerminalForRespawn,"resetTerminalForRespawn"),__name(writeReloadHandoff,"writeReloadHandoff"),__name(consumeReloadHandoff,"consumeReloadHandoff"),__name(restoreTerminal,"restoreTerminal");var X_=St.hex(XO.DIM);function printReloadFallbackHint(){process.stdout.write(X_("Couldn't restart automatically in this build — exiting instead.\n"))}async function shutdownWrapperRuntime(){try{await Promise.allSettled([disconnectAllMcpServers(),yO(),disposeCommandModHost()])}catch{}try{await shutdownTelemetry()}catch{}process.removeAllListeners("SIGINT"),process.removeAllListeners("SIGTERM"),process.on("SIGINT",()=>{}),process.on("SIGTERM",()=>{}),process.stdin.pause()}async function runRelaunchLoop(e){await shutdownWrapperRuntime();const o=await J.mkdtemp(n.join(V.tmpdir(),"cmd-reload-")),r=n.join(o,"handoff.json");let s=e;for(;;){const e=await commandSessionTranscriptExists(s.sessionId),n=buildRelaunchArgs({invocation:getOriginalInvocation(),request:s,resumable:e,argv:process.argv.slice(2)});clearTerminalTitle(),resetTerminalForRespawn();const a=w(process.execPath,[process.argv[1],...n],{stdio:"inherit",env:{...process.env,[WI]:r,[HI]:String(process.pid),...clearedHandoffEnv()}});let i,l;try{[i,l]=await new Promise((e,n)=>{a.once("exit",(n,o)=>e([n,o])),a.once("error",n)})}catch(e){restoreTerminal(),process.stderr.write(X_(`\nCouldn't relaunch Command Code: ${e.message}\n`)),await J.rm(o,{recursive:!0,force:!0}).catch(()=>{}),process.exit(1)}if(i!==jI){if(restoreTerminal({signal:l}),await J.rm(o,{recursive:!0,force:!0}).catch(()=>{}),l){const e=V.constants.signals[l];process.exit(e?128+e:1)}process.exit(i??1)}else s=await consumeReloadHandoff(r)??s}}async function handlePendingReload(e){canRespawn()?(isWrappedChild()&&(await writeReloadHandoff(e),await disposeCommandModHost(),process.exit(jI)),await runRelaunchLoop(e)):printReloadFallbackHint()}__name(printReloadFallbackHint,"printReloadFallbackHint"),__name(shutdownWrapperRuntime,"shutdownWrapperRuntime"),__name(runRelaunchLoop,"runRelaunchLoop"),__name(handlePendingReload,"handlePendingReload"),Jt();var Z_=__name(()=>{const e=getInvokedCommandName();return"win32"===process.platform&&"cmd"===e?"cmdc":e},"getResumeCommandName");function tildeHome(e){const n=V.homedir();return n&&e.startsWith(n)?`~${e.slice(n.length)}`:e}function formatWorktreePathLine(e){return` ${St.dim(vt.arrowRight)} ${createOSC8Link(fileUrl(e),tildeHome(e))}`}function enterWorktreeFromFlag(e,n={}){const{quiet:o=!1,track:r=!0}=n,s=process.cwd();if(!isGitRepo(s))return{ok:!1,error:"--worktree requires a git repository (none found here)."};const a=getMainWorktreeRoot(s)??s,i=createWorktree({spec:"string"==typeof e?e.trim():void 0,cwd:s});if(!i.ok)return{ok:!1,error:i.error};try{process.chdir(i.target.worktreePath),global.COMMAND_CODE_CWD=i.target.worktreePath}catch(e){return{ok:!1,error:`couldn't enter worktree: ${e instanceof Error?e.message:String(e)}`}}if(r&&i.created&&markAutoCreatedWorktree({worktreePath:i.target.worktreePath,branch:i.target.branch,baseSha:i.baseSha,mainRoot:a}),!o){const e=i.created?"Created":"Entered",n=i.created?St.dim(` (branch ${i.target.branch}${i.usedRemote?", from origin":""})`):"",o=i.created&&i.copiedFiles>0?St.dim(` · copied ${i.copiedFiles} file(s)`):"",r=i.created&&i.copyFailedFiles.length>0?St.dim(` · ${i.copyFailedFiles.length} include copy failure(s)`):"";process.stdout.write(`${St.cyan(vt.squareSmallFilled)} ${e} worktree ${St.bold(i.target.name)}${n}${o}${r}\n${formatWorktreePathLine(i.target.worktreePath)}\n`)}return dlog(`[worktree] entered ${i.target.worktreePath} (created=${i.created})`),{ok:!0,name:i.target.name,path:i.target.worktreePath}}Jt(),hL(),__name(tildeHome,"tildeHome"),__name(formatWorktreePathLine,"formatWorktreePathLine"),__name(enterWorktreeFromFlag,"enterWorktreeFromFlag"),Jt(),hL();var e$=["disambiguateEscapeCodes"];async function resolveKittyKeyboard(e={}){const n=e.env??process.env,o=e.probe??queryKittyKeyboardSupport,r=!isVSCodeTerminal2({env:n})&&await o();return setKittyKeyboardActive(r),{mode:r?"enabled":"disabled",flags:e$}}__name(resolveKittyKeyboard,"resolveKittyKeyboard"),Jt();var t$=__name(({worktreePath:e,warning:n,onChoice:o})=>{const{t:r}=xt(),[s,a]=mt(1);return at((e,n)=>{if(!n.upArrow&&!n.downArrow)return"1"===e?o("keep"):"2"===e?o("remove"):n.return?o(1===s?"keep":"remove"):n.escape||n.ctrl&&"c"===e?o("keep"):void 0;a(e=>1===e?2:1)}),ct.createElement(oF,{title:r("exitingWorktreeSession","Exiting worktree session"),subtitle:n,hint:r("enterToConfirmEscToCancel","Enter to confirm · Esc to cancel")},ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:1===s?XO.CYAN:XO.GRAY},1===s?vt.pointer:" "," ",r("1KeepWorktree","1. Keep worktree")," ",ct.createElement(nt,{color:XO.GRAY},r("staysAt","Stays at")," ",tildeHome(e)))),ct.createElement(tt,null,ct.createElement(nt,{color:2===s?XO.CYAN:XO.GRAY},2===s?vt.pointer:" "," ",r("2RemoveWorktree","2. Remove worktree")," ",ct.createElement(nt,{color:XO.GRAY},r("allChangesAndCommitsWillBeLost","All changes and commits will be lost."))))))},"WorktreeExitPrompt");function promptWorktreeExit(e){return new Promise(n=>{const{unmount:o}=st(ct.createElement(t$,{worktreePath:e.worktreePath,warning:e.warning,onChoice:e=>{o(),n(e)}}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})})}__name(promptWorktreeExit,"promptWorktreeExit"),Jt();var n$={},o$={};function setStartupSessionOptions(e){n$=void 0===e.persist?{}:{persist:e.persist},o$={...e.sessionFilePath?{sessionFilePath:e.sessionFilePath}:{},...e.name?{name:e.name}:{}}}function getStickyStartupSessionOptions(){return n$}function consumeStartupSessionOverrides(){const e=o$;return o$={},e}__name(setStartupSessionOptions,"setStartupSessionOptions"),__name(getStickyStartupSessionOptions,"getStickyStartupSessionOptions"),__name(consumeStartupSessionOverrides,"consumeStartupSessionOverrides"),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt();var r$=vt.pointer,s$=__name(({isSelected:e,backgroundColor:n})=>ct.createElement(nt,{color:e?ZN:tF,backgroundColor:n,bold:e&&isLightTheme()},e?r$:" "),"OverlayCaret"),a$=__name(({isSelected:e,isActive:n,idleColor:o=eF,backgroundColor:r,children:s})=>ct.createElement(nt,{color:e?ZN:n?nF:o,backgroundColor:r,bold:e&&isLightTheme()},s),"OverlayOptionText"),i$=__name(({isSelected:e,label:n})=>ct.createElement(a$,{isSelected:e}," ",n),"OverlayOptionItem"),l$=__name(({backgroundColor:e})=>ct.createElement(nt,{color:nF,backgroundColor:e}," ",vt.tick),"OverlayActiveTick"),c$=__name(({indent:e=4,children:n})=>ct.createElement(nt,{color:QN}," ".repeat(e),n),"OverlayOptionDescription"),d$=__name(({isSelected:e,idleColor:n=XO.GRAY,selectedColor:o=XO.WHITE,bold:r,children:s})=>ct.createElement(nt,{color:e?o:n,backgroundColor:e?kD:void 0,bold:r??e},s),"OverlayBarText"),u$=__name(({isSelected:e,label:n})=>ct.createElement(d$,{isSelected:e}," ",n," "),"OverlayBarItem"),m$=__name(()=>null,"OverlayBarIndicator");Jt();var p$=__name(()=>createOSC8Link("https://commandcode.ai/docs/permissions#permission-modes",t("docs2","Docs ↗"),!1),"YOLO_DOCS_LINK"),g$=__name(({hint:e})=>{const{t:n}=xt();return ct.createElement(nt,{italic:!0,color:XO.DIM},e," ",n("run2","· Run")," ",ct.createElement(nt,{color:XO.WHITE},"cmd --yolo")," ",n("toBypassAllPermissions","to bypass all permissions ("),p$(),")")},"PermissionFooter"),h$=__name(({request:e,onResponse:n})=>{const{t:o}=xt(),[r]=mt(0),s=getPermissionChoicesForRisk({choices:getGenericToolPermissionChoices({toolName:e.toolName}),risk:e.risk}),a=__name(e=>{const o=s.find(n=>n.value===e.value);o&&n(o)},"handleSelect");return ct.createElement(oF,{title:o("toolPermission","Tool Permission"),subtitle:ct.createElement(nt,{wrap:"wrap"},o("needsToRun","{{v0}} needs to run ",{v0:"Command Code"}),ct.createElement(nt,{color:ZN},e.toolName),"."),footer:ct.createElement(g$,{hint:o("navigateEnterSelect","↑/↓ navigate · enter select")})},e.risk&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.RED,wrap:"wrap"},vt.warning," ",getRiskDisplay(e.risk))),e.description&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},e.description)),ct.createElement(SelectInput,{items:s.map((e,n)=>({label:`${n+1}. ${translatePermissionLabel(e.label)}`,value:e.value})),onSelect:a,initialIndex:r,indicatorComponent:s$,itemComponent:i$}))},"GenericPermissionPrompt");function buildTreeConnectors(e,n={}){const{isTruncated:o=!1,closesFrame:r=!0}=n;return e.split("\n").map((e,n,s)=>r&&!o&&n===s.length-1?VD:KD).join("\n")}Jt(),hL(),Jt(),hL(),Jt(),__name(buildTreeConnectors,"buildTreeConnectors");var f$=Mt()?"⟳":"*",y$=" │ ";function DiffWordSegments({segments:e,type:n,paired:o,dimDiff:r,language:s,highlightOptions:a}){const i="removed"===n?oD.REMOVED_HIGHLIGHT_BG:oD.ADDED_HIGHLIGHT_BG,l=[];let c=0;for(const d of e){const e=d.highlighted,u=highlightSyntax(d.text,s,a),m=`${n}-${c++}-${e?"highlighted":"unchanged"}`;e?l.push(ct.createElement(nt,{key:m,backgroundColor:i,dimColor:r},u)):o?l.push(ct.createElement(nt,{key:m,color:XO.WHITE,dimColor:r},u)):l.push(ct.createElement(nt,{key:m,color:"removed"===n?oD.REMOVED_TEXT:oD.ADDED_TEXT,dimColor:r},u))}return l}function DiffRow({background:e,prefix:n,wrap:o="wrap",children:r}){return ct.createElement(tt,{width:"100%",backgroundColor:e},ct.createElement(tt,{flexShrink:0},n),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{wrap:o},r)))}function renderDiffLine({line:e,dimDiff:n,language:o,highlightOptions:r}){if("skip"===e.kind)return ct.createElement(tt,{key:e.key,width:"100%"},ct.createElement(nt,{color:oD.LINE_NUM,dimColor:n},e.spacer,y$,e.label));if("context"===e.kind)return ct.createElement(DiffRow,{key:e.key,prefix:ct.createElement(nt,{color:oD.LINE_NUM,dimColor:n}," "+e.lineNumberLabel+y$)},ct.createElement(nt,{color:XO.WHITE,dimColor:n}," ",highlightSyntax(e.text,o,r)));const s="removed"===e.kind,a=s?oD.REMOVED_TEXT:oD.ADDED_TEXT,i=s?oD.REMOVED_BG:oD.ADDED_BG;return ct.createElement(DiffRow,{key:e.key,background:i,prefix:ct.createElement(nt,null,ct.createElement(nt,{color:a,dimColor:n}," "+e.lineNumberLabel),ct.createElement(nt,{color:oD.LINE_NUM,dimColor:n},y$),ct.createElement(nt,{color:a,dimColor:n},s?"- ":"+ "))},ct.createElement(DiffWordSegments,{segments:e.segments,type:e.kind,paired:e.paired,dimDiff:n,language:o,highlightOptions:r}))}function DiffMetadata({metadata:e}){const{t:n}=xt();return e?"rejected"===e.kind?ct.createElement(nt,{color:XO.RED},n("rejectedUpdateTo","Rejected update to"),ct.createElement(nt,{color:XO.RED},` ${e.filePath}`)):ct.createElement(nt,{color:XO.GRAY},n("updated","Updated")," ",ct.createElement(nt,{color:XO.WHITE,bold:!0},e.filePath)," ",n("with","with")," ",e.additions>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:iD.SUCCESS},e.additions)," ",translateUiCopy(1===e.additions?"addition":"additions"),e.removals>0?n("and2"," and "):""),e.removals>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:iD.ERROR},e.removals)," ",translateUiCopy(1===e.removals?"removal":"removals"))):null}function generateDiff({oldValue:e,newValue:n,filePath:o,permissionDenied:r=!1,showMetadata:s=!1,marginLeft:a=2,startLine:i=1,dimDiff:l=!1,maxLines:c}){const d=projectEditDiffView({oldValue:e,newValue:n,filePath:o,permissionDenied:r,showMetadata:s,startLine:i,maxLines:c});let u="";"string"==typeof n&&n?u=n:"string"==typeof e&&(u=e);const m=syntaxLanguageFromFilePath(o,u.split("\n",1)[0]??null),p=getSyntaxHighlightOptions(isLightTheme());return{diffContent:ct.createElement(tt,{flexDirection:"column"},ct.createElement(DiffMetadata,{metadata:d.metadata}),ct.createElement(tt,{flexDirection:"column",marginLeft:a,marginRight:a+4,width:Math.max(20,(process.stdout.columns||80)-2*a-8)},d.displayedLines.map(e=>renderDiffLine({line:e,dimDiff:l,language:m,highlightOptions:p})))),isTruncated:d.isTruncated,totalLines:d.totalLines}}function resolveTodoTextStyle(e){return"completed"===e?{textColor:iD.SUCCESS,strikethrough:!0}:"in_progress"===e?{textColor:iD.IN_PROGRESS,strikethrough:!1}:{textColor:XO.WHITE,strikethrough:!1}}function TodoChecklist({todos:e}){return ct.createElement(tt,{flexDirection:"column"},e.map((e,n)=>{const o="completed"===e.status?vt.checkboxOn:vt.checkboxOff,{textColor:r,strikethrough:s}=resolveTodoTextStyle(e.status),a="in_progress"===e.status&&e.activeForm?`${e.activeForm}…`:e.content;return ct.createElement(tt,{key:e.id||n,flexDirection:"row"},ct.createElement(tt,{width:2},ct.createElement(nt,{color:r},o)),ct.createElement(nt,{color:r,bold:"in_progress"===e.status,strikethrough:s},a))}))}function formatTodosForDisplay(e){const n=Ef(e);return n?ct.createElement(TodoChecklist,{todos:n}):ct.createElement(nt,null,e)}function computeDisplayInput({input:e,isAgent:n,isShell:o,expandedOutput:r}){return e?n?summarizeAgentTaskInput(e):o&&!r?truncateCommand({command:e}):e:e}function formatToolInput({input:e,isShell:n}){return ct.createElement(BracketWrap,null,n?e:ct.createElement(Markdown,null,e))}function ReadToolInlineSummaryRow({summary:e}){return e?.dimText?ct.createElement(nt,{dimColor:!0}," ",e.dimText):null}function resolveSymbol({isPending:e,hasError:n,isThinking:o,isTodos:r,output:s}){if(e)return{symbolColor:XO.YELLOW,symbol:vt.arrowRight};if(n)return{symbolColor:XO.RED,symbol:vt.square};if(o)return{symbolColor:tD,symbol:"✻"};if(r&&s){const e=Ef(s),n=e?.every(e=>"completed"===e.status);return{symbolColor:n?iD.SUCCESS:iD.WARNING,symbol:vt.square}}return{symbolColor:rD.BG,symbol:vt.square}}function ToolHeader({isThinking:e,isTasteFile:n,tasteCategory:o,name:r,summaryMatch:s,expandedOutput:a,expandKey:i,input:l,output:c}){const{t:d}=xt();if(e){const e=estimateReasoningSeconds(l||c||"");return ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:tD},d("thoughtForSecond","Thought for {{v0}} second{{v1}}",{v0:e,v1:1!==e?"s":""})," "),!a&&ct.createElement(BracketWrap,{color:XO.DIM},d("oToExpand","{{v0}}+o to expand",{v0:i})))}if(n)return ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG,bold:!0},qD)),ct.createElement(nt,null," ",d("usingYourTaste","Using your taste")," ",o?d("packageOf","package of "):translateUiCopy("packages"),o&&ct.createElement(nt,{bold:!0},o)));let u=translateUiCopy(r);return"READ[n]"===r&&s&&(u=`${translateUiCopy("READ")}[${Number(s[1])}]`),ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},`${zD}${u}${zD}`))}function stripAgentUsageTrailer(e){return e.replace(/\n*<usage>[\s\S]*?<\/usage>\s*$/,"").trimEnd()}function AgentStatus({agentStatus:e,hasError:n,output:o,elapsedSeconds:r,tokensUsed:s}){const{t:a}=xt(),i=`${formatTime3(r)} | ${formatTokens(s)}`;return"running"===e?ct.createElement(nt,{color:XO.GRAY},a("running","Running ("),i,")"):"background"===e?ct.createElement(nt,{color:XO.GRAY},a("runningInBackground","Running in background")):"interrupted"===e||o===Hv?ct.createElement(nt,{color:XO.GRAY,wrap:"wrap"},a("interrupted","Interrupted")):"error"===e||n?ct.createElement(nt,{color:XO.RED,wrap:"wrap"},o," (",i,")"):ct.createElement(ct.Fragment,null,ct.createElement(nt,{wrap:"wrap"},a("done","Done")),ct.createElement(nt,{color:XO.GRAY}," (",i,")"))}function getTruncatedOutputParts({output:e,name:n,expandedOutput:o,expandKey:r}){if(o)return{text:e,isTruncated:!1,remainingLines:0,truncationMsg:null};const s=dedentText(e),{text:a,isTruncated:i,remainingLines:l}=truncateToVisualLines({output:s,maxVisualLines:n===t("question","Question")?Tu:Cu,maxChars:n===t("question","Question")?1/0:xu}),c=i&&n!==t("question","Question");return{text:a,isTruncated:c,remainingLines:l,truncationMsg:c?l>0?ct.createElement(BracketedText,{text:t("linesOToExpand","... +{{v0}} lines [{{v1}}+o to expand]",{v0:l,v1:r}),color:XO.DIM}):ct.createElement(BracketedText,{text:t("oToExpand2","... [{{v0}}+o to expand]",{v0:r}),color:XO.DIM}):null}}function renderTruncatedOutput({output:e,name:n,expandedOutput:o,expandKey:r}){const{text:s,isTruncated:a,truncationMsg:i}=getTruncatedOutputParts({output:e,name:n,expandedOutput:o,expandKey:r});return a?ct.createElement(ct.Fragment,null,s,"\n",i):s}function renderEditFileDiff({input:e,metadata:n,expandedOutput:o,isPermissionDenied:r,output:s,expandKey:a}){const i=o?void 0:Eu,{diffContent:l,isTruncated:c,totalLines:d}=generateDiff({filePath:e,showMetadata:!0,oldValue:n.oldValue??"",newValue:n.newValue??"",startLine:"number"==typeof n.startLine?n.startLine:1,dimDiff:r,permissionDenied:r,maxLines:i}),u=d-Eu;return ct.createElement(tt,{flexDirection:"column"},l,c&&ct.createElement(tt,{marginTop:1},ct.createElement(BracketedText,{text:t("moreOToExpand","… ({{v0}} more {{v1}}) [{{v2}}+o to expand]",{v0:u,v1:1===u?"line":"lines",v2:a}),color:XO.DIM})),r&&s&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.RED,wrap:"wrap"},s)))}function renderWriteFileContent({input:e,metadata:n,expandedOutput:o,expandKey:r}){const s=syntaxLanguageFromFilePath(e,n.content?.split("\n",1)[0]??null),a=getSyntaxHighlightOptions(isLightTheme()),i=projectWriteFileContentView({filePath:e,content:n.content,totalLines:n.totalLines,expandedOutput:o,expandKey:r});return i.empty?ct.createElement(nt,{color:XO.GRAY},t("created","Created")," ",ct.createElement(nt,{color:XO.WHITE,bold:!0},i.filePath)," ",t("emptyFile","(empty file)")):ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},t("created","Created")," ",ct.createElement(nt,{color:XO.WHITE,bold:!0},i.filePath)," ","(",i.totalLinesLabel,")"),ct.createElement(tt,{marginTop:1,flexDirection:"column"},i.visibleLines.map(e=>ct.createElement(DiffRow,{key:e.lineNumber,background:oD.ADDED_BG,wrap:"truncate-end",prefix:ct.createElement(nt,null,ct.createElement(nt,{color:oD.ADDED_TEXT}," "+e.lineNumberLabel),ct.createElement(nt,{color:oD.LINE_NUM},y$))},ct.createElement(nt,{color:oD.ADDED_TEXT},highlightSyntax(e.text,s,a))))),i.isTruncated&&i.moreLinesLabel&&ct.createElement(tt,{marginTop:1},ct.createElement(BracketedText,{text:i.expandHint?`… (${i.moreLinesLabel}) ${i.expandHint}`:`… (${i.moreLinesLabel})`,color:XO.DIM})))}function renderOutputContent({isTodos:e,isThinking:n,isEditFile:o,isWriteFile:r,metadata:s,output:a,expandedOutput:i,isPermissionDenied:l,input:c,hasError:d,name:u,expandKey:m,showTreeConnector:p,closesFrame:g}){if(e)return formatTodosForDisplay(a);if(n){if(!i)return null;const e=c||a;return ct.createElement(tt,{width:"100%",flexDirection:"column"},ct.createElement(nt,null," "),ct.createElement(nt,{color:tD,wrap:"wrap",italic:!0},e))}const h=g?VD:KD;if(o&&"string"==typeof s?.oldValue&&"string"==typeof s?.newValue){const e=renderEditFileDiff({input:c,metadata:s,expandedOutput:i,isPermissionDenied:l,output:a,expandKey:m});return p?ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},h," "),e):e}if(r&&s&&"content"in s){const e=renderWriteFileContent({input:c,metadata:s,expandedOutput:i,expandKey:m});return p?ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},h," "),e):e}return p?renderTextWithLongConnector({output:a,name:u,expandedOutput:i,expandKey:m,hasError:d,closesFrame:g}):ct.createElement(tt,{width:"100%"},ct.createElement(nt,{color:d?XO.RED:"",wrap:"wrap"},renderTruncatedOutput({output:a,name:u,expandedOutput:i,expandKey:m})))}function renderTextWithLongConnector({output:e,name:n,expandedOutput:o,expandKey:r,hasError:s,closesFrame:a}){const{text:i,isTruncated:l,truncationMsg:c}=getTruncatedOutputParts({output:e,name:n,expandedOutput:o,expandKey:r}),d=s?XO.RED:void 0,u=buildTreeConnectors(i,{isTruncated:l,closesFrame:a}),m=a?VD:KD;return ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(tt,{columnGap:1,width:"100%"},ct.createElement(nt,{color:wD},u),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:d,wrap:"wrap"},i))),l&&ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},m," "),c))}function ToolMessage({name:e,input:n,output:o,isPending:r=!1,hasError:s=!1,metadata:a,expandedOutput:i=!1}){const{t:l}=xt(),c="thinking…"===e,d="TODOS"===e,u="EDIT"===e,m="WRITE"===e,p="READ"===e||e.startsWith("READ[")&&e.endsWith("]"),g=!0===a?.isTasteFile,h=a?.tasteCategory,f=!0===a?.permissionDenied,y=!c&&!d&&!g,v="ctrl",S=!0===a?.isAgent,w=computeDisplayInput({input:n,isAgent:S,isShell:"SHELL"===e,expandedOutput:i}),k=!c&&w&&!g,C=a?.status,b=a?.tokensUsed||0,T="number"==typeof a?.elapsedSeconds?Math.floor(a.elapsedSeconds):0,{notes:E}=extractRepairNotes(o??""),P=E.length,M=p?parseReadSummaryLine(extractRepairNotes(o??"").body):null,I=p?projectReadToolInlineSummary({name:e,summaryMatch:M}):null,A=p?projectReadToolBadge({name:e,summaryMatch:M}):e,x=S&&!0===a?.showOutput&&"done"===C,R=Boolean((o||c&&n)&&!g&&(!S||x)&&(!p||s)),{symbolColor:L,symbol:O}=resolveSymbol({isPending:r,hasError:s,isThinking:c,isTodos:d,output:o}),D=a?.preHookLines,N=a?.postHookLines,F=Boolean(D?.length),_=Boolean(N?.length),$=Boolean(a?.hookOutcome),U=r&&!S&&!$,B=!$&&!U,j=R&&!_&&!$&&!U,W=F&&!R&&!_&&!$&&!U;return ct.createElement(tt,null,c&&ct.createElement(nt,{color:L},O),ct.createElement(tt,{flexDirection:"column",marginLeft:c?1:0},ct.createElement(tt,null,ct.createElement(ToolHeader,{isThinking:c,isTasteFile:g,tasteCategory:h,name:A,summaryMatch:M,expandedOutput:i,expandKey:v,input:n,output:o}),k&&ct.createElement(nt,null," ",formatToolInput({input:w,isShell:"SHELL"===e})),ct.createElement(ReadToolInlineSummaryRow,{summary:I}),P>0&&ct.createElement(nt,{dimColor:!0},` ${f$}${P>1?` ${P}`:""}`)),S&&("running"===C||"background"===C||"done"===C||"error"===C||o)&&ct.createElement(tt,{columnGap:1,marginLeft:y?1:0},y&&ct.createElement(nt,{color:wD},VD," "),ct.createElement(AgentStatus,{agentStatus:C,hasError:s,output:o,elapsedSeconds:T,tokensUsed:b})),ct.createElement(HookLines,{lines:D,showTreeConnector:y,closesFrame:W}),R&&renderOutputWithRepairNotes({output:x?stripAgentUsageTrailer(o??""):o??"",isTodos:d,isThinking:c,isEditFile:u,isWriteFile:m,metadata:a,expandedOutput:i||x,isPermissionDenied:f,input:n,hasError:s,name:e,expandKey:v,showTreeConnector:y,closesFrame:j}),ct.createElement(HookLines,{lines:N,showTreeConnector:y,closesFrame:B}),ct.createElement(HookOutcome,{outcome:a?.hookOutcome,showTreeConnector:y}),U&&ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{color:wD},VD," "),ct.createElement(nt,{color:XO.GRAY},l("processing","Processing…")))))}function renderOutputWithRepairNotes({output:e,isTodos:n,isThinking:o,isEditFile:r,isWriteFile:s,metadata:a,expandedOutput:i,isPermissionDenied:l,input:c,hasError:d,name:u,expandKey:m,showTreeConnector:p,closesFrame:g}){const{body:h}=extractRepairNotes(e);return ct.createElement(tt,{marginLeft:p?1:0},renderOutputContent({isTodos:n,isThinking:o,isEditFile:r,isWriteFile:s,metadata:a,output:h,expandedOutput:i,isPermissionDenied:l,input:c,hasError:d,name:u,expandKey:m,showTreeConnector:p,closesFrame:g}))}function HookLines({lines:e,showTreeConnector:n,closesFrame:o=!1}){if(!e||0===e.length)return null;const r=e.length-1;return ct.createElement(tt,{flexDirection:"column",marginLeft:n?1:0},e.map((e,n)=>{const s=o&&n===r?VD:KD;return ct.createElement(tt,{key:n,columnGap:1},ct.createElement(nt,{color:wD},s),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},e)))}))}function HookOutcome({outcome:e,showTreeConnector:n}){if(!e)return null;const o="stop"===e.kind?XO.YELLOW:XO.RED;return ct.createElement(tt,{columnGap:1,marginLeft:n?1:0},ct.createElement(nt,{color:wD},VD),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:o},e.text)))}__name(DiffWordSegments,"DiffWordSegments"),__name(DiffRow,"DiffRow"),__name(renderDiffLine,"renderDiffLine"),__name(DiffMetadata,"DiffMetadata"),__name(generateDiff,"generateDiff"),__name(resolveTodoTextStyle,"resolveTodoTextStyle"),__name(TodoChecklist,"TodoChecklist"),__name(formatTodosForDisplay,"formatTodosForDisplay"),__name(computeDisplayInput,"computeDisplayInput"),__name(formatToolInput,"formatToolInput"),__name(ReadToolInlineSummaryRow,"ReadToolInlineSummaryRow"),__name(resolveSymbol,"resolveSymbol"),__name(ToolHeader,"ToolHeader"),__name(stripAgentUsageTrailer,"stripAgentUsageTrailer"),__name(AgentStatus,"AgentStatus"),__name(getTruncatedOutputParts,"getTruncatedOutputParts"),__name(renderTruncatedOutput,"renderTruncatedOutput"),__name(renderEditFileDiff,"renderEditFileDiff"),__name(renderWriteFileContent,"renderWriteFileContent"),__name(renderOutputContent,"renderOutputContent"),__name(renderTextWithLongConnector,"renderTextWithLongConnector"),__name(ToolMessage,"ToolMessage"),__name(renderOutputWithRepairNotes,"renderOutputWithRepairNotes"),__name(HookLines,"HookLines"),__name(HookOutcome,"HookOutcome");var v$=createNodeRuntime(),S$=__name(({label:e,isSelected:n})=>e.includes("[shift+tab]")?ct.createElement(ct.Fragment,null,e.split("[shift+tab]")[0],ct.createElement(BracketWrap,{color:n?ZN:eF,bold:!0},"shift+tab")):e.includes("(")?ct.createElement(ct.Fragment,null,e.split("(")[0],ct.createElement(nt,{color:XO.GRAY},"(",e.split("(")[1])):e,"ChoiceLabel"),w$=__name(({request:e,onResponse:n,onEnableAutoAccept:o})=>{const{t:r}=xt(),[s]=mt(0),[a,i]=mt(1);gt(()=>{"edit"===e.action&&e.oldContent&&e.filePath&&resolveEditStartLine({runtime:v$,filePath:e.filePath,oldContent:e.oldContent}).then(e=>{void 0!==e&&i(e)}).catch(()=>{})},[e.filePath,e.oldContent,e.action]);const l=getPermissionChoicesForRisk({choices:rI,risk:e.risk}),c=__name(e=>{const r=l.find(n=>n.value===e.value);r&&(n(r),"yes-session"===r.value&&o&&o())},"handleSelect"),d=__name(()=>"edit"===e.action?r("makeThisEditTo","make this edit to"):"create"===e.action?"create":"delete"===e.action?"delete":"execute"===e.action?"execute":"modify","getActionDescription"),u=getDisplayPath({filePath:e.filePath,cwd:process.cwd()}),m=__name(()=>"edit"===e.action?r("editFile","Edit File"):"create"===e.action?r("createFile","Create File"):"delete"===e.action?r("deleteFile","Delete File"):"execute"===e.action?r("executeFile","Execute File"):r("fileOperation","File Operation"),"getHeading");return ct.createElement(oF,{title:`${m()}${"edit"===e.action?` ${u}`:""}`,footer:ct.createElement(g$,{hint:r("navigateEnterSelect","↑/↓ navigate · enter select")})},"edit"===e.action&&e.oldContent&&e.newContent&&ct.createElement(tt,{marginBottom:1},generateDiff({oldValue:e.oldContent,newValue:e.newContent,filePath:u,marginLeft:0,startLine:a}).diffContent),e.risk&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.RED,wrap:"wrap"},vt.warning," ",getRiskDisplay(e.risk))),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0},r("doYouWantTo","Do you want to")," ",d()," ",ct.createElement(nt,{color:ZN},u),"?")),ct.createElement(SelectInput,{items:l.map((e,n)=>({label:` ${n+1}. ${translatePermissionLabel(e.label)}`,value:e.value})),onSelect:c,initialIndex:s,indicatorComponent:s$,itemComponent:({label:e,isSelected:n})=>ct.createElement(a$,{isSelected:n},ct.createElement(S$,{label:e,isSelected:n}))}))},"PermissionPrompt");Jt(),hL();var k$=IE?"ctrl+y":"ctrl+e",C$=__name(({request:e,onResponse:n})=>{const{t:o}=xt(),[r]=mt(0),[s,a]=mt({phase:"idle"}),i=e.description??("done"===s.phase?s.explanation:void 0),l=void 0!==e.explain&&void 0===e.description&&"done"!==s.phase;at((n,o)=>{l&&"loading"!==s.phase&&(isCtrlKey({inputChar:n,key:o,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:n,key:o,letter:"y",ctrlCode:25}))&&(a({phase:"loading"}),e.explain?.().then(e=>{a(e?{phase:"done",explanation:e}:{phase:"failed"})}).catch(()=>a({phase:"failed"})))});const c=getPermissionChoicesForRisk({choices:getShellPermissionChoices({command:e.command,...void 0!==e.args?{args:e.args}:{}}),risk:e.risk}),d=__name(e=>{const o=c.find(n=>n.value===e.value);o&&n(o)},"handleSelect");return ct.createElement(oF,{title:o("executeShellCommand","Execute Shell Command"),subtitle:ct.createElement(nt,{wrap:"wrap"},o("needsToExecute","{{v0}} needs to execute ",{v0:"Command Code"}),ct.createElement(nt,{color:ZN},getCommandDisplay(e)),"."),footer:ct.createElement(g$,{hint:l?o("navigateEnterSelectExplain","↑/↓ navigate · enter select · {{v0}} explain",{v0:k$}):o("navigateEnterSelect","↑/↓ navigate · enter select")})},e.risk&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.RED,wrap:"wrap"},vt.warning," ",getRiskDisplay(e.risk))),e.workingDirectory&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.GRAY},o("workingDirectory","Working directory:")," ",e.workingDirectory)),i&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},i)),l&&"idle"===s.phase&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},o("press","Press")," ",ct.createElement(BracketWrap,{color:XO.DIM,bold:!0},k$)," ",o("toExplainThisCommand","to explain this command"))),"loading"===s.phase&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},ct.createElement(Et,{type:"dots"})," ",o("explainingThisCommand","Explaining this command…"))),"failed"===s.phase&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},o("couldnTGenerateAnExplanationPress","Couldn't generate an explanation — press")," ",k$," ",o("toRetry","to retry"))),ct.createElement(SelectInput,{items:c.map((e,n)=>({label:` ${n+1}. ${translatePermissionLabel(e.label)}`,value:e.value})),onSelect:d,initialIndex:r,indicatorComponent:s$,itemComponent:({label:e,isSelected:n})=>ct.createElement(a$,{isSelected:n},e.includes("[shift+tab]")?ct.createElement(ct.Fragment,null,e.split("[shift+tab]")[0],ct.createElement(BracketWrap,{color:n?ZN:eF,bold:!0},"shift+tab")):e)}))},"ShellPermissionPrompt");function handlePermissionResponse({choice:e,resolve:n,setPendingPermission:o,respondToPrompt:r,setStatus:s,permissionMode:a,showHintMessage:i,allowedStatus:l,deniedStatus:c}){r(e);const d="no"!==e.value;n(d),o(null),d?(s(l),"default"===a&&i(t("useShiftTabToEnableAcceptEdits","Use shift+tab to enable accept edits"))):s(c)}__name(handlePermissionResponse,"handlePermissionResponse");var b$=dt(__name(function PermissionView2({pendingPermission:e,permissionMode:n,setPendingPermission:o,setStatus:r,respondToPrompt:s,showHintMessage:a,handleEnableAutoAccept:i}){const{t:l}=xt(),c={resolve:e.resolve,setPendingPermission:o,respondToPrompt:s,setStatus:r,permissionMode:n,showHintMessage:a};if("shell_command"===e.toolName){const n=e.params;return ct.createElement(tt,{marginY:1},ct.createElement(C$,{request:n,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("shellCommandAllowed","Shell command allowed"),deniedStatus:l("shellCommandDenied","Shell command denied")})}))}if("kill_shell"===e.toolName){const n=buildKillShellPermissionRequest(e.params);return ct.createElement(tt,{marginY:1},ct.createElement(C$,{request:n,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("processTerminationAllowed","Process termination allowed"),deniedStatus:l("processTerminationDenied","Process termination denied")})}))}if(isGenericToolRequest(e.params)){const n=e.params;return ct.createElement(tt,{marginY:1},ct.createElement(h$,{request:n,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("toolCallAllowed","Tool call allowed"),deniedStatus:l("toolCallDenied","Tool call denied")})}))}const d=isFileEditRequest(e.params)?e.params:buildFileToolPermissionRequest({toolName:e.toolName,input:e.params,fallbackDescription:l("allowOperation","Allow {{v0}} operation",{v0:e.toolName}),useInputDescription:!1});return ct.createElement(tt,{marginY:1},ct.createElement(w$,{request:d,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("fileOperationAllowed","File operation allowed"),deniedStatus:l("fileOperationDenied","File operation denied")}),onEnableAutoAccept:i}))},"PermissionView"));function isGenericToolRequest(e){return"object"==typeof e&&null!==e&&"toolName"in e&&"string"==typeof e.toolName}function isFileEditRequest(e){if("object"!=typeof e||null===e)return!1;const n=e;return"string"==typeof n.action&&"string"==typeof n.filePath}function PlanPanel({content:e,filePath:o,expanded:r}){const{t:s}=xt(),{stdout:a}=rt(),i=trimPlanMarkdown(e,getCollapsedPlanMaxLines(a?.rows)),l=i.hiddenLineCount>0,c=r?e:i.visible,d=1!==i.hiddenLineCount?"s":"",u=s("moreLineCtrlOToExpand","… +{{v0}} more line{{v1}} · ctrl+o to expand",{v0:i.hiddenLineCount,v1:d});return ct.createElement(oF,{title:s("plan","Plan"),titleSuffix:o?` · ${n.basename(o)}`:void 0,gapAfterHeader:!1,hint:l?r?s("ctrlOToCollapse","ctrl+o to collapse"):u:void 0},ct.createElement(tt,{marginTop:1},ct.createElement(Markdown,null,c)))}__name(isGenericToolRequest,"isGenericToolRequest"),__name(isFileEditRequest,"isFileEditRequest"),Jt(),hL(),Jt(),hL(),__name(PlanPanel,"PlanPanel"),Jt(),hL();var T$=__name(({preview:e})=>{const{t:n}=xt(),o=e.trim().split("\n"),r=o.slice(0,8),s=o.length-r.length,a="─".repeat(70),i=n("lineHidden","─── ✂ ─── {{v0}} line{{v1}} hidden ",{v0:s,v1:1===s?"":"s"}),l="─".repeat(Math.max(0,70-i.length));return ct.createElement(tt,{flexDirection:"column",marginTop:1,paddingLeft:4},ct.createElement(nt,{italic:!0,color:XO.DIM},n("preview","Preview")),ct.createElement(nt,{color:XO.DIM},`┌${a}┐`),r.map((e,n)=>{const o=e.length>68?e.slice(0,68):e,r=" ".repeat(Math.max(0,68-o.length));return ct.createElement(nt,{key:n},ct.createElement(nt,{color:XO.DIM},"│ "),ct.createElement(nt,{color:XO.GRAY},o),ct.createElement(nt,{color:XO.DIM},`${r} │`))}),s>0?ct.createElement(nt,{color:XO.YELLOW},`├${i}${l}┤`):null,ct.createElement(nt,{color:XO.DIM},`└${a}┘`))},"OptionPreview"),E$=__name(()=>[{label:t("1Submit","1. Submit"),value:"submit"},{label:t("2Cancel","2. Cancel"),value:"cancel"}],"REVIEW_ITEMS"),P$=__name(({checked:e})=>e?ct.createElement(nt,{color:XO.GREEN},"[",vt.tick,"] "):ct.createElement(nt,{color:XO.DIM},"[ ] "),"MultiSelectCheckbox"),M$=__name((e,n)=>{if(!e.startsWith("option_"))return null;const o=e.slice(7),r=parseInt(o,10);return Number.isNaN(r)||r<0||r>n?null:r},"parseOptionIndex"),I$=__name((e,n)=>{const o=new Set(e);return o.has(n)?(o.delete(n),o):(o.add(n),o)},"toggleLabel"),A$=__name((e,n)=>e?{indicator:vt.bullet,color:ZN}:n?{indicator:vt.tick,color:XO.GREEN}:{indicator:vt.circle,color:XO.GRAY},"getTabMarker"),x$=__name(({questions:e,currentIndex:n,answeredQuestions:o,isReviewPage:r,hideReview:s=!1})=>{const{t:a}=xt();if(s&&1===e.length)return null;const i=[];if(e.forEach((s,a)=>{const l=a===n&&!r,c=o.has(a),{indicator:d,color:u}=A$(l,c);i.push(ct.createElement(nt,{key:a},ct.createElement(nt,{color:u},d),ct.createElement(nt,{color:l?ZN:void 0}," ",s.header),a<e.length-1?ct.createElement(nt,{color:XO.DIM}," | "):null))}),!s){const e=r;i.push(ct.createElement(nt,{key:"review"},ct.createElement(nt,{color:XO.DIM}," | "),ct.createElement(nt,{color:e?ZN:XO.GRAY},e?vt.bullet:vt.circle),ct.createElement(nt,{color:e?ZN:void 0,bold:e}," ",a("review","Review"))))}return ct.createElement(tt,null,i)},"TabIndicator"),R$=__name(({questions:e,onResponse:n,hideCustomInput:o=!1,compact:r=!1})=>{const{t:s}=xt(),[a,i]=mt(0),[l,c]=mt(new Map),d=pt(null);null===d.current&&(d.current=new Map);const u=d.current,[m,p]=mt(""),[g,h]=mt(new Set),[f,y]=mt(null),[v,S]=mt(!1),[w,k]=mt(!1),[C,b]=mt(!1),[T,E]=mt(null),[P,M]=mt(!1),I=pt(null);null===I.current&&(I.current=new Map);const A=pt(null);null===A.current&&(A.current=new Map);const[x,R]=mt(!1),[L,O]=mt(""),[,D]=mt(0),N=e[a],F=N?.multiSelect??!1,_=l.get(a),$=N?[...N.options.map((e,n)=>({label:e.label,value:`option_${n}`,description:e.description,...void 0!==e.preview?{preview:e.preview}:{}}))]:[],U=$.map((e,n)=>({label:` ${n+1}. ${e.label}`,value:e.value})),B=new Map(U.map((e,n)=>[e.label,$[n]])),j=__name((e,n)=>{n.size>0?u.set(e,Array.from(n)):u.delete(e)},"saveOrClearMultiAnswer"),W=__name(n=>{const o=e[n],r=u.get(n);if(o?.multiSelect&&r){h(new Set(r));const e=r.find(e=>!o.options.some(n=>n.label===e));return void p(e||"")}if(h(new Set),!o?.multiSelect&&1===r?.length){const e=r[0],n=!o?.options.some(n=>n.label===e);return void p(n&&e?e:"")}p("")},"restoreInputsForQuestion"),H=__name(e=>{"submit"!==e.value?"cancel"===e.value&&n({answers:[]}):J()},"handleReviewSelect"),G=__name(()=>{if(!_||0===_.length)return 0;const e=_[0],n=N.options.findIndex(n=>n.label===e);return n>=0?n:0},"getInitialIndex"),V=__name(e=>{if(v)return;if(F){const n=M$(e.value,N.options.length-1);if(null===n)return;const o=N.options[n]?.label||"";return void h(e=>I$(e,o))}const n=M$(e.value,N.options.length-1);if(null===n)return;S(!0);const o=N.options[n]?.label||"";q([o])},"handleSelect"),K=__name(()=>{if(v)return;S(!0);const e=Array.from(g);q(e)},"handleMultiSelectDone"),z=__name(()=>{if(v)return;const e=m.trim();if(e){if(F){const n=new Set(N.options.map(e=>e.label));return void h(o=>{const r=new Set;return o.forEach(e=>{n.has(e)&&r.add(e)}),r.add(e),r})}S(!0),q([e])}},"handleOtherSubmit"),q=__name(n=>{u.set(a,n);const r=new Map(u);if(c(r),a<e.length-1){const e=a+1;return W(e),i(e),S(!1),b(!1),E(null),void M(!1)}if(e.every((e,n)=>r.has(n)))return o&&1===e.length?void J():(h(new Set),p(""),b(!1),M(!1),E(null),k(!0),void S(!1));const s=e.findIndex((e,n)=>!r.has(n));-1!==s&&(W(s),i(s)),S(!1),b(!1),E(null),M(!1)},"finishQuestion"),Y=__name(()=>e.map((e,n)=>{const o=u.get(n)||[],r=A.current?.get(n),s=0===o.length&&r?.length?["(Image attached)"]:o,a=I.current?.get(n)?.trim(),i=e.multiSelect||1!==o.length?void 0:e.options.find(e=>e.label===o[0]);return{questionIndex:n,selectedOptions:s,...i?.preview?{preview:i.preview}:{},...a?{notes:a}:{},...r?.length?{images:r}:{}}}),"buildAnswers"),J=__name(()=>{n({answers:Y()})},"submitAnswers"),Q=__name(()=>{n({answers:Y(),disposition:"chat"})},"chatAboutQuestions"),X=__name(()=>{I.current&&(L.trim()?I.current.set(a,L):I.current.delete(a)),R(!1)},"saveNotesAndClose"),Z=__name(async()=>{try{const e=await detectClipboardImage();if(!e)return;const n=A.current?.get(a)??[];A.current?.set(a,[...n,{data:e.data,mediaType:e.mediaType}]),D(e=>e+1)}catch{}},"pasteClipboardImageIntoQuestion"),ee=__name(async(e,n)=>{try{const o=await openInEditor(e);o!==e&&n(o)}catch{}},"editExternally"),te=__name(e=>{k(!1),i(e),M(!1),b(!1),E(null),W(e)},"editQuestion"),ne=__name(n=>{n<0||n>=e.length||(F&&(j(a,g),c(new Map(u))),S(!1),b(!1),E(null),M(!1),W(n),i(n))},"navigateToQuestion"),oe=__name(()=>{if(!f||!F)return;if("done"===f.value)return;const e=M$(f.value,N.options.length-1);if(null===e)return;const n=N.options[e]?.label||"";h(e=>I$(e,n))},"toggleMultiSelection"),re=__name(e=>{const n=U[0],r=U[U.length-1],s=f&&n&&f.value===n.value,a=f&&r&&f.value===r.value;if(!e.downArrow||C||P||o||!(U.length>0)||!a)return e.upArrow&&!C&&!P&&U.length>0&&s?F?void M(!0):void(o||(b(!0),E(U.length-1))):e.upArrow&&C?(b(!1),E(U.length-1),void(r&&y(r))):e.downArrow&&C?(b(!1),F?void M(!0):(E(0),void(n&&y(n)))):e.upArrow&&P?(M(!1),void b(!0)):e.downArrow&&P?(M(!1),E(0),void(n&&y(n))):void(e.return&&P&&F&&K());b(!0)},"handleVerticalNav"),se=__name(n=>{v||C||P||(w?n.leftArrow&&te(e.length-1):n.leftArrow&&a>0?ne(a-1):n.rightArrow&&(a<e.length-1?ne(a+1):(F&&(j(a,g),c(new Map(u))),k(!0))))},"handleHorizontalNav"),ae=__name(()=>{if(!v)if(w)k(!1);else{if(C){b(!1);const e=T??U.length-1;E(e);const n=U[e];return void(n&&y(n))}if(P){M(!1);const e=U[U.length-1];e&&y(e)}}},"handleEscape");if(at((e,n)=>{const r="v"===e&&(n.ctrl||n.meta&&"darwin"!==process.platform);if(x)n.escape?X():r?Z():n.ctrl&&"g"===e&&ee(L,O);else if(r&&C)Z();else if(n.ctrl&&"g"===e&&C)ee(m,p);else{if(" "===e&&F&&!C&&oe(),"d"!==e||!F||C||w||K(),!(C||w||v||o)){if("n"===e)return O(I.current?.get(a)??""),void R(!0);if("c"===e)return void Q()}w||v||re(n),se(n),n.escape&&ae()}}),!N&&!w)return null;if(w)return ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(MD,{dividerColor:XN}),ct.createElement(tt,{marginBottom:1},ct.createElement(x$,{questions:e,currentIndex:e.length,answeredQuestions:new Set(l.keys()),isReviewPage:!0})),e.some((e,n)=>!l.get(n)?.length)&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.YELLOW},s("youHaveNotAnsweredAllQuestions","⚠ You have not answered all questions"))),e.map((e,n)=>ct.createElement(tt,{key:n,marginBottom:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n+1,". ",e.question),ct.createElement(nt,{color:XO.GREEN}," ",l.get(n)?.join(", ")||s("noAnswer","No answer")))),ct.createElement(SelectInput,{items:E$(),onSelect:H,initialIndex:0,indicatorComponent:s$,itemComponent:i$}),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{italic:!0,color:XO.DIM},vt.arrowLeft," ",s("toGoBackAndEdit","to go back and edit"))));const ie=r&&1===e.length;return ct.createElement(tt,{flexDirection:"column",width:"100%"},!ie&&ct.createElement(MD,{dividerColor:XN}),!ie&&ct.createElement(tt,{marginBottom:1},ct.createElement(x$,{questions:e,currentIndex:a,answeredQuestions:new Set(l.keys()),isReviewPage:!1,hideReview:o})),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:JN},N.question)),C||P||x?ct.createElement(tt,{flexDirection:"column"},U.map((e,n)=>{const o=B.get(e.label),r=F&&o&&g.has(o.label),s=!F&&o&&_?.includes(o.label),a=r||s;return ct.createElement(tt,{key:e.value,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,null," "),ct.createElement(a$,{isActive:a,idleColor:XO.GRAY}," ",n+1,"."," "),F&&ct.createElement(P$,{checked:a}),ct.createElement(a$,{isActive:a,idleColor:XO.GRAY},o?.label||""),!F&&a&&ct.createElement(l$,null)),o?.description&&ct.createElement(tt,null,ct.createElement(nt,null," "),ct.createElement(c$,{indent:F?7:4},o.description)))})):ct.createElement(SelectInput,{key:`${a}-${T??"default"}`,items:U,initialIndex:T??G(),onSelect:V,onHighlight:y,indicatorComponent:s$,itemComponent:({label:e,isSelected:n})=>{const o=B.get(e),r=F&&o&&g.has(o.label),s=!F&&o&&_?.includes(o.label),a=r||s,i=e.match(/^\s*(\d+)\.\s*(.*)$/),l=i?.[1]||"",c=i?.[2]||e;return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(a$,{isSelected:n,isActive:a}," ",l,"."," "),F&&ct.createElement(P$,{checked:a}),ct.createElement(a$,{isSelected:n,isActive:a},c),!F&&a&&ct.createElement(l$,null)),o?.description&&ct.createElement(c$,{indent:F?7:4},o.description))}}),!C&&!P&&(()=>{const e=(f?B.get(f.label):void 0)??$[T??G()];return e?.preview?ct.createElement(T$,{preview:e.preview}):null})(),!o&&ct.createElement(tt,null,ct.createElement(s$,{isSelected:C}),ct.createElement(a$,{isSelected:C}," ",U.length+1,"."," "),F&&ct.createElement(P$,{checked:g.has(m.trim())}),ct.createElement(TextInput,{value:m,onChange:e=>{const n=e.replace(/\r\n/g," ").replace(/[\r\n]/g," "),o=m.trim();p(n),F&&h(e=>{const r=new Set(e);return o&&r.has(o)&&r.delete(o),n.trim()&&r.add(n.trim()),r})},onSubmit:z,placeholder:s("typeSomething","Type something..."),focus:C,stripBracketedPaste:!0})),x?ct.createElement(tt,null,ct.createElement(s$,{isSelected:!0}),ct.createElement(a$,{isSelected:!0}," ",s("notes","notes:")," "),ct.createElement(TextInput,{value:L,onChange:O,onSubmit:X,placeholder:s("addNotesOnThisDesign","Add notes on this design…"),focus:x,stripBracketedPaste:!0})):(()=>{const e=I.current?.get(a)?.trim();return e?ct.createElement(tt,null,ct.createElement(nt,{italic:!0,color:XO.DIM}," ",s("notes","notes:")," ",e)):null})(),(A.current?.get(a)??[]).map((e,n)=>ct.createElement(tt,{key:n},ct.createElement(nt,{color:XO.DIM}," ",s("imageNumber","[Image #{{index}}",{index:n+1})," ",s("attached","attached —")," ",e.mediaType,"]"))),F&&ct.createElement(tt,null,ct.createElement(s$,{isSelected:P}),ct.createElement(a$,{isSelected:P}," ",a===e.length-1?s("submit2","Submit"):s("next","Next"))),e.length>1&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{italic:!0,color:XO.DIM},s("enterToSelectArrowKeysToNavigate","Enter to select | Arrow keys to navigate |")," ",o?s("escToCancel2","Esc to cancel"):s("19QuickSelectNNotesCChatEscToCancel","1-9 quick select | n notes | c chat | Esc to cancel"))))},"QuestionPrompt");function QuestionView({pendingQuestion:e,setPermissionMode:n,dangerouslySkipPermissions:o,setPendingQuestion:r,setStatus:s,setStaticKey:a}){const{t:i}=xt(),[l,c]=mt(!1),d=e.params.planContent;return at((e,n)=>{d&&getIsExpandToolShortcut(n,e)&&c(e=>!e)}),ct.createElement(tt,{marginY:1,flexDirection:"column"},d&&ct.createElement(tt,{marginBottom:1},ct.createElement(PlanPanel,{content:d,filePath:e.params.planFilePath,expanded:l})),ct.createElement(R$,{questions:e.params.questions,hideCustomInput:e.params.hideCustomInput,compact:e.params.compact,onResponse:l=>{const c=resolvePlanModeAnswerTransition({answer:l.answers[0]?.selectedOptions[0]||"",exitPlanMode:e.params.exitPlanMode,enterPlanMode:e.params.enterPlanMode,dangerouslySkipPermissions:o});c&&n(c),e.resolve(l),r(null),s(i("answersSubmitted","Answers submitted")),hardResetForResize(),a(e=>e+1)}}))}__name(QuestionView,"QuestionView"),Jt(),hL();var L$="__skip__",O$=__name(({suggestion:e,onSelect:n,onClose:o})=>{const{t:r}=xt(),{completedMode:s,primary:a,secondary:i,description:l}=e,c=[...a.map(e=>({label:e,value:e,isPrimary:!0})),...i.map(e=>({label:e,value:e,isPrimary:!1})),{label:"skip",value:L$,isPrimary:!1}],d=new Map(c.map(e=>[e.label,e]));at((e,n)=>{n.escape&&o()});const u=__name(e=>{e.value!==L$?(n(e.value),o()):o()},"handleSelect");return ct.createElement(oF,{title:r("designComplete","/design {{v0}} complete",{v0:s}),titleSuffix:` · ${translateUiCopy(l)}`,hint:r("enterToRunEscToDismiss","Enter to run · Esc to dismiss")},ct.createElement(SelectInput,{items:c,onSelect:u,indicatorComponent:m$,itemComponent:({label:e,isSelected:n})=>{const o=d.get(e),s=o?.value===L$,a=o?.isPrimary??!1,i=s?r("runDesignManually","run /design manually"):translateUiCopy(ov[e]??"");return ct.createElement(tt,{flexDirection:"column"},ct.createElement(d$,{isSelected:n,idleColor:a?XO.WHITE:XO.DIM},s?r("skip"," skip "):` /design ${e} `),i&&ct.createElement(d$,{isSelected:n,idleColor:XO.DIM,bold:!1},` ${i} `))}}))},"DesignModeSelector");function getUsageToneColor(e){return"danger"===e?XO.RED:"warning"===e?XO.YELLOW:XO.GREEN}function getDistanceToneColor(e){return"danger"===e?XO.RED:"warning"===e?XO.YELLOW:XO.GRAY}function ContextProgress({view:e,progressBarWidth:n}){const{t:o}=xt(),r=getUsageToneColor(e.tone),s=buildBlockBar({percentage:e.percentage,width:n});return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{marginBottom:1},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:XO.BLUE,color:"#f4f4f4",bold:!0},o("context2","{{v0}}CONTEXT{{v1}}",{v0:zD,v1:zD}))),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.GRAY},e.modelLabel)),ct.createElement(tt,null,ct.createElement(nt,{color:r},s.filled),ct.createElement(nt,{color:cD},s.empty),ct.createElement(nt,{bold:!0,color:r},` ${e.percentageLabel}`)),ct.createElement(tt,null,ct.createElement(nt,null,e.tokensUsedLabel),ct.createElement(nt,{color:XO.GRAY},` / ${e.tokenLimitLabel}`),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:r},e.tokensRemainingLabel),ct.createElement(nt,{color:XO.GRAY}," ",o("remaining","remaining")),e.isEstimated&&ct.createElement(nt,{color:XO.DIM}," ",o("estimated","(estimated)"))))}function CompactionDistance({view:e}){if(!e)return null;const n=getDistanceToneColor(e.tone);return ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:n},e.tokensAwayLabel),ct.createElement(nt,{color:XO.DIM},e.label))}function BreakdownRow({item:e,labelWidth:n}){const{t:o}=xt(),r=translateUiCopy(e.name);return ct.createElement(tt,null,ct.createElement(nt,null,r+" ".repeat(Math.max(1,n-Be(r)))),ct.createElement(nt,{bold:!0},e.paddedValue),ct.createElement(nt,{color:XO.GRAY},o("tokens"," tokens")),e.detail&&ct.createElement(nt,{color:XO.DIM},` · ${e.detail}`))}function ContextBreakdown({view:e,labelWidth:n}){return 0===e.rows.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},e.rows.map(e=>ct.createElement(BreakdownRow,{key:e.name,item:e,labelWidth:n})))}function ContextTips({tips:e}){return 0===e.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},e.map(e=>ct.createElement(tt,{key:e},ct.createElement(nt,{color:XO.CYAN},vt.pointer),ct.createElement(nt,{color:XO.GRAY}," ",e))))}function ContextMessage({analysis:e}){const n=projectContextView(e,{terminalWidth:useTerminalWidth(),modelDisplayName:XL(e.model)});return ct.createElement(tt,{flexDirection:"column",paddingTop:1},ct.createElement(ContextProgress,{view:n.progress,progressBarWidth:n.layout.progressBarWidth}),ct.createElement(CompactionDistance,{view:n.compactionDistance}),ct.createElement(ContextBreakdown,{view:n.breakdown,labelWidth:n.layout.labelWidth}),ct.createElement(ContextTips,{tips:n.tips}))}function ContextConfigView({staticKey:e,sessionId:n,onClose:o,setInput:r}){const{t:s}=xt(),[a,i]=mt(null),[l,c]=mt(null);return gt(()=>{let e=!0;return __name(async()=>{const o=hO(n);if(o)try{const n=await analyzeCommandContext({messages:harnessSessionMessages(o),deps:{getContextLimit:__name(e=>customAwareContextLimit({modelId:e,fallback:getContextLimit}),"getContextLimit")}});e&&i(n)}catch{e&&c(s("failedToAnalyzeContext","Failed to analyze context."))}else e&&c(s("noActiveConversationStartChattingFirst","No active conversation. Start chatting first."))},"load")(),()=>{e=!1}},[n]),at((e,n)=>{n.escape&&(r(""),o())}),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(ContextBody,{error:l,analysis:a}),ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Esc")," ",s("toReturnToConversation","to return to conversation")))))}function ContextBody({error:e,analysis:n}){const{t:o}=xt();return e?ct.createElement(oF,{title:o("context","Context"),gapAfterHeader:!1},ct.createElement(nt,{color:XO.DIM},e)):n?ct.createElement(ContextMessage,{analysis:n}):ct.createElement(oF,{title:o("context","Context"),gapAfterHeader:!1},ct.createElement($F,{label:o("loadingContextAnalysis","Loading context analysis")}))}Jt(),hL(),Jt(),hL(),__name(getUsageToneColor,"getUsageToneColor"),__name(getDistanceToneColor,"getDistanceToneColor"),__name(ContextProgress,"ContextProgress"),__name(CompactionDistance,"CompactionDistance"),__name(BreakdownRow,"BreakdownRow"),__name(ContextBreakdown,"ContextBreakdown"),__name(ContextTips,"ContextTips"),__name(ContextMessage,"ContextMessage"),__name(ContextConfigView,"ContextConfigView"),__name(ContextBody,"ContextBody"),Jt(),Jt(),hL(),Jt(),hL();var D$="https://commandcode.ai/studio";function getVersionStatus(){try{return{current:getPackageJson(import.meta.url).version??"Unknown",updateAvailable:null}}catch{return{current:"Unknown",updateAvailable:null}}}async function getAuthStatus(){try{const e=await checkCommandAuthStatus({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),n=e.userName||null;return{authenticated:e.authenticated,username:n}}catch{return{authenticated:!1,username:null}}}async function getModelStatus(e){try{const n=e?.sessionId?hO(e.sessionId):void 0,o=n?.getModel()??await getSelectedModel(),r=getProviderDisplayName((await loadUserConfig()).provider||null),s=getModelShortName({modelId:o,findModelById:findModelById});let a;return modelSupportsReasoningEffort(o)&&(a=n?n.getEffort():getReasoningEffort(o)),{id:o,displayName:a?t("withEffort","{{v0}} with {{v1}} effort",{v0:s,v1:a}):s,provider:r}}catch{return{id:"Unknown",displayName:"Unknown",provider:"Unknown"}}}function getPrStatus(e){try{const n=getCachedPR(e);return n?{number:n.number,url:n.url,state:n.state}:null}catch{return null}}function gatherStatusData(e){const n=e?.runtime??createNodeRuntime();return getStatusSnapshot({runtime:n,version:getVersionStatus,auth:getAuthStatus,model:__name(()=>getModelStatus({sessionId:e?.sessionId}),"model"),pr:getPrStatus,taste:__name(()=>getTasteStatus({runtime:n,learningEnabled:isTasteLearningEnabled,byokSuppressed:isByok({model:getConfiguredModel()})}),"taste"),system:__name(()=>getSystemStatus({runtime:n,arch:process.arch,nodeVersion:process.version}),"system"),disabledSkillNames:__name(async()=>(await loadCommandDisabledSkills()).names,"disabledSkillNames")})}__name(getVersionStatus,"getVersionStatus"),__name(getAuthStatus,"getAuthStatus"),__name(getModelStatus,"getModelStatus"),__name(getPrStatus,"getPrStatus"),__name(gatherStatusData,"gatherStatusData");var N$=__name(({label:e,value:n,valueColor:o,dimValue:r})=>ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},`${e}:`.padEnd(14)),r?ct.createElement(nt,{dimColor:!0},n):ct.createElement(nt,{color:o},n)),"Row");function StatusMessage({statusData:e}){const{t:n}=xt(),o=projectStatusView(e,{profileBaseUrl:"https://commandcode.ai"}),r=o.account.authenticated?vt.tick:vt.cross,s=o.account.authenticated?XO.WHITE:iD.ERROR;return ct.createElement(tt,{flexDirection:"column",paddingX:0},ct.createElement(tt,null,ct.createElement(nt,{color:ZO,bold:!0},"Command Code"," "),ct.createElement(nt,{dimColor:!0},o.versionText)),ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},n("visit","Visit")," "),ct.createElement(_D,{url:D$,text:D$,color:XO.CYAN}),ct.createElement(nt,{dimColor:!0}," ",n("forUsageAndBilling","for usage and billing"))),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{dimColor:!0},n("account","Account:").padEnd(14)),o.account.username&&o.account.profileUrl?ct.createElement(ct.Fragment,null,ct.createElement(_D,{url:o.account.profileUrl,text:o.account.label,color:XO.CYAN}),ct.createElement(nt,{color:s}," ",r)):o.account.authenticated?ct.createElement(ct.Fragment,null,ct.createElement(nt,null,o.account.label),ct.createElement(nt,{color:s}," ",r)):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:iD.WARNING},o.account.label),ct.createElement(nt,{color:s}," ",r),ct.createElement(nt,{dimColor:!0}," ",n("run","— run")," "),ct.createElement(nt,{bold:!0},o.account.loginHint))),ct.createElement(N$,{label:n("model","Model"),value:o.model.value}),ct.createElement(N$,{label:n("branch2","Branch"),value:o.branch.value,dimValue:o.branch.dim}),o.worktree?ct.createElement(N$,{label:n("worktree","Worktree"),value:o.worktree.value}):null,o.repository?ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},n("repository","Repository:").padEnd(14)),ct.createElement(_D,{url:o.repository.url,text:o.repository.text,color:XO.CYAN}),o.pullRequest?ct.createElement(ct.Fragment,null,ct.createElement(nt,{dimColor:!0}," · "),ct.createElement(_D,{url:o.pullRequest.url,text:o.pullRequest.text,color:o.pullRequest.open?XO.CYAN:XO.GRAY}),ct.createElement(nt,{dimColor:!0}," ","(",o.pullRequest.stateLabel,")")):null):o.pullRequest?ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},n("pullRequest","Pull Request:").padEnd(14)),ct.createElement(_D,{url:o.pullRequest.url,text:o.pullRequest.text,color:o.pullRequest.open?XO.CYAN:XO.GRAY}),ct.createElement(nt,{dimColor:!0}," (",o.pullRequest.stateLabel,")")):null,ct.createElement(N$,{label:"Taste",value:o.taste.value,dimValue:o.taste.dim}),ct.createElement(N$,{label:n("directory","Directory"),value:o.directory.value}),ct.createElement(N$,{label:n("skills","Skills"),value:o.skills.value,dimValue:o.skills.dim}),ct.createElement(N$,{label:n("agents","Agents"),value:o.agents.value,dimValue:o.agents.dim}),ct.createElement(N$,{label:n("system","System"),value:o.system.value}),o.proxy?ct.createElement(N$,{label:n("proxy","Proxy"),value:o.proxy.value}):null)}function StatusBody({state:e}){const{t:n}=xt();return"ready"===e.phase?ct.createElement(StatusMessage,{statusData:e.data}):"error"===e.phase?ct.createElement(nt,{dimColor:!0},n("couldNotLoadStatus","Could not load status:")," ",e.message):ct.createElement(nt,{dimColor:!0},n("gatheringStatus","Gathering status…"))}function StatusConfigView({staticKey:e,sessionId:n,onClose:o,setInput:r}){const{t:s}=xt(),[a,i]=mt({phase:"loading"});return gt(()=>{let e=!1;return gatherStatusData({sessionId:n}).then(n=>{e||i({phase:"ready",data:n})}).catch(n=>{if(e)return;const o=n instanceof Error?n.message:s("failedToGatherStatus","Failed to gather status");i({phase:"error",message:o})}),()=>{e=!0}},[n]),at((e,n)=>{n.escape&&(r(""),o())}),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(StatusBody,{state:a}),ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Esc")," ",s("toReturnToConversation","to return to conversation")))))}function remoteLockPath(){return o(K(),".commandcode","remote-host.json")}__name(StatusMessage,"StatusMessage"),__name(StatusBody,"StatusBody"),__name(StatusConfigView,"StatusConfigView"),Jt(),hL(),Jt(),Jt(),__name(remoteLockPath,"remoteLockPath");var F$=__name(e=>"object"==typeof e&&null!==e,"isRecord"),_$=__name(e=>"string"==typeof e&&""!==e?e:void 0,"asString"),$$=__name(e=>F$(e)&&"EEXIST"===e.code,"isAlreadyExists");function parseLock(e){let n;try{n=JSON.parse(e)}catch{return}if(!F$(n))return;const o=n.pid,r=_$(n.cwd),s=_$(n.sessionId);return"number"==typeof o&&Number.isInteger(o)&&!(o<=0)&&r&&s?{pid:o,cwd:r,sessionId:s,startedAt:_$(n.startedAt)??"unknown",label:_$(n.label)}:void 0}__name(parseLock,"parseLock");var U$=__name(e=>{try{return process.kill(e,0),!0}catch{return!1}},"isProcessAlive");async function readLock(e){try{return parseLock(await ce(e,"utf8"))}catch{return}}async function readRemoteLock(e=remoteLockPath()){const n=await readLock(e);if(n&&U$(n.pid))return n}async function acquireRemoteLock(e,n=remoteLockPath()){await oe(r(n),{recursive:!0});const o=JSON.stringify(e,null,2);for(let r=0;r<3;r+=1){try{return await Q(n,o,{flag:"wx",mode:384}),{ok:!0}}catch(e){if(!$$(e))throw e}const r=await readLock(n);if(r&&r.pid!==e.pid&&U$(r.pid))return{ok:!1,holder:r};await ne(n,{force:!0}).catch(()=>{})}return{ok:!1,holder:await readLock(n)}}async function takeoverRemoteLock(e,n=remoteLockPath()){await oe(r(n),{recursive:!0}),await Q(n,JSON.stringify(e,null,2),{mode:384})}function watchRemoteLock(e){const n=e.path??remoteLockPath(),o=d(n);let s,a,i=!1;const l=__name(()=>{i=!0,s?.close(),a&&clearInterval(a)},"finish"),c=__name(()=>{if(i)return;let o;try{o=parseLock(O(n,"utf8"))}catch{o=void 0}o?.pid!==e.pid&&(l(),e.onLost())},"check");try{s=j(r(n),(e,n)=>{null!==n&&n!==o||c()})}catch{}return a=setInterval(c,e.pollMs??2e3),a.unref?.(),l}async function releaseRemoteLock(e=process.pid,n=remoteLockPath()){const o=await readLock(n);o&&o.pid!==e||await ne(n,{force:!0}).catch(()=>{})}function releaseRemoteLockSync(e=process.pid,n=remoteLockPath()){try{const o=parseLock(O(n,"utf8"));if(o&&o.pid!==e)return;U(n)}catch{}}__name(readLock,"readLock"),__name(readRemoteLock,"readRemoteLock"),__name(acquireRemoteLock,"acquireRemoteLock"),__name(takeoverRemoteLock,"takeoverRemoteLock"),__name(watchRemoteLock,"watchRemoteLock"),__name(releaseRemoteLock,"releaseRemoteLock"),__name(releaseRemoteLockSync,"releaseRemoteLockSync"),Jt();var B$=["telegram","discord"],j$={telegram:{token:"CMD_TELEGRAM_BOT_TOKEN",user:"CMD_TELEGRAM_USER",channel:"CMD_TELEGRAM_CHANNEL"},discord:{token:"CMD_DISCORD_BOT_TOKEN",user:"CMD_DISCORD_USER",channel:"CMD_DISCORD_CHANNEL"}};function remoteConfigPath(){return o(K(),".commandcode","auth.json")}__name(remoteConfigPath,"remoteConfigPath");var W$=__name(e=>"object"==typeof e&&null!==e,"isRecord"),H$=__name(e=>"string"==typeof e&&""!==e?e:void 0,"asString");async function readAuthDocument(e){let n;try{n=await ce(e,"utf8")}catch{return{ok:!0,data:{}}}try{const e=JSON.parse(n);return W$(e)?{ok:!0,data:e}:{ok:!1}}catch{return{ok:!1}}}__name(readAuthDocument,"readAuthDocument");var G$="remoteControl",V$=["rc"],K$=__name((e,n)=>{const o=[G$,...V$].map(n=>W$(e[n])?e[n]:void 0).map(e=>W$(e?.[n])?e[n]:void 0).find(e=>void 0!==e),r=W$(e[n])?e[n]:void 0,s=o??r??{};return{token:H$(s.token),allowedUserId:H$(s.allowedUserId),channelId:H$(s.channelId)}},"providerOf"),z$=__name(e=>[...V$,...B$].filter(n=>n in e),"staleKeys"),q$=__name(e=>Boolean(e.token)||Boolean(e.allowedUserId)||Boolean(e.channelId),"isConfigured");async function loadRemoteConfig(e=remoteConfigPath()){const n=await readAuthDocument(e);if(!n.ok)return{};const o={};for(const e of B$){const r=K$(n.data,e);q$(r)&&(o[e]=r)}return o}async function updateRemoteProviderConfig(e,n,o=remoteConfigPath()){const r=await readAuthDocument(o);if(!r.ok)throw new Error(`${o} is not valid JSON, so it will not be overwritten. Fix or remove the file, then try again.`);const s=await loadRemoteConfig(o),a=s[e];await writeAuthDocument(o,r.data,{...s,[e]:{token:n.token??a?.token,allowedUserId:n.allowedUserId??a?.allowedUserId,channelId:n.channelId??a?.channelId}})}async function migrateRemoteConfig(e=remoteConfigPath()){const n=await readAuthDocument(e);return!(!n.ok||0===z$(n.data).length||(await writeAuthDocument(e,n.data,await loadRemoteConfig(e)),0))}async function writeAuthDocument(e,n,o){const s=o??{},a=W$(n[G$])?n[G$]:{},i={...n,[G$]:{...a,...s}};for(const e of z$(i))delete i[e];const l=JSON.stringify(i,null,2);await oe(r(e),{recursive:!0});const c=`${e}.tmp-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;await Q(c,l,{mode:384});try{await ae(c,e)}catch(e){throw await ne(c).catch(()=>{}),e}}function resolveRemoteSettings(e,n=process.env,o="telegram"){const r=j$[o],s=e[o];return{token:H$(n[r.token])??s?.token,allowedUserId:H$(n[r.user])??s?.allowedUserId,channelId:H$(n[r.channel])??s?.channelId}}function resolveDefaultProvider(e){if(e.active)return e.active;const n=e.env??process.env,o=B$.filter(o=>void 0!==resolveRemoteSettings(e.config,n,o).token);return 1===o.length?o[0]??"telegram":"telegram"}__name(loadRemoteConfig,"loadRemoteConfig"),__name(updateRemoteProviderConfig,"updateRemoteProviderConfig"),__name(migrateRemoteConfig,"migrateRemoteConfig"),__name(writeAuthDocument,"writeAuthDocument"),__name(resolveRemoteSettings,"resolveRemoteSettings"),__name(resolveDefaultProvider,"resolveDefaultProvider"),Jt();var Y$={setTimeout(e,n){const o=setTimeout(e,n);return o.unref?.(),o},clearTimeout(e){clearTimeout(e)},now:__name(()=>Date.now(),"now"),random:__name(()=>Math.random(),"random")};Jt();var J$=__name(e=>e.split("@",1)[0]??e,"stripBotSuffix");function parseRemoteCommand(e){const n=e.trim();if(!n.startsWith("/"))return;const[o="",...r]=n.split(/\s+/),s=J$(o.slice(1)).toLowerCase(),a=r.join(" ").trim();return""!==s?"stop"===s?{kind:"stop"}:"help"===s||"start"===s?{kind:"help"}:"status"===s?{kind:"status"}:{kind:"slash",name:s,argument:a}:void 0}__name(parseRemoteCommand,"parseRemoteCommand");function encodePermissionCallback(e){return`p:${e.id}:${e.allow?"a":"d"}`}function parsePermissionCallback(e){if(!e.startsWith("p:"))return;const[n,o]=e.slice(2).split(":"),r=Number(n);return!Number.isInteger(r)||r<0||"a"!==o&&"d"!==o?void 0:{id:r,allow:"a"===o}}__name(encodePermissionCallback,"encodePermissionCallback"),__name(parsePermissionCallback,"parsePermissionCallback");function encodeQuestionCallback(e){return`q:${e.id}:${e.questionIndex}:${e.optionIndex}`}function parseQuestionCallback(e){if(!e.startsWith("q:"))return;const n=e.slice(2).split(":");if(3!==n.length)return;const[o,r,s]=n.map(Number),a=__name(e=>void 0!==e&&Number.isInteger(e)&&e>=0,"valid");return a(o)&&a(r)&&a(s)?{id:o,questionIndex:r,optionIndex:s}:void 0}__name(encodeQuestionCallback,"encodeQuestionCallback"),__name(parseQuestionCallback,"parseQuestionCallback");function encodeValueCallback(e){return`v:${e.command}:${e.value}`}function parseValueCallback(e){if(!e.startsWith("v:"))return;const n=e.slice(2),o=n.indexOf(":");if(o<=0)return;const r=n.slice(0,o),s=n.slice(o+1).trim();return""===s?void 0:{command:r,value:s}}__name(encodeValueCallback,"encodeValueCallback"),__name(parseValueCallback,"parseValueCallback"),Jt();var Q$,X$=new Set,Z$=new Set,eU=new Set,tU=new Set;function subscribeRemoteMessage(e){return X$.add(e),()=>{X$.delete(e)}}function subscribeRemoteChoice(e){return Z$.add(e),()=>{Z$.delete(e)}}function emitRemoteChoice(e){for(const n of Z$)n(e)}function emitRemoteMessage(e){for(const n of X$)n(e)}function subscribeLocalPrompt(e){return eU.add(e),()=>{eU.delete(e)}}function emitLocalPrompt(e){for(const n of eU)n(e)}function subscribeRemoteStopped(e){return tU.add(e),()=>{tU.delete(e)}}function emitRemoteStopped(){for(const e of tU)e()}function getActiveRemote(){return Q$}function setActiveRemote(e){Q$&&(Q$.bridge.stop(),emitRemoteStopped()),Q$=e}function clearActiveRemote(){Q$?.bridge.stop(),Q$=void 0,emitRemoteStopped()}__name(subscribeRemoteMessage,"subscribeRemoteMessage"),__name(subscribeRemoteChoice,"subscribeRemoteChoice"),__name(emitRemoteChoice,"emitRemoteChoice"),__name(emitRemoteMessage,"emitRemoteMessage"),__name(subscribeLocalPrompt,"subscribeLocalPrompt"),__name(emitLocalPrompt,"emitLocalPrompt"),__name(subscribeRemoteStopped,"subscribeRemoteStopped"),__name(emitRemoteStopped,"emitRemoteStopped"),__name(getActiveRemote,"getActiveRemote"),__name(setActiveRemote,"setActiveRemote"),__name(clearActiveRemote,"clearActiveRemote");var nU=__name(e=>new Promise(n=>{const o=setTimeout(n,e);o.unref?.()}),"graceElapsed");async function shutdownActiveRemote(){const e=Q$;e&&(Q$=void 0,e.bridge.stop(),emitRemoteStopped(),await Promise.race([e.bridge.announce(e.farewell),nU(1500)]))}__name(shutdownActiveRemote,"shutdownActiveRemote"),Jt();var oU=__name(e=>e instanceof Error?e.message:String(e),"errorMessage");Jt();var rU="```";function openingFence(e,n){if(e.startsWith(rU))return n?void 0:e.trimEnd()}function splitLongLine(e,n){const o=[];for(let r=0;r<e.length;r+=n)o.push(e.slice(r,r+n));return o}function splitForChat(e,n){if(e.length<=n)return[e];const o=[];let r,s,a=[],i=0;const l=__name(()=>{if(0===a.length)return;const e=r?[rU]:[];o.push([...a,...e].join("\n")),s=r,a=[],i=0},"flush"),c=__name(()=>{void 0!==s&&(a=[s],i=s.length+1,s=void 0)},"startChunk");for(const o of e.split("\n")){const e=n-(r?4:0);for(const n of o.length>e?splitLongLine(o,e):[o]){a.length>0&&i+n.length+1>e&&(l(),c()),a.push(n),i+=n.length+1;const o=openingFence(n,void 0!==r);o?r=o:n.startsWith(rU)&&(r=void 0)}}return l(),o.filter(e=>""!==e)}__name(openingFence,"openingFence"),__name(splitLongLine,"splitLongLine"),__name(splitForChat,"splitForChat"),Jt();var sU=__name(e=>"object"==typeof e&&null!==e,"isRecord"),aU=__name(e=>"string"==typeof e?e:void 0,"asString"),iU="Thinking";function renderBlock(e){const n=e.suffix?`${e.header} · ${e.suffix}`:e.header,o=e.lines??[];if(0===o.length)return n;const r=o.slice(0,3),s=o.length-r.length,a=r.map(e=>`│ ${e}`);if(s>0)return[n,...a,`└ +${s} more lines`].join("\n");const i=a.pop();return[n,...a,`└${i?.slice(1)??""}`].join("\n")}function createReplyStream(e,n={}){let o=e;const r=n.clock??Y$;let s="",a=!0,i=!1,l=iU;const c=r.now();let d,u=0;const m=[],p=new Map;function renderStatus(e){const o=Math.floor((r.now()-c)/1e3),s=o<60?`${o}s`:`${Math.floor(o/60)}m ${o%60}s`,a=[o>=1?`${e}… ${s}`:`${e}…`,...u>0?[`↓ ${u}`]:[]].join(" · ");return n.formatStatus?.(a)??`✻ ${a}`}function scheduleTick(){void 0!==d&&r.clearTimeout(d),d=r.setTimeout(()=>{a&&void 0!==l&&(o.update(compose(s)),scheduleTick())},1e4)}function stopTick(){void 0!==d&&(r.clearTimeout(d),d=void 0)}function toolLog(){if(0===m.length)return"";const e=Math.max(0,m.length-40);return`\`\`\`\n${[...e>0?[`… ${e} earlier call(s)`]:[],...e>0?m.slice(-40):m].join("\n")}\n\`\`\`\n\n`}function compose(e){const n=void 0===l?[]:[renderStatus(l)];return[toolLog().trimEnd(),e,...n].filter(e=>""!==e).join("\n\n")}function setStatus(e){l=e,void 0===e?stopTick():scheduleTick(),o.update(compose(s))}function pushBlock(e){m.push(renderBlock(e)),o.update(compose(s))}function abandon(){a=!1,l=void 0,stopTick(),o.cancel()}function retarget(e){a&&(o=e,o.update(compose(s)),void 0!==l&&scheduleTick())}function close(e){a=!1,l=void 0,stopTick(),o.finish(compose(e))}function onEvent(e){if(a)if(i=!0,"run_start"!==e.type){if("model_request_end"===e.type){const n=sU(e.usage)?e.usage:void 0,o=n?.outputTokens;return void("number"==typeof o&&(u+=o))}if("thinking_start"!==e.type)if("message_start"!==e.type){if("text_delta"===e.type)return s+=aU(e.delta)??"",l=void 0,void o.update(compose(s));if("tool_queued"===e.type){const o=aU(e.toolName),r=aU(e.toolCallId);if(!o||!r||!n.summarizeCall)return;return void p.set(r,n.summarizeCall({toolName:o,input:sU(e.input)?e.input:{}}))}if("tool_running"===e.type){const o=aU(e.toolName);return void setStatus(aU(e.description)??(o?n.describeTool?.(o)??o:void 0)??"Working")}if("tool_completed"!==e.type&&"tool_errored"!==e.type||(l=""===s?iU:void 0),"tool_completed"===e.type){const o=aU(e.toolCallId),r=aU(e.toolName),s=o?p.get(o):void 0;if(o&&p.delete(o),!s||!r)return;const a=n.summarizeResult?.({toolName:r,result:e.result});return void pushBlock({header:s.header,suffix:a?.suffix??s.suffix,lines:a?.lines})}if("tool_errored"===e.type){const n=aU(e.toolCallId),o=n?p.get(n):void 0;if(n&&p.delete(n),!o)return;return void pushBlock({header:o.header,lines:[aU(e.error)??"failed"]})}if("run_end"===e.type){const n=sU(e.result)?e.result:{};return void close(aU(n.finalText)||s)}if("interrupted"!==e.type){if("run_error"===e.type){const n=sU(e.error)?e.error:{};close(`Run failed: ${aU(n.message)??"unknown error"}`)}}else close(`${s}\n\n⏹ Interrupted.`.trim())}else s="";else setStatus(iU)}else setStatus(iU)}return __name(renderStatus,"renderStatus"),__name(scheduleTick,"scheduleTick"),__name(stopTick,"stopTick"),__name(toolLog,"toolLog"),__name(compose,"compose"),__name(setStatus,"setStatus"),__name(pushBlock,"pushBlock"),__name(abandon,"abandon"),__name(retarget,"retarget"),__name(close,"close"),__name(onEvent,"onEvent"),o.update(compose(s)),scheduleTick(),{onEvent:onEvent,isOpen:__name(()=>a,"isOpen"),hasEvents:__name(()=>i,"hasEvents"),abandon:abandon,retarget:retarget}}function fenceFor2(e){const n=[...e.matchAll(/`+/g)].reduce((e,n)=>Math.max(e,n[0].length),0);return"`".repeat(Math.max(3,n+1))}function getRemoteMessageLabel(e){const[n=""]=e.text.split("\n",1);return n.length>60?`${n.slice(0,59)}…`:n}__name(renderBlock,"renderBlock"),__name(createReplyStream,"createReplyStream"),Jt(),__name(fenceFor2,"fenceFor"),__name(getRemoteMessageLabel,"getRemoteMessageLabel");var lU=__name(e=>e.userName??`user ${e.userId}`,"senderOf"),cU=__name((e,n)=>`Remote message from ${e} (${n}). Carry out the request below.`,"instructionsFor");function buildRemoteSubmission(e){const n=e.platform??"Telegram",o=lU(e),r=fenceFor2(e.text);return{role:"user",input:[cU(n,o),"",r,e.text,r].join("\n"),displayMessage:`${n} (${o}): ${getRemoteMessageLabel(e)}`,isAutomated:!0,isMeta:!0,isRelayed:!0}}__name(buildRemoteSubmission,"buildRemoteSubmission"),Jt(),Jt();var dU="input",uU=__name(e=>"string"==typeof e?e:void 0,"asString"),mU=__name(e=>"object"==typeof e&&null!==e,"isRecord"),pU=__name(e=>"string"==typeof e?e:"number"==typeof e?String(e):void 0,"asId");function toApiError2(e,n,o){const r=mU(o)&&"string"==typeof o.message?o.message:`HTTP ${n}`,s=mU(o)&&"number"==typeof o.retry_after?Math.ceil(1e3*o.retry_after):void 0;return Object.assign(new Error(`Discord ${e} failed: ${r}`),{retryable:429===n||n>=500,retryAfterMs:s})}__name(toApiError2,"toApiError");var gU=__name(e=>e.length<=5&&e.every(e=>e.length<=5),"fitsButtonGrid"),hU=__name(e=>({type:1,components:e.map(e=>({type:2,style:2,label:e.text.slice(0,80),custom_id:e.data.slice(0,100)}))}),"buttonRow");function selectRows(e){const n=[];for(let o=0;o<e.length&&n.length<5;o+=25){const r=e.slice(o,o+25),s=e.length>25;n.push({type:1,components:[{type:3,custom_id:`select-${String(n.length)}`,placeholder:s?`Choose one (${String(o+1)}–${String(o+r.length)})`:"Choose one",options:r.map(e=>({label:e.text.slice(0,100),value:e.data.slice(0,100)}))}]})}return n}__name(selectRows,"selectRows");var fU=__name(e=>e&&0!==e.length?{components:gU(e)?e.map(hU):selectRows(e.flat())}:{},"componentsBody");function createDiscordClient(e){const n=e.fetchFn??fetch,o=e.sleep??(e=>new Promise(n=>setTimeout(n,e)));async function call(r,s,a){let i;for(let l=0;l<3;l+=1){const c=await n(`https://discord.com/api/v10${s}`,{method:r,headers:{authorization:`Bot ${e.token}`,"content-type":"application/json"},...void 0===a?{}:{body:JSON.stringify(a)}});if(204===c.status)return;const d=await c.json().catch(()=>({}));if(c.ok)return d;const u=toApiError2(s,c.status,d);if(!u.retryable)throw u;i=u,await o(u.retryAfterMs??500*2**l)}throw i}__name(call,"call");const r=__name((e,n)=>{const o=mU(e)?pU(e.id):void 0;if(!o)throw new Error(`Discord ${n}: malformed response`);return o},"messageIdOf");return{async createThread({channelId:e,name:n}){const o=await call("POST",`/channels/${e}/threads`,{name:n.slice(0,100),type:11,auto_archive_duration:1440});return r(o,"createThread")},async renameThread({channelId:e,name:n}){await call("PATCH",`/channels/${e}`,{name:n.slice(0,100)})},async sendMessage({channelId:e,text:n,buttons:o}){const s=await call("POST",`/channels/${e}/messages`,{content:n,...fU(o)});return r(s,"sendMessage")},async editMessage({channelId:e,messageId:n,text:o}){await call("PATCH",`/channels/${e}/messages/${n}`,{content:o})},async deleteMessage({channelId:e,messageId:n}){await call("DELETE",`/channels/${e}/messages/${n}`)},async replyToInteraction({interactionId:e,token:n,text:o}){await call("POST",`/interactions/${e}/${n}/callback`,{type:4,data:{content:o,flags:64}})},async guildOfChannel(e){const n=await call("GET",`/channels/${e}`),o=mU(n)?pU(n.guild_id):void 0;if(!o)throw new Error("Discord guildOfChannel: not a server channel");return o},async publishCommands({applicationId:e,guildId:n,commands:o}){await call("PUT",`/applications/${e}/guilds/${n}/commands`,o.map(e=>({type:1,name:e.name,description:e.description.slice(0,100),...e.argument?{options:[{type:3,name:dU,description:e.argument.slice(0,100),required:!1}]}:{}})))},async ackInteraction({interactionId:e,token:n}){await call("POST",`/interactions/${e}/${n}/callback`,{type:6})}}}function parseDiscordMessage(e){if(!mU(e))return;const n=mU(e.author)?e.author:void 0,o=pU(e.id),r=pU(e.channel_id),s=pU(n?.id);return o&&r&&s?{messageId:o,channelId:r,userId:s,userName:"string"==typeof n?.username?n.username:void 0,text:"string"==typeof e.content?e.content:"",fromBot:!0===n?.bot}:void 0}function parseDiscordInteraction(e){if(!mU(e)||3!==e.type)return;const n=mU(e.data)?e.data:void 0,o=mU(e.message)?e.message:void 0,r=pU(e.id),s=interactionChannelId(e),a=interactionUserId(e),i=Array.isArray(n?.values)?uU(n.values[0]):void 0;if(!r||!s||!a)return;if("string"!=typeof e.token)return;const l=i??uU(n?.custom_id);return void 0!==l?{interactionId:r,token:e.token,channelId:s,messageId:pU(o?.id),userId:a,data:l}:void 0}function interactionChannelId(e){const n=mU(e.channel)?e.channel:void 0;return pU(e.channel_id)??pU(n?.id)}function interactionUserId(e){const n=mU(e.member)?e.member:void 0,o=mU(e.user)?e.user:mU(n?.user)?n.user:void 0;return pU(o?.id)}function parseDiscordCommand(e){if(!mU(e)||2!==e.type)return;const n=mU(e.data)?e.data:void 0,o=pU(e.id),r=interactionChannelId(e),s=interactionUserId(e);if(!o||!r||!s)return;if("string"!=typeof e.token)return;if("string"!=typeof n?.name)return;const a=(Array.isArray(n.options)?n.options:[]).find(e=>mU(e)&&e.name===dU);return{interactionId:o,token:e.token,channelId:r,userId:s,name:n.name,value:"string"==typeof a?.value?a.value:""}}function createDiscordReply(e){const{client:n,channelId:o}=e,r=e.prefix??"",s=e.clock??Y$,a=e.onLog??(()=>{}),i=[],l=[];let c,d="",u="",m=Number.NEGATIVE_INFINITY,p=!1,g=Promise.resolve();const h=__name(e=>""===r?e:`${r}\n\n${e}`,"label");async function deliver(r){const s=splitForChat(h(r),2e3);for(const[r,a]of s.entries()){if(l[r]===a)continue;const s=i[r];if(void 0===s){const s=await n.sendMessage({channelId:o,text:a});i[r]=s,e.onSent?.(s)}else await n.editMessage({channelId:o,messageId:s,text:a});l[r]=a}}function enqueueSend(e){const n=u;u=e,m=s.now(),g=g.then(()=>deliver(e)).catch(e=>{u=n,a(`reply failed: ${oU(e)}`)})}function flushLater(){if(void 0!==c)return;const e=Math.max(0,1e3-(s.now()-m));c=s.setTimeout(()=>{c=void 0,d!==u&&enqueueSend(d)},e)}return __name(deliver,"deliver"),__name(enqueueSend,"enqueueSend"),__name(flushLater,"flushLater"),{cancel(){p=!0,void 0!==c&&(s.clearTimeout(c),c=void 0)},update(e){p||(d=e,e!==u&&(s.now()-m>=1e3?enqueueSend(e):flushLater()))},async finish(e){p||(d=""===e?"(no text reply)":e,void 0!==c&&(s.clearTimeout(c),c=void 0),await g,d!==u&&enqueueSend(d),await g)}}}__name(createDiscordClient,"createDiscordClient"),__name(parseDiscordMessage,"parseDiscordMessage"),__name(parseDiscordInteraction,"parseDiscordInteraction"),__name(interactionChannelId,"interactionChannelId"),__name(interactionUserId,"interactionUserId"),__name(parseDiscordCommand,"parseDiscordCommand"),Jt(),__name(createDiscordReply,"createDiscordReply");var yU=__name(e=>e.length<=2e3?e:`${e.slice(0,1999)}…`,"clipToDiscordLimit");function createDiscordBridge(e){const{client:n,allowedUserId:o,onMessage:r}=e,s=e.clock??Y$,a=e.onLog??(()=>{});let i,l,c=e.threadName;const d=[];function threadId(){return l??=n.createThread({channelId:e.channelId,name:e.threadName??"Command Code"}).then(e=>(i=e,e)),l}__name(threadId,"threadId");const u=__name(e=>e===i,"isOurs");async function deliver(e){try{const o=await n.sendMessage({channelId:e.channelId,text:yU(e.text),buttons:e.buttons});d.push({channelId:e.channelId,messageId:o})}catch(e){const n=oU(e);a(n.includes("403")?`note failed: ${n}. The bot needs "Send Messages in Threads" in that channel`:`note failed: ${n}`)}}function handleMessage(e){const n=parseDiscordMessage(e);n&&(""!==n.text?n.fromBot||u(n.channelId)&&(n.userId===o?r({chatId:n.channelId,userId:n.userId,userName:n.userName,text:n.text,platform:"Discord"}):a(`refused message from unauthorized user ${n.userId}`)):u(n.channelId)&&!n.fromBot&&a("message arrived with no content. Is MESSAGE CONTENT INTENT on in the developer portal?"))}function acknowledge(e){return n.ackInteraction({interactionId:e.interactionId,token:e.token}).catch(e=>{a(`interaction ack failed: ${oU(e)}`)})}function handleCommand2(e){const n=parseDiscordCommand(e);if(!n)return!1;if(!u(n.channelId))return!0;const s=`/${n.name}${n.value?` ${n.value}`:""}`;return n.userId!==o?(a(`refused command from unauthorized user ${n.userId}`),reply(n,"Not authorized for this session."),!0):(reply(n,`Running ${s}`),r({chatId:n.channelId,userId:n.userId,userName:void 0,text:s,platform:"Discord"}),!0)}function reply(e,o){return n.replyToInteraction({interactionId:e.interactionId,token:e.token,text:o}).catch(e=>{a(`command reply failed: ${oU(e)}`)})}async function publishCommands(o){const r=e.commands??[];if(0!==r.length)try{const s=await n.guildOfChannel(e.channelId);await n.publishCommands({applicationId:o,guildId:s,commands:r}),a(`registered ${r.length} slash command(s)`)}catch(e){const n=oU(e);a(n.includes("Missing Access")||n.includes("403")?`slash commands not registered: ${n}. Re-invite the bot with the applications.commands scope`:`slash commands not registered: ${n}`)}}function handleInteraction(r){const s=parseDiscordInteraction(r);s&&u(s.channelId)&&(acknowledge(s),s.userId===o?e.onChoice?.({chatId:s.channelId,userId:s.userId,data:s.data,acknowledge:__name(async()=>{},"acknowledge"),dismiss:__name(async()=>{if(s.messageId)try{await n.deleteMessage({channelId:s.channelId,messageId:s.messageId})}catch(e){a(`message delete failed: ${oU(e)}`)}},"dismiss")}):a(`refused interaction from unauthorized ${s.userId}`))}__name(deliver,"deliver"),__name(handleMessage,"handleMessage"),__name(acknowledge,"acknowledge"),__name(handleCommand2,"handleCommand"),__name(reply,"reply"),__name(publishCommands,"publishCommands"),__name(handleInteraction,"handleInteraction");const m=e.connect({onDispatch:__name(({type:e,data:n})=>{if("MESSAGE_CREATE"===e)return handleMessage(n);"INTERACTION_CREATE"===e&&(handleCommand2(n)||handleInteraction(n))},"onDispatch"),onReady:__name(({applicationId:n})=>{threadId().then(()=>e.onReady?.({skippedUpdates:0}),n=>e.onFatal?.(`could not open a thread in that channel. Check the id, and that the bot can Create Public Threads there (${oU(n)})`)),n?publishCommands(n):a("no application id in READY, so slash commands are not registered")},"onReady"),onFatal:__name(n=>e.onFatal?.(n),"onFatal")});return{start:__name(()=>m.start(),"start"),stop:__name(()=>m.stop(),"stop"),isRunning:__name(()=>m.isRunning(),"isRunning"),openReply:__name(o=>{const r="function"==typeof e.label?e.label():e.label;return void 0!==r&&r!==c&&(c=r,threadId().then(e=>n.renameThread({channelId:e,name:r})).catch(e=>{a(`thread rename failed: ${oU(e)}`)})),createDiscordReply({client:n,channelId:o,prefix:r,onSent:__name(e=>d.push({channelId:o,messageId:e}),"onSent"),onLog:a,clock:s})},"openReply"),sendNote:__name((e,n)=>{deliver({channelId:e,text:n})},"sendNote"),sendChoices:__name(e=>{deliver({channelId:e.chatId,text:e.text,buttons:e.buttons})},"sendChoices"),announce:__name(async e=>{const n=await threadId().catch(()=>{});n&&await deliver({channelId:n,text:e})},"announce"),get ownerChatId(){return i},clearSentMessages:__name(async()=>{const e=[...d].reverse();d.length=0;let o=0;for(const r of e)try{await n.deleteMessage(r),o+=1}catch{}return o},"clearSentMessages")}}__name(createDiscordBridge,"createDiscordBridge"),Jt();var vU=__name(e=>`\`${e.replaceAll("`","")}\``,"code"),SU=__name(e=>`⌘ Command Code · ${e.repo}`,"title");function discordConnectBanner(e){const{info:n,note:o}=e,r=[vU(`v${n.version}`),vU(n.model),...n.branch?[vU(n.branch)]:[]].join(" · ");return[`## ${SU(n)}`,r,"-# Slash commands work in this thread. /help lists them.",...o?[`-# ${o}`]:[]].join("\n")}__name(discordConnectBanner,"discordConnectBanner");var wU=__name(e=>[`## ⚪ ${SU(e)} · ended`,"-# Messages sent from now on are skipped when a session reconnects."].join("\n"),"discordFarewell"),kU=__name(e=>`-# ✻ ${e}`,"discordStatusLine"),CU=__name(e=>`-# ⌘ ${e.repo}${e.branch?` · ${e.branch}`:""} · ${e.model}`,"discordReplyLabel"),bU=__name(e=>[`## ${SU(e.info)}${e.info.branch?` · ${e.info.branch}`:""}`,`${vU(`v${e.info.version}`)} · ${vU(e.info.model)}`,`-# ${e.mode}`].join("\n"),"discordStatus");Jt();var TU={4004:"that bot token is not valid",4010:"invalid shard",4011:"this bot is in too many servers to run unsharded",4012:"invalid API version",4013:"invalid intents",4014:"the MESSAGE CONTENT intent is off. Turn it on in the Discord developer portal, under Bot → Privileged Gateway Intents"},EU=__name(e=>"object"==typeof e&&null!==e,"isRecord");function createDiscordGateway(e){const n=e.clock??Y$,o=e.onLog??(()=>{}),r=e.createSocket??(e=>new WebSocket(e));let s,a,i,l,c,d,u=!1,m=0,p=0,g=!1;const h=__name(()=>{void 0!==a&&n.clearTimeout(a),void 0!==i&&n.clearTimeout(i),a=void 0,i=void 0},"clearTimers"),f=__name(e=>{try{s?.send(JSON.stringify(e))}catch(e){o(`gateway send failed: ${String(e)}`)}},"send");function backoffMs2(){const e=Math.min(p-1,5);return Math.min(1e3*2**e,3e4)+Math.floor(500*n.random())}function scheduleHeartbeat(e,r){a=n.setTimeout(()=>{if(u&&r===m){if(g)return o("gateway heartbeat not acknowledged, reconnecting"),void s?.close(4e3);g=!0,f({op:1,d:d??null}),scheduleHeartbeat(e,r)}},e)}function identify(){f(l&&void 0!==d?{op:6,d:{token:e.token,session_id:l,seq:d}}:{op:2,d:{token:e.token,intents:33280,properties:{os:process.platform,browser:"commandcode",device:"commandcode"}}})}function handleDispatch(n,r){if("READY"===n&&EU(r)){p=0,l="string"==typeof r.session_id?r.session_id:void 0,c="string"==typeof r.resume_gateway_url?`${r.resume_gateway_url}/?v=10&encoding=json`:void 0,o("gateway ready");const n=EU(r.application)?r.application:void 0,s=EU(r.user)?r.user:void 0;return void e.onReady?.({applicationId:"string"==typeof n?.id?n.id:"string"==typeof s?.id?s.id:void 0})}if("RESUMED"===n)return p=0,void o("gateway resumed");e.onDispatch({type:n,data:r})}function handleFrame(e,r){if(!u||r!==m)return;let i;try{i=JSON.parse("string"==typeof e?e:String(e))}catch{return}if(EU(i)){if("number"==typeof i.s&&(d=i.s),10===i.op&&EU(i.d)){const e="number"==typeof i.d.heartbeat_interval?i.d.heartbeat_interval:41250;return g=!1,a=n.setTimeout(()=>{u&&r===m&&(g=!0,f({op:1,d:d??null}),scheduleHeartbeat(e,r))},Math.floor(e*n.random())),void identify()}if(11!==i.op)return 7===i.op?(o("gateway asked us to reconnect"),void s?.close(4e3)):9===i.op?(!0!==i.d&&(l=void 0,d=void 0,c=void 0),o("gateway invalidated the session"),void s?.close(4e3)):void(0===i.op&&"string"==typeof i.t&&handleDispatch(i.t,i.d));g=!1}}function connect(n){if(!u||n!==m)return;h();const a=l&&c?c:"wss://gateway.discord.gg/?v=10&encoding=json";let i;try{i=r(a)}catch(e){return o(`gateway connect failed: ${String(e)}`),void scheduleReconnect(n)}s=i,i.onopen=()=>o("gateway socket open"),i.onmessage=e=>handleFrame(e.data,n),i.onerror=()=>o("gateway socket error"),i.onclose=r=>{if(!u||n!==m)return;const s=TU[r.code];if(s)return u=!1,h(),o(`gateway closed fatally (${r.code}): ${s}`),void e.onFatal?.(s);4007!==r.code&&4009!==r.code||(l=void 0,d=void 0,c=void 0),o(`gateway closed (${r.code})`),scheduleReconnect(n)}}function scheduleReconnect(e){u&&e===m&&(h(),p+=1,i=n.setTimeout(()=>connect(e),backoffMs2()))}return __name(backoffMs2,"backoffMs"),__name(scheduleHeartbeat,"scheduleHeartbeat"),__name(identify,"identify"),__name(handleDispatch,"handleDispatch"),__name(handleFrame,"handleFrame"),__name(connect,"connect"),__name(scheduleReconnect,"scheduleReconnect"),{start(){u||(u=!0,m+=1,p=0,connect(m))},stop(){u=!1,m+=1,h();try{s?.close(1e3)}catch{}s=void 0,l=void 0,d=void 0,c=void 0},isRunning:__name(()=>u,"isRunning")}}__name(createDiscordGateway,"createDiscordGateway"),Jt(),Jt();var PU={"content-type":"application/json"},MU=__name(e=>e instanceof Error&&"retryable"in e,"isTelegramApiError");function toApiError3(e,n,o){const r=DU(o)?o:{},s=DU(r.parameters)?r.parameters:{},a="string"==typeof r.description?r.description:`Telegram API error (HTTP ${n})`;return Object.assign(new Error(`${e}: ${a}`),{retryable:429===n||n>=500,retryAfterMs:"number"==typeof s.retry_after?1e3*s.retry_after:void 0})}__name(toApiError3,"toApiError");var IU=__name(e=>!MU(e)||e.retryable,"isRetryableFailure"),AU=__name((e,n)=>MU(e)&&void 0!==e.retryAfterMs?e.retryAfterMs:500*2**n,"retryDelayMs"),xU=__name(e=>e instanceof Error&&e.message.includes("message is not modified"),"isNotModifiedError"),RU=__name(e=>e instanceof Error&&/can'?t parse entities/i.test(e.message),"isParseEntitiesError"),LU=__name(e=>e instanceof Error&&/chat not found/i.test(e.message),"isChatMissingError"),OU=__name(e=>e instanceof Error&&/message to edit not found|message can'?t be edited/i.test(e.message),"isMessageGoneError"),DU=__name(e=>"object"==typeof e&&null!==e,"isRecord"),NU=__name(e=>"string"==typeof e?e:"number"==typeof e?String(e):void 0,"asId");function parseMessage2(e){if(!DU(e))return;const n=DU(e.chat)?e.chat:void 0,o=DU(e.from)?e.from:void 0,r=e.message_id,s=NU(n?.id),a=NU(o?.id);return"number"==typeof r&&s&&a?{messageId:r,chatId:s,userId:a,userName:"string"==typeof o?.username?o.username:void 0,text:"string"==typeof e.text?e.text:""}:void 0}function parseCallback(e){if(!DU(e))return;const n=DU(e.from)?e.from:void 0,o=DU(e.message)?e.message:void 0,r=DU(o?.chat)?o.chat:void 0,s=NU(e.id),a=NU(r?.id),i=NU(n?.id);return s&&a&&i&&"string"==typeof e.data&&"number"==typeof o?.message_id?{callbackId:s,chatId:a,userId:i,userName:"string"==typeof n?.username?n.username:void 0,data:e.data,messageId:o.message_id}:void 0}function parseUpdates(e){if(!Array.isArray(e))return[];const n=[];for(const o of e)DU(o)&&"number"==typeof o.update_id&&n.push({updateId:o.update_id,message:parseMessage2(o.message),callback:parseCallback(o.callback_query)});return n}__name(parseMessage2,"parseMessage"),__name(parseCallback,"parseCallback"),__name(parseUpdates,"parseUpdates");var FU=__name(e=>e?{parse_mode:e}:{},"parseModeBody"),_U=__name(e=>e&&e.length>0?{reply_markup:{inline_keyboard:e.map(e=>e.map(e=>({text:e.text,callback_data:e.data})))}}:{},"replyMarkupBody");function defaultSleep3(e){return new Promise(n=>{const o=setTimeout(n,e);o.unref?.()})}function createTelegramClient(e){const n=e.fetchFn??fetch,o=e.sleep??defaultSleep3,r=`https://api.telegram.org/bot${e.token}`;async function call(e){const{method:o,body:s,signal:a=null}=e,i=await n(`${r}/${o}`,s instanceof FormData?{method:"POST",body:s,signal:a}:{method:"POST",body:JSON.stringify(s),headers:PU,signal:a}),l=await i.json().catch(()=>{});if(DU(l)&&!0===l.ok)return l.result;throw toApiError3(o,i.status,l)}async function callWithRetry(e){for(let n=0;;n+=1)try{return await call(e)}catch(e){const r=n>=2;if(!IU(e)||r)throw e;await o(AU(e,n))}}return __name(call,"call"),__name(callWithRetry,"callWithRetry"),{getUpdates:async({offset:e,timeoutSeconds:n,signal:o})=>parseUpdates(await call({method:"getUpdates",body:{offset:e,timeout:n,allowed_updates:["message","callback_query"]},signal:o})),async sendMessage({chatId:e,text:n,parseMode:o,buttons:r}){const s=parseMessage2(await callWithRetry({method:"sendMessage",body:{chat_id:e,text:n,...FU(o),..._U(r)}}));if(!s)throw new Error("sendMessage: malformed Telegram response");return s.messageId},async answerCallback({callbackId:e,text:n}){await callWithRetry({method:"answerCallbackQuery",body:{callback_query_id:e,...void 0===n?{}:{text:n}}})},async deleteMessage({chatId:e,messageId:n}){await callWithRetry({method:"deleteMessage",body:{chat_id:e,message_id:n}})},async editMessageText({chatId:e,messageId:n,text:o,parseMode:r}){try{await callWithRetry({method:"editMessageText",body:{chat_id:e,message_id:n,text:o,...FU(r)}})}catch(e){if(xU(e))return;throw e}}}}__name(defaultSleep3,"defaultSleep"),__name(createTelegramClient,"createTelegramClient"),Jt();var $U=/```[\w+-]*\n?[\s\S]*?```|`[^`\n]+`/g,UU=/^```[\w+-]*\n?([\s\S]*?)```$/,BU=/^`([^`\n]+)`$/,jU=/^#{1,6}[ \t]+(.+)$/gm,WU=/\*\*([^\n]+?)\*\*/g,HU=/~~([^\n]+?)~~/g,GU=/\[([^\]\n]+)\]\(([^)\s]+)\)/g,VU=__name(e=>/^https?:\/\//i.test(e),"isWebUrl"),KU=__name(e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),"escapeHtml");function splitCodeRuns(e){const n=[];let o=0;for(const r of e.matchAll($U)){const s=r.index;void 0!==s&&(s>o&&n.push({isCode:!1,value:e.slice(o,s)}),n.push({isCode:!0,value:r[0]}),o=s+r[0].length)}return o<e.length&&n.push({isCode:!1,value:e.slice(o)}),n}function codeBody(e){const n=UU.exec(e);return n?(n[1]??"").replace(/\n$/,""):BU.exec(e)?.[1]}__name(splitCodeRuns,"splitCodeRuns"),__name(codeBody,"codeBody");var zU=__name(e=>{const n=codeBody(e);return void 0===n?KU(e):e.startsWith("```")?`<pre><code>${KU(n)}</code></pre>`:`<code>${KU(n)}</code>`},"codeToHtml"),qU=__name(e=>KU(e).replace(jU,"<b>$1</b>").replace(WU,"<b>$1</b>").replace(HU,"<s>$1</s>").replace(GU,(e,n,o)=>VU(o)?`<a href="${o}">${n}</a>`:e),"proseToHtml");function toTelegramHtml(e){return splitCodeRuns(e).map(e=>e.isCode?zU(e.value):qU(e.value)).join("")}__name(toTelegramHtml,"toTelegramHtml");var YU=__name(e=>e.replace(jU,"$1").replace(WU,"$1").replace(HU,"$1").replace(GU,(e,n,o)=>VU(o)?`${n} (${o})`:e),"proseToPlain");function stripMarkdown(e){return splitCodeRuns(e).map(e=>e.isCode?codeBody(e.value)??e.value:YU(e.value)).join("")}__name(stripMarkdown,"stripMarkdown");var JU=__name(e=>`\`${e.replaceAll("`","")}\``,"code"),QU=__name(e=>`⌘ Command Code · ${e.repo}`,"title");function telegramConnectBanner(e){const{info:n,note:o}=e,r=[JU(`v${n.version}`),JU(n.model),...n.branch?[JU(n.branch)]:[]].join(" · ");return[`# ${QU(n)}`,r,...o?["",o]:[]].join("\n")}__name(telegramConnectBanner,"telegramConnectBanner");var XU=__name(e=>[`# ⚪ ${QU(e)} · ended`,"Messages sent from now on are skipped when a session reconnects."].join("\n"),"telegramFarewell"),ZU=__name(e=>`⌘ ${e.repo}${e.branch?` · ${e.branch}`:""} · ${e.model}`,"telegramReplyLabel"),eB=__name(e=>[`# ${QU(e.info)}${e.info.branch?` · ${e.info.branch}`:""}`,`${JU(`v${e.info.version}`)} · ${JU(e.info.model)}`,e.mode].join("\n"),"telegramStatus");Jt();var tB=__name(e=>e.length<=4096?e:`${e.slice(0,4095)}…`,"clipToMessageLimit");function createRemoteReply(e){const{client:n,chatId:o}=e,r=e.prefix??"",s=e.clock??Y$,a=e.onLog??(()=>{}),i=e.onSendFailure??(e=>{a(`reply send failed: ${oU(e)}`)}),l=[],c=[];let d,u="",m="",p=Number.NEGATIVE_INFINITY,g=!1,h=Promise.resolve();const f=__name(e=>""===r?e:`${r}\n\n${e}`,"label");async function sendChunk(e){try{return await n.sendMessage({chatId:o,text:toTelegramHtml(e),parseMode:"HTML"})}catch(r){if(!RU(r))throw r;return a(`html rejected, sending plain: ${oU(r)}`),n.sendMessage({chatId:o,text:stripMarkdown(e)})}}async function editChunk(e,r){try{return await n.editMessageText({chatId:o,messageId:e,text:toTelegramHtml(r),parseMode:"HTML"}),!0}catch(s){if(OU(s))return!1;if(!RU(s))throw s;return a(`html rejected, editing plain: ${oU(s)}`),await n.editMessageText({chatId:o,messageId:e,text:stripMarkdown(r)}),!0}}async function post(n,o){const r=await sendChunk(o);l[n]=r,e.onSent?.(r)}async function send(e){const n=splitForChat(e,4096);for(const[e,o]of n.entries()){if(c[e]===o)continue;const n=l[e];void 0===n?await post(e,o):await editChunk(n,o)||await post(e,o),c[e]=o}}function enqueueSend(e){const n=m;m=e,p=s.now(),h=h.then(()=>send(e)).catch(o=>{m===e&&(m=n),i(o)})}function flush(){if(d=void 0,""===u)return;const e=f(u);e!==m&&enqueueSend(e)}function update(e){if(g)return;if(u=e,void 0!==d)return;const n=Math.max(0,p+1e3-s.now());d=s.setTimeout(flush,n)}function cancel5(){g=!0,void 0!==d&&s.clearTimeout(d),d=void 0}async function finish(e){if(g)return;void 0!==d&&s.clearTimeout(d),d=void 0;const n=f(""===e?"(no text reply)":e);await h,n!==m&&enqueueSend(n),await h}return __name(sendChunk,"sendChunk"),__name(editChunk,"editChunk"),__name(post,"post"),__name(send,"send"),__name(enqueueSend,"enqueueSend"),__name(flush,"flush"),__name(update,"update"),__name(cancel5,"cancel"),__name(finish,"finish"),{update:update,finish:finish,cancel:cancel5}}function createSendFailureReporter(e){let n=!1;function report(o){LU(o)?n||(n=!0,e("waiting on Telegram: message your bot once. a bot cannot text you first, and everything held posts when you do")):e(`send failed: ${oU(o)}`)}return __name(report,"report"),{report:report,reset:__name(()=>{n=!1},"reset")}}function createRemoteBridge(e){const{client:n,allowedUserId:o,onMessage:r}=e,s=e.clock??Y$,a=e.onLog??(()=>{}),i=createSendFailureReporter(a);let l,c,d=!1,u=0,m=0,p=0,g=!1;function backoffMs2(){const e=Math.min(p-1,5);return Math.min(1e3*2**e,3e4)+Math.floor(250*s.random())}__name(backoffMs2,"backoffMs");const h=[],f=__name(e=>{h.push(e)},"track");async function clearSentMessages(){const e=[...h].reverse();h.length=0;let r=0;for(const s of e)try{await n.deleteMessage({chatId:o,messageId:s}),r+=1}catch{}return r}async function deliverMarkdown(e){try{return f(await n.sendMessage({chatId:e.chatId,text:tB(toTelegramHtml(e.text)),parseMode:"HTML",buttons:e.buttons})),!0}catch(e){if(!RU(e))return i.report(e),!1;a("note HTML rejected, retrying as plain text")}try{return f(await n.sendMessage({chatId:e.chatId,text:tB(stripMarkdown(e.text)),buttons:e.buttons})),!0}catch(e){return i.report(e),!1}}__name(clearSentMessages,"clearSentMessages"),__name(deliverMarkdown,"deliverMarkdown");const y=__name((e,n)=>deliverMarkdown({chatId:e,text:n}),"deliverNote");function sendNote(e,n){y(e,n)}function sendChoices(e){deliverMarkdown(e)}async function acknowledge(e,o){try{await n.answerCallback({callbackId:e,text:o})}catch(e){a(`callback answer failed: ${oU(e)}`)}}async function dismiss(e,o){try{await n.deleteMessage({chatId:e,messageId:o})}catch(e){a(`message delete failed: ${oU(e)}`)}}let v;function flushAnnouncement(e){const n=v;void 0!==n&&(v=void 0,y(e,n))}function deliver(e){""!==e.text&&(e.userId===o?(i.reset(),flushAnnouncement(e.chatId),r({chatId:e.chatId,userId:e.userId,userName:e.userName,text:e.text})):a(`refused message from unauthorized user ${e.userId}`))}function deliverChoice(n){if(n.userId!==o)return a(`refused callback from unauthorized user ${n.userId}`),void acknowledge(n.callbackId,"Not authorized.");e.onChoice?.({chatId:n.chatId,userId:n.userId,data:n.data,acknowledge:__name(e=>acknowledge(n.callbackId,e),"acknowledge"),dismiss:__name(()=>dismiss(n.chatId,n.messageId),"dismiss")})}function schedule(e,n){d&&e===u&&(l=s.setTimeout(()=>{tick(e)},n))}async function tick(e){if(d&&e===u){c=new AbortController;try{const o=await n.getUpdates({offset:m,timeoutSeconds:30,signal:c.signal});if(!d||e!==u)return;p=0,g&&(g=!1,a("Telegram reconnected"));for(const e of o)e.updateId>=m&&(m=e.updateId+1),e.message&&deliver(e.message),e.callback&&deliverChoice(e.callback);schedule(e,0)}catch(n){if(!d||e!==u)return;p+=1,g||(g=!0,a(`Telegram unreachable: ${oU(n)}. retrying`)),schedule(e,backoffMs2())}}}async function drainBacklog(e){let o=0;for(let r=0;r<20;r+=1){if(!d||e!==u)return o;c=new AbortController;try{const e=await n.getUpdates({offset:m,timeoutSeconds:0,signal:c.signal});if(0===e.length)return o;for(const n of e)n.updateId>=m&&(m=n.updateId+1);o+=e.length}catch(e){return a(`backlog drain failed: ${oU(e)}`),o}}return o}function start(){if(d)return;d=!0,u+=1,p=0,g=!1,a("remote bridge started");const n=u;drainBacklog(n).then(o=>{d&&n===u&&(o>0&&a(`skipped ${o} queued update(s)`),e.onReady?.({skippedUpdates:o}),schedule(n,0))})}function stop(){d&&(d=!1,u+=1,void 0!==l&&s.clearTimeout(l),l=void 0,c?.abort(),c=void 0,a("remote bridge stopped"))}return __name(sendNote,"sendNote"),__name(sendChoices,"sendChoices"),__name(acknowledge,"acknowledge"),__name(dismiss,"dismiss"),__name(flushAnnouncement,"flushAnnouncement"),__name(deliver,"deliver"),__name(deliverChoice,"deliverChoice"),__name(schedule,"schedule"),__name(tick,"tick"),__name(drainBacklog,"drainBacklog"),__name(start,"start"),__name(stop,"stop"),{start:start,stop:stop,isRunning:__name(()=>d,"isRunning"),openReply:__name(o=>createRemoteReply({client:n,chatId:o,prefix:"function"==typeof e.label?e.label():e.label,onSent:f,onLog:a,onSendFailure:i.report,clock:s}),"openReply"),sendNote:sendNote,sendChoices:sendChoices,clearSentMessages:clearSentMessages,announce:__name(async e=>{await y(o,e)||(v=e)},"announce"),ownerChatId:o}}async function greetTelegramChat(e){const n=e.client??createTelegramClient({token:e.token});try{return await n.sendMessage({chatId:e.chatId,text:"Setup done. This is where Command Code answers."}),{kind:"greeted"}}catch(e){return LU(e)?{kind:"not-started"}:{kind:"failed",reason:oU(e)}}}function usePhaseModel(e){const[n,o]=mt(null);return gt(()=>{const n=__name(()=>{const n=hO(e.sessionId);if(!n)return void o(null);const r=n.getActiveModelLane();if(!r)return void o(null);const s="planning"===r?"planning":"implementing",a=XL(n.getActiveModel());o(e=>e?.lane===s&&e.modelName===a?e:{lane:s,modelName:a})},"read");n();const r=setInterval(n,1e3);return()=>clearInterval(r)},[e.sessionId]),n}__name(createRemoteReply,"createRemoteReply"),Jt(),__name(createSendFailureReporter,"createSendFailureReporter"),__name(createRemoteBridge,"createRemoteBridge"),Jt(),__name(greetTelegramChat,"greetTelegramChat"),Jt(),__name(usePhaseModel,"usePhaseModel"),Jt(),hL(),Jt(),Jt(),Jt(),Jt();var nB=/\[\^[^\]]+\]/;function splitMarkdownBlocks(e){return e?nB.test(e)?[e]:kt.lex(e,{gfm:!0}).map(e=>e.raw):[]}function isWhitespaceOnly2(e){return 0===e.trim().length}function createBlockStream(){let e="",n=0,o=!1;function frozenAdvance(o){return{newlyCompleted:[],openTail:o.startsWith(e)?o.slice(e.length):o,committedBlockCount:n,frozen:!0}}function advance(r){if(o)return frozenAdvance(r);if(!r.startsWith(e))return o=!0,frozenAdvance(r);const s=splitMarkdownBlocks(r);if(s.length<=1)return{newlyCompleted:[],openTail:r.slice(e.length),committedBlockCount:n,frozen:!1};const a=s.slice(0,-1),i=[];let l=0;for(const s of a){const a=l+s.length;if(a<=e.length){if(e.slice(l,a)!==s)return o=!0,frozenAdvance(r)}else{if(l!==e.length)return o=!0,frozenAdvance(r);i.push(s),e+=s,isWhitespaceOnly2(s)||(n+=1)}l=a}return{newlyCompleted:i,openTail:r.slice(e.length),committedBlockCount:n,frozen:!1}}function finalize(r){if(o||!r.startsWith(e)){const o=r.startsWith(e)?r.slice(e.length):r;return{remaining:o?[o]:[],committedBlockCount:n}}const s=r.slice(e.length);return s?{remaining:splitMarkdownBlocks(s),committedBlockCount:n}:{remaining:[],committedBlockCount:n}}return __name(frozenAdvance,"frozenAdvance"),__name(advance,"advance"),__name(finalize,"finalize"),{advance:advance,finalize:finalize}}__name(splitMarkdownBlocks,"splitMarkdownBlocks"),__name(isWhitespaceOnly2,"isWhitespaceOnly"),__name(createBlockStream,"createBlockStream"),Jt();var oB=String.fromCharCode(8203),rB=new Set(["_","~","*","`"]),sB=/!?\[[^\]]*\]\([^)]*$/,aB=/!?\[[^\]]*$/;function isSpace(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function isOnlyMarkersOrSpace(e){for(const n of e)if(!isSpace(n)&&!rB.has(n))return!1;return!0}function isShortSetextUnderline(e){if(0===e.length||e.length>2)return!1;const n=e[0];if("-"!==n&&"="!==n)return!1;for(const o of e)if(o!==n)return!1;return!0}function isTagOpener(e){const n=e.startsWith("</")?e[2]:e[1];return void 0!==n&&/[a-zA-Z]/.test(n)}function countFenceMarkers(e){let n=0;for(let o=0;o<e.length;o+=1)"\\"!==e[o]||"`"!==e[o+1]?e.startsWith("```",o)&&(n+=1,o+=2):o+=1;return n}function countMarkerOutsideCode(e,n){let o=0,r=!1,s=!1;for(let a=0;a<e.length;a+=1){const i=e[a];"\\"!==i?e.startsWith("```",a)?(r=!r,a+=2):r||("`"!==i?s||e.startsWith(n,a)&&(o+=1,a+=n.length-1):s=!s):a+=1}return o}function countSingleBackticks(e){let n=0,o=!1;for(let r=0;r<e.length;r+=1)"\\"!==e[r]||"`"!==e[r+1]?e.startsWith("```",r)?(o=!o,r+=2):o||"`"!==e[r]||(n+=1):r+=1;return n}function stripDanglingHtmlTag(e){const n=e.lastIndexOf("<");if(-1===n)return e;const o=e.slice(n);return o.includes(">")?e:isTagOpener(o)?e.slice(0,n).trimEnd():e}function stripDanglingLink(e){const n=e.match(sB);if(void 0!==n?.index)return e.slice(0,n.index).trimEnd();const o=e.match(aB);return void 0!==o?.index?e.slice(0,o.index).trimEnd():e}function guardSetextUnderline(e){const n=e.lastIndexOf("\n");if(-1===n)return e;const o=e.slice(n+1),r=o.trim();if(!isShortSetextUnderline(r))return e;if(o!==r&&o.endsWith(" "))return e;const s=e.slice(0,n).split("\n").at(-1);return s&&0!==s.trim().length?`${e}${oB}`:e}function closeUnbalancedMarker(e,n,o){if(countMarkerOutsideCode(e,n)%2==0)return e;const r=e.lastIndexOf(n),s=e.slice(r+n.length);return isOnlyMarkersOrSpace(s)?e:o&&s.endsWith(o)?`${e}${o}`:`${e}${n}`}function completeInlineTripleFence(e){if(e.includes("\n"))return null;if(!e.startsWith("```"))return null;if(!e.endsWith("``")||e.endsWith("```"))return null;const n=e.slice(3,-2);return 0===n.length||n.includes("`")?null:`${e}\``}function closeInlineCode(e){if(countSingleBackticks(e)%2==0)return e;const n=e.lastIndexOf("`");return isOnlyMarkersOrSpace(e.slice(n+1))?e:`${e}\``}function mendMarkdown(e){if(!e)return e;const n=completeInlineTripleFence(e);if(null!==n)return n;if(countFenceMarkers(e)%2==1)return e;let o=e;return o=stripDanglingHtmlTag(o),o=stripDanglingLink(o),o=guardSetextUnderline(o),o=closeUnbalancedMarker(o,"***",""),o=closeUnbalancedMarker(o,"**","*"),o=closeUnbalancedMarker(o,"__","_"),o=closeUnbalancedMarker(o,"~~","~"),o=closeInlineCode(o),o}__name(isSpace,"isSpace"),__name(isOnlyMarkersOrSpace,"isOnlyMarkersOrSpace"),__name(isShortSetextUnderline,"isShortSetextUnderline"),__name(isTagOpener,"isTagOpener"),__name(countFenceMarkers,"countFenceMarkers"),__name(countMarkerOutsideCode,"countMarkerOutsideCode"),__name(countSingleBackticks,"countSingleBackticks"),__name(stripDanglingHtmlTag,"stripDanglingHtmlTag"),__name(stripDanglingLink,"stripDanglingLink"),__name(guardSetextUnderline,"guardSetextUnderline"),__name(closeUnbalancedMarker,"closeUnbalancedMarker"),__name(completeInlineTripleFence,"completeInlineTripleFence"),__name(closeInlineCode,"closeInlineCode"),__name(mendMarkdown,"mendMarkdown");var iB=Mt()?"⠶":"#";function streamingMaxRows(e){return Math.max(8,e-12)}function AssistantMessage({content:e,isStreaming:n=!1,continuation:o=!1}){const r=useTerminalRows(),s=n?mendMarkdown(e):e;return ct.createElement(tt,null,o?ct.createElement(tt,{width:2,flexShrink:0}):ct.createElement(nt,{color:uD},iB),ct.createElement(tt,{marginLeft:o?0:1,flexGrow:1,flexShrink:1,minWidth:0,flexDirection:"column"},ct.createElement(Markdown,{maxPhysicalRows:n?streamingMaxRows(r):void 0},s)))}__name(streamingMaxRows,"streamingMaxRows"),__name(AssistantMessage,"AssistantMessage"),Jt();var lB=/^\s*```/;function isBlank(e){return 0===e.trim().length}function leadingSpaces(e){return e.length-e.trimStart().length}function badgeReplyLines(e){const n=e.split("\n").filter(e=>!lB.test(e)),o=n.findIndex(e=>!isBlank(e));if(-1===o)return[];const r=[...n].reverse().findIndex(e=>!isBlank(e)),s=n.slice(o,n.length-r).filter((e,n,o)=>!(isBlank(e)&&n>0&&isBlank(o[n-1]??""))),a=Math.min(...s.filter(e=>!isBlank(e)).map(leadingSpaces));return s.map(e=>isBlank(e)?"":e.slice(a))}__name(isBlank,"isBlank"),__name(leadingSpaces,"leadingSpaces"),__name(badgeReplyLines,"badgeReplyLines");var cB=/^\s*title\s*:\s*/i,dB=/[─━│┃┌┐└┘├┤┬┴┼═║╔╗╚╝▶◀►◄▲▼→←↑↓⟶]|-->|<--|==>/,uB=/^[#>*_`\s]+|[*_`]+$/g;function cleanTitle(e){const n=e.replace(uB,"").replace(cB,"").replace(/[.:]+$/,"").trim();if(n)return n.length>48?`${n.slice(0,47)}…`:n}function splitReplyTitle(e){const n=e.search(/^\s*```/m),o=(-1===n?e:e.slice(0,n)).split("\n").filter(e=>!isBlank(e)),r=o[0];return r?-1===n&&(o.length>1||dB.test(r))?{title:void 0,body:e}:{title:cleanTitle(r),body:-1===n?"":e.slice(n)}:{title:void 0,body:e}}function titledReplyBody(e){const{content:n,continuation:o}=e,r=n.split("\n"),s=r.findIndex(e=>lB.test(e));if(-1===s)return o?"":n;const a=r.slice(s+1),i=a.findIndex(e=>lB.test(e));return(-1===i?a:a.slice(0,i)).join("\n")}function badgeHeader(e,n){const o=n??e.label;return`※ ${o?`${e.name} · ${o}`:e.name} ───────────────`}function isReplyBadge(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name}function BadgeReplyMessage({content:e,badge:n,continuation:o=!1}){const{title:r,body:s}=n.titleFromReply&&!o?splitReplyTitle(e):{title:void 0,body:e},a=badgeReplyLines(n.titleFromReply?titledReplyBody({content:s,continuation:o}):s);return o&&0===a.length?null:ct.createElement(tt,{flexDirection:"column"},!o&&ct.createElement(tt,{marginBottom:a.length>0?1:0},ct.createElement(nt,{color:XO.DIM},badgeHeader(n,r))),a.map((e,n)=>ct.createElement(tt,{key:`${n}-${e}`,marginLeft:2},ct.createElement(nt,{color:XO.DIM,wrap:"truncate-end"},e||" "))))}function BashMessage({command:e,output:n,isPending:o=!1,hasError:r=!1}){const{t:s}=xt();let a=XO.GREEN,i=vt.tick,l="default",c=n||s("noOutput","(No output)");o&&(a=XO.YELLOW,i=vt.arrowRight,l=XO.YELLOW,c=s("executing","Executing…")),r&&(a=XO.RED,i=vt.cross,l=XO.RED);const d=ut(()=>buildTreeConnectors(c),[c]);return ct.createElement(tt,null,ct.createElement(nt,{color:a},i),ct.createElement(tt,{flexDirection:"column",marginLeft:1},ct.createElement(tt,null,ct.createElement(nt,{color:XO.GRAY},"$ "),ct.createElement(nt,{color:a,bold:!0},e)),ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{color:wD},d),ct.createElement(nt,{color:l,wrap:"wrap"},c))))}function CommandResultMessage({message:e,details:n,hasError:o=!1}){const{t:r}=xt(),s=o?XO.YELLOW:void 0,a=ut(()=>buildTreeConnectors(e),[e]);return ct.createElement(tt,{flexDirection:"column",marginBottom:0,marginTop:-1},ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},a),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:s},e))),n&&ct.createElement(tt,{marginLeft:3},ct.createElement(nt,{color:XO.DIM},r("see","See")," ",n)))}__name(cleanTitle,"cleanTitle"),__name(splitReplyTitle,"splitReplyTitle"),__name(titledReplyBody,"titledReplyBody"),__name(badgeHeader,"badgeHeader"),__name(isReplyBadge,"isReplyBadge"),__name(BadgeReplyMessage,"BadgeReplyMessage"),Jt(),__name(BashMessage,"BashMessage"),Jt(),__name(CommandResultMessage,"CommandResultMessage"),Jt(),hL();var mB=/^([\s\S]*\s)(https?:\/\/\S+?)\.?$/;function splitTrailingUrl(e){const n=mB.exec(e.trim());return n?.[2]?{text:(n[1]??"").trimEnd(),url:n[2]}:{text:e,url:null}}function ErrorMessage({content:e}){if(xt(),isInterruptedByUserMessage(e))return ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},vt.pointer),ct.createElement(tt,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},translateUiCopy(Gv))));const{text:n,url:o}=splitTrailingUrl(e);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:XO.RED},vt.warning),ct.createElement(tt,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(Markdown,{color:XO.RED},n))),o&&ct.createElement(tt,{marginLeft:2},ct.createElement(_D,{url:o,text:o,color:XO.CYAN})))}__name(splitTrailingUrl,"splitTrailingUrl"),__name(ErrorMessage,"ErrorMessage"),Jt(),hL();var pB={connected:{char:vt.tick,color:XO.GREEN},installed:{char:vt.tick,color:XO.GREEN},up_to_date:{char:vt.tick,color:XO.GREEN},needs_reload:{char:vt.circle,color:XO.YELLOW},failed:{char:vt.cross,color:XO.RED},not_in_ide:{char:vt.circle,color:XO.YELLOW}};function IDEStatusMessage({status:e,ide:n,details:o}){xt();const{prefix:r,ide:s,suffix:a}=getIDESetupStatusHeadline(e,n),i=pB[e];return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,null,ct.createElement(nt,{color:i.color},i.char),ct.createElement(nt,null," ",translateUiCopy(r)),s&&ct.createElement(nt,{color:XO.CYAN},s),a&&ct.createElement(nt,null,translateUiCopy(a)))),o?.map(e=>ct.createElement(nt,{key:e,color:XO.DIM}," ",translateUiCopy(e))))}function linkImageTokens(e,n){if(!n)return e;const o=new RegExp(mI.source,"g");return e.replace(o,(e,o)=>{const r=n[Number(o)];return r?createOSC8Link(fileUrl(r),e,!1):e})}function UserMessage({content:e,ideHint:n,imageTokenPaths:o}){const{t:r}=xt(),s=isSpecialUserMessageContent(e),a=s&&isInterruptedByUserMessage(e)?XO.DIM:XO.RED,i=s?getSpecialUserMessageContent({content:e,billingUrl:Ks}):linkImageTokens(e,o);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{backgroundColor:s?void 0:dD.BG,paddingRight:1},ct.createElement(nt,{color:s?a:dD.POINTER,bold:!s},vt.pointer),ct.createElement(tt,{marginLeft:1},ct.createElement(nt,{color:s?a:dD.FG,wrap:"wrap"},i))),n&&!s&&ct.createElement(tt,{marginLeft:2},ct.createElement(nt,{color:wD},VD),ct.createElement(nt,{color:XO.DIM}," ",r("selected","Selected")," ",n.lines," ",translateUiCopy(1===n.lines?"line":"lines")," ",r("from","from")," ",n.file," ",r("in","in")," ",n.ide)))}__name(IDEStatusMessage,"IDEStatusMessage"),Jt(),hL(),Jt(),hL(),__name(linkImageTokens,"linkImageTokens"),__name(UserMessage,"UserMessage");var gB=vt.squareSmallFilled;function goalStatusGlyph(e){return"completed"===e?vt.tick:"paused"===e?"⏸":"idle"===e?vt.circle:gB}function goalStatusHeadColor(e){return"completed"===e?XO.GREEN:"paused"===e?XO.YELLOW:XO.DIM}function goalNoticeGlyph(e){return"cleared"===e?vt.tick:"none"===e?vt.circle:"paused"===e?"⏸":gB}function AutoCompactMessage({content:e}){return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},gB," ",e))}function ZdrPausedMessage(){const{t:e}=xt();return ct.createElement(tt,{marginTop:1,marginBottom:1},ct.createElement(nt,null,ct.createElement(nt,{color:XO.DIM},gB," "),ct.createElement(nt,{color:XO.DIM},e("perTaskModelOverridesRevertedToZdrSafeDefaultsRun","Per-task model overrides reverted to ZDR safe defaults. Run")," "),ct.createElement(nt,{color:fD.CODE},"/config"),ct.createElement(nt,{color:XO.DIM}," ",e("toReviewEscToDismiss","to review · esc to dismiss"))))}function ModelNoticeMessage({text:e}){const{t:n}=xt();return ct.createElement(tt,{marginTop:1,marginBottom:1},ct.createElement(nt,null,ct.createElement(nt,{color:XO.DIM},gB," "),ct.createElement(nt,{color:XO.DIM},e),ct.createElement(nt,{color:XO.DIM}," ",n("escToDismiss","· esc to dismiss"))))}function TasteSkipMessage(){const{t:e}=xt();return ct.createElement(tt,{marginTop:1,marginBottom:1},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG,bold:!0},qD)),ct.createElement(nt,{color:XO.DIM}," ",e("skippedRun","Skipped. Run")," "),ct.createElement(nt,{color:fD.CODE},"/learn-taste"),ct.createElement(nt,{color:XO.DIM}," ",e("or","or")," "),ct.createElement(nt,{color:fD.CODE},"cmd learn-taste"),ct.createElement(nt,{color:XO.DIM}," ",e("anytime","anytime.")))}function TasteNoticeMessage({notice:e}){const{t:n}=xt(),o=e.path?`${tasteDirForRoot({projectRoot:process.cwd()})}/${e.path}`:null;return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG,bold:!0},qD)),ct.createElement(nt,{color:eD.TEXT}," ",translateUiCopy(e.label))),ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{color:wD},VD),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{wrap:"wrap"},e.text,e.confidence&&ct.createElement(nt,{color:XO.DIM},n("confidence"," [Confidence {{v0}}]",{v0:e.confidence}))))),e.path&&o&&ct.createElement(tt,{marginLeft:3},ct.createElement(_D,{url:fileUrl(o),text:e.path,color:XO.DIM})))}function SkillLoadedMessage({name:e}){const{t:n}=xt();return ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},n("skill","{{v0}}SKILL{{v1}}",{v0:zD,v1:zD}))),ct.createElement(nt,null," ",e),ct.createElement(nt,{color:XO.DIM}," ",n("loaded","loaded")))}function HookWarningMessage({content:e}){return ct.createElement(tt,null,ct.createElement(nt,{color:XO.YELLOW},vt.warning),ct.createElement(tt,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.YELLOW},e)))}function HookLineMessage({content:e}){return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},` ${e}`))}function HookLineContinuationMessage({content:e}){return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},` ${e}`))}function HookFrameMessage({lines:e,header:n}){return ct.createElement(tt,{flexDirection:"column"},void 0!==n&&ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},` ${n}`)),e.map((e,n)=>ct.createElement(tt,{key:n,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},e.primary?` └ ${e.text}`:` ${e.text}`))))}function GoalLineMessage({content:e,subline:n}){return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:wD},VD),ct.createElement(nt,{color:XO.DIM,wrap:"wrap"}," ",e)),n?ct.createElement(tt,{marginLeft:4,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},n)):null)}function GoalAcceptMessage({command:e,acceptLine:n,hint:o}){return ct.createElement(tt,{flexDirection:"column"},ct.createElement(UserMessage,{content:e}),ct.createElement(GoalLineMessage,{content:n,subline:o}))}function GoalCompleteMessage({elapsed:e,turns:n,goal:o}){const{t:r}=xt(),s=`${n} ${1===n?"turn":"turns"}`;return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,null,ct.createElement(nt,{color:XO.GREEN},vt.tick," ",r("goalAchieved","Goal achieved")),ct.createElement(nt,{color:XO.DIM},` (${e} · ${s})`))),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},r("goal","Goal:")," ",o)))}function GoalStatusMessage({state:e,headline:n,goal:o,detail:r,hint:s}){const a=goalStatusGlyph(e),i=goalStatusHeadColor(e);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:i},a," ",n)),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},o)),r?ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},r)):null,s?ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},s)):null)}function BranchResultMessage({title:e}){const{t:n}=xt();return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},e?ct.createElement(nt,null,ct.createElement(nt,{color:XO.GREEN},n("forked","⑂ Forked.")),ct.createElement(nt,null," ",n("youReNowIn","You're now in")," "),ct.createElement(nt,{bold:!0},'"',e,'"')):ct.createElement(nt,null,ct.createElement(nt,{color:XO.GREEN},n("forked","⑂ Forked.")),ct.createElement(nt,null," ",n("youReNowInTheNewSession","You're now in the new session")))),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},n("originalSessionSavedResumeToSwitchBack","Original session saved · /resume to switch back"))))}function SessionFileMessage({sessionId:e,fileLine:n}){const{t:o}=xt();return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},gB," ",o("sessionId","Session ID:")," "),ct.createElement(nt,null,e)),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:wD},VD," "),ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},n)))}function InfoMessage({content:e,metadata:n}){if(n?.isTasteSkip)return ct.createElement(TasteSkipMessage,null);if(n?.tasteNotice)return ct.createElement(TasteNoticeMessage,{notice:n.tasteNotice});if(n?.skillLoaded)return ct.createElement(SkillLoadedMessage,{name:n.skillLoaded.name});if(n?.isAutoCompact)return ct.createElement(AutoCompactMessage,{content:e});if(n?.hookFrame&&n.hookFrame.length>0)return ct.createElement(HookFrameMessage,{lines:n.hookFrame,header:n.hookFrameHeader});if(n?.isHookLine)return ct.createElement(HookLineMessage,{content:e});if(n?.isHookLineContinuation)return ct.createElement(HookLineContinuationMessage,{content:e});if(n?.isHookWarning)return ct.createElement(HookWarningMessage,{content:e});if(n?.isSuccess)return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.GREEN},vt.tick," ",e));if(n?.isGoalAccept)return ct.createElement(GoalAcceptMessage,{command:e,acceptLine:n.goalAcceptLine??"",hint:n.goalSubline});if(n?.isGoalComplete)return ct.createElement(GoalCompleteMessage,{elapsed:n.goalElapsed??"",turns:n.goalTurns??1,goal:n.goalText??""});if(n?.isGoalStatus)return ct.createElement(GoalStatusMessage,{state:n.goalState??"running",headline:n.goalHeadline??"",goal:n.goalText??"",detail:n.goalDetail,hint:n.goalSubline});if(n?.isBranchResult)return ct.createElement(BranchResultMessage,{title:n.branchTitle});if(n?.isSessionFile)return ct.createElement(SessionFileMessage,{sessionId:n.sessionFileId??"",fileLine:n.sessionFileLine??""});if(n?.isGoalNotice){const o=goalNoticeGlyph(n.goalNoticeKind);return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},o," ",e))}return n?.isGoalLine?ct.createElement(GoalLineMessage,{content:e,subline:n.goalSubline}):ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},gB," ",e))}function reasoningBodyColumns(e){const n=Math.floor(.9*Math.floor(.9*e));return Math.max(1,n-2)}function ReasoningMessage({content:e,expandedOutput:n,expandKey:o,isStreaming:r=!1}){const s=projectReasoningView({content:e,expandedOutput:n,expandKey:o,isStreaming:r,columns:reasoningBodyColumns(useTerminalWidth()),measureWidth:Be});return ct.createElement(tt,{flexDirection:"column",width:"90%"},ct.createElement(tt,null,ct.createElement(nt,{color:tD},"✻"," "),ct.createElement(nt,{color:tD},s.showExpandHint?`${s.headerLabel} `:s.headerLabel),s.showExpandHint&&ct.createElement(BracketWrap,{color:XO.DIM},s.expandHint)),s.showBody&&s.hiddenAboveLabel&&ct.createElement(tt,{marginLeft:2},ct.createElement(nt,{color:XO.DIM},s.hiddenAboveLabel)),s.showBody&&ct.createElement(tt,{marginLeft:2,flexDirection:"column"},ct.createElement(nt,{color:tD,wrap:"wrap",italic:!0},s.bodyText)))}__name(goalStatusGlyph,"goalStatusGlyph"),__name(goalStatusHeadColor,"goalStatusHeadColor"),__name(goalNoticeGlyph,"goalNoticeGlyph"),__name(AutoCompactMessage,"AutoCompactMessage"),__name(ZdrPausedMessage,"ZdrPausedMessage"),__name(ModelNoticeMessage,"ModelNoticeMessage"),__name(TasteSkipMessage,"TasteSkipMessage"),__name(TasteNoticeMessage,"TasteNoticeMessage"),__name(SkillLoadedMessage,"SkillLoadedMessage"),__name(HookWarningMessage,"HookWarningMessage"),__name(HookLineMessage,"HookLineMessage"),__name(HookLineContinuationMessage,"HookLineContinuationMessage"),__name(HookFrameMessage,"HookFrameMessage"),__name(GoalLineMessage,"GoalLineMessage"),__name(GoalAcceptMessage,"GoalAcceptMessage"),__name(GoalCompleteMessage,"GoalCompleteMessage"),__name(GoalStatusMessage,"GoalStatusMessage"),__name(BranchResultMessage,"BranchResultMessage"),__name(SessionFileMessage,"SessionFileMessage"),__name(InfoMessage,"InfoMessage"),Jt(),hL(),__name(reasoningBodyColumns,"reasoningBodyColumns"),__name(ReasoningMessage,"ReasoningMessage"),Jt(),hL(),Jt(),hL();function HelpMessage(){const{t:e}=xt(),n=getInvokedCommandName(),o=ut(()=>getVisibleSlashCommands(),[]),r=ut(()=>getVisibleCliOptions(),[]),s=ut(()=>getVisibleCliSubcommands(),[]),a=ut(()=>getVisibleKeyboardShortcuts(),[]),i=ut(()=>getVisibleCliExamples(),[]),l=ut(()=>getVisibleHelpLinks(),[]);return ct.createElement(tt,{flexDirection:"column",paddingY:1},ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(tt,null,ct.createElement(nt,{bold:!0},"Command Code"),ct.createElement(nt,{color:XO.GRAY}," v","1.79.0")),ct.createElement(nt,{color:XO.GRAY},getVisibleHelpTagline())),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpUsage","Usage")),ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,null,n," <command> [options]"))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpOptions","Options")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},r.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.replace(/^cmd/,n).padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpCommands","Commands")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},s.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.replace(/^cmd/,n).padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpSlashCommands","Slash Commands")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},o.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpKeyboardShortcuts","Keyboard Shortcuts")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},a.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpExamples","Examples")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},i.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.replace(/^cmd/,n).padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.CYAN},vt.pointer),ct.createElement(nt,{color:XO.GRAY}," ",getVisibleHelpTip().replace(/cmd/,n))),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{bold:!0},e("helpLinks","Links")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},l.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.padEnd(ri)),ct.createElement(nt,{color:XO.CYAN},e.description))))))}function SystemMessage({content:e}){return isHelpSystemEntryContent(e)?ct.createElement(HelpMessage,null):ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{wrap:"wrap"},ct.createElement(Markdown,null,e)))}function FeedEntryView({entry:e,expandedToolOutput:n}){return renderFeedEntry(e,n)}function renderFeedEntry(e,n){if("user"===e.role){const n=e.metadata?.ideHint,o=e.metadata?.imageTokenPaths;return ct.createElement(UserMessage,{content:e.input,ideHint:n,imageTokenPaths:o})}return"assistant"===e.role&&isReplyBadge(e.metadata?.badge)?ct.createElement(BadgeReplyMessage,{content:e.input,badge:e.metadata.badge,continuation:!0===e.metadata?.continuation}):"assistant"===e.role?ct.createElement(AssistantMessage,{content:e.input,isStreaming:"running"===e.metadata?.status,continuation:!0===e.metadata?.continuation}):"reasoning"===e.role?ct.createElement(ReasoningMessage,{content:e.input,expandedOutput:n,expandKey:"ctrl",isStreaming:"running"===e.metadata?.status}):"tool"===e.role?ct.createElement(ToolMessage,{name:Sf(e.name||""),input:e.input,output:e.output||"",isPending:hf(e),hasError:gf(e),metadata:e.metadata,expandedOutput:n}):"bash"===e.role?ct.createElement(BashMessage,{command:e.command||"",output:e.output||"",isPending:hf(e),hasError:gf(e)}):"system"===e.role?ct.createElement(SystemMessage,{content:e.input}):"info"===e.role?ct.createElement(InfoMessage,{content:e.input,metadata:e.metadata}):"error"===e.role?ct.createElement(ErrorMessage,{content:e.input}):"command-result"===e.role?ct.createElement(CommandResultMessage,{message:e.input,details:e.details,hasError:e.hasError??!1}):"ide-status"===e.role?ct.createElement(IDEStatusMessage,{status:e.status,ide:e.ide,details:e.details}):null}__name(HelpMessage,"HelpMessage"),__name(SystemMessage,"SystemMessage"),__name(FeedEntryView,"FeedEntryView"),__name(renderFeedEntry,"renderFeedEntry");var hB=__name(e=>getModelShortName({modelId:e,findModelById:findModelById}),"getModelShortName");function TranscriptDivider({count:e,width:n}){const{t:o}=xt(),r=o("hiddenMessagesToExpandMore"," {{v0}} hidden messages [{{v1}} to expand more] ",{v0:e,v1:IE?"ctrl+y":"ctrl+e"}),s=Math.max(0,Math.floor((n-r.length)/2)),a="─".repeat(s);return ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:cD},a),ct.createElement(BracketedText,{text:r,color:cD}),ct.createElement(nt,{color:cD},a))}__name(TranscriptDivider,"TranscriptDivider");var fB=ct.memo(({feed:e,showHeader:n=!1,staticKey:o,expandedToolOutput:r=!1,currentModel:s,currentEffort:a=null,currentProvider:i,hiddenCount:l=0})=>{const c=l>0?{role:"transcript-divider",count:l}:null,d=[...n?["header"]:[],...c?[c]:[],...e],u=useTerminalWidth(),m=ut(()=>AN(u),[u]),p=ut(()=>DN(u),[u]),g=ut(()=>getPackageJson(import.meta.url).version||"0.0.0",[]),h=ut(()=>getGitHeaderInfo(),[]),f=__name(e=>isSandboxMode()?t("base","(base: {{v0}})",{v0:e}):t("branch","(branch: {{v0}})",{v0:e}),"branchLabel"),y=ut(()=>{if(isSandboxMode())return t("cloudSandbox","cloud");const e=process.cwd(),n=process.env.HOME??process.env.USERPROFILE??"";return e.replace(n,"~")},[]),v=s?hB(s):"sonnet-4.6",S=Boolean(s&&byokProviderId({model:s}))||isSandboxMode()?"":" · taste-1",w=translateUiCopy(isSandboxMode()?"model":"models"),k=ut(()=>{if(!s)return"";if(!modelSupportsReasoningEffort(s))return"";const e=null===a?getReasoningEffort(s):a;return e?t("withEffort2"," with {{v0}} effort",{v0:e}):""},[a,s,o,t]),C=ut(()=>{const e=s?byokProviderId({model:s}):void 0;return e?` · ${e} (byok)`:i&&i!==qr.COMMAND?` · ${getProviderShortName(i)} (byok)`:""},[s,i,o]);return ct.createElement(ot,{items:d,key:o,style:{width:"100%"}},e=>{if("object"==typeof e&&"transcript-divider"===e.role)return ct.createElement(TranscriptDivider,{key:"transcript-divider",count:e.count,width:u});if("header"===e)return"compact"===p?ct.createElement(tt,{key:"header",marginBottom:1,flexDirection:"row"},ct.createElement(tt,{width:LN,flexShrink:0},ct.createElement(CD,null,RN)),ct.createElement(tt,{flexDirection:"column",marginLeft:2},ct.createElement(tt,null,ct.createElement(nt,{bold:!0},"Command Code"),ct.createElement(nt,{color:cD}," ","v",g)),ct.createElement(nt,{color:cD},w,": ",v,k,S,C),ct.createElement(nt,{color:cD},y,h&&h.isLocal&&h.branch&&` (${h.branch})`))):ct.createElement(tt,{key:"header",marginBottom:1,flexDirection:"column"},ct.createElement(CD,null,m.trimEnd()),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(tt,null,ct.createElement(nt,{color:cD},"# "),ct.createElement(nt,{bold:!0},"Command Code"),ct.createElement(nt,{color:cD}," v",g)),ct.createElement(nt,{color:cD},"# ",w,": ",v,k,S,C),ct.createElement(tt,null,ct.createElement(nt,{color:cD},"# ",y,h&&h.isLocal&&h.branch&&ct.createElement(nt,{color:cD}," ",f(h.branch))))));const n=e,o=renderFeedEntry(n,r);return ct.createElement(tt,{key:n.id,paddingBottom:1,width:"90%"},o)})});Jt(),hL();var yB=dt(__name(function LiveAgentStatusInner2({entry:e}){const{t:n}=xt(),o=Sf(e.name||"Agent"),r=summarizeAgentTaskInput(e.input||""),s=e.metadata?.tokensUsed||0,a=e.metadata?.elapsedSeconds||0,i=e.metadata?.recentTools||[],[l,c]=mt(".");return gt(()=>{const e=setInterval(()=>{c(e=>"..."===e?".":e+".")},500);return()=>clearInterval(e)},[]),ct.createElement(tt,{flexDirection:"column",marginBottom:1,width:"90%"},ct.createElement(tt,null,ct.createElement(nt,{backgroundColor:aD.BG,color:aD.FG,bold:!0},` ${o} `),r&&ct.createElement(nt,null," (",r,")")),ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,null,"⎿"," "),ct.createElement(nt,{color:XO.GRAY},n("running","Running ("),formatTime3(a)," | ",formatTokens(s),")",l)),i.length>0&&ct.createElement(tt,{flexDirection:"column",marginLeft:1},i.map((e,n)=>{const o=Sf(e.name);return ct.createElement(tt,{key:n,columnGap:1},ct.createElement(nt,{color:XO.GRAY},"⎿"),ct.createElement(nt,{color:XO.GRAY}," ",o),e.input&&ct.createElement(nt,{color:XO.GRAY},"(",e.input,")"))})))},"LiveAgentStatusInner")),vB=dt(__name(function LiveAgentStatus2({entry:e}){return"tool"!==e.role?null:ct.createElement(yB,{entry:e})},"LiveAgentStatus"));function projectTasteFeedVisibility(e){return e.showTasteLearningInFeed?[...e.feed]:e.feed.filter(e=>void 0===e.metadata?.tasteNotice)}Jt(),__name(projectTasteFeedVisibility,"projectTasteFeedVisibility"),Jt(),Jt(),hL();var SB=[],wB=SB,kB=!1,CB=null,bB="",TB=new Set,EB=new Set,PB=new Set;function shapeOf(e){return e.map(e=>e.content.replace(/\d+/g,"#")).join("\0")}function emit2(){for(const e of PB)e()}function cancelPeek(){CB&&clearTimeout(CB),CB=null,kB=!1}function armPeek(){CB&&clearTimeout(CB),kB=!0,CB=setTimeout(()=>{CB=null,kB=!1,emit2()},5e3),CB.unref?.()}function projectUserEdits(e){return e.filter(e=>!TB.has(e.content)).map(e=>"completed"!==e.status&&EB.has(e.content)?{...e,status:"completed"}:e)}function setSessionTodos(e){const n=projectUserEdits(e);if(n.length>0&&EB.size>0&&n.every(e=>"completed"===e.status))return void clearSessionTodos();const o=shapeOf(n),r=o!==bB;(r||JSON.stringify(n)!==JSON.stringify(wB))&&(wB=n.length>0?n:SB,bB=o,wB.length>0&&r&&armPeek(),emit2())}function adoptSettled(e){wB=e.length>0?[...e]:SB,bB=shapeOf(wB),cancelPeek(),emit2()}function seedSessionTodos(e){TB.clear(),EB.clear(),adoptSettled(e)}function removeSessionTodoAt(e){const n=wB[e];return n&&TB.add(n.content),adoptSettled(wB.filter((n,o)=>o!==e)),wB}function seedTodosFromFeedEntries(e){for(let n=e.length-1;n>=0;n-=1){const o=e[n];if(!o||"tool"!==o.role||"todo_write"!==o.name)continue;const r="output"in o?o.output:void 0,s="string"==typeof r?Ef(r):null;if(s){if(s.every(e=>"completed"===e.status))break;return seedSessionTodos(s),wB}}return clearSessionTodos(),SB}function clearSessionTodos(){(wB!==SB||kB||0!==TB.size||0!==EB.size)&&(wB=SB,bB="",TB.clear(),EB.clear(),cancelPeek(),emit2())}function getSessionTodos(){return wB}function isTodoPanelCollapsed(){return!kB}function completeSessionTodoAt(e){const n=wB[e];return n&&EB.add(n.content),adoptSettled(wB.map((n,o)=>o===e?{...n,status:"completed"}:n)),wB}function completeAllSessionTodos(){const e=wB.map(e=>e.content);for(const n of e)EB.add(n);return adoptSettled(SB),e}function subscribe(e){return PB.add(e),()=>PB.delete(e)}function useSessionTodos(){return ft(subscribe,getSessionTodos)}function useTodoPanelCollapsed(){return ft(subscribe,isTodoPanelCollapsed)}function usePausedLabel(e){const[n,o]=mt(!e);return gt(()=>{if(e)return void o(!1);const n=setTimeout(()=>o(!0),1500);return n.unref?.(),()=>clearTimeout(n)},[e]),n}function projectVisibleTodos(e){if(e.length<=8)return{foldedDone:0,visible:e,hiddenTail:0};const n=e.filter(e=>"completed"!==e.status),o=e.length-n.length,r=8-(o>0?1:0),s=n.slice(0,Math.max(1,r));return{foldedDone:o,visible:s,hiddenTail:n.length-s.length}}function currentTaskLabel(e){const n=e.find(e=>"in_progress"===e.status);if(n)return n.activeForm?`${n.activeForm}…`:n.content;const o=e.find(e=>"pending"===e.status);return o?o.content:null}function TodoPanel({active:e=!0}){const{t:n}=xt(),o=useSessionTodos(),r=useTodoPanelCollapsed(),s=usePausedLabel(e);if(0===o.length)return null;const a=o.filter(e=>"completed"===e.status).length,i=a>0?n("itemsDone","{{v0}} items · {{v1}} done",{v0:o.length,v1:a}):n("items","{{v0}} items",{v0:o.length}),l=r?currentTaskLabel(o):null;return ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},n("todos2","{{v0}}TODOS{{v1}}",{v0:zD,v1:zD}))),ct.createElement(tt,{flexShrink:0},ct.createElement(nt,null," ",ct.createElement(BracketWrap,null,i))),l&&ct.createElement(tt,{flexShrink:1,minWidth:0},ct.createElement(nt,{color:s?XO.DIM:iD.IN_PROGRESS,bold:!s,wrap:"truncate-end"},` ${l}${s?" (paused)":""}`)),ct.createElement(tt,{flexShrink:0},ct.createElement(nt,null," ",ct.createElement(BracketWrap,{color:XO.DIM},r?n("ctrlXToExpand","ctrl+x to expand"):n("ctrlXToManage","ctrl+x to manage"))))),!r&&ct.createElement(CappedChecklist,{todos:o}))}function CappedChecklist({todos:e}){const{t:n}=xt(),{foldedDone:o,visible:r,hiddenTail:s}=projectVisibleTodos(e);return ct.createElement(tt,{flexDirection:"column"},o>0&&ct.createElement(tt,{flexDirection:"row"},ct.createElement(tt,{width:2},ct.createElement(nt,{color:iD.SUCCESS},vt.checkboxOn)),ct.createElement(nt,{color:iD.SUCCESS,strikethrough:!0},o," ",n("completed","completed"))),ct.createElement(TodoChecklist,{todos:r}),s>0&&ct.createElement(nt,{color:XO.DIM},n("more6"," … +{{v0}} more",{v0:s})))}__name(shapeOf,"shapeOf"),__name(emit2,"emit"),__name(cancelPeek,"cancelPeek"),__name(armPeek,"armPeek"),__name(projectUserEdits,"projectUserEdits"),__name(setSessionTodos,"setSessionTodos"),__name(adoptSettled,"adoptSettled"),__name(seedSessionTodos,"seedSessionTodos"),__name(removeSessionTodoAt,"removeSessionTodoAt"),__name(seedTodosFromFeedEntries,"seedTodosFromFeedEntries"),__name(clearSessionTodos,"clearSessionTodos"),__name(getSessionTodos,"getSessionTodos"),__name(isTodoPanelCollapsed,"isTodoPanelCollapsed"),__name(completeSessionTodoAt,"completeSessionTodoAt"),__name(completeAllSessionTodos,"completeAllSessionTodos"),__name(subscribe,"subscribe"),__name(useSessionTodos,"useSessionTodos"),__name(useTodoPanelCollapsed,"useTodoPanelCollapsed"),__name(usePausedLabel,"usePausedLabel"),__name(projectVisibleTodos,"projectVisibleTodos"),__name(currentTaskLabel,"currentTaskLabel"),__name(TodoPanel,"TodoPanel"),__name(CappedChecklist,"CappedChecklist"),Jt(),Jt(),Jt();var MB=[],IB=new Set;function publish2(e){MB=e;for(const e of IB)e()}function stepKey(e){return e.split(" · ")[0]??e}function showConnectStep(e){const n=MB.at(-1);!n||n.done||stepKey(n.label)!==stepKey(e)?publish2([...MB.map(e=>e.done?e:{...e,done:!0,label:stepKey(e.label)}),{label:e,done:!1,since:Date.now()}]):publish2([...MB.slice(0,-1),{...n,label:e}])}function clearConnectSteps(){publish2([])}function getConnectSteps(){return MB}function useConnectSteps(){return ft(e=>(IB.add(e),()=>IB.delete(e)),getConnectSteps)}__name(publish2,"publish"),__name(stepKey,"stepKey"),__name(showConnectStep,"showConnectStep"),__name(clearConnectSteps,"clearConnectSteps"),__name(getConnectSteps,"getConnectSteps"),__name(useConnectSteps,"useConnectSteps");var AB=[["Checking out","Checked out"],["Creating","Created"],["Restarting","Restarted"],["Starting","Started"],["Connecting","Connected"],["Cloning","Cloned"],["Updating","Updated"],["Preparing","Prepared"],["Loading","Loaded"],["Using","Used"]];function doneLabel(e){for(const[n,o]of AB)if(e.startsWith(`${n} `))return`${o}${e.slice(n.length)}`;return e}__name(doneLabel,"doneLabel"),Jt(),Jt(),hL();var xB=["·","○","◇","☆","✧","☆","◇","○","⌘"],RB=[12,5,4,4,4,4,4,5,16],LB=[5,4,4,4,4,4,5];function getWaveSymbol(e){const n=e%88;let o=0;for(let e=0;e<RB.length;e++)if(o+=RB[e],n<o)return xB[e];const r=n-58;o=0;for(let e=0;e<LB.length;e++)if(o+=LB[e],r<o)return xB[7-e];return xB[0]}function ShimmerText({text:e,offset:n,bg:o}){const r=ut(()=>e.split(""),[e]),s=__name(e=>{const o=e-(n-5);return o>=0&&o<yD.length?yD[o]:vD},"getCharColor");return ct.createElement(nt,null,r.map((e,n)=>ct.createElement(nt,{key:`${n}:${e}`,color:s(n),backgroundColor:o},e)))}function CMDIcon({frame:e,color:n}){return ct.createElement(nt,{color:n??ZO,bold:!0},`${getWaveSymbol(e)} `)}__name(getWaveSymbol,"getWaveSymbol"),__name(ShimmerText,"ShimmerText"),__name(CMDIcon,"CMDIcon");var OB=formatStatusTokenCount,DB=formatElapsedMs,NB=__name(({status:e,timeElapsed:n,tokens:o})=>{const{t:r}=xt(),[s,a]=mt(0),[i,l]=mt(o),c=pt(o);c.current=o;const d=getTerminalWidth(),[u,m]=mt(()=>d>=72?"all":d>=42?"medium":"none");gt(()=>{m(e=>"all"===e?d<68?d>=42?"medium":"none":"all":"medium"===e?d>=72?"all":d<38?"none":"medium":d>=72?"all":d>=42?"medium":"none")},[d]),gt(()=>{const e=setInterval(()=>{a(e=>(e+1)%88),l(e=>{const n=c.current;if(e===n)return e;const o=n-e,r=e+Math.sign(o)*Math.max(1,Math.ceil(Math.abs(o)/10));return o>0?Math.min(r,n):Math.max(r,n)})},80);return()=>clearInterval(e)},[]);const p=s%(e.length+10),g="all"===u,h="medium"===u;return rN.statusRender({width:d,layoutMode:u,status:e,frame:s}),ct.createElement(tt,{width:d,height:1,paddingLeft:0,marginLeft:0},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:sD.BG,color:sD.FG}," "),ct.createElement(nt,{backgroundColor:sD.BG},ct.createElement(CMDIcon,{frame:4*s,color:sD.FG})),ct.createElement(ShimmerText,{text:e,offset:p,bg:sD.BG}),ct.createElement(nt,{backgroundColor:sD.BG,color:sD.FG}," ")),g&&ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{bold:!0,color:XO.GRAY},"esc"),ct.createElement(nt,{color:XO.DIM},r("toInterrupt","to interrupt")),ct.createElement(nt,{color:XO.DIM},"•"),ct.createElement(nt,{color:XO.DIM},DB(n)),ct.createElement(nt,{color:XO.DIM},"•"),ct.createElement(nt,{color:XO.GRAY},vt.arrowDown),ct.createElement(nt,{color:XO.DIM},OB(Math.round(i)))),h&&ct.createElement(tt,{marginLeft:1},ct.createElement(nt,{color:XO.DIM},OB(Math.round(i)))))},"Status");function ShimmerLine({text:e,indent:n=1,icon:o=!1}){const[r,s]=mt(0);return gt(()=>{const e=setInterval(()=>s(e=>e+1),80);return()=>clearInterval(e)},[]),ct.createElement(tt,{marginLeft:n},o&&ct.createElement(CMDIcon,{frame:4*r}),ct.createElement(ShimmerText,{text:e,offset:r%(e.length+10)}))}function activeText(e){return e.includes(" · ")?e:`${e}…`}function ConnectSteps(){const{t:e}=xt(),n=useConnectSteps(),[o,r]=mt(()=>Date.now());gt(()=>{const e=setInterval(()=>r(Date.now()),1e3);return()=>clearInterval(e)},[]);const s=n.at(-1);if(!s||s.done)return ct.createElement(ShimmerLine,{text:e("connectingToTheSandbox","Connecting to the cloud…"),icon:!0});const a=s.label.startsWith("Cloning ")&&o-s.since>15e3;return ct.createElement(tt,{flexDirection:"column"},n.filter(e=>e.done).map((e,n)=>ct.createElement(tt,{key:`${n}:${e.label}`,marginLeft:1},ct.createElement(nt,{color:XO.GREEN},"✓ "),ct.createElement(nt,{color:XO.DIM},doneLabel(e.label)))),ct.createElement(ShimmerLine,{text:activeText(s.label),icon:!0}),a&&ct.createElement(tt,{marginLeft:3},ct.createElement(nt,{color:XO.DIM},e("largeRepoCloneHint","Large repo: it is cloned once per session, and reopening is fast."))))}function isToggleShortcut(e,n){return""===e||!0===n.ctrl&&"b"===e}__name(ShimmerLine,"ShimmerLine"),__name(activeText,"activeText"),__name(ConnectSteps,"ConnectSteps"),Jt(),hL(),Jt(),hL(),__name(isToggleShortcut,"isToggleShortcut");var FB=new Set;function requestBackgroundTasksExpand(){for(const e of FB)e()}function formatShellTaskCounts(e){const n=e.filter(e=>"running"===e.status),o=n.filter(e=>"shell"===e.kind).length,r=n.filter(e=>"monitor"===e.kind).length,s=[];return o>0&&s.push(t("shell2","{{v0}} shell{{v1}}",{v0:o,v1:1===o?"":"s"})),r>0&&s.push(t("monitor","{{v0}} monitor{{v1}}",{v0:r,v1:1===r?"":"s"})),s.join(", ")}function formatPanelSubtitle(e){const n=e.filter(e=>"running"===e.status);if(0===n.length)return t("noneRunning","none running");const o=n.filter(e=>"shell"===e.kind).length,r=n.filter(e=>"monitor"===e.kind).length;return o>0&&0===r?t("activeShell","{{v0}} active shell{{v1}}",{v0:o,v1:1===o?"":"s"}):r>0&&0===o?t("activeMonitor","{{v0}} active monitor{{v1}}",{v0:r,v1:1===r?"":"s"}):formatShellTaskCounts(e)}function formatTaskRuntime(e){const n=Date.parse(e.startedAt);if(Number.isNaN(n))return;const o=e.stoppedAt?Date.parse(e.stoppedAt):Date.now();if(Number.isNaN(o))return;const r=Math.max(0,Math.floor((o-n)/1e3)),s=Math.floor(r/3600),a=Math.floor(r%3600/60),i=r%60;return s>0?`${s}h ${a}m ${i}s`:a>0?`${a}m ${i}s`:`${i}s`}function useShellTaskSnapshot(){const[e,n]=mt(()=>listShellTasks({includeStopped:!0}));return gt(()=>{const e=setInterval(__name(()=>n(listShellTasks({includeStopped:!0})),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(requestBackgroundTasksExpand,"requestBackgroundTasksExpand"),__name(formatShellTaskCounts,"formatShellTaskCounts"),__name(formatPanelSubtitle,"formatPanelSubtitle"),__name(formatTaskRuntime,"formatTaskRuntime"),__name(useShellTaskSnapshot,"useShellTaskSnapshot");var _B=getShellTaskLabel,$B=getShellTaskStatusText,UB=getVisibleShellTasks,BB=latestShellTaskOutputLines,jB={running:XO.CYAN,completed:XO.GREEN,failed:XO.RED,"auto-stopped":XO.YELLOW,stopped:XO.GRAY};function getStatusColor(e){return jB[getShellTaskStatusTone(e)]}function TaskRow({task:e,selected:n}){const o=truncateString2({text:_B(e),maxChars:56}),r=n?kD:void 0;return ct.createElement(tt,null,ct.createElement(s$,{isSelected:n,backgroundColor:r}),ct.createElement(nt,{color:n?ZN:void 0,backgroundColor:r}," ",o),ct.createElement(nt,{color:XO.DIM,backgroundColor:r}," ","(",$B(e),")"))}function TaskGroup({title:e,tasks:n,selectedTaskId:o}){return 0===n.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM,bold:!0},e," (",n.length,")"),n.map(e=>ct.createElement(TaskRow,{key:e.id,task:e,selected:e.id===o})))}function TaskDetailsBody({task:e,output:n}){const{t:o}=xt(),r=BB(n,10),s=formatTaskRuntime(e);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{bold:!0},o("status","Status:")," "),ct.createElement(nt,{color:getStatusColor(e)},$B(e))),void 0!==s&&ct.createElement(tt,null,ct.createElement(nt,{bold:!0},o("runtime","Runtime:")," "),ct.createElement(nt,null,s)),ct.createElement(tt,null,ct.createElement(nt,{bold:!0},o("script","Script:")," "),ct.createElement(nt,{wrap:"wrap"},e.command)),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{bold:!0},o("output","Output:")),ct.createElement(tt,{flexDirection:"column",borderStyle:"single",borderColor:XO.DIM,paddingX:1},r.length>0?r.map((n,o)=>ct.createElement(nt,{key:`${e.id}-${o}`},truncateString2({text:n,maxChars:100}))):ct.createElement(nt,{color:XO.DIM},o("noOutputYet","No output yet."))),ct.createElement(nt,{italic:!0,color:XO.DIM},o("showing","Showing")," ",r.length," ",translateUiCopy(1===r.length?"line":"lines"))))}function BackgroundTasksPanel({onExpandedChange:e}={}){const{t:n}=xt(),o=useShellTaskSnapshot(),r=o.filter(e=>"running"===e.status),[s,a]=mt(!1),[i,l]=mt("list"),[c,d]=mt(0),[u,m]=mt(""),p=ut(()=>UB(o),[o]),g=p[c]??p[0];gt(()=>{e?.(s)},[s,e]),gt(()=>{const e=__name(()=>{l("list"),a(!0)},"listener");return FB.add(e),()=>{FB.delete(e)}},[]),gt(()=>{if(0===p.length)return a(!1),l("list"),void d(0);d(e=>Math.min(e,Math.max(0,p.length-1)))},[p.length]),gt(()=>{if(!s||"details"!==i||!g)return void m("");const e=readShellTaskOutputTail({taskId:g.id,maxBytes:4096});m(e?.content??"")},[s,i,g?.id,o]);const h=__name(()=>{a(!1),l("list")},"closePanel");if(at((e,n)=>isToggleShortcut(e,n)&&(r.length>0||s)?(l("list"),void a(e=>!e)):s?"details"===i?n.leftArrow?void l("list"):n.escape||n.return||" "===e?void h():void("x"===e&&"running"===g?.status&&stopShellTaskById(g.id)):void(n.escape||n.leftArrow?h():0!==p.length&&(n.upArrow?d(e=>Math.max(0,e-1)):n.downArrow?d(e=>Math.min(p.length-1,e+1)):n.return&&g?l("details"):"x"===e&&"running"===g?.status&&stopShellTaskById(g.id))):void 0,{isActive:r.length>0||s}),!s)return null;if("details"===i&&g)return ct.createElement(oF,{title:"monitor"===g.kind?n("monitorDetails","Monitor details"):n("shellDetails","Shell details"),titleColor:XO.CYAN,ruleColor:XO.CYAN,subtitle:truncateString2({text:_B(g),maxChars:80}),hint:n("toGoBackEscEnterSpaceToCloseXToStop","← to go back · Esc/Enter/Space to close · x to stop"),boxProps:{marginTop:1,marginBottom:1}},ct.createElement(TaskDetailsBody,{task:g,output:u}));const f=p.filter(e=>"monitor"===e.kind),y=p.filter(e=>"shell"===e.kind),v=f.length>0&&y.length>0;return ct.createElement(oF,{title:n("background","Background"),titleColor:XO.CYAN,ruleColor:XO.CYAN,subtitle:formatPanelSubtitle(o),hint:n("toSelectEnterToViewXToStopEscToGoBackToFeed","↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed"),gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},v?ct.createElement(ct.Fragment,null,ct.createElement(TaskGroup,{title:n("monitors","Monitors"),tasks:f,selectedTaskId:g?.id}),ct.createElement(TaskGroup,{title:n("shells","Shells"),tasks:y,selectedTaskId:g?.id})):ct.createElement(tt,{flexDirection:"column",marginTop:1},p.map(e=>ct.createElement(TaskRow,{key:e.id,task:e,selected:e.id===g?.id}))))}function useExternalEditor({input:e,setInput:n,setInputKey:o,detectedContent:r,setDetectedContent:s,onEditorClose:a}){const[i,l]=mt(!1),[c,d]=mt(null),u=ht(async()=>{if(!i){l(!0),d(null);try{const i=resolvePastedTextTokens({input:e.replace(/\n+$/,""),detectedContent:r}),l=await openInEditor(i);n(l),s([]),o(e=>e+1),a?.()}catch(e){if(e instanceof jy)return void d("No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/docs/core-concepts/interactive-mode#setting-up-your-editor");d(t("editorError","Editor error: {{v0}}",{v0:e instanceof Error?e.message:String(e)}))}finally{l(!1)}}},[e,n,o,r,s,a,i]),m=ht(()=>{d(null)},[]);return{isEditorOpen:i,editorError:c,handleOpenInEditor:u,clearEditorError:m}}__name(getStatusColor,"getStatusColor"),__name(TaskRow,"TaskRow"),__name(TaskGroup,"TaskGroup"),__name(TaskDetailsBody,"TaskDetailsBody"),__name(BackgroundTasksPanel,"BackgroundTasksPanel"),Jt(),hL(),__name(useExternalEditor,"useExternalEditor"),Jt(),hL();var WB=__name((e={})=>{const{enabled:n=!0,paused:o=!1}=e,[r,s]=mt(null),[a,i]=mt(!1),[l,c]=mt({visible:!1,type:"connected"}),d=pt(null);null===d.current&&(d.current=vE({onConnectedChange:i,onContext:s,onIndicatorChange:c}));const u=d.current;gt(()=>{u.setPaused(o)},[u,o]),gt(()=>{if(n)return u.start(),()=>{u.stop()}},[n,u]);const m=ZT(),p=m?bE[m]??"IDE":"IDE",g={visible:l.visible,message:"connected"===l.type?`${p} ${vt.tick}`:t("runIde","run /ide"),type:l.type};return{context:r,connected:a,refresh:u.refresh,connectionIndicator:g}},"useVSCodeContext");Jt(),hL();var HB=__name((e={})=>{const{enabled:n=!0}=e,[o,r]=mt(null),s=pt(!1);return gt(()=>{if(!n||s.current)return;let e=!0;return s.current=!0,detectPR().then(n=>{e&&r(n)}),()=>{e=!1}},[n]),{pr:o}},"usePRDetection");function pushEntry(e,n){e.push(n),e.length>50&&e.shift()}function commitBurst({stack:e,burstStart:n,inBurst:o,timer:r}){r.current&&(clearTimeout(r.current),r.current=null),o.current=!1,pushEntry(e,n)}function useUndoStack({input:e,setInput:n,initialCursorRef:o,incrementInputKey:r}){const s=pt([]),a=pt(""),i=pt(!1),l=pt(null),c=pt(!1),d=pt("");return gt(()=>{if(c.current)return c.current=!1,void(d.current=e);if(e===d.current)return;const n=d.current;return d.current=e,i.current||(a.current=n,i.current=!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{i.current=!1,l.current=null,pushEntry(s.current,a.current)},400),()=>{l.current&&(clearTimeout(l.current),l.current=null)}},[e]),{commitUndo:__name(()=>{i.current&&commitBurst({stack:s.current,burstStart:a.current,inBurst:i,timer:l});const e=s.current.pop();void 0!==e&&(c.current=!0,n(e),o.current=e.length,r())},"commitUndo")}}function getCommandHintLayout(e){const n=getCommandMenuDescriptionWidth(e.terminalWidth);return{descriptionWidth:n,text:truncateString2({text:e.text,maxChars:n})}}function getModelHintText(e){return formatCurrentModelHint({modelId:e,findModelById:findModelById})}Jt(),__name(pushEntry,"pushEntry"),__name(commitBurst,"commitBurst"),__name(useUndoStack,"useUndoStack"),Jt(),hL(),__name(getCommandHintLayout,"getCommandHintLayout"),__name(getModelHintText,"getModelHintText"),Jt(),hL();var GB=createNodeRuntime(),VB=__name(({onSelectFile:e,onClose:n,searchQuery:o=""})=>{const{t:r}=xt(),[s,i]=mt(()=>process.cwd()),[l,c]=mt([]),[d,u]=mt(0),[m,p]=mt(0),g=o.trim()?15:10;gt(()=>{invalidateFileIndex()},[]),gt(()=>{let e=!1;return __name(async()=>{if(o.trim()){const n=await searchFiles({runtime:GB,searchTerm:o,basePath:process.cwd()});if(e)return;return c(n),u(0),void p(0)}try{const n=await browseDirectory({runtime:GB,dirPath:s,basePath:process.cwd()});if(e)return;c(n),u(0),p(0)}catch{}},"run")(),()=>{e=!0}},[s,o]),at((r,s)=>{if(s.escape)n();else if(s.upArrow)u(e=>{const n=Math.max(0,e-1);return n<m&&p(n),n});else if(s.downArrow)u(e=>{const n=Math.min(l.length-1,e+1);return n>=m+g&&p(n-g+1),n});else{if(s.rightArrow){const e=l[d];if(!e)return;return void(e.isDirectory&&!o.trim()&&i(a(e.path)))}if(s.return){const n=l[d];if(!n)return;return void e(n.path)}}});const h=l.slice(m,m+g);return ct.createElement(tt,{flexDirection:"column",paddingLeft:1},ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},o.trim()?r("searchingFor",'Searching for: "{{v0}}"',{v0:o}):r("files","Files: {{v0}}",{v0:s}))),0===h.length?ct.createElement(WF,{message:o.trim()?r("noFilesFoundMatching",'No files found matching "{{v0}}"',{v0:o}):r("noFilesFoundInThisDirectory","No files found in this directory")}):h.map((e,n)=>{const o=m+n,r=e.name,s=o===d;return ct.createElement(nt,{key:e.path,color:s?ZN:XO.DIM,bold:s&&isLightTheme()},e.isDirectory?`${r}/`:r)}),ct.createElement(YN,{hints:[r("navigate","↑↓ navigate"),!o.trim()&&r("toOpenFolder","→ to open folder"),r("enterToSelect","Enter to select"),r("escToClose","Esc to close")]}))},"FileList");Jt(),hL();var KB=__name(()=>{const{t:e}=xt();return ct.createElement(tt,{paddingRight:3},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},vt.pointerSmall," ",e("stashed","stashed")))},"StashBadge"),zB=__name(({hint:e})=>ct.createElement(tt,{paddingRight:1},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},e)),"PasteKeyHint"),qB=__name(({tasteLearningOn:e,byokSession:n,showSeparator:o=!0})=>{const{t:r}=xt();if(null==e)return null;const s=e&&n,a=s?r("tasteOffByok","taste off (byok)"):e?r("tasteOn","taste on"):r("tasteOff","taste off");return ct.createElement(ct.Fragment,null,o&&ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:e&&!s?eD.TEXT:XO.DIM},a))},"TasteStateBadge"),YB=__name(({phaseModel:e})=>ct.createElement(nt,{color:ZO,wrap:"truncate"},phaseModelLabel(e)),"PhaseModelBadge");function phaseModelLabel(e){return`${e.lane}: ${e.modelName}`}function pasteKeyHintMinWidth(e){return e?93+phaseModelLabel(e).length+3:90}__name(phaseModelLabel,"phaseModelLabel"),__name(pasteKeyHintMinWidth,"pasteKeyHintMinWidth");var JB=__name(({hasStashedPrompt:e,cornerHint:n,phaseModel:o})=>{const{t:r}=xt();if(!o)return e?ct.createElement(KB,null):n?ct.createElement(zB,{hint:n}):null;const s=e?`${vt.pointerSmall} ${r("stashed","stashed")}`:n;return ct.createElement(tt,{flexDirection:"row",paddingRight:3},s&&ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},s," · "),ct.createElement(YB,{phaseModel:o}))},"CornerStatus");function useBackgroundTasksSummary(){const[e,n]=mt(()=>formatShellTaskCounts(listShellTasks({includeStopped:!1})));return gt(()=>{const e=setInterval(__name(()=>n(formatShellTaskCounts(listShellTasks({includeStopped:!1}))),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(useBackgroundTasksSummary,"useBackgroundTasksSummary");var QB=__name(({showSeparator:e=!0,armed:n=!1})=>{const{t:o}=xt(),r=useBackgroundTasksSummary();return r?ct.createElement(ct.Fragment,null,e&&ct.createElement(nt,{color:XO.DIM}," · "),n?ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.CYAN,inverse:!0},` ${r} `),ct.createElement(nt,{color:XO.DIM}," ","· ",o("enterToOpen","Enter to open"))):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.CYAN},r),ct.createElement(nt,{color:XO.DIM}," ","· ",o("arrowDownToManage","↓ to manage")))):null},"BackgroundTasksBadge"),XB=__name(({indicator:e,showSeparator:n=!0})=>e?.visible?ct.createElement(ct.Fragment,null,n&&ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:"connected"===e.type?XO.GREEN:XO.YELLOW},e.message)):null,"ConnectionIndicatorBadge"),ZB=__name(({termWidth:e,indicatorText:n,isIDEIndicator:o,permissionMode:r="default",prInfo:s,contextUsage:a,connectionIndicator:i,pendingExitKey:l,updateStatus:c,updateFailedInfo:d,currentProvider:u,showProviderInfo:m,isBashMode:p,shareInfo:g,showShareNotification:h,unshareNotificationMessage:f,tasteNotificationMessage:y,creditWarning:v,hasStashedPrompt:S,tasteLearningOn:w,byokSession:k,backgroundTasksArmed:C,pasteKeyHint:b,phaseModel:T})=>{const{t:E}=xt(),P=e>=60,M=b&&e>=pasteKeyHintMinWidth(T)?b:null;return ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column",paddingLeft:2},"auto-accept"!==r&&"plan"!==r&&"bypass"!==r&&"dont-ask"!==r||l?ct.createElement(tt,{flexDirection:"row",flexWrap:"wrap",columnGap:2,width:e-1},ct.createElement(tt,{flexDirection:"row",columnGap:0},o&&!l?ct.createElement(nt,{color:lD},n):ct.createElement(FD,{mode:r,pendingExitKey:l}),!l&&ct.createElement($D,{prInfo:s}),!l&&ct.createElement(XB,{indicator:i}),!l&&P&&ct.createElement(qB,{tasteLearningOn:w,byokSession:k}),!l&&ct.createElement(QB,{armed:C})),(P||S||M||T)&&ct.createElement(tt,{flexDirection:"column",alignItems:"flex-end",flexGrow:1},ct.createElement(JB,{hasStashedPrompt:S,cornerHint:M,phaseModel:T}),(!S||T)&&P&&a&&ct.createElement(PD,{usage:a}))):ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"row",flexWrap:"wrap",columnGap:2,width:e-1},ct.createElement(FD,{mode:r}),ct.createElement(tt,{flexGrow:1,justifyContent:"flex-end"},ct.createElement(JB,{hasStashedPrompt:S,cornerHint:M,phaseModel:T}))),ct.createElement(tt,{flexDirection:"row",justifyContent:"space-between",width:e-1},ct.createElement(tt,{flexDirection:"row",columnGap:0},ct.createElement(nt,{color:o?lD:XO.DIM},n),ct.createElement($D,{prInfo:s}),ct.createElement(XB,{indicator:i}),P&&ct.createElement(qB,{tasteLearningOn:w,byokSession:k}),ct.createElement(QB,{armed:C})),ct.createElement(tt,{flexDirection:"row",columnGap:2},P&&a&&ct.createElement(PD,{usage:a})))),(c||d||m&&u)&&ct.createElement(tt,{flexDirection:"row",columnGap:1},c&&ct.createElement(nt,null,vt.tick," ","Command Code"," ",E("updatedColon","updated:")," ",ct.createElement(nt,{color:XO.DIM},"v",c.updatedFrom),ct.createElement(nt,{color:XO.DIM}," ",vt.arrowRight," "),ct.createElement(nt,null,"v",c.updatedTo)),!c&&d&&ct.createElement(nt,{color:XO.YELLOW,dimColor:!0},vt.info," ",E("updateAvailableColon","Update available:")," ",d.currentVersion," ",vt.arrowRight," ",d.latestVersion),m&&u&&ct.createElement(nt,{color:XO.GREEN,dimColor:!0},vt.bullet," ",E("providerColon","Provider:")," ",getProviderDisplayName(u)))),p&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:XO.GREEN},E("bashModeHint","! for bash mode"))),h&&g&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:ZO},E("sharedColon","SHARED:")," ",g.url," ",E("copiedToClipboardParen","(copied to clipboard)"))),f&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:f.includes("NOT SHARED")||f.startsWith("未分享:")?XO.RED:ZO},f)),y&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:ZO},y)),v&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:XO.YELLOW},vt.warning," ",v)))},"BottomIndicator");Jt();var ej=[["rc","token"],["rc","user"]];function carriesSecretArgument(e){const[n,o,...r]=e.trim().replace(/^\//,"").split(/\s+/).filter(Boolean);return void 0!==n&&void 0!==o&&0!==r.length&&ej.some(([e,r])=>e===n.toLowerCase()&&r===o.toLowerCase())}function useClipboardPasteKey(e){const{latestInputRef:n,cursorPositionRef:o,detectedImagesRef:r,setDetectedImages:s,setInput:a,incrementInputKey:i,setInitialCursor:l,handlePaste:c,onTextPasted:d,showClipboardNotice:u,clearClipboardNotice:m,armPasteKeyHint:p}=e,g=ht(e=>{const c=nextImagePasteNumber(r.current),{text:d,cursor:u}=insertTextAt(n.current,o.current,imagePasteToken(c)),m=[...r.current,{imageNumber:c,image:e}];r.current=m,s(m),a(d),n.current=d,o.current=u,l(u),i()},[o,r,i,n,s,l,a]),h=ht(async e=>{const r=stripEmbeddedPasteEndMarker(e),s=n.current,a=o.current,i=s.slice(0,a),l=s.slice(a);await c(`${i}[200~${r}[201~${l}`)&&d()},[o,c,n,d]);return ht(async()=>{const e=p(),n=setTimeout(()=>{u(t("readingClipboard","Reading clipboard…"),{sticky:!0})},150);try{const o=await probeClipboardImage();if(o.image)return g(o.image),clearTimeout(n),void m();const r=o.text??await detectClipboardText();if(clearTimeout(n),r)return m(),void await h(r);u(describeClipboardImageMiss({environment:o.environment,attempted:o.attempted})),e()}catch{clearTimeout(n),m()}},[p,m,g,h,u])}__name(carriesSecretArgument,"carriesSecretArgument"),Jt(),hL(),__name(useClipboardPasteKey,"useClipboardPasteKey");var tj=["","","[118;5u"];function removeAltPCharacter(e){return e.includes("π")?e.replace(/π/g,""):null}function buildFileMentionInput(e){const{currentInput:n,mentionPath:o,isSearchMode:r}=e;if(!r)return`${n}${o} `;const s=n.lastIndexOf("@");return-1===s?`${o} `:`${n.substring(0,s+1)}${o} `}__name(removeAltPCharacter,"removeAltPCharacter"),__name(buildFileMentionInput,"buildFileMentionInput");var nj=__name(({pasteKeyAdvice:e})=>{const{t:n}=xt();return ct.createElement(tt,{flexDirection:"column",paddingLeft:1},ct.createElement(nt,{color:XO.DIM,bold:!0},n("availableShortcuts","Available Shortcuts:")),ct.createElement(tt,{columnGap:4},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n("bashModeHint","! for bash mode")),ct.createElement(nt,{color:XO.DIM},n("forCommands","/ for commands")),ct.createElement(nt,{color:XO.DIM},n("forFilePaths","@ for file paths")),ct.createElement(nt,{color:XO.DIM},getModeToggleShortcutHint()," ",n("toToggleAcceptEdits","to toggle accept edits"))),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n("doubleTapEscToClearInput","double tap esc to clear input")),ct.createElement(nt,{color:XO.DIM},getNewlineShortcutHint()," ",n("forNewline","for newline")),ct.createElement(nt,{color:XO.DIM},n("ctrlGToOpenInEditor","ctrl + g to open in editor")),ct.createElement(nt,{color:XO.DIM},n("ctrlZToUndo","ctrl + z to undo")),ct.createElement(nt,{color:XO.DIM},n("ctrlSToStashPrompt","ctrl + s to stash prompt")),ct.createElement(nt,{color:XO.DIM},spacedKey(e.key)," ",n("toPasteImage","to paste image")),e.textOnlyKey&&ct.createElement(nt,{color:XO.DIM},spacedKey(e.textOnlyKey)," ",n("pastesTextOnlyIn","pastes text only in")," ",e.terminal))))},"ShortcutMenu");function spacedKey(e){return e.split("+").join(" + ")}function currentPasteKeyAdvice(){return pasteImageKeyAdvice({terminal:detectTerminal({env:process.env}),environment:currentClipboardEnvironment()})}__name(spacedKey,"spacedKey"),__name(currentPasteKeyAdvice,"currentPasteKeyAdvice");var oj=__name(({input:e,onSubmit:n,setInput:o,showCursor:r=!0,placeholder:s=t("enterYourInput","Enter your input…"),showFileList:a,setShowFileList:l,fileSearchQuery:c,setFileSearchQuery:d,onCommand:u,contextUsage:m,tasteLearningOn:p,phaseModel:g,tasteUsage:h=!1,shareInfo:f,showShareNotification:y,unshareNotificationMessage:v,tasteNotificationMessage:S,creditWarning:w,updateStatus:k,updateFailedInfo:C,currentProvider:b,currentModel:T,showProviderInfo:E,permissionMode:P="default",onToggleAutoAccept:M,hintMessage:I,historyManager:A,pendingExitKey:x=null,onOverlayVisibilityChange:R,onDoubleEscapeEmpty:L,onAltP:O,isProcessing:D=!1,ideContextEnabled:N=!0,footer:F})=>{const{t:_}=xt(),[$,U]=mt(0),[B,j]=mt(!1),[W,H]=mt(!1),[G,V]=mt(!1),[K,z]=mt(""),[q,Y]=mt(null),J=pt(0),Q=pt(0),[X,Z]=mt([]),[ee,te]=mt([]),[ne,oe]=mt(null),[re,se]=mt(null),ae=pt(null),ie=ht(()=>{ae.current&&(clearTimeout(ae.current),ae.current=null),se(null)},[]),le=ht((e,n)=>{ae.current&&(clearTimeout(ae.current),ae.current=null),se(e),n?.sticky||(ae.current=setTimeout(()=>{ae.current=null,se(null)},5e3))},[]);gt(()=>()=>{ae.current&&clearTimeout(ae.current)},[]);const ce=ut(currentPasteKeyAdvice,[]),de=ut(()=>formatPasteImageKeyHint(ce),[ce,_]),[ue,me]=mt(()=>de?Date.now():null);gt(()=>{if(null===ue)return;const e=setTimeout(()=>{me(null)},1e4);return()=>clearTimeout(e)},[ue]);const pe=pt(0),ge=ht(()=>{pe.current+=1,me(null)},[]),he=ht(()=>{const e=pe.current;return()=>{de&&pe.current===e&&me(Date.now())}},[de]),fe=pt(()=>{}),ye=pt(!1),ve=pt(!1),[Se,we]=mt(!1),ke=pt(!1),Ce=ht(e=>{ke.current=e,we(e)},[]),be=pt(!1),Te=pt(void 0),[Ee,Pe]=mt(-1),[Me,Ie]=mt(""),Ae=pt(0),xe=pt(e);xe.current=e;const Re=pt(ee);Re.current=ee;const{commitUndo:Le}=useUndoStack({input:e,setInput:o,initialCursorRef:Te,incrementInputKey:__name(()=>U(e=>e+1),"incrementInputKey")}),{isEditorOpen:Oe,editorError:De,handleOpenInEditor:Ne,clearEditorError:Fe}=useExternalEditor({input:e,setInput:o,setInputKey:U,detectedContent:X,setDetectedContent:Z,onEditorClose:__name(()=>{ye.current=!1},"onEditorClose")}),_e=ut(()=>shouldCollapsePastedText(),[]),{handlePaste:$e,resetPasteState:Ue,isPasting:Be}=useBracketedPaste({input:e,setInput:o,setDetectedImages:te,setDetectedContent:Z,incrementInputKey:__name(()=>U(e=>e+1),"incrementInputKey"),setInitialCursor:__name(e=>{Te.current=e},"setInitialCursor"),collapsePastedText:_e,nextImageNumber:nextImagePasteNumber(ee),onPasteMiss:__name(e=>{le(describeClipboardImageMiss({environment:e.environment,attempted:e.attempted})),fe.current()},"onPasteMiss")}),je=useClipboardPasteKey({latestInputRef:xe,cursorPositionRef:Ae,detectedImagesRef:Re,setDetectedImages:te,setInput:o,incrementInputKey:__name(()=>U(e=>e+1),"incrementInputKey"),setInitialCursor:__name(e=>{Te.current=e},"setInitialCursor"),handlePaste:$e,onTextPasted:__name(()=>{be.current=!0},"onTextPasted"),showClipboardNotice:le,clearClipboardNotice:ie,armPasteKeyHint:he}),We=pt(()=>{});We.current=n=>{Oe||(async()=>{const o=Ae.current,r=e.slice(0,o),s=e.slice(o),a=stripEmbeddedPasteEndMarker(n);fe.current=he(),await $e(`${r}[200~${a}[201~${s}`)&&(be.current=!0)})()},gt(()=>registerPasteConsumer(e=>We.current(e)),[]);const He=pt(new Map),Ge=ut(()=>{const e=He.current,n=new Map,o=new Map;for(const r of ee){const s=e.has(r)?e.get(r)??null:saveTempImage(r.image,r.imageNumber);n.set(r,s),o.set(r.imageNumber,s)}return He.current=n,o},[ee]),{skills:Ve,customMenuItems:Ke}=useSlashMenuData(),ze=ut(()=>{const e=resolveSlashMenuItems({searchQuery:"",customMenuItems:Ke,skills:Ve,showProviderCommand:!0,showTerminalSetupCommand:isVSCodeTerminal2()});return new Set([...e.map(e=>e.command),...Ve.map(e=>buildSkillNamespacedCommand(e.name))])},[Ve,Ke]),qe=ht(e=>ze.has(e),[ze]),{context:Ye,connected:Je,refresh:Qe,connectionIndicator:Xe}=WB({enabled:N,paused:D}),{stdout:Ze}=rt(),et=Ze?.columns??80,{pr:ot}=HB();gt(()=>{const e=a||G;R?.(e)},[a,G,R]),gt(()=>{if(!be.current)return;be.current=!1;const n=pv(e);!G&&n.showCommandMenu||(V(n.showCommandMenu),z(n.showCommandMenu?n.commandSearchQuery:""))},[e,G]);const st=ht(()=>{te([])},[]),it=ht(()=>{V(!1),Y(null)},[]),lt=ht(()=>{it(),z(""),l(!1),d(""),Pe(-1),Ie(""),Te.current=void 0,U(e=>e+1)},[it,d,l]),dt=ht(n=>!(null===ne||!n?.replaceCurrentInput&&e.trim().length>0||(ye.current=!0,o(ne),oe(null),lt(),setTimeout(()=>{ye.current=!1},0),0)),[e,lt,o,ne]),ft=ht(()=>{o(""),H(!1),it(),z(""),Z([]),st(),Ue(),Pe(-1),Ie(""),U(e=>e+1)},[o,Ue,st,it]),yt=ht(e=>{ye.current=!0,o(e.text),Te.current=e.cursor,U(e=>e+1),setTimeout(()=>{ye.current=!1},0)},[o]),St=ht(()=>{yt(insertTextAt(e,Ae.current,"\n"))},[e,yt]);at(async(n,r)=>{if(ge(),ke.current&&!r.downArrow&&!r.return&&"\r"!==n&&(Ce(!1),r.upArrow))return;if(r.upArrow){if(a||G)return;const n=e.indexOf("\n"),r=-1===n||Ae.current<=n;if(0!==e.length&&-1===Ee&&!r)return;const s=A?.count()??0;if(0===s)return;-1===Ee&&Ie(e);const i=Math.min(Ee+1,s-1);return void(i!==Ee&&(Pe(i),o(A?.getAt(i)||""),U(e=>e+1)))}if(r.downArrow){if(a||G)return;if(-1===Ee){const n=e.lastIndexOf("\n"),o=-1===n||Ae.current>n;return void((0===e.length||o)&&listShellTasks().some(e=>"running"===e.status)&&Ce(!0))}const n=e.lastIndexOf("\n");if(!(-1===n||Ae.current>n))return;const r=Ee-1;return Pe(r),o(-1===r?Me:A?.getAt(r)||""),void U(e=>e+1)}if(""===n||r.ctrl&&"c"===n)return void st();if(isCtrlKey({inputChar:n,key:r,letter:"g",ctrlCode:7}))return ye.current=!0,void Ne();if(isCtrlKey({inputChar:n,key:r,letter:"s",ctrlCode:19})){const n=e.trim().length>0;if(!n&&null===ne)return;if(!n&&dt())return;ye.current=!0;const r=ne??"";return oe(n?e:null),o(r),lt(),void setTimeout(()=>{ye.current=!1},0)}if(getIsExpandToolShortcut(r,n))return ye.current=!0,o(e),U(e=>e+1),void setTimeout(()=>{ye.current=!1},0);if(isNewlineShortcutKey({inputChar:n,key:r,isPasting:Be()}))return ve.current=!0,St(),void setTimeout(()=>{ve.current=!1},0);if(r.meta&&"w"===n)return ye.current=!0,void ft();const s=r.ctrl&&"v"===n.toLowerCase()||tj.includes(n),i=r.meta&&"v"===n.toLowerCase();if(s||i){if(Oe)return;return ye.current=!0,setTimeout(()=>{ye.current=!1},0),void await je()}if(!r.ctrl&&!r.meta||"u"!==n)if(r.ctrl&&"z"===n?.toLowerCase())Le();else{if(r.escape){if(G)return;const n=Date.now();return n-J.current<500?(e.length>0?ft():L?.(),J.current=0,Q.current=0,j(!1),void H(!1)):(J.current=n,B||W||(Q.current=n),j(!1),void H(!1))}if(B&&(r.backspace||r.delete)&&0===e.length)j(!1);else if(r.return&&!r.shift&&!r.ctrl&&!r.meta){if(ke.current&&(Ce(!1),listShellTasks().some(e=>"running"===e.status)))return void requestBackgroundTasksExpand();if(ve.current)return void(ve.current=!1);if(Date.now()-Q.current<100)return Q.current=0,void St();if(a)return;if(G)return;if(Oe)return;const e=applyBackslashNewline(xe.current,Ae.current);return e?void yt(e):void await kt(xe.current)}}});const wt=ht(async n=>{if(Oe)return;const r=removeAltPCharacter(n);if(null!==r)return o(r),void O?.();const s=processBracketedPaste(n),i=findInsertion({before:e,after:n}),u=null!==i&&looksLikeDroppedImagePath(i.text);if((s.isPasteStart||s.isPasteEnd||u||Be())&&await $e(n))return void(be.current=!0);if(ye.current)return void(ye.current=!1);-1!==Ee&&Pe(-1),te(e=>{if(0===e.length)return e;const o=prunePastedImages({input:n,images:e});return o===e?e:[...o]});const m=1===n.length,p=n.slice(-1);if(m){if("?"===p&&!B)return j(!0),o(""),void U(e=>e+1);if("!"===p&&!W)return j(!1),H(!0),o(""),void U(e=>e+1)}const g=pv(n),h=n.length<e.length&&!e.startsWith(n),f=!h&&n.length<e.length,y=n.length===e.length+1||f,v=gv({canOpenMenu:y,deletedFromMiddle:h,menuState:g,showCommandMenu:G});G===v&&K===g.commandSearchQuery||(V(v),z(v?g.commandSearchQuery:""));const S=reduceFileMentionInput({prevInput:e,nextInput:n,state:{showFileList:a,query:c}});S.showFileList!==a&&l(S.showFileList),S.query!==c&&d(S.query),B&&(n!==e||n.length<e.length)&&j(!1),De&&Fe(),0===n.length&&(H(!1),it(),z(""),Z([]),d(""),Ue()),o(n)},[B,e,o,a,l,c,d,G,K,W,Ee,$e,Ue,Be,O,De,Fe,Oe,it]),kt=ht(async(r=e)=>{if(Qe(),Q.current=0,B)return void j(!1);const s=r.trim(),a=!W&&s.startsWith("/");let i=s;!W&&X.length>0&&(i=resolvePastedTextTokens({input:i,detectedContent:X}));const l=W?[]:resolvePastedImageTokens({input:s,images:ee}),c={};if(!W)for(const e of ee){if(!s.includes(imagePasteToken(e.imageNumber)))continue;const n=Ge.get(e.imageNumber);n&&(c[e.imageNumber]=n)}const d=Object.keys(c).length>0,m=Ye?uE(Ye):void 0;if(a&&u&&(o(""),"handled"===(await u(i,l,m)).status))return carriesSecretArgument(i)||A?.add(i),H(!1),it(),z(""),st(),Z([]),Pe(-1),Ie(""),void dt({replaceCurrentInput:!0});Pe(-1),Ie(""),i.length>0&&!carriesSecretArgument(i)&&A?.add(i);const p=buildIdeContextHint({ideContext:Ye});n({input:i,role:W?"bash":"user",images:l,ideContext:m,ideHint:p,imageTokenPaths:d?c:void 0}),H(!1),it(),z(""),st(),Z([]),dt({replaceCurrentInput:!0})},[n,u,B,e,W,ee,Ge,X,A,Qe,Ye,st,it,dt,o]),Ct=ht(n=>{const r=i(process.cwd(),n),s=r.includes(" ")?`"${r}"`:r,u=buildFileMentionInput({currentInput:e,mentionPath:s,isSearchMode:a&&""!==c});o(u),l(!1),d(""),U(e=>e+1)},[o,l,e,a,c,d]),bt=ht(()=>{l(!1),d("")},[l,d]),Tt=ht(e=>{const n=lv.has(e),r="/design"===e.trimEnd();if(n||r){const n=e.trimEnd();return o(n+" "),z(n.substring(1)+" "),void U(e=>e+1)}it(),z(""),o(e+" "),U(e=>e+1)},[o,it]),Et=ht(n=>{if("/design help"===n)return it(),z(""),o(""),U(e=>e+1),A?.add(n),void u?.("/design help");if(iv.has(n))return it(),z(""),A?.add(n),Pe(-1),Ie(""),o(""),U(e=>e+1),void u?.(n);const r=lv.has(n),s=Ti.has(n),a=Ei.has(n);if(r)Tt(n);else{if(it(),z(""),!s&&!a&&e!==n)return o(n+" "),void U(e=>e+1);A?.add(n),Pe(-1),Ie(""),o(""),U(e=>e+1),u?.(n)}},[u,o,e,A,Tt,it]),Pt=ht(()=>{it(),z(""),Pe(-1),Ie(""),U(e=>e+1)},[it]),Mt=ht(e=>{Ae.current=e,Te.current=void 0},[]),It=ut(()=>formatSlashCommandInputHint({value:e,selectedCommand:G?q:null}),[e,G,q]),At=Boolean(It)&&!x,Rt=ut(()=>{const n=ot&&("OPEN"===ot.state||"MERGED"===ot.state);return"auto-accept"===P||"plan"===P||"bypass"===P||"dont-ask"===P||Je||n?!B:!B&&0===e.length&&!W},[B,e,W,P,Je,ot]),Lt=null!==ne,Ot=__name(()=>B||a||G?0:At||Rt||x||W?3:4,"getBottomMargin");return ct.createElement(tt,{width:"100%",flexDirection:"column",marginBottom:Ot()},ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(nt,{color:W?XO.GREEN:XO.GRAY},vt.line.repeat(et)),(()=>{const n=__name(n=>ct.createElement(TextInput,{key:$,value:e,placeholder:Oe?_("saveAndCloseTheEditorToContinue","Save and close the editor to continue..."):s,onChange:wt,showCursor:!Oe&&r,onCursorChange:Mt,initialCursor:Te.current,prefix:`${W?"!":vt.pointer} `,prefixColor:W?XO.GREEN:XO.WHITE,singleLine:n?.singleLine,maxWidth:n?.maxWidth,imageTokenLinks:Ge,isRecognizedSlashCommand:qe,disablePasteRouting:!0}),"renderTextInput"),o=G?"/model"===q&&T?getModelHintText(T):It:null,a=o?getCommandHintLayout({text:o,terminalWidth:et}):null;return a?ct.createElement(tt,{flexDirection:"row",width:"100%"},ct.createElement(tt,{width:25},n({singleLine:!0,maxWidth:25})),ct.createElement(tt,{width:a.descriptionWidth},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},a.text))):n()})(),ct.createElement(nt,{color:W?XO.GREEN:XO.GRAY},vt.line.repeat(et))),B&&ct.createElement(nj,{pasteKeyAdvice:ce}),a&&ct.createElement(VB,{onSelectFile:Ct,onClose:bt,searchQuery:c}),G&&ct.createElement(TD,{onSelectCommand:Et,onInsertCommand:Tt,onSubmitSearch:kt,onClose:Pt,searchQuery:K,onSelectedCommandChange:Y}),!G&&!a&&At&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},It)),!G&&!a&&!At&&(Rt||x||Lt)&&ct.createElement(ZB,{termWidth:et,indicatorText:getIdeInputIndicatorText(Je,Ye,et),isIDEIndicator:hasIdeInputIndicatorContext(Je,Ye),permissionMode:P,prInfo:ot,contextUsage:m,tasteLearningOn:p,byokSession:isByok({model:T??""}),phaseModel:g,connectionIndicator:Xe,pendingExitKey:x,updateStatus:k,updateFailedInfo:C,currentProvider:b,showProviderInfo:E,isBashMode:W,shareInfo:f,showShareNotification:y,unshareNotificationMessage:v,tasteNotificationMessage:S,creditWarning:w,hasStashedPrompt:Lt,backgroundTasksArmed:Se,pasteKeyHint:null!==ue&&0===ee.length?de:null}),De&&ct.createElement(tt,{paddingLeft:1,flexDirection:"column"},ct.createElement(nt,{color:XO.YELLOW},De)),!De&&re&&ct.createElement(tt,{paddingLeft:1},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},re)),F)},"InputBox");Jt(),hL();var rj=__name(()=>{const[e,n]=mt([]);return gt(()=>subscribeModStatus(n),[]),0===e.length?null:ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{wrap:"truncate"},e.map(e=>e.text).join(" ")))},"ModStatusLine");Jt(),hL();var sj=__name(({messages:e})=>{const{t:n}=xt(),o=countVisibleQueuedMessages(e);if(0===o)return null;const r=getQueuedDisplayRows(e);return ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(tt,{marginBottom:0},ct.createElement(nt,{color:nD,inverse:!0},n("queued"," Queued ({{v0}}) ",{v0:o}))),r.map(e=>ct.createElement(tt,{key:e.text},ct.createElement(nt,{color:XO.DIM},vt.pointerSmall," "),ct.createElement(nt,{color:XO.DIM},truncateString2({text:e.count>1?`${e.text} (${e.count})`:e.text,maxChars:80})))))},"QueuedMessages");function useWorkedDuration(e,n){const o=pt(null),[r,s]=mt(null);return gt(()=>{o.current=null,s(null)},[n]),gt(()=>{if(e)return o.current??=Date.now(),void s(null);null!==o.current&&(s(Date.now()-o.current),o.current=null)},[e]),r}function WorkedDurationNote({durationMs:e}){const{t:n}=xt();return null===e||e<1e3?null:ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},n("workedFor","{{v0}} Worked for {{v1}}",{v0:"✻",v1:formatElapsedMs(e)})))}Jt(),hL(),__name(useWorkedDuration,"useWorkedDuration"),__name(WorkedDurationNote,"WorkedDurationNote");var aj=ct.memo(({queuedMessages:e,isProcessing:n,processingStartedAt:o=null,executionState:r,status:s,input:a,setInput:i,onSubmit:l,showFileList:c,setShowFileList:d,fileSearchQuery:u,setFileSearchQuery:m,onCommand:p,outputTokens:g=0,contextUsage:h,tasteLearningOn:f,tasteUsage:y,shareInfo:v,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:C,updateFailedInfo:b,creditWarning:T,currentProvider:E,currentModel:P,phaseModel:M,showProviderInfo:I,permissionMode:A,onToggleAutoAccept:x,hintMessage:R,historyManager:L,pendingExitKey:O,onResetPendingExitKey:D,onDoubleEscapeEmpty:N,retryAttempt:F,onAltP:_,inputActive:$=!0,inactiveHint:U,sessionId:B})=>{const[j,W]=mt(()=>null===o?0:Date.now()-o),H=pt(a),G=n||r.isExecuting,V=useSandboxWaiting(),K=n&&isSandboxMode()&&isSandboxConnecting(),z=useWorkedDuration(G&&!K,B);return gt(()=>{O&&a!==H.current&&a.length>0&&D?.(),H.current=a},[a,O,D]),gt(()=>{if(!n||null===o)return void W(0);W(Date.now()-o);const e=setInterval(()=>{W(Date.now()-o)},1e3);return()=>{clearInterval(e)}},[n,o]),ct.createElement(tt,{flexDirection:"column"},ct.createElement(sj,{messages:e}),ct.createElement(tt,{flexDirection:"row",justifyContent:"space-between"},ct.createElement(tt,{flexDirection:"column"},K&&ct.createElement(ConnectSteps,null),V&&!K&&!G&&ct.createElement(ShimmerLine,{text:`${V}…`,icon:!0}),G&&!K&&null===F&&ct.createElement(NB,{tokens:g,timeElapsed:j,status:r.isExecuting?t("executing2","Executing: {{v0}}",{v0:r.currentCommand}):s}),!G&&ct.createElement(WorkedDurationNote,{durationMs:z}),G&&!K&&null===F&&R&&ct.createElement(tt,{marginLeft:1},ct.createElement(nt,{color:XO.DIM}," ","⎿"," ",t("tip","Tip:")," ",R)))),$?ct.createElement(oj,{input:a,setInput:i,onSubmit:l,placeholder:t("askYourQuestion","Ask your question..."),showFileList:c,setShowFileList:d,fileSearchQuery:u,setFileSearchQuery:m,onCommand:p,contextUsage:h,tasteLearningOn:f,tasteUsage:y,shareInfo:v,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:C,updateFailedInfo:b,creditWarning:T,currentProvider:E,currentModel:P,phaseModel:M,showProviderInfo:I,permissionMode:A,onToggleAutoAccept:x,hintMessage:R,historyManager:L,pendingExitKey:!O||n||r.isExecuting?null:O,onDoubleEscapeEmpty:N,onAltP:_,isProcessing:n,footer:ct.createElement(rj,null)}):ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{marginLeft:1},ct.createElement(zN,null,U??t("backgroundFocusedToSelectEnterToViewXToStopEscToGoBackToFeed","Background focused · ↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed"))),ct.createElement(rj,null)))});Jt(),hL();var{addDirectory:ij,formatDirectoryForDisplay:lj,getAdditionalDirectories:cj,removeAdditionalDirectory:dj}=Av,uj=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt(""),[s,a]=mt(null),[i,l]=mt([]),[c,d]=mt(()=>cj()),[u,m]=mt(()=>({zone:"input",suggestionIndex:0,activeDirIndex:0})),[p,g]=mt(0);gt(()=>{l(o?getDirectorySuggestions(o):[]),m(e=>({...e,zone:"input"})),g(0)},[o]),gt(()=>{if(!s||"success"!==s.tone)return;const e=setTimeout(()=>{a(null)},5e3);return()=>clearTimeout(e)},[s]);const h=__name(e=>{const o=ij(e);"error"!==o.status?"skipped"!==o.status?(a({tone:"success",text:n("addedToDirectoryScope","Added {{v0}} to directory scope",{v0:o.displayPath})}),r(""),d(cj()),m({zone:"input",suggestionIndex:0,activeDirIndex:0})):a({tone:"warning",text:o.message}):a({tone:"error",text:o.message})},"submitPath"),f=__name(e=>{if(!dj(e))return a({tone:"error",text:n("isNoLongerInWorkspaceScope","{{v0}} is no longer in workspace scope",{v0:lj(e)})}),void d(cj());a({tone:"success",text:n("removedFromDirectoryScope","Removed {{v0}} from directory scope",{v0:lj(e)})}),d(cj()),m(e=>{if("active-dir"!==e.zone)return e;const n=Math.max(0,e.activeDirIndex-1);return{...e,activeDirIndex:n}})},"handleRemove");at((n,o)=>{if(o.escape)e();else{if(o.return)return"suggestions"===u.zone&&i[u.suggestionIndex]?void h(i[u.suggestionIndex]):void 0;if((o.delete||o.backspace)&&"active-dir"===u.zone&&c[u.activeDirIndex])f(c[u.activeDirIndex]);else{if(o.tab&&i.length>0){const e=i[u.suggestionIndex]??i[0];return void(e&&(r(e),m(e=>({...e,zone:"input"})),a(null)))}o.downArrow?m(e=>moveAddDirFocusDown(e,{suggestionCount:i.length,activeDirCount:c.length})):o.upArrow&&m(e=>moveAddDirFocusUp(e,{suggestionCount:i.length,activeDirCount:c.length}))}}}),gt(()=>{"suggestions"===u.zone&&g(e=>getAdjustedSuggestionOffset({selectedIndex:u.suggestionIndex,currentOffset:e,maxVisible:rL,totalSuggestions:i.length}))},[u,i.length]),gt(()=>{m(e=>"suggestions"===e.zone&&e.suggestionIndex>=i.length?{...e,zone:"input",suggestionIndex:Math.max(0,i.length-1)}:"active-dir"===e.zone&&e.activeDirIndex>=c.length?{...e,zone:"input",activeDirIndex:Math.max(0,c.length-1)}:e)},[i.length,c.length]);const y=i.slice(p,p+rL),v=getAddDirFooterText({focusZone:u.zone});return ct.createElement(oF,{title:n("addDirectoryToWorkspace","Add directory to workspace"),subtitle:ct.createElement(nt,{color:XO.GRAY},n("commandCodeWillBeAbleToReadFilesInThisDirectoryAndMakeEditsWhenAcceptEditsModeIsOn","Command Code will be able to read files in this directory and make edits when accept edits mode is on.")),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},ct.createElement(BracketedText,{text:v,color:XO.DIM})),gapAfterHeader:!1},ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},n("addedDirectories","Added directories")),0===c.length?ct.createElement(nt,{color:XO.GRAY}," ",n("noneYet","None yet")):c.map((e,n)=>{const o="active-dir"===u.zone&&u.activeDirIndex===n;return ct.createElement(tt,{key:e},ct.createElement(nt,null," "),ct.createElement(s$,{isSelected:o}),ct.createElement(a$,{isSelected:o,isActive:!0}," ",lj(e)))})),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{bold:!0,color:XO.WHITE},n("path","Path"))),ct.createElement(tt,null,ct.createElement(TextInput,{value:o,focus:"input"===u.zone,prefix:`${"input"===u.zone?vt.pointer:" "} `,prefixColor:"input"===u.zone?ZN:XO.GRAY,onChange:e=>{r(e),a(null)},onSubmit:h})),!o&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},n("examplesSharedDocsAbsPath","Examples: ../shared ~/docs /abs/path"))),s&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:{error:XO.RED,warning:XO.YELLOW,success:XO.GREEN}[s.tone]},s.text)),i.length>0&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.GRAY},n("suggestions","Suggestions")),y.map((e,n)=>{const o=p+n,r="suggestions"===u.zone&&u.suggestionIndex===o;return ct.createElement(tt,{key:e},ct.createElement(nt,null," "),ct.createElement(s$,{isSelected:r}),ct.createElement(a$,{isSelected:r,idleColor:XO.GRAY}," ",e))})))},"AddDirModal");Jt(),hL();var mj=__name(()=>[{label:t("completeBrief","Complete brief"),desc:t("ifTheTargetGoalAudienceOrArtifactIsClearActWithoutAsking","If the target, goal, audience, or artifact is clear, act without asking.")},{label:t("composition","Composition"),desc:t("chooseLayoutFromTheWorkPatternMonitorOperateCompareConfigureLearnDecideOrExplore","Choose layout from the work pattern: monitor, operate, compare, configure, learn, decide, or explore.")},{label:t("scope","Scope"),desc:t("broadPromptsGetTheFullModePassNarrowPromptsStayNarrow","Broad prompts get the full mode pass. Narrow prompts stay narrow.")},{label:t("truth","Truth"),desc:t("onlyClaimChangesThatExistInFilesAndAreVisibleOrVerifiable","Only claim changes that exist in files and are visible or verifiable.")},{label:t("templates","Templates"),desc:t("designHtmlAndReportHtmlAreDocumentationTemplatesNotUiInspiration","design-html and report-html are documentation templates, not UI inspiration.")},{label:t("reports","Reports"),desc:t("followUpModesReadMarkdownReportsApplyRelevantFindingsThenStillRunTheirOwnFullModePass","Follow-up modes read markdown reports, apply relevant findings, then still run their own full mode pass.")}],"DESIGN_GUIDE_RULES"),pj=['/design redesign "Make this dashboard feel like an operator console"','/design motion "Animate the whole page and add missing interactions"','/design checkup "Audit this UI and generate the design report"','/design "Build a landing page for a privacy-first contract review tool"'],gj=__name(({onCancel:e})=>{const{t:n}=xt();return at((n,o)=>{o.escape&&e()}),ct.createElement(tt,{flexDirection:"column",paddingLeft:2,paddingRight:2},ct.createElement(tt,{marginBottom:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("use","Use")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n("designLtModeGtQuotTargetOrRequestQuot",'/design <mode> "target or request"')),ct.createElement(nt,{color:XO.DIM},n("designQuotFreeformRequestQuotAlsoWorksTheClosestModeIsInferred",'/design "freeform request" also works. The closest mode is inferred.')))),ct.createElement(tt,{marginBottom:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("modes","Modes")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},tv.map(e=>ct.createElement(tt,{key:e.name,columnGap:2},ct.createElement(tt,{width:18,flexShrink:0},ct.createElement(nt,{color:XO.CYAN},"/design ",e.name)),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},translateUiCopy(e.description))))))),ct.createElement(tt,{marginBottom:1,marginTop:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("workingRules","Working rules")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},mj().map(e=>ct.createElement(tt,{key:e.label,columnGap:2},ct.createElement(tt,{width:16,flexShrink:0},ct.createElement(nt,{color:XO.CYAN},e.label)),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},e.desc)))))),ct.createElement(tt,{marginBottom:1,marginTop:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("quickExamples","Quick examples:")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},pj.map(e=>ct.createElement(nt,{key:e,color:XO.DIM},e)))),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},n("pressEscToCloseTypeDesignHelpAnytimeToReturn","Press Esc to close. Type /design help anytime to return."))))},"DesignGuide");Jt(),hL();var hj=FN.map(e=>({label:_N[e].label,value:e,description:_N[e].description})),fj=__name(({onSelect:e,onCancel:n,onboarding:o=!1,disabled:r=!1})=>{const{t:s}=xt(),[a]=mt(()=>getCliLanguage()),i=ut(()=>hj.map(e=>({...e})),[]),l=__name(n=>{if(r)return;const o=i.find(e=>e.value===n.value);o&&e(o.value)},"handleSelect");at((e,o)=>{o.escape&&!r&&n()});const c=i.findIndex(e=>e.value===a),d=i.find(e=>e.value===a)?.label??a;return ct.createElement(oF,{title:o?"Choose a language / 选择语言":s("selectLanguage","Select a language"),subtitle:o?"Command Code · English / 简体中文":s("languageSubtitle",{defaultValue:"Choose the language for Command Code's interface · currently {{label}}",label:d}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},o?"↑/↓ · Enter confirm / 确认 · Esc skip / 跳过":s("pressEscToCancel","Press Esc to cancel"))},ct.createElement(SelectInput,{isFocused:!r,items:i,onSelect:l,initialIndex:c>=0?c:0,indicatorComponent:s$,itemComponent:({isSelected:e,label:n})=>{const o=i.findIndex(e=>e.label===n),r=i[o],s=r?.value===a,l=o===i.length-1;return ct.createElement(tt,{flexDirection:"column",marginBottom:l?0:1},ct.createElement(tt,null,ct.createElement(a$,{isSelected:e,isActive:s,idleColor:XO.DIM},` ${o+1}. ${r?.label??n}`),s&&ct.createElement(l$,null)),ct.createElement(c$,null,r?.description??""))}}))},"LanguageSelector");Jt();var yj=__name(({onComplete:e,onCancel:n})=>{const{t:o}=xt(),{authState:r,statusMessage:s,browserUrl:a,apiKeyInput:i,setApiKeyInput:l,handleApiKeySubmit:c,cancel:d}=useAuthFlow({onSuccess:__name((n,r)=>{const s=n.userName&&n.userName!==o("apiKey2","API Key")&&n.userName!==o("manualApiKey","Manual API Key")?n.userName:"",a=s?o("loggedInAs","Logged in as {{v0}}",{v0:s}):o("loggedInSuccessfully","Logged in successfully");e(!0,a)},"onSuccess"),onFailure:__name((n,o)=>{e(!1,o)},"onFailure"),onCancel:__name(()=>{n()},"onCancel")});return at((e,n)=>{n.ctrl&&"c"===e&&d()}),ct.createElement(sF,{authState:r,statusMessage:s,browserUrl:a,apiKeyInput:i,setApiKeyInput:l,handleApiKeySubmit:c})},"LoginOverlay");function getStatusTextColor(e){return"connected"===e?XO.GREEN:"connecting"===e||"authenticated"===e?XO.CYAN:"requires_auth"===e?XO.YELLOW:XO.GRAY}Jt(),hL(),__name(getStatusTextColor,"getStatusTextColor");var vj=__name((e,n)=>{const o=__name((e,o)=>ct.createElement(nt,{color:e,backgroundColor:n},o),"icon");return"connected"===e?o(XO.GREEN,vt.tick):"connecting"===e?o(XO.CYAN,vt.circle):"authenticated"===e?o(XO.CYAN,vt.tick):"requires_auth"===e?o(XO.YELLOW,vt.warning):"error"===e?o(XO.RED,vt.cross):o(XO.GRAY,vt.circle)},"getStatusIcon"),Sj=__name(({onClose:e,mcp:n})=>{const{t:o}=xt(),[r,s]=mt([]),[a,i]=mt(!0),[l,c]=mt(0),[d,u]=mt("list"),[m,p]=mt(null),[g,h]=mt(0),f=useTerminalHeight(),y=ht(async()=>{try{const e=await listMcpServers(),o=n?mcpManagerConnectionsFromRegistry(n):mcpManagerConnectionsFromPool(getConnectedMcpServers()),r=await buildMcpManagerServerInfos({configuredServers:e,connectedServers:o,hasTokens:hasTokens});s([...r])}catch{}finally{i(!1)}},[n]);gt(()=>{y()},[y]),gt(()=>{if(n)return n.onChange(()=>{y()})},[n,y]);const v=ut(()=>[...orderMcpManagerServers(r)],[r]),S=v[l]??null,w=f-1,k=ut(()=>new Set(v.map(e=>e.scope)).size,[v]),C=Math.max(4,w-8-2*k);gt(()=>{h(e=>clampScrollOffset({cursor:l,total:v.length,maxVisible:C,currentOffset:e}))},[l,v.length,C]),at((n,o)=>{if(o.ctrl&&"c"===n)e();else{if(o.escape)return"actions"===d||"confirm-remove"===d?(u("list"),void p(null)):void e();if("list"===d){if(o.upArrow&&(c(e=>Math.max(0,e-1)),p(null)),o.downArrow){if(0===v.length)return;const e=Math.max(0,v.length-1);c(n=>Math.min(e,n+1)),p(null)}o.return&&S&&(u("actions"),p(null))}}});const b=__name(async e=>{if(S)if("back"!==e.value)if("connected"!==e.value)if("authenticated"!==e.value)if("connect"!==e.value)if("auth"!==e.value)if("remove"!==e.value)if("disable"!==e.value)if("enable"!==e.value);else{p({text:o("enabling","Enabling {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:S.name,enabled:!0,scope:S.scope}))return void p({text:o("failedToEnableServerMayNoLongerExistInScope","{{v0}} Failed to enable {{v1}}, server may no longer exist in {{v2}} scope",{v0:vt.cross,v1:S.name,v2:S.scope}),color:XO.YELLOW});await y(),p({text:o("enabled","{{v0}} Enabled {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN})}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else{p({text:o("disabling","Disabling {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:S.name,enabled:!1,scope:S.scope}))return void p({text:o("failedToDisableServerMayNoLongerExistInScope","{{v0}} Failed to disable {{v1}}, server may no longer exist in {{v2}} scope",{v0:vt.cross,v1:S.name,v2:S.scope}),color:XO.YELLOW});await disconnectMcpServer({name:S.name,registry:n}),await y(),p({text:o("disabled","{{v0}} Disabled {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN})}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else u("confirm-remove");else{p({text:o("authenticating","Authenticating {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{const e=await runMcpServerAuthFlow({serverName:S.name,config:S.config,connectAfterAuth:__name(({name:e})=>connectMcpServer({name:e,registry:n}),"connectAfterAuth")});if("unsupported"===e.kind)return void p({text:e.message,color:XO.YELLOW});"success"===e.kind?(p({text:o("authenticatedWith","{{v0}} Authenticated with {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN}),await y()):p({text:o("authFailed","{{v0}} Auth failed: {{v1}}",{v0:vt.cross,v1:e.message}),color:XO.RED})}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else{p({text:o("connecting","Connecting {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{await connectMcpServer({name:S.name,registry:n}),p({text:o("connectedTo","{{v0}} Connected to {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN}),await y()}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else p({text:o("alreadyAuthenticated","Already authenticated"),color:XO.GREEN});else p({text:o("alreadyConnected","Already connected"),color:XO.GREEN});else u("list")},"handleActionSelect"),T=__name(async e=>{if(S)if("yes"===e.value)try{"connected"===S.status&&await disconnectMcpServer({name:S.name,registry:n}),await removeMcpServer({name:S.name,scope:S.scope}),u("list"),await y(),c(e=>Math.min(e,Math.max(0,v.length-2)))}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED}),u("actions")}else u("actions")},"handleRemoveConfirm");if(a)return ct.createElement(oF,{title:o("manageMcpServers","Manage MCP servers")},ct.createElement(nt,{color:XO.DIM},o("loading2","Loading...")));if("confirm-remove"===d&&S)return ct.createElement(oF,{title:o("remove","Remove {{v0}}?",{v0:S.name}),titleColor:XO.RED,hint:o("navigateEnterToSelectEscToCancel","↑↓ navigate · Enter to select · Esc to cancel")},ct.createElement(nt,{color:XO.DIM},o("thisWillRemoveTheServerFrom","This will remove the server from")," ",S.scope," ",o("config2","config.")),ct.createElement(tt,{marginTop:1},ct.createElement(SelectInput,{items:[{label:o("yesRemove","Yes, remove"),value:"yes"},{label:o("cancel2","Cancel"),value:"no"}],onSelect:T,indicatorComponent:m$,itemComponent:u$})));if("actions"===d&&S){const e=buildMcpManagerActionItems(S);return ct.createElement(oF,{title:S.name,hint:o("navigateEnterToSelectEscToGoBack","↑↓ navigate · Enter to select · Esc to go back")},ct.createElement(tt,null,vj(S.status),ct.createElement(nt,{color:XO.DIM}," ",getMcpManagerStatusText(S))),ct.createElement(tt,{marginTop:1},ct.createElement(SelectInput,{items:[...e],onSelect:b,indicatorComponent:m$,itemComponent:u$})),m&&ct.createElement(tt,{marginTop:1},m.loading&&ct.createElement(nt,{color:m.color},ct.createElement(Et,{type:"dots"})," "),ct.createElement(nt,{color:m.color},m.text)))}let E=null;const P=g,M=g+C,I=v.slice(P,M),A=v.length>C;return ct.createElement(oF,{title:o("manageMcpServers","Manage MCP servers"),hint:0===r.length?o("escToClose","Esc to close"):o("navigateEnterToSelectEscToClose","↑↓ navigate · Enter to select · Esc to close")},ct.createElement(nt,{color:XO.DIM},r.length," ",translateUiCopy(1===r.length?"server":"servers")),0===r.length?ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},o("noMcpServersConfigured","No MCP servers configured.")),ct.createElement(nt,{color:XO.DIM},o("use2",'Use "'),getBinaryCommand()," ",o("mcpAddToAddAServer",'mcp add" to add a server.')),ct.createElement(_D,{url:"https://commandcode.ai/docs/mcp",text:o("viewMcpDocs","View MCP Docs ↗"),color:XO.CYAN,dimColor:!0})):ct.createElement(tt,{marginTop:1,flexDirection:"column"},I.map((e,n)=>{const o=P+n,r=e.scope!==E;E=e.scope;const s=o===l;return ct.createElement(ct.Fragment,{key:e.name},r&&ct.createElement(tt,{marginTop:0===n?0:1},ct.createElement(nt,{bold:!0},getMcpManagerScopeLabel(e.scope)),ct.createElement(nt,{color:XO.DIM}," ","(",getMcpManagerScopePath(e.scope),")")),ct.createElement(tt,null,ct.createElement(nt,{color:s?XO.WHITE:void 0,backgroundColor:s?kD:void 0,bold:s},e.name),ct.createElement(nt,{color:XO.DIM,backgroundColor:s?kD:void 0}," · "),vj(e.status,s?kD:void 0),ct.createElement(nt,{color:getStatusTextColor(e.status),backgroundColor:s?kD:void 0}," ",getMcpManagerStatusText(e)," ")))})),A&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},o("showing","Showing")," ",P+1,"–",Math.min(M,v.length)," ",o("of","of")," ",v.length,P>0?o("more3"," · ↑ more"):"",M<v.length?o("more4"," · ↓ more"):"")),m&&ct.createElement(tt,{marginTop:1},m.loading&&ct.createElement(nt,{color:m.color},ct.createElement(Et,{type:"dots"})," "),ct.createElement(nt,{color:m.color},m.text)))},"McpManager");Jt(),hL();var wj=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt([]),[s,a]=mt(0),[i,l]=mt(!0),[c,d]=mt(null);gt(()=>{__name(async()=>{try{const e=await discoverCommandMemoryFiles(process.cwd());r(e),l(!1)}catch(e){d(e instanceof Error?e.message:n("failedToDiscoverMemoryFiles","Failed to discover memory files")),l(!1)}},"loadMemoryFiles")()},[]);const u=__name(async o=>{try{await openMemoryFileInEditor(o.path,{logError:__name(e=>console.error(e),"logError")}),e()}catch(o){console.error(n("errorOpeningMemoryFilePleaseEnsureYouHaveAnEditorSetUp","Error opening memory file. Please ensure you have an editor set up.")),e()}},"handleOpenInEditor"),m=filterEditableMemoryLocations(o);if(at((n,o)=>{o.escape?e():o.upArrow?a(e=>Math.max(0,e-1)):o.downArrow?a(e=>Math.min(m.length-1,e+1)):(o.return&&m[s]&&u(m[s]),"1"===n&&m[0]&&u(m[0]),"2"===n&&m[1]&&u(m[1]))}),i)return ct.createElement(oF,{title:n("selectMemoryToEdit","Select memory to edit:")},ct.createElement(nt,{color:XO.DIM},n("loadingMemoryFiles","Loading memory files...")));if(c)return ct.createElement(oF,{title:n("selectMemoryToEdit","Select memory to edit:")},ct.createElement(nt,{color:XO.RED},vt.cross," ",c));const p=projectMemorySelectorOptions(m);return ct.createElement(oF,{title:n("selectMemoryToEdit","Select memory to edit:"),hint:n("toNavigateEnterToEditEscToCancel","↑/↓ to navigate · enter to edit · esc to cancel")},ct.createElement(tt,{columnGap:4},ct.createElement(tt,{flexDirection:"column"},p.map((e,n)=>ct.createElement(tt,{key:e.label},ct.createElement(s$,{isSelected:s===n}),ct.createElement(a$,{isSelected:s===n,idleColor:tF}," ",e.label)))),ct.createElement(tt,{flexDirection:"column"},p.map((e,n)=>ct.createElement(a$,{key:e.label,isSelected:s===n,idleColor:tF},e.description)))))},"MemorySelector");Jt(),hL();var kj=__name(()=>[{label:t("compactNormalDefault","Compact Normal (default)"),value:"default",description:t("summarizeSessionWhenContextLimitReached","Summarize session when context limit reached.")},{label:t("compactFast","Compact Fast"),value:"fast",description:t("fastTieredCompactionHigherQualityUsesMoreTokens","Fast tiered compaction. Higher quality, uses more tokens.")}],"COMPACT_MODE_OPTIONS"),Cj=__name(({onSelect:e,onCancel:n})=>{const{t:o}=xt(),[r,s]=mt(null);gt(()=>{loadUserConfig().then(e=>{s(e.compactMode??"default")})},[]);const a=__name(n=>{e(n.value)},"handleSelect");if(at((e,o)=>{o.escape&&n()}),null===r)return null;const i=kj().findIndex(e=>e.value===r);return ct.createElement(oF,{title:o("selectACompactModeToCompactSessions","Select a compact mode to compact sessions"),subtitle:o("chooseHowCommandCodeHandlesAutomaticContextCompaction","Choose how Command Code handles automatic context compaction."),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},o("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",o("toCancel","to cancel"))},ct.createElement(SelectInput,{items:kj(),onSelect:a,initialIndex:i>=0?i:0,indicatorComponent:m$,itemComponent:({isSelected:e,label:n})=>{const o=kj().find(e=>e.label===n),s=o?.value===r,a=kj().findIndex(e=>e.label===n);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(d$,{isSelected:e,idleColor:s?XO.GREEN:XO.WHITE,bold:e||s},` ${a+1}. ${o?.label??n} `),s&&ct.createElement(l$,null)),ct.createElement(d$,{isSelected:e,idleColor:XO.DIM,bold:!1},` ${o?.description??""} `))}}))},"CompactModeSelector");Jt(),hL(),Jt(),hL();var bj=__name((e,n)=>`${e+1}. ${n}`,"labelText"),Tj=__name(({modelLabel:e,supportedEfforts:n,currentEffort:o,onSelect:r,onCancel:s})=>{const{t:a}=xt(),i=ut(()=>buildEffortPickerRows(n).map(e=>({...e,label:translateUiCopy(e.label),description:translateUiCopy(e.description)})),[n,a]),l=ut(()=>{if(void 0===o)return 0;const e=i.findIndex(e=>e.value===o);return e>=0?e:0},[i,o]),c=ut(()=>Math.max(...i.map((e,n)=>Be(bj(n,e.label))))+4,[i]),{cursor:d}=useListNavigation({items:i,onSelect:__name(e=>r(e.value),"onSelect"),onCancel:s,initialIndex:l,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,selectByNumber:!0});return ct.createElement(oF,{title:a("selectReasoningEffortFor","Select reasoning effort for {{v0}}",{v0:e}),hint:a("navigateEnterToSelectEscToGoBack2","↑/↓ navigate · enter to select · esc to go back")},ct.createElement(tt,{flexDirection:"column"},i.map((e,n)=>{const r=n===d,s=e.value===o;return ct.createElement(tt,{key:e.label},ct.createElement(nt,{color:r||!s?XO.WHITE:XO.GREEN,backgroundColor:r?kD:void 0,bold:r||s},bj(n,e.label)," ".repeat(c-Be(bj(n,e.label)))),ct.createElement(nt,{color:r?XO.WHITE:XO.DIM,backgroundColor:r?kD:void 0},e.description," "),s&&ct.createElement(nt,{color:XO.GREEN}," ",vt.tick))})))},"ReasoningEffortSelector"),Ej=__name(({currentModel:e,onClose:n,refreshBanner:o,sessionId:r})=>{const s=(r?hO(r)?.getActiveModel?.():void 0)??e,a=customReasoningEfforts(s)??getSupportedEfforts(s)??[],i=findModelById(s)?.label??XL(s),l=pt(!1),c=__name(e=>{if(l.current)return;l.current=!0;const a=r?hO(r):void 0,i=getReasoningEffort(s),c=a?.getActiveEffort?.()??i;(async()=>{try{if(e===i&&e===c)return;const n=await tellSandboxEffort({effort:e});if(!n.ok)return void dlog(`[Effort] ${n.message}`);if(e!==i&&(await setReasoningEffort({modelId:s,effort:e}),o()),void 0===e||e===c)return;a?.recordEffortChange({model:s,effort:e})}catch(e){dlog(`[Effort] Failed to persist reasoning effort: ${e}`)}finally{n()}})()},"handleSelect"),d=__name(()=>{l.current||n()},"handleCancel");return ct.createElement(Tj,{modelLabel:i,supportedEfforts:a,currentEffort:getReasoningEffort(s),onSelect:c,onCancel:d})},"EffortSelector");function createBillingTransport(){const e=createApiClient({baseUrl:getApiBaseUrl()});return{get:__name(({route:n})=>e.get({endpoint:n}),"get"),post:__name(({route:n,body:o})=>e.post({endpoint:n,body:o}),"post"),postMultipart:__name(()=>Promise.reject(new Error("billing transport does not upload multipart")),"postMultipart"),delete:__name(({route:n})=>e.delete({endpoint:n}),"delete"),postStream:__name(()=>Promise.reject(new Error("billing transport does not stream")),"postStream")}}Jt(),hL(),Jt(),hL(),__name(createBillingTransport,"createBillingTransport");var Pj=null;function getBilling(){return Pj||(Pj=createBilling({transport:createBillingTransport()})),Pj}function getCachedBillingContext(){return Pj?.getCached()??null}function getBillingContext(){return getBilling().get()}function prefetchBillingContext(){getBilling().prefetch()}function invalidateBillingContext(){Pj=null}function buildLaneModelPickerGroups(){const e=filterModelGroupsByRegisteredModules($L).filter(e=>e.providerId!==qr.COMMAND);return[...buildModelPickerGroups({normalModeGroups:UL}),...e,...buildCustomModelPickerGroups()]}function buildCatalogModelPickerGroups(){return[...buildModelPickerGroups({normalModeGroups:UL}),...buildCustomModelPickerGroups()]}function laneServesModel(e){if(e.activeLane===qr.COMMAND)return!0;const n=Us[e.activeLane]?.supportedModelProviders;if(!n)return!0;const o=Object.values(RL).find(n=>n.id===e.modelId);return!o||laneSupportsModel(n,o)}function laneModelCount(e){return e.laneId===qr.COMMAND?UL.reduce((e,n)=>e+n.models.length,0):$L.find(n=>n.providerId===e.laneId)?.models.length??0}function defaultModelForLane(e){const n=filterModelGroupsByRegisteredModules($L),o=n.filter(n=>n.providerId===e.activeLane),r=o.length>0?o:n.filter(e=>e.providerId===qr.COMMAND);return r[0]?.models[0]?.id}async function resolveProviderAuth(e){const n=await Promise.all([...new Set(e)].map(async e=>{const n=getProviderConfig(e);if(!n?.requiresAuth)return null;if(!n.checkAuth)return{providerId:e,authed:!0};try{return{providerId:e,authed:await n.checkAuth()}}catch{return{providerId:e,authed:!1}}})),o=new Set,r=new Set;for(const e of n)e&&(o.add(e.providerId),e.authed||r.add(e.providerId));return{authResolvedProviders:o,unauthedProviders:r}}function useCustomModelsReady(e){const[n,o]=mt(!1);return gt(()=>{let n=!0;return(async()=>{await refreshCustomProviderModels(e?{sessionId:e}:void 0),n&&o(!0)})(),()=>{n=!1}},[e]),n}__name(getBilling,"getBilling"),__name(getCachedBillingContext,"getCachedBillingContext"),__name(getBillingContext,"getBillingContext"),__name(prefetchBillingContext,"prefetchBillingContext"),__name(invalidateBillingContext,"invalidateBillingContext"),Jt(),hL(),__name(buildLaneModelPickerGroups,"buildLaneModelPickerGroups"),__name(buildCatalogModelPickerGroups,"buildCatalogModelPickerGroups"),__name(laneServesModel,"laneServesModel"),__name(laneModelCount,"laneModelCount"),__name(defaultModelForLane,"defaultModelForLane"),Jt(),__name(resolveProviderAuth,"resolveProviderAuth"),Jt(),__name(useCustomModelsReady,"useCustomModelsReady"),Jt(),hL();var Mj=__name((e,n)=>{const o=n&&e.id===DL?t("default2"," (default)"):"",r="free"===e.badge?t("free"," (FREE)"):"";return Be(e.label+o+r)},"renderedLabelLength");function getModelLabelColumnWidth(e,{showDefaultBadge:n=!0}={}){return e.reduce((e,o)=>Math.max(e,Mj(o,n)+2),32)}__name(getModelLabelColumnWidth,"getModelLabelColumnWidth");var Ij=__name(({model:e,providerId:n,isHighlighted:o,isCurrent:r,showProviderLabel:s,showDefaultBadge:a=!0,labelColumnWidth:i=32})=>{const{t:l}=xt(),c=Us[n],d=s??c?.showProviderLabelInSelector??!1,u=e.vendorLabel??NL[e.provider],m=a&&e.id===DL,p="free"===e.badge,g=m?l("default3","{{v0}} (default)",{v0:e.label}):e.label,h=p?l("free"," (FREE)"):"",f=" ".repeat(Math.max(2,i-Be(g+h))),y=o?kD:void 0,v=e.description?`${d?`${u} · `:""}${translateUiCopy(e.description)}`:"",S=useTerminalWidth()>=i+38&&v;return ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:y,color:r?XO.GREEN:XO.WHITE,bold:r},g),p&&ct.createElement(nt,{backgroundColor:y,color:XO.GREEN,bold:!0},h),S&&ct.createElement(nt,{backgroundColor:y},f)),S&&ct.createElement(tt,{flexShrink:1},ct.createElement(nt,{backgroundColor:y,color:XO.DIM,wrap:"truncate-end"},v)),ct.createElement(nt,{backgroundColor:y,color:XO.GREEN},r?` ${vt.tick} `:" "))},"ModelRow");function windowModelGroups(e){const{groups:n,firstSectionBase:o,windowStart:r,windowEnd:s}=e;let a=o;return n.flatMap(e=>{const n=sliceSectionForWindow({section:e.models,sectionBase:a,windowStart:r,windowEnd:s});return a+=e.models.length,n.rows.length>0?[{group:e,groupWindow:n}]:[]})}Jt(),hL(),__name(windowModelGroups,"windowModelGroups");var Aj=__name(({onSelect:e,onCancel:n,currentModel:o,currentProvider:r,planId:s,purchasedCredits:a=0,freeCredits:i=0,refreshBanner:l,subtitle:c,skipEffortStep:d=!1,sessionId:u})=>{const{t:m}=xt(),[p,g]=mt(""),[h,f]=mt(null),[y,v]=mt(()=>new Set),[S,w]=mt(()=>new Set),k=r??h??qr.COMMAND,C=useCustomModelsReady(u),b=ut(()=>buildLaneModelPickerGroups(),[C]),T=ut(()=>filterModelPickerGroupsByAuth({groups:b,authResolvedProviders:S,unauthedProviders:y}),[b,S,y]),E=ut(()=>filterModelPickerGroups(T,p),[T,p]),P=ut(()=>{const e=new Set(T.map(e=>`${e.providerId}:${e.label}`));return b.filter(n=>!e.has(`${n.providerId}:${n.label}`))},[b,T]),M=ut(()=>filterModelPickerGroups(P,p),[P,p]),I=ut(()=>flattenModelPickerGroups(E),[E]),A=ut(()=>{const e=[];let n=0;for(const o of E)o.models.length>0&&e.push(n),n+=o.models.length;return e},[E]),x=ut(()=>getModelLabelColumnWidth(b.flatMap(e=>e.models)),[b,m]),[R,L]=mt(0),O=useTerminalHeight()-1,D=Math.max(4,O-16-2*E.length),N=void 0!==s,F=ut(()=>N?null:getCachedBillingContext(),[N]),[_,$]=mt(F),[U,B]=mt(!N&&!F);gt(()=>{if(N)return;if(_)return;let e=!0;return getBillingContext().then(n=>{e&&($(n),B(!1))}),()=>{e=!1}},[N,_]);const j=!N&&!0===_?.fetchFailed,W=N?s:_?.planId??null,H=N?a:_?.purchasedCredits??0,G=N?i:_?.freeCredits??0,V=o?Math.max(0,I.findIndex(e=>e.model.id===o)):0,[K,z]=mt("model"),[q,Y]=mt(null),{cursor:J,error:Q,setError:X}=useListNavigation({items:I,onSelect:__name(n=>{const o=n.model.reasoningEfforts??getSupportedEfforts(n.model.id);if(!d&&o&&o.length>0)return Y(n),void z("effort");e(n.model.id,n.providerId)},"onSelect"),onCancel:n,initialIndex:V,searchQuery:p,onSearchChange:g,isActive:"model"===K,sectionStarts:A,validate:__name(e=>validateModelPickerSelection({row:e,unauthedProviders:y,accessDataLoading:U,billing:{planId:W,purchasedCredits:H,freeCredits:G},getProviderDisplayName:__name(e=>getProviderConfig(e)?.displayName,"getProviderDisplayName")}),"validate")});gt(()=>{L(e=>clampScrollOffset({cursor:J,total:I.length,maxVisible:D,currentOffset:e}))},[J,I.length,D]);const Z=pt(!1),ee=__name(n=>{if(!q||Z.current)return;Z.current=!0;const{model:r,providerId:s}=q,a=getReasoningEffort(r.id),i=n!==a,c=r.id===o;(async()=>{try{if(i&&(await setReasoningEffort({modelId:r.id,effort:n}),c)){const e=await tellSandboxEffort({effort:n});e.ok||dlog(`[Model] ${e.message}`),l?.()}}catch(e){dlog(`[Model] Failed to persist reasoning effort: ${e}`)}finally{e(r.id,s)}})()},"handleEffortSelect"),te=__name(()=>{Z.current||(Y(null),z("model"))},"handleEffortCancel");if(gt(()=>{if(U)return;if(Q!==$M)return;const e=I[J];X(e&&!j?getModelPickerAccessError({model:e.model,providerId:e.providerId,billing:{planId:W,purchasedCredits:H,freeCredits:G}}):null)},[U,j,Q,X,I,J,W,H,G]),gt(()=>{(async()=>{const e=await getConfiguredProvider();e&&e!==qr.COMMAND&&f(e)})()},[]),gt(()=>{let e=!0;return(async()=>{const n=await resolveProviderAuth(b.map(e=>e.providerId));e&&(w(n.authResolvedProviders),v(n.unauthedProviders))})(),()=>{e=!1}},[b]),"effort"===K&&q){const e=q.model.reasoningEfforts??getSupportedEfforts(q.model.id)??[];return ct.createElement(Tj,{modelLabel:q.model.label,supportedEfforts:e,currentEffort:getReasoningEffort(q.model.id),onSelect:ee,onCancel:te})}const ne=R,oe=R+D,re=windowModelGroups({groups:E,firstSectionBase:0,windowStart:ne,windowEnd:oe}),se=I.length>D;return ct.createElement(oF,{title:m("selectModel2","Select model"),subtitle:c??m("switchBetweenTheAvailableModelsSetsTheDefaultForNewSessionsOtherOpenSessionsAreUnaffected","Switch between the available models. Sets the default for new sessions; other open sessions are unaffected."),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},m("typeToSearchNavigateShiftJumpProviderEnterToSelect","type to search · ↑/↓ navigate · shift+↑/↓ jump provider · enter to select"),p?m("escToClear"," · esc to clear"):m("escToCancel"," · esc to cancel"))},ct.createElement(tt,{marginBottom:2,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:p,resultCount:p?I.length:void 0,placeholder:m("typeToSearchModels","Type to search models...")})),0===I.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},M.length>0?m("providerLoginRequiredRunConnectToAuthenticate","Provider login required. Run /connect to authenticate."):m("noModelsMatch",'No models match "{{v0}}"',{v0:p}))):ct.createElement(tt,{flexDirection:"column"},re.map(({group:e,groupWindow:n},r)=>ct.createElement(tt,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:r>0?1:0},ct.createElement(nt,{bold:!0,dimColor:!0},e.label),n.rows.map((r,s)=>ct.createElement(Ij,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:n.baseIndex+s===J,isCurrent:r.id===o&&e.providerId===k,showProviderLabel:!1,labelColumnWidth:x}))))),se&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},m("showing","Showing")," ",ne+1,"–",Math.min(oe,I.length)," ",m("of","of")," ",I.length,ne>0?m("more3"," · ↑ more"):"",oe<I.length?m("more4"," · ↓ more"):"")),Q&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},Q)))},"ModelSelector");function store(){return createAuthFileCredentialStore({authStore:createCommandAuthFileStore({runtime:createNodeRuntime()})})}async function getCustomProviderKeyState(e){const n=await store().get({provider:e});if("api"===n?.kind&&n.token)return"stored";const o=(await loadProvidersConfig({runtime:createNodeRuntime()})).providers.find(n=>n.id===e);return o?.apiKey?"configured":o?.keyless?"keyless":"missing"}async function getConfiguredKeyReference(e){const n=await loadProvidersConfig({runtime:createNodeRuntime()});return n.providers.find(n=>n.id===e)?.apiKey}async function storeCustomProviderKey(e){await store().set({provider:e.providerId,credential:{kind:"api",token:e.key}})}async function getStoredKeyPreview(e){const n=await store().get({provider:e});if("api"===n?.kind&&n.token)return`${n.token.slice(0,8)}…`}async function getStoredKeyToken(e){const n=await store().get({provider:e});return"api"===n?.kind&&n.token?n.token:void 0}async function clearCustomProviderKey(e){await store().remove({provider:e})}Jt(),hL(),Jt(),hL(),__name(store,"store"),__name(getCustomProviderKeyState,"getCustomProviderKeyState"),__name(getConfiguredKeyReference,"getConfiguredKeyReference"),__name(storeCustomProviderKey,"storeCustomProviderKey"),__name(getStoredKeyPreview,"getStoredKeyPreview"),__name(getStoredKeyToken,"getStoredKeyToken"),__name(clearCustomProviderKey,"clearCustomProviderKey"),Jt(),hL(),Jt();var xj={"@ai-sdk/openai":"openai-responses","@ai-sdk/anthropic":"anthropic-messages","@ai-sdk/openai-compatible":"openai-completions"};function modelOverrides(e){if(!isPlainObject8(e))return{};const n=e.provider;if(!isPlainObject8(n))return{};if("string"!=typeof n.npm)return{};const o=xj[n.npm];if(void 0===o)return;const r="string"==typeof n.api&&n.api.startsWith("https://")&&!n.api.includes("${")?n.api.replace(/\/+$/,""):void 0;return{api:o,...void 0!==r?{baseURL:r}:{}}}function cachePath(){return o(K(),".commandcode","cache","models-dev.json")}function isPlainObject8(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}async function readCache(){try{const e=JSON.parse(await ce(cachePath(),"utf8"));if(!isPlainObject8(e.data))return null;const n=Date.now()-(e.fetchedAt??0);return{data:e.data,fresh:n>=0&&n<864e5}}catch{return null}}async function writeCache(e){try{const n=cachePath();await oe(r(n),{recursive:!0}),await Q(n,JSON.stringify({fetchedAt:Date.now(),data:e}))}catch{}}async function fetchCatalog(e){const n=new AbortController,o=setTimeout(()=>n.abort(),6e3);try{const o=await e("https://models.dev/api.json",{headers:{accept:"application/json"},signal:n.signal});if(!o.ok)return null;const r=await o.json();return isPlainObject8(r)?r:null}catch{return null}finally{clearTimeout(o)}}async function loadCatalog(e){const n=await readCache();if(n?.fresh)return n.data;const o=await fetchCatalog(e);return o?(await writeCache(o),o):n?.data??null}function asPositive(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?e:void 0}function urlParts(e){try{const n=new URL(e);return{host:n.hostname.toLowerCase(),path:n.pathname.replace(/\/+$/,"")||"/"}}catch{return}}function recordContains(e,n){if(e===n)return!0;const o="/"===e?"/":`${e}/`;return n.startsWith(o)}function curateModels(e){return isPlainObject8(e)?Object.entries(e).filter(e=>isPlainObject8(e[1])).filter(([,e])=>"deprecated"!==e.status).filter(([,e])=>{const n=isPlainObject8(e.modalities)?e.modalities.output:void 0;return!Array.isArray(n)||n.includes("text")}).sort(([,e],[,n])=>String(n.release_date??"").localeCompare(String(e.release_date??""))).flatMap(([e,n])=>{const o=modelOverrides(n);if(void 0===o)return[];const r=isPlainObject8(n.limit)?n.limit:void 0;return{id:e,...o,..."string"==typeof n.name&&n.name?{name:n.name}:{},...void 0!==asPositive(r?.context)?{contextWindow:asPositive(r?.context)}:{},...void 0!==asPositive(r?.output)?{maxOutput:asPositive(r?.output)}:{}}}):[]}__name(modelOverrides,"modelOverrides"),__name(cachePath,"cachePath"),__name(isPlainObject8,"isPlainObject"),__name(readCache,"readCache"),__name(writeCache,"writeCache"),__name(fetchCatalog,"fetchCatalog"),__name(loadCatalog,"loadCatalog"),__name(asPositive,"asPositive"),__name(urlParts,"urlParts"),__name(recordContains,"recordContains"),__name(curateModels,"curateModels");var Rj=new Set(["github-copilot","amazon-bedrock","google-vertex","azure"]);async function listModelsDevProviders(e){const n=await loadCatalog(e?.fetchImpl??globalThis.fetch);if(!n)return[];const o=[];for(const[e,r]of Object.entries(n)){if(!isPlainObject8(r))continue;if(Rj.has(e))continue;const n="string"==typeof r.api?r.api:void 0;if(!n||!n.startsWith("https://")||n.includes("${"))continue;const s=e.toLowerCase();o.push({id:"openai"===s||"anthropic"===s?`${s}-api`:s,name:"string"==typeof r.name&&r.name?r.name:e,baseURL:n.replace(/\/+$/,""),wire:"@ai-sdk/anthropic"===r.npm?"anthropic-messages":"openai-completions"})}return o}async function findModelsDevProvider(e){const n=urlParts(e.baseURL);if(!n)return null;const o=await loadCatalog(e.fetchImpl??globalThis.fetch);if(!o)return null;const r=[];for(const[e,s]of Object.entries(o)){if(!isPlainObject8(s))continue;const o="string"==typeof s.api?urlParts(s.api):void 0;o&&o.host===n.host&&r.push({slug:e,record:s,path:o.path})}if(0===r.length)return null;const s=r.filter(e=>recordContains(e.path,n.path)).sort((e,n)=>n.path.length-e.path.length),a=s[0]??(1===r.length?r[0]:void 0);if(!a)return null;if(s.length>1&&s[1]?.path===a.path)return null;const i=curateModels(a.record.models);if(0===i.length)return null;const l=Array.isArray(a.record.env)?a.record.env.find(e=>"string"==typeof e):void 0;return{slug:a.slug,displayName:"string"==typeof a.record.name&&a.record.name?a.record.name:a.slug,...l?{envVar:l}:{},models:i}}__name(listModelsDevProviders,"listModelsDevProviders"),__name(findModelsDevProvider,"findModelsDevProvider"),Jt();var Lj=[{id:"ollama",name:"Ollama (local)",baseURL:"http://localhost:11434/v1",wire:"openai-completions",keyless:!0},{id:"lmstudio",name:"LM Studio (local)",baseURL:"http://127.0.0.1:1234/v1",wire:"openai-completions",keyless:!0}],Oj=[{id:"vercel",name:"Vercel AI Gateway",baseURL:"https://ai-gateway.vercel.sh/v1",wire:"openai-completions"},{id:"groq",name:"Groq",baseURL:"https://api.groq.com/openai/v1",wire:"openai-completions"},{id:"mistral",name:"Mistral",baseURL:"https://api.mistral.ai/v1",wire:"openai-completions"},{id:"xai",name:"xAI",baseURL:"https://api.x.ai/v1",wire:"openai-completions"},{id:"together",name:"Together AI",baseURL:"https://api.together.xyz/v1",wire:"openai-completions"},{id:"cerebras",name:"Cerebras",baseURL:"https://api.cerebras.ai/v1",wire:"openai-completions"},{id:"deepinfra",name:"DeepInfra",baseURL:"https://api.deepinfra.com/v1/openai",wire:"openai-completions"},{id:"perplexity",name:"Perplexity",baseURL:"https://api.perplexity.ai",wire:"openai-completions"}],Dj=/^[a-z0-9._-]+$/;function hostOf2(e){try{return new URL(e).hostname.toLowerCase()}catch{return}}function fallbackProviderSuggestions(){return[...Oj,...Lj]}async function loadProviderSuggestions(e){let n=[];try{n=await listModelsDevProviders(e?.fetchImpl?{fetchImpl:e.fetchImpl}:void 0)}catch{}const o=n.filter(e=>Dj.test(e.id)).map(e=>({id:e.id,name:e.name,baseURL:e.baseURL,wire:e.wire})),r=[],s=new Set;for(const e of fallbackProviderSuggestions()){const n=o.find(n=>n.id===e.id||hostOf2(n.baseURL)===hostOf2(e.baseURL))??e;s.has(n.id)||(r.push(n),s.add(n.id))}return[...r,...o.filter(e=>!s.has(e.id)).sort((e,n)=>e.id.localeCompare(n.id))]}function matchKnownProviders(e){const n=e.query.trim().toLowerCase();return n?e.providers.filter(e=>e.id.startsWith(n)||e.name.toLowerCase().includes(n)).slice(0,e.limit??3):[]}function findKnownProvider(e){const n=e.id.trim().toLowerCase();return e.providers.find(e=>e.id===n)}__name(hostOf2,"hostOf"),__name(fallbackProviderSuggestions,"fallbackProviderSuggestions"),__name(loadProviderSuggestions,"loadProviderSuggestions"),__name(matchKnownProviders,"matchKnownProviders"),__name(findKnownProvider,"findKnownProvider"),Jt();var Nj=["/chat/completions","/completions","/responses","/messages","/models"];function normalizeEndpointInput(e){let n=e.trim().replace(/\/+$/,"");for(const e of Nj)if(n.toLowerCase().endsWith(e))return n=n.slice(0,-e.length).replace(/\/+$/,""),{url:n,stripped:e};return{url:n}}function asPositiveInt(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?Math.floor(e):void 0}function extractModels(e){const n=Array.isArray(e)?e:"object"==typeof e&&null!==e?e.data??e.models:void 0;if(!Array.isArray(n))return[];const o=new Map;for(const e of n){if("string"==typeof e){o.has(e)||o.set(e,{id:e});continue}if("object"!=typeof e||null===e)continue;const n=e,r="string"==typeof n.id?n.id:"string"==typeof n.name?n.name:void 0;if(!r||o.has(r))continue;const s="string"==typeof n.name&&n.name!==r?n.name:void 0,a=asPositiveInt(n.context_length)??asPositiveInt(n.context_window)??asPositiveInt(n.top_provider?.context_length),i=asPositiveInt(n.top_provider?.max_completion_tokens)??asPositiveInt(n.max_output_tokens)??asPositiveInt(n.max_tokens);o.set(r,{id:r,...s?{name:s}:{},...void 0!==a?{contextWindow:a}:{},...void 0!==i?{maxOutput:i}:{}})}return[...o.values()]}async function probeProviderModels(e){const n=e.fetchImpl??globalThis.fetch,o=e.baseURL.replace(/\/+$/,""),r=new AbortController,s=setTimeout(()=>r.abort(),e.timeoutMs??5e3);try{const s=await n(`${o}/models`,{headers:{accept:"application/json",...e.apiKey?{authorization:`Bearer ${e.apiKey}`,"x-api-key":e.apiKey}:{}},signal:r.signal});if(!s.ok)return{ok:!1,models:[],detail:`the endpoint answered ${s.status} on /models`};const a=extractModels(await s.json());return 0===a.length?{ok:!1,models:[],detail:"the endpoint listed no models"}:{ok:!0,models:a}}catch(e){return{ok:!1,models:[],detail:e instanceof Error&&("AbortError"===e.name||r.signal.aborted)?"no answer within 5s":"could not reach the endpoint"}}finally{clearTimeout(s)}}function ProvidersJsonLink({color:e=XO.DIM}){const n=`${K()}/.commandcode/providers.json`;return ct.createElement(_D,{url:`file://${n}`,text:"~/.commandcode/providers.json",color:e})}function toNewProviderModels(e){return e.map(e=>({id:e.id,...e.name?{name:e.name}:{},...void 0!==e.contextWindow?{contextWindow:e.contextWindow}:{},...void 0!==e.maxOutput?{maxOutput:e.maxOutput}:{},...e.api?{api:e.api}:{},...e.baseURL?{baseURL:e.baseURL}:{}}))}function cardKeyLine(e){return"stored"===e.keyState?ct.createElement(nt,null,t("key","key")," ",ct.createElement(nt,{color:XO.GREEN},e.keyPreview)," ",ct.createElement(nt,{color:XO.GREEN},"✓")," ",t("storedInAuthJson","stored in auth.json"),e.configuredReference?t("overrides"," · overrides {{v0}}",{v0:e.configuredReference}):""):"configured"===e.keyState?ct.createElement(nt,null,t("key","key")," ",e.configuredReference??"set"):"keyless"===e.keyState?ct.createElement(nt,null,t("noKeyTheEndpointAsksForNone","no key — the endpoint asks for none")):ct.createElement(nt,{color:XO.YELLOW},t("noKeyYetRequestsFailUntilOneIsAdded","no key yet, requests fail until one is added"))}function cardHints(e){const n=[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"u")," ",t("updateModels","update models")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"d")," ",t("delete","delete")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",t("close","close"))];return"stored"===e?[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",t("save","save")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"r")," ",t("replaceKey","replace key")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"c")," ",t("clear","clear")),...n]:"missing"===e?[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",t("addKey","add key")),...n]:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"r")," ",t("storeKey","store key")),...n]}function CustomProviderKeyEntry({providerId:e,providerName:n,keyState:o,keyPreview:r,configuredReference:s,onClose:a,onOpenModels:i,sessionId:l,onActiveModelOrphaned:c,onDiskDefaultOrphaned:d}){const{t:u}=xt(),[m,p]=mt(""),[g,h]=mt("card"),[f,y]=mt(void 0),[v,S]=mt(!1),[w,k]=mt(void 0),[C,b]=mt(void 0);ct.useEffect(()=>{let n=!0;return(async()=>{const o=(await loadProvidersConfig({runtime:createNodeRuntime()})).providers.find(n=>n.id===e);n&&o&&k({baseURL:o.baseURL,modelCount:o.models.length})})(),()=>{n=!1}},[e]);const T=__name(async()=>{h("removing");try{const n=isByok({model:getConfiguredModel()??"",providerId:e}),o=(await loadUserConfig()).model??"",r=!n&&isByok({model:o,providerId:e});await removeUserProviderEntry({runtime:createNodeRuntime(),id:e}),await clearCustomProviderKey(e),n?(await(c?.()),S(!0)):r&&await(d?.()),await refreshCustomProviderModels(l?{sessionId:l}:void 0),h("removed")}catch(e){y(e instanceof Error?e.message:String(e)),h("error")}},"removeProvider"),E=__name(async()=>{h("updating-models");try{const n=(await loadProvidersConfig({runtime:createNodeRuntime()})).providers.find(n=>n.id===e);if(!n)throw new Error(u("isNotInProvidersJson","'{{v0}}' is not in providers.json",{v0:e}));const o=await findModelsDevProvider({baseURL:n.baseURL}).catch(()=>null);let r,s;if(o&&o.models.length>0)r=toNewProviderModels(o.models),s=u("theModelRegistry","the model registry");else{const o=await getStoredKeyToken(e),a=await probeProviderModels({baseURL:n.baseURL,...o?{apiKey:o}:{}});if(!a.ok||0===a.models.length)throw new Error(u("couldnTFetchModels","couldn't fetch models — {{v0}}",{v0:a.detail??"no source answered"}));r=toNewProviderModels(a.models),s=u("theEndpoint","the endpoint")}const{count:a}=await updateUserProviderEntryModels({runtime:createNodeRuntime(),id:e,models:r});await refreshCustomProviderModels(l?{sessionId:l}:void 0),k(e=>e?{...e,modelCount:a}:e),b({count:a,source:s}),h("models-updated")}catch(e){y(e instanceof Error?e.message:String(e)),h("error")}},"updateModels");at((n,r)=>{if(r.escape){if("removing"===g||"updating-models"===g)return;return"entry"===g?(p(""),void h("card")):"confirm-remove"===g?void h("card"):void a()}if("entry"!==g||!r.leftArrow||m){if("card"===g)return"d"===n||"D"===n?void h("confirm-remove"):"r"===n||"R"===n?void h("entry"):"u"===n||"U"===n?void E():"stored"!==o||"c"!==n&&"C"!==n?"missing"===o&&r.return?void h("entry"):void(r.return&&a()):void clearCustomProviderKey(e).then(()=>h("cleared"),()=>h("error"));if("confirm-remove"!==g)return"saved"===g&&r.return?(a(),void i?.()):void("models-updated"===g&&r.return?h("card"):"cleared"!==g&&"removed"!==g&&"error"!==g||!r.return||a());"y"===n||"Y"===n?T():(r.return||n)&&h("card")}else h("card")});const P=__name(async()=>{const n=m.trim();if(n)try{await storeCustomProviderKey({providerId:e,key:n}),h("saved")}catch{h("error")}},"handleSubmit"),M=w?ct.createElement(ct.Fragment,null,w.baseURL," · ",w.modelCount," ",translateUiCopy(1===w.modelCount?"model":"models")," ",u("config","· config:")," ",ct.createElement(_D,{url:`file://${K()}/.commandcode/providers.json`,text:"providers.json",color:XO.DIM})):void 0;if("card"===g){const e=cardKeyLine({keyState:o,keyPreview:r,configuredReference:s}),a=cardHints(o);return ct.createElement(oF,{title:n,titleSuffix:ct.createElement(nt,{color:XO.DIM}," (byok)"),subtitle:M,footer:ct.createElement(YN,{hints:a,marginTop:0})},ct.createElement(tt,null,e))}return"confirm-remove"===g?ct.createElement(oF,{title:u("remove","Remove {{v0}}?",{v0:n}),subtitle:u("itsEntryModelsAndStoredKeyGoWithIt","Its entry, models, and stored key go with it"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"y")," ",u("remove2","remove")),u("anyOtherKeyKeepsIt","any other key keeps it")]})},ct.createElement(nt,null,u("deletesTheEntryFrom","Deletes the entry from")," ",ct.createElement(ProvidersJsonLink,null)," ",u("andClearsItsStoredKey","and clears its stored key."))):"removing"===g||"updating-models"===g?ct.createElement(oF,{title:n,rule:!1},ct.createElement(nt,null,"removing"===g?u("removing","Removing '{{v0}}'…",{v0:e}):u("refetchingModelsFor","Refetching models for '{{v0}}'…",{v0:e}))):"removed"===g?ct.createElement(oF,{title:u("removed","{{v0}} removed",{v0:n}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.DIM},u("providerDeletedFrom","Provider deleted from")," ",ct.createElement(ProvidersJsonLink,null)," ",u("storedKeyClearedItsModelsLeftModel","· stored key cleared · its models left /model"),v?u("itOwnedYourActiveModelSwitchedToYourLaneSDefault"," · it owned your active model — switched to your lane’s default"):"")):"models-updated"===g?ct.createElement(oF,{title:n,subtitle:M,footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("back","back")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.GREEN},u("modelsUpdated","Models updated —")," ",C?.count??0," ",u("declaredFrom","declared from")," ",C?.source??u("theRefetch","the refetch"),".")):"saved"===g?ct.createElement(oF,{title:u("keySavedFor","Key saved for {{v0}}",{v0:n}),subtitle:u("storedInCommandcodeAuthJson","Stored in ~/.commandcode/auth.json"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("pickAModel","pick a model")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",u("close","close"))]})}):"cleared"===g?ct.createElement(oF,{title:u("storedKeyClearedFor","Stored key cleared for {{v0}}",{v0:n}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.DIM},u("itsModelsStayListed","Its models stay listed"),s?u("theProvidersJsonKeyAppliesAgain"," — the providers.json key applies again"):u("requestsWillNeedAKeyAgain","; requests will need a key again"))):"error"===g?ct.createElement(oF,{title:u("couldNotUpdate","Could not update {{v0}}",{v0:n}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.DIM},f??u("checkThatCommandcodeIsWritableOrSetApikeyToAEnvVarReferenceInProvidersJson",'Check that ~/.commandcode is writable, or set "apiKey" to a "$ENV_VAR" reference in providers.json'))):ct.createElement(oF,{title:u("apiKeyFor","API key for {{v0}}",{v0:n}),subtitle:u("savedToCommandcodeAuthJsonUnderRequestsGoStraightToThisProviderWithYourKey","Saved to ~/.commandcode/auth.json under '{{v0}}'. requests go straight to this provider with your key",{v0:e}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("save","save")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",u("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},u("key2","key:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:m,onChange:p,onSubmit:()=>{P()},placeholder:u("pasteYourApiKey2","paste your API key…"),mask:"*",showCursor:!0}))))}function makeCustomProviderKeyEntry(e){return __name(function CustomProviderKeyEntryAdapter({onCancel:n}){return ct.createElement(CustomProviderKeyEntry,{providerId:e.providerId,providerName:e.providerName,keyState:e.keyState,keyPreview:e.keyPreview,configuredReference:e.configuredReference,onClose:n,onOpenModels:e.onOpenModels,sessionId:e.sessionId,onActiveModelOrphaned:e.onActiveModelOrphaned,onDiskDefaultOrphaned:e.onDiskDefaultOrphaned})},"CustomProviderKeyEntryAdapter")}function makeAddCustomProviderEntry(e={}){return __name(function AddCustomProviderAdapter({onCancel:n}){return ct.createElement(AddCustomProviderEntry,{onClose:n,onOpenModels:e.onOpenModels,sessionId:e.sessionId})},"AddCustomProviderAdapter")}__name(normalizeEndpointInput,"normalizeEndpointInput"),__name(asPositiveInt,"asPositiveInt"),__name(extractModels,"extractModels"),__name(probeProviderModels,"probeProviderModels"),__name(ProvidersJsonLink,"ProvidersJsonLink"),__name(toNewProviderModels,"toNewProviderModels"),__name(cardKeyLine,"cardKeyLine"),__name(cardHints,"cardHints"),__name(CustomProviderKeyEntry,"CustomProviderKeyEntry"),__name(makeCustomProviderKeyEntry,"makeCustomProviderKeyEntry"),__name(makeAddCustomProviderEntry,"makeAddCustomProviderEntry");var Fj=__name(()=>[{value:"openai-completions",label:t("openaiCompatible","OpenAI-compatible"),detail:t("chatCompletionsOllamaVllmLmStudioMostHostedApis","/chat/completions · Ollama, vLLM, LM Studio, most hosted APIs")},{value:"openai-responses",label:"OpenAI Responses",detail:t("responsesEndpointsSpeakingTheOpenaiResponsesApi","/responses · endpoints speaking the OpenAI Responses API")},{value:"anthropic-messages",label:t("anthropicWire","Anthropic wire"),detail:t("v1MessagesEndpointsSpeakingTheClaudeMessagesApi","/v1/messages · endpoints speaking the Claude Messages API")}],"WIRE_CHOICES");function cycleWire(e){const n=Fj().findIndex(n=>n.value===e.current),o=Fj().length,r=((e.forward?n+1:n-1)+o)%o;return Fj()[r]?.value??e.current}__name(cycleWire,"cycleWire");var _j=__name(()=>[["{",""],[' "provider": {',""],[' "openrouter": {',t("theIdYouTyped","the id you typed")],[' "baseURL": "https://openrouter.ai/api/v1",',t("apiRootNoRoute","API root, no route")],[' "apiKey": "$OPENROUTER_API_KEY",',t("referenceNeverARawKey","reference — never a raw key")],[' "models": { "openai/gpt-5.6": {} }',t("editAnytimeReloadsLive","edit anytime, reloads live")],[" }",""],[" }",""],["}",""]],"HELP_FILE_LINES");function endpointSubtitle(e){return e.prefilledName?t("prefilledForEditItOrPressEnterToAccept","Prefilled for {{v0}} — edit it or press enter to accept",{v0:e.prefilledName}):"anthropic-messages"===e.wire?t("theMessagesApiRootV1IsAddedOnTheWireWhenMissing","The Messages API root · /v1 is added on the wire when missing"):"openai-responses"===e.wire?t("theApiRootRequestsGoToResponsesIsAddedOnTheWire","The API root requests go to · /responses is added on the wire"):t("theApiRootRequestsGoToMostEndInV1","The API root requests go to · most end in /v1")}function endpointPlaceholder(e){return"anthropic-messages"===e?"https://api.example.com/anthropic":"openai-responses"===e?"https://api.example.com/v1":"http://localhost:11434/v1"}function idStepMatches(e){return"id"!==e.phase?[]:e.query.trim()?matchKnownProviders({query:e.query,providers:e.providers,limit:e.providers.length}):e.providers}function AddCustomProviderEntry({onClose:e,onOpenModels:n,sessionId:o}){const{t:r}=xt(),[s,a]=mt(""),[i,l]=mt("openai-completions"),[c,d]=mt(""),[u,m]=mt(""),[p,g]=mt(""),[h,f]=mt("id"),[y,v]=mt(()=>fallbackProviderSuggestions());ct.useEffect(()=>{let e=!0;return loadProviderSuggestions().then(n=>{e&&n.length>0&&v(n)}),()=>{e=!1}},[]);const[S,w]=mt(void 0),[k,C]=mt(null),[b,T]=mt(void 0),[E,P]=mt(void 0),M=ct.useRef(null),I=ct.useRef("api"),A=ct.useRef([]),[x,R]=mt(void 0),[L,O]=mt(0),[D,N]=mt(void 0),F=""===u.trim(),_=idStepMatches({phase:h,query:s,providers:y}),$=__name(e=>{A.current.push(h),f(e)},"goTo"),U=__name((e,n)=>{A.current.push(e),f(n)},"arriveFrom"),B=__name(()=>{const n=A.current.pop();T(void 0),P(void 0),n?f(n):e()},"goBack");at((o,r)=>{if("help"!==h){if(r.escape){if("saving"===h||"probing"===h)return;return"done"===h||"error"===h?void e():void B()}if(r.leftArrow&&("api"===h||"id"===h&&!s||"endpoint"===h&&!c||"key"===h&&!u||"manual-models"===h&&!p))B();else{if("api"===h&&("h"===o||"H"===o))return I.current=h,void f("help");if("id"!==h)return"api"===h?((r.upArrow||r.downArrow)&&l(e=>cycleWire({current:e,forward:!0===r.downArrow})),void(r.return&&$("endpoint"))):"done"===h&&r.return?(e(),void n?.()):void("error"===h&&r.return&&e());(r.upArrow||r.downArrow)&&_.length>0&&C(e=>{const n=_.length-1;if(null===e)return r.downArrow?0:n;const o=e+(r.downArrow?1:-1);return o<0?n:o>n?0:o})}}else f(I.current)});const j=__name(()=>{const e=null===k?void 0:_[k];if(e)return getCustomProviderModelsSync().some(n=>n.id===e.id)?void T(r("alreadyExistsSelectItInConnectToManageIt","'{{v0}}' already exists — select it in /connect to manage it.",{v0:e.id})):(T(void 0),a(e.id),w(e),l(e.wire),d(e.baseURL),C(null),void $("api"));const n=s.trim().toLowerCase();if(!n)return;if(!isValidProviderId(n))return void T(r("lowercaseLettersDigitsDotsDashesAndUnderscoresOnly","Lowercase letters, digits, dots, dashes and underscores only."));if(isReservedProviderId(n))return void T(r("isABuiltInSubscriptionLaneTryApi","'{{v0}}' is a built-in subscription lane — try '{{v1}}-api'.",{v0:n,v1:n}));if(getCustomProviderModelsSync().some(e=>e.id===n))return void T(r("alreadyExistsSelectItInConnectToManageIt","'{{v0}}' already exists — select it in /connect to manage it.",{v0:n}));T(void 0),a(n);const o=findKnownProvider({id:n,providers:y});w(o),o&&(l(o.wire),d(o.baseURL)),$("api")},"submitId"),W=__name(()=>{const{url:e,stripped:n}=normalizeEndpointInput(c);if(!e)return;let o;try{o=new URL(e)}catch{return void T(r("thatIsNotAUrlIncludeTheSchemeHttp","That is not a URL — include the scheme (http…)."))}if("http:"===o.protocol||"https:"===o.protocol){if(T(void 0),n)return d(e),void P(r("removedTheEndpointIsTheApiRoot","removed {{v0}} — the endpoint is the API root",{v0:n}));P(void 0),d(e),M.current=findModelsDevProvider({baseURL:e}).catch(()=>null),$("key")}else T(r("httpOrHttpsUrlsOnly","http:// or https:// URLs only."))},"submitEndpoint"),H=__name(async()=>{f("probing");const e=u.trim();let n=await probeProviderModels({baseURL:c,...e?{apiKey:e}:{}});n.ok||"anthropic-messages"!==i||c.endsWith("/v1")||(n=await probeProviderModels({baseURL:`${c}/v1`,...e?{apiKey:e}:{}})),n.ok&&n.models.length>0?await K(n.models):(R(n.detail),U("key","manual-models"))},"runProbe"),G=__name(async()=>{const e=u.trim();if(e)try{await storeCustomProviderKey({providerId:s,key:e})}catch{return N(r("theKeyCouldNotBeStoredCheckThatCommandcodeIsWritable","The key could not be stored — check that ~/.commandcode is writable.")),void f("error")}f("probing");const n=await M.current??null;n&&n.models.length>0?await K(n.models):await H()},"submitKey"),V=__name(()=>{const e=p.split(",").map(e=>e.trim()).filter(Boolean);0!==e.length&&K(e.map(e=>({id:e})))},"submitManualIds"),K=__name(async e=>{f("saving");try{await addUserProviderEntry({runtime:createNodeRuntime(),id:s,baseURL:c,api:i,keyless:F,models:toNewProviderModels(e)}),O(e.length),await refreshCustomProviderModels(o?{sessionId:o}:void 0),f("done")}catch(e){N(e instanceof Error?e.message:String(e)),f("error")}},"writeEntry"),z=b?ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.RED},b)):null,q=s.trim()?r("addAProvider","Add a provider · {{v0}}",{v0:s.trim().toLowerCase()}):r("addAProvider2","Add a provider");if("saving"===h||"probing"===h)return ct.createElement(oF,{title:q,rule:!1},ct.createElement(nt,null,"probing"===h?r("askingWhichModelsItServes","Asking {{v0}} which models it serves…",{v0:c}):r("writingToCommandcodeProvidersJson","Writing '{{v0}}' to ~/.commandcode/providers.json…",{v0:s})));if("done"===h)return ct.createElement(oF,{title:r("isSetUp","'{{v0}}' is set up",{v0:s}),subtitle:r("declared","{{v0}} {{v1}} declared{{v2}}",{v0:L,v1:translateUiCopy(1===L?"model":"models"),v2:F?" · keyless endpoint":" · key stored in auth.json"}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("pickAModel","pick a model")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("close","close"))]})},ct.createElement(nt,{color:XO.DIM},r("providerAddedTo","Provider added to")," ",ct.createElement(ProvidersJsonLink,null),r("editItAnytimeItReloadsLive",". Edit it anytime, it reloads live.")));if("error"===h)return ct.createElement(oF,{title:r("addingDidnTFinish","Adding '{{v0}}' didn't finish",{v0:s}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("close","close"))]})},ct.createElement(nt,{color:XO.DIM},D));if("help"===h)return ct.createElement(oF,{title:r("addingAProviderTheShortVersion","Adding a provider: the short version"),footer:ct.createElement(tt,{flexDirection:"column"},ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,r("docs","docs:")," ",ct.createElement(_D,{url:"https://commandcode.ai/docs/byok",text:"commandcode.ai/docs/byok",color:XO.DIM})),r("anyKeyToGoBack","any key to go back")]}))},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},r("providerIdNamesTheEntryIn","• provider id names the entry in")," ",ct.createElement(ProvidersJsonLink,null)," ",r("modelsSelectAsIdModel","· models select as id/model")),ct.createElement(nt,{color:XO.DIM},r("endpointIsTheBaseUrlRequestsGoToMostEndInV1","• endpoint is the base URL requests go to · most end in /v1")),ct.createElement(nt,{color:XO.DIM},r("pastedKeysGoToAuthJsonProvidersJsonOnlyEverHoldsEnvVarOrCommandReferences","• pasted keys go to auth.json · providers.json only ever holds $ENV_VAR or !command references")),ct.createElement(nt,{color:XO.DIM},r("noKeyNeededPressEnterOnTheEmptyKeyFieldLocalServers","• no key needed? press enter on the empty key field (local servers)")),ct.createElement(nt,{color:XO.DIM},r("modelsYouCanImportTheFetchedListProbeTheEndpointAposSModelsRouteOrTypeIdsByHandIdsYouLeaveUndeclaredStillRunAsIdModel","• models: you can import the fetched list, probe the endpoint&apos;s /models route, or type ids by hand. Ids you leave undeclared still run as id/model")),ct.createElement(nt,{color:XO.DIM},r("the","• the")," ",ct.createElement(ProvidersJsonLink,null)," ",r("fileIsYoursEditItAnytimeItReloadsLiveManageItFromConnect","file is yours · edit it anytime, it reloads live · manage it from /connect")),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},r("whatItWrites","what it writes:")),_j().map(([e,n])=>ct.createElement(nt,{key:e},ct.createElement(nt,{color:XO.CYAN}," ",e),n?ct.createElement(nt,{color:XO.DIM}," ","// ",n):null)))));if("manual-models"===h)return ct.createElement(oF,{title:q,subtitle:x?r("couldnTListModelsAutomatically","Couldn't list models automatically — {{v0}}",{v0:x}):r("whichModelsDoesServe","Which models does {{v0}} serve?",{v0:s}),footer:ct.createElement(YN,{marginTop:0,hints:[r("commaSeparatedExactIds","comma-separated, exact ids"),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("save","save")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("models","models:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:p,onChange:g,onSubmit:V,placeholder:"llama3.3:70b, qwen2.5-coder:32b",showCursor:!0}))));if("key"===h)return ct.createElement(oF,{title:q,subtitle:r("keysLiveInCommandcodeAuthJsonNeverInProvidersJson","Keys live in ~/.commandcode/auth.json, never in providers.json"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("save","save")),r("emptyEnterKeylessLocalServers","empty enter = keyless (local servers)"),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("key2","key:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:u,onChange:m,onSubmit:()=>{G()},placeholder:r("pasteItOrPressEnterIfNoneIsNeeded","paste it — or press enter if none is needed"),mask:"*",showCursor:!0}))));if("api"===h)return ct.createElement(oF,{title:q,subtitle:r("whatDoesTheEndpointSpeak","What does the endpoint speak?"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"↑/↓")," ",r("switch","switch")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("continue","continue")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"h")," ",r("help","help")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{flexDirection:"column"},Fj().map(e=>ct.createElement(nt,{key:e.value},i===e.value?"❯ ":" ",ct.createElement(nt,{bold:i===e.value},e.label),ct.createElement(nt,{color:XO.DIM}," · ",e.detail)))));if("endpoint"===h){const e=S&&c===S.baseURL;return ct.createElement(oF,{title:q,subtitle:endpointSubtitle({prefilledName:e?S.name:void 0,wire:i}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("continue","continue")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("baseUrl","base URL:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:c,onChange:e=>{d(e),T(void 0),P(void 0)},onSubmit:W,placeholder:endpointPlaceholder(i),showCursor:!0}))),E&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},E)),z)}const Y=null===k?0:Math.min(Math.max(0,k-6+1),Math.max(0,_.length-6)),J=_.slice(Y,Y+6),Q=_.length-(Y+J.length);return ct.createElement(oF,{title:r("addAProvider2","Add a provider"),subtitle:r("pickAKnownProviderBelowOrTypeYourOwnId","Pick a known provider below, or type your own id."),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"↑/↓")," ",r("pickFromTheList","pick from the list")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("continue","continue")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("close","close"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("providerId","provider id:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:s,onChange:e=>{a(e),T(void 0),C(null)},onSubmit:j,placeholder:"ollama, work-llm, openrouter…",showCursor:!0}))),z,J.length>0&&ct.createElement(tt,{flexDirection:"column",marginTop:1},J.map((e,n)=>{const o=null!==k&&Y+n===k;return ct.createElement(tt,{key:e.id},ct.createElement(s$,{isSelected:o}),ct.createElement(a$,{isSelected:o,idleColor:XO.DIM},` ${e.id}`),ct.createElement(nt,{color:XO.DIM}," ","· ",e.baseURL))}),(Y>0||Q>0)&&ct.createElement(nt,{color:XO.DIM}," ",Y>0?r("more","↑ {{v0}} more · ",{v0:Y}):"",Q>0?r("more2","↓ {{v0}} more",{v0:Q}):"")))}__name(endpointSubtitle,"endpointSubtitle"),__name(endpointPlaceholder,"endpointPlaceholder"),__name(idStepMatches,"idStepMatches"),__name(AddCustomProviderEntry,"AddCustomProviderEntry"),Jt(),hL();var $j="__add-custom-provider__";async function invalidateHarnessForLaneSwitch(e){e&&await rebuildHarnessSession(e)}function showProviderNotification({setShowProviderNotification:e,providerNotificationTimer:n}){n.current&&clearTimeout(n.current),e(!0),n.current=setTimeout(()=>{e(!1),n.current=null},FI)}async function handleProviderSelect({provider:e,setCurrentProvider:n,setShowProviderSelector:o,setAuthComponentInfo:r,setStatus:s,setShowProviderNotification:a,providerNotificationTimer:i,setShowModelSelector:l,sessionId:c,onActiveModelOrphaned:d,onDiskDefaultOrphaned:u}){if(e===$j)return o(!1),r({provider:e,Component:makeAddCustomProviderEntry({...l?{onOpenModels:__name(()=>l(!0),"onOpenModels")}:{},...c?{sessionId:c}:{}})}),{switched:!1};const m=getCustomProviderModelsSync().find(n=>n.id===e);if(m){const n=await getCustomProviderKeyState(e),s="stored"===n?await getStoredKeyPreview(e):void 0,a=await getConfiguredKeyReference(e);return o(!1),r({provider:e,Component:makeCustomProviderKeyEntry({providerId:m.id,providerName:m.name,keyState:n,keyPreview:s,configuredReference:a,onOpenModels:l?()=>l(!0):void 0,sessionId:c,onActiveModelOrphaned:d,onDiskDefaultOrphaned:u})}),{switched:!1}}const p=getProviderConfig(e),g=p?.authComponent,h=await resolveProviderSelection({provider:e,requiresAuth:p?.requiresAuth,hasAuthFlow:Boolean(g),checkAuth:p?.checkAuth});return"auth-required"===h.status?(g&&r({provider:e,Component:g}),{switched:!1}):"error"===h.status?(s(h.statusMessage),o(!1),{switched:!1}):(n(e),await invalidateHarnessForLaneSwitch(c),o(!1),s(h.statusMessage),showProviderNotification({setShowProviderNotification:a,providerNotificationTimer:i}),{switched:!0})}function handleProviderCancel({setShowProviderSelector:e}){e(!1)}async function handleAuthSuccess({authComponentInfo:e,setAuthComponentInfo:n,setShowProviderSelector:o,setCurrentProvider:r,setStatus:s,setShowProviderNotification:a,providerNotificationTimer:i,sessionId:l}){return e?(n(null),o(!1),r(e.provider),await invalidateHarnessForLaneSwitch(l),s(buildProviderAuthSuccessStatus(e.provider)),showProviderNotification({setShowProviderNotification:a,providerNotificationTimer:i}),{switchedProvider:e.provider}):{switchedProvider:null}}function handleAuthCancel({setAuthComponentInfo:e}){e(null)}__name(invalidateHarnessForLaneSwitch,"invalidateHarnessForLaneSwitch"),__name(showProviderNotification,"showProviderNotification"),__name(handleProviderSelect,"handleProviderSelect"),__name(handleProviderCancel,"handleProviderCancel"),__name(handleAuthSuccess,"handleAuthSuccess"),__name(handleAuthCancel,"handleAuthCancel");var Uj=__name(({onSelect:e,onCancel:n,sessionId:o})=>{const{t:r}=xt(),[s,a]=ct.useState(()=>getCustomProviderModelsSync()),[i,l]=ct.useState(()=>getCustomProviderWarningsSync()),[c,d]=ct.useState({});ct.useEffect(()=>{let e=!0;return(async()=>{const{providers:n}=await refreshCustomProviderModels(o?{sessionId:o}:void 0);if(!e)return;a(n),l(getCustomProviderWarningsSync());const r=await Promise.all(n.map(async e=>[e.id,await getCustomProviderKeyState(e.id)]));e&&d(Object.fromEntries(r))})(),()=>{e=!1}},[o]);const[u,m]=ct.useState({});ct.useEffect(()=>{let e=!0;return(async()=>{const n=getProviderOptions().filter(e=>isProviderLaneListable({providerId:e.value})),o=await Promise.all(n.map(async e=>{const n=getProviderConfig(e.value);if(!n?.requiresAuth||!n.checkAuth)return[e.value,!0];try{return[e.value,await n.checkAuth()]}catch{return[e.value,!1]}}));e&&m(Object.fromEntries(o))})(),()=>{e=!1}},[]);const p=__name(e=>{const n=u[e];if(void 0===n)return"";if(!n)return r("notConnected","○ not connected");const o=laneModelCount({laneId:e});return o>0?`✓ ${r("providerModelCount","{{count}} model",{count:o})}`:"✓"},"laneStatus"),g=__name((e,n)=>{const o=c[e];if("missing"===o)return r("needsAKey","○ needs a key");const s=r("providerModelCount","{{count}} model",{count:n});return void 0===o?s:`✓ ${s}`},"customStatus"),h=[...getProviderOptions().filter(e=>isProviderLaneListable({providerId:e.value})).map(e=>({label:"command-code"===e.value?r("recommended","{{v0}} (recommended)",{v0:getProviderDisplayName(e.value)}):getProviderDisplayName(e.value),value:e.value,status:p(e.value),notLive:!1===u[e.value]})),...s.map(e=>({label:e.name,value:e.id,status:g(e.id,e.models.length),notLive:"missing"===c[e.id]})),{label:r("byokAddYourOwnProvider","(BYOK) Add your own provider"),value:$j,status:"",notLive:!1}],f=Math.max(42,...h.map(e=>Be(e.label)+12)),y=new Map(h.map(e=>[e.label,e])),v=__name(n=>{e(n.value)},"handleSelect");return at((e,o)=>{o.escape&&n()}),ct.createElement(oF,{title:r("connect","Connect"),subtitle:r("connectToAiProvidersAndSeeCurrentlyConnectedProviders","Connect to AI providers and see currently connected providers"),hint:r("navigateEnterSelectEscClose","↑/↓ navigate · enter select · esc close")},ct.createElement(SelectInput,{items:h.map(e=>({label:e.label,value:e.value})),onSelect:v,initialIndex:0,indicatorComponent:s$,itemComponent:({isSelected:e,label:n})=>{const o=y.get(n??"");return ct.createElement(tt,null,ct.createElement(a$,{isSelected:e,...o?.notLive?{idleColor:XO.DIM}:{}},` ${n??""}${" ".repeat(Math.max(0,f-Be(n??"")))}`,o?.status.startsWith("✓")?ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.GREEN},"✓"),o.status.slice(1)):o?.status??""))}}),i.length>0&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.YELLOW},ct.createElement(ProvidersJsonLink,{color:XO.YELLOW})," ",r("needsAttention","needs attention —")," ",1===i.length?r("oneEntry","one entry"):r("someEntries","some entries")," ",r("didNotLoadAsWritten","did not load as written:")),i.slice(0,3).map(e=>ct.createElement(nt,{key:e,color:XO.DIM}," ",e)),i.length>3&&ct.createElement(nt,{color:XO.DIM}," ",r("and","… and")," ",i.length-3," ",r("more5","more"))))},"ProviderSelector");Jt(),hL(),Jt(),hL(),Jt();var Bj=new Map,jj=new Set;function subscribeAgentSlashCommands(e){return jj.add(e),()=>{jj.delete(e)}}function enqueueAgentSlashCommand(e){const n={command:e.command,source:e.source??"agent"},o=Bj.get(e.sessionId);o?o.push(n):Bj.set(e.sessionId,[n]);for(const e of[...jj])e()}function drainAgentSlashCommands(e){const n=Bj.get(e.sessionId);return n&&0!==n.length?(Bj.delete(e.sessionId),n):[]}function hasAgentSlashCommands(e){return(Bj.get(e.sessionId)?.length??0)>0}__name(subscribeAgentSlashCommands,"subscribeAgentSlashCommands"),__name(enqueueAgentSlashCommand,"enqueueAgentSlashCommand"),__name(drainAgentSlashCommands,"drainAgentSlashCommands"),__name(hasAgentSlashCommands,"hasAgentSlashCommands");var Wj=__name(e=>"remote"===e?"remote":"agent","originOf"),Hj="Only you can run /rc — connecting the bot or changing who may use it is yours to decide, not mine. /rc status and /rc disconnect still work.";function refuseAgentSlashCommand(e){const[n,o]=e.trim().replace(/^\//,"").split(/\s+/);if("rc"===n&&"status"!==o&&"off"!==o&&"disconnect"!==o)return Hj}__name(refuseAgentSlashCommand,"refuseAgentSlashCommand"),Jt(),hL(),Jt(),hL();var Gj=__name(e=>Buffer.byteLength(e,"utf8")<=64,"fits"),Vj=__name((e,n)=>e===n?"✓ ":"","mark");function chunk(e){const n=[];for(let o=0;o<e.length;o+=2)n.push([...e.slice(o,o+2)]);return n}function buildRemoteModelMenu(e){const n=[t("selectModel2","Select model"),t("pickOneOrSendModelId","Pick one, or send /model <id>")],o=[];for(const n of e.groups)for(const r of n.models){const n=encodeValueCallback({command:"model",value:r.id});Gj(n)&&o.push({text:`${Vj(r.id,e.currentModel)}${r.name}`,data:n})}return 0===e.groups.length?{text:t("providerLoginRequiredRunConnectToAuthenticate","Provider login required. Run /connect to authenticate."),buttons:[]}:{text:n.join("\n").trimEnd(),buttons:chunk(o)}}async function resolveRemoteModelMenu(e){const n=buildLaneModelPickerGroups(),[o,r]=await Promise.all([getBillingContext(),resolveProviderAuth(n.map(e=>e.providerId))]);return buildRemoteModelMenu({currentModel:e,groups:filterModelPickerGroupsByPlan({groups:filterModelPickerGroupsByAuth({groups:n,...r}),billing:o})})}__name(chunk,"chunk"),__name(buildRemoteModelMenu,"buildRemoteModelMenu"),__name(resolveRemoteModelMenu,"resolveRemoteModelMenu");var Kj=__name((e,n)=>e===n?"✓ ":"","mark");async function effortMenu(){const e=getConfiguredModel(),n=getSupportedEfforts(e);if(!n||0===n.length)return{text:t("thisModelHasNoReasoningEffortToSet","This model has no reasoning effort to set."),buttons:[]};const o=getReasoningEffort(e);return{text:t("reasoningEffortTapOneOrSendEffortLevel","Reasoning effort\nTap one, or send /effort <level>\n\n{{v0}}",{v0:n.join(", ")}),buttons:[n.map(e=>({text:`${Kj(e,o)}${e}`,data:encodeValueCallback({command:"effort",value:e})}))]}}__name(effortMenu,"effortMenu");var zj=__name(e=>{const n=getSupportedEfforts(getConfiguredModel());return n&&0!==n.length?n.includes(e.toLowerCase())?void 0:t("isNotALevelTry",'"{{v0}}" is not a level. Try: {{v1}}.',{v0:e,v1:n.join(", ")}):t("thisModelHasNoReasoningEffortToSet","This model has no reasoning effort to set.")},"rejectEffort");function cliSummary(e){const n=bi.find(n=>n.command===`/${e}`);return n?localizeSlashDescription(n.command,n.description):e}__name(cliSummary,"cliSummary");var qj=__name(()=>[{name:"model",summary:cliSummary("model"),argument:t("aModelIdOrLeaveEmptyForTheList","a model id, or leave empty for the list"),menu:__name(()=>resolveRemoteModelMenu(getConfiguredModel()),"menu")},{name:"effort",summary:cliSummary("effort"),argument:t("aLevelOrLeaveEmptyForTheList","a level, or leave empty for the list"),menu:effortMenu,reject:zj},{name:"compact",summary:cliSummary("compact"),menu:__name(async()=>({text:t("compacting","Compacting…"),buttons:[]}),"menu")},{name:"clear",summary:cliSummary("clear"),menu:__name(async()=>({text:t("cleared","Cleared."),buttons:[]}),"menu")}],"SPECS"),Yj=__name(()=>[{name:"status",summary:t("thisSessionItsModelAndWhetherItAsksFirst","this session, its model, and whether it asks first")},{name:"stop",summary:t("interruptWhateverItIsDoing","interrupt whatever it is doing")},{name:"help",summary:t("whatYouCanSend","what you can send")}],"BRIDGE_COMMANDS"),Jj=new Map(qj().map(e=>[e.name,e])),Qj=__name(e=>Jj.get(e.toLowerCase()),"findRemoteCommand"),Xj=new Set(["model","effort"]),Zj=__name(e=>Xj.has(e),"needsMenu"),eW=__name(()=>[...qj().map(({name:e,summary:n,argument:o})=>({name:e,summary:n,argument:o})),...Yj()],"listRemoteCommands");function buildRemoteHelp(){return[t("whatYouCanSend2","What you can send"),"",...eW().map(e=>`/${e.name}: ${e.summary}`),"",t("anythingElseIsAPromptForTheAgent","Anything else is a prompt for the agent.")].join("\n")}__name(buildRemoteHelp,"buildRemoteHelp");var tW=Hj,nW=__name(e=>void 0!==e.origin&&"user"!==e.origin,"isUntrustedDispatch"),oW=__name(e=>"remote"===e.origin?t("rcOnlyWorksAtTheTerminalTheBotCannotReconfigureItselfFromTheChatStatusAndStopWorkFromHere","/rc only works at the terminal. The bot cannot reconfigure itself from the chat. /status and /stop work from here."):tW,"untrustedRefusal");function info(e,n){e.setFeed(e=>[...e,Zh(n)])}__name(info,"info");var rW=__name(()=>getModelShortName({modelId:getConfiguredModel(),findModelById:findModelById}),"shortModelName");function shortPath(e){const n=e.split("/").filter(Boolean);return n.length<=2?e:`…/${n.slice(-2).join("/")}`}function sessionLabel(){const e=process.cwd(),n=getCurrentBranch({cwd:e}),o=getPackageJson(import.meta.url).version||"0.0.0",r=`${d(e)}${n?` (${n})`:""}`;return[`Command Code v${o}`,rW(),r].join(" · ")}function sessionInfo(){const e=process.cwd();return{version:getPackageJson(import.meta.url).version||"0.0.0",model:rW(),repo:d(e),branch:getCurrentBranch({cwd:e})||void 0}}__name(shortPath,"shortPath"),__name(sessionLabel,"sessionLabel"),__name(sessionInfo,"sessionInfo");var sW=__name(e=>"discord"===e?"Discord":"Telegram","platformName"),aW={on:"default",default:"default","auto-accept":"auto-accept",bypass:"bypass",yolo:"bypass"};function modeBehaviour(e){return"bypass"===e?t("itNeverAsksBeforeEditingFilesOrRunningCommands","it never asks before editing files or running commands"):"auto-accept"===e?t("itEditsFilesOnItsOwnAndAsksInTheChatBeforeRunningCommands","it edits files on its own, and asks in the chat before running commands"):t("itAsksYouInTheChatBeforeEachNewTool","it asks you in the chat before each new tool")}__name(modeBehaviour,"modeBehaviour");var iW=/failed|rejected|unauthorized|not acknowledged|no content|waiting on|reconnected/i,lW=__name(e=>n=>{iW.test(n)&&info(e,t("remote","Remote: {{v0}}",{v0:n}))},"bridgeLogger"),cW=__name(e=>{const n=Date.parse(e);if(Number.isNaN(n))return"unknown";const o=Math.max(0,Math.round((Date.now()-n)/6e4));return o<1?t("justNow","just now"):o<60?t("mAgo","{{v0}}m ago",{v0:o}):t("hAgo","{{v0}}h ago",{v0:Math.round(o/60)})},"sinceLabel");function describeLockHolder(e){return[e.label??"Command Code",` ${shortPath(e.cwd)}`,t("startedPid"," started {{v0}} · pid {{v1}}",{v0:cW(e.startedAt),v1:e.pid})].join("\n")}function applyPermissionMode(e,n){const o=e.permissionModeRef.current;return e.permissionModeRef.current=n,e.setPermissionMode(n),hO(e.sessionId)?.setPermissionMode({mode:n}),o}__name(describeLockHolder,"describeLockHolder"),__name(applyPermissionMode,"applyPermissionMode");var dW,uW,mW=__name(()=>new Promise(e=>{const n=setTimeout(e,400);n.unref?.()}),"handoverPause");function takeRcSelectorStep(){const e=dW;return dW=void 0,e}__name(takeRcSelectorStep,"takeRcSelectorStep");var pW=!1;function registerExitRelease(){pW||(pW=!0,process.once("exit",()=>{releaseRemoteLockSync()}))}async function buildRcStatusMessage(e){const n=getActiveRemote(),o=await yW(),r=resolveRemoteSettings(await loadRemoteConfig(),process.env,o),s=await readRemoteLock(),a=!n&&s&&s.pid!==process.pid?["",t("anotherSessionHasTheBot","Another session has the bot:"),describeLockHolder(s),t("runRcToTakeItOver","Run /rc to take it over.")]:[],i=n?t("onViaInMode","on via {{v0}} in {{v1}} mode, {{v2}}",{v0:n.platform,v1:modeLabel(n.mode),v2:modeBehaviour(n.mode)}):translateUiCopy("off"),l=n&&e?[` ${sessionLabel()}`]:[];return[t("remoteControl","Remote control: {{v0}}",{v0:i}),...l,t("tokenAllowedUser"," {{v0}} token: {{v1}} · allowed user: {{v2}}",{v0:sW(o),v1:r.token?translateUiCopy("configured"):translateUiCopy("not set"),v2:r.allowedUserId??translateUiCopy("not set")}),t("credentials"," credentials: {{v0}}",{v0:remoteConfigPath()}),...a].join("\n")}__name(registerExitRelease,"registerExitRelease"),__name(buildRcStatusMessage,"buildRcStatusMessage");var gW=__name(e=>"discord"===e?wU(sessionInfo()):XU(sessionInfo()),"farewellFor");function stopRemote(e,n={}){const o=getActiveRemote();if(!o)return void info(e,t("remoteControlIsNotRunning","Remote control is not running."));if(o.restoreMode&&applyPermissionMode(e,o.restoreMode),uW?.(),uW=void 0,!n.clearChat)return shutdownActiveRemote(),releaseRemoteLock(),void info(e,t("remoteControlStopped","Remote control stopped."));const{bridge:r}=o;clearActiveRemote(),(async()=>{const n=await r.clearSentMessages();getActiveRemote()||await releaseRemoteLock(),info(e,0===n?t("remoteControlStoppedNothingOfMineLeftInTheChat","Remote control stopped. Nothing of mine left in the chat."):t("remoteControlStoppedAndMessageSClearedFromTheChatYourOwnMessagesStayBecauseABotCanOnlyDeleteItsOwnAndOnlyFor48Hours","Remote control stopped, and {{v0}} message(s) cleared from the chat. Your own messages stay, because a bot can only delete its own, and only for 48 hours.",{v0:n}))})()}__name(stopRemote,"stopRemote");var hW=__name(e=>({pid:process.pid,cwd:process.cwd(),sessionId:e,startedAt:(new Date).toISOString(),label:sessionLabel()}),"lockInfoFor");function surrenderRemote(e){const n=getActiveRemote();n&&(n.restoreMode&&applyPermissionMode(e,n.restoreMode),shutdownActiveRemote(),info(e,t("remoteControlMovedToAnotherSessionWhichTookOverTheBotRunRcHereToTakeItBack","Remote control moved to another session, which took over the bot. Run /rc here to take it back.")))}function buildBridge(e){const n={allowedUserId:e.allowedUserId,onMessage:emitRemoteMessage,onChoice:emitRemoteChoice,onLog:e.onLog,label:__name(()=>"discord"===e.provider?CU(sessionInfo()):ZU(sessionInfo()),"label")},o=__name(e=>e>0?t("skippedMessageSQueuedWhileNoSessionWasConnected","Skipped {{v0}} message(s) queued while no session was connected.",{v0:e}):void 0,"skippedNote"),r=__name((n,r)=>{const s="discord"===e.provider?discordConnectBanner:telegramConnectBanner;n.announce(s({info:sessionInfo(),note:o(r)}))},"announceReady");if("discord"===e.provider){const o=createDiscordClient({token:e.token}),s=createDiscordBridge({...n,client:o,channelId:e.channelId??"",threadName:sessionLabel(),commands:eW().map(e=>({name:e.name,description:e.summary,argument:e.argument})),connect:__name(n=>createDiscordGateway({token:e.token,onDispatch:n.onDispatch,onReady:n.onReady,onFatal:n.onFatal,onLog:e.onLog}),"connect"),onFatal:e.onFatal,onReady:__name(({skippedUpdates:e})=>r(s,e),"onReady")});return s}const s=createRemoteBridge({...n,client:createTelegramClient({token:e.token}),onReady:__name(({skippedUpdates:e})=>r(s,e),"onReady")});return s}__name(surrenderRemote,"surrenderRemote"),__name(buildBridge,"buildBridge");var fW=__name(e=>"telegram"===e,"needsExclusiveBot");async function claimBot(e,n){const o=hW(e.sessionId);if(uW?.(),uW=void 0,n)await takeoverRemoteLock(o),await mW();else{const n=await acquireRemoteLock(o);if(!n.ok)return info(e,n.holder?t("theBotIsAttachedToAnotherSessionRunRcAndPickTakeItOverToMoveItHere",'The bot is attached to another session:\n{{v0}}\n\nRun /rc and pick "Take it over" to move it here.',{v0:describeLockHolder(n.holder)}):t("theBotIsAttachedToAnotherSessionRunRcToTakeItOver","The bot is attached to another session. Run /rc to take it over.")),!1}return registerExitRelease(),uW=watchRemoteLock({pid:process.pid,onLost:__name(()=>surrenderRemote(e),"onLost")}),!0}__name(claimBot,"claimBot");var yW=__name(async()=>resolveDefaultProvider({config:await loadRemoteConfig(),active:getActiveRemote()?.provider}),"defaultProvider");async function startRemote(e,n,o={}){const r=o.provider??await yW(),s=resolveRemoteSettings(await loadRemoteConfig(),process.env,r);if(!s.token||!s.allowedUserId)return info(e,t("notSetUpYetRunRcAndItWalksYouThroughIt","Not set up yet. Run /rc and it walks you through it.")),!1;if("discord"===r&&!s.channelId)return info(e,t("notSetUpYetRunRcAndItWalksYouThroughIt","Not set up yet. Run /rc and it walks you through it.")),!1;if(fW(r)&&!await claimBot(e,!0===o.takeover))return!1;const a=buildBridge({provider:r,token:s.token,allowedUserId:s.allowedUserId,channelId:s.channelId,onLog:lW(e),onFatal:__name(n=>{info(e,t("discordDisconnected","Discord disconnected: {{v0}}",{v0:n})),stopRemote(e)},"onFatal")}),i=getActiveRemote()?.restoreMode??e.permissionModeRef.current;return applyPermissionMode(e,n),setActiveRemote({bridge:a,mode:n,provider:r,platform:sW(r),farewell:gW(r),restoreMode:i}),a.start(),info(e,t("remoteControlIsOnSendAMessageHereOrOnToContinueOrRcToDisconnect","Remote control is on. Send a message here or on {{v0}} to continue, or /rc to disconnect.",{v0:sW(r)})),!0}async function restartActiveRemote(e){const n=getActiveRemote();n&&(info(e,t("restartingRemoteControlWithTheNewSettings","Restarting remote control with the new settings…")),await startRemote(e,n.mode,{provider:n.provider}))}function disconnect(e,n){const o=getActiveRemote();o?n.provider&&n.provider!==o.provider?info(e,t("isNotConnectedIsRunRcOffToStopThatOne","{{v0}} is not connected, {{v1}} is. Run /rc {{v2}} off to stop that one.",{v0:sW(n.provider),v1:o.platform,v2:o.provider})):n.clear||nW(e)?stopRemote(e,{clearChat:n.clear}):(dW="stopping",e.setShowRcSelector(!0)):info(e,t("remoteControlIsNotRunning","Remote control is not running."))}async function handleRcCommand(e,n){await migrateRemoteConfig().catch(()=>{});const[o,r,s]=n.trim().split(/\s+/).filter(Boolean);if(!o)return nW(e)?void info(e,oW(e)):void e.setShowRcSelector(!0);if("status"===o)return void info(e,await buildRcStatusMessage(e.sessionId));if("off"===o||"disconnect"===o)return void disconnect(e,{clear:"clear"===r});const a=B$.find(e=>e===o);if(a)return"off"===r||"disconnect"===r?void disconnect(e,{provider:a,clear:"clear"===s}):void info(e,t("tryRcOffOrRcToConnect","Try /rc {{v0}} off, or /rc to connect.",{v0:a}));if(nW(e))return void info(e,oW(e));const i=aW[o];if(i)await startRemote(e,i);else{if("token"===o){if(!r)return void info(e,t("provideTheBotTokenRcTokenBotToken","Provide the bot token: /rc token <bot-token>"));const n=await yW();return await updateRemoteProviderConfig(n,{token:r}),info(e,t("botTokenSavedTo","{{v0}} bot token saved to {{v1}}.",{v0:sW(n),v1:remoteConfigPath()})),void await restartActiveRemote(e)}if("user"===o){const n=await yW();return r&&/^\d+$/.test(r)?(await updateRemoteProviderConfig(n,{allowedUserId:r}),info(e,t("allowedUserSetTo","Allowed {{v0}} user set to {{v1}}.",{v0:sW(n),v1:r})),void await restartActiveRemote(e)):void info(e,"discord"===n?t("provideYourNumericDiscordIdRcUserIdInDiscordTurnOnSettingsDeveloperDeveloperModeThenRightClickYourNameCopyUserId","Provide your numeric Discord id: /rc user <id>. In Discord, turn on Settings → Developer → Developer Mode, then right-click your name → Copy User ID."):t("provideYourNumericTelegramIdRcUserIdMessageUserinfobotOnTelegramAndItRepliesWithTheNumber","Provide your numeric Telegram id: /rc user <id>. Message @userinfobot on Telegram and it replies with the number."))}info(e,t("unknownRcArgument",'Unknown /rc argument "{{v0}}". {{v1}}',{v0:o,v1:t("tryRcRcStatusRcDefaultRcAutoAcceptRcYoloRcOffRcTelegramOffRcDiscordOffRcTokenBotTokenRcUserId","Try: /rc · /rc status · /rc default · /rc auto-accept · /rc yolo · /rc off · /rc telegram off · /rc discord off · /rc token <bot-token> · /rc user <id>")}))}}__name(startRemote,"startRemote"),__name(restartActiveRemote,"restartActiveRemote"),__name(disconnect,"disconnect"),__name(handleRcCommand,"handleRcCommand"),Jt();var vW=/("[^"]+"|(?:[\w-]+\.)+(?:com|org|net|io|dev|me|app)(?:\/[\w\-./]*)?|(?<![\w./])\/[\w-]+|@[\w-]+)/g,SW=__name(e=>/^[\w-]+\./.test(e),"isAddress");function urlFor(e,n){return SW(e)?`https://${e}`:e.startsWith("@")&&"telegram"===n?`https://t.me/${e.slice(1)}`:""}function splitStepTokens(e,n="telegram"){return e.split(vW).map((e,o)=>{const r=o%2==1,s=r?urlFor(e,n):"";return{text:e,isToken:r,...""===s?{}:{url:s}}}).filter(e=>""!==e.text)}__name(urlFor,"urlFor"),__name(splitStepTokens,"splitStepTokens");var wW={telegram:"Telegram",discord:"Discord"},kW=__name(()=>[{label:"Telegram",value:"telegram",description:t("driveThisSessionFromATelegramBot","Drive this session from a Telegram bot.")},{label:"Discord",value:"discord",description:t("aThreadPerSessionSoSeveralCanRunAtOnce","A thread per session, so several can run at once.")}],"PLATFORM_OPTIONS"),CW=__name(()=>[{label:modeLabel("default"),value:"default",description:t("asksBeforeEachNewToolApproveOrDenyInTheChat","Asks before each new tool. Approve or Deny in the chat.")},{label:modeLabel("auto-accept"),value:"auto-accept",description:t("readsAndWritesFilesAsksBeforeRunningCommands","Reads and writes files. Asks before running commands.")},{label:modeLabel("bypass"),value:"bypass",description:t("dangerouslyBypassesEveryPermissionNeverAsks","Dangerously bypasses every permission. Never asks.")}],"MODE_OPTIONS"),bW=__name(()=>({label:t("disconnect","Disconnect"),value:"off",description:t("stopTheBotTheSessionKeepsRunningHere","Stop the bot. The session keeps running here.")}),"STOP_OPTION"),TW=__name(()=>[{label:t("takeItOver","Take it over"),value:"takeover",description:t("thatSessionDisconnectsThisOneTakesTheBot","That session disconnects, this one takes the bot.")},{label:t("leaveItAlone","Leave it alone"),value:"cancel",description:t("thatSessionKeepsTheBot","That session keeps the bot.")}],"HELD_OPTIONS"),EW=__name(()=>[{label:t("disconnect","Disconnect"),value:"stop",description:t("keepTheChatHistory","Keep the chat history.")},{label:t("disconnectAndClearAllChatHistory","Disconnect and clear all chat history"),value:"stop-clear",description:t("deleteTheBotSMessagesYoursStay","Delete the bot's messages. Yours stay.")}],"STOPPING_OPTIONS"),PW=__name(e=>n=>/^\d+$/.test(n)?void 0:t("isDigitsOnly","{{v0}} is digits only.",{v0:e}),"digitsOnly"),MW=__name(()=>({telegram:[{key:"token",title:t("createTheBot","create the bot"),steps:[t("1OpenTelegramAndSearchForBotfather","1. Open Telegram and search for @BotFather"),t("2SendItNewbot","2. Send it /newbot"),t("3ItAsksForANameThenAUsernameAnyNameWillDo","3. It asks for a name, then a username. Any name will do;"),t("theUsernameHasToEndInBotEGYournameCmdBot",' the username has to end in "bot" (e.g. yourname_cmd_bot)'),t("4ItRepliesWithATokenCopyItAndPasteItHere","4. It replies with a token. Copy it and paste it here")],reject:__name(e=>/^\d+:[A-Za-z0-9_-]{20,}$/.test(e)?void 0:t("thatDoesNotLookLikeABotTokenItIsANumberAColonThenALongString","That does not look like a bot token. It is a number, a colon, then a long string."),"reject")},{key:"allowedUserId",title:t("sayWhoMayUseIt","say who may use it"),steps:[t("1InTelegramSearchForUserinfobot","1. In Telegram, search for @userinfobot"),t("2SendItStart","2. Send it /start"),t("3ItRepliesWithYourUserIdPasteThatNumberHere","3. It replies with your user ID. Paste that number here")],reject:PW(t("yourTelegramId","Your Telegram id"))}],discord:[{key:"token",title:t("createTheBot","create the bot"),steps:[t("1OpenDiscordComDevelopersApplicationsAndLogIn","1. Open discord.com/developers/applications and log in"),t("2TopRightClickNewApplicationGiveItAnyName",'2. Top right: click "New Application". Give it any name,'),t("tickTheTermsBoxClickCreate",' tick the terms box, click "Create"'),t("3InTheLeftSidebarClickBot",'3. In the left sidebar, click "Bot"'),t("4ClickResetTokenConfirmThenCopyDiscordShows",'4. Click "Reset Token", confirm, then "Copy". Discord shows'),t("aTokenOnceIfYouLoseItResetItAgain"," a token once. If you lose it, reset it again"),t("5StillOnThatPageScrollToPrivilegedGatewayIntents",'5. Still on that page, scroll to "Privileged Gateway Intents"'),t("andTurnOnMessageContentIntentClickSaveChanges",' and turn ON "Message Content Intent". Click "Save Changes"'),t("6PasteTheTokenHere","6. Paste the token here")],reject:__name(e=>/^[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{20,}$/.test(e)?void 0:t("thatDoesNotLookLikeABotTokenItHasThreePartsSeparatedByDotsSoMakeSureYouCopiedTheBotTokenNotTheApplicationId",RW),"reject")},{key:"allowedUserId",title:t("sayWhoMayUseIt","say who may use it"),steps:[t("1InTheDiscordAppNotThePortalClickTheGearBy","1. In the Discord app (not the portal): click the gear by"),t("yourNameDeveloperTurnOnDeveloperMode",' your name → "Developer" → turn ON "Developer Mode"'),t("2RightClickYourOwnNameInAnyChatCopyUserId",'2. Right-click your own name in any chat → "Copy User ID"'),t("3PasteThatNumberHere","3. Paste that number here")],reject:PW(t("yourDiscordId","Your Discord id"))},{key:"channelId",title:t("inviteTheBotThenPickItsChannel","invite the bot, then pick its channel"),steps:[t("1BackInThePortalLeftSidebarOauth2",'1. Back in the portal, left sidebar: "OAuth2"'),t("2UnderOauth2UrlGeneratorTickTwoScopes",'2. Under "OAuth2 URL Generator", tick TWO scopes:'),t("botAndApplicationsCommands",' "bot" and "applications.commands"'),t("3ABotPermissionsBoxOpensUnderneathTickFour",'3. A "Bot Permissions" box opens underneath. Tick four:'),t("viewChannelsSendMessages",' "View Channels", "Send Messages",'),t("createPublicThreadsSendMessagesInThreads",' "Create Public Threads", "Send Messages in Threads"'),t("4AtTheBottomCopyTheGeneratedUrlOpenItInA",'4. At the bottom, copy the "Generated URL". Open it in a'),t("browserChooseYourServerClickAuthorize",' browser, choose your server, click "Authorize"'),t("5BackInDiscordRightClickTheChannelTheBotShould","5. Back in Discord, right-click the channel the bot should"),t("postInCopyChannelId",' post in → "Copy Channel ID"'),t("6PasteThatNumberHere","6. Paste that number here"),"",t("everyRcOpensItsOwnThreadInThatChannelSoSeveral","Every /rc opens its own thread in that channel, so several"),t("sessionsCanRunOnOneBotAtTheSameTime","sessions can run on one bot at the same time.")],reject:PW(t("aChannelId","A channel id"))}]}),"WIZARD"),IW=__name(()=>[t("1OpenTelegramAndFindTheBotYouJustMade","1. Open Telegram and find the bot you just made"),t("2SendItStart","2. Send it /start"),"",t("aBotCannotTextYouFirstSoThisIsWhatCreatesTheChat","A bot cannot text you first, so this is what creates the chat.")],"GREET_STEPS"),AW=__name(()=>[{label:t("doneCheckIt","Done, check it"),value:"greet-check",description:t("sendsAMessageBackSoYouSeeItWorks","Sends a message back, so you see it works.")},{label:t("skip2","Skip"),value:"greet-skip",description:t("nothingReachesTelegramUntilYouDoIt","Nothing reaches Telegram until you do it.")}],"GREET_OPTIONS"),xW=__name(e=>MW()[e].length+("telegram"===e?1:0),"stepCount"),RW="That does not look like a bot token. It has three parts separated by dots, so make sure you copied the Bot token, not the Application ID.",LW=__name(({line:e,provider:n})=>ct.createElement(nt,{color:XO.GRAY},splitStepTokens(e,n).map((e,n)=>{const o=`${e.text}:${String(n)}`;return e.url?ct.createElement(_D,{key:o,url:e.url,text:e.text,color:ZO}):ct.createElement(nt,{key:o,color:e.isToken?ZO:void 0,bold:e.isToken},e.text)})),"StepLine"),OW=__name(({lines:e,provider:n})=>ct.createElement(tt,{flexDirection:"column",marginBottom:1},e.map((e,o)=>""===e?ct.createElement(tt,{key:`gap-${String(o)}`,height:1}):ct.createElement(LW,{key:e,line:e,provider:n}))),"Steps"),DW=__name(({options:e,onSelect:n})=>ct.createElement(SelectInput,{items:e.map(e=>({label:e.label,value:e.value})),onSelect:n,indicatorComponent:s$,itemComponent:({isSelected:n,label:o})=>{const r=e.findIndex(e=>e.label===o),s=e[r],a=r===e.length-1;return ct.createElement(tt,{flexDirection:"column",marginBottom:a?0:1},ct.createElement(a$,{isSelected:n},` ${r+1}. ${s?.label??o}`),ct.createElement(c$,null,s?.description??""))}}),"OptionList"),NW=__name(({remoteActive:e,onSelect:n,onCancel:o})=>{const{t:r}=xt(),[s,a]=mt(()=>takeRcSelectorStep()??"platform"),[i,l]=mt(""),[c,d]=mt(null),[u,m]=mt(null),[p,g]=mt(void 0),[h,f]=mt("telegram"),[y,v]=mt(0),[S,w]=mt(void 0);gt(()=>{let e=!0;return loadRemoteConfig().then(n=>{e&&w(n)}),readRemoteLock().then(n=>{e&&g(n?.pid===process.pid?void 0:n)}),()=>{e=!1}},[]);const k=__name(e=>{if(!S)return;const n=resolveRemoteSettings(S,process.env,e);return MW()[e].every(e=>Boolean(n[e.key]))},"isConfigured"),C=__name(e=>{if(!S)return 0;const n=resolveRemoteSettings(S,process.env,e),o=MW()[e].findIndex(e=>!n[e.key]);return-1===o?0:o},"firstMissingField");at((e,n)=>{n.escape&&("platform"!==s?(a("platform"),d(null),l("")):o())});const b=__name(n=>e?[...n,bW()]:n,"withStop"),T=__name(e=>"held"===e?TW():"stopping"===e?EW():"greet"===e?AW():b("platform"===e?kW():CW()),"optionsFor")(s),E=__name(e=>!0===k(e)?"mode":(v(C(e)),"field"),"afterSetup"),P=__name(r=>{if("telegram"===r.value||"discord"===r.value){const n=r.value;return f(n),m(null),void a("telegram"!==n||void 0===p||e?E(n):"held")}if("cancel"!==r.value)if("takeover"!==r.value)if("off"!==r.value){if("greet-check"!==r.value)return"greet-skip"===r.value?(m(null),void a("mode")):void("stop"!==r.value&&"stop-clear"!==r.value?n({kind:"start",provider:h,mode:r.value,takeover:void 0!==p}):n({kind:"stop",clearChat:"stop-clear"===r.value}));x()}else a("stopping");else a(E(h));else o()},"handleSelect"),M=__name((e,n)=>{updateRemoteProviderConfig(h,e).then(()=>{d(null),l(""),a(n)},e=>{d(r("couldNotSave","Could not save: {{v0}}",{v0:String(e)}))})},"save"),I=__name(e=>{d(e),l("")},"reject"),A=__name(e=>{const n=MW()[h],o=n[y];if(!o)return;const r=e.trim(),s=o.reject(r);if(s)return void I(s);const a=y===n.length-1,i="telegram"===h?"greet":"mode";M({[o.key]:r},a?i:"field"),a||v(y+1)},"submitField"),x=__name(()=>{m(r("sendingAMessageToYourBot","Sending a message to your bot…")),loadRemoteConfig().then(e=>{const n=resolveRemoteSettings(e,process.env,"telegram"),{token:o,allowedUserId:s}=n;return o&&s?greetTelegramChat({token:o,chatId:s}):{kind:"failed",reason:r("theCredentialsAreNotSaved","the credentials are not saved")}}).then(e=>{if("greeted"===e.kind)return m(null),void a("mode");m("not-started"===e.kind?r("telegramHasNoChatYetSendYourBotStartThenTryAgain","Telegram has no chat yet. Send your bot /start, then try again."):r("telegramRefused","Telegram refused: {{v0}}",{v0:e.reason}))})},"checkGreeting");if("greet"===s)return ct.createElement(oF,{title:r("remoteControl2","Remote control"),subtitle:r("stepOfOpenTheChat","{{v0}} · step {{v1}} of {{v2}} · open the chat",{v0:wW.telegram,v1:xW("telegram"),v2:xW("telegram")}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",r("toGoBack","to go back")),gapAfterHeader:!1},ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(OW,{lines:IW(),provider:"telegram"}),ct.createElement(DW,{options:AW(),onSelect:P}),u&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},u))));if("field"===s){const e=MW()[h][y];return e?ct.createElement(oF,{title:r("remoteControl2","Remote control"),subtitle:r("stepOf","{{v0}} · step {{v1}} of {{v2}} · {{v3}}",{v0:wW[h],v1:y+1,v2:xW(h),v3:e.title}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",r("toGoBack","to go back")),gapAfterHeader:!1},ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(OW,{lines:e.steps,provider:h}),ct.createElement(tt,null,ct.createElement(TextInput,{value:i,focus:!0,prefix:`${vt.pointer} `,prefixColor:ZN,onChange:e=>{l(e),d(null)},onSubmit:A})),c&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.RED},c)))):ct.createElement(tt,null)}const R=__name(n=>"held"===n?r("anotherSessionHasTheBot2","Another session has the bot"):"stopping"===n?r("clearTheChatOnTheWayOut","Clear the chat on the way out?"):"mode"===n?r("whichPermissionMode","Which permission mode?"):r("runThisSessionFromAChatAppCurrently","Run this session from a chat app · currently {{v0}}",{v0:translateUiCopy(e?"on":"off")}),"subtitleFor");return ct.createElement(oF,{title:r("remoteControl2","Remote control"),subtitle:R(s),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",r("to","to")," ","platform"===s?r("cancelLower","cancel"):r("goBack","go back"))},"held"===s&&p&&ct.createElement(tt,{flexDirection:"column",marginBottom:1},describeLockHolder(p).split("\n").map(e=>ct.createElement(nt,{key:e,color:XO.GRAY},e)),ct.createElement(nt,{color:XO.GRAY},r("telegramAllowsOneSessionPerBotSoOnlyOneCanHaveIt","Telegram allows one session per bot, so only one can have it."))),ct.createElement(DW,{options:T,onSelect:P}),u&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},u)))},"RcSelector");Jt(),hL();var FW=[{value:"auto",labelKey:"themeAuto",labelDefault:"Auto theme",descriptionKey:"themeAutoDescription",descriptionDefault:"Automatically detect your terminal background and use light or dark to match."},{value:"dark",labelKey:"themeDark",labelDefault:"Dark theme",descriptionKey:"themeDarkDescription",descriptionDefault:"Use purple accent colors on dark backgrounds."},{value:"light",labelKey:"themeLight",labelDefault:"Light theme",descriptionKey:"themeLightDescription",descriptionDefault:"Use higher-contrast colors for white terminal backgrounds."}];function labelFor(e,n){return"auto"===e.value?`${e.label} (${n})`:e.label}__name(labelFor,"labelFor");var _W=__name(({onSelect:e,onCancel:n})=>{const{t:o}=xt(),{t:r}=xt(),[s]=mt(()=>getCliTheme()),[a]=mt(()=>resolveCliTheme("auto")),i=ut(()=>FW.map(e=>({value:e.value,label:labelFor({value:e.value,label:r(e.labelKey,e.labelDefault)},a),description:r(e.descriptionKey,e.descriptionDefault)})),[a,r]),l=__name(n=>{const o=i.find(e=>e.value===n.value)?.value;o&&e(o)},"handleSelect");at((e,o)=>{o.escape&&n()});const c=i.findIndex(e=>e.value===s),d=i.find(e=>e.value===s)?.label??o("theme","{{v0}} theme",{v0:s});return ct.createElement(oF,{title:r("selectTheme","Select a theme"),subtitle:r("themeSubtitle",{defaultValue:"Choose the color palette for this terminal · currently {{label}}",label:d}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("pressEscToCancel","Press Esc to cancel"))},ct.createElement(SelectInput,{items:i,onSelect:l,initialIndex:c>=0?c:0,indicatorComponent:s$,itemComponent:({isSelected:e,label:n})=>{const o=i.findIndex(e=>e.label===n),r=i[o],a=r?.value===s,l=o===i.length-1;return ct.createElement(tt,{flexDirection:"column",marginBottom:l?0:1},ct.createElement(tt,null,ct.createElement(a$,{isSelected:e,isActive:a,idleColor:XO.DIM},` ${o+1}. ${r?.label??n}`),a&&ct.createElement(l$,null)),ct.createElement(c$,null,r?.description??""))}}))},"ThemeSelector");Jt();var $W=new Set,UW=!1;function isTodosManagerOpen(){return UW}function requestTodosManagerOpen(){for(const e of $W)e()}function statusColor(e){return"completed"===e?XO.GREEN:"in_progress"===e?XO.CYAN:XO.WHITE}function TodoRow({todo:e,selected:n}){const{t:o}=xt(),r="completed"===e.status?vt.checkboxOn:vt.checkboxOff,s=n?kD:void 0;return ct.createElement(tt,null,ct.createElement(s$,{isSelected:n,backgroundColor:s}),ct.createElement(nt,{color:statusColor(e.status),backgroundColor:s}," ",r),ct.createElement(nt,{color:n?ZN:statusColor(e.status),strikethrough:"completed"===e.status,backgroundColor:s,wrap:"truncate-end"}," ",e.content),"in_progress"===e.status&&ct.createElement(nt,{color:XO.DIM,backgroundColor:s}," ",o("inProgress","(in progress)")))}function TodosManagerPanel({sessionId:e,onExpandedChange:n}){const{t:o}=xt(),r=useSessionTodos(),[s,a]=mt(!1),[i,l]=mt(0);gt(()=>(UW=s,n?.(s),()=>{UW=!1,n?.(!1)}),[s,n]),gt(()=>{const e=__name(()=>{l(0),a(!0)},"listener");return $W.add(e),()=>{$W.delete(e)}},[]),gt(()=>{if(0===r.length)return a(!1),void l(0);l(e=>Math.min(e,r.length-1))},[r.length]);const c=__name(n=>{hO(e)?.applyTodoUserEdit(n)},"syncHarness");if(at((e,n)=>{if(n.escape||n.leftArrow||n.ctrl&&"x"===e||""===e)a(!1);else if(0!==r.length)if(n.upArrow)l(e=>Math.max(0,e-1));else if(n.downArrow)l(e=>Math.min(r.length-1,e+1));else{if("c"===e){const e=r[i];return void c({todos:completeSessionTodoAt(i),...e?{completedContents:[e.content]}:{}})}if("x"===e){const e=r[i];return void c({todos:removeSessionTodoAt(i),...e?{removedContents:[e.content]}:{}})}"a"===e&&c({todos:[],completedContents:completeAllSessionTodos()})}},{isActive:s}),!s)return null;const d=r.filter(e=>"completed"===e.status).length;return ct.createElement(oF,{title:o("todos","Todos"),subtitle:d>0?o("itemsDone","{{v0}} items · {{v1}} done",{v0:r.length,v1:d}):o("items","{{v0}} items",{v0:r.length}),gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},ct.createElement(tt,{flexDirection:"column",marginTop:1},r.map((e,n)=>ct.createElement(TodoRow,{key:e.id??n,todo:e,selected:n===i}))))}__name(isTodosManagerOpen,"isTodosManagerOpen"),__name(requestTodosManagerOpen,"requestTodosManagerOpen"),__name(statusColor,"statusColor"),__name(TodoRow,"TodoRow"),__name(TodosManagerPanel,"TodosManagerPanel"),Jt(),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt();var BW=__name(e=>{if(!e)return t("inheritFromSession","Inherit from session");for(const n of UL)for(const o of n.models)if(o.id===e)return o.label;return e},"agentModelLabel"),jW=[{value:"inherit",get label(){return t("1InheritFromSessionDefault","1. Inherit from session (default)")}},{value:"pick",get label(){return t("2PickASpecificModel","2. Pick a specific model")}}],WW=__name(({selectedModel:e,onSelect:n})=>{const{t:o}=xt(),[r,s]=mt("choice"),[a,i]=mt(e?1:0);return at((e,o)=>{if(o.upArrow)i(e=>Math.max(0,e-1));else if(o.downArrow)i(e=>Math.min(jW.length-1,e+1));else if("1"!==e)if("2"!==e){if(o.return){const e=jW[a];if(!e)return;"inherit"===e.value?n(null):s("picker")}}else s("picker");else n(null)},{isActive:"choice"===r}),"picker"===r?ct.createElement(Aj,{onSelect:e=>n(e),onCancel:()=>s("choice"),currentModel:e,subtitle:o("pinAModelForThisAgentItWillAlwaysRunOnThisModelIndependentOfTheSessionSModel","Pin a model for this agent. It will always run on this model, independent of the session's /model."),skipEffortStep:!0}):ct.createElement(tt,{flexDirection:"column"},jW.map((e,n)=>{const o=n===a;return ct.createElement(tt,{key:e.value},ct.createElement(nt,{color:o?XO.WHITE:XO.GRAY,backgroundColor:o?kD:void 0,bold:o},o?">":" "," ",e.label))}),e&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},o("currentlyPinned","Currently pinned:")," ",BW(e))),ct.createElement(YN,{hints:[o("navigate","↑↓ navigate"),o("enterToSelect","Enter to select"),o("inheritFollowsModelPinnedAgentsKeepTheirOwnModelAndPromptCache","Inherit follows /model; pinned agents keep their own model and prompt cache")]}))},"AgentModelSelector"),HW=__name(({config:e,onSaveComplete:n,viewOnly:o=!1})=>{const{t:r}=xt(),[s,a]=mt("idle"),[i,l]=mt(""),c=__name(async()=>{if(!e.location||!e.agentType||!e.sysPrompt)return a("error"),void l(r("agentConfigurationIsIncomplete","Agent configuration is incomplete"));a("saving");try{await saveAgentDefinition({runtime:createNodeRuntime(),location:e.location,name:e.agentType,description:e.ccToolDefinition,systemPrompt:e.sysPrompt,selectedTools:[...e.selectedTools],allToolNames:vS,model:e.model,reasoningEffort:e.reasoningEffort}),n(e.agentType)}catch(e){console.error(r("errorSavingAgent","Error saving agent:"),e),a("error"),l(e instanceof Error?e.message:r("unknownErrorOccurred","Unknown error occurred"))}},"handleSaveAgent");at((e,n)=>{o||!n.return||"idle"!==s&&"error"!==s||c()});const d=formatAgentToolAccessForDisplay({access:[...e.selectedTools],allToolNames:vS,displayNameByToolName:kS,displayNameToToolName:CS}),u=e.location&&e.agentType?getAgentDisplayPath({location:e.location,name:e.agentType}):"";return ct.createElement(tt,{flexDirection:"column",gap:1},ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("name","Name:")),ct.createElement(nt,{color:XO.GRAY},e.agentType)),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("location","Location:")),ct.createElement(nt,{color:XO.GRAY},u)),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("tools","Tools:")),ct.createElement(nt,{color:XO.GRAY},d)),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("model2","Model:")),ct.createElement(nt,{color:XO.GRAY},BW(e.model))),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("reasoningEffort","Reasoning effort:")),ct.createElement(nt,{color:XO.GRAY},e.reasoningEffort??r("modelDefault","model default")))),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("description","Description")),ct.createElement(nt,{color:XO.GRAY},r("tells","(Tells")," ","Command Code"," ",r("whenToUseThisAgent","when to use this agent):"))),ct.createElement(nt,{color:XO.GRAY},e.ccToolDefinition),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("systemPrompt2","System Prompt:"))),ct.createElement(nt,{color:XO.GRAY},e.sysPrompt),!o&&ct.createElement(tt,{marginTop:1},"idle"===s&&ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toSave","to save ·")," ",ct.createElement(qN,null,"Esc")," ",r("toCancel","to cancel")),"saving"===s&&ct.createElement(nt,{color:XO.YELLOW},r("savingAgent","Saving agent…")),"saved"===s&&ct.createElement(BF,null,i),"error"===s&&ct.createElement(tt,{flexDirection:"column"},ct.createElement(UF,null,r("error","Error:")," ",i),ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toRetry","to retry")))))},"AgentSummary"),GW=__name(()=>[{label:t("1YesDelete","1. Yes, delete"),value:"confirm-delete"},{label:t("2NoCancel","2. No, cancel"),value:"cancel"}],"DELETE_ITEMS"),VW=__name(({agent:e,onBack:n,setRevalidateAgent:o,isReadOnly:r=!1})=>{const{t:s}=xt(),[a,i]=mt("menu"),l=new Set(resolveAgentToolSelection({access:e.tools,allToolNames:vS,displayNameToToolName:CS})),c={location:e.location,method:"manual",agentType:e.name,sysPrompt:e.sysPrompt,ccToolDefinition:e.description,recommendedMethodDescription:"",selectedTools:l,model:e.model??null,reasoningEffort:e.reasoningEffort??null},d=[{label:s("1ViewAgent","1. View agent"),value:"view"},...r?[]:[{label:s("2DeleteAgent","2. Delete agent"),value:"delete"}],{label:r?s("2Back","2. Back"):s("3Back","3. Back"),value:"back"}],u=__name(e=>{"back"!==e.value?"view"!==e.value?"edit"!==e.value?"delete"===e.value&&i("delete"):i("edit"):i("view"):n()},"handleMenuSelect"),m=__name(async r=>{if("confirm-delete"===r.value)try{await deleteAgentDefinition({runtime:createNodeRuntime(),filePath:e.filePath}),o(!0),n()}catch(e){console.error(s("failedToDeleteAgent","Failed to delete agent: {{v0}}",{v0:e})),i("menu")}else i("menu")},"handleDeleteSelect");return at((e,o)=>{if(o.escape)return"menu"===a?void n():void i("menu");if(o.return&&"view"===a)return void i("menu");if(1!==e.length||e<"1"||e>"9")return;const r=Number(e)-1;if("menu"===a){const e=d[r];return void(e&&u(e))}if("delete"===a){const e=GW()[r];e&&m(e)}}),"view"===a?ct.createElement(oF,{title:e.name,gapAfterHeader:!1,footer:ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Enter")," ",s("toGoBack","to go back"))},ct.createElement(HW,{config:c,onSaveComplete:()=>i("menu"),viewOnly:!0})):"edit"===a?ct.createElement(oF,{title:e.name,gapAfterHeader:!1},ct.createElement(nt,{color:XO.YELLOW},s("editFunctionalityComingSoon","Edit functionality coming soon...")),ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Esc")," ",s("toGoBack","to go back"))):"delete"===a?ct.createElement(oF,{title:s("deleteAgent","Delete agent"),subtitle:s("areYouSureYouWantToDeleteTheAgent","Are you sure you want to delete the agent {{v0}}?",{v0:e.name})},ct.createElement(tt,null,ct.createElement(SelectInput,{items:GW(),onSelect:m,indicatorComponent:m$,itemComponent:u$}))):ct.createElement(oF,{title:e.name,footer:ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"↑↓")," ",s("toNavigate","to navigate ·")," ",ct.createElement(qN,null,"Enter")," ",s("toSelect","to select ·")," ",ct.createElement(qN,null,"Esc")," ",s("toGoBack","to go back"))},ct.createElement(SelectInput,{items:d,onSelect:u,indicatorComponent:m$,itemComponent:u$}))},"AgentDetails");Jt();var KW="https://commandcode.ai/docs/core-concepts/custom-agents",zW=__name(({onDone:e})=>{const{t:n}=xt();return at((n,o)=>{o.return&&e()}),ct.createElement(oF,{title:n("createAgentsWithCommandCode","Create agents with Command Code"),gapAfterHeader:!1,boxProps:{gap:1}},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},n("askCommandCodeToCreateOrUpdateSubagentsForYouEG","Ask Command Code to create or update subagents for you, e.g.")),ct.createElement(nt,{color:XO.GRAY}," ",vt.pointerSmall," ",n("createACodeReviewerSubagentThatReviewsDiffsForBugs","“create a code-reviewer subagent that reviews diffs for bugs”")),ct.createElement(nt,{color:XO.GRAY}," ",vt.pointerSmall," ",n("makeAChangelogAgentThatUsesAFastModel","“make a changelog agent that uses a fast model”"))),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},n("orEditTheFilesDirectly","Or edit the files directly:")),ct.createElement(nt,{color:XO.GRAY},n("commandcodeAgentsThisProject"," • .commandcode/agents/ (this project)")),ct.createElement(nt,{color:XO.GRAY},n("commandcodeAgentsAllProjects"," • ~/.commandcode/agents/ (all projects)"))),ct.createElement(nt,{color:XO.GRAY},n("docs3","Docs:")," ",KW),ct.createElement(zN,null,n("press","Press")," ",ct.createElement(qN,null,"Enter")," ",n("toGoBackAndJustAsk","to go back and just ask")))},"AskCommandCodeGuide"),qW=__name(({handleSelect:e,createdAgentName:n})=>{const{t:o}=xt(),[r,s]=mt([]),[a,i]=mt([]),[l,c]=mt([]),[d,u]=mt(!0),[m,p]=mt(!1),[g,h]=mt(null),[f,y]=mt(!1),[v,S]=mt(0),[w,k]=mt(0),C=useTerminalHeight();gt(()=>{__name(async()=>{u(!0),p(!1);const{personal:e,project:n}=await discoverAgents({runtime:createNodeRuntime()}),o=listDefaultAgentsForDisplay();s(e.map(e=>toDisplayAgent({definition:e,location:"personal"}))),i(n.map(e=>toDisplayAgent({definition:e,location:"project"}))),c(o),u(!1)},"loadAgents")()},[m]);const b=[{label:o("1CreateAgentsWithCommandCodeRecommended","1. Create agents with Command Code (recommended)"),value:"ask_command_code"},{label:o("2CreateManually","2. Create manually"),value:"create_new_agent"}];r.forEach(e=>{b.push({label:e.name,value:e.filePath})}),a.forEach(e=>{b.push({label:e.name,value:e.filePath})}),l.forEach(e=>{b.push({label:e.name.charAt(0).toUpperCase()+e.name.slice(1),value:e.filePath})});const T=r.length+a.length,E=(r.length>0?1:0)+(a.length>0?1:0)+(l.length>0?1:0),P=__name(e=>e<2?"action":e<2+r.length?"user":e<2+r.length+a.length?"project":"default","sectionOf"),M=C-1,I=Math.max(4,M-12-2*E),A=__name(n=>{if("ask_command_code"===n.value||"create_new_agent"===n.value)return void e(n);const o=[...r,...a,...l].find(e=>e.filePath===n.value);o&&(h(o),y(!0))},"handleAgentSelect");if(at((e,n)=>{if(n.upArrow)S(e=>Math.max(0,e-1));else if(n.downArrow)S(e=>Math.min(b.length-1,e+1));else if(n.return){const e=b[v];e&&A(e)}},{isActive:!d&&!f}),gt(()=>{S(e=>Math.min(e,Math.max(0,b.length-1)))},[b.length]),gt(()=>{k(e=>clampScrollOffset({cursor:v,total:b.length,maxVisible:I,currentOffset:e}))},[v,b.length,I]),d)return ct.createElement($F,{label:o("loadingAgents","Loading agents")});if(f&&g){const e=isBuiltinAgentPath(g.filePath);return ct.createElement(VW,{agent:g,onBack:()=>{y(!1),h(null)},setRevalidateAgent:p,isReadOnly:e})}const x=w,R=w+I,L=b.slice(x,R),O=b.length>I;let D=null;return ct.createElement(oF,{title:o("agents","Agents"),titleSuffix:T>0?o("agent"," ({{v0}} agent{{v1}})",{v0:T,v1:T>1?"s":""}):o("noCustomAgents"," (No custom agents)")},n&&ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{color:XO.GREEN,dimColor:!0},o("createdAgent","Created agent:")," ",n)),ct.createElement(tt,{flexDirection:"column"},L.map((e,n)=>{const r=x+n,s=P(r),a="action"!==s&&s!==D;D=s;const i=r===v,l="user"===s?o("userAgents","User agents"):"project"===s?o("projectAgents","Project agents"):o("defaultAgentsReadOnly","Default agents (read-only)");return ct.createElement(ct.Fragment,{key:e.value},a&&ct.createElement(tt,{marginTop:0===n?0:1},ct.createElement(nt,{color:cD,bold:!0},l)),ct.createElement(tt,null,ct.createElement(nt,{color:i?XO.WHITE:XO.GRAY,backgroundColor:i?kD:void 0,bold:i},i?"> ":" ",e.label," ")))})),O&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},o("showing","Showing")," ",x+1,"–",Math.min(R,b.length)," ",o("of","of")," ",b.length,x>0?o("more3"," · ↑ more"):"",R<b.length?o("more4"," · ↓ more"):"")),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(YN,{hints:[o("navigate","↑↓ navigate"),o("enterToSelect","Enter to select"),o("escToClose","Esc to close")],marginTop:0}),ct.createElement(nt,{color:XO.DIM},o("agentsLiveInCommandcodeAgentsProjectAndCommandcodeAgentsAllProjectsEditTheFilesDirectlyAnytime","Agents live in .commandcode/agents/ (project) and ~/.commandcode/agents/ (all projects) — edit the files directly anytime.")),ct.createElement(nt,{color:XO.DIM},o("docs3","Docs:")," ",KW)))},"ManageAgents");Jt(),hL(),Jt(),Jt(),hL();var YW=__name(({model:e,selectedEffort:n,onSelect:o,onBack:r})=>{const s=(e?getSupportedEfforts(e):null)??[];return ct.createElement(Tj,{modelLabel:BW(e),supportedEfforts:s,currentEffort:n??void 0,onSelect:e=>o(e??null),onCancel:r})},"AgentEffortSelector");Jt();var JW=__name(()=>[{label:t("1ProjectAgents","1. Project ({{v0}}/agents/)",{v0:".commandcode"}),value:"project"},{label:t("2PersonalAgents","2. Personal (~/{{v0}}/agents/)",{v0:".commandcode"}),value:"personal"}],"LOCATIONS"),QW=__name(({onSelect:e})=>(xt(),ct.createElement(SelectInput,{items:JW(),onSelect:n=>{"project"!==n.value&&"personal"!==n.value||e(n.value)},indicatorComponent:s$,itemComponent:i$})),"LocationSelector");Jt(),hL();var XW=__name(({step:e,agentType:n,sysPrompt:o,ccToolDefinition:r,onAgentTypeChange:s,onSysPromptChange:a,onCCToolDefinitionChange:i,onAgentTypeSubmit:l,onSysPromptSubmit:c,onCCToolDefinitionSubmit:d})=>{const{t:u}=xt(),m=n?validateAgentName({name:n,displayNameByToolName:kS}):null,p=usePasteAwareChange({onChange:a}),g=usePasteAwareChange({onChange:i});return"agentType"===e?ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.WHITE},u("enterAUniqueIdentifierForYourAgent","Enter a unique identifier for your agent:")),"tool_conflict"===m?.issue&&ct.createElement(nt,{color:XO.RED},vt.warning," ",u("thisNameConflictsWithAnExistingToolNamePleaseChooseADifferentName","This name conflicts with an existing tool name. Please choose a different name.")),"reserved"===m?.issue&&ct.createElement(nt,{color:XO.RED},vt.warning," ",u("thisNameIsReservedReservedNames","This name is reserved. Reserved names:")," ",Nw.join(", "))),ct.createElement(TextInput,{showCursor:!0,value:n||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"agentType",config:{agentType:n,sysPrompt:o,ccToolDefinition:r}})&&l()},onChange:s,placeholder:u("eGCodeReviewerUnitTester","e.g. code-reviewer, unit-tester")})):"sysPrompt"===e?ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.WHITE},u("enterTheSystemPromptForYourAgent","Enter the system prompt for your agent:")),ct.createElement(nt,{color:XO.GRAY},u("beComprehensiveForBestResults","Be comprehensive for best results."))),ct.createElement(TextInput,{showCursor:!0,value:o||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"sysPrompt",config:{agentType:n,sysPrompt:o,ccToolDefinition:r}})&&c()},onChange:p,placeholder:u("youAreAHelpfulCodingReviewer","You are a helpful coding reviewer...")})):"ccToolDefinition"===e?ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.WHITE},u("whenShould","When should")," ","Command Code"," ",u("useThisAgent","use this agent?")),ct.createElement(TextInput,{showCursor:!0,value:r,onSubmit:()=>{canSubmitAgentManualStep({manualStep:"ccToolDefinition",config:{agentType:n,sysPrompt:o,ccToolDefinition:r}})&&d()},onChange:g,placeholder:u("eGUseThisAgentWhenYouAreDoneWritingCode","e.g., Use this agent when you are done writing code...")})):null},"ManualFlow");Jt(),hL();var ZW=__name((e,n)=>e?"[x]":"[ ]","categoryCheckbox"),eH=__name(({selectedTools:e,onToggleTool:n,onToggleCategory:o,onComplete:r})=>{const{t:s}=xt(),[a,i]=mt(!1),[l,c]=mt(0),[d,u]=mt(0),m=useTerminalHeight(),p=ut(()=>{const e=[];return e.push({type:"continue",value:"continue"}),e.push({type:"divider",value:"divider-1"}),IS.forEach(n=>{e.push({type:"category",value:n.name})}),a?(e.push({type:"divider",value:"divider-3"}),e.push({type:"toggle",value:"hide-advanced"}),e.push({type:"spacer",value:"spacer-1"}),e.push({type:"label",value:s("individualTools","Individual Tools:")}),vS.forEach(n=>{e.push({type:"tool",value:n})}),e):(e.push({type:"divider",value:"divider-2"}),e.push({type:"toggle",value:"show-advanced"}),e)},[a,s]),g=p.map((n,o)=>{if("divider"===n.type)return{label:"─".repeat(30),value:o,type:"divider"};if("spacer"===n.type)return{label:"",value:o,type:"spacer"};if("label"===n.type)return{label:n.value,value:o,type:"label"};if("continue"===n.type)return{label:s("continue2","[ Continue ]"),value:o,type:"continue"};if("toggle"===n.type)return{label:"show-advanced"===n.value?s("showAdvancedOptions","[ Show advanced options ]"):s("hideAdvancedOptions","[ Hide advanced options ]"),value:o,type:"toggle"};if("category"===n.type){const r=IS.find(e=>e.name===n.value),s=r?.tools.every(n=>e.has(n)),a=r?.tools.some(n=>e.has(n));return{label:`${ZW(Boolean(s),Boolean(a))} ${translateUiCopy(n.value)}`,value:o,type:"category"}}return"tool"===n.type?{label:` ${e.has(n.value)?"[x]":"[ ]"} ${translateUiCopy(kS[n.value]||n.value)}`,value:o,type:"tool"}:{label:"",value:o,type:"unknown"}}),h=g.filter(e=>"divider"!==e.type&&"spacer"!==e.type&&"label"!==e.type),f=Math.max(5,m-1-10),y=h[l]?.value??0;gt(()=>{u(e=>clampScrollOffset({cursor:y,total:g.length,maxVisible:f,currentOffset:e}))},[y,g.length,f]);const v=d,S=d+f,w=g.slice(v,S),k=g.length>f;return at((e,s)=>{if(s.upArrow)return void c(e=>{const n=e-1;return n<0?h.length-1:n});if(s.downArrow)return void c(e=>{const n=e+1;return n>=h.length?0:n});if(!s.return&&" "!==e)return;const d=h[l];if(!d)return;const u=p[d.value];if(u){if("continue"!==u.type)return"toggle"===u.type?(i(!a),void c(0)):void("category"!==u.type?"tool"===u.type&&n(u.value):o(u.value));r()}}),ct.createElement(tt,{flexDirection:"column"},w.map(e=>{const n=h.findIndex(n=>n.value===e.value),o=-1!==n&&n===l;if("divider"===e.type)return ct.createElement(tt,{key:`divider-${e.value}`},ct.createElement(nt,{color:XO.GRAY}," ",e.label));if("spacer"===e.type)return ct.createElement(tt,{key:`spacer-${e.value}`,height:1});if("label"===e.type)return ct.createElement(tt,{key:`label-${e.value}`},ct.createElement(nt,{color:XO.GRAY}," ",e.label));const r="continue"===e.type;return ct.createElement(tt,{key:`item-${e.value}`},ct.createElement(nt,{color:o?XO.WHITE:XO.GRAY,bold:r&&o},o?">":" "," ",e.label))}),k&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.GRAY}," ",s("showing","Showing")," ",v+1,"–",Math.min(S,g.length)," ",s("of","of")," ",g.length,v>0?s("more3"," · ↑ more"):"",S<g.length?s("more4"," · ↓ more"):"")),ct.createElement(tt,{marginTop:1},e.size===vS.length&&ct.createElement(nt,{color:XO.GRAY},s("allToolsSelected","All tools selected")),e.size>0&&e.size<vS.length&&ct.createElement(nt,{color:XO.GRAY},e.size," ",s("toolsSelected","tools selected")),0===e.size&&ct.createElement(nt,{color:XO.GRAY},s("noToolsSelected","No tools selected"))))},"ToolsSelector"),tH=__name(({onComplete:e})=>{const{t:n}=xt(),[o,r]=mt(createAgentCreationState),{step:s,manualStep:a,config:i}=o,l=__name(e=>r(n=>reduceAgentCreation({state:n,event:e})),"dispatch"),c=__name(n=>{l({type:"reset"}),e(n)},"resetToDefaults"),d=__name(()=>{if("location"===s)return n("chooseLocation","Choose location");if("configuration"===s){if("agentType"===a)return n("agentTypeIdentifier","Agent type (identifier)");if("sysPrompt"===a)return n("systemPrompt","System prompt");if("ccToolDefinition"===a)return n("descriptionTellWhenToUseThisAgent","Description (Tell {{v0}} when to use this agent)",{v0:"Command Code"})}return"tools"===s?n("selectTools","Select tools"):"model"===s?n("selectModel2","Select model"):"effort"===s?n("selectReasoningEffort","Select reasoning effort"):"summary"===s?n("confirmAndSave","Confirm and save"):""},"getSubText"),u=__name(e=>{l({type:"select_location",location:e}),l({type:"select_method",method:"manual"})},"handleLocationSelect");return ct.createElement(oF,{title:n("createNewAgent","Create new agent"),subtitle:d()},ct.createElement(tt,null,"location"===s&&ct.createElement(QW,{onSelect:u}),"configuration"===s&&ct.createElement(tt,{flexDirection:"column",gap:1},ct.createElement(XW,{step:a,agentType:i.agentType,sysPrompt:i.sysPrompt,ccToolDefinition:i.ccToolDefinition,onAgentTypeChange:e=>l({type:"set_agent_type",value:e}),onSysPromptChange:e=>l({type:"set_sys_prompt",value:e}),onCCToolDefinitionChange:e=>l({type:"set_cc_tool_definition",value:e}),onAgentTypeSubmit:()=>l({type:"submit_agent_type"}),onSysPromptSubmit:()=>l({type:"submit_sys_prompt"}),onCCToolDefinitionSubmit:()=>l({type:"submit_cc_tool_definition"})})),"tools"===s&&ct.createElement(eH,{selectedTools:i.selectedTools,onToggleTool:e=>l({type:"toggle_tool",tool:e}),onToggleCategory:e=>l({type:"toggle_category",category:e}),onComplete:()=>l({type:"complete_tools"})}),"model"===s&&ct.createElement(WW,{selectedModel:i.model,onSelect:e=>l({type:"select_model",model:e})}),"effort"===s&&ct.createElement(YW,{model:i.model,selectedEffort:i.reasoningEffort??null,onSelect:e=>l({type:"select_effort",effort:e}),onBack:()=>l({type:"back"})}),"summary"===s&&ct.createElement(HW,{config:i,onSaveComplete:c})))},"AgentNew"),nH=__name(({onCancel:e})=>{const[n,o]=mt(null),[r,s]=mt(null),a=__name(e=>{o(e.value),s(null)},"handleSelect");return at((n,o)=>{o.escape&&e()}),ct.createElement(tt,{width:"100%",flexDirection:"column"},null===n&&ct.createElement(qW,{handleSelect:a,createdAgentName:r}),"ask_command_code"===n&&ct.createElement(zW,{onDone:e}),"create_new_agent"===n&&ct.createElement(tH,{onComplete:e=>{s(e),o(null)}}))},"AgentsConfig");Jt(),hL(),Jt(),Jt();var oH=__name(({error:e,traceId:n})=>{const{t:o}=xt();return ct.createElement(tt,{padding:1},ct.createElement(jF,{title:o("errorInitializingOnboarding","Error initializing onboarding:")},e,n&&ct.createElement(nt,{color:XO.DIM},"\n\n",o("traceId2","Trace ID:")," ",n),"\n\n",o("continuingWithoutOnboarding","Continuing without onboarding...")))},"OnboardingError");Jt(),Jt();var rH=__name(()=>ct.createElement(nt,null,t("skip2","Skip")),"SkipOptionText"),sH=__name(({sessionCount:e,agentSessions:n,onImport:o,onSkip:r})=>{const{t:s}=xt(),[a,i]=mt(1);return at((e,n)=>{n.escape?r():"n"!==e&&"N"!==e?n.upArrow||n.downArrow?i(e=>1===e?2:1):"1"!==e?"2"!==e?n.return&&(1===a?o():r()):r():o():dismissOnboardingForeverForProject().then(()=>r())}),ct.createElement(tt,{flexDirection:"column",borderStyle:"single",borderColor:eD.TEXT,paddingX:1,paddingY:0},ct.createElement(nt,{color:eD.TEXT,bold:!0},s("buildYourCodingTaste","Build Your Coding Taste")),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,null,s("found","Found")," ",1===e?s("oneSession","one session"):s("sessions","{{v0}} sessions",{v0:e})," ",s("from","from")," ",n.map(e=>e.displayName).join(", ")," ",s("forThisProject","for this project.")),ct.createElement(tt,{marginTop:1},ct.createElement(nt,null,s("analyze","Analyze")," ",1===e?s("thatSession","that session"):s("thoseSessions","those sessions")," ",s("toBuildYourCodingTastePackage","to build your coding taste package?")))),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:1===a?eD.TEXT:XO.GRAY},1===a?vt.pointer:" "," ",s("1YesLearnRecommended","1. Yes, learn (recommended)"))),ct.createElement(tt,null,ct.createElement(nt,{color:2===a?eD.TEXT:XO.GRAY},2===a?vt.pointer:" "," 2."," ",ct.createElement(rH,null)))),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},"↑↓ · "),ct.createElement(nt,{color:fD.CODE},"enter"),ct.createElement(nt,{color:XO.DIM}," ",s("ok","ok ·")," "),ct.createElement(nt,{color:fD.CODE},"esc"),ct.createElement(nt,{color:XO.DIM}," ",s("skip3","skip ·")," "),ct.createElement(nt,{color:fD.CODE},"n"),ct.createElement(nt,{color:XO.DIM}," ",s("never","never"))))},"ImportChoice"),aH=__name(({step:e,conditions:n,onImportStart:o,onImportComplete:r,onImportError:s,onErrorDismiss:a,onSkip:i})=>"asking"===e?n&&"has_sessions"===n.reason?ct.createElement(sH,{sessionCount:n.sessionCount,agentSessions:n.agentSessions,onImport:o,onSkip:i}):null:"learning"===e?ct.createElement(c_,{onComplete:r,onCancel:i,onError:s,onErrorDismiss:a}):null,"OnboardingStepRenderer"),iH=__name(({onComplete:e,autoLearn:n=!1})=>{gt(()=>(dlog("[UI:Onboarding] mounted"),()=>{dlog("[UI:Onboarding] unmounted")}),[]);const{conditions:o,error:r,traceId:s,isLoading:a}=YF({autoLearn:n,onShouldSkip:e}),{step:i,setStep:l}=JF({conditions:o,autoLearn:n}),{handleImportStart:c,handleImportComplete:d,handleImportError:u,handleErrorDismiss:m,handleSkip:p}=QF({onStepChange:__name(e=>{l(e)},"onStepChange"),onError:__name(()=>{},"onError"),onCompleteCallback:e});return dlog(`[UI:Onboarding] render: ${i}${o?.reason?` (${o.reason})`:""}${r?" ERROR":""}`),a?null:r?ct.createElement(oH,{error:r,traceId:s}):"done"===i||"asking"!==i&&"learning"!==i?null:ct.createElement(aH,{step:i,conditions:o,onImportStart:c,onImportComplete:d,onImportError:u,onErrorDismiss:m,onSkip:p})},"TasteOnboarding");Jt(),hL();var lH=__name(e=>0===e?t("noCodeChanges","No code changes"):t("fileChanged","{{v0}} file{{v1}} changed",{v0:e,v1:e>1?"s":""}),"formatFileCountLabel"),cH=__name(({checkpoints:e,onSelect:n,onCancel:o})=>{const{t:r}=xt(),s=ut(()=>[...e].sort((e,n)=>new Date(e.createdAt).getTime()-new Date(n.createdAt).getTime()),[e]),[a,i]=mt(()=>Math.max(0,s.length-1)),[l,c]=mt(()=>Math.max(0,s.length-8)),[d,u]=mt("checkpoint"),[m,p]=mt(null),[g,h]=mt(0),f=ut(()=>hasCodeChangesToRestore({sortedCheckpoints:s,selectedCheckpoint:m}),[m,s]),y=ut(()=>f?PA:PA.filter(e=>"conversation"===e.mode),[f]);if(gt(()=>{if(s.length>0){const e=s.length-1;i(e),c(Math.max(0,s.length-8))}},[s.length,8]),at((e,r)=>{if(r.escape)return"mode"===d?(u("checkpoint"),p(null),void h(0)):void o();"checkpoint"===d&&r.upArrow?i(e=>{const n=Math.max(0,e-1);return n<l&&c(n),n}):"checkpoint"===d&&r.downArrow?i(e=>{const n=Math.min(s.length-1,e+1);return n>=l+8&&c(n-8+1),n}):"checkpoint"===d&&r.return?s.length>0&&(p(s[a]),u("mode"),h(0)):"mode"===d&&r.upArrow?h(e=>Math.max(0,e-1)):"mode"===d&&r.downArrow?h(e=>Math.min(y.length-1,e+1)):"mode"===d&&r.return&&m&&y[g]&&n({messageId:m.messageId,mode:y[g].mode})}),0===s.length)return ct.createElement(oF,{title:r("rewind","Rewind"),subtitle:r("noCheckpointsAvailableStartAConversationToCreateCheckpoints","No checkpoints available. Start a conversation to create checkpoints."),gapAfterHeader:!1,footer:ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Esc")," ",r("toClose","to close"))});if("mode"===d&&m)return ct.createElement(oF,{title:r("rewind","Rewind"),subtitle:ct.createElement(ct.Fragment,null,r("restoreTo","Restore to:")," ",ct.createElement(nt,{color:XO.WHITE},truncateString2({text:m.prompt||r("checkpoint","checkpoint"),maxChars:50}))),footer:ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toConfirm","to confirm ·")," ",ct.createElement(qN,null,"Esc")," ",r("toGoBack","to go back"))},ct.createElement(tt,{flexDirection:"column"},y.map((e,n)=>{const o=g===n,r=n===y.length-1;return ct.createElement(tt,{key:e.mode,flexDirection:"column"},ct.createElement(tt,{flexDirection:"row"},ct.createElement(nt,{color:o?ZO:void 0},o?`${GD} `:" "),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:o?ZO:XO.WHITE},translateUiCopy(e.label)),ct.createElement(nt,{color:XO.DIM},translateUiCopy(e.description)))),!r&&ct.createElement(nt,null," "))})));const v=s.slice(l,l+8);return ct.createElement(oF,{title:r("rewind","Rewind"),subtitle:r("selectACheckpointToRestoreYourSession","Select a checkpoint to restore your session"),gapAfterHeader:!1,footer:ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toSelect","to select ·")," ",ct.createElement(qN,null,"Esc")," ",r("toCancel","to cancel"))},s.length>8&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},r("showing","Showing")," ",l+1,"-",Math.min(l+8,s.length)," ",r("of","of")," ",s.length)),ct.createElement(tt,{marginTop:1}),ct.createElement(tt,{flexDirection:"column"},v.map((e,n)=>{const o=l+n,i=a===o,c=e.filesModified.length,d=n===v.length-1,u=o===s.length-1;return ct.createElement(tt,{key:e.messageId,flexDirection:"column"},ct.createElement(tt,{flexDirection:"row"},ct.createElement(nt,{color:i?ZO:void 0},i?`${GD} `:" "),ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:i?ZO:XO.WHITE},truncateString2({text:e.prompt||r("noPrompt","(no prompt)"),maxChars:60})),ct.createElement(nt,{color:XO.DIM}," • "),ct.createElement(nt,{color:XO.DIM},getRelativeTimeString({timestamp:e.createdAt}),u&&r("latest"," (latest)"))),ct.createElement(nt,{color:XO.DIM},lH(c)))),!d&&ct.createElement(nt,null," "))})))},"RewindSelector");Jt(),hL();var dH=["default","no-tools","user-only","labeled-only","all"],uH={default:"","no-tools":"[no-tools]","user-only":"[user]","labeled-only":"[labeled]",all:"[all]"};function nextFilterMode(e){const n=dH.indexOf(e);return dH[(n+1)%dH.length]}function previousFilterMode(e){const n=dH.indexOf(e);return dH[(n-1+dH.length)%dH.length]}function buildToolCallMap(e){const n=new Map,o=__name(e=>{for(const r of e){const{entry:e}=r;if("message"===e.type&&"assistant"===e.message.role)for(const o of e.message.content)"tool_use"===o.type&&n.set(o.id,{name:o.name,input:o.input});o(r.children)}},"visit");return o(e),n}function pathArgOf(e){const n=e.file_path??e.path;return"string"==typeof n?toRelativePath(n):"?"}function formatToolBracket(e){const{name:n,input:o}=e;if("read_file"===n){const e=pathArgOf(o),n=o.offset,r=o.limit;return"number"==typeof n&&"number"==typeof r?t("read","[read: {{v0}}:{{v1}}-{{v2}}]",{v0:e,v1:n,v2:n+r}):t("read2","[read: {{v0}}]",{v0:e})}return"write_file"===n?t("write","[write: {{v0}}]",{v0:pathArgOf(o)}):"edit_file"===n?t("edit","[edit: {{v0}}]",{v0:pathArgOf(o)}):"shell_command"===n?t("bash","[bash: {{v0}}]",{v0:truncateString2({text:"string"==typeof o.command?o.command:"",maxChars:50})}):"grep"===n?t("grepIn","[grep: /{{v0}}/ in {{v1}}]",{v0:"string"==typeof o.pattern?o.pattern:"",v1:"string"==typeof o.directory?toRelativePath(o.directory):"."}):"glob"===n?t("glob","[glob: {{v0}}]",{v0:"string"==typeof o.pattern?o.pattern:""}):"read_directory"===n?t("ls","[ls: {{v0}}]",{v0:pathArgOf(o)}):`[${n}: ${truncateString2({text:JSON.stringify(o),maxChars:40})}]`}function messageText5(e){return extractTextFromMessageContent({content:e.content})}function isToolResultOnlyUserMessage2(e){return"user"===e.role&&e.content.length>0&&e.content.every(e=>"tool_result"===e.type)}__name(nextFilterMode,"nextFilterMode"),__name(previousFilterMode,"previousFilterMode"),__name(buildToolCallMap,"buildToolCallMap"),__name(pathArgOf,"pathArgOf"),__name(formatToolBracket,"formatToolBracket"),__name(messageText5,"messageText"),__name(isToolResultOnlyUserMessage2,"isToolResultOnlyUserMessage");var mH=new Set(["label","custom","model_change","effort_change","session_info"]);function isContentlessAssistantMessage(e){return"message"===e.type&&"assistant"===e.message.role&&0===messageText5(e.message).trim().length}function passesFilter(e){const{entry:n,mode:o,isCurrentLeaf:r,hasLabel:s}=e;return"all"===o||("labeled-only"===o?s:"user-only"===o?"message"===n.type&&"user"===n.message.role&&!isToolResultOnlyUserMessage2(n.message)&&messageText5(n.message).trim().length>0:!mH.has(n.type)&&(!(isContentlessAssistantMessage(n)&&!r)&&("no-tools"!==o||"message"!==n.type||"user"!==n.message.role||!isToolResultOnlyUserMessage2(n.message))))}function buildVisibleNodes(e){const{nodes:n,mode:o,currentLeafId:r}=e,s=[];for(const e of n){const n=buildVisibleNodes({nodes:e.children,mode:o,currentLeafId:r});passesFilter({entry:e.entry,mode:o,isCurrentLeaf:e.entry.id===r,hasLabel:void 0!==e.label})?s.push({entry:e.entry,children:n,...void 0!==e.label?{label:e.label}:{},...void 0!==e.labelTimestamp?{labelTimestamp:e.labelTimestamp}:{}}):s.push(...n)}return s}function containsId(e,n){return e.entry.id===n||e.children.some(e=>containsId(e,n))}function reorderActiveFirst(e,n){for(const o of e)o.children=reorderActiveFirst(o.children,n);if(null===n)return e;const o=e.findIndex(e=>containsId(e,n));return o<=0?e:[e[o],...e.slice(0,o),...e.slice(o+1)]}function connectorGlyph(e){return e.folded?"⊞":e.foldable?"⊟":"─"}function buildRowPrefix(e){const{displayIndent:n,gutters:o,connectorVisible:r,isLast:s,folded:a,foldable:i}=e,l=r?n-1:-1,c=[];for(let e=0;e<3*n;e++){const n=Math.floor(e/3),r=e%3,d=o.find(e=>e.position===n);d?c.push(0===r&&d.show?"│":" "):n!==l?c.push(" "):0===r?c.push(s?"└":"├"):1===r?c.push(connectorGlyph({folded:a,foldable:i})):c.push(" ")}const d=a&&!r?"⊞ ":"";return c.join("")+d}function flattenVisibleTree(e){const{roots:n,activePathIds:o,foldedNodes:r}=e,s=[],a=new Map,i=n.length>1;function visit(e){const{node:n,parentId:l,indent:c,justBranched:d,isLast:u,gutters:m}=e,p=n.children.map(e=>e.entry.id);a.set(n.entry.id,p);const g=r.has(n.entry.id),h=n.children.length>0,f=e.showConnector&&!e.isVirtualRootChild,y=i?Math.max(0,c-1):c;if(s.push({id:n.entry.id,entry:n.entry,parentId:l,prefix:buildRowPrefix({displayIndent:y,gutters:m,connectorVisible:f,isLast:u,folded:g,foldable:h}),isActivePath:o.has(n.entry.id),isBranchChild:e.showConnector,hasVisibleChildren:h,...void 0!==n.label?{label:n.label}:{},...void 0!==n.labelTimestamp?{labelTimestamp:n.labelTimestamp}:{}}),g)return;const v=n.children.length>1,S=v||d&&c>0?c+1:c,w=f?[...m,{position:Math.max(0,y-1),show:!u}]:m;n.children.forEach((e,o)=>{visit({node:e,parentId:n.entry.id,indent:S,justBranched:v,showConnector:v,isLast:o===n.children.length-1,gutters:w,isVirtualRootChild:!1})})}return __name(visit,"visit"),n.forEach((e,o)=>{visit({node:e,parentId:null,indent:i?1:0,justBranched:i,showConnector:i,isLast:o===n.length-1,gutters:[],isVirtualRootChild:i})}),{rows:s,visibleChildrenIds:a}}function normalizeRowText(e){return truncateString2({text:e.replace(/[\n\t]+/g," ").trim(),maxChars:200})}function describeRow(e,n){if("message"===e.type){const{message:o}=e;if("user"===o.role){if(isToolResultOnlyUserMessage2(o)){const e=o.content.find(e=>"tool_result"===e.type),r=e?n.get(e.tool_use_id):void 0;return{text:r?formatToolBracket(r):t("toolResult","[tool result]"),color:XO.DIM}}return{text:t("user3","user: {{v0}}",{v0:normalizeRowText(messageText5(o))}),color:XO.CYAN}}const r=messageText5(o).trim();return r?{text:t("assistant","assistant: {{v0}}",{v0:normalizeRowText(r)}),color:XO.GREEN}:{text:t("assistantNoContent","assistant: (no content)"),color:XO.DIM}}return"compaction"===e.type?{text:t("compactionKTokens","[compaction: {{v0}}k tokens]",{v0:Math.round(e.tokensBefore/1e3)}),color:XO.CYAN}:"branch_summary"===e.type?{text:t("branchSummary","[branch summary]: {{v0}}",{v0:normalizeRowText(e.summary)}),color:XO.YELLOW}:"custom_message"===e.type?{text:`[${e.customType}]: ${normalizeRowText(extractTextFromMessageContent({content:e.content}))}`,color:XO.MAGENTA}:"custom"===e.type?{text:t("custom","[custom: {{v0}}]",{v0:e.customType}),color:XO.DIM}:"model_change"===e.type?{text:t("model3","[model: {{v0}}]",{v0:e.model}),color:XO.DIM}:"effort_change"===e.type?{text:t("effort","[effort: {{v0}}]",{v0:e.effort}),color:XO.DIM}:"label"===e.type?{text:t("label","[label: {{v0}}]",{v0:e.label??"(cleared)"}),color:XO.DIM}:{text:e.name?t("title","[title: {{v0}}]",{v0:e.name}):t("titleEmpty","[title: (empty)]"),color:XO.DIM}}__name(isContentlessAssistantMessage,"isContentlessAssistantMessage"),__name(passesFilter,"passesFilter"),__name(buildVisibleNodes,"buildVisibleNodes"),__name(containsId,"containsId"),__name(reorderActiveFirst,"reorderActiveFirst"),__name(connectorGlyph,"connectorGlyph"),__name(buildRowPrefix,"buildRowPrefix"),__name(flattenVisibleTree,"flattenVisibleTree"),__name(normalizeRowText,"normalizeRowText"),__name(describeRow,"describeRow");var pH=__name(()=>({compaction:"compaction",branch_summary:t("branchSummary2","branch summary"),session_info:"title",model_change:"model",effort_change:"effort",custom:"custom",custom_message:"custom",label:"label"}),"SEARCH_TYPE_KEYWORDS");function searchableText(e){const{entry:n,label:o,toolCallMap:r}=e,s=[n.type];o&&s.push(o);const a=pH()[n.type];if(a&&s.push(a),"message"===n.type)if(s.push(n.message.role),isToolResultOnlyUserMessage2(n.message)){const e=n.message.content.find(e=>"tool_result"===e.type),o=e?r.get(e.tool_use_id):void 0;if(o){s.push(o.name);const e=o.input.command;"string"==typeof e&&s.push(e);const n=o.input.file_path??o.input.path;"string"==typeof n&&s.push(n)}}else s.push(messageText5(n.message));return"branch_summary"===n.type&&s.push(n.summary),"custom_message"===n.type&&s.push(extractTextFromMessageContent({content:n.content})),s.join(" ").toLowerCase()}function matchesSearch(e,n){const o=n.toLowerCase().split(/\s+/).filter(Boolean);return 0===o.length||o.every(n=>e.includes(n))}function formatLabelTimestamp(e,n){const o=new Date(e),r=__name(e=>String(e).padStart(2,"0"),"pad"),s=`${r(o.getHours())}:${r(o.getMinutes())}`;return o.getFullYear()===n.getFullYear()&&o.getMonth()===n.getMonth()&&o.getDate()===n.getDate()?s:o.getFullYear()===n.getFullYear()?`${o.getMonth()+1}/${o.getDate()} ${s}`:`${String(o.getFullYear()).slice(-2)}/${o.getMonth()+1}/${o.getDate()} ${s}`}function previousSegmentStart(e,n,o){let r=n.get(o),s=null;for(;r?.parentId;){const e=n.get(r.parentId);if(!e)break;if(e.isBranchChild)return e.id;s=e.id,r=e}return s}function nextSegmentStart(e,n,o){const r=n.get(o)?.[0];if(void 0===r)return null;let s=r;for(let o=0;o<1e4;o++){const o=e.get(s);if(!o||o.isBranchChild)return s;const r=n.get(s)?.[0];if(void 0===r)return s;s=r}return s}function resolveTargetLocally(e){const n=e.byId.get(e.entryId);return n?"message"===n.type&&"user"===n.message.role&&messageText5(n.message).trim().length>0||"custom_message"===n.type?{targetId:n.parentId}:{targetId:n.id}:{targetId:e.entryId}}function isOnPathLocally(e){if(null===e.ancestorId)return!0;if(null===e.targetId)return!1;let n=e.targetId;const o=new Set;for(;null!==n;){if(n===e.ancestorId)return!0;if(o.has(n))return!1;o.add(n);const r=e.byId.get(n);n=r?r.parentId:null}return!1}__name(searchableText,"searchableText"),__name(matchesSearch,"matchesSearch"),__name(formatLabelTimestamp,"formatLabelTimestamp"),__name(previousSegmentStart,"previousSegmentStart"),__name(nextSegmentStart,"nextSegmentStart"),__name(resolveTargetLocally,"resolveTargetLocally"),__name(isOnPathLocally,"isOnPathLocally");var gH=[{value:"none",get label(){return t("noSummary","No summary")}},{value:"summarize",get label(){return t("summarize","Summarize")}},{value:"custom",get label(){return t("summarizeWithCustomPrompt","Summarize with custom prompt")}}],hH=__name(({tree:e,currentLeafId:n,initialSelectedId:o,initialFilterMode:r,branchSummarySkipPrompt:s,onSelect:a,onAbortSummary:i,onCancel:l,onLabelChange:c})=>{const{t:d}=xt(),[u,m]=mt(r),[p,g]=mt(""),[h,f]=mt(()=>new Set),y=__name(e=>{m(e),f(new Set)},"applyFilterMode"),v=__name(e=>{y(n=>n===e?"default":e)},"toggleFilterMode"),[S,w]=mt(!1),[k,C]=mt("browse"),[b,T]=mt(""),[E,P]=mt(""),[M,I]=mt(0),[A,x]=mt(null),[R,L]=mt(0),[O,D]=mt(0),[N,F]=mt(o??n??void 0),_=useTerminalHeight(),$=ut(()=>{const n=new Map,o=__name(e=>{for(const r of e)n.set(r.entry.id,r.entry),o(r.children)},"visit");return o(e),n},[e]),U=ut(()=>buildToolCallMap(e),[e]),B=ut(()=>{const e=new Set;let o=n;for(;null!==o;){e.add(o);const n=$.get(o);o=n?n.parentId:null}return e},[$,n]),j=ut(()=>reorderActiveFirst(buildVisibleNodes({nodes:e,mode:u,currentLeafId:n}),n),[e,u,n]),{rows:W,visibleChildrenIds:H}=ut(()=>flattenVisibleTree({roots:j,activePathIds:B,foldedNodes:h}),[j,B,h]),G=ut(()=>new Map(W.map(e=>[e.id,e])),[W]),V=ut(()=>p?W.filter(e=>matchesSearch(searchableText({entry:e.entry,label:e.label,toolCallMap:U}),p)):W,[W,p,U]);gt(()=>{if(0===V.length)return void L(0);let e=N;for(;e;){const n=V.findIndex(n=>n.id===e);if(n>=0)return void L(n);e=$.get(e)?.parentId}L(V.length-1)},[V,u,p,$]);const K=V[R]?.id,z=pt(!1);gt(()=>{z.current?K&&F(K):z.current=!0},[K]);const q=_-1,Y=Math.max(6,q-10);gt(()=>{D(e=>clampScrollOffset({cursor:R,total:V.length,maxVisible:Y,currentOffset:e}))},[R,V.length,Y]);const J=V[R],Q=__name(e=>{F(e.entryId),e.summarize?(C("summarizing"),a(e).then(e=>{e.aborted&&C("browse")})):a(e)},"commitSelection"),X=__name(()=>{if(!J)return;F(J.id);const{targetId:e}=resolveTargetLocally({byId:$,entryId:J.id});isOnPathLocally({byId:$,ancestorId:n,targetId:e})||s?Q({entryId:J.id,summarize:!1}):(x(J.id),I(0),C("confirm-summary"))},"handleEnterInBrowse");at((e,n)=>{if("summarizing"===k)return void(n.escape&&i());if("label"===k)return void(n.escape&&C("browse"));if("custom-prompt"===k)return void(n.escape&&C("confirm-summary"));if("confirm-summary"===k){if(n.escape)return void C("browse");if(n.upArrow)return void I(e=>Math.max(0,e-1));if(n.downArrow)return void I(e=>Math.min(gH.length-1,e+1));if(n.return&&A){const e=gH[M]?.value;"none"===e?(Q({entryId:A,summarize:!1}),C("browse")):"summarize"===e?Q({entryId:A,summarize:!0}):(P(""),C("custom-prompt"))}return}const o=getKeybindings();if(n.escape)return p?void g(""):void l();if(n.upArrow)L(e=>0===V.length?0:(e-1+V.length)%V.length);else if(n.downArrow)L(e=>0===V.length?0:(e+1)%V.length);else if(!n.leftArrow||n.ctrl||n.meta)if(!n.rightArrow||n.ctrl||n.meta){if((keybindingMatches(o,"app.tree.foldOrPrevBranch",e,n)||isWordLeftSequence(e)||(n.ctrl||n.meta)&&n.leftArrow)&&J){if(J.hasVisibleChildren&&!h.has(J.id))return void f(e=>new Set(e).add(J.id));const e=previousSegmentStart(0,G,J.id);if(e&&F(e),e){const n=V.findIndex(n=>n.id===e);n>=0&&L(n)}return}if((keybindingMatches(o,"app.tree.unfoldOrNextBranch",e,n)||isWordRightSequence(e)||(n.ctrl||n.meta)&&n.rightArrow)&&J){if(h.has(J.id))return void f(e=>{const n=new Set(e);return n.delete(J.id),n});const e=nextSegmentStart(G,H,J.id);if(e){F(e);const n=V.findIndex(n=>n.id===e);n>=0&&L(n)}return}if(n.return)X();else if(n.ctrl&&"O"===e||keybindingMatches(o,"app.tree.filter.cycleBack",e,n))y(e=>previousFilterMode(e));else if(keybindingMatches(o,"app.tree.filter.cycle",e,n))y(e=>nextFilterMode(e));else if(keybindingMatches(o,"app.tree.filter.default",e,n))y("default");else if(keybindingMatches(o,"app.tree.filter.noTools",e,n))v("no-tools");else if(keybindingMatches(o,"app.tree.filter.userOnly",e,n))v("user-only");else if(keybindingMatches(o,"app.tree.filter.labeledOnly",e,n))v("labeled-only");else if(keybindingMatches(o,"app.tree.filter.all",e,n))v("all");else{if("L"===e||keybindingMatches(o,"app.tree.label",e,n)){if(!J)return;return T(J.label??""),void C("label")}"T"===e||keybindingMatches(o,"app.tree.labelTime",e,n)?w(e=>!e):n.backspace||n.delete?p&&g(e=>e.slice(0,-1)):!n.ctrl&&!n.meta&&!n.tab&&e&&1===e.length&&e>=" "&&g(n=>n+e)}}else L(e=>Math.min(V.length-1,e+Y));else L(e=>Math.max(0,e-Y))});const Z=__name(e=>{if(J){const n=e.trim();c({entryId:J.id,label:n.length>0?n:void 0})}C("browse")},"submitLabel"),ee=__name(e=>{if(A){const n=e.trim();Q({entryId:A,summarize:!0,...n.length>0?{customInstructions:n}:{}})}},"submitCustomPrompt");if("summarizing"===k)return ct.createElement(oF,{title:"/tree",gapAfterHeader:!1},ct.createElement(nt,{color:XO.CYAN},d("summarizingAbandonedBranchEscToCancel","Summarizing abandoned branch… (Esc to cancel)")));if("confirm-summary"===k)return ct.createElement(oF,{title:"/tree",subtitle:d("youReLeavingWorkBehindOnThisBranchSummarizeItBeforeJumping","You're leaving work behind on this branch. Summarize it before jumping?"),hint:d("enterConfirmEscBack","enter confirm · esc back")},ct.createElement(tt,{flexDirection:"column"},gH.map((e,n)=>ct.createElement(nt,{key:e.value,color:n===M?ZO:XO.WHITE,bold:n===M},n===M?`${GD} `:" ",e.label))));if("custom-prompt"===k)return ct.createElement(oF,{title:"/tree",subtitle:d("focusInstructionsForTheSummary","Focus instructions for the summary:"),gapAfterHeader:!1,hint:d("enterConfirmEscBack","enter confirm · esc back")},ct.createElement(TextInput,{value:E,focus:!0,prefix:`${GD} `,prefixColor:"cyan",onChange:P,onSubmit:ee}));if("label"===k&&J)return ct.createElement(oF,{title:"/tree",subtitle:d("label2","Label:"),gapAfterHeader:!1,hint:d("enterSaveEmptyClearsEscCancel","enter save (empty clears) · esc cancel")},ct.createElement(TextInput,{value:b,focus:!0,prefix:`${GD} `,prefixColor:"cyan",onChange:T,onSubmit:Z}));const te=V.slice(O,O+Y),ne=new Date,oe=uH[u];return ct.createElement(tt,{flexDirection:"column",paddingLeft:1,width:"100%"},ct.createElement(nt,{color:ZO,bold:!0},"/tree"),ct.createElement(tt,{marginBottom:1,width:"100%"},ct.createElement(jD,{query:p,resultCount:p?V.length:void 0,placeholder:d("typeToSearch2","Type to search…")})),0===V.length?ct.createElement(tt,{marginBottom:1},ct.createElement(WF,{message:d("noEntriesFound","No entries found")})):ct.createElement(tt,{flexDirection:"column"},te.map((e,n)=>{const o=O+n===R,{text:r,color:s}=describeRow(e.entry,U);return ct.createElement(nt,{key:e.id,backgroundColor:o?kD:void 0,bold:o,wrap:"truncate-end"},o?`${GD} `:" ",ct.createElement(nt,{color:wD},e.prefix),e.isActivePath?ct.createElement(nt,{color:ZO},"• "):null,void 0!==e.label?ct.createElement(nt,{color:XO.YELLOW},"[",e.label,"]"," "):null,S&&e.labelTimestamp?ct.createElement(nt,{color:XO.DIM},formatLabelTimestamp(e.labelTimestamp,ne)," "):null,ct.createElement(nt,{color:s},r))})),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},"(",0===V.length?0:R+1,"/",V.length,")",oe?` ${oe}`:"",S?d("labelTime"," [+label time]"):"")),ct.createElement(tt,{flexDirection:"column"},ct.createElement(zN,null,d("movePageTabAltBranchShiftLLabelShiftTLabelTime","↑/↓ move · ←/→ page · tab / alt+←/→ branch · shift+L label · shift+T label time")),ct.createElement(zN,null,d("filtersCtrlDTULACycleCtrlOTypeToSearchRebindViaCommandcodeKeybindingsJson","filters ctrl+d/t/u/l/a · cycle ctrl+o · type to search · rebind via ~/.commandcode/keybindings.json"))))},"TreeSelector"),fH=dt(__name(function MainView2({feed:e,liveEntries:n,queuedMessages:o,isCmdCodeBusy:r,staticKey:s,setStaticKey:a,transcriptMode:i,tasteOnboardingEntryId:l,autoLearnTaste:c,showTasteSkipBanner:d,showTasteLearningInFeed:u,showZdrNotice:m,modelNotice:p,retryAttempt:g,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:v,showFileList:S,setShowFileList:w,showProviderSelector:k,showModelSelector:C,showEffortSelector:b,showMemorySelector:T,showMcpManager:E,showAgentsConfig:P,showRewindSelector:M,showTreeSelector:I,treeFilterMode:A,treeBranchSummarySkipPrompt:x,showLoginOverlay:R,showUsageOverlay:L,showAddDirModal:O,showCompactModeSelector:D,showThemeSelector:N,showLanguageSelector:F,showRcSelector:_,authComponentInfo:$,status:U,currentProvider:B,currentModel:j,showProviderNotification:W,shareInfo:H,showShareNotification:G,unshareNotificationMessage:V,updateStatus:K,updateFailedInfo:z,creditWarning:q,permissionMode:Y,hintMessage:J,pendingExitKey:Q,interactionTokens:X,contextUsage:Z,tasteLearningOn:ee,historyManagerRef:te,executionState:ne,sessionId:oe,onSubmit:re,onCommand:se,onToggleAutoAccept:ae,onResetPendingExitKey:ie,onDoubleEscapeEmpty:le,onTasteOnboardingComplete:ce,permissionPanel:de,questionPanel:ue,designSuggestionPanel:me,onRewindSelect:pe,onRewindCancel:ge,onTreeSelect:he,onTreeCancel:fe,onTreeLabel:ye,onTreeAbortSummary:ve,onLoginComplete:Se,onLoginCancel:we,setShowProviderSelector:ke,setShowModelSelector:Ce,setShowEffortSelector:be,setShowMemorySelector:Te,setShowMcpManager:Ee,setShowAgentsConfig:Pe,setShowAddDirModal:Me,setShowUsageOverlay:Ie,handleProviderSelect:Ae,handleProviderCancel:xe,handleModelSelect:Re,handleModelCancel:Le,handleCompactModeSelect:Oe,handleCompactModeCancel:De,handleThemeSelect:Ne,handleThemeCancel:Fe,handleLanguageSelect:_e,handleLanguageCancel:$e,handleRcSelect:Ue,handleRcCancel:Be,handleAuthSuccess:je,handleAuthCancel:We,showDesignGuide:He,setShowDesignGuide:Ge}){const Ve=usePhaseModel({sessionId:oe}),{t:Ke}=xt(),ze=ut(()=>projectTasteFeedVisibility({feed:e.filter(e=>"taste-onboarding"!==e.role),showTasteLearningInFeed:u}),[e,u]),qe=ht(()=>Ge(!1),[Ge]),Ye=useTerminalWidth(),[Je,Qe]=mt(!1),[Xe,Ze]=mt(!1),et=pt(null);et.current=r?et.current??Date.now():null;const ot=ut(()=>"off"===i?ze:projectTranscriptWindow({feed:ze,mode:i}),[ze,i]),rt=ut(()=>"off"===i?0:Math.max(0,ze.length-ot.length),[ze.length,ot.length,i]),st=ut(()=>0===rt?ot:ot.filter(e=>"user"!==e.role),[ot,rt]),at=ht(()=>Pe(!1),[Pe]),it=ht(()=>Te(!1),[Te]),lt=ht(()=>Ee(!1),[Ee]),dt=ht(()=>Me(!1),[Me]),gt=ht(()=>Ce(!0),[Ce]),ft=ht(()=>be(!1),[be]),yt=ht(()=>{hardResetForResize(),a(e=>e+1)},[a]),vt=!("off"!==i||de||ue||me||k||C||b||$||T||E||P||M||I||R||L||O||D||N||F||_||He||l),St=hO(oe),wt=St?St.getEffort():null;return ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(fB,{staticKey:s,feed:st,showHeader:!0,expandedToolOutput:"off"!==i,currentModel:j,currentEffort:wt,currentProvider:B,hiddenCount:rt}),l&&ct.createElement(iH,{onComplete:ce,autoLearn:c}),d&&ct.createElement(TasteSkipMessage,null),m&&ct.createElement(ZdrPausedMessage,null),p&&ct.createElement(ModelNoticeMessage,{text:p}),n.map(e=>e.metadata?.isAgent?ct.createElement(vB,{key:e.id,entry:e}):ct.createElement(tt,{key:e.id,marginBottom:1,width:"90%"},ct.createElement(FeedEntryView,{entry:e,expandedToolOutput:"off"!==i}))),ct.createElement(RetryMessage,{attempt:g}),"off"===i&&!l&&!Xe&&ct.createElement(TodoPanel,{active:r}),me,ue,de,"off"!==i&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},"─".repeat(Ye))),ct.createElement(tt,{paddingRight:1},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},Ke("detailedTranscript","{{v0}}DETAILED TRANSCRIPT{{v1}}",{v0:zD,v1:zD})),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{bold:!0},"ctrl+o"),ct.createElement(nt,{color:XO.DIM}," ",Ke("toToggle","to toggle")),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{bold:!0},IE?"ctrl+y":"ctrl+e"),ct.createElement(nt,{color:XO.DIM}," ",Ke("to","to")," ","limited"===i?Ke("showAll","show all"):Ke("collapse","collapse")),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{bold:!0},"esc"),ct.createElement(nt,{color:XO.DIM}," ",Ke("toExit","to exit")))),vt&&ct.createElement(ct.Fragment,null,ct.createElement(BackgroundTasksPanel,{onExpandedChange:Qe}),ct.createElement(TodosManagerPanel,{sessionId:oe,onExpandedChange:Ze}),ct.createElement(aj,{queuedMessages:o,sessionId:oe,isProcessing:r,processingStartedAt:et.current,executionState:ne,status:U,input:h,setInput:f,onSubmit:re,showFileList:S,setShowFileList:w,fileSearchQuery:y,setFileSearchQuery:v,onCommand:se,outputTokens:X,contextUsage:Z,tasteLearningOn:ee,phaseModel:Ve,shareInfo:H,showShareNotification:G,unshareNotificationMessage:V,updateStatus:K,updateFailedInfo:z,creditWarning:q,currentProvider:B,currentModel:j,showProviderInfo:W,permissionMode:Y,onToggleAutoAccept:ae,hintMessage:J,historyManager:te.current,pendingExitKey:Q,onResetPendingExitKey:ie,onDoubleEscapeEmpty:le,retryAttempt:g,onAltP:gt,renderKey:s,inputActive:!Je&&!Xe,inactiveHint:Xe?Ke("todosFocusedToSelectCToCompleteXToRemoveAAllDoneEscToGoBackToFeed","Todos focused · ↑/↓ to select · c to complete · x to remove · a all done · Esc to go back to feed"):void 0})),k&&ct.createElement(tt,{marginY:1},ct.createElement(Uj,{onSelect:Ae,onCancel:xe,sessionId:oe})),C&&ct.createElement(tt,{marginY:1},ct.createElement(Aj,{onSelect:Re,onCancel:Le,currentModel:j,currentProvider:B,refreshBanner:yt,sessionId:oe})),b&&ct.createElement(tt,{marginY:1},ct.createElement(Ej,{currentModel:j,sessionId:oe,onClose:ft,refreshBanner:yt})),He&&ct.createElement(tt,{marginY:1},ct.createElement(gj,{onCancel:qe})),D&&ct.createElement(tt,{marginY:1},ct.createElement(Cj,{onSelect:Oe,onCancel:De})),N&&ct.createElement(tt,{marginY:1},ct.createElement(_W,{onSelect:Ne,onCancel:Fe})),F&&ct.createElement(tt,{marginY:1},ct.createElement(fj,{onSelect:_e,onCancel:$e})),_&&ct.createElement(tt,{marginY:1},ct.createElement(NW,{remoteActive:void 0!==getActiveRemote(),onSelect:Ue,onCancel:Be})),P&&ct.createElement(tt,{marginY:1},ct.createElement(nH,{onCancel:at})),T&&ct.createElement(tt,{marginY:1},ct.createElement(wj,{onClose:it})),E&&ct.createElement(tt,{marginY:1},ct.createElement(Sj,{onClose:lt,mcp:hO(oe)?.mcp})),M&&hO(oe)&&ct.createElement(tt,{marginY:1},ct.createElement(cH,{checkpoints:[...hO(oe).listCheckpoints()],onSelect:pe,onCancel:ge})),I&&hO(oe)&&ct.createElement(tt,{marginY:1},ct.createElement(hH,{tree:hO(oe).getSessionTree(),currentLeafId:hO(oe).getSessionLeafId(),initialFilterMode:A,branchSummarySkipPrompt:x,onSelect:he,onAbortSummary:ve,onCancel:fe,onLabelChange:ye})),$&&ct.createElement(tt,{marginY:1},ct.createElement($.Component,{onSuccess:je,onCancel:We})),R&&ct.createElement(tt,{marginY:1},ct.createElement(yj,{onComplete:Se,onCancel:we})),O&&ct.createElement(tt,{marginY:1},ct.createElement(uj,{onClose:dt})))},"MainView"));function useFeatureModelCatalog(){const[e,n]=mt(()=>getCachedBillingContext());gt(()=>{if(e)return;let o=!0;return getBillingContext().then(e=>{o&&n(e)}),()=>{o=!1}},[e]);const o=useCustomModelsReady(),r=ut(()=>buildCatalogModelPickerGroups(),[o]),s=ut(()=>filterModelPickerGroupsByPlan({groups:r,billing:e}),[r,e]),a=ut(()=>flattenModelPickerGroups(s).map(e=>({id:e.model.id,label:XL(e.model.id)})),[s]);return{groups:s,catalog:a,resolved:null!==e}}Jt(),Jt(),hL(),Jt(),hL(),__name(useFeatureModelCatalog,"useFeatureModelCatalog"),Jt(),hL();var yH=["Listing only models with a zero-data-retention upstream."];function getVisibleZdrBannerLines(){return[t("listingOnlyModelsWithAZeroDataRetentionUpstream",yH[0])]}function wrappedRowCount(e){const n=Math.max(1,e.width),o=e.text.split(/\s+/).filter(Boolean);if(0===o.length)return 1;let r=1,s=0;for(const e of o){const o=Be(e);if(o>n){s>0&&(r+=1),r+=Math.ceil(o/n)-1,s=o%n||n;continue}const a=0===s?o:o+1;s+a<=n?s+=a:(r+=1,s=o)}return r}function zdrBannerRowCount(e){return getVisibleZdrBannerLines().reduce((n,o)=>n+wrappedRowCount({text:o,width:e}),0)+1}function narrowGroups(e){return e.groups.map(n=>({...n,models:n.models.filter(e.accepts)})).filter(e=>e.models.length>0)}__name(getVisibleZdrBannerLines,"getVisibleZdrBannerLines"),__name(wrappedRowCount,"wrappedRowCount"),__name(zdrBannerRowCount,"zdrBannerRowCount"),__name(narrowGroups,"narrowGroups");var vH=__name(({featureLabel:e,defaultLabel:n,currentModelId:o,modelFilter:r,isMainLoopLane:s=!1,onPick:a,onBack:i})=>{const{t:l}=xt(),[c,d]=mt(""),{groups:u,resolved:m}=useFeatureModelCatalog(),p=isCmdZdrEnabled(),g=ut(()=>r||p?narrowGroups({groups:u,accepts:__name(e=>!(r&&!r(e)||p&&!JL(e.id)),"accepts")}):u,[u,r,p]),h=ut(()=>filterModelPickerGroups(g,c),[g,c]),f=ut(()=>getModelLabelColumnWidth(g.flatMap(e=>e.models),{showDefaultBadge:!1}),[g]),y=ut(()=>[{kind:"reset"},...flattenModelPickerGroups(h).map(e=>({kind:"model",providerId:e.providerId,model:e.model}))],[h]),v=ut(()=>{if(!o)return 0;const e=y.findIndex(e=>"model"===e.kind&&e.model.id===o);return e>=0?e:0},[y,o]),{cursor:S}=useListNavigation({items:y,initialIndex:v,searchCursorIndex:1,searchQuery:c,onSearchChange:d,onSelect:__name(e=>{m&&a("reset"===e.kind?void 0:e.model.id)},"onSelect"),onCancel:i}),[w,k]=mt(0),C=useTerminalHeight(),b=useTerminalWidth(),T=C-1,E=p?zdrBannerRowCount(b):0,P=Math.max(4,T-13-E-2*h.length);gt(()=>{k(e=>clampScrollOffset({cursor:S,total:y.length,maxVisible:P,currentOffset:e}))},[S,y.length,P]);const M=w,I=w+P,A=0===M,x=windowModelGroups({groups:h,firstSectionBase:1,windowStart:M,windowEnd:I}),R=y.length>P;return ct.createElement(oF,{title:l("selectModel","{{v0}} › select model",{v0:e}),subtitle:s?l("pickPhaseModel","Pick the model this phase runs on, or reset it to follow your current model."):ct.createElement(ct.Fragment,null,l("pickAModelForThisTaskOrResetItToTheDefault","Pick a model for this task, or reset it to the default.")," ",createOSC8Link("https://commandcode.ai/docs/troubleshooting/faqs#why-do-i-see-small-background-requests",l("whyBackgroundRequests","Why background requests?"),!1)),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},l("typeToSearchNavigateEnterSelect","type to search · ↑/↓ navigate · enter select"),c?l("escToClear"," · esc to clear"):l("escBack"," · esc back"))},p&&ct.createElement(tt,{marginBottom:1,flexDirection:"column"},getVisibleZdrBannerLines().map(e=>ct.createElement(nt,{key:e,color:XO.YELLOW},e))),ct.createElement(tt,{marginBottom:2,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:c,resultCount:c?y.length-1:void 0,placeholder:l("typeToSearchModels","Type to search models...")})),m?ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},A&&ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{bold:!0,dimColor:!0},l("default","Default")),ct.createElement(tt,null,ct.createElement(nt,{backgroundColor:0===S?kD:void 0,color:o?XO.WHITE:XO.GREEN},n," "),!o&&ct.createElement(nt,{color:XO.GREEN},vt.tick))),x.map(({group:e,groupWindow:n},r)=>ct.createElement(tt,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:0!==r||A?1:0},ct.createElement(nt,{bold:!0,dimColor:!0},e.label),n.rows.map((r,s)=>ct.createElement(Ij,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:n.baseIndex+s===S,isCurrent:r.id===o,showProviderLabel:!1,showDefaultBadge:!1,labelColumnWidth:f}))))),R&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},l("showing","Showing")," ",M+1,"–",Math.min(I,y.length)," ",l("of","of")," ",y.length,M>0?l("more3"," · ↑ more"):"",I<y.length?l("more4"," · ↓ more"):""))):ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},l("loadingAvailableModels","Loading available models…"))))},"FeatureModelPicker"),SH="Taste learning is off on BYOK models. Switch to a Command Code model to change it.";function isTasteRow(e){return"taste-learning"===e.id||e.id===cg}function clampDescriptionLines(e){const n=Math.max(e.width,10),{maxLines:o}=e,r=e.text.trim().split(/\s+/).filter(Boolean);if(0===r.length||o<=0)return[];const s=[];let a="",i=0,l=!1;for(;i<r.length;){let e=r[i];Be(e)>n&&(r.splice(i,1,sliceDisplayWidth(e,n),e.slice(sliceDisplayWidth(e,n).length)),e=r[i]);const c=a?`${a} ${e}`:e;if(Be(c)<=n)a=c,i+=1;else if(s.push(a),a="",s.length===o){l=!0;break}}if(!l)return a&&s.push(a),s;const c=s[o-1];return s[o-1]=Be(c)>=n?`${sliceDisplayWidth(c,n-1)}…`:`${c}…`,s}function formatSettingValue(e){if(void 0!==e.displayValue)return e.displayValue;if("boolean"===e.kind)return!0===e.currentValue?t("enabled2","Enabled"):t("disabled2","Disabled");const n=(e.options??[]).find(n=>n.value===e.currentValue);return n?translateUiCopy(n.label):String(e.currentValue)}function startsNewGroup(e,n){return 0===n||e[n-1]?.group!==e[n]?.group}__name(isTasteRow,"isTasteRow"),__name(clampDescriptionLines,"clampDescriptionLines"),__name(formatSettingValue,"formatSettingValue"),__name(startsNewGroup,"startsNewGroup");var wH=__name(({onClose:e,staticKey:n,loadTasteStatus:o,onShowTasteLearningInFeedChange:r,reloadHarnessConfig:s})=>{const{t:a}=xt(),[i,l]=mt([]),c=isByok({model:getConfiguredModel()}),[d,u]=mt(!0),[m,p]=mt(""),[g,h]=mt(null),{catalog:f}=useFeatureModelCatalog(),y=ht(()=>listConfigSettings({modelCatalog:f,isByok:isByok}).then(e=>l(e)),[f,a]);gt(()=>{let e=!0;return listConfigSettings({modelCatalog:f,isByok:isByok}).then(n=>{e&&l(n)}).finally(()=>{e&&u(!1)}),()=>{e=!1}},[f,a]);const v=ut(()=>filterConfigSettings({settings:i,query:m}),[i,m]),S=ut(()=>i.reduce((e,n)=>Math.max(e,Be(translateUiCopy(n.label))),0)+2,[i,a]),w=__name((e,n)=>{"theme"!==e.id||"string"!=typeof n?"taste-learning"!==e.id&&e.id!==cg?e.id===ig&&"boolean"==typeof n&&r(n):o():applyTuiTheme(resolveCliTheme(n))},"applyLiveSideEffect"),k=__name(async e=>{if(e.featureModelKey)return void h(e);const n=nextSettingValue(e),o=i;l(o=>o.map(o=>o.id===e.id?{...o,currentValue:n}:o));try{await updateConfigSetting({id:e.id,value:n}),w(e,n)}catch{l(o)}},"selectSetting"),C=__name(async(e,n)=>{try{await updateConfigSetting({id:e.id,value:n??fg}),await y(),await s()}catch{}h(null)},"pickFeatureModel"),{cursor:b,error:T,setError:E}=useListNavigation({items:[...v],onSelect:__name(e=>{k(e)},"onSelect"),onReset:__name(e=>{P(e)},"onReset"),onCancel:e,searchQuery:m,onSearchChange:p,isActive:!d&&null===g,validate:__name(e=>c&&isTasteRow(e)?a("tasteLearningIsOffOnByokModelsSwitchToACommandCodeModelToChangeIt",SH):e.locked?a("isLockedBySettingsLocalJsonEditThatFileToChangeIt","{{v0}} is locked by settings.local.json — edit that file to change it.",{v0:translateUiCopy(e.label)}):null,"validate")}),P=__name(async e=>{if(c&&isTasteRow(e))return void E(a("tasteLearningIsOffOnByokModelsSwitchToACommandCodeModelToChangeIt",SH));if(e.locked)return void E(a("isLockedBySettingsLocalJsonEditThatFileToChangeIt","{{v0}} is locked by settings.local.json — edit that file to change it.",{v0:translateUiCopy(e.label)}));if(e.currentValue===e.defaultValue)return void E(a("isAlreadyAtItsDefault","{{v0}} is already at its default.",{v0:translateUiCopy(e.label)}));if(e.featureModelKey){try{await updateConfigSetting({id:e.id,value:e.defaultValue}),await y(),await s()}catch{}return}const n=i;l(n=>n.map(n=>n.id===e.id?{...n,currentValue:e.defaultValue}:n));try{await updateConfigSetting({id:e.id,value:e.defaultValue}),w(e,e.defaultValue)}catch{l(n)}},"resetSetting"),M=useTerminalWidth(),I=v[b],A=ut(()=>I?clampDescriptionLines({text:translateUiCopy(I.description),width:Math.max(20,M-2),maxLines:2}):[],[I,M,a]);if(g?.featureModelKey){const e=Yp.find(e=>e.key===g.featureModelKey),n="string"==typeof g.currentValue&&g.currentValue!==fg?g.currentValue:void 0,o=isModelLaneKey(g.featureModelKey),r=e?getFeatureDefaultLabel({meta:e,getModelDisplayName:XL,zdrEnabled:isCmdZdrEnabled()}):"";return ct.createElement(vH,{featureLabel:translateUiCopy(g.label),defaultLabel:o&&r?a("useCurrentModel","Use current model ({{model}})",{model:r}):r,isMainLoopLane:o,currentModelId:n,modelFilter:"vision"===g.featureModelKey?e=>YL(e.id):void 0,onBack:()=>h(null),onPick:e=>{C(g,e)}})}return d?ct.createElement(oF,{key:n,title:a("settings","Settings"),gapAfterHeader:!1},ct.createElement($F,{label:a("loadingSettings","Loading settings")})):ct.createElement(oF,{title:a("settings","Settings"),footer:ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(tt,{flexDirection:"column",height:2,width:"100%"},A.map((e,n)=>ct.createElement(nt,{key:n,color:XO.DIM,wrap:"truncate-end"},e))),ct.createElement(YN,{marginTop:0,hints:[a("typeToFilter","type to filter"),a("navigate","↑↓ navigate"),a("enterToChange","enter to change"),a("tabToReset","tab to reset"),m?a("escToClear2","esc to clear"):a("escToClose2","esc to close")]}))},ct.createElement(tt,{marginBottom:1,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:m,resultCount:m?v.length:void 0,placeholder:a("searchSettings","Search settings...")})),0===v.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},a("noSettingsMatch",'No settings match "'),m,'"')):ct.createElement(tt,{flexDirection:"column"},v.map((e,n)=>{const o=n===b?kD:void 0,r=!m&&startsNewGroup(v,n);return ct.createElement(ct.Fragment,{key:e.id},r&&ct.createElement(tt,{marginTop:0===n?0:1},ct.createElement(nt,{color:XO.DIM,bold:!0},translateUiCopy(e.group))),ct.createElement(tt,null,ct.createElement(nt,{color:e.locked||c&&isTasteRow(e)?XO.DIM:XO.WHITE,backgroundColor:o},translateUiCopy(e.label)+" ".repeat(Math.max(2,S-Be(translateUiCopy(e.label))))),ct.createElement(nt,{color:e.locked||c&&isTasteRow(e)?XO.DIM:XO.GREEN,backgroundColor:o},formatSettingValue(e)),(e.locked||c&&isTasteRow(e))&&ct.createElement(nt,{color:XO.DIM,backgroundColor:o},c&&isTasteRow(e)?a("unavailableOnByok"," (unavailable on BYOK)"):a("lockedBySettingsLocalJson"," (locked by settings.local.json)"))))})),T&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},T)))},"SettingsConfig");function sliceDisplayWidth(e,n){let o="";for(const r of e){if(Be(o+r)>n)return o;o+=r}return o}function SettingsConfigView({staticKey:e,onClose:n,loadTasteStatus:o,onShowTasteLearningInFeedChange:r,reloadHarnessConfig:s}){return ct.useEffect(()=>{hardResetForResize()},[]),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(wH,{onClose:n,staticKey:e,loadTasteStatus:o,onShowTasteLearningInFeedChange:r,reloadHarnessConfig:s})))}function categoryColor(e){return isFatalWarningCategory(e)?XO.RED:XO.YELLOW}__name(sliceDisplayWidth,"sliceDisplayWidth"),__name(SettingsConfigView,"SettingsConfigView"),Jt(),Jt(),hL(),Jt(),Jt(),hL(),__name(categoryColor,"categoryColor");var kH=formatSkillWarningsAsMarkdown;async function copyAllWarnings(e,n){try{const{writeClipboardText:o}=await Promise.resolve().then(()=>(hL(),gL));if(!await o(kH(e)))throw new Error(t("clipboardUnavailable","clipboard unavailable"));const r=e.length;n({text:t("copiedIssueToClipboard","Copied {{v0}} issue{{v1}} to clipboard",{v0:r,v1:1===r?"":"s"}),color:XO.GREEN})}catch{n({text:t("clipboardWriteFailed","Clipboard write failed"),color:XO.YELLOW})}}__name(copyAllWarnings,"copyAllWarnings");var CH=__name(({warnings:e,onClose:n,isActive:o=!0})=>{const{t:r}=xt(),s=groupWarnings(e),a=e.length>0,[i,l]=mt(null),c=pt(null),d=pt(!0);gt(()=>()=>{d.current=!1,c.current&&(clearTimeout(c.current),c.current=null)},[]);const u=__name(e=>{d.current&&(c.current&&clearTimeout(c.current),l(e),c.current=setTimeout(()=>{d.current&&(l(null),c.current=null)},3e3))},"showStatus");return at((o,r)=>r.escape||" "===o&&a?(sN(),void n()):void("c"===o&&a&&copyAllWarnings(e,u)),{isActive:o}),ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(tt,null,ct.createElement(nt,{color:ZO,bold:!0},r("skills","Skills")," "),ct.createElement(nt,{color:XO.DIM},"› "),ct.createElement(nt,{color:ZO,bold:!0},r("skipped2","Skipped")," "),ct.createElement(nt,{color:XO.WHITE},e.length)),a&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},r("pressCToCopyAllIssues","Press c to copy all issues"))),a?ct.createElement(tt,{flexDirection:"column"},s.map(e=>ct.createElement(tt,{key:e.category,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:categoryColor(e.category)},e.category)),e.items.map(e=>ct.createElement(tt,{key:e.path,flexDirection:"column",marginBottom:1},ct.createElement(tt,{paddingLeft:2},ct.createElement(_D,{url:h(e.path).href,text:skillIdentifier(e.path),color:XO.WHITE})),ct.createElement(tt,{paddingLeft:4},ct.createElement(nt,{color:XO.WHITE},e.reason))))))):ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},r("noIssuesEverySkillLoaded","No issues — every skill loaded."))),i&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:i.color},i.text)),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},a?r("cCopyAllIssuesEscBackToSkills","c copy all issues · esc back to skills"):r("escBackToSkills","esc back to skills"))))},"SkillsConfigIssues"),bH=[],TH=__name(({warnings:e=bH,onClose:n})=>{const{t:o}=xt(),[r,s]=mt("list");return at((o,a)=>{"list"===r&&(a.escape&&n?n():" "===o&&!a.ctrl&&!a.meta&&e.length>0&&s("issues"))},{isActive:"list"===r}),"issues"===r?ct.createElement(CH,{warnings:e,onClose:()=>s("list"),isActive:!0}):ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(tt,null,ct.createElement(nt,{color:ZO,bold:!0},o("skills","Skills")),e.length>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.YELLOW},e.length," ",o("skipped","skipped")))),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},o("noSkillsFound","No skills found"))),ct.createElement(nt,{color:XO.DIM},o("createSkillsIn","Create skills in:")),ct.createElement(nt,{color:XO.DIM}," ","~/",".commandcode","/","skills",o("user2","/ (user)")),ct.createElement(nt,{color:XO.DIM}," ","~/.agents/","skills",o("userAgents2","/ (user, .agents)")),ct.createElement(nt,{color:XO.DIM}," ",".commandcode","/","skills",o("project","/ (project)")),ct.createElement(nt,{color:XO.DIM}," ",".agents/","skills",o("projectAgents2","/ (project, .agents)")),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},e.length>0&&o("spaceToViewIssues","space to view issues · "),o("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",o("toClose","to close"))))},"SkillsConfigEmpty");Jt();var EH=__name(()=>"win32"===process.platform?t("noEditorFoundSetEditorSetxEditorCode",'No editor found. Set $EDITOR: setx EDITOR "code"'):t("noEditorFoundSetEditorEchoExportEditorCode","No editor found. Set $EDITOR: echo 'export EDITOR=\"code\"' >> {{v0}}",{v0:"darwin"===process.platform?"~/.zshrc":"~/.bashrc"}),"getEditorSetupMessage");Jt();var PH=__name(({title:e,subtitle:n,skills:o,baseIndex:r,cursor:s,disabled:a})=>{const{t:i}=xt();return ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(tt,null,ct.createElement(nt,{color:cD,bold:!0},e," "),ct.createElement(nt,{color:cD},n)),o.map((e,n)=>{const o=r+n===s,l=a.has(e.label),c=o?kD:void 0;return ct.createElement(tt,{key:e.filePath},ct.createElement(nt,{color:l?XO.DIM:XO.GREEN,backgroundColor:c},l?i("off","[off] "):i("on","[on] ")),ct.createElement(nt,{color:l?XO.DIM:XO.WHITE,backgroundColor:c},e.label),e.fromAgents&&ct.createElement(nt,{color:XO.DIM,backgroundColor:c}," [.agents]"),ct.createElement(nt,{color:XO.DIM,backgroundColor:c}," · ~",e.estimatedTokens,i("tokens2"," tokens ")))}))},"SkillSection"),MH=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt([]),[s,a]=mt([]),[i,l]=mt(!0),[c,d]=mt(null),[u,m]=mt(""),[p,g]=mt(new Set),[h,f]=mt(new Map),[y,v]=mt(!1),[S,w]=mt(null),[k,C]=mt("list"),[b,T]=mt(0),E=useTerminalHeight(),P=pt(!1);gt(()=>{__name(async()=>{try{const e=await loadCommandSkillPickerState();r([...e.skills]),a([...e.warnings]),g(new Set(e.disabled)),f(new Map(e.disabledScopes)),v(e.noProjectRoot)}catch(e){d(e instanceof Error?e.message:n("failedToLoadSkills","Failed to load skills"))}finally{l(!1)}},"load")()},[]);const M=ut(()=>filterSkillPickerRowsForQuery({rows:o,searchQuery:u}),[o,u]),I=M.sections.project,A=M.sections.user,x=M.sections.bundled,R=M.rows,L=E-1,O=(I.length>0?1:0)+(A.length>0?1:0)+(x.length>0?1:0),D=Math.max(4,L-14-2*O),N=__name(async e=>{if(P.current)return;const o=getSkillTogglePolicy({skillName:e.label,disabled:p,disabledScopes:h,noProjectRoot:y});if(!o.allowed)return void w(o.notice);P.current=!0;const r=new Set(p);o.enabling&&r.delete(e.label),o.enabling||r.add(e.label),g(r),w(null);try{const n=await setCommandSkillEnabled(e.label,o.enabling),r=new Map(h);o.enabling&&r.delete(e.label),o.enabling||r.set(e.label,n),f(r),w(getSkillPickerNoProjectWriteNotice(n))}catch(e){g(p),w(n("failedToSave","Failed to save: {{v0}}",{v0:e instanceof Error?e.message:String(e)}))}finally{P.current=!1}},"toggleSkill");gt(()=>{"issues"===k&&m("")},[k]);const F="list"===k&&o.length>0,{cursor:_}=useListNavigation({items:R,onSelect:N,onCancel:e,searchQuery:u,onSearchChange:m,initialIndex:0,isActive:F});if(gt(()=>{T(e=>clampScrollOffset({cursor:_,total:R.length,maxVisible:D,currentOffset:e}))},[_,R.length,D]),at((o,r)=>{if(!r.tab)return;const s=R[_];s&&(async()=>{try{await Ft([{file:s.filePath,line:1}]),e()}catch(e){if(e instanceof Error&&e.message.includes(n("editorEnvironmentVariable","$EDITOR environment variable")))return void d(EH());d(e instanceof Error?e.message:n("failedToOpenSkillInEditor","Failed to open skill in editor"))}})()},{isActive:F}),at((e,n)=>{"list"===k&&0!==o.length&&" "===e&&!n.ctrl&&!n.meta&&s.length>0&&0===u.length&&C("issues")},{isActive:"list"===k&&o.length>0}),i)return ct.createElement(oF,{title:n("skills","Skills"),gapAfterHeader:!1},ct.createElement(nt,{color:XO.DIM},n("loadingSkills","Loading skills...")));if(c)return ct.createElement(oF,{title:n("skills","Skills"),titleColor:XO.RED,gapAfterHeader:!1,footer:ct.createElement(nt,{italic:!0,color:XO.DIM},n("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",n("toClose","to close"))},ct.createElement(nt,{color:XO.DIM},c));if(0===o.length)return ct.createElement(TH,{warnings:s,onClose:e});if("issues"===k)return ct.createElement(CH,{warnings:s,onClose:()=>C("list"),isActive:!0});const $=o.filter(e=>p.has(e.label)).length,U=b,B=b+D,j=sliceSectionForWindow({section:I,sectionBase:0,windowStart:U,windowEnd:B}),W=sliceSectionForWindow({section:A,sectionBase:I.length,windowStart:U,windowEnd:B}),H=sliceSectionForWindow({section:x,sectionBase:I.length+A.length,windowStart:U,windowEnd:B}),G=R.length>D;return ct.createElement(oF,{title:n("skills","Skills"),titleSuffix:ct.createElement(ct.Fragment,null," ",o.length," ",translateUiCopy(1===o.length?"skill":"skills"),$>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.YELLOW},$," ",n("off2","off"))),s.length>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.YELLOW},s.length," ",n("skipped","skipped")))),subtitle:getSkillPickerNoProjectNotice(y),footer:ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{italic:!0,color:XO.DIM},n("typeToSearchNavigateEnterToToggleTabToEdit","type to search · ↑/↓ navigate · enter to toggle · tab to edit"),s.length>0&&!u&&n("spaceToViewIssues2"," · space to view issues"),u?n("escToClear"," · esc to clear"):n("escToClose3"," · esc to close")),ct.createElement(nt,{color:XO.DIM},n("addSkills","add skills:")," ",ct.createElement(nt,{color:XO.CYAN},getBinaryCommand()," skills add ","<owner/repo>")))},ct.createElement(tt,{marginBottom:1,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:u,resultCount:u?R.length:void 0,placeholder:n("typeToSearchSkills","Type to search skills...")})),0===R.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},n("noSkillsMatch",'No skills match "'),u,'"')):ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},j.rows.length>0&&ct.createElement(PH,{title:n("projectSkills","Project skills"),subtitle:n("orAgents","({{v0}}/{{v1}} or .agents/{{v2}})",{v0:".commandcode",v1:"skills",v2:"skills"}),skills:j.rows,baseIndex:j.baseIndex,cursor:_,disabled:p}),W.rows.length>0&&ct.createElement(PH,{title:n("userSkills","User skills"),subtitle:n("orAgents2","(~/{{v0}}/{{v1}} or ~/.agents/{{v2}})",{v0:".commandcode",v1:"skills",v2:"skills"}),skills:W.rows,baseIndex:W.baseIndex,cursor:_,disabled:p}),H.rows.length>0&&ct.createElement(PH,{title:n("bundledSkills","Bundled skills"),subtitle:n("shipsWithCommandCode","(ships with Command Code)"),skills:H.rows,baseIndex:H.baseIndex,cursor:_,disabled:p})),G&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},n("showing","Showing")," ",U+1,"–",Math.min(B,R.length)," ",n("of","of")," ",R.length,U>0?n("more3"," · ↑ more"):"",B<R.length?n("more4"," · ↓ more"):""))),S&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},S)))},"SkillsConfig");function SkillsConfigView({staticKey:e,onClose:n}){return ct.useEffect(()=>{hardResetForResize()},[]),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(MH,{onClose:n,staticKey:e})))}__name(SkillsConfigView,"SkillsConfigView"),Jt(),Jt(),hL();var IH=__name(()=>[{kind:"scope",scope:"project",label:t("thisProject","This project")},{kind:"scope",scope:"global",label:t("user","User")},{kind:"feed",label:t("showInFeed","Show in feed")}],"ROWS"),AH=__name(({onClose:e,onSettingsChange:n,staticKey:o})=>{const{t:r}=xt(),[s,a]=mt(!0),[i,l]=mt(void 0),[c,d]=mt(void 0),[u,m]=mt(!0),[p,g]=mt(!0),h=isProjectTasteToggleLocked(c),f=ht(async()=>{try{const[e,n]=await Promise.all([getTasteLearningSettings(),getShowTasteLearningInFeed()]);a(e.global),l(e.project),d(e.projectSource),m(n)}catch{}},[]);gt(()=>{f().finally(()=>g(!1))},[f]);const y=__name(async(e,o,r)=>{e();try{await r(),n?.(),await f()}catch(e){o()}},"persist"),v=isByok({model:getConfiguredModel()}),S=__name(e=>{if(v)return;const n=resolveTasteScopeToggle({scope:e.scope,globalEnabled:s,projectOverride:i,projectSource:c});if("locked"===n.kind)return;if("global"===n.scope)return y(()=>a(n.value),()=>a(!n.value),()=>setTasteLearning({tasteLearning:n.value,scope:"global"}));const o=i;return y(()=>l(n.value),()=>l(o),()=>setTasteLearning({tasteLearning:n.value,scope:"project"}))},"toggleRow"),w=__name(e=>{if(v)return;const n=resolveTasteScopeReset({scope:e.scope,globalEnabled:s,projectOverride:i,projectSource:c});if("noop"===n.kind)return;if("save-global"===n.kind)return y(()=>a(!0),()=>a(!1),()=>setTasteLearning({tasteLearning:!0,scope:"global"}));const o=i;return y(()=>l(void 0),()=>l(o),()=>clearProjectTasteLearning())},"resetRow"),k=__name(()=>{if(v)return;const e=!u;return y(()=>m(e),()=>m(!e),()=>setShowTasteLearningInFeed({show:e}))},"toggleFeed"),C=__name(()=>{if(!v&&!u)return y(()=>m(!0),()=>m(!1),()=>setShowTasteLearningInFeed({show:!0}))},"resetFeed"),b=__name(e=>"feed"===e.kind?k():S(e),"handleToggle"),T=__name(e=>"feed"===e.kind?C():w(e),"handleReset"),{cursor:E}=useListNavigation({items:IH(),onSelect:__name(e=>{b(e)},"onSelect"),onReset:__name(e=>{T(e)},"onReset"),onCancel:e,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,isActive:!p});if(p)return ct.createElement(oF,{key:o,title:r("tasteLearning","Taste Learning"),gapAfterHeader:!1},ct.createElement($F,{label:r("loadingConfiguration","Loading configuration")}));const P=__name(e=>!v&&("feed"===e.kind?u:"project"===e.scope?i??s:s),"valueFor");return ct.createElement(oF,{key:o,title:r("tasteLearning","Taste Learning"),subtitle:v?translateUiCopy(Xg):r("learnFromYourInteractions","Learn from your interactions."),hint:v?r("escToClose2","esc to close"):r("navigateEnterToToggleRResetToDefaultEscToClose","↑/↓ navigate · enter to toggle · r reset to default · esc to close")},IH().map((e,n)=>{const o=n===E,s=P(e),a=v||"scope"===e.kind&&"project"===e.scope&&h;return ct.createElement(tt,{key:"feed"===e.kind?"feed":e.scope,marginTop:"feed"===e.kind?1:0},ct.createElement(nt,{color:o?XO.CYAN:XO.GRAY},o?`${vt.pointer} `:" "),ct.createElement(nt,{color:o?XO.CYAN:XO.WHITE},e.label," ".repeat(Math.max(0,16-Be(e.label)))),ct.createElement(nt,{color:s?XO.GREEN:XO.DIM},translateUiCopy(s?"enabled":"disabled")),a?ct.createElement(nt,{color:XO.DIM}," ",v?r("unavailableOnByok2","(unavailable on BYOK)"):r("setInSettingsLocalJson","(set in settings.local.json)")):null)}),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},r("showInFeedOnlyHidesTheNoticesLearningStaysOn",'"Show in feed" only hides the notices — learning stays on.')),ct.createElement(nt,{color:XO.DIM},r("tasteDataStoredInCommandcodeTasteTasteMd","Taste data stored in .commandcode/taste/taste.md")),h?ct.createElement(nt,{color:XO.DIM},r("thisProjectIsPinnedByCommandcodeSettingsLocalJsonEditThatFileToChangeIt","This project is pinned by .commandcode/settings.local.json — edit that file to change it.")):null))},"TasteConfig");function TasteConfigView({staticKey:e,onClose:n,loadTasteStatus:o}){return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(AH,{onClose:n,onSettingsChange:o,staticKey:e})))}function OrgLimitMeter({row:e,width:n,marginTop:o}){const r=e.reached?XO.RED:getUsageColor(e.pct),s=buildBlockBar({percentage:e.pct,width:n});return ct.createElement(tt,{flexDirection:"column",marginTop:o},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},`${e.label} `),ct.createElement(nt,{color:r},s.filled),ct.createElement(nt,{color:cD},s.empty),ct.createElement(nt,{bold:!0,color:r},` ${Math.round(e.pct)}%`)),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},`${" ".repeat(e.label.length+1)}${e.detail}`)))}function OrgLimitsSection({limits:e,width:n,now:o}){const{t:r}=xt(),s=projectOrgSpendLimitRows({limits:e,now:o});return 0===s.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},r("spendLimits","Spend limits")),s.map((e,o)=>ct.createElement(OrgLimitMeter,{key:e.label,row:e,width:n,marginTop:0===o?0:1})))}function fetchUsageData2(){return fetchUsageData({getAuthKey:getAuthKey2,getApiBaseUrl:getApiBaseUrl,createRequest:__name(({baseUrl:e})=>createApiClient({baseUrl:e}),"createRequest")})}function getAuthKey2(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function WindowLimitMeter({label:e,used:n,cap:o,resetAt:r,width:s,now:a}){const{t:i}=xt(),l=o>0?Math.min(100,n/o*100):0,c=getUsageColor(l),d=buildBlockBar({percentage:l,width:s}),u=r>a?i("resetsIn"," · resets in {{v0}}",{v0:formatDuration(r-a)}):"";return ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},e.padEnd(7)," "),ct.createElement(nt,{color:c},d.filled),ct.createElement(nt,{color:cD},d.empty),ct.createElement(nt,{bold:!0,color:c},` ${Math.round(l)}%`),ct.createElement(nt,{color:XO.DIM},u))}function getProgressBarWidth({terminalWidth:e}){return e<50?Math.max(10,e-10):e<70?Math.max(15,e-15):Math.min(30,e-15)}function getDaysColor(e){const n=getRenewalUrgency(e);return"critical"===n?XO.RED:"warning"===n?XO.YELLOW:void 0}__name(TasteConfigView,"TasteConfigView"),Jt(),Jt(),hL(),Jt(),hL(),Jt(),__name(OrgLimitMeter,"OrgLimitMeter"),__name(OrgLimitsSection,"OrgLimitsSection"),__name(fetchUsageData2,"fetchUsageData"),__name(getAuthKey2,"getAuthKey"),__name(WindowLimitMeter,"WindowLimitMeter"),__name(getProgressBarWidth,"getProgressBarWidth"),__name(getDaysColor,"getDaysColor");var xH=__name(({plan:e,status:n})=>{const{t:o}=xt();return ct.createElement(tt,{marginBottom:0},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:XO.BLUE,color:"#f4f4f4",bold:!0},o("usage","{{v0}}USAGE{{v1}}",{v0:zD,v1:zD}))),e&&ct.createElement(ct.Fragment,null,ct.createElement(nt,null," "),ct.createElement(nt,{color:XO.GRAY},o("plan2","{{v0}} Plan",{v0:e.name}))),n&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:"active"===n?XO.GREEN:XO.YELLOW},n)))},"UsageBadge"),RH=__name(()=>{const{t:e}=xt();return ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.YELLOW},e("runningLowKeepGoing","Running low? Keep going:")),ct.createElement(nt,null,ct.createElement(nt,{bold:!0},"/extra "),ct.createElement(nt,{color:XO.DIM},e("payAsYouGoAtApiCostZeroMarkup","pay-as-you-go at API cost, zero markup"))),ct.createElement(nt,null,ct.createElement(nt,{bold:!0},"/upgrade "),ct.createElement(nt,{color:XO.DIM},e("biggerLimits","bigger limits"))))},"ExtraUsageCallout"),LH=__name(({showRetry:e})=>{const{t:n}=xt();return ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,e&&ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"r"),n("toRetry2"," to retry · ")),n("press2","Press "),ct.createElement(qN,null,"Esc"),n("toClose2"," to close")))},"UsageFooter"),OH=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt("loading"),[s,a]=mt(null),[i,l]=mt(!1),c=getProgressBarWidth({terminalWidth:useTerminalWidth()}),d=ht(async e=>{try{l(!1);const n=await fetchUsageData2();if(e.aborted)return;if(!n.whoami){const e=n.errors.some(isAuthErrorMessage);return l(e),void r("error")}a(n),r("loaded")}catch{if(e.aborted)return;r("error")}},[]),u=ct.useRef(null);at((n,s)=>{if(s.escape&&e(),"r"===n&&"error"===o){r("loading"),u.current?.abort();const e=new AbortController;u.current=e,d(e.signal)}}),gt(()=>{const e=new AbortController;return u.current=e,d(e.signal),()=>e.abort()},[d]);const m=s?projectUsageView({usageData:s}):null,p=m?.subscription??null,g=m?.plan??null;if("loading"===o)return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(xH,{plan:g,status:p?.status??null}),ct.createElement($F,null),ct.createElement(LH,null));if("error"===o)return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(xH,{plan:g,status:p?.status??null}),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},i?n("notAuthenticatedRunLoginToConnectYourAccount","Not authenticated. Run /login to connect your account."):n("somethingWentWrong","Something went wrong."))),ct.createElement(LH,{showRetry:!i}));if(!s)return null;const h=m?.hasBillingData??!1,f=m?.usageUrl??null,y=m?.orgLimits??[],v=m?.now??Date.now();if(!h)return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(xH,{plan:g,status:p?.status??null}),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(WF,{message:n("noBillingDataFound","No billing data found.")}),f&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},n("visit","Visit")," "),ct.createElement(_D,{url:f,text:"Studio",color:XO.CYAN}),ct.createElement(nt,{color:XO.DIM}," ",n("forUsageDetails","for usage details.")))),ct.createElement(OrgLimitsSection,{limits:y,width:c,now:v}),ct.createElement(LH,null));const S=m?.windowLimits??null,w=m?.sandboxMinutes??null,k=!0===m?.sandboxAccess&&null!==w&&(w.limitMinutes>0||w.usedMinutes>0),C=m?.summary??null,b=m?.credits,T=b?.usagePercent??0,E=Boolean(b?.hasCreditsInfo),P=(b?.purchasedRemaining??0)+(b?.freeRemaining??0),M=m?.daysLeft??null,I=getDaysColor(M),A=E&&shouldNudgeExtraUsage({usagePercent:T,windows:[S?.fiveHour,S?.weekly]}),x=getUsageColor(T),R=buildBlockBar({percentage:T,width:c});return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(tt,{marginBottom:1},ct.createElement(xH,{plan:g,status:p?.status??null})),E?ct.createElement(tt,null,ct.createElement(nt,{color:x},R.filled),ct.createElement(nt,{color:cD},R.empty),ct.createElement(nt,{bold:!0,color:x},n("used"," {{v0}}% used",{v0:Math.round(T)}))):ct.createElement(nt,{color:XO.DIM},n("planDetailsUnavailable","Plan details unavailable")),E&&ct.createElement(tt,null,C&&ct.createElement(ct.Fragment,null,ct.createElement(nt,null,C.totalCount.toLocaleString()),ct.createElement(nt,{color:XO.DIM},"billing-period"===C.periodBasis?n("requestsThisMonth"," requests this month"):n("requests"," requests"))),null!==M&&ct.createElement(ct.Fragment,null,C&&ct.createElement(nt,{color:XO.DIM}," · "),0===M?ct.createElement(nt,{color:I},n("renewsToday","renews today")):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:I},n("day","{{v0}} day{{v1}}",{v0:M,v1:1===M?"":"s"})),ct.createElement(nt,{color:XO.DIM},n("toRenew"," to renew")))),P>0&&ct.createElement(ct.Fragment,null,(C||null!==M)&&ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.DIM},n("extraCredits","Extra Credits:")," "),ct.createElement(nt,null,formatCredits(P)))),S?.limited&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},n("usageLimits","Usage limits")),S.fiveHour&&ct.createElement(WindowLimitMeter,{label:n("fiveHour","5-hour"),used:S.fiveHour.used,cap:S.fiveHour.cap,resetAt:S.fiveHour.resetAt,width:c,now:v}),S.weekly&&ct.createElement(tt,{marginTop:S.fiveHour?1:0,flexDirection:"column"},ct.createElement(WindowLimitMeter,{label:n("weekly","Weekly"),used:S.weekly.used,cap:S.weekly.cap,resetAt:S.weekly.resetAt,width:c,now:v}))),A&&ct.createElement(RH,null),k&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},n("sandboxMinutes","Cloud minutes")),w.limitMinutes>0?ct.createElement(WindowLimitMeter,{label:n("month","Month"),used:w.usedMinutes,cap:w.limitMinutes,resetAt:w.resetAt,width:c,now:v}):ct.createElement(nt,null,n("minUsedThisMonthBilledPerMinute","{{v0}} min used this month, billed per minute",{v0:w.usedMinutes}))),ct.createElement(OrgLimitsSection,{limits:y,width:c,now:v}),f&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},n("fullBreakdownAt","Full breakdown at")," "),ct.createElement(_D,{url:f,text:m?.usageUrlDisplay??f,color:XO.CYAN})),ct.createElement(LH,null))},"UsageOverlay");function UsageView({staticKey:e,onClose:n}){return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(OH,{onClose:n})))}__name(UsageView,"UsageView"),Jt(),hL(),Jt(),hL(),Jt();var DH="@last";function shortenHomePath(e){const n=K();return e.startsWith(n)?`~${e.slice(n.length)}`:e}__name(shortenHomePath,"shortenHomePath");var NH=__name(()=>({approved:{label:t("approved","{{v0}} approved",{v0:vt.tick}),color:XO.GREEN},"not-implemented":{label:t("setAside","{{v0}} set aside",{v0:vt.circleDotted}),color:XO.YELLOW},pending:{label:t("pending","{{v0}} pending",{v0:vt.dot}),color:XO.DIM}}),"PLAN_STATUS_DISPLAY"),FH=createNodeRuntime(),_H={"?":"Why? Explain the reasoning behind this.",x:"Cut this — remove it from the plan.","!":"Risky — double-check this before implementing."};function lineStyleProps(e){if(e.changed)return{color:XO.GREEN,bold:!1,italic:!1};const n={color:XO.WHITE,bold:!1,italic:!1};if(!e.style)return n;switch(e.style.role){case"heading":return{color:fD.HEADING,bold:!0,italic:!1};case"code":case"code-fence":return{color:fD.CODE,bold:!1,italic:!1};case"quote":return{color:XO.DIM,bold:!1,italic:!0};case"table":return{color:XO.CYAN,bold:!1,italic:!1};default:return n}}__name(lineStyleProps,"lineStyleProps");var $H=__name(({plan:e,variant:n="browse",fallbackContent:o,onBack:r,onSubmitFeedback:s,onExecute:a,onAutoAccept:i})=>{const{t:l}=xt(),[c,d]=mt(null),[u,m]=mt(e.annotations),[p,g]=mt(!1);gt(()=>{p||m(e.annotations)},[e.annotations,p]);const[h,f]=mt({kind:"line",lineNumber:1}),[y,v]=mt(null),S=pt([]),w=ut(()=>shouldCollapsePastedText(),[]),[k,C]=mt(null),[b,T]=mt(null),[E,P]=mt(!1),[M,I]=mt(0),[A,x]=mt(null),R=useTerminalHeight(),L=useTerminalWidth();gt(()=>{__name(async()=>{const n=await readPlanContent({runtime:FH,filePath:e.filePath})??o??null;d(null===n?[]:splitPlanLines(n))},"load")()},[e.filePath,o]);const O=e.version??1;gt(()=>{O<=1||!e.filePath||readPlanVersionSnapshot({runtime:FH,filePath:e.filePath,version:O-1}).then(x).catch(()=>{})},[O,e.filePath]);const D=ut(()=>null!==A&&null!==c?diffPlanChangedLines({previous:A,current:c}):new Set,[A,c]),N=u.length,F=ut(()=>{const e={id:"feedback",label:l("submitReview","Submit review ({{v0}})",{v0:N}),chord:"ctrl+r",color:XO.CYAN,hint:l("agentRevisesThePlanReturnsItForReview","agent revises the plan, returns it for review")};return"approval"===n?[...N>0?[e]:[],{id:"auto-accept",label:l("approve","Approve"),chord:"ctrl+a",color:XO.GREEN,hint:N>0?l("executesThePlanCommentsGoAlongAsNotes","executes the plan · comments go along as notes"):l("executesThePlan","executes the plan")},{id:"cancel",label:l("cancel2","Cancel"),chord:"esc",color:XO.YELLOW,hint:""}]:[...N>0?[e]:[],{id:"execute",label:l("executePlan","Execute plan"),chord:"ctrl+e",color:XO.GREEN,hint:l("executesThePlanAsWritten","executes the plan as written")},{id:"cancel",label:l("back2","Back"),chord:"esc",color:XO.YELLOW,hint:""}]},[n,N]),_=ut(()=>y?u.filter(e=>e.line!==y.line):u,[u,y]),$=ut(()=>buildPlanReaderRows({lines:c??[],annotations:_}),[c,_]),U=ut(()=>classifyPlanLines(c??[]),[c]),B=c?.length??0,j=resolvePlanWrapWidth(Math.max(20,L-7-2)),W=ut(()=>buildPlanReaderDisplayRows({rows:$,width:j}),[$,j]),H=getPlanReaderCursorDisplaySpan({displayRows:W,cursor:h}),G=R-1,V=Math.max(4,G-10-7),K=y?1:0,z=-1===H.first?W.length-1:H.first,q=-1===H.last?W.length-1:H.last+K;gt(()=>{I(e=>{const n=clampScrollOffset({cursor:Math.max(0,q),total:W.length+K,maxVisible:V,currentOffset:e});return clampScrollOffset({cursor:Math.max(0,z),total:W.length+K,maxVisible:V,currentOffset:n})})},[z,q,W.length,K,V]),gt(()=>{f(e=>snapPlanReaderCursor({cursor:e,lineCount:B,actions:[]}))},[B]),gt(()=>{f(e=>"action"!==e.kind||F.some(n=>n.id===e.id)?e:{kind:"line",lineNumber:Math.max(1,B)})},[F,B]);const Y=__name(n=>{g(!0),m(n),e.filePath&&setPlanAnnotations({runtime:FH,filePath:e.filePath,annotations:n}).catch(()=>T(l("failedToSaveCommentsToDisk","Failed to save comments to disk")))},"persistAnnotations"),J="line"===h.kind?u.find(e=>e.line===h.lineNumber):void 0,Q=__name(()=>{if(0===u.length||!c)return;const n=buildPlanAnnotationsPrompt({title:e.title,filePath:e.filePath||l("planNotSavedToAFileYet","(plan not saved to a file yet)"),lines:c,annotations:u});e.filePath&&snapshotPlanVersion({runtime:FH,filePath:e.filePath}).catch(()=>{}),Y([]),s(n)},"submitFeedback"),X=__name(n=>{if(n&&u.length>0&&c){const n=buildPlanApprovalNotesPrompt({title:e.title,...e.filePath?{filePath:e.filePath}:{},lines:c,annotations:u});return Y([]),void i?.(n)}Y([]),i?.()},"approve"),Z=__name(()=>{"approval"===n&&(N>0?C({kind:"approve",choice:"notes"}):X(!1))},"requestApprove"),ee=__name(()=>{N>0&&!e.filePath?C({kind:"cancel"}):r()},"requestCancel"),te=__name(n=>{"feedback"!==n?"execute"!==n?"auto-accept"!==n?"cancel"===n&&ee():Z():(a??s)(buildPlanExecutePrompt({title:e.title,filePath:e.filePath||e.fileName})):Q()},"runAction"),ne=__name(()=>{e.filePath?(P(!0),openFileInEditor(e.filePath).then(async()=>{const n=await readPlanContent({runtime:FH,filePath:e.filePath});null!==n&&d(splitPlanLines(n))}).catch(e=>T(e instanceof Error?e.message:l("failedToOpenTheEditor","Failed to open the editor"))).finally(()=>{P(!1),hardResetForResize()})):T(l("thisPlanIsNotSavedToAFileYet","This plan is not saved to a file yet"))},"openExternalEditor"),oe=__name(e=>{"line"!==h.kind||h.lineNumber<1||h.lineNumber>B||(S.current=e?[]:J?.pastes??[],v({line:h.lineNumber,value:e||(J?.text??""),hadExisting:void 0!==J}))},"openDraft"),re=__name(e=>{y&&(Y(upsertPlanAnnotation({annotations:u,line:y.line,text:e,createdAt:(new Date).toISOString(),pastes:S.current})),S.current=[],v(null))},"commitDraft"),se=ut(()=>{const e=new Set;for(const n of u)e.add(n.line);for(const n of D)e.add(n);return[...e].sort((e,n)=>e-n)},[u,D]),ae=__name(e=>{if(0===se.length)return;const n="line"===h.kind?h.lineNumber:B+1,o="next"===e?se.find(e=>e>n)??se[0]:[...se].reverse().find(e=>e<n)??se[se.length-1];void 0!==o&&f({kind:"line",lineNumber:o})},"jumpMarked");at((e,n)=>{n.escape&&v(null)},{isActive:null!==y}),at((e,n)=>{if(k)if(n.escape)C(null);else if("approve"===k.kind&&(n.leftArrow||n.rightArrow||n.tab))C({kind:"approve",choice:"notes"===k.choice?"original":"notes"});else if(n.return){if("approve"===k.kind)return C(null),void X("notes"===k.choice);C(null),r()}},{isActive:null!==k}),at((e,o)=>{if(o.escape)return void ee();if(o.upArrow||o.downArrow)return T(null),void f(e=>{if("action"===e.kind){const n=F.findIndex(n=>n.id===e.id);if(o.upArrow){if(n<=0&&B>0)return{kind:"line",lineNumber:B};const o=F[Math.max(0,n-1)];return o?{kind:"action",id:o.id}:e}const r=F[Math.min(F.length-1,n+1)];return r?{kind:"action",id:r.id}:e}if(o.upArrow)return{kind:"line",lineNumber:Math.max(1,e.lineNumber-1)};if(e.lineNumber>=B){const n=F[0];return n?{kind:"action",id:n.id}:e}return{kind:"line",lineNumber:e.lineNumber+1}});if(o.pageUp||o.pageDown)return T(null),void f(e=>"action"===e.kind&&o.pageDown?e:movePlanReaderCursorByPage({displayRows:W,cursor:e,direction:o.pageDown?"down":"up",pageRows:Math.max(1,V-1)}));if(o.home||o.end)return T(null),void(B>0&&f({kind:"line",lineNumber:o.home?1:B}));if(o.leftArrow||o.rightArrow){if("action"!==h.kind)return;const e=F.findIndex(e=>e.id===h.id);if(-1===e)return;const n=o.leftArrow?Math.max(0,e-1):Math.min(F.length-1,e+1),r=F[n];return void(r&&f({kind:"action",id:r.id}))}if(o.ctrl&&"r"===e)return void Q();if(o.ctrl&&"a"===e&&"approval"===n)return void Z();if(o.ctrl&&"e"===e&&"browse"===n)return void te("execute");if(o.ctrl&&"g"===e)return void ne();if(o.ctrl&&"n"===e)return void ae("next");if(o.ctrl&&"p"===e)return void ae("previous");if(o.return)return"action"===h.kind?void te(h.id):void oe("");const r=_H[e];"line"!==h.kind||!r||o.ctrl||o.meta?"line"===h.kind&&e.length>0&&!o.ctrl&&!o.meta&&oe(e):Y(upsertPlanAnnotation({annotations:u,line:h.lineNumber,text:J?.text===r?"":r,createdAt:(new Date).toISOString()}))},{isActive:null===y&&null===k&&null!==c&&!E});const ie=NH()[e.status],le=M,ce=M+V-K,de=W.slice(le,ce),ue=y?y.hadExisting?l("enterToKeepClearEnterRemovesEscKeepAsWas","enter to keep · clear + enter removes · esc keep as was"):l("enterToPinEscDiscard","enter to pin · esc discard"):k?"approve"===k.kind?l("chooseEnterConfirmEscBack","←/→ choose · enter confirm · esc back"):l("enterDiscardEscBack","enter discard · esc back"):"action"===h.kind?l("chooseEnterToRun","↑/↓ choose · enter to run"):[l("typeEnterToComment","type + enter to comment"),...se.length>0?[l("ctrlNPJump","ctrl+n/p jump {{v0}}",{v0:D.size>0?"changes":"comments"})]:[],l("quickWhyXCutRisky","quick: ? why x cut ! risky"),"ctrl+g $EDITOR"].join(" · ");return ct.createElement(oF,{title:"approval"===n?l("planReview","Plan review: {{v0}}",{v0:e.title}):e.title,titleSuffix:"approval"===n?ct.createElement(ct.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1):ct.createElement(ct.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1," ",ct.createElement(nt,{color:ie.color},ie.label)),subtitle:"approval"===n?l("reviewThePlanLikeAPrTypeOnAnyLineToCommentEnterPinsItUnderTheLine","Review the plan like a PR — type on any line to comment, enter pins it under the line."):void 0,footer:ct.createElement(nt,{italic:!0,color:XO.DIM},ue)},null===c?ct.createElement(nt,{color:XO.DIM},l("loadingPlan","Loading plan...")):0===B?ct.createElement(nt,{color:XO.DIM},l("planFileIsEmptyOrMissingOnDisk","Plan file is empty or missing on disk.")):ct.createElement(tt,{flexDirection:"column"},de.map((e,n)=>{const o=le+n,{row:r}=e;if("action"===r.kind)return null;if("annotation"===r.kind)return ct.createElement(tt,{key:`annotation-${r.lineNumber}-${o}`},ct.createElement(nt,{color:XO.DIMMER}," ".repeat(5)),ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG}," ",e.isFirstSegment?"↳ ":" ",e.text," "));const s="line"===h.kind&&h.lineNumber===r.lineNumber,a=lineStyleProps({style:U[r.lineNumber-1],changed:D.has(r.lineNumber)}),i=W[o+1],c=!i||"line"!==i.row.kind||i.row.lineNumber!==r.lineNumber,d=o===ce-1,u=null!==y&&y.line===r.lineNumber&&(c||d);return ct.createElement(ct.Fragment,{key:`line-${r.lineNumber}-${o}`},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIMMER},e.isFirstSegment?String(r.lineNumber).padStart(4," "):" "," "),ct.createElement(nt,{color:r.hasAnnotation?XO.CYAN:XO.DIMMER},e.isFirstSegment&&r.hasAnnotation?`${vt.bullet} `:" "),ct.createElement(nt,{color:a.color,bold:a.bold,italic:a.italic,backgroundColor:s?kD:void 0},e.text||" ")),u&&y&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.CYAN}," ┃ ",vt.bullet," "),ct.createElement(TextInput,{value:y.value,onChange:e=>{S.current=prunePlanAnnotationPastes(e,S.current),v(n=>n?{...n,value:e}:n)},onSubmit:re,placeholder:l("typeYourComment","Type your comment…"),focus:null!==y,stripBracketedPaste:!0,clipboardOnEmptyPaste:!0,collapsePastedText:w,onPasteCollapsed:e=>{S.current=[...S.current,e]}})))})),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(MD,{dividerColor:XO.DIMMER}),ct.createElement(tt,null,ct.createElement(nt,{bold:!0,backgroundColor:eD.BADGE_BG,color:XO.WHITE},l("review2"," REVIEW ")),ct.createElement(nt,{color:XO.DIM},N>0&&l("pendingComment"," {{v0}} pending comment{{v1}}",{v0:N,v1:1===N?"":"s"}),O>1&&l("round"," · round {{v0}}{{v1}}",{v0:O,v1:D.size>0?` · ${D.size} line${1===D.size?"":"s"} changed`:""}))),k?"approve"===k.kind?ct.createElement(tt,null,ct.createElement(nt,{bold:!0,color:XO.GREEN},l("approve","Approve")," "),ct.createElement(nt,{color:"notes"===k.choice?XO.WHITE:XO.DIM,backgroundColor:"notes"===k.choice?kD:void 0},"notes"===k.choice?"(•)":"( )"," ",l("approveWithComments","with {{count}} comment{{suffix}} as notes",{count:N,suffix:1===N?"":"s"})),ct.createElement(nt,{color:XO.DIMMER}," "),ct.createElement(nt,{color:"original"===k.choice?XO.WHITE:XO.DIM,backgroundColor:"original"===k.choice?kD:void 0},"original"===k.choice?"(•)":"( )"," ",l("originalPlanDiscardComments","original plan · discard comments"))):ct.createElement(tt,null,ct.createElement(nt,{color:XO.YELLOW},l("discardPendingComments","Discard {{count}} pending comment{{suffix}} and exit review?",{count:N,suffix:1===N?"":"s"}))):F.map(e=>{const n="action"===h.kind&&h.id===e.id;return ct.createElement(tt,{key:e.id},ct.createElement(nt,{bold:!0,color:e.color,backgroundColor:n?kD:void 0},n?`${vt.pointer} ${e.label} `:e.label),ct.createElement(nt,{color:XO.DIM}," ",e.chord),e.hint&&ct.createElement(nt,{color:XO.DIMMER}," ",e.hint))}),b&&ct.createElement(nt,{color:XO.YELLOW},b)))},"PlanReader"),UH=createNodeRuntime();function PlanApprovalView({staticKey:e,planContent:n,planFilePath:o,onAutoAccept:r,onCancel:s,onSendFeedback:a}){gt(()=>{hardResetForResize()},[]);const[i,l]=mt(null);gt(()=>{o&&listPlans({runtime:UH}).then(e=>l(e.find(e=>e.filePath===o)??null)).catch(()=>{})},[o]);const c=ut(()=>{if(i)return i;const e=o?.split("/").pop()??"plan.md";return{fileName:e,filePath:o??"",title:derivePlanTitle({content:n,fileName:e}),status:"pending",createdAt:"",updatedAt:"",annotations:[]}},[i,o,n]);return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement($H,{plan:c,variant:"approval",fallbackContent:n,onBack:s,onSubmitFeedback:a,onAutoAccept:r})))}__name(PlanApprovalView,"PlanApprovalView"),Jt(),Jt(),hL();var BH=Date.now(),jH=createNodeRuntime();function matchesTarget(e,n){const o=n.toLowerCase();return e.fileName.toLowerCase()===o||e.fileName.toLowerCase().replace(/\.md$/,"")===o||e.title.toLowerCase()===o}__name(matchesTarget,"matchesTarget");var WH=__name(({sessionId:e,target:n,onClose:o,onSubmitFeedback:r,onExecute:s})=>{const{t:a}=xt(),[i,l]=mt([]),[c,d]=mt([]),[u,m]=mt(!0),[p,g]=mt(null),[h,f]=mt("session"),[y,v]=mt(null),[S,w]=mt(""),[k,C]=mt(0),[b,T]=mt(0),E=useTerminalHeight(),P=pt(!1);gt(()=>{__name(async()=>{try{const[o,r]=await Promise.all([listPlans({runtime:jH,sessionId:e,sessionStartMs:BH}),listPlans({runtime:jH})]);if(l([...o]),d([...r]),n&&!P.current)if(P.current=!0,n===DH){const e=o[0];e&&v(e)}else{const e=r.find(e=>matchesTarget(e,n.trim()));e?v(e):w(n.trim())}}catch(e){g(e instanceof Error?e.message:a("failedToLoadPlans","Failed to load plans"))}finally{m(!1)}},"load")()},[e,b]);const M="session"===h?i:c,I=ut(()=>{const e=S.trim().toLowerCase();return e?M.filter(n=>n.title.toLowerCase().includes(e)||n.fileName.toLowerCase().includes(e)):M},[M,S]),A=E-1,x=Math.max(3,A-9),R=null===y&&!u,{cursor:L}=useListNavigation({items:I,onSelect:__name(e=>v(e),"onSelect"),onCancel:o,searchQuery:S,onSearchChange:w,initialIndex:0,isActive:R});if(gt(()=>{C(e=>clampScrollOffset({cursor:L,total:I.length,maxVisible:x,currentOffset:e}))},[L,I.length,x]),at((e,n)=>{(n.leftArrow||n.rightArrow)&&(f(e=>"session"===e?"all":"session"),C(0))},{isActive:R}),y)return ct.createElement($H,{plan:y,onBack:()=>{v(null),T(e=>e+1)},onSubmitFeedback:r,onExecute:s});if(u)return ct.createElement(oF,{title:a("plans","Plans"),gapAfterHeader:!1},ct.createElement(nt,{color:XO.DIM},a("loadingPlans","Loading plans...")));if(p)return ct.createElement(oF,{title:a("plans","Plans"),titleColor:XO.RED,gapAfterHeader:!1,hint:a("escToClose","Esc to close")},ct.createElement(nt,{color:XO.DIM},p));const O=k,D=k+x,N=I.slice(O,D),F=I.length>x;return ct.createElement(oF,{title:a("plans","Plans"),titleSuffix:ct.createElement(ct.Fragment,null," ",a("planCount","{{count}} plan{{suffix}}",{count:I.length,suffix:1===I.length?"":"s"})),subtitle:ct.createElement(ct.Fragment,null,ct.createElement(nt,{bold:"session"===h,color:"session"===h?JN:XO.DIM},a("thisSession","This session")),ct.createElement(nt,{color:XO.DIMMER},` ${vt.triangleLeftSmall} ${vt.triangleRightSmall} `),ct.createElement(nt,{bold:"all"===h,color:"all"===h?JN:XO.DIM},a("allPlans","All plans"))),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},a("typeToSearchNavigateSwitchTabEnterToOpen","type to search · ↑/↓ navigate · ←/→ switch tab · enter to open"),S?a("escToClear"," · esc to clear"):a("escToClose3"," · esc to close"))},ct.createElement(tt,{marginBottom:1,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:S,resultCount:S?I.length:void 0,placeholder:a("typeToSearchPlans","Type to search plans...")})),0===I.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},S?a("noPlansMatch",'No plans match "{{v0}}"',{v0:S}):"session"===h?a("noPlansInThisSessionYetUsePlanOrPlanModeToCreateOnePressForAllPlans","No plans in this session yet — use /plan or plan mode to create one. Press → for all plans."):a("noSavedPlansYetPlansLandInCommandcodePlansWhenYouUsePlanMode","No saved plans yet — plans land in ~/.commandcode/plans when you use plan mode."))):ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},N.map((e,n)=>{const o=O+n===L,r=NH()[e.status];return ct.createElement(tt,{key:e.fileName},ct.createElement(nt,{color:o?ZN:XO.GRAY},o?`${vt.pointer} `:" "),ct.createElement(nt,{bold:o,color:o?ZN:XO.WHITE},e.title),ct.createElement(nt,{color:r.color}," ",r.label),(e.version??1)>1&&ct.createElement(nt,{color:XO.DIM}," ","v",e.version),e.annotations.length>0&&ct.createElement(nt,{color:XO.CYAN}," ",e.annotations.length," ",a("comment","comment"),1===e.annotations.length?"":"s"),ct.createElement(nt,{color:XO.DIM}," ",formatRelativeTimeShort({timestamp:e.updatedAt})))})),F&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},a("showing","Showing")," ",O+1,"–",Math.min(D,I.length)," ",a("of","of")," ",I.length,O>0?a("more3"," · ↑ more"):"",D<I.length?a("more4"," · ↓ more"):""))))},"PlansScreen");function PlansView({staticKey:e,sessionId:n,target:o,onClose:r,onSubmitFeedback:s,onExecute:a}){return ct.useEffect(()=>{hardResetForResize()},[]),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(WH,{sessionId:n,target:o,onClose:r,onSubmitFeedback:s,onExecute:a})))}function ForkSummary({session:e,isSelected:n,nameColor:o}){if(!e.forkProvenance)return null;const r=n?void 0:XO.DIM,s=e.userRenamed&&e.title?e.title:null;return s?ct.createElement(nt,{color:o},`${s} `,ct.createElement(nt,{color:r},`· ${e.forkProvenance}`)):ct.createElement(nt,{color:r},e.forkProvenance)}__name(PlansView,"PlansView"),Jt(),Jt(),hL(),Jt(),__name(ForkSummary,"ForkSummary");var HH=__name((e,n)=>e.padEnd(n),"padCell"),GH=__name(e=>e instanceof Error&&e.message?e.message:t("unknownError","Unknown error"),"getActionErrorMessage");function resolveRowColor(e){return e.isDeletePending?XO.RED:e.isCurrentSession?ZO:e.isSelected?XO.WHITE:XO.GRAY}function renderRowSummary(e){const{session:n,isSelected:o,nameColor:r}=e;if(n.forkProvenance)return ct.createElement(ForkSummary,{session:n,isSelected:o,nameColor:r});const s=getSessionSummary({session:n});return n.userRenamed&&n.title?ct.createElement(nt,{color:r},s):s}__name(resolveRowColor,"resolveRowColor"),__name(renderRowSummary,"renderRowSummary");var VH=["recent","created","messages"],KH=__name(()=>({recent:t("recent","Recent"),created:t("created","Created"),messages:t("messages","Messages")}),"SORT_MODE_LABEL");function nextSortMode(e){const n=VH.indexOf(e);return VH[(n+1)%VH.length]}function sortSessions(e,n){return"created"===n?[...e].sort((e,n)=>Date.parse(n.createdAt)-Date.parse(e.createdAt)):"messages"===n?[...e].sort((e,n)=>n.messageCount-e.messageCount):e}function matchesSearch2(e,n){const o=n.toLowerCase().split(/\s+/).filter(Boolean);if(0===o.length)return!0;const r=[e.id,e.title??"",e.firstMessage,e.gitBranch??""].join(" ").toLowerCase();return o.every(e=>r.includes(e))}function getFilteredEmptyState(e){return e.namedOnly?{text:t("noNamedSessions","No named sessions."),hint:t("pressCtrlNToShowAll","Press ctrl+n to show all.")}:e.searchQuery?{text:t("noSessionsMatch",'No sessions match "{{v0}}"',{v0:e.searchQuery}),hint:t("pressEscToClearSearch","Press Esc to clear search.")}:e.branchFilter&&e.currentBranch?{text:t("noSessionsFoundForBranch",'No sessions found for branch "{{v0}}"',{v0:e.currentBranch}),hint:t("pressCtrlBToShowAllBranchesEscToCancel","Press ctrl+b to show all branches, Esc to cancel")}:{text:t("noPreviousSessionsFound","No previous sessions found"),hint:t("pressEscToGoBack","Press Esc to go back")}}function resolveProjectBaseDir(){const e=getCommandSessionRuntime();return getProjectSessionDir({env:e.env(),cwd:e.cwd()})}__name(nextSortMode,"nextSortMode"),__name(sortSessions,"sortSessions"),__name(matchesSearch2,"matchesSearch"),__name(getFilteredEmptyState,"getFilteredEmptyState"),__name(resolveProjectBaseDir,"resolveProjectBaseDir");var zH=__name(({onSelectSession:e,onClose:n,currentSessionId:o})=>{const{t:r}=xt(),[s,a]=mt([]),[i,l]=mt(0),[c,d]=mt(0),[u,m]=mt(!0),[p,g]=mt(!1),[h,f]=mt(!1),[y,v]=mt(null),[S,w]=mt(null),[k,C]=mt(""),[b,T]=mt(!1),[E,P]=mt("recent"),[M,I]=mt(!1),[A,x]=mt("list"),[R,L]=mt(null),[O,D]=mt(""),[N,F]=mt(null),[_]=mt(()=>getCurrentGitBranch()),[$]=mt(()=>resolveProjectBaseDir()),U=useTerminalHeight(),B=Math.max(6,U-19),j=ht(async()=>{m(!0);const e=await listCommandSessions();a(e),m(!1)},[]);gt(()=>{j()},[j]),gt(()=>{if(!S)return;const e=setTimeout(()=>w(null),3e3);return()=>clearTimeout(e)},[S]);const W=ht(async e=>{try{const n=getCommandSessionRuntime(),{method:o}=await deleteSessionV3({runtime:n,baseDir:$,id:e});f(!1),v(null),l(0),d(0),w("trash"===o?r("sessionMovedToTrash","Session moved to trash"):r("sessionDeleted","Session deleted")),await j()}catch(e){f(!1),v(r("failedToDeleteSession","Failed to delete session: {{v0}}",{v0:GH(e)}))}},[j,$]),H=ht(async e=>{const n=R;if(n)try{const o=getCommandSessionRuntime();await renameSessionFile({runtime:o,cwd:o.cwd(),baseDir:$,id:n,name:e}),x("list"),L(null),F(null),await j()}catch(e){F(r("failedToRenameSession","Failed to rename session: {{v0}}",{v0:GH(e)}))}else x("list")},[R,j,$]),G=filterSessionsByBranch({sessions:s,branchFilter:p,currentBranch:_}),V=M?G.filter(e=>e.userRenamed):G,K=sortSessions(k?V.filter(e=>matchesSearch2(e,k)):V,E);if(gt(()=>{l(e=>Math.min(e,Math.max(0,K.length-1)))},[K.length]),at((s,a)=>{if("rename"===A)return a.escape?(x("list"),void L(null)):void 0;if(h){if(!a.return)return void f(!1);if(K.length>0&&i<K.length){const e=K[i];W(e.id)}}else{if(a.delete||isCtrlKey({inputChar:s,key:a,letter:"d",ctrlCode:4})){if(0===K.length)return;return K[i]?.id===o?void v(r("cannotDeleteTheCurrentSession","Cannot delete the current session")):(v(null),void f(!0))}if(isCtrlKey({inputChar:s,key:a,letter:"r",ctrlCode:18})){if(u)return;const e=K[i];if(!e)return;return F(null),D(e.title??""),L(e.id),void x("rename")}if(isCtrlKey({inputChar:s,key:a,letter:"p",ctrlCode:16}))T(e=>!e);else{if(!isCtrlKey({inputChar:s,key:a,letter:"s",ctrlCode:19}))return isCtrlKey({inputChar:s,key:a,letter:"n",ctrlCode:14})?(I(e=>!e),l(0),void d(0)):a.escape?k?(C(""),l(0),void d(0)):void n():isCtrlKey({inputChar:s,key:a,letter:"b",ctrlCode:2})?(g(e=>!e),l(0),void d(0)):void(a.upArrow?l(e=>{const n=Math.max(0,e-1);return n<c&&d(n),n}):a.downArrow?l(e=>{const n=Math.min(K.length-1,e+1);return n>=c+B&&d(n-B+1),n}):a.return?K.length>0&&i<K.length&&e(K[i].id):a.backspace?k&&(C(e=>e.slice(0,-1)),l(0),d(0)):!a.ctrl&&!a.meta&&!a.tab&&s&&1===s.length&&s>=" "&&(C(e=>e+s),l(0),d(0)));P(e=>nextSortMode(e))}}}),u)return ct.createElement(tt,{flexDirection:"column",paddingLeft:2},ct.createElement($F,{label:r("loadingSessions","Loading sessions")}));if(0===s.length)return ct.createElement(tt,{flexDirection:"column",paddingLeft:2},ct.createElement(WF,{message:r("noPreviousSessionsFound","No previous sessions found"),hint:r("pressEscToGoBack","Press Esc to go back")}));const z=K.slice(c,c+B),q=i<K.length?K[i]:null,Y=h&&q?r("deletePressEnterToConfirmAnyOtherKeyToCancel",'Delete "{{v0}}"? Press Enter to confirm, any other key to cancel.',{v0:getSessionSummary({session:q})}):null,J=getFilteredEmptyState({namedOnly:M,searchQuery:k,branchFilter:p,currentBranch:_});return ct.createElement(oF,{title:r("resumeSession","Resume Session"),subtitle:r("sortNameBranch","Sort: {{v0}} · Name: {{v1}} · Branch: {{v2}}",{v0:KH()[E],v1:M?"Named":"All",v2:p?_??"unknown":"All"})},ct.createElement(tt,{marginBottom:1,width:"100%"},ct.createElement(jD,{query:k,resultCount:k?K.length:void 0,placeholder:r("typeToSearchSessions","Type to search sessions...")})),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:cD,bold:!0},HH("#",6),HH(r("modified","Modified"),12),HH(r("gitBranch","Git Branch"),22),HH(r("messages","Messages"),12),r("summary","Summary"),b?r("path2"," · Path"):"")),0===K.length?ct.createElement(tt,{marginBottom:1},ct.createElement(WF,{message:J.text,hint:J.hint})):ct.createElement(tt,{flexDirection:"column"},z.map((e,n)=>{const r=c+n,s=i===r,a=h&&s,l=a?void 0:XO.YELLOW,d=resolveRowColor({isDeletePending:a,isCurrentSession:e.id===o,isSelected:s}),u=truncateString2({text:e.gitBranch||"-",maxChars:20}),m=b?toRelativePath(`${$}/${e.id}.jsonl`):null;return ct.createElement(nt,{key:e.id,color:d,backgroundColor:s?kD:void 0,bold:s,wrap:"truncate-end"},HH(`${r+1}.`,6),HH(formatRelativeTimeShort({timestamp:e.lastModified}),12),HH(u,22),HH(String(e.messageCount),12),renderRowSummary({session:e,isSelected:s,nameColor:l}),m?ct.createElement(nt,{color:XO.DIM},` ${m}`):null," ")})),ct.createElement(tt,{marginTop:1}),"rename"===A&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.CYAN},r("rename","Rename: ")),ct.createElement(TextInput,{value:O,onChange:D,onSubmit:H,singleLine:!0,stripBracketedPaste:!0})),N&&ct.createElement(tt,{marginBottom:1},ct.createElement(UF,{glyph:!1},N)),Y&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.RED},Y)),y&&ct.createElement(tt,{marginBottom:1},ct.createElement(UF,{glyph:!1},y)),S&&ct.createElement(tt,{marginBottom:1},ct.createElement(BF,{glyph:!1},S)),K.length>B&&ct.createElement(nt,{color:XO.DIM},r("showing","Showing")," ",c+1,"–",Math.min(c+B,K.length)," ",r("of","of")," ",K.length,c>0?r("more3"," · ↑ more"):"",c+B<K.length?r("more4"," · ↓ more"):""),ct.createElement(YN,{marginTop:0,hints:[r("enterResume","enter resume"),r("ctrlSSort","ctrl+s sort"),r("ctrlNNamed","ctrl+n named"),r("ctrlRRename","ctrl+r rename"),r("ctrlDDelete","ctrl+d delete"),r("ctrlPPath","ctrl+p path"),r("ctrlBBranch","ctrl+b branch"),r("typeToSearch","type to search")]}))},"SessionsResumeTable"),qH=dt(__name(function SessionView2({onSelectSession:e,onClose:n,currentSessionId:o}){return ct.createElement(zH,{onSelectSession:e,onClose:n,currentSessionId:o})},"SessionView"));Jt(),Jt();var YH=__name(({onTrust:e,onExit:n})=>{const{t:o}=xt(),{exit:r}=it(),[s,a]=mt(1),i=process.cwd(),l=K(),c=l&&i.startsWith(l)?`~${i.slice(l.length)}`:i;return at((o,i)=>{if(i.upArrow||i.downArrow)a(1===s?2:1);else{if(i.return)return 1===s?void e():(n(),void r());if("1"!==o)return"2"===o?(n(),void r()):void((i.escape||i.ctrl&&"c"===o)&&(n(),r()));e()}}),ct.createElement(oF,{title:o("doYouTrustTheFilesInThisFolder","Do you trust the files in this folder?"),subtitle:c,hint:o("toNavigateEnterToSelectEscToExit","↑/↓ to navigate · enter to select · esc to exit")},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,null,o("mayReadFilesInThisFolderReadingUntrustedFilesMayLeadToBehaveInUnexpectedWays","{{v0}} may read files in this folder. Reading untrusted files may lead {{v1}} to behave in unexpected ways.",{v0:"Command Code",v1:"Command Code"})),ct.createElement(tt,{marginTop:1},ct.createElement(nt,null,o("withYourPermissionMayExecuteFilesInThisFolderExecutingUntrustedCodeIsUnsafe","With your permission {{v0}} may execute files in this folder. Executing untrusted code is unsafe.",{v0:"Command Code"})))),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(s$,{isSelected:1===s}),ct.createElement(a$,{isSelected:1===s,idleColor:tF}," ",o("1YesProceed","1. Yes, proceed"))),ct.createElement(tt,null,ct.createElement(s$,{isSelected:2===s}),ct.createElement(a$,{isSelected:2===s,idleColor:tF}," ",o("2NoExit","2. No, exit")))))},"TrustPrompt"),JH=dt(__name(function TrustView2({staticKey:e,onTrust:n,onExit:o}){return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(YH,{onTrust:n,onExit:o}))},"TrustView"));function useAgentSlashCommandQueue({sessionId:e,isCmdCodeBusy:n,onCommand:o}){const r=pt(!1),s=pt(()=>{});s.current=()=>{if(n||r.current)return;const a=drainAgentSlashCommands({sessionId:e});0!==a.length&&(r.current=!0,(async()=>{try{for(const e of a)await o(e.command,void 0,void 0,Wj(e.source))}finally{r.current=!1}hasAgentSlashCommands({sessionId:e})&&s.current()})())},gt(()=>{s.current()},[n,e,o]),gt(()=>subscribeAgentSlashCommands(()=>{s.current()}),[])}function useAuth(){const[e,n]=mt(()=>getConfiguredProviderSync()),[o,r]=mt(()=>getConfiguredModel()),[s,a]=mt(null),[i,l]=mt(!1),[c,d]=mt(!1);return{currentProvider:e,setCurrentProvider:n,currentModel:o,setCurrentModel:r,authComponentInfo:s,setAuthComponentInfo:a,showProviderNotification:i,setShowProviderNotification:l,premiumCreditsExhausted:c,setPremiumCreditsExhausted:d,providerNotificationTimer:pt(null),modelNotificationTimer:pt(null)}}Jt(),__name(useAgentSlashCommandQueue,"useAgentSlashCommandQueue"),Jt(),hL(),__name(useAuth,"useAuth"),Jt(),hL();var QH=__name(()=>{const[e,n]=mt({isExecuting:!1,currentCommand:null});return{executeBash:ht(async(e,o,r)=>{n({isExecuting:!0,currentCommand:e});try{const n=await runUserBashCommand({command:e});o(o=>completePendingBashEntry({feed:o,command:e,output:n})),r()}finally{n({isExecuting:!1,currentCommand:null})}},[]),executionState:e}},"useBashExecution");Jt(),Jt(),hL(),Jt(),hL();var XH={detectIDE:ZT,isIdeIpcConnected:__name(async e=>{const n=cE(),o=await n.connect(e);return n.disconnect(),o},"isIdeIpcConnected"),log:dlog,platform:__name(()=>process.platform,"platform")};function rehydrate(e){if("run_error"!==e.type)return e;const n=e.error??{};return{type:"run_error",error:"number"==typeof n.status?co.generate(n.status,{error:{message:n.message,code:n.code}},n.message??t("runFailed","Run failed"),void 0):Object.assign(new Error(n.message??t("runFailed","Run failed")),{name:n.name??"Error"})}}Jt(),hL(),__name(rehydrate,"rehydrate");var ZH="";function getLastSandboxReply(){return ZH}function createSandboxRunQuery(e){return async({input:n,onEvent:o,additionalContent:r,maxTurns:s})=>{const a=new Map,i=new Map;let l=null,c=null,d=-1,u=!1;const m=e.onAgentEvent(e=>{"run_error"===e.type&&(u=!0),o?.(rehydrate(e))}),p=e.onNotification(e=>{if("turn/completed"!==e.method)return;const n=e.params;a.set(n.turnId,n),i.get(n.turnId)?.(n)}),g=e.onEnded(n=>{c=n,d=e.streamNumber(),l?.(n)}),h=e.onGap(()=>{e.request({method:"session/state"}).then(e=>{const n=e.result?.busy;if(!1===n)for(const[e,n]of i)n({turnId:e,stopReason:"end_turn",finalText:"",turnCount:0}),i.delete(e)}).catch(()=>{})}),f=__name(n=>{const o=a.get(n);if(o)return Promise.resolve(o);const r=__name(e=>new Error(t("theTurnDidNotFinish","The turn did not finish: {{v0}}.",{v0:e})),"unfinished");return c&&d===e.streamNumber()?Promise.reject(r(c)):new Promise((e,o)=>{i.set(n,e),l=__name(e=>o(r(e)),"ended")})},"awaitTurn"),y=__name(async(n,o)=>{takeInterruptWanted();const r=await e.request({method:"turn/start",params:{input:n,...o?.length?{additionalContent:o}:{},...void 0===s?{}:{maxTurns:s}}}),a=r.error;if(a)throw new Error(a.message??t("theSandboxRefusedTheTurn","The cloud session refused the turn"));return takeInterruptWanted()&&e.request({method:"turn/interrupt"}).catch(()=>{}),f(r.result.turnId)},"start"),v=__name(async n=>{const o=await e.request({method:"session/state"}).catch(()=>null),r=o?.result;return void 0===r||!0===r.busy&&r.turnId===n.turnId||a.has(n.turnId)?f(n.turnId):(await n.reload().catch(()=>{}),{turnId:n.turnId,stopReason:"end_turn",finalText:"",turnCount:0})},"watchAdopted"),S=n===E_?takeAdoptedTurn():null;try{let e=S?await v(S):await y(n,r);for(;e.leftover?.length&&"interrupted"!==e.stopReason;)e=await y(joinLeftover(e.leftover));return e.error&&!u&&o?.(rehydrate({type:"run_error",error:e.error})),await(S?.afterward().catch(()=>{})),ZH=e.finalText,{finalText:e.finalText,stopReason:e.stopReason,turnCount:e.turnCount}}finally{m(),p(),g(),h()}}}function joinLeftover(e){const n=[];for(const o of e)"string"==typeof o?n.push({type:"text",text:o}):n.push(...o);return n.every(e=>"text"===e.type)?n.map(e=>e.text).join("\n\n"):n}async function steerSandbox(e){const n=(e.images??[]).map(e=>({type:"image",source:{type:"base64",media_type:e.mediaType,data:e.data}})),o=n.length>0?[...n,{type:"text",text:e.input}]:e.input;return void 0===(await e.connection.request({method:"turn/steer",params:{input:o}})).error}function resolveProviderOrReport(e){return resolveCommandProviderId(e.provider)||(e.setFeed(n=>[...n,sf(t("unknownProviderRunConnectToSeeAvailableProviders","Unknown provider '{{v0}}'. Run /connect to see available providers.",{v0:e.provider}))]),null)}async function handleLoginCommand({provider:e,setFeed:n,setShowLoginOverlay:o,setAuthComponentInfo:r}){const s=e?.trim();if(s){const e=resolveProviderOrReport({provider:s,setFeed:n});if(!e)return;const o=getProviderConfig(e),a=o?.authComponent;return o?.requiresAuth&&a?r?void r({provider:e,Component:a}):void n(e=>[...e,sf(t("providerLoginIsNotAvailableHere","Provider login is not available here."))]):void n(n=>[...n,Zh(t("doesNotUseProviderLoginRunLoginWithoutAProviderForCommandCodeAccountAuth","{{v0}} does not use provider login. Run /login without a provider for Command Code account auth.",{v0:getProviderDisplayName(e)}))])}const a=await resolveLoginCommand({onDebugError:__name(e=>{process.env.DEBUG&&console.error("Failed to load credentials for display:",e)},"onDebugError")});"already-logged-in"!==a.kind?o(!0):n(e=>[...e,Zh(a.message)])}function handleLoginComplete({success:e,message:n,setShowLoginOverlay:o,setFeed:r,setStatus:s}){if(o(!1),!e)return r(e=>[...e,sf(n)]),void s(t("ready","Ready..."));r(e=>[...e,Zh(n)]),invalidateBillingContext(),s(t("ready","Ready..."))}function handleLoginCancel({setShowLoginOverlay:e,setFeed:n,setStatus:o}){e(!1),n(e=>[...e,Zh(formatAuthCancelled())]),o(t("ready","Ready..."))}async function handleLogoutCommand({provider:e,setFeed:n,setRetryAttempt:o,setIsCmdCodeBusy:r}){const s=e?.trim();if(s){const e=resolveProviderOrReport({provider:s,setFeed:n});if(!e)return;const o=getProviderConfig(e);if(!o?.requiresAuth)return void n(n=>[...n,Zh(t("doesNotUseProviderLogoutRunLogoutWithoutAProviderForCommandCodeAccountAuth","{{v0}} does not use provider logout. Run /logout without a provider for Command Code account auth.",{v0:getProviderDisplayName(e)}))]);try{const o=await providerLogout({provider:e}),r=getProviderDisplayName(e);n(e=>[...e,Zh(o?t("loggedOutOf","Logged out of {{v0}}",{v0:r}):t("noSavedCredentialFound","No saved {{v0}} credential found",{v0:r}))])}catch(o){const r=o instanceof Error?o.message:t("unknownError","Unknown error");n(n=>[...n,sf(t("failedToLogOutOf","Failed to log out of {{v0}}: {{v1}}",{v0:getProviderDisplayName(e),v1:r}))])}return}const a=await runCommandLogoutFlow({env:process.env});a.success&&invalidateBillingContext(),a.turnInterrupted&&(o(null),r(!1)),n(e=>[...e,"error"===a.notice.kind?sf(a.notice.message):Zh(a.notice.message)])}function parseChangelogVersions(e){return e.split(/^(?=## )/m).map(e=>e.trim()).filter(e=>e.startsWith("## "))}function findChangelogPath(e){let n=r(g(e));for(let e=0;e<6;e++){const e=o(n,"CHANGELOG.md");if(L(e))return e;const s=r(n);if(s===n)return null;n=s}return null}function handleChangelog({setFeed:e,rawArguments:n="",moduleUrl:o}){const r=findChangelogPath(o??import.meta.url);if(!r)return void e(e=>[...e,Zh(t("noChangelogAvailableInThisBuild","No changelog available in this build."))]);const s=parseChangelogVersions(O(r,"utf8"));if(0===s.length)return void e(e=>[...e,Zh(t("theChangelogIsEmpty","The changelog is empty."))]);const a="all"===n.trim().toLowerCase()?s.length:10,i=s.slice(0,a).join("\n\n"),l=s.length-a,c=l>0?t("andEarlierReleasesChangelogAll","\n\n_…and {{v0}} earlier releases · /changelog all_",{v0:l}):"";e(e=>[...e,rf(t("whatSNew","**What's new**\n\n{{v0}}{{v1}}",{v0:i,v1:c}))])}async function releaseHarness(e){if(e){try{await(hO(e)?.flush())}catch{}fO(e)}}async function handleSelectSession({selectedSessionId:e,previousSessionId:n,sessionLoadIdRef:o,setFeed:r,setLiveEntries:s,setSessionId:a,setShowSessionSelector:i,setSessionLoaded:l,setStaticKey:c,setShareInfo:d,setCurrentModel:u,inTuiResume:m=!1}){const p=crypto.randomUUID();o.current=p;const g=__name(()=>o.current!==p,"isStale");n&&n!==e&&await releaseHarness(n),r([]),s([]),clearSessionTodos(),setNextSessionStartSource("resume"),a(e),i(!1),l(!0);const h=await resolveSessionSwitch({sessionId:e,inTuiResume:m,isModelSelectable:__name(async e=>(await loadCustomProviderModels(),Boolean(GL(e))||isByok({model:e})),"isModelSelectable"),isStale:g,onDebug:dlog});if("superseded"===h.status)return;if("error"===h.status){if(g())return;return console.error("Failed to load session:",h.message),r([sf(h.message)]),i(!1),l(!1),void a(crypto.randomUUID())}if(h.adoptedModel&&u?.(h.adoptedModel),h.shareInfo&&d({url:h.shareInfo.url,secret:h.shareInfo.secret}),g())return;r(h.feed);const f=seedTodosFromFeedEntries(h.feed);hO(e)?.applyTodoUserEdit({todos:f}),h.bannerModelChanged||isWrappedChild()?hardResetForResize():sN(),c(e=>e+1)}async function handleCloneCommand(e){const n=hO(e.sessionId);if(n)try{const o=await n.cloneSession();if(!o)return void e.setFeed(e=>[...e,Zh(t("nothingToCloneYet","Nothing to clone yet."))]);e.setFeed(e=>[...e,Zh(t("clonedToSwitching","Cloned to {{v0}} — switching…",{v0:o.newId}))]),await handleSelectSession({selectedSessionId:o.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0})}catch{e.setFeed(e=>[...e,sf(t("couldnTCloneTheSessionStorageErrorStayingOnTheCurrentSession","Couldn't clone the session (storage error). Staying on the current session."))])}else e.setFeed(e=>[...e,Zh(t("nothingToCloneYet","Nothing to clone yet."))])}async function handleCompactCommand({sessionId:e,setFeed:n,setStatus:o,setIsCmdCodeBusy:r,setContextUsage:s,setStaticKey:a}){try{r(!0),o(t("compactingConversation","Compacting conversation..."));const i=await gO({sessionId:e,baseUrl:getApiBaseUrl()}),l=await i.compact();sN(),a(e=>e+1);const c=buildCompactCommandNotice(l);n(e=>[...e,Zh(c.message)]),r(!1),o(t("ready","Ready...")),s(buildPostCompactContextUsage())}catch(e){n(n=>[...n,sf(buildCompactErrorNotice(e).message)]),r(!1),o(t("ready","Ready..."))}}__name(getLastSandboxReply,"getLastSandboxReply"),__name(createSandboxRunQuery,"createSandboxRunQuery"),__name(joinLeftover,"joinLeftover"),__name(steerSandbox,"steerSandbox"),Jt(),hL(),__name(resolveProviderOrReport,"resolveProviderOrReport"),__name(handleLoginCommand,"handleLoginCommand"),__name(handleLoginComplete,"handleLoginComplete"),__name(handleLoginCancel,"handleLoginCancel"),__name(handleLogoutCommand,"handleLogoutCommand"),Jt(),hL(),__name(parseChangelogVersions,"parseChangelogVersions"),__name(findChangelogPath,"findChangelogPath"),__name(handleChangelog,"handleChangelog"),Jt(),hL(),Jt(),hL(),__name(releaseHarness,"releaseHarness"),__name(handleSelectSession,"handleSelectSession"),__name(handleCloneCommand,"handleCloneCommand"),Jt(),hL(),__name(handleCompactCommand,"handleCompactCommand"),Jt(),hL();var eG=__name(e=>{const n=e.metadata?.blockOf;return"string"==typeof n?n:e.id},"groupIdOf"),tG=__name(e=>e.replace(/^(?:[^\S\n]*\n)+/,"").replace(/\s+$/,""),"stripOuterBlankLines");function findLastAssistantText(e){for(let n=e.length-1;n>=0;n--){const o=e[n];if(!o||"assistant"!==o.role)continue;if(!o.input.trim())continue;const r=eG(o),s=[];for(let o=n;o>=0;o--){const n=e[o];if(!n||"assistant"!==n.role||eG(n)!==r)break;const a=tG(n.input);a&&s.unshift(a)}return s.length>1?s.join("\n\n"):o.input}return null}async function handleCopy({feed:e,setFeed:n}){const o=findLastAssistantText(e);if(!o)return void n(e=>[...e,Zh(t("nothingToCopyYetNoReplyInThisSession","Nothing to copy yet — no reply in this session."))]);const r=await writeClipboardText(o),s=o.length.toLocaleString("en-US");n(e=>[...e,Zh(r?t("copiedTheLastReplyToTheClipboardChars","Copied the last reply to the clipboard ({{v0}} chars).",{v0:s}):t("couldNotReachTheClipboardIsThisAHeadlessTerminal","Could not reach the clipboard — is this a headless terminal?"))])}function getAuthKey3(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function trackFirstMessage(){(async()=>{await getAuthKey3()&&await detectAndTrackFirstMessage({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),log:dlog})})().catch(()=>{})}function isWhitespaceOnly3(e){return 0===e.trim().length}function routeTodoWriteEntry(e){const{entry:n,setFeed:o,setLiveEntries:r}=e;if("running"===n.metadata?.status)return!0;const s="output"in n?n.output:void 0,a="string"==typeof s?Ef(s):null;if(!a)return!1;const i=projectUserEdits(a);return i.every(e=>"completed"===e.status)?(clearSessionTodos(),i.length>0&&routeHarnessFeedEntry({entry:{...n,output:JSON.stringify(i)},setFeed:o,setLiveEntries:r}),!0):(setSessionTodos(a),!0)}function createBlockCommittingRouter(e){const{setFeed:n,setLiveEntries:o}=e,r=new Map;function buildBlockEntries(e,n,o){const r=[];for(const s of o){if(isWhitespaceOnly3(s))continue;const o=n.committedEntryCount;n.committedEntryCount+=1;const{status:a,...i}=e.metadata??{};r.push({...e,id:`${e.id}-block-${o}`,input:s,metadata:{...i,continuation:o>0,blockOf:e.id}})}return r}function routeRunningAssistant(e){let s=r.get(e.id);s||(s={stream:createBlockStream(),committedEntryCount:0},r.set(e.id,s));const a=s.stream.advance(e.input),i=buildBlockEntries(e,s,a.newlyCompleted);i.length>0&&n(e=>[...e,...i]);const l={...e,input:a.openTail,metadata:{...e.metadata,continuation:s.committedEntryCount>0}};o(n=>{const o=n.findIndex(n=>n.id===e.id);if(-1===o)return[...n,l];const r=[...n];return r[o]=l,r})}function routeFinalAssistant(e){o(n=>n.filter(n=>n.id!==e.id));const s=r.get(e.id);if(!s)return void(isWhitespaceOnly3(e.input)||n(n=>[...n,e]));r.delete(e.id);const a=s.stream.finalize(e.input);if(0===s.committedEntryCount&&a.remaining.length<=1)return void(isWhitespaceOnly3(e.input)||n(n=>[...n,e]));const i=buildBlockEntries(e,s,a.remaining);i.length>0&&n(e=>[...e,...i])}return __name(buildBlockEntries,"buildBlockEntries"),__name(routeRunningAssistant,"routeRunningAssistant"),__name(routeFinalAssistant,"routeFinalAssistant"),__name(function routeEntry(e){if(isDiscardedEntry(e))return r.delete(e.id),void routeHarnessFeedEntry({entry:e,setFeed:n,setLiveEntries:o});if("assistant"===e.role)"running"!==e.metadata?.status?routeFinalAssistant(e):routeRunningAssistant(e);else{if("tool"===e.role&&"todo_write"===e.name&&routeTodoWriteEntry({entry:e,setFeed:n,setLiveEntries:o}))return;routeHarnessFeedEntry({entry:e,setFeed:n,setLiveEntries:o})}},"routeEntry")}function takeSentSteers(e){const n=[],o=[];for(const r of e.queued){const s=e.eligible?.(r)??!0;r.sentToSandbox&&s&&n.length<e.count?n.push(r):o.push(r)}return{taken:n,rest:o}}function replaceQueue(e){e.queue.queuedRef.current=e.next,e.queue.setQueued(()=>e.next)}function echoes(e){return e.flatMap(e=>{if(e.isMeta)return[];const n=Xh(e.displayMessage??e.input);return e.ideHint&&(n.metadata={ideHint:e.ideHint}),[n]})}function moveSteers(e){const{taken:n,rest:o}=takeSentSteers({queued:e.queue.queuedRef.current,count:e.count??Number.POSITIVE_INFINITY,...e.eligible?{eligible:e.eligible}:{}});if(0===n.length)return;if(replaceQueue({queue:e.queue,next:o}),"feed"===e.to)return void e.queue.setFeed(e=>[...e,...echoes(n)]);const r=formatQueuedMessagesForRequeue(n);e.queue.setInput(e=>mergeRequeuedInput({queuedText:r,currentInput:e}))}__name(findLastAssistantText,"findLastAssistantText"),__name(handleCopy,"handleCopy"),Jt(),hL(),Jt(),hL(),Jt(),hL(),__name(getAuthKey3,"getAuthKey"),__name(trackFirstMessage,"trackFirstMessage"),Jt(),hL(),__name(isWhitespaceOnly3,"isWhitespaceOnly"),__name(routeTodoWriteEntry,"routeTodoWriteEntry"),__name(createBlockCommittingRouter,"createBlockCommittingRouter"),Jt(),Jt(),hL(),__name(takeSentSteers,"takeSentSteers"),__name(replaceQueue,"replaceQueue"),__name(echoes,"echoes"),__name(moveSteers,"moveSteers"),Jt();var nG=new WeakMap,oG=__name(e=>nG.get(e),"steerQueueFor");function registerSteerQueue(e){return!nG.has(e.connection)&&(nG.set(e.connection,e),!0)}function onTurnCompleted(e){const{queue:n}=e;n.turnsEnded+=1;const o=__name(e=>!n.pending.has(e),"settled");if(!n.connection.supports("steers_delivered"))return n.unclaimedLeftovers=Number.POSITIVE_INFINITY,void moveSteers({queue:n,to:"feed",eligible:o});const r=n.queuedRef.current.length;moveSteers({queue:n,to:"feed",count:e.leftovers,eligible:o});const s=r-n.queuedRef.current.length;n.unclaimedLeftovers=e.leftovers-s,moveSteers({queue:n,to:"input",eligible:o})}function wireSteerQueue(e){const n={...e,pending:new Set,turnsEnded:0,unclaimedLeftovers:0};if(!registerSteerQueue(n))return;const o=__name(e=>!n.pending.has(e),"settled"),r=__name(()=>{n.turnsEnded+=1,n.unclaimedLeftovers=0},"disrupted");e.connection.onEnded(()=>{r(),moveSteers({queue:n,to:"input",eligible:o})}),e.connection.onGap(()=>{r(),moveSteers({queue:n,to:"feed",eligible:o})}),e.connection.onNotification(e=>{const r=e.params??{};if("turn/steers_delivered"===e.method){const e=r.count??0,s=n.queuedRef.current.length;moveSteers({queue:n,to:"feed",count:e,eligible:o});const a=s-n.queuedRef.current.length;return void moveSteers({queue:n,to:"feed",count:e-a})}"turn/completed"===e.method&&onTurnCompleted({queue:n,leftovers:r.leftover?.length??0})})}function settleLate(e){const{queue:n}=e,o=n.unclaimedLeftovers>0;o&&(n.unclaimedLeftovers-=1),moveSteers({queue:n,to:o?"feed":"input",eligible:__name(n=>n===e.steer,"eligible")})}function dropSteer(e){const n=e.queue.queuedRef.current.filter(n=>n!==e.steer);e.queue.queuedRef.current=n,e.queue.setQueued(()=>n)}async function sendSteer(e){const n=oG(e.connection);if(!n)return e.send().catch(()=>!1);const o={...e.message,sentToSandbox:!0},r=n.turnsEnded;n.pending.add(o),n.queuedRef.current=[...n.queuedRef.current,o],n.setQueued(()=>n.queuedRef.current);const s=await e.send().catch(()=>!1);return n.pending.delete(o),!n.queuedRef.current.includes(o)||(s?(n.turnsEnded!==r&&settleLate({queue:n,steer:o}),!0):(dropSteer({queue:n,steer:o}),!1))}async function getBillingLink({billingLink:e,setBillingLink:n}){return resolveCommandBillingLink({existingBillingLink:e,client:createApiClient({baseUrl:getApiBaseUrl()}),onResolvedBillingLink:n})}async function runModInputInterception(e){const n=getActiveModHost();if(!n||"user"!==e.role||e.isAutomated||e.isMeta||e.isGoalContinuation||0===e.input.length||(e.images?.length??0)>0)return{action:"continue"};try{return await n.transformInput({text:e.input})}catch{return{action:"continue"}}}async function handleSubmit(e){const{role:n,input:o,images:r,imageTokenPaths:s,ideContext:a,ideHint:i,displayMessage:l,isAutomated:c,isMeta:d,source:u,isRelayed:m,hiddenMessages:p,isGoalContinuation:g,isGoalBootstrap:h,suppressUserEcho:f,feed:y,setFeed:v,setLiveEntries:S,isCmdCodeBusy:w,setIsCmdCodeBusy:k,setQueuedMessages:C,setStatus:b,setInteractionTokens:T,updateStatus:E,setUpdateStatus:P,billingLink:M,setBillingLink:I,currentModel:A,currentProvider:x,premiumCreditsExhausted:R,setPremiumCreditsExhausted:L,setCurrentModel:O,sessionId:D,isSubmittingRef:N,setInput:F,setStaticKey:_,executeBash:$}=e,U=resolveSubmitStartPlan({role:n,input:o,isCmdCodeBusy:w,isSubmitting:N.current,displayMessage:l,isAutomated:c,isMeta:d,source:u,isRelayed:m,hiddenMessages:p,images:r,ideContext:a,ideHint:i});if("skip"===U.kind&&!o.length)return U.outcome;if(E&&P(null),T(0),"skip"===U.kind)return U.outcome;if("bash"===U.kind){const e=sandboxBashMessage();if(e)return v([...y,Zh(e)]),F(""),"completed";N.current=!0;const n=of(o);return v([...y,n]),F(""),await $(o,e=>{v(e)},()=>{sN(),_(e=>e+1)}),N.current=!1,"completed"}if("queue"===U.kind){const e=getSandboxConnection();return e&&!d&&(c||F(""),await sendSteer({connection:e,message:U.queuedMessage,send:__name(()=>steerSandbox({connection:e,input:o,...r?{images:r}:{}}),"send")}))||(C(e=>[...e,U.queuedMessage]),c||F("")),U.outcome}N.current=!0;const B=await runModInputInterception(e);if("handled"===B.action){N.current=!1;const e=B.message;return e&&v(n=>[...n,Zh(e)]),"skipped"}const j="transform"===B.action?B.text:o;await loadCustomProviderModels();const W=isSandboxMode()?null:await checkOAuthSetupRequired({currentProvider:x??null,isByokModel:isByok({model:A??""}),providerAuthHeaders:providerAuthHeaders});if(W)return N.current=!1,b(W),v(e=>[...e,sf(W)]),"skipped";k(!0),b(yf()),c||F("");let H=!1,G=null,V=null,K=null,z=0;const q=createSubmitGoalSupervisor(e);let Y=null;const J=resolvePremiumCreditsPreflight({premiumCreditsExhausted:R,currentModel:A});if(J.blocked)return H=!0,b(J.status),v(e=>[...e,Zh(J.message)]),k(!1),N.current=!1,J.outcome;try{Y=await q.getGoalTurnBudget();const e=getSandboxConnection();if(isSandboxMode()&&!e)return v(e=>[...e,Zh(t("theSandboxIsNotConnectedYetWaitForTheConnectedToSandboxLineOrItsErrorThenSendAgain",'The cloud session is not connected yet. Wait for the "Connected to cloud" line (or its error), then send again.'))]),N.current=!1,"completed";const n=e?null:await gO({sessionId:D,baseUrl:getApiBaseUrl()});if(h&&!isCommandGoalLoopArmed(D))return"skipped";const o=clipboardImagesToUserContent(r),c=a?`${a}\n\n${j}`:j,d=o.length>0?[...o,{type:"text",text:c}]:a?[{type:"text",text:c}]:void 0,u={...r&&r.length>0?{images:r,...s?{imageTokenPaths:s}:{}}:{},...i?{ideHint:i}:{}};trackFirstMessage();const m=await runHarnessTurnIntoFeed({harness:n,input:j,turnUserInput:d,runQuery:e?createSandboxRunQuery(e):e=>runHarnessQuery({...e,harness:e.harness}),setFeed:v,setLiveEntries:S,displayMessage:l,suppressUserEcho:f,additionalContent:hiddenMessagesToUserContent(p),inputMeta:U.inputMeta,maxTurns:Y?.remainingTurns,onRoundTrip:__name(e=>{z=e},"onRoundTrip"),echoMetadata:Object.keys(u).length>0?u:void 0,setStatus:b,onInteractionTokens:T,onRunError:__name(e=>{V=e},"onRunError"),routeEntry:createBlockCommittingRouter({setFeed:v,setLiveEntries:S}),scrubGoalCompleteMarker:isCommandGoalLoopArmed(D)});if(V){const e=A?byokProviderId({model:A}):void 0;throw formatRunError(V,e?{byokProvider:e}:void 0)}return K=m.finalText,z=m.turnCount,"completed"}catch(e){const n=resolveSubmitErrorAction({error:e,sessionId:D});if("interrupted"===n.kind)return H=!0,n.outcome;if(trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"submit_error"}),context:{component:Rs.SUBMIT,heading:"Prompt submission failed",code:n.kind}}),H=!0,G=n.goalErrorKind,"insufficient-credits"===n.kind){b(n.status);const e=await getBillingLink({billingLink:M,setBillingLink:I});return v(n=>[...n,sf(buildInsufficientCreditsSubmitActionMessage({billingUrl:e}))]),n.outcome}if("premium-credits-exhausted"===n.kind)return L?.(!0),O?.(n.fallbackModelId),sN(),_(e=>e+1),b(n.status),v(e=>[...e,Zh(n.message)]),n.outcome;b(n.status);const o="info"===n.renderKind?Zh(n.message):sf(n.message);return v(e=>[...e,o]),n.outcome}finally{k(!1),H||b(t("ready","Ready...")),N.current=!1,await q.afterTurn({assistantText:H?null:K,errorKind:H?G:null,isGoalContinuation:g,turnsUsed:z,goalStartedAt:Y?.startedAt})}return"skipped"}function emitGoalNotice(e,n){e(e=>[...e,Zh(n.message,buildGoalNoticeMetadata(n))])}function createSubmitGoalSupervisor(e){const{sessionId:n,setFeed:o}=e;return createGoalTurnSupervisor({sessionId:n,isArmed:__name(()=>isCommandGoalLoopArmed(n),"isArmed"),disarm:__name(()=>disarmCommandGoalLoop(n),"disarm"),loadSessionMeta:__name(()=>loadCommandSessionMeta({sessionId:n}),"loadSessionMeta"),saveGoal:__name(e=>saveCommandSessionMeta({sessionId:n,meta:{goal:e}}),"saveGoal"),verifyCompletion:__name(async e=>(hO(n)??await gO({sessionId:n,baseUrl:getApiBaseUrl()})).verifyGoal(e),"verifyCompletion"),getEvidence:__name(()=>{const e=hO(n);return e?harnessRecentToolEvidence(e):""},"getEvidence"),emitCompletion:__name(e=>{o(n=>[...n,Zh("",e)])},"emitCompletion"),emitNotice:__name(e=>emitGoalNotice(o,e),"emitNotice"),runContinuation:__name(({prompt:n})=>handleSubmit({...e,...buildGoalContinuationTurnFields({prompt:n})}),"runContinuation")})}async function handleDesignCommand({ctx:e,rawArguments:n,positionalArgs:o,command:r}){try{const s=await resolveDesignCommand({runtime:createNodeRuntime(),rawArguments:n,positionalArgs:o});if("help"===s.status)return void e.setShowDesignGuide(!0);if("missing-skill"===s.status)return void e.setFeed(e=>[...e,sf(Nb)]);const a=await handleSubmit({input:s.command.visible,hiddenMessages:[{role:"user",content:s.command.hidden}],role:"user",displayMessage:r,isAutomated:!0,feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash}),{modeName:i}=s.command;if("completed"===a&&i&&isDesignMode(i)){const n=getDesignModeSuggestions(i);n&&e.setPendingDesignSuggestion?.(n)}}catch(n){e.setFeed(e=>[...e,sf(buildDesignSkillLoadErrorMessage(n))])}}__name(registerSteerQueue,"registerSteerQueue"),__name(onTurnCompleted,"onTurnCompleted"),__name(wireSteerQueue,"wireSteerQueue"),__name(settleLate,"settleLate"),__name(dropSteer,"dropSteer"),__name(sendSteer,"sendSteer"),__name(getBillingLink,"getBillingLink"),__name(runModInputInterception,"runModInputInterception"),__name(handleSubmit,"handleSubmit"),__name(emitGoalNotice,"emitGoalNotice"),__name(createSubmitGoalSupervisor,"createSubmitGoalSupervisor"),__name(handleDesignCommand,"handleDesignCommand"),Jt(),hL();var rG=new Set(["html","jsonl","md"]);function matchFormatKeyword(e){const n=e.toLowerCase();return rG.has(n)?n:void 0}function resolveConfiguredExportFormat(e){return e?matchFormatKeyword(e)??"html":"html"}function defaultExportFilename(e,n){return`command-code-session-${e.slice(0,8)}.${n}`}function resolveExportRoute(e){const n=e.rawPath.trim();if(!n){const n=e.defaultFormat??"html";return{kind:"target",format:n,path:o(e.cwd,defaultExportFilename(e.sessionId,n))}}const r=matchFormatKeyword(n);if(r)return{kind:"target",format:r,path:o(e.cwd,defaultExportFilename(e.sessionId,r))};const s=l(n)?n:a(e.cwd,n);if(L(s)&&$(s).isDirectory())return{kind:"target",format:"html",path:o(s,defaultExportFilename(e.sessionId,"html"))};const i=u(s).toLowerCase();return i?".html"===i?{kind:"target",format:"html",path:s}:".jsonl"===i?{kind:"target",format:"jsonl",path:s}:".md"===i?{kind:"target",format:"md",path:s}:{kind:"unknown-extension",extension:i}:{kind:"target",format:"html",path:o(s,defaultExportFilename(e.sessionId,"html"))}}function exportedMessage(e){const n=toRelativePath(e.path),o=_t.isSupported?createOSC8Link(fileUrl(e.path),n,!1):n;return t("exportedSessionTo","Exported {{v0}} session to {{v1}}",{v0:e.formatLabel,v1:o})}async function buildSessionHtmlExport(e){const{messages:n}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===n.length)return null;const o=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionHtml({messages:fromV2(n.map(e=>e.message)),title:o,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function buildSessionMarkdownExport(e){const{messages:n}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===n.length)return null;const o=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionMarkdown({messages:fromV2(n.map(e=>e.message)),title:o,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function exportJsonl(e){const n=o(getProjectSessionDir({env:process.env,cwd:e.cwd}),`${e.sessionId}.jsonl`);if(L(n)){try{H(n,e.target)}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}e.setFeed(n=>[...n,Zh(exportedMessage({path:e.target,formatLabel:"JSONL"}))])}else e.setFeed(e=>[...e,Zh(t("nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to export yet — the transcript is created on the first message."))])}async function exportHtml(e){let n;try{n=await buildSessionHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}if(n){try{N(e.target,n,"utf8")}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}e.setFeed(n=>[...n,Zh(exportedMessage({path:e.target,formatLabel:"HTML"}))])}else e.setFeed(e=>[...e,Zh(t("nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to export yet — the transcript is created on the first message."))])}async function exportMarkdown(e){let n;try{n=await buildSessionMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}if(n){try{N(e.target,n,"utf8")}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}e.setFeed(n=>[...n,Zh(exportedMessage({path:e.target,formatLabel:"Markdown"}))])}else e.setFeed(e=>[...e,Zh(t("nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to export yet — the transcript is created on the first message."))])}async function handleExport(e){const n=getCurrentWorkingDirectory(),o=await loadUserConfig(),r=resolveExportRoute({rawPath:e.rawPath,cwd:n,sessionId:e.sessionId,defaultFormat:resolveConfiguredExportFormat(o.defaultExportFormat)});"unknown-extension"!==r.kind?"jsonl"!==r.format?"md"!==r.format?await exportHtml({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportMarkdown({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportJsonl({sessionId:e.sessionId,target:r.path,cwd:n,setFeed:e.setFeed}):e.setFeed(e=>[...e,Zh(t("unknownExportExtension",'Unknown export extension "{{v0}}". {{v1}}',{v0:r.extension,v1:t("supportedExportFormatsHtmlJsonlMd","Supported export formats: .html, .jsonl, .md")}))])}async function handleForkCommand(e,n){const o=hO(e.sessionId),r=await resolveForkCommand({sourceId:e.sessionId,rawName:n,hasActiveSession:Boolean(o),messageCount:o?harnessSessionMessages(o).length:0});if("notice"!==r.kind)try{await handleSelectSession({selectedSessionId:r.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0}),e.setFeed(e=>[...e,ef({name:r.title})])}catch{e.setFeed(e=>[...e,sf(translateUiCopy(by))])}else e.setFeed(e=>[...e,"error"===r.notice.kind?sf(r.notice.message):Zh(r.notice.message)])}function setMode(e,n){e.permissionModeRef.current=n,e.setPermissionMode(n),hO(e.sessionId)?.setPermissionMode({mode:n})}async function handlePlanCommand({rawArguments:e,ctx:n}){const o=resolvePlanCommand({rawArguments:e,currentMode:n.permissionModeRef.current});if(n.permissionModeRef.current!==o.nextMode&&setMode(n,o.nextMode),"notice"===o.kind)return n.setFeed(e=>[...e,Zh(o.message)]),void(o.clearInput&&n.setInput(""));await handleSubmit({input:o.task,role:"user",displayMessage:o.displayMessage,isAutomated:!0,feed:n.feed,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,isCmdCodeBusy:n.isCmdCodeBusy,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setQueuedMessages:n.setQueuedMessages,setStatus:n.setStatus,setInteractionTokens:n.setInteractionTokens,updateStatus:n.updateStatus,setUpdateStatus:n.setUpdateStatus,billingLink:n.billingLink,setBillingLink:n.setBillingLink,currentModel:n.currentModel,currentProvider:n.currentProvider,premiumCreditsExhausted:n.premiumCreditsExhausted,setPremiumCreditsExhausted:n.setPremiumCreditsExhausted,setCurrentModel:n.setCurrentModel,sessionId:n.sessionId,isSubmittingRef:n.isSubmittingRef,setInput:n.setInput,setStaticKey:n.setStaticKey,executeBash:n.executeBash})}__name(matchFormatKeyword,"matchFormatKeyword"),__name(resolveConfiguredExportFormat,"resolveConfiguredExportFormat"),__name(defaultExportFilename,"defaultExportFilename"),__name(resolveExportRoute,"resolveExportRoute"),__name(exportedMessage,"exportedMessage"),__name(buildSessionHtmlExport,"buildSessionHtmlExport"),__name(buildSessionMarkdownExport,"buildSessionMarkdownExport"),__name(exportJsonl,"exportJsonl"),__name(exportHtml,"exportHtml"),__name(exportMarkdown,"exportMarkdown"),__name(handleExport,"handleExport"),Jt(),hL(),__name(handleForkCommand,"handleForkCommand"),Jt(),hL(),__name(setMode,"setMode"),__name(handlePlanCommand,"handlePlanCommand"),Jt(),hL();var sG=[{title:"Composing",rows:[{keys:"Enter",action:"Send the prompt"},{keys:"Shift+Enter / Alt+Enter",action:"Insert a newline"},{keys:"Ctrl+G",action:"Edit the prompt in $EDITOR"},{keys:"Ctrl+S",action:"Stash / restore the current prompt"},{keys:"↑ / ↓",action:"Browse prompt history"},{keys:"@",action:"Mention a file (fuzzy search)"},{keys:"/",action:"Open the command menu"},{keys:"!",action:"Bash mode — run a shell command"}]},{title:"While it works",rows:[{keys:"Esc",action:"Interrupt the current turn"},{keys:"Type + Enter",action:"Queue a steering message"},{keys:"Ctrl+X",action:"Open the todo manager (/todos) for the current plan"}]},{title:"Transcript",rows:[{keys:"Ctrl+O",action:"Toggle expanded tool output"},{keys:"Ctrl+E / Ctrl+Y",action:"Toggle the full transcript"}]},{title:"Session & modes",rows:[{keys:"Shift+Tab",action:"Cycle mode: standard → accept edits → plan → yolo"},{keys:"Alt+P",action:"Quick model switch"},{keys:"Esc Esc",action:"Rewind to a checkpoint"},{keys:"Ctrl+C Ctrl+C",action:"Exit"}]}];function buildHotkeysMarkdown(){const e=[t("keyboardShortcuts","**Keyboard shortcuts**")];for(const n of sG){e.push("",`**${translateUiCopy(n.title)}**`);for(const o of n.rows)e.push(`- \`${translateUiCopy(o.keys)}\` — ${translateUiCopy(o.action)}`)}return e.join("\n")}function handleHotkeys({setFeed:e}){e(e=>[...e,rf(buildHotkeysMarkdown())])}async function handleImportCommand({setFeed:e},n=""){const o=resolveAgentImportSourceArg(n);if(!o.ok)return void e(e=>[...e,sf(o.message)]);const r=createNodeRuntime();try{const n=await detectAgentImport({runtime:r,sources:o.sources});if(0===n.items.length&&0===n.sourceErrors.length)return void e(e=>[...e,Zh(t("noSetupWasFoundToImportLookedForClaudeCodeCodexCursorPiOpencodeAndGeminiCliConfigInYourHomeDirectoryAndThisProject","No setup was found to import (looked for Claude Code, Codex, Cursor, Pi, OpenCode, and Gemini CLI config in your home directory and this project)."))]);const s=await importAgentSetup({runtime:r,inventory:n});e(e=>[...e,Zh(formatAgentImportSummary(s))])}catch(n){e(e=>[...e,sf(t("importFailed","Import failed: {{v0}}",{v0:n instanceof Error?n.message:"unknown error"}))])}}async function handleLanguageSelect({locale:e,setShowLanguageSelector:n,setStatus:o}){n(!1);try{await changeUiLanguage(e),o(t("languageSetTo","Language set to: {{label}}",{label:getCliLanguageLabel(e)}))}catch(e){o(t("couldNotSaveLanguage","Could not save language: {{reason}}. Report issues at https://cond.dev/issue",{reason:e instanceof Error?e.message:String(e)}))}}function handleLanguageCancel({setShowLanguageSelector:e}){e(!1)}async function handleLanguageCommand(e,n){const o=n.trim().toLowerCase();o?isCliLanguage(o)?await handleLanguageSelect({locale:o,setShowLanguageSelector:e.setShowLanguageSelector,setStatus:e.setStatus}):e.setFeed(e=>[...e,Zh(t("unknownLanguageOptions",'Unknown language "{{value}}". Options: {{options}}.',{value:o,options:Hr.join(", ")}))]):e.setShowLanguageSelector(!0)}function setMode2(e,n){e.permissionModeRef.current=n,e.setPermissionMode(n),hO(e.sessionId)?.setPermissionMode({mode:n})}async function handleModeCommand({rawArguments:e,ctx:n}){const o=resolveModeCommand({rawArguments:e,currentMode:n.permissionModeRef.current});o.nextMode&&setMode2(n,o.nextMode),n.setFeed(e=>[...e,Zh(o.message)]),n.setInput("")}async function applyRenameResult(e){const n=await resolveRenameCommand({name:e.name,sessionId:e.sessionId});if(e.setFeed(e=>[...e,"error"===n.notice.kind?sf(n.notice.message):Zh(n.notice.message)]),"renamed"===n.kind){e.setRenamedTerminalTitle(n.name);try{(e.harness??await gO({sessionId:e.sessionId,baseUrl:getApiBaseUrl()})).setSessionName(n.name)}catch{}}}async function autoRenameSession({sessionId:e,setFeed:n,setRenamedTerminalTitle:o,setStatus:r,setIsCmdCodeBusy:s}){s(!0),r(t("namingSession","Naming session…"));try{const r=await gO({sessionId:e,baseUrl:getApiBaseUrl()}),s=await r.regenerateTitle();if(!s)return void n(e=>[...e,Zh(t("nothingToNameYetSendAMessageFirstOrUseRenameName","Nothing to name yet — send a message first, or use /rename <name>."))]);await applyRenameResult({name:s,sessionId:e,setFeed:n,setRenamedTerminalTitle:o,harness:r})}catch{n(e=>[...e,Zh(t("couldNotGenerateATitleTryRenameNameInstead","Could not generate a title. Try /rename <name> instead."))])}finally{s(!1),r(t("ready","Ready..."))}}async function handleRenameCommand(e){e.name.trim()?await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle}):await autoRenameSession(e)}async function handleNameCommand(e){if(e.name.trim())return void await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle});const n=hO(e.sessionId)?.getSessionStats().name,o=n?null:await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),r=n??o?.title;e.setFeed(e=>[...e,Zh(r?t("currentName","Current name: {{v0}}",{v0:r}):t("thisSessionHasNoNameYetUseNameNameToSetOne","This session has no name yet. Use /name <name> to set one."))])}function handleRewindCommand({sessionId:e,setFeed:n,setShowRewindSelector:o}){const r=hO(e),s=resolveRewindCommand({hasActiveConversation:Boolean(r),checkpointCount:r?.listCheckpoints().length??0});"notice"!==s.kind?o(!0):n(e=>[...e,"error"===s.notice.kind?sf(s.notice.message):Zh(s.notice.message)])}async function handleRewindSelect({messageId:e,mode:n,sessionId:o,setFeed:r,setStatus:s,setShowRewindSelector:a,setStaticKey:i,setInput:l}){a(!1);const c=hO(o);if(!c)return;s(t("restoringCheckpoint","Restoring checkpoint..."));const d=await performRewindRestore({harness:c,messageId:e,mode:n});if("restored"===d.kind)return r(d.feed),c.applyTodoUserEdit({todos:seedTodosFromFeedEntries(d.feed)}),sN(),i(e=>e+1),d.promptToRestore&&l(d.promptToRestore),r(e=>[...e,Zh(d.notice.message)]),void s(d.statusMessage);r(e=>[...e,"error"===d.notice.kind?sf(d.notice.message):Zh(d.notice.message)]),s(d.statusMessage)}function handleRewindCancel({setShowRewindSelector:e}){e(!1)}function compactTranscriptPath(e){return`${toRelativePath(getProjectsBasePath({env:process.env}))}/…/${d(e)}`}function formatSessionFileLine(e){const{absolutePath:n,exists:o,linksSupported:r}=e;return o?r?createOSC8Link(fileUrl(n),compactTranscriptPath(n),!1):n:t("notCreatedYet","{{v0}} (not created yet)",{v0:n})}function handleSessionFile({sessionId:e,setFeed:n}){if(!e)return void n(e=>[...e,Zh(t("noActiveSession","No active session."))]);const r=o(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e}.jsonl`),s=formatSessionFileLine({absolutePath:r,exists:L(r),linksSupported:_t.isSupported});n(n=>[...n,Zh(t("sessionIdCurrentSessionFile","Session ID: {{v0}}\nCurrent session file: {{v1}}",{v0:e,v1:r}),{isSessionFile:!0,sessionFileId:e,sessionFileLine:s})])}__name(buildHotkeysMarkdown,"buildHotkeysMarkdown"),__name(handleHotkeys,"handleHotkeys"),Jt(),hL(),__name(handleImportCommand,"handleImportCommand"),Jt(),hL(),__name(handleLanguageSelect,"handleLanguageSelect"),__name(handleLanguageCancel,"handleLanguageCancel"),__name(handleLanguageCommand,"handleLanguageCommand"),Jt(),hL(),__name(setMode2,"setMode"),__name(handleModeCommand,"handleModeCommand"),Jt(),hL(),__name(applyRenameResult,"applyRenameResult"),__name(autoRenameSession,"autoRenameSession"),__name(handleRenameCommand,"handleRenameCommand"),__name(handleNameCommand,"handleNameCommand"),Jt(),hL(),__name(handleRewindCommand,"handleRewindCommand"),__name(handleRewindSelect,"handleRewindSelect"),__name(handleRewindCancel,"handleRewindCancel"),Jt(),hL(),__name(compactTranscriptPath,"compactTranscriptPath"),__name(formatSessionFileLine,"formatSessionFileLine"),__name(handleSessionFile,"handleSessionFile"),Jt(),hL();var aG=xe(y),iG=/https:\/\/gist\.github\.com\/\S+/;function parseGistUrl(e){const n=iG.exec(e);return n?n[0]:null}function execErrorText(e){if(!(e instanceof Error))return String(e);const n=e;return("string"==typeof n.stderr?n.stderr.trim():"")||e.message}async function defaultCreateGist(e){const{stdout:n}=await aG("gh",["gist","create",e,"--desc","Command Code session"],{encoding:"utf8"});return{stdout:String(n)}}async function resolveShareGistFormat(e){const n=(e??"").trim();return n?matchFormatKeyword(n):resolveConfiguredExportFormat((await loadUserConfig()).defaultShareGistFormat)}async function writeGistPayload(e){const n=o(e.tempDir,`command-code-session-${e.sessionId.slice(0,8)}.${e.format}`);if("jsonl"===e.format){const r=o(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e.sessionId}.jsonl`);return L(r)?(H(r,n),n):null}if("md"===e.format){const o=await e.buildMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel});return o?(await Q(n,o,"utf8"),n):null}const r=await e.buildHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel});return r?(await Q(n,r,"utf8"),n):null}async function handleShareGistCommand(e){const{isCommandAvailable:n=isCommandAvailable,buildHtmlExport:r=buildSessionHtmlExport,buildMarkdownExport:s=buildSessionMarkdownExport,createGist:a=defaultCreateGist,writeClipboardText:i=writeClipboardText}=e.deps??{},l=__name(n=>e.setFeed(e=>[...e,Zh(n)]),"info");if(!n("gh"))return void l(t("requiresTheGithubCliGhHttpsCliGithubCom","Requires the GitHub CLI (gh) — https://cli.github.com"));const c=await resolveShareGistFormat(e.rawFormatArg);if(!c)return void l(t("unknownGistFormat",'Unknown gist format "{{v0}}". {{v1}}',{v0:(e.rawFormatArg??"").trim(),v1:t("supportedGistFormatsHtmlJsonlMd","Supported gist formats: html, jsonl, md")}));let d;try{d=await ue(o(z(),"cmd-share-"));const n=await writeGistPayload({format:c,sessionId:e.sessionId,currentModel:e.currentModel,tempDir:d,buildHtmlExport:r,buildMarkdownExport:s});if(!n)return void l(t("nothingToShareYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to share yet — the transcript is created on the first message."));const{stdout:u}=await a(n),m=parseGistUrl(u);if(!m)return void l(t("ghGistCreateDidNotReturnAUrl","gh gist create did not return a URL: {{v0}}",{v0:u.trim()}));await i(m),l(t("sharedSessionGist","Shared session gist: {{v0}}",{v0:_t.isSupported?createOSC8Link(m,m,!1):m}))}catch(e){const n=execErrorText(e);l(/auth/i.test(n)?t("runGhAuthLogin","{{v0}} — run gh auth login",{v0:n}):t("shareFailed","Share failed: {{v0}}",{v0:n}))}finally{d&&await ne(d,{recursive:!0,force:!0}).catch(()=>{})}}function handleShareRebuildingCommand(e){e(e=>[...e,Zh("Share is being rebuilt, use /export")])}async function handleUnshareCommand({sessionId:e,shareInfo:n,setShareInfo:o,setStatus:r,setUnshareNotificationMessage:s}){e&&n&&r(t("removingShareLink","Removing share link..."));const a=createApiClient({baseUrl:getApiBaseUrl()}),i=await deleteCommandSessionShareLink({client:a,sessionId:e,shareInfo:n,harness:e?hO(e):void 0});if("no-session"!==i.status){if("not-shared"===i.status)return s(i.message),void setTimeout(()=>s(""),ob);if("error"===i.status)return r(i.message),void setTimeout(()=>r(""),ob);s(i.message),r(""),o(null),setTimeout(()=>{s("")},ob)}else r(i.message)}async function loadPersistedTraceIds(e){if(e.loadTraceIds)return e.loadTraceIds();if(!e.sessionId)return[];const n=await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),o=n?.traceIds;return Array.isArray(o)?o.filter(e=>"string"==typeof e&&e.length>0):[]}async function handleTrace({setFeed:e,sessionId:n,loadTraceIds:o}){const r=getTraceId();if(r){const n=await writeClipboardText(r)?t("copiedToClipboard"," (copied to clipboard)"):"";return void e(e=>[...e,Zh(t("traceId","Trace ID: {{v0}}{{v1}}",{v0:r,v1:n}))])}const s=await loadPersistedTraceIds({sessionId:n,loadTraceIds:o});if(s.length>0){const n=s[s.length-1],o=await writeClipboardText(n)?t("copiedToClipboard"," (copied to clipboard)"):"";return void e(e=>[...e,Zh(t("traceId","Trace ID: {{v0}}{{v1}}",{v0:n,v1:o}))])}const a=isTelemetryInitialized()?t("traceIdNotGeneratedSendAMessageFirst","Trace ID not generated: Send a message first"):t("noTraceIdRequestTracingIsOffThisSession","No trace ID — request tracing is off this session.");e(e=>[...e,Zh(a)])}function actionErrorMessage(e){return e instanceof Error?e.message:t("unknownError","Unknown error")}async function handleTreeCommand({sessionId:e,setFeed:n,setShowTreeSelector:o,setTreeFilterMode:r,setTreeBranchSummarySkipPrompt:s}){const a=hO(e),i=resolveTreeCommand({hasActiveConversation:Boolean(a),treeEntryCount:a?.getSessionTree().length??0});if("notice"===i.kind)return void n(e=>[...e,"error"===i.notice.kind?sf(i.notice.message):Zh(i.notice.message)]);const[l,c]=await Promise.all([getTreeFilterMode(),getBranchSummarySkipPrompt()]);r(l),s(c),o(!0)}async function handleTreeSelect({entryId:e,summarize:n,customInstructions:o,sessionId:r,setFeed:s,setShowTreeSelector:a,setStaticKey:i,setInput:l}){const c=hO(r);if(!c)return{aborted:!1};try{const r=await c.navigateTree({targetId:e,summarize:n,...o?{customInstructions:o}:{}});return r.aborted?{aborted:!0}:r.cancelled?(s(e=>[...e,Zh(t("alreadyAtThisPoint","Already at this point"))]),{aborted:!1}):(a(!1),s(reconstructFeedFromMessages(harnessSessionMessages(c))),sN(),i(e=>e+1),r.editorText&&l(r.editorText),s(e=>[...e,Zh(t("navigatedToSelectedPoint","Navigated to selected point"))]),{aborted:!1})}catch(e){return s(n=>[...n,sf(t("failedToNavigate","Failed to navigate: {{v0}}",{v0:actionErrorMessage(e)}))]),{aborted:!1}}}function handleTreeCancel({setShowTreeSelector:e}){e(!1)}function handleTreeAbortSummary({sessionId:e}){hO(e)?.abortBranchSummary()}function handleTreeLabel({entryId:e,label:n,sessionId:o,setFeed:r}){const s=hO(o);if(s)try{s.setTreeLabel({targetId:e,label:n})}catch(e){r(n=>[...n,sf(t("failedToSetLabel","Failed to set label: {{v0}}",{v0:actionErrorMessage(e)}))])}}function announceCompletedUpdate({fromVersion:e,toVersion:n}){console.log(It.green(`Updated ${e} → ${n}`))}function trackUpdateFailure({fromVersion:e,targetVersion:n,trigger:o,userName:r,failureReason:s}){trackError({error:new Error(`Update failed: ${e} -> ${n}${s?`: ${s}`:""}`),context:{component:Rs.UPDATER,heading:"CLI update failed (atomic + fallback)","cmd.update.from_version":e,"cmd.update.target_version":n,"cmd.update.trigger":o,...s&&{"cmd.update.failure_reason":s},...r&&{"user.name":r}}})}__name(parseGistUrl,"parseGistUrl"),__name(execErrorText,"execErrorText"),__name(defaultCreateGist,"defaultCreateGist"),__name(resolveShareGistFormat,"resolveShareGistFormat"),__name(writeGistPayload,"writeGistPayload"),__name(handleShareGistCommand,"handleShareGistCommand"),__name(handleShareRebuildingCommand,"handleShareRebuildingCommand"),__name(handleUnshareCommand,"handleUnshareCommand"),Jt(),hL(),__name(loadPersistedTraceIds,"loadPersistedTraceIds"),__name(handleTrace,"handleTrace"),Jt(),hL(),__name(actionErrorMessage,"actionErrorMessage"),__name(handleTreeCommand,"handleTreeCommand"),__name(handleTreeSelect,"handleTreeSelect"),__name(handleTreeCancel,"handleTreeCancel"),__name(handleTreeAbortSummary,"handleTreeAbortSummary"),__name(handleTreeLabel,"handleTreeLabel"),Jt(),hL(),Jt(),hL(),__name(announceCompletedUpdate,"announceCompletedUpdate"),__name(trackUpdateFailure,"trackUpdateFailure");var lG={createLifecycleEventClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createLifecycleEventClient"),isTelemetryEnabled:isTelemetryEnabled,log:dlog,onCompletedUpdate:announceCompletedUpdate,trackUpdateFailure:trackUpdateFailure},cG={updatedVersionThisSession:null};async function handleUpdateCommand({setFeed:e,setStatus:n,setIsCmdCodeBusy:o,setUpdateStatus:r,pinnedStatusRef:s}){const a=__name(e=>{"busy"===e.type&&o(e.value),"pin-status"===e.type&&(s.current=e.value),"status"===e.type&&n(e.value),"update-status"===e.type&&r(e.value)},"emit"),i=await runTuiUpdateCommand({state:cG,host:lG,copy:{binCommand:`${getBinaryCommand()}`,updateCommand:"npm i -g command-code"},emit:a});trackTuiUpdateCommandTelemetry(i),"error"!==i.level?e(e=>[...e,Zh(i.message,i.metadata)]):e(e=>[...e,sf(i.message)])}__name(handleUpdateCommand,"handleUpdateCommand"),Jt(),hL();var dG=__name((e,n)=>e.setFeed(e=>[...e,Zh(n)]),"info"),uG=__name((e,n)=>e.setFeed(e=>[...e,sf(n)]),"error");function renderList(e,o){const r=listWorktrees(e);if(0===r.length)return t("noWorktreesFound","No worktrees found.");const s=r.map(r=>{const s=samePath2(r.path,e)?"●":"○",a=n.relative(o,r.path),i=r.isMain?".":a&&!a.startsWith("..")?a:tildeHome(r.path);return` ${s} ${r.isMain?t("main","{{v0}} (main)",{v0:i}):i}${r.branch?` [${r.branch}]`:t("detached"," [detached]")}`});return[t("worktrees","Worktrees:"),...s,"",t("switchWithWorktreeName","Switch with /worktree <name>.")].join("\n")}async function handleWorktreeCommand(e,n){const o=process.cwd();if(!isGitRepo(o))return void uG(e,t("worktreeRequiresAGitRepository","/worktree requires a git repository."));const r=getMainWorktreeRoot(o)??o,s=n[0]?.toLowerCase();if(!s||"list"===s||"ls"===s)return void dG(e,renderList(o,r));if("remove"===s||"rm"===s){const s=n[1];return s?void await handleRemove(e,s,o,r):void uG(e,t("usageWorktreeRemoveName","Usage: /worktree remove <name>"))}const a="new"===s||"create"===s||"add"===s?n[1]:n[0];await handleSwitch(e,a,o)}async function handleRemove(e,o,r,s){const a=resolveTarget(o,s);if(samePath2(a.worktreePath,r))return void uG(e,t("canTRemoveTheWorktreeYouReInSwitchAwayFirstThenRemoveIt","Can't remove the worktree you're in. Switch away first, then remove it."));if(!listWorktrees(r).some(e=>samePath2(e.path,a.worktreePath)))return void uG(e,t("noWorktreeNamed",'No worktree named "{{v0}}".',{v0:o}));const i=removeWorktree({worktreePath:a.worktreePath,cwd:r,deleteBranch:isManagedWorktreePath(a.worktreePath,s)?a.branch:void 0});i.ok?dG(e,t("removedWorktree",'Removed worktree "{{v0}}".',{v0:o})):uG(e,t("couldnTRemoveCommitOrStashChangesOrRemoveItManuallyWithGitWorktreeRemoveForce",'Couldn\'t remove "{{v0}}": {{v1}}. Commit or stash changes, or remove it manually with: git worktree remove --force {{v2}}',{v0:o,v1:i.message,v2:n.relative(s,a.worktreePath)}))}async function handleSwitch(e,n,o){const r=createWorktree({spec:n,cwd:o});if(!r.ok)return void uG(e,t("couldnTCreateWorktree","Couldn't create worktree: {{v0}}",{v0:r.error}));if(samePath2(r.target.worktreePath,o))return void dG(e,t("alreadyInWorktree",'Already in worktree "{{v0}}".',{v0:r.target.name}));const s=r.created?t("created","Created"):t("reusing","Reusing"),a=r.created&&r.copiedFiles>0?t("copiedFileS"," (copied {{v0}} file(s))",{v0:r.copiedFiles}):"",i=r.created&&r.copyFailedFiles.length>0?t("includeCopyFailureS"," ({{v0}} include copy failure(s))",{v0:r.copyFailedFiles.length}):"";dG(e,t("worktreeSwitchingAFreshSessionStartsInTheWorktreeThisOneStaysResumable",'{{v0}} worktree "{{v1}}"{{v2}}{{v3}}. Switching… (a fresh session starts in the worktree; this one stays resumable).',{v0:s,v1:r.target.name,v2:a,v3:i})),await(hO(e.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:e.sessionId,permissionMode:e.permissionModeRef.current,worktree:r.target.name})),e.setShouldExit(!0)}function handleHelpCommand({setFeed:e}){e(e=>[...e,rf(Mf)])}async function handleTerminalSetupCommand({setFeed:e}){const n=Xh("/terminal-setup"),o=setupVSCodeTerminal(),r=lf(o.message,!o.success,o.details),s=lf(t("terminalTabTitlesNeedNoSetupTitlesAreSetAutomaticallyViaStandardEscapeSequencesVsCode1117HonorsThemOutOfTheBox","Terminal tab titles need no setup — titles are set automatically via standard escape sequences (VS Code 1.117+ honors them out of the box)."),!1),a=isKittyKeyboardActive()?[lf(t("shiftEnterAlreadyWorksNativelyInThisTerminalKittyKeyboardProtocolTheVsCodeKeybindingsOnlyApplyInsideAVsCodeFamilyTerminal","Shift+Enter already works natively in this terminal (kitty keyboard protocol) — the VS Code keybindings only apply inside a VS Code-family terminal."),!1)]:[];e(e=>[...e,n,r,s,...a])}async function handleIDESetupCommand({setFeed:e}){const n=await runIdeSetup({host:XH,moduleUrl:import.meta.url}),o=cf(n.status,n.ide,n.details);e(e=>[...e,o])}async function handleClearCommand({setFeed:e,setLiveEntries:n,setQueuedMessages:o,setShareInfo:r,setShowShareNotification:s,setUnshareNotificationMessage:a,setStaticKey:i,setContextUsage:l,setInteractionTokens:c,sessionId:d,setSessionId:u,clearSessionPermissions:m}){e([]),n([]),o([]),clearSessionTodos(),clearShellTasks(),sN(),r(null),s(!1),a(""),await deleteCommandSessionShareInfo({sessionId:d}).catch(()=>{});const p=hO(d);p?.stopBackgroundLearning(),await(p?.flush().catch(()=>{})),fO(d),setNextSessionStartSource("clear"),u(crypto.randomUUID()),m(),i(e=>e+1),l(null),c(0)}async function handleInitCommand({setFeed:e}){const n=await resolveInitMemoryCommand({projectRoot:process.cwd()});e(e=>[...e,Zh(n.message)])}async function runGoalTurn(e,n,o,r){await handleSubmit({role:"user",input:buildSlashCommandMessage({commandName:"/goal",skillName:"goal",rawArguments:n}),images:o,ideContext:r,suppressUserEcho:!0,persistVisibleMessage:!0,isAutomated:!0,isGoalBootstrap:!0,hiddenMessages:[{role:"user",content:buildGoalPrompt({kind:"bootstrap",goalText:n})}],feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash})}async function handleGoalCommand(e,n,o,r){const s=e.isSubmittingRef.current||e.isCmdCodeBusy,a=await resolveGoalSlashCommand({rawArguments:n,sessionId:e.sessionId,isSubmitting:s,permissionMode:e.permissionModeRef.current,maxTurnsOverride:getGoalMaxTurnsOverride(),loadSessionMeta:__name(async e=>await loadCommandSessionMeta(e),"loadSessionMeta"),saveSessionMeta:__name(async e=>saveCommandSessionMeta(e),"saveSessionMeta"),armGoalLoop:armCommandGoalLoop,disarmGoalLoop:disarmCommandGoalLoop,isGoalLoopArmed:isCommandGoalLoopArmed});e.setFeed(e=>[...e,Zh(a.notice.message,a.notice.metadata)]),s&&"notice"===a.status&&"cleared"===a.notice.metadata?.goalNoticeKind&&hO(e.sessionId)?.requestStopAfterTurn(),"start"===a.status&&await runGoalTurn(e,a.goalText,o,r)}async function openExternalSlashCommandTarget({setFeed:e,target:n}){e(e=>[...e,Zh(t("openingInYourBrowser","Opening {{v0}} in your browser…",{v0:createOSC8Link(n.url,n.noticeLabel,!1)}))]);try{await Ot(n.url,{wait:!1,background:!0})}catch{const{fallback:o}=n;if("info"===o.kind)return void e(e=>[...e,Zh(o.message)]);e(e=>[...e,sf(t("failedToOpenBrowser","Failed to open browser")),rf(createOSC8Link(n.url,o.label,!1))])}}function handleLearnCommand({setAutoLearnTaste:e,setShowTasteOnboarding:n,setTasteOnboardingEntryId:o,setFeed:r}){e(!0),n(!0);const s=af();o(s.id),r(e=>[...e,s])}function prCommentsFollowUp(e){const n=hO(e);return n?resolvePrCommentsFollowUpInput(harnessSessionMessages(n)):textHasPrComments(getLastSandboxReply())?Ki:null}async function handleCommand(e,n,o,r){const s=e.trim().split(/\s+/)[0]??"",a=s.split(":")[0]?.replace(/^\//,"")||"unknown";return withSpan({name:`command:${a}`,attributes:{"cmd.command.name":a,"cmd.command.arg_length":Math.max(e.trim().length-s.length,0)},fn:__name(async s=>{const a=await dispatchCommand(e,n,o,r);return s.setAttribute("cmd.command.status",a.status),a},"fn")})}async function dispatchCommand(e,n,o,r){const s=resolveSlashCommandRoute({command:e,isBusy:n.isCmdCodeBusy}),a=sandboxGateMessage(e.trim().split(/\s+/)[0]?.split(":")[0]?.replace(/^\//,"")??"");if(a)return n.setFeed(e=>[...e,Zh(a)]),{status:"handled"};if("blocked"===s.kind)return n.setFeed(e=>[...e,Zh(s.message)]),{status:"handled"};if("resume-by-id"===s.kind)return await handleSelectSession({selectedSessionId:s.selectedSessionId,previousSessionId:n.sessionId,sessionLoadIdRef:n.sessionLoadIdRef,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,setSessionId:n.setSessionId,setShowSessionSelector:n.setShowSessionSelector,setSessionLoaded:n.setSessionLoaded,setStaticKey:n.setStaticKey,setShareInfo:n.setShareInfo,setCurrentModel:n.setCurrentModel,inTuiResume:!0}),{status:"handled"};if("skill"===s.kind){if(0===s.skillName.length)return n.setFeed(e=>[...e,Zh(t("nameASkillToRunSkillNameRunSkillsToSeeWhatIsInstalled","Name a skill to run: /skill:<name>. Run /skills to see what is installed."))]),{status:"handled"};const e=buildSkillNamespacedCommand(s.skillName);return await handleSkillCommand({commandName:`/${s.skillName}`,command:`${e}${s.rawArguments?` ${s.rawArguments}`:""}`,rawArguments:s.rawArguments,positionalArgs:s.positionalArgs,ctx:n})||(n.setFeed(e=>[...e,sf(t("noSkillNamedRunSkillsToSeeWhatIsInstalled",'No skill named "{{v0}}". Run /skills to see what is installed.',{v0:s.skillName}))]),{status:"handled"})}if("unknown"===s.kind)return{status:"unknown"};const{commandName:i,rawArguments:l,positionalArgs:c}=s;if("/exit"===i||"/quit"===i)return discardPendingReload(),n.setShouldExit(!0),{status:"handled"};if("/reload"===i)return await(hO(n.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:n.sessionId,permissionMode:n.permissionModeRef.current})),n.setShouldExit(!0),{status:"handled"};if("/clear"===i)return await handleClearCommand(n),{status:"handled"};if("/help"===i)return await handleHelpCommand(n),{status:"handled"};if("/share"===i){const e=l.trim();return"gist"===e||e.startsWith("gist ")?(await handleShareGistCommand({sessionId:n.sessionId,currentModel:n.currentModel,rawFormatArg:e.slice(4).trim(),setFeed:n.setFeed}),{status:"handled"}):(handleShareRebuildingCommand(n.setFeed),{status:"handled"})}if("/unshare"===i)return await handleUnshareCommand({sessionId:n.sessionId,shareInfo:n.shareInfo,setShareInfo:n.setShareInfo,setStatus:n.setStatus,setUnshareNotificationMessage:n.setUnshareNotificationMessage}),{status:"handled"};if("/taste"===i)return n.setShowTasteConfig(!0),{status:"handled"};if("/learn-taste"===i)return handleLearnCommand(n),{status:"handled"};if("/design"===i)return await handleDesignCommand({ctx:n,rawArguments:l,positionalArgs:c,command:e}),{status:"handled"};if("/skills"===i)return n.setShowSkillsConfig(!0),{status:"handled"};if("/plans"===i)return n.setPlansTarget(l.trim()||null),n.setShowPlansView(!0),{status:"handled"};if("/plan-review"===i)return n.setPlansTarget(DH),n.setShowPlansView(!0),{status:"handled"};if("/config"===i)return n.setShowSettingsConfig(!0),{status:"handled"};if("/connect"===i)return n.setShowProviderSelector(!0),{status:"handled"};if("/model"===i)return await handleModelCommand(n,l),{status:"handled"};if("/effort"===i)return await handleEffortCommand(n,l),{status:"handled"};if("/memory"===i)return n.setShowMemorySelector(!0),{status:"handled"};if("/resume"===i||"/sessions"===i)return n.setShowSessionSelector(!0),{status:"handled"};if("/fork"===i)return await handleForkCommand(n,l.trim()||void 0),{status:"handled"};if("/worktree"===i)return await handleWorktreeCommand(n,c),{status:"handled"};if("/clone"===i)return await handleCloneCommand(n),{status:"handled"};if("/init"===i)return await handleInitCommand(n),{status:"handled"};if("/import"===i)return await handleImportCommand(n,l),{status:"handled"};if("/goal"===i)return await handleGoalCommand(n,l,o,r),{status:"handled"};if("/agents"===i)return n.setShowAgentsConfig(!0),{status:"handled"};if("/mcp"===i)return n.setShowMcpManager(!0),{status:"handled"};if("/compact"===i)return await handleCompactCommand({sessionId:n.sessionId,setFeed:n.setFeed,setStatus:n.setStatus,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setContextUsage:n.setContextUsage,setStaticKey:n.setStaticKey}),{status:"handled"};if("/compact-mode"===i)return n.setShowCompactModeSelector(!0),{status:"handled"};if("/update"===i)return n.setInput(""),await handleUpdateCommand({setFeed:n.setFeed,setStatus:n.setStatus,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setUpdateStatus:n.setUpdateStatus,pinnedStatusRef:n.pinnedStatusRef}),{status:"handled"};if("/context"===i)return n.setShowContextView(!0),{status:"handled"};if("/rewind"===i)return handleRewindCommand({sessionId:n.sessionId,setFeed:n.setFeed,setShowRewindSelector:n.setShowRewindSelector}),{status:"handled"};if("/tree"===i)return await handleTreeCommand({sessionId:n.sessionId,setFeed:n.setFeed,setShowTreeSelector:n.setShowTreeSelector,setTreeFilterMode:n.setTreeFilterMode,setTreeBranchSummarySkipPrompt:n.setTreeBranchSummarySkipPrompt}),{status:"handled"};if("/login"===i)return await handleLoginCommand({provider:l,setFeed:n.setFeed,setShowLoginOverlay:n.setShowLoginOverlay,setAuthComponentInfo:n.setAuthComponentInfo}),n.setInput(""),{status:"handled"};if("/logout"===i)return await handleLogoutCommand({provider:l,setFeed:n.setFeed,setRetryAttempt:n.setRetryAttempt,setIsCmdCodeBusy:n.setIsCmdCodeBusy}),n.setInput(""),{status:"handled"};if("/learn"===i){const e=resolveExternalSlashCommandTarget({commandName:i});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),{status:"handled"}}if("/feedback"===i){const e=resolveExternalSlashCommandTarget({commandName:i,rawArguments:l});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),n.setInput(""),{status:"handled"}}if("/trace"===i)return await handleTrace({setFeed:n.setFeed,sessionId:n.sessionId}),n.setInput(""),{status:"handled"};if("/copy"===i)return await handleCopy({feed:n.feed,setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/export"===i)return await handleExport({sessionId:n.sessionId,rawPath:l,currentModel:n.currentModel,setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/changelog"===i)return handleChangelog({setFeed:n.setFeed,rawArguments:l}),n.setInput(""),{status:"handled"};if("/hotkeys"===i)return handleHotkeys({setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/todos"===i)return 0===getSessionTodos().length?n.setFeed(e=>[...e,Zh(t("noTodosInThisSessionYet","No todos in this session yet."))]):requestTodosManagerOpen(),n.setInput(""),{status:"handled"};if("/session-file"===i)return handleSessionFile({sessionId:n.sessionId,setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/terminal-setup"===i)return await handleTerminalSetupCommand(n),{status:"handled"};if("/ide"===i)return await handleIDESetupCommand(n),{status:"handled"};if("/add-dir"===i)return n.setShowAddDirModal(!0),{status:"handled"};if("/rename"===i)return await handleRenameCommand({name:l.trim(),sessionId:n.sessionId,setFeed:n.setFeed,setRenamedTerminalTitle:n.setRenamedTerminalTitle,setStatus:n.setStatus,setIsCmdCodeBusy:n.setIsCmdCodeBusy}),n.setInput(""),{status:"handled"};if("/name"===i)return await handleNameCommand({name:l.trim(),sessionId:n.sessionId,setFeed:n.setFeed,setRenamedTerminalTitle:n.setRenamedTerminalTitle}),n.setInput(""),{status:"handled"};if("/usage"===i)return n.setShowUsageOverlay(!0),{status:"handled"};if("/theme"===i)return await handleThemeCommand(n,l),{status:"handled"};if("/language"===i)return await handleLanguageCommand(n,l),{status:"handled"};if("/rc"===i)return await handleRcCommand(n,l),{status:"handled"};if("/plan"===i)return await handlePlanCommand({rawArguments:l,ctx:n}),{status:"handled"};if("/mode"===i||i.startsWith("/mode:")){const e=i.startsWith("/mode:")?i.slice(6):l;return await handleModeCommand({rawArguments:e,ctx:n}),{status:"handled"}}if("/review"===i){const e=await resolveReviewSlashCommand({rawArguments:l});return"missing-gh"===e.status?(n.setFeed(n=>[...n,Zh(e.message,e.metadata)]),n.setInput(""),{status:"handled"}):(await submitAutomatedSlashTurn({turn:e.turn,ctx:n}),{status:"handled"})}if("/pr-comments"===i){await submitAutomatedSlashTurn({turn:buildPrCommentsSlashTurn(),ctx:n});const e=prCommentsFollowUp(n.sessionId);return e&&n.setInput(e),{status:"handled"}}if("/status"===i)return n.setShowStatusView(!0),{status:"handled"};if("/upgrade"===i){const e=resolveExternalSlashCommandTarget({commandName:i,billingUrl:await getBillingLink({billingLink:n.billingLink,setBillingLink:n.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),{status:"handled"}}if("/extra"===i){const e=resolveExternalSlashCommandTarget({commandName:i,billingUrl:await getBillingLink({billingLink:n.billingLink,setBillingLink:n.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),{status:"handled"}}const d=getActiveModHost(),u=i.slice(1);if(d?.commands().some(e=>e.name===u)){try{const e=await d.runCommand({name:u,args:l}),o=e?.message;o&&n.setFeed(e=>[...e,Zh(o)]),e?.prompt&&await submitAutomatedSlashTurn({turn:buildAutomatedSlashTurn({commandName:i,rawArguments:l,fullPrompt:e.prompt}),ctx:n})}catch(e){n.setFeed(n=>[...n,sf(t("modCommandFailed","Mod command /{{v0}} failed: {{v1}}",{v0:u,v1:e instanceof Error?e.message:String(e)}))])}return{status:"handled"}}const m=await resolveCustomSlashTurn({runtime:createNodeRuntime(),commandName:i,rawArguments:l,positionalArgs:c});if(m)return await submitAutomatedSlashTurn({turn:m,ctx:n}),{status:"handled"};return await handleSkillCommand({commandName:i,command:e,rawArguments:l,positionalArgs:c,ctx:n})||{status:"unknown"}}async function submitAutomatedSlashTurn({turn:e,ctx:n}){await handleSubmit({input:e.input,role:"user",displayMessage:e.displayMessage,hiddenMessages:e.hiddenMessages,isAutomated:!0,feed:n.feed,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,isCmdCodeBusy:n.isCmdCodeBusy,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setQueuedMessages:n.setQueuedMessages,setStatus:n.setStatus,setInteractionTokens:n.setInteractionTokens,updateStatus:n.updateStatus,setUpdateStatus:n.setUpdateStatus,billingLink:n.billingLink,setBillingLink:n.setBillingLink,currentModel:n.currentModel,currentProvider:n.currentProvider,premiumCreditsExhausted:n.premiumCreditsExhausted,setPremiumCreditsExhausted:n.setPremiumCreditsExhausted,setCurrentModel:n.setCurrentModel,sessionId:n.sessionId,isSubmittingRef:n.isSubmittingRef,setInput:n.setInput,setStaticKey:n.setStaticKey,executeBash:n.executeBash})}async function handleSkillCommand({commandName:e,command:n,rawArguments:o,positionalArgs:r,ctx:s}){const a=await resolveSkillSlashTurn({runtime:createNodeRuntime(),commandName:e,command:n,rawArguments:o,positionalArgs:r});return"not-found"===a.status?null:"disabled"===a.status?(s.setFeed(e=>[...e,Zh(a.message)]),{status:"handled"}):"load-error"===a.status?(s.setFeed(e=>[...e,sf(a.message)]),{status:"handled"}):(await submitAutomatedSlashTurn({turn:a.turn,ctx:s}),{status:"handled"})}__name(renderList,"renderList"),__name(handleWorktreeCommand,"handleWorktreeCommand"),__name(handleRemove,"handleRemove"),__name(handleSwitch,"handleSwitch"),__name(handleHelpCommand,"handleHelpCommand"),__name(handleTerminalSetupCommand,"handleTerminalSetupCommand"),__name(handleIDESetupCommand,"handleIDESetupCommand"),__name(handleClearCommand,"handleClearCommand"),__name(handleInitCommand,"handleInitCommand"),__name(runGoalTurn,"runGoalTurn"),__name(handleGoalCommand,"handleGoalCommand"),__name(openExternalSlashCommandTarget,"openExternalSlashCommandTarget"),__name(handleLearnCommand,"handleLearnCommand"),__name(prCommentsFollowUp,"prCommentsFollowUp"),__name(handleCommand,"handleCommand"),__name(dispatchCommand,"dispatchCommand"),__name(submitAutomatedSlashTurn,"submitAutomatedSlashTurn"),__name(handleSkillCommand,"handleSkillCommand"),Jt();var mG=new Set(["info","error"]),pG=__name(e=>{if(!mG.has(e.role))return;const n="string"==typeof e.input?e.input.trim():"";return""===n?void 0:n},"spokenText");function echoFeedToChat(e){if("remote"!==e.origin)return e.setFeed;const n=getActiveRemote(),o=n?.bridge.ownerChatId;if(!n||void 0===o)return e.setFeed;const r=new Set;return s=>{e.setFeed(e=>{const a="function"==typeof s?s(e):s;for(const s of a.slice(e.length)){const e=pG(s);void 0===e||r.has(s.id)||(r.add(s.id),n.bridge.sendNote(o,e))}return a})}}function useCommandCtx({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,onboarding:a,exitState:i,permissionState:l,terminalTitleState:c,isSubmittingRef:d,executeBash:u,setInput:m}){const p=ut(()=>({feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setQueuedMessages:e.setQueuedMessages,setStatus:o.setStatus,setInteractionTokens:o.setInteractionTokens,setContextUsage:o.setContextUsage,contextUsage:o.contextUsage,setStaticKey:s.setStaticKey,updateStatus:o.updateStatus,setUpdateStatus:o.setUpdateStatus,billingLink:o.billingLink,setBillingLink:o.setBillingLink,currentModel:r.currentModel,premiumCreditsExhausted:r.premiumCreditsExhausted,setPremiumCreditsExhausted:r.setPremiumCreditsExhausted,setCurrentModel:r.setCurrentModel,setModelNotice:s.setModelNotice,currentProvider:r.currentProvider,setAuthComponentInfo:r.setAuthComponentInfo,shareInfo:o.shareInfo,setShareInfo:o.setShareInfo,setShowShareNotification:o.setShowShareNotification,setUnshareNotificationMessage:o.setUnshareNotificationMessage,setRetryAttempt:o.setRetryAttempt,pinnedStatusRef:o.pinnedStatusRef,setShowTasteConfig:s.setShowTasteConfig,setShowSkillsConfig:s.setShowSkillsConfig,setShowSettingsConfig:s.setShowSettingsConfig,setShowProviderSelector:s.setShowProviderSelector,setShowModelSelector:s.setShowModelSelector,setShowEffortSelector:s.setShowEffortSelector,setShowMemorySelector:s.setShowMemorySelector,setShowAgentsConfig:s.setShowAgentsConfig,setShowMcpManager:s.setShowMcpManager,setShowRewindSelector:s.setShowRewindSelector,setShowTreeSelector:s.setShowTreeSelector,setTreeFilterMode:s.setTreeFilterMode,setTreeBranchSummarySkipPrompt:s.setTreeBranchSummarySkipPrompt,setShowCompactModeSelector:s.setShowCompactModeSelector,setShowContextView:s.setShowContextView,setShowAddDirModal:s.setShowAddDirModal,setShowLoginOverlay:s.setShowLoginOverlay,setShowStatusView:s.setShowStatusView,setShowPlansView:s.setShowPlansView,setPlansTarget:s.setPlansTarget,setShowUsageOverlay:s.setShowUsageOverlay,setShowThemeSelector:s.setShowThemeSelector,setShowLanguageSelector:s.setShowLanguageSelector,setShowRcSelector:s.setShowRcSelector,setShowDesignGuide:s.setShowDesignGuide,setPendingDesignSuggestion:s.setPendingDesignSuggestion,setShowTasteOnboarding:a.setShowTasteOnboarding,setAutoLearnTaste:a.setAutoLearnTaste,setTasteOnboardingEntryId:a.setTasteOnboardingEntryId,sessionId:n.sessionId,setSessionId:n.setSessionId,sessionLoadIdRef:n.sessionLoadIdRef,sessionLoaded:n.sessionLoaded,setSessionLoaded:n.setSessionLoaded,setShowSessionSelector:s.setShowSessionSelector,setPermissionMode:l.setPermissionMode,permissionModeRef:l.permissionModeRef,clearSessionPermissions:l.clearSessionPermissions,setShouldExit:i.setShouldExit,setInput:m,isSubmittingRef:d,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,executeBash:u,setRenamedTerminalTitle:c.setRenamedTerminalTitle}),[e,n,o,r,s,a,i,l,c,d,u,m]),g=pt(p);return g.current=p,{commandCtx:p,onCommand:ht((e,n,o,r)=>handleCommand(e,{...g.current,...r?{origin:r}:{},setFeed:echoFeedToChat({setFeed:g.current.setFeed,origin:r})},n,o),[])}}__name(echoFeedToChat,"echoFeedToChat"),__name(useCommandCtx,"useCommandCtx"),Jt(),hL();var gG=Ys,hG=Js;function useCreditWarning({interactionTokens:e,currentModel:n}){const[o,r]=mt(null),s=pt(null),a=pt(null),i=pt(null),l=ht(async()=>{try{const e=createApiClient({baseUrl:getApiBaseUrl()});s.current??=createCreditWarningState();const n=await checkCreditWarning({client:e,state:s.current});if(s.current=n.state,!n.message)return;r(n.message),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r(null),i.current=null},gG)}catch{}},[]);return gt(()=>{if(0!==e&&!isLocalOnly()&&!isByok({model:n}))return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{l(),a.current=null},hG),()=>{a.current&&clearTimeout(a.current)}},[e,n,l]),gt(()=>()=>{i.current&&clearTimeout(i.current),a.current&&clearTimeout(a.current)},[]),{creditWarning:o}}__name(useCreditWarning,"useCreditWarning"),Jt(),hL();var fG=createNodeRuntime();function useCronWakeup({sessionId:e,onSubmit:n}){const o=pt(n),r=pt(e),s=pt(Promise.resolve());gt(()=>{o.current=n},[n]),gt(()=>{r.current=e},[e]),gt(()=>{const e=subscribeCronFire(e=>{s.current=s.current.catch(()=>{}).then(async()=>{const n="loop"===e.kind||!0===e.loopOwned,s=hO(r.current);if(n&&s&&!s.hasScheduledTask({id:e.taskId}))return;const a=await buildScheduledTaskWakeupSubmission({event:e,runtime:fG});await o.current(a)}),s.current.catch(()=>{})});return()=>{e()}},[])}function useExit(){const[e,n]=mt(!1),[o,r]=mt(null),s=pt(null),a=pt(0),i=pt(null),l=ht(()=>{s.current=null,r(null),i.current&&(clearTimeout(i.current),i.current=null)},[]);return{shouldExit:e,setShouldExit:n,pendingExitKey:o,setPendingExitKey:r,pendingExitKeyRef:s,lastExitKeyTimeRef:a,exitConfirmationTimeoutRef:i,resetPendingExitKey:l}}__name(useCronWakeup,"useCronWakeup"),Jt(),__name(useExit,"useExit"),Jt(),hL(),Jt(),hL();var yG="1"===process.env.CMD_TEST_INJECT_LIVE_ENTRY;function makeInjectedShellEntry(e,n,o,r={}){return{...nf("shell_command",n,{status:o}),id:e,...r}}function buildInjectedLiveEntry(){return yG?makeInjectedShellEntry("cmd-test-injected-live-entry",process.env.CMD_TEST_INJECT_INPUT??"sleep 60","running"):null}function buildInjectedFeed(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_FEED_ITEMS??"0",10);return!Number.isFinite(e)||e<=0?[]:Array.from({length:e},(e,n)=>makeInjectedShellEntry(`cmd-test-feed-${n}`,`echo item ${n}`,"completed",{output:`item ${n}`}))}__name(makeInjectedShellEntry,"makeInjectedShellEntry"),__name(buildInjectedLiveEntry,"buildInjectedLiveEntry"),__name(buildInjectedFeed,"buildInjectedFeed");var vG="1"===process.env.CMD_TEST_INJECT_STREAM,SG="cmd-test-injected-stream-entry";function streamRole(){const e=process.env.CMD_TEST_INJECT_STREAM_ROLE;return"reasoning"===e||"tool"===e||"agent"===e?e:"assistant"}function streamContentKind(){const e=process.env.CMD_TEST_INJECT_STREAM_CONTENT;return"code"===e||"paragraph"===e||"reasoning"===e||"mixed"===e||"huge"===e?e:"table"}function streamTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_STREAM_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:100}function buildHugeStreamContent(){const e=[];e.push("# Huge streaming gauntlet","A very long reply exercising **every** markdown flavor while it streams. Scroll up mid-stream — the position must hold; finished blocks land in the scrollback above.");for(let n=0;n<6;n+=1){e.push(`## Section ${n} — prose, lists and a table`),e.push(...Array.from({length:4},(e,o)=>`Section ${n} paragraph ${o}: the quick brown fox keeps streaming words so this block wraps a couple of rows, with **bold**, *italic*, ***both***, ~~strikethrough~~, \`inline_code(${o})\` and a [link](https://example.com/s${n}/p${o}) mixed in.`)),e.push([`- Section ${n} unordered item one`,`- Section ${n} unordered item two`," - nested child with `code`"," - nested child with **bold**",`- Section ${n} unordered item three`].join("\n"),[`1. Section ${n} ordered first`,`2. Section ${n} ordered second`,`3. Section ${n} ordered third`].join("\n"),`> Section ${n} blockquote: streaming should never mangle a quote.\n> > And a nested quote inside it still reads fine.`);const o=Array.from({length:6},(e,o)=>`| s${n}-row-${o} | huge demo detail ${o} | ${3*o} |`);e.push(["| Key | Detail | N |","| --- | --- | --- |",...o].join("\n"),"---")}e.push("## Task list and headings ladder"),e.push(["- [x] streamed a task that is done","- [ ] a pending task with `code`","- [x] another finished task with **bold**","- [ ] the last pending task"].join("\n"),"### Heading three","#### Heading four","##### Heading five","###### Heading six"),e.push("## Code in several languages"),e.push(["```ts","const total = rows.reduce(sum);","export function streamGauntlet(rows: number[]): number {","\treturn rows.filter(Boolean).length;","}","```"].join("\n"),["```python","def stream_gauntlet(rows):",' """Docstring survives streaming."""'," return [row * 2 for row in rows if row]","```"].join("\n"),["```json","{",' "stream": "gauntlet",',' "blocks": ["table", "code", "list"],',' "huge": true',"}","```"].join("\n"),["```bash","for block in table code list; do",' echo "streaming $block"',"done","```"].join("\n"),["```diff","- const cap = 10;","+ const cap = viewportRows - reserved;","```"].join("\n")),e.push("## Wide table (column fitting / wrap layout)");const n=Array.from({length:10},(e,n)=>`| wide-${n} | alpha ${n} | beta ${n} | gamma ${n} | a longer cell that should wrap gracefully ${n} | ${11*n} |`);e.push(["| Id | Alpha | Beta | Gamma | Long description column | N |","| --- | --- | --- | --- | --- | --- |",...n].join("\n")),e.push("## Huge table (taller than the viewport — the one capped-while-open case)");const o=Array.from({length:40},(e,n)=>`| huge-row-${n} | streaming stress row number ${n} | ${7*n} |`);return e.push(["| Row | Description | N |","| --- | --- | --- |",...o].join("\n")),e.push("## Width edge cases"),e.push("CJK 漢字が流れても幅計算は崩れない、そしてまた漢字。Emoji too: 🚀🔥✨🎉🧪 — double-width glyphs must wrap correctly.","A single extremely long unbroken paragraph follows to force soft wrapping across many physical rows: "+Array.from({length:12},(e,n)=>`clause ${n} keeps the sentence rolling without a newline`).join(", ")+"."),e.push("## The end","Everything above should now sit in your scrollback exactly once.","Huge demo closing paragraph."),e.join("\n\n")}function buildStreamContent(e){return"code"===e?["```ts",...Array.from({length:34},(e,n)=>`const value_${n} = compute(${n});`),"```"].join("\n"):"paragraph"===e?Array.from({length:16},(e,n)=>`Paragraph ${n} adds a little more of the streaming story so the reply keeps growing past the viewport.`).join("\n\n"):"reasoning"===e?Array.from({length:40},(e,n)=>`step ${n}: consider the next detail`).join("\n"):"huge"===e?buildHugeStreamContent():"mixed"===e?`${Array.from({length:3},(e,n)=>`Mixed intro paragraph ${n} with enough words.`).join("\n\n")}\n\n${["| Col | Detail |","| --- | --- |",...Array.from({length:8},(e,n)=>`| row-${n} | mixed detail ${n} |`)].join("\n")}\n\nMixed closing paragraph.`:["| Item | Description | Value |","| --- | --- | --- |",...Array.from({length:20},(e,n)=>`| item-${n} | detail for row number ${n} | ${7*n} |`)].join("\n")}function buildStreamFrames(e){const n=e.split("\n");return n.length>1?n.map((e,o)=>n.slice(0,o+1).join("\n")):Array.from({length:20},(n,o)=>{const r=Math.ceil(e.length*(o+1)/20);return e.slice(0,r)})}function makeStreamRunningEntry(e,n){return"reasoning"===e?df(n,{id:SG,status:"running"}):"tool"===e?{...nf("shell_command",n,{status:"running"}),id:SG}:"agent"===e?{...uf({name:"Task",input:n}),id:SG}:{...tf(n),id:SG,metadata:{status:"running"}}}function makeStreamFinalEntry(e,n){return"reasoning"===e?df(n,{id:SG}):"tool"===e||"agent"===e?{...nf("shell_command",n,{}),id:SG,output:"done"}:{...tf(n),id:SG}}function maybeStartInjectedStream(e){if(!vG)return;const{setFeed:n,setLiveEntries:o,setIsCmdCodeBusy:r}=e,s=streamRole(),a=buildStreamFrames(buildStreamContent(streamContentKind())),i=streamTickMs();r(!0);const l=createBlockCommittingRouter({setFeed:n,setLiveEntries:o});l(makeStreamRunningEntry(s,a[0]??""));let c=0;const d=setInterval(()=>{if(c+=1,c<a.length)return void l(makeStreamRunningEntry(s,a[c]??""));clearInterval(d);const e=a[a.length-1]??"";l(makeStreamFinalEntry(s,e)),r(!1)},i);return()=>clearInterval(d)}__name(streamRole,"streamRole"),__name(streamContentKind,"streamContentKind"),__name(streamTickMs,"streamTickMs"),__name(buildHugeStreamContent,"buildHugeStreamContent"),__name(buildStreamContent,"buildStreamContent"),__name(buildStreamFrames,"buildStreamFrames"),__name(makeStreamRunningEntry,"makeStreamRunningEntry"),__name(makeStreamFinalEntry,"makeStreamFinalEntry"),__name(maybeStartInjectedStream,"maybeStartInjectedStream");var wG="1"===process.env.CMD_TEST_INJECT_TODOS;function todosTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TODOS_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:1500}__name(todosTickMs,"todosTickMs");var kG=(()=>{const e=[{content:"Create initial todo items",active:"Creating initial todo items"},{content:"Update status of a todo",active:"Updating todo status"},{content:"Mark all todos as completed",active:"Marking all todos as completed"}];return Array.from({length:e.length+1},(n,o)=>e.map((e,n)=>({content:e.content,status:n<o?"completed":n===o?"in_progress":"pending",...n===o?{activeForm:e.active}:{},id:String(n+1)})))})();function maybeStartInjectedTodos(e){if(!wG)return;const n=createBlockCommittingRouter({setFeed:e.setFeed,setLiveEntries:e.setLiveEntries});let o=0;const r=setInterval(()=>{const e=kG[o];e?(n({...nf("todo_write",Cf("todo_write",{todos:e}),{}),id:`cmd-test-todo-${o}`,output:JSON.stringify(e)}),o+=1):clearInterval(r)},todosTickMs());return()=>clearInterval(r)}__name(maybeStartInjectedTodos,"maybeStartInjectedTodos");var CG=Number.parseInt(process.env.CMD_TEST_INJECT_TURNS??"0",10);function testTurnChars(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_CHARS??"",10);return Number.isFinite(e)&&e>0?e:1e5}function testTurnTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:20}function makeInjectedTurnEntry(e,n){const o=`turn ${e} `.repeat(Math.ceil(testTurnChars()/`turn ${e} `.length));return makeInjectedShellEntry(`cmd-test-turn-${e}`,n?"echo turns-done":`echo turn ${e}`,"completed",{output:n?"turns-done":o.slice(0,testTurnChars())})}function maybeStartInjectedTurns(e){if(!Number.isFinite(CG)||CG<=0)return;const{setFeed:n}=e;let o=0;const r=setInterval(()=>{const e=o===CG-1,s=makeInjectedTurnEntry(o,e);n(e=>[...e,s]),o+=1,e&&clearInterval(r)},testTurnTickMs());return()=>clearInterval(r)}function useFeed(){const[e,n]=mt(()=>buildInjectedFeed()),o=ht(e=>{n(n=>applyFeedRetention("function"==typeof e?e(n):e))},[]);gt(()=>{trimStaticBuffer()},[e]);const[r,s]=mt(()=>{const e=buildInjectedLiveEntry();return e?[e]:[]}),[a,i]=mt([]),[l,c]=mt(yG),d=pt([]),u=ht(e=>{const n="function"==typeof e?e(d.current):e;d.current=n,i(n)},[]);return gt(()=>maybeStartInjectedTurns({setFeed:o}),[o]),gt(()=>maybeStartInjectedStream({setFeed:o,setLiveEntries:s,setIsCmdCodeBusy:c}),[]),gt(()=>maybeStartInjectedTodos({setFeed:o,setLiveEntries:s}),[]),{feed:e,setFeed:o,liveEntries:r,setLiveEntries:s,queuedMessages:a,setQueuedMessages:u,isCmdCodeBusy:l,setIsCmdCodeBusy:c,queuedMessagesRef:d}}function useKeyboard({showTasteConfig:e,showSkillsConfig:n,showSettingsConfig:o,showProviderSelector:r,showModelSelector:s,showEffortSelector:a,showMemorySelector:i,showMcpManager:l,showRewindSelector:c,showTreeSelector:d,showLoginOverlay:u,showUsageOverlay:m,showAddDirModal:p,showDesignGuide:g,authComponentInfo:h,setShowModelSelector:f,setStaticKey:y,showTasteSkipBanner:v,setShowTasteSkipBanner:S,showZdrNotice:w,setShowZdrNotice:k,modelNotice:C,setModelNotice:b,transcriptMode:T,setTranscriptMode:E,isCmdCodeBusy:P,liveEntries:M,queuedMessagesRef:I,setInput:A,setQueuedMessages:x,setFeed:R,setLiveEntries:L,setIsCmdCodeBusy:O,setRetryAttempt:D,setStatus:N,pendingExitKey:F,setPendingExitKey:_,pendingExitKeyRef:$,lastExitKeyTimeRef:U,exitConfirmationTimeoutRef:B,resetPendingExitKey:j,pendingPermission:W,setPendingPermission:H,pendingQuestion:G,setPendingQuestion:V,setShouldExit:K,sessionId:z,handleToggleAutoAccept:q,handleDoubleEscapeEmpty:Y,respondToPrompt:J,createErrorEntry:Q}){const X=__name(()=>{hO(z)?.cancelLoops().then(e=>{if(0===e)return;const n=1===e?"task":"tasks";R(o=>[...o,Zh(t("loopStoppedScheduledCancelled","Loop stopped · {{v0}} scheduled {{v1}} cancelled",{v0:e,v1:n}),{isGoalNotice:!0,goalNoticeKind:"cleared"})])})},"cancelLoopsAndNotify"),Z=__name(()=>{const e=getSandboxConnection();e?interruptSandboxTurn(e):interruptActiveTurn(),clearCommandGoalIfActive(z),X();const n=M.length>0;if(O(!1),D(null),L([]),N(Gv),!n){const e=Q(Hv);R(n=>[...n,e])}if(I.current.length>0){const e=I.current.filter(e=>!0!==e.isRelayed),n=I.current.filter(e=>!0===e.isRelayed);if(e.length>0){const n=formatQueuedMessagesForRequeue(e);A(e=>mergeRequeuedInput({queuedText:n,currentInput:e}))}x(n),I.current=n}},"handleInterrupt");at((M,I)=>{const x=getKeybindings();if(keybindingMatches(x,"app.permission.cycle",M,I)||""===M||I.meta&&"m"===M)return void q();if(v&&I.escape)return void S(!1);if(w&&I.escape)return void k(!1);if(C&&I.escape)return void b(null);if(isTodosManagerOpen())return void(F&&j());if(e||n||o||r||s||a||i||l||h||c||d||u||m||p||g)return void(F&&j());const R=""===M||I.ctrl&&"c"===M,L=isSandboxMode()&&isSandboxConnecting();if(R){if(P&&!L)return void Z();const e=Date.now(),n=e-U.current;return U.current=e,"ctrl-c"===$.current&&n<2e3?(B.current&&(clearTimeout(B.current),B.current=null),void K(!0)):(A(()=>""),$.current="ctrl-c",_("ctrl-c"),B.current&&clearTimeout(B.current),void(B.current=setTimeout(()=>{$.current=null,_(null),B.current=null},2e3)))}if(keybindingMatches(x,"app.tools.expand",M,I)){if(G?.params.planContent)return;return sN(),E("off"===T?"limited":"off"),void y(e=>e+1)}const O=isCtrlKey({inputChar:M,key:I,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:M,key:I,letter:"y",ctrlCode:25}),D=null!==W&&"function"==typeof W.params?.explain;if("off"!==T&&O&&!D)return sN(),E("limited"===T?"full":"limited"),void y(e=>e+1);if("off"===T&&getSessionTodos().length>0&&keybindingMatches(x,"app.todos.toggle",M,I))return void requestTodosManagerOpen();if(keybindingMatches(x,"app.model.select",M,I)||isAltP(M))return void f(!0);if(!I.escape)return;if("off"!==T)return sN(),E("off"),void y(e=>e+1);if(G)return G.reject(new Error("Question cancelled by user")),V(null),N(t("questionCancelled","Question cancelled")),hardResetForResize(),void y(e=>e+1);if(W)return J({label:"No, and tell Command Code what to do differently",value:"no",description:"Deny and provide feedback",scope:void 0}),W.resolve(!1),H(null),void N(t("permissionDenied","Permission denied"));if(P&&!L)return void Z();const z=L?getSandboxConnection():null;z?interruptSandboxTurn(z):X()})}function useHandlers({resume:e,feedState:n,onboarding:o,uiOverlays:r,exitState:s,pendingOps:a,permissionState:i,statusState:l,authState:c,sessionId:d,loadTasteStatus:u,loadCurrentProvider:m,setInput:p}){const g=ht(()=>{isSandboxMode()?n.setFeed(e=>[...e,Zh(t("permissionsAreBypassedInASandboxSessionTheModeCannotBeChangedHereYet","Permissions are bypassed in a cloud session; the mode cannot be changed here yet."))]):i.setPermissionMode(e=>{const n=cyclePermissionMode({current:e,disableBypass:hO(d)?.isBypassDisabled()??!0}),o=resolvePendingPromptOnModeChange(n,{pendingIsRisky:void 0!==a.pendingPermission?.params?.risk});return o&&a.pendingPermission&&("approve"===o&&i.respondToPrompt(nI),a.pendingPermission.resolve("approve"===o),a.setPendingPermission(null)),hO(d)?.setPermissionMode({mode:n}),n})},[i.setPermissionMode,i.respondToPrompt,a.pendingPermission,a.setPendingPermission,d]),h=ht(()=>{i.setPermissionMode(e=>{const n="bypass"===e?e:"auto-accept";return hO(d)?.setPermissionMode({mode:n}),n})},[i.setPermissionMode,d]),f=ht(()=>{const e=!n.isCmdCodeBusy&&!a.pendingPermission&&!a.pendingQuestion,o=(hO(d)?.listCheckpoints().length??0)>0;e&&o&&r.setShowRewindSelector(!0)},[n.isCmdCodeBusy,a.pendingPermission,a.pendingQuestion,r.setShowRewindSelector,d]),y=ht(n=>{o.setOnboardingComplete(!0),o.setShowTasteOnboarding(!1),o.setAutoLearnTaste(!1),n?.skipped&&r.setShowTasteSkipBanner(!0),e&&r.setShowSessionSelector(!0)},[e,o,r]),v=ht(async()=>{try{if(await initializeCommandProjectSessions(),o.setShowTrustPrompt(!1),e)return console.log(t("noConversationsFoundToResume","No conversations found to resume.")),void s.setShouldExit(!0);o.setProjectTrusted(!0),u(),m()}catch(e){console.error("Failed to initialize project:",e),o.setShowTrustPrompt(!1),s.setShouldExit(!0)}},[e,o,s,u,m]),S=ht(()=>{s.setShouldExit(!0)},[s.setShouldExit]);return useKeyboard({showTasteConfig:r.showTasteConfig,showSkillsConfig:r.showSkillsConfig,showSettingsConfig:r.showSettingsConfig,showProviderSelector:r.showProviderSelector,showModelSelector:r.showModelSelector,showEffortSelector:r.showEffortSelector,showMemorySelector:r.showMemorySelector,showMcpManager:r.showMcpManager,showRewindSelector:r.showRewindSelector,showTreeSelector:r.showTreeSelector,showLoginOverlay:r.showLoginOverlay,showUsageOverlay:r.showUsageOverlay,showAddDirModal:r.showAddDirModal,showDesignGuide:r.showDesignGuide,authComponentInfo:c.authComponentInfo,setShowModelSelector:r.setShowModelSelector,setStaticKey:r.setStaticKey,showTasteSkipBanner:r.showTasteSkipBanner,setShowTasteSkipBanner:r.setShowTasteSkipBanner,showZdrNotice:r.showZdrNotice,setShowZdrNotice:r.setShowZdrNotice,modelNotice:r.modelNotice,setModelNotice:r.setModelNotice,transcriptMode:r.transcriptMode,setTranscriptMode:r.setTranscriptMode,isCmdCodeBusy:n.isCmdCodeBusy,liveEntries:n.liveEntries,queuedMessagesRef:n.queuedMessagesRef,setInput:p,setQueuedMessages:n.setQueuedMessages,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setRetryAttempt:l.setRetryAttempt,setStatus:l.setStatus,pendingExitKey:s.pendingExitKey,setPendingExitKey:s.setPendingExitKey,pendingExitKeyRef:s.pendingExitKeyRef,lastExitKeyTimeRef:s.lastExitKeyTimeRef,exitConfirmationTimeoutRef:s.exitConfirmationTimeoutRef,resetPendingExitKey:s.resetPendingExitKey,pendingPermission:a.pendingPermission,setPendingPermission:a.setPendingPermission,pendingQuestion:a.pendingQuestion,setPendingQuestion:a.setPendingQuestion,setShouldExit:s.setShouldExit,sessionId:d,handleToggleAutoAccept:g,handleDoubleEscapeEmpty:f,respondToPrompt:i.respondToPrompt,createErrorEntry:sf}),{handleToggleAutoAccept:g,handleEnableAutoAccept:h,handleDoubleEscapeEmpty:f,handleTasteOnboardingComplete:y,handleTrust:v,handleNoTrust:S}}function runGit2(e){return S(e,{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:15e3,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}function warnAboutPromptTruncation(e){const n=e.trim().length;n<=kA||console.error(It.yellow(`Warning: prompt is ${n} characters; only the first ${kA} are sent.`))}function warnAboutLocalOnlyWork(e){e||console.error(It.yellow("Warning: local changes are not included (the cloud session works from the repo on GitHub)."))}function runSandboxStartPreflight(e){if(e.baseBranch&&!isValidSandboxBranchName(e.baseBranch))throw new Error("Invalid --base branch name.");warnAboutPromptTruncation(e.prompt);const n=validateSandboxGitRepo({run:__name(({command:e})=>runGit2(e),"run")});return warnAboutLocalOnlyWork(n.isClean),{repoUrl:n.repoUrl}}function createSandboxTransport(){const e=createApiClient({baseUrl:getApiBaseUrl(),timeout:3e5});return{post:__name(n=>e.post({endpoint:n.route,body:n.body}),"post"),get:__name(n=>e.get({endpoint:n.route}),"get")}}function deadlineFor(e){return"session/set_model"===e||"session/set_effort"===e?6e5:3e4}__name(testTurnChars,"testTurnChars"),__name(testTurnTickMs,"testTurnTickMs"),__name(makeInjectedTurnEntry,"makeInjectedTurnEntry"),__name(maybeStartInjectedTurns,"maybeStartInjectedTurns"),__name(useFeed,"useFeed"),Jt(),hL(),hL(),Jt(),hL(),__name(useKeyboard,"useKeyboard"),__name(useHandlers,"useHandlers"),Jt(),hL(),Jt(),hL(),Jt(),hL(),__name(runGit2,"runGit"),__name(warnAboutPromptTruncation,"warnAboutPromptTruncation"),__name(warnAboutLocalOnlyWork,"warnAboutLocalOnlyWork"),__name(runSandboxStartPreflight,"runSandboxStartPreflight"),Jt(),hL(),__name(createSandboxTransport,"createSandboxTransport"),__name(deadlineFor,"deadlineFor");var bG="Connecting to the cloud",TG="deadline";function withDeadline(e){return new Promise((n,o)=>{const r=setTimeout(()=>o(new Error(TG)),e.ms);e.promise.then(e=>{clearTimeout(r),n(e)},e=>{clearTimeout(r),o(e)})})}function isDeadline(e){return e instanceof Error&&e.message===TG}async function authHeaders(){const e=await getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env});if(!e)throw new Error(t("notAuthenticated","Not authenticated."));return{authorization:`Bearer ${e}`}}function isNotRunning(e){const n=e?.status;return 409===n}__name(withDeadline,"withDeadline"),__name(isDeadline,"isDeadline"),__name(authHeaders,"authHeaders"),__name(isNotRunning,"isNotRunning");var EG=__name(e=>new Promise(n=>setTimeout(n,e)),"sleep");async function openSandboxConnection(e){const n=createSandboxClient({transport:createSandboxTransport()});e.sessionId||e.onPhase?.("Creating a cloud session");const o=(e.sessionId?{sessionId:e.sessionId}:await startSession2({client:n,model:e.model,effort:e.effort,...e.baseBranch?{baseBranch:e.baseBranch}:{}})).sessionId,r=!e.sessionId,s={model:e.model,effort:e.effort};let a=await n.status({sessionId:o});"rpc"!==a.mode||isTerminalSandboxTaskStatus(a.status)&&!1===a.boxUp?(e.onPhase?.("Starting the cloud session"),await reopen({client:n,sessionId:o,...s})):e.sessionId&&e.onPhase?.(bG);const i=new Set,l=new Set,c=new Set,d=new Set,u=new Map,m=__name(()=>{const e=Date.now()-5e3;for(const[n,o]of u)o.sentAt>e||(o.reject(new Error(t("noAnswerFromTheSandboxEventsWereLost","No answer from the cloud session: events were lost."))),u.delete(n))},"failStalePending");let p=0;const g=`${process.pid}-${Date.now().toString(36)}`;let h=!1,f=0,y=new Set;const v=new Set,S=__name(()=>{f=Date.now(),O=Date.now();for(const e of[...v])e()},"markProcessUp"),w=__name(e=>new Promise(n=>{if(f>=e)return void n();const o=__name(()=>{clearTimeout(r),v.delete(o),n()},"wake"),r=setTimeout(o,2e3);v.add(o)}),"untilProcessUp"),k=__name(e=>{if("hello"===e.method){S();const n=e.params?.features;y=new Set(Array.isArray(n)?n.filter(e=>"string"==typeof e):[])}const n=e.id;if("string"==typeof n&&u.has(n))return u.get(n)?.resolve(e),void u.delete(n);if("string"==typeof e.method)for(const n of l)n(e)},"onRpcFrame"),C=__name(e=>{for(const[n,o]of u)o.reject(new Error(t("noAnswerFromTheSandbox","No answer from the cloud session: {{v0}}.",{v0:e}))),u.delete(n);for(const n of c)n(e)},"failWaiters"),b=__name(e=>{h||(T=null),C(e?t("theSandboxReported","the cloud session reported {{v0}}",{v0:e}):t("theStreamEnded","the stream ended"))},"settleEnd");let T=null,E=0,P=0,M=0;function attach(){M++;const n=streamSandboxTask({sessionId:o,isReattach:!0,...E>0?{lastEventId:E}:{},getBaseUrl:getApiBaseUrl,getAuthHeaders:authHeaders,maxReconnects:8,callbacks:{onAgentEvent:__name(({event:e})=>{for(const n of i)n(e)},"onAgentEvent"),onRpcFrame:__name(({frame:e})=>k(e),"onRpcFrame"),onGap:__name(()=>{m();for(const e of d)e();e.onGap?.()},"onGap"),onStatus:__name(({action:n})=>{O=Date.now(),"running"===n.type&&S(),"failed"===n.type&&(L=n.message,C(n.message)),e.onStatus?.(n)},"onStatus"),onErrorEvent:__name(({message:e})=>{L=e,C(e),S()},"onErrorEvent"),onDisconnected:__name(()=>e.onDisconnected?.(),"onDisconnected")}});return n.done.then(e=>{if(T!==n)return;const o=n.getLastEventId()>E;if(E=n.getLastEventId(),P=o?0:P+1,null===e&&!h&&P<=2)return T=null,void setTimeout(()=>{I()},1e3);b(e)},()=>{T===n&&(E=n.getLastEventId(),b(null))}),n}__name(attach,"attach");const I=__name(async()=>{if(h)return;const e=await n.status({sessionId:o}).catch(()=>null);e&&!1!==e.boxUp?await x().catch(()=>{}):b(null)},"reattachIfUp");let A=null;const x=__name(()=>T?Promise.resolve():(A||(A=(async()=>{a=await n.status({sessionId:o}),isTerminalSandboxTaskStatus(a.status)&&!1===a.boxUp&&(e.onPhase?.("Starting the cloud session"),L=null,await reopen({client:n,sessionId:o,...s}),E=0),T=attach(),await D()})().finally(()=>{A=null})),A),"ensureUp"),R=__name((e,n)=>{"session/set_model"===e&&"string"==typeof n.model&&(s.model=n.model,s.effort=void 0),"session/set_effort"===e&&"string"==typeof n.effort&&(s.effort=n.effort)},"remember");let L=null,O=Date.now();const D=__name(async()=>{const i=Date.now()+9e5;O=Date.now();let l=!1;for(;Date.now()-O<12e4&&Date.now()<i;){if(L)throw new Error(L);const i=`${g}:probe-${++p}`,c=Date.now(),d=new Promise((e,n)=>u.set(i,{resolve:e,reject:n,sentAt:Date.now()}));d.catch(()=>{});try{return await n.input({sessionId:o,frame:probeFrame(i)}),void await withDeadline({promise:d,ms:2e4})}catch(d){if(u.delete(i),!isNotRunning(d)&&!isDeadline(d))throw d;if(await w(c),L)throw new Error(L);if(a=await n.status({sessionId:o}),!1!==a.boxUp){!l&&!r&&Date.now()-O>45e3&&isTerminalSandboxTaskStatus(a.status)&&(l=!0,e.onPhase?.("Restarting the cloud session"),L=null,O=Date.now(),await n.continueTask({sessionId:o,prompt:"",mode:"rpc",restart:!0,...s.model?{model:s.model}:{},...s.effort?{effort:s.effort}:{}}),E=0,T?.detach(),T=attach());continue}if(L||l)throw new Error(L??t("theSandboxStoppedBeforeItsProcessWasReady","The cloud session stopped before it was ready."));l=!0,e.onPhase?.("Starting the cloud session"),await reopen({client:n,sessionId:o,...s}),O=Date.now(),E=0,T?.detach(),T=attach()}}throw new Error(t("sandboxStoppedReportingProgress","The cloud session stopped reporting progress while starting. Try again, or reopen it later."))},"waitReady"),N=__name(async({method:e,params:r})=>{await x();const s=`${g}:${++p}`,a={jsonrpc:"2.0",id:s,method:e,params:r??{}},i=new Promise((e,n)=>u.set(s,{resolve:e,reject:n,sentAt:Date.now()}));i.catch(()=>{});try{await n.input({sessionId:o,frame:a})}catch(e){if(!isNotRunning(e))throw u.delete(s),e;T&&(E=T.getLastEventId()),T?.detach(),T=null;try{await x(),await n.input({sessionId:o,frame:a})}catch(e){throw u.delete(s),e}}const l=setTimeout(()=>{const e=u.get(s);e&&(u.delete(s),e.reject(new Error(t("noAnswerFromTheSandboxItsAgentProcessIsNotResponding","No answer from the cloud session: its agent is not responding."))))},deadlineFor(e)),c=await i.finally(()=>clearTimeout(l));return void 0===c.error&&R(e,r??{}),c},"request");return T=attach(),await D(),{sessionId:o,summary:__name(()=>a,"summary"),request:N,onAgentEvent:__name(e=>(i.add(e),()=>i.delete(e)),"onAgentEvent"),onNotification:__name(e=>(l.add(e),()=>l.delete(e)),"onNotification"),onEnded:__name(e=>(c.add(e),()=>c.delete(e)),"onEnded"),onGap:__name(e=>(d.add(e),()=>d.delete(e)),"onGap"),streamNumber:__name(()=>M,"streamNumber"),supports:__name(e=>y.has(e),"supports"),close:__name(()=>{h=!0,T?.detach()},"close")}}function probeFrame(e){return{jsonrpc:"2.0",id:e,method:"session/state",params:{}}}async function startSession2(e){const n=runSandboxStartPreflight({prompt:"",...e.baseBranch?{baseBranch:e.baseBranch}:{}});return{sessionId:(await e.client.start({repoUrl:n.repoUrl,prompt:"",mode:"rpc",...e.baseBranch?{baseBranch:e.baseBranch}:{},...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{}})).sessionId}}async function reopen(e){const n=__name(()=>e.client.continueTask({sessionId:e.sessionId,prompt:"",mode:"rpc",...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{}}),"attempt");try{await n()}catch(e){if(!isNotRunning(e))throw e;await EG(3e3),await n()}}async function adoptRunningTurn(e){const{connection:n}=e,o=__name(o=>alignModel({connection:n,...o?{state:o}:{},...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{}}),"align"),r=await readState(n);return!0===r?.busy&&r.turnId?(setAdoptedTurn({turnId:r.turnId,afterward:__name(async()=>o((await readState(n))?.session),"afterward"),reload:e.reload}),!0):(await o(r?.session),!1)}async function readState(e){const n=await e.request({method:"session/state"}).catch(()=>null);return n?.result}async function alignModel(e){const{connection:n,state:o,model:r,effort:s}=e;if(o?.model&&r){if(o.model!==r){const e=await n.request({method:"session/set_model",params:{model:r}}).catch(()=>null);if(!e||e.error)return}s&&o.effort!==s&&await n.request({method:"session/set_effort",params:{effort:s}}).catch(()=>null)}}async function loadSandboxFeed(e){const n=createSandboxClient({transport:createSandboxTransport()}),{lines:o}=await n.transcript({sessionId:e.sessionId});return reconstructFeedFromMessages(displayMessagesFromV3Lines(o))}async function rebuildFeedAfterGap(e){let n=null;e.setFeed(e=>(n=e,e));const o=e.load??loadSandboxFeed,r=await o({sessionId:e.sessionId});e.setFeed(e=>e===n?r:e)}function resolveExternalModelChange(e){return"model"!==e.setting||"string"!=typeof e.value||0===e.value.length||e.value===e.currentModel?null:{modelId:e.value}}function raceAnswerAgainstAbort(e,n){return n?n.aborted?Promise.resolve("deny"):new Promise((o,r)=>{const s=__name(()=>o("deny"),"onAbort");n.addEventListener("abort",s,{once:!0}),e.then(e=>{n.removeEventListener("abort",s),o(e)},e=>{n.removeEventListener("abort",s),r(e)})}):e}function buildInteraction({permissionsService:e,permissionModeRef:n,setPendingQuestion:o,setStatus:r}){return{confirmTool:__name(async({toolName:o,input:r,description:s,risk:a,explain:i,signal:l})=>{if(!e)return"allow";if(l?.aborted)return"deny";const c=__name(e=>raceAnswerAgainstAbort(e.then(e=>e.allowed?"allow":"deny"),l),"withInterrupt"),d=buildToolPermissionRequest({toolName:o,input:r,description:s,...void 0!==a?{risk:a}:{},...void 0!==i?{explain:i}:{}});return"shell"===d.kind?c(e.requestShellPermission(d.request)):"generic"===d.kind?c(e.requestGenericPermission(d.request)):c(e.requestPermission(d.request,n.current))},"confirmTool"),askQuestion:__name(async e=>new Promise(n=>{o({params:{questions:e.questions.map(e=>({question:e.question,header:e.header??"",options:e.options.map(e=>({label:e.label,description:e.description??"",...void 0!==e.preview?{preview:e.preview}:{}})),multiSelect:e.multiSelect??!1})),hideCustomInput:e.hideCustomInput,exitPlanMode:e.exitPlanMode,enterPlanMode:e.enterPlanMode,planContent:e.planContent,planFilePath:e.planFilePath,compact:e.compact},resolve:__name(e=>{n({answers:e.answers.map(e=>({questionIndex:e.questionIndex,selectedOptions:[...e.selectedOptions],...void 0!==e.notes?{notes:e.notes}:{},...void 0!==e.preview?{preview:e.preview}:{},...e.images?.length?{images:e.images}:{}})),...e.disposition?{disposition:e.disposition}:{}})},"resolve"),reject:__name(()=>{n({answers:[]})},"reject")}),r(t("waitingForYourAnswer","Waiting for your answer…"))}),"askQuestion")}}function useHarness({sessionId:e,sessionLoaded:n,showSessionSelector:o,projectTrusted:s,permissionsService:a,permissionModeRef:i,setPermissionMode:l,permissionModeExplicit:c,dangerouslySkipPermissions:d,setPendingQuestion:u,setStatus:m,setFeed:p,queuedMessagesRef:g,setQueuedMessages:h,setInput:f,onSessionTitled:y,currentModel:v,setCurrentModel:S,setStaticKey:w,isCmdCodeBusy:k,setConnecting:C,onFatal:b}){const T=pt(v);T.current=v;const E=pt(null),P=pt(!1),M=pt(k);M.current=k;const I=ht(()=>{hardResetForResize(),w?.(e=>e+1)},[w]),A=ht(e=>{T.current=e,S?.(e),I()},[I,S]);gt(()=>{if(k)return;const e=E.current,n=P.current;E.current=null,P.current=!1,(null!==e||n)&&(null===e||e===T.current?n&&I():A(e))},[k,A,I]);const[x,R]=mt(!1),[L,O]=mt(0),D=pt(null),N=__name(()=>{D.current?.(),D.current=null},"releaseRebuildBarrier");gt(()=>onHarnessSessionRebuild(n=>{if(n===e)return new Promise(e=>{D.current?.(),D.current=e,O(e=>e+1)})}),[e]);const F=pt(i.current),_=pt(null);return gt(()=>{if(isSandboxMode()){N();let e=!1;return(async()=>{m?.(t("connectingToTheSandbox2","Connecting to the cloud")),setSandboxConnecting(!0),C?.(!0);const n=getRequestedSandboxSessionId();let o=n,r=!1;const s=await openSandboxConnectionOnce(()=>openSandboxConnection({sessionId:n,...getRequestedSandboxBase()?{baseBranch:getRequestedSandboxBase()??""}:{},...sandboxModelFor(v)?{model:sandboxModelFor(v)}:{},...sandboxEffortFor(v)?{effort:sandboxEffortFor(v)}:{},onPhase:__name(e=>{isSandboxConnecting()&&(r=e===bG,showConnectStep(e))},"onPhase"),onStatus:__name(e=>{"setup_step"!==e.type&&"replayed_setup"!==e.type||(m?.(e.message??t("startingTheSandbox","Starting the cloud session")),e.message&&isSandboxConnecting()&&showConnectStep(e.message)),"running"===e.type&&(m?.(yf()),r&&isSandboxConnecting()&&(clearConnectSteps(),showConnectStep(bG)))},"onStatus"),onGap:__name(()=>{const e=getSandboxConnection()?.sessionId??o;e&&p&&rebuildFeedAfterGap({sessionId:e,setFeed:p}).catch(()=>{})},"onGap")}));if(!e){if(o=s.sessionId,setSandboxConnection(s),g&&h&&p&&f&&wireSteerQueue({connection:s,queuedRef:g,setQueued:h,setFeed:p,setInput:f}),v&&!sandboxModelFor(v)&&p?.(e=>[...e,Zh(t("isACustomModelThisMachineServesTheSandboxRunsItsDefaultModelInstead","{{v0}} is a custom model this machine serves; the cloud session runs its default model instead.",{v0:v}))]),n){showConnectStep("Loading the conversation");const n=await loadSandboxFeed({sessionId:s.sessionId}).catch(()=>null);n&&!e&&p?.(()=>n)}await adoptRunningTurn({connection:s,...sandboxModelFor(v)?{model:sandboxModelFor(v)}:{},...sandboxEffortFor(v)?{effort:sandboxEffortFor(v)}:{},reload:__name(()=>loadSandboxFeed({sessionId:s.sessionId}).then(e=>p?.(()=>e)).catch(()=>{}),"reload")}),m?.(""),clearConnectSteps(),p?.(e=>[...e,Zh(`Connected to cloud (${s.summary().repoUrl.replace("https://github.com/","")}, branch ${s.summary().branch??"?"})\n Session ${s.sessionId}`)]),setSandboxConnecting(!1),C?.(!1),R(!0)}})().catch(n=>{e||(setSandboxConnecting(!1),m?.(""),clearConnectSteps(),C?.(!1),p?.(e=>[...e,sf(t("sandbox","Cloud: {{v0}}",{v0:n instanceof Error?n.message:String(n)}))]),setTimeout(()=>b?.(),400))}),()=>{e=!0}}if(!s||o)return void N();const n=__name(()=>Boolean(c)||i.current!==F.current,"userChoseMode");let S,w,k=!1;return(async()=>{const o=consumeStartupSessionOverrides(),{persist:s}=getStickyStartupSessionOptions(),c=await loadResumeAgentState({sessionId:e,...o.sessionFilePath?{baseDir:r(o.sessionFilePath)}:{}});if(k)return;const f=__name(()=>{const e=g?.current??[];if(0===e.length)return[];const n=e.filter(e=>!0!==e.isRelayed),o=e.filter(e=>!0===e.isRelayed);return 0===n.length?[]:(g&&(g.current=o),h?.(()=>o),p?.(e=>[...e,...n.flatMap(e=>{if(e.isMeta)return[];const n=Xh(e.displayMessage??e.input);return e.ideHint&&(n.metadata={ideHint:e.ideHint}),[n]})]),n.map(e=>{const n=e.ideContext?`${e.ideContext}\n\n${e.input}`:e.input;return e.images&&0!==e.images.length?{input:[...clipboardImagesToUserContent(e.images),{type:"text",text:n}],...e.source?{source:e.source}:{}}:{input:n,...e.source?{source:e.source}:{}}}))},"drainQueuedMessages"),v=await loadCommandModHost(),C=await gO({sessionId:e,baseUrl:getApiBaseUrl(),...n()?{permissionMode:i.current}:{},dangerouslySkipPermissions:d,drainQueuedMessages:f,peekQueuedMessageCount:__name(()=>(g?.current??[]).filter(e=>!0!==e.isRelayed).length,"peekQueuedMessageCount"),interaction:buildInteraction({permissionsService:a,permissionModeRef:i,setPendingQuestion:u,setStatus:m}),requestSlashCommand:__name(({command:n})=>{const o=refuseAgentSlashCommand(n);return o?{status:"unavailable",message:o}:(enqueueAgentSlashCommand({sessionId:e,command:n}),{status:"accepted"})},"requestSlashCommand"),resumeState:c,modHost:v,...void 0!==s?{persist:s}:{},...o.sessionFilePath?{sessionFilePath:o.sessionFilePath}:{},ideBridge:createLocalIdeBridge()}).catch(()=>{});if(N(),k||!C)return;o.name&&C.setSessionName(o.name),C.getPermissionMode()!==i.current&&(n()?C.setPermissionMode({mode:i.current}):(i.current=C.getPermissionMode(),l?.(C.getPermissionMode())));const b=C.getModel(),x=b!==T.current;x&&A(b),x||C.getEffort()===getReasoningEffort(b)||I(),v&&p&&(v.setEntrySink(e=>{p(n=>[...n,Zh(e.join("\n"))])}),w=__name(()=>v.setEntrySink(void 0),"clearModEntrySink")),S=C.events.subscribe(e=>{if("session_titled"===e.type)return void y?.(e.title);if("permission_mode_changed"===e.type)return i.current=e.mode,void l?.(e.mode);if("config_setting_changed"===e.type){if("theme"===e.setting&&"string"==typeof e.value&&isCliTheme(e.value)&&applyTuiTheme(resolveCliTheme(e.value)),"effort"===e.setting)return void(M.current?P.current=!0:I());const n=resolveExternalModelChange({setting:e.setting,value:e.value,currentModel:T.current});return void(n&&(M.current?E.current=n.modelId:A(n.modelId)))}if("subagent_stop"===e.type){if(!p)return;return void p(n=>settleBackgroundAgentRow({entries:n,toolCallId:e.toolCallId,tokensUsed:e.tokensUsed,...e.status?{status:e.status}:{}}))}if("notice"!==e.type||!p)return;const n=tasteNoticeToFeedEntry(e);n?p(e=>[...e,n]):M.current||p(n=>[...n,Zh(e.message,{noticeLevel:e.level})])}),R(!0),_.current!==e&&(_.current=e,C.fireSessionStartHooks({source:consumeNextSessionStartSource()}).then(e=>{if(k||0===e.hooksRun||!p)return;const n=1===e.hooksRun?"":"s",o=[t("ranSessionStartHook","Ran {{v0}} session start hook{{v1}}",{v0:e.hooksRun,v1:n}),...e.systemMessage?e.systemMessage.split("\n"):[]];p(e=>[...e,Zh(o.join("\n"))])}).catch(()=>{}))})(),()=>{k=!0,S?.(),w?.()}},[e,n,o,s,a,i,l,c,d,u,m,S,A,L,I]),{ready:x}}function useLifecycle({exit:e,feedState:n,exitState:o,statusState:r,authState:s,onboarding:a,uiOverlays:i,skipOnboarding:l,sessionId:c,sessionTitleHolder:d}){gt(()=>{o.shouldExit&&(isSandboxMode()&&getSandboxConnection()?.close(),r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),o.exitConfirmationTimeoutRef.current&&clearTimeout(o.exitConfirmationTimeoutRef.current),s.providerNotificationTimer.current&&clearTimeout(s.providerNotificationTimer.current),s.modelNotificationTimer.current&&clearTimeout(s.modelNotificationTimer.current),releaseRemoteLockSync(),d&&(d.loadTitle=()=>loadCommandUserRenamedTitle({sessionId:c}),d.sessionId=c),(async()=>{try{await Promise.allSettled([shutdownActiveRemote(),disconnectAllMcpServers(),yO()])}catch{}try{e()}catch{process.exit(0)}})())},[o.shouldExit,e]),gt(()=>()=>{r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),o.exitConfirmationTimeoutRef.current&&clearTimeout(o.exitConfirmationTimeoutRef.current),s.providerNotificationTimer.current&&clearTimeout(s.providerNotificationTimer.current),s.modelNotificationTimer.current&&clearTimeout(s.modelNotificationTimer.current)},[]),gt(()=>{(async()=>{await loadCustomProviderModels();const e=await checkOAuthSetupRequired({currentProvider:s.currentProvider,isByokModel:isByok({model:s.currentModel}),providerAuthHeaders:providerAuthHeaders});e&&r.setStatus(e)})()},[s.currentProvider,s.currentModel]),gt(()=>{if(!n.isCmdCodeBusy)return void(r.pinnedStatusRef.current=!1);if(null!==r.retryAttempt)return;const e=setInterval(()=>{r.pinnedStatusRef.current||r.setStatus(yf())},Pf);return()=>clearInterval(e)},[n.isCmdCodeBusy,r.retryAttempt]),gt(()=>{l||isSandboxMode()||triggerTasteOnboarding({projectTrusted:a.projectTrusted,onboardingComplete:a.onboardingComplete,isOnboardingMode:a.showTasteOnboarding,tasteOnboardingCheckedRef:a.tasteOnboardingCheckedRef,setIsOnboardingMode:a.setShowTasteOnboarding})},[a.projectTrusted,a.onboardingComplete,a.showTasteOnboarding,l]),gt(()=>{if(a.showTasteOnboarding&&!a.tasteOnboardingEntryId){const e=af();a.setTasteOnboardingEntryId(e.id),n.setFeed(n=>[...n,e])}!a.showTasteOnboarding&&a.tasteOnboardingEntryId&&(n.setFeed(e=>e.filter(e=>e.id!==a.tasteOnboardingEntryId)),a.setTasteOnboardingEntryId(null))},[a.showTasteOnboarding,a.tasteOnboardingEntryId])}async function handleCompactModeSelect({mode:e,setShowCompactModeSelector:n,setStatus:o}){try{await setCompactMode({mode:e}),n(!1),o(buildCompactModeStatusMessage(e))}catch{o(translateUiCopy(ms)),n(!1)}}function handleCompactModeCancel({setShowCompactModeSelector:e}){e(!1)}__name(openSandboxConnection,"openSandboxConnection"),__name(probeFrame,"probeFrame"),__name(startSession2,"startSession"),__name(reopen,"reopen"),Jt(),__name(adoptRunningTurn,"adoptRunningTurn"),__name(readState,"readState"),__name(alignModel,"alignModel"),Jt(),hL(),__name(loadSandboxFeed,"loadSandboxFeed"),__name(rebuildFeedAfterGap,"rebuildFeedAfterGap"),Jt(),__name(resolveExternalModelChange,"resolveExternalModelChange"),Jt(),__name(raceAnswerAgainstAbort,"raceAnswerAgainstAbort"),__name(buildInteraction,"buildInteraction"),__name(useHarness,"useHarness"),Jt(),hL(),__name(useLifecycle,"useLifecycle"),Jt(),hL(),Jt(),hL(),__name(handleCompactModeSelect,"handleCompactModeSelect"),__name(handleCompactModeCancel,"handleCompactModeCancel");var PG=__name(e=>{},"noopBool");function useMainActionCallbacks({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,permissionState:a,setInput:i}){const l=pt({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,permissionState:a,setInput:i});l.current={feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,permissionState:a,setInput:i};const c=ht(e=>{const{feedState:n,sessionState:o,statusState:r,uiOverlays:s,authState:a}=l.current;handleSelectSession({selectedSessionId:e,previousSessionId:o.sessionId,sessionLoadIdRef:o.sessionLoadIdRef,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,setSessionId:o.setSessionId,setShowSessionSelector:s.setShowSessionSelector,setSessionLoaded:o.setSessionLoaded,setStaticKey:s.setStaticKey,setShareInfo:r.setShareInfo,setCurrentModel:a.setCurrentModel,inTuiResume:!0})},[]),d=ht(({messageId:e,mode:n})=>{const{feedState:o,sessionState:r,statusState:s,uiOverlays:a,setInput:i}=l.current;handleRewindSelect({messageId:e,mode:n,sessionId:r.sessionId,setFeed:o.setFeed,setStatus:s.setStatus,setShowRewindSelector:a.setShowRewindSelector,setStaticKey:a.setStaticKey,setInput:i})},[]),u=ht(()=>{handleRewindCancel({setShowRewindSelector:l.current.uiOverlays.setShowRewindSelector})},[]),m=ht(e=>{const{feedState:n,sessionState:o,uiOverlays:r,setInput:s}=l.current;return handleTreeSelect({...e,sessionId:o.sessionId,setFeed:n.setFeed,setShowTreeSelector:r.setShowTreeSelector,setStaticKey:r.setStaticKey,setInput:s})},[]),p=ht(()=>{handleTreeCancel({setShowTreeSelector:l.current.uiOverlays.setShowTreeSelector})},[]),g=ht(e=>{const{feedState:n,sessionState:o}=l.current;handleTreeLabel({...e,sessionId:o.sessionId,setFeed:n.setFeed})},[]),h=ht(()=>{handleTreeAbortSummary({sessionId:l.current.sessionState.sessionId})},[]),f=ht((e,n)=>{const{feedState:o,statusState:r,uiOverlays:s}=l.current;handleLoginComplete({success:e,message:n,setShowLoginOverlay:s.setShowLoginOverlay,setFeed:o.setFeed,setStatus:r.setStatus})},[]),y=ht(()=>{const{feedState:e,statusState:n,uiOverlays:o}=l.current;handleLoginCancel({setShowLoginOverlay:o.setShowLoginOverlay,setFeed:e.setFeed,setStatus:n.setStatus})},[]),v=__name(e=>{const n=l.current.authState.currentModel;if(dlog("[LaneSwitch] autoSwitchModelForLane",{provider:e,model:n}),laneServesModel({activeLane:e,modelId:n}))return;const o=defaultModelForLane({activeLane:e});dlog("[LaneSwitch] fallback",{fallback:o}),o&&C(o,e)},"autoSwitchModelForLane"),S=ht(e=>{const{authState:n,sessionState:o,statusState:r,uiOverlays:s}=l.current;handleProviderSelect({provider:e,setCurrentProvider:n.setCurrentProvider,setShowProviderSelector:s.setShowProviderSelector,setAuthComponentInfo:n.setAuthComponentInfo,setStatus:r.setStatus,setShowProviderNotification:n.setShowProviderNotification,providerNotificationTimer:n.providerNotificationTimer,setShowModelSelector:s.setShowModelSelector,sessionId:o.sessionId,onActiveModelOrphaned:__name(async()=>{{const e=await w();dlog("[LaneSwitch] orphaned → lane default",{fallback:e}),clearModelOverride(),setSessionModel(e),await persistDefaultModel({model:e});const n=l.current.sessionState.sessionId;n&&await saveCommandSessionMeta({sessionId:n,meta:{model:e}}),l.current.authState.setCurrentModel(e),l.current.uiOverlays.setStaticKey(e=>e+1)}},"onActiveModelOrphaned"),onDiskDefaultOrphaned:__name(async()=>{await persistDefaultModel({model:await w()})},"onDiskDefaultOrphaned")}).then(({switched:n})=>{n&&v(e)})},[]),w=__name(async()=>{const e=l.current.authState.currentProvider??await getConfiguredProvider()??qr.COMMAND;return e===qr.COMMAND?wn:defaultModelForLane({activeLane:e})??wn},"resolveOrphanFallback"),k=ht(()=>{handleProviderCancel({setShowProviderSelector:l.current.uiOverlays.setShowProviderSelector})},[]),C=ht((e,n)=>{const{authState:o,sessionState:r,statusState:s,uiOverlays:a,feedState:i}=l.current;handleModelSelect({modelId:e,provider:n,setCurrentModel:o.setCurrentModel,setShowModelSelector:a.setShowModelSelector,setStatus:s.setStatus,modelNotificationTimer:o.modelNotificationTimer,setShowModelNotification:PG,setCurrentProvider:o.setCurrentProvider,setStaticKey:a.setStaticKey,sessionId:r.sessionId,setFeed:i.setFeed,setContextUsage:s.setContextUsage,setModelNotice:a.setModelNotice})},[]),b=ht(()=>{handleModelCancel({setShowModelSelector:l.current.uiOverlays.setShowModelSelector})},[]),T=ht(e=>{const{statusState:n,uiOverlays:o}=l.current;handleCompactModeSelect({mode:e,setShowCompactModeSelector:o.setShowCompactModeSelector,setStatus:n.setStatus})},[]),E=ht(()=>{handleCompactModeCancel({setShowCompactModeSelector:l.current.uiOverlays.setShowCompactModeSelector})},[]),P=ht(e=>{const{statusState:n,uiOverlays:o}=l.current;handleThemeSelect({theme:e,setShowThemeSelector:o.setShowThemeSelector,setStatus:n.setStatus,setStaticKey:o.setStaticKey})},[]),M=ht(()=>{handleThemeCancel({setShowThemeSelector:l.current.uiOverlays.setShowThemeSelector})},[]),I=ht(e=>{const{statusState:n,uiOverlays:o}=l.current;handleLanguageSelect({locale:e,setShowLanguageSelector:o.setShowLanguageSelector,setStatus:n.setStatus})},[]),A=ht(()=>{handleLanguageCancel({setShowLanguageSelector:l.current.uiOverlays.setShowLanguageSelector})},[]),x=ht(e=>{const{feedState:n,uiOverlays:o,sessionState:r,permissionState:s}=l.current;o.setShowRcSelector(!1);const a={setFeed:n.setFeed,setShowRcSelector:o.setShowRcSelector,sessionId:r.sessionId,permissionModeRef:s.permissionModeRef,setPermissionMode:s.setPermissionMode};"stop"!==e.kind?startRemote(a,e.mode,{provider:e.provider,takeover:e.takeover}):stopRemote(a,{clearChat:e.clearChat})},[]),R=ht(()=>{l.current.uiOverlays.setShowRcSelector(!1)},[]),L=ht(()=>{const{authState:e,sessionState:n,statusState:o,uiOverlays:r}=l.current;handleAuthSuccess({authComponentInfo:e.authComponentInfo,setAuthComponentInfo:e.setAuthComponentInfo,setShowProviderSelector:r.setShowProviderSelector,setCurrentProvider:e.setCurrentProvider,setStatus:o.setStatus,setShowProviderNotification:e.setShowProviderNotification,providerNotificationTimer:e.providerNotificationTimer,sessionId:n.sessionId}).then(({switchedProvider:e})=>{e&&v(e)})},[]),O=ht(()=>{handleAuthCancel({setAuthComponentInfo:l.current.authState.setAuthComponentInfo})},[]);return{onSelectSession:c,onRewindSelect:d,onRewindCancel:u,onTreeSelect:m,onTreeCancel:p,onTreeLabel:g,onTreeAbortSummary:h,onLoginComplete:f,onLoginCancel:y,handleProviderSelect:S,handleProviderCancel:k,handleModelSelect:C,handleModelCancel:b,handleCompactModeSelect:T,handleCompactModeCancel:E,handleThemeSelect:P,handleThemeCancel:M,handleLanguageSelect:I,handleLanguageCancel:A,handleRcSelect:x,handleRcCancel:R,handleAuthSuccess:L,handleAuthCancel:O}}function useMonitorOutputWakeup({onSubmit:e}){const n=pt(e);gt(()=>{n.current=e},[e]),gt(()=>{const e=subscribeMonitorCheck(e=>{n.current(buildMonitorWakeupSubmission(e))});return()=>{e()}},[])}function useOnboarding(){const[e,n]=mt(!1),[o,r]=mt(!1),[s,a]=mt(!0),[i,l]=mt(!1),[c,d]=mt(!1),[u,m]=mt(null),[p,g]=mt(!1);return{showTrustPrompt:e,setShowTrustPrompt:n,projectTrusted:o,setProjectTrusted:r,checkingProject:s,setCheckingProject:a,showTasteOnboarding:i,setShowTasteOnboarding:l,onboardingComplete:c,setOnboardingComplete:d,tasteOnboardingEntryId:u,setTasteOnboardingEntryId:m,autoLearnTaste:p,setAutoLearnTaste:g,tasteOnboardingCheckedRef:pt(!1)}}function usePendingOps(){const[e,n]=mt(null),[o,r]=mt(null);return{pendingPermission:e,setPendingPermission:n,pendingQuestion:o,setPendingQuestion:r}}function resolvePermissionSettingsPath(e){return n.join(e.projectRoot,".commandcode",e.local?"settings.local.json":"settings.json")}__name(useMainActionCallbacks,"useMainActionCallbacks"),Jt(),hL(),__name(useMonitorOutputWakeup,"useMonitorOutputWakeup"),Jt(),__name(useOnboarding,"useOnboarding"),Jt(),__name(usePendingOps,"usePendingOps"),Jt(),hL(),Jt(),hL(),__name(resolvePermissionSettingsPath,"resolvePermissionSettingsPath");var MG=__name((e={})=>{const{projectRoot:n,local:o=!1,onGenericPermissionRequest:r,onPermissionRequest:s,onPermissionResponse:a,onShellPermissionRequest:i}=e,l=n||process.cwd(),c=pt({onGenericPermissionRequest:r,onPermissionRequest:s,onPermissionResponse:a,onShellPermissionRequest:i}),[d,u]=mt(null),m=pt(null),[p,g]=mt(null),[h,f]=mt(!1);return gt(()=>{c.current={onGenericPermissionRequest:r,onPermissionRequest:s,onPermissionResponse:a,onShellPermissionRequest:i}},[r,s,a,i]),gt(()=>{const e=resolvePermissionSettingsPath({projectRoot:l,local:o}),n=createPermissionsService(l,{configPath:e});return m.current=createPermissionPromptBridge({service:n,onFileRequest:__name(e=>{g(e),f(!0),c.current.onPermissionRequest?.(e)},"onFileRequest"),onShellRequest:__name(e=>{g(e),f(!0),c.current.onShellPermissionRequest?.(e)},"onShellRequest"),onGenericRequest:__name(e=>{g(e),f(!0),c.current.onGenericPermissionRequest?.(e)},"onGenericRequest")}),u(n),()=>{n.removeAllListeners(),m.current=null}},[o,l]),{requestPermission:ht(async e=>{if(!d)return{allowed:!0};const n=await d.requestPermission(e);return c.current.onPermissionResponse?.(n),n},[d]),requestShellPermission:ht(async e=>{if(!d)return{allowed:!0};const n=await d.requestShellPermission(e);return c.current.onPermissionResponse?.(n),n},[d]),requestGenericPermission:ht(async e=>{if(!d)return{allowed:!0};const n=await d.requestGenericPermission(e);return c.current.onPermissionResponse?.(n),n},[d]),respondToPrompt:ht(e=>{m.current?.respond(e)&&(g(null),f(!1))},[]),clearSessionPermissions:ht(()=>{d?.clearSessionPermissions()},[d]),clearProjectPermissions:ht(()=>{d?.clearProjectPermissions()},[d]),setAutoApprove:ht((e,n)=>{d?.setAutoApprove(e,n)},[d]),setEnabled:ht(e=>{d?.setEnabled(e)},[d]),currentRequest:p,isPrompting:h,service:d}},"usePermissions");function usePermissionMode({initialPermissionMode:e,local:n=!1,dangerouslySkipPermissions:o=!1,setPendingPermission:r,setStatus:s}){const[a,i]=mt(()=>e||(o?"bypass":"default")),l=pt(a);gt(()=>{l.current=a},[a]);const{requestShellPermission:c,service:d,respondToPrompt:u,clearSessionPermissions:m,setEnabled:p}=MG({projectRoot:process.cwd(),local:n,onPermissionRequest:__name(e=>{r({toolName:getFileActionToolName(e.action),params:e,resolve:__name(e=>{},"resolve")}),s(t("waitingForFileEditPermission","Waiting for file edit permission..."))},"onPermissionRequest"),onShellPermissionRequest:__name(e=>{r({toolName:"shell_command",params:e,resolve:__name(e=>{},"resolve")}),s(t("waitingForShellCommandPermission","Waiting for shell command permission..."))},"onShellPermissionRequest"),onGenericPermissionRequest:__name(e=>{r({toolName:e.toolName,params:e,resolve:__name(e=>{},"resolve")}),s(t("waitingForToolPermission","Waiting for tool permission..."))},"onGenericPermissionRequest"),onPermissionResponse:__name(e=>{e.allowed?s(t("permissionGranted","Permission granted")):s(t("permissionDenied","Permission denied"))},"onPermissionResponse")});return gt(()=>{d&&applyAutoAcceptMode({enabled:a,service:d})},[a,d]),{permissionMode:a,setPermissionMode:i,permissionModeRef:l,permissionsService:d,respondToPrompt:u,clearSessionPermissions:m,dangerouslySkipPermissions:o}}function useQueuedMessageFlush({isCmdCodeBusy:e,queuedMessages:n,queuedMessagesRef:o,setQueuedMessages:r,isSubmittingRef:s,onSubmit:a}){const i=pt(a);gt(()=>{i.current=a},[a]);const l=n.some(e=>!e.sentToSandbox);gt(()=>{if(!l||e)return;const n=setInterval(()=>{if(s.current)return;const e=o.current.find(e=>!e.sentToSandbox);e&&(r(e=>{const n=e.findIndex(e=>!e.sentToSandbox);return-1===n?e:[...e.slice(0,n),...e.slice(n+1)]}),i.current({role:"user",input:e.input,...void 0!==e.displayMessage?{displayMessage:e.displayMessage}:{},...void 0!==e.isAutomated?{isAutomated:e.isAutomated}:{},...void 0!==e.isMeta?{isMeta:e.isMeta}:{},...void 0!==e.source?{source:e.source}:{},...void 0!==e.isRelayed?{isRelayed:e.isRelayed}:{},...void 0!==e.hiddenMessages?{hiddenMessages:e.hiddenMessages}:{},...void 0!==e.ideContext?{ideContext:e.ideContext}:{},...void 0!==e.ideHint?{ideHint:e.ideHint}:{},...e.images&&e.images.length>0?{images:e.images.map(e=>({...e}))}:{}}))},250);return()=>clearInterval(n)},[l,e,s,o,r])}__name(usePermissionMode,"usePermissionMode"),Jt(),__name(useQueuedMessageFlush,"useQueuedMessageFlush"),Jt(),hL(),Jt(),hL();var IG=__name(()=>({shell_command:t("runACommand","Run a command"),kill_shell:t("killARunningProcess","Kill a running process"),edit_file:t("editAFile","Edit a file"),write_file:t("writeAFile","Write a file"),read_file:t("readAFile","Read a file"),read_directory:t("listADirectory","List a directory"),web_fetch:t("fetchAUrl","Fetch a URL"),web_search:t("searchTheWeb","Search the web")}),"ACTION_LABELS");function actionLabel(e){return IG()[e]??kS[e]??e}__name(actionLabel,"actionLabel");var AG=__name(e=>e.length>500?`${e.slice(0,500)}…`:e,"clip"),xG=__name(e=>"string"==typeof e&&""!==e.trim()?e:void 0,"asText");function isRedundantDescription(e,n){return!!e.startsWith("Execute shell command:")||void 0!==n&&(e===n||e.includes(n))}__name(isRedundantDescription,"isRedundantDescription");var RG=__name(e=>"object"==typeof e&&null!==e?e:{},"fieldsOf"),LG=__name(e=>{const n=RG(e).risk;if(void 0===n)return{flagged:!1};const o=xG(RG(n).detail);return void 0===o?{flagged:!0}:{flagged:!0,detail:o}},"riskOf");function describePrompt(e){const n=RG(e.params),o=xG(n.command)??xG(n.filePath),r=xG(n.description),s=r&&isRedundantDescription(r,o)?void 0:r,a=LG(e.params);return[t("approve2","⏸ **Approve?**"),"",actionLabel(e.toolName),...o?["",`\`\`\`\n${AG(o)}\n\`\`\``]:[],...s?[s]:[],...a.flagged?["",`⚠️ ${a.detail??"flagged as risky"}`]:[]].join("\n")}__name(describePrompt,"describePrompt"),Jt();var OG=__name((e,n)=>e.length>n?`${e.slice(0,n-1)}…`:e,"clip");function buildQuestionMessage(e){const{question:n}=e,o=[e.position?t("of2","❓ **{{v0}}** ({{v1}} of {{v2}})",{v0:n.header??"Question",v1:e.position.index,v2:e.position.total}):`❓ **${n.header??"Question"}**`,"",n.question,""],r=[];return n.options.forEach((n,s)=>{const a=s+1;o.push(n.description?`${a}. ${n.label}: ${OG(n.description,120)}`:`${a}. ${n.label}`),r.push({text:`${a}. ${OG(n.label,40)}`,data:encodeQuestionCallback({id:e.id,questionIndex:e.questionIndex,optionIndex:s})})}),n.multiSelect&&o.push("",t("pickOneHereOrAnswerAtTheTerminalForSeveral","Pick one here, or answer at the terminal for several.")),{text:o.join("\n"),buttons:r.map(e=>[e])}}function planStreamTarget(e){return e?.isOpen()&&e.hasEvents()?"follow":"replace"}function planRemoteMessage(e){const n=planStreamTarget(e);return"follow"===n?{target:n,note:t("queuedItGoesInAfterTheAnswerAbove","⏳ Queued. It goes in after the answer above.")}:{target:n}}__name(buildQuestionMessage,"buildQuestionMessage"),Jt(),__name(planStreamTarget,"planStreamTarget"),__name(planRemoteMessage,"planRemoteMessage"),Jt(),hL();var DG=__name((e,n)=>e.length>n?`${e.slice(0,n-1)}…`:e,"clip");function summarizeToolCall(e){const n=Sf(e.toolName);let o="";try{o=Cf(e.toolName,e.input)}catch{o=""}return{header:o?`${n} [${DG(o.replace(/\s+/g," ").trim(),90)}]`:n}}__name(summarizeToolCall,"summarizeToolCall");var NG=__name(e=>"object"==typeof e&&null!==e,"isRecord");function textOfType(e,n){if(!Array.isArray(e))return[];const o=[];for(const r of e)NG(r)&&r.type===n&&"string"==typeof r.value&&o.push(r.value);return o}__name(textOfType,"textOfType");var FG=__name(e=>textOfType(e,"text").join("\n"),"resultText"),_G=__name(e=>textOfType(e,"error-text").join("\n").split("\n").map(e=>e.trimEnd()).filter(e=>""!==e),"errorText"),$G=__name(e=>t("line2","{{v0}} line{{v1}}",{v0:e,v1:1===e?"":"s"}),"countLabel");function summarizeToolResult(e){const n=_G(e.result);if(n.length>0)return{header:"",lines:n.map(e=>DG(e,100))};const o=FG(e.result).split("\n").map(e=>e.trimEnd()).filter(e=>""!==e);return 0===o.length?{header:""}:{header:"",suffix:$G(o.length)}}__name(summarizeToolResult,"summarizeToolResult");var UG=__name(e=>({describeTool:actionLabel,summarizeCall:summarizeToolCall,summarizeResult:summarizeToolResult,..."Discord"===e?{formatStatus:kU}:{}}),"replyStreamOptions"),BG=__name(e=>e.length>300?`${e.slice(0,300)}…`:e,"clipEcho"),jG={label:"No",value:"no",description:"Deny this action",scope:void 0};async function requestModelSwitch(e){const n=XL(e.modelId),o=await getBillingContext(),r=checkModelAccess({model:{id:e.modelId,name:n},planId:o.planId,purchasedCredits:o.purchasedCredits,freeCredits:o.freeCredits});return r.allowed?(enqueueAgentSlashCommand({sessionId:e.sessionId,command:`/model ${e.modelId}`,source:"remote"}),{switched:!0,message:t("switchingTo","Switching to {{v0}}.",{v0:n})}):{switched:!1,message:r.errorMessage??t("isNotOnYourPlan","{{v0}} is not on your plan.",{v0:n})}}function describeSession(){const e=getActiveRemote(),n=e?`${modeLabel(e.mode)} — ${modeBehaviour(e.mode)}`:t("notConnected2","not connected");return("Discord"===e?.platform?bU:eB)({info:sessionInfo(),mode:n})}async function applyRemoteValue(e){if("model"===e.name){const n=GL(e.value);return n?(await requestModelSwitch({sessionId:e.sessionId,modelId:n})).message:t("unknownModelSendModelForTheList",'Unknown model "{{v0}}". Send /model for the list.',{v0:e.value})}const n=Qj(e.name),o=n?.reject?.(e.value);return o||(enqueueAgentSlashCommand({sessionId:e.sessionId,command:`/${e.name} ${e.value}`.trim(),source:"remote"}),t("setTo","Set {{v0}} to {{v1}}.",{v0:e.name,v1:e.value}))}async function runRemoteCommand({command:e,chatId:n,sessionId:o,bridge:r}){if("stop"===e.kind)return interruptActiveTurn(),void r.sendNote(n,t("interrupted2","Interrupted."));if("help"===e.kind)return void r.sendNote(n,buildRemoteHelp());if("status"===e.kind)return void r.sendNote(n,describeSession());const s=Qj(e.name);if(s){if(""===e.argument){const e=await s.menu();return Zj(s.name)||enqueueAgentSlashCommand({sessionId:o,command:`/${s.name}`,source:"remote"}),void r.sendChoices({chatId:n,text:e.text,buttons:e.buttons})}r.sendNote(n,await applyRemoteValue({sessionId:o,name:s.name,value:e.argument}))}else r.sendNote(n,t("doesnTWorkFromTheChatSendHelpForWhatDoesOrSendItWithoutTheSlashToMakeItAPrompt","/{{v0}} doesn't work from the chat. Send /help for what does, or send it without the slash to make it a prompt.",{v0:e.name}))}function answerPermission(e,n,o){const r=e.prompts.get(o.id);if(!r||r!==e.livePermission)return e.prompts.delete(o.id),n.acknowledge(t("thatPromptIsNoLongerWaiting","That prompt is no longer waiting.")),void n.dismiss();e.prompts.delete(o.id),e.respondToPrompt(o.allow?nI:jG),r.resolve(o.allow),e.clearPendingPermission(),n.acknowledge(o.allow?t("approved2","Approved"):t("denied","Denied")),n.dismiss()}function answerQuestion(e,n,o){const r=e.questions.get(o.id),s=r?.pending.params.questions[o.questionIndex],a=s?.options[o.optionIndex];if(!r||!a||r.pending!==e.liveQuestion)return e.questions.delete(o.id),n.acknowledge(t("thatQuestionIsAlreadyAnswered","That question is already answered.")),void n.dismiss();r.answers.set(o.questionIndex,a.label),n.acknowledge(a.label),n.dismiss();const i=r.pending.params.questions.length-r.answers.size;i>0?e.bridge.sendNote(n.chatId,t("notedLeft","Noted: {{v0}}. {{v1}} left.",{v0:a.label,v1:i})):(e.questions.delete(o.id),e.resolveQuestionBatch(r),e.bridge.sendNote(n.chatId,t("answered","Answered: {{v0}}",{v0:a.label})))}async function answerValue(e,n,o){const r=await applyRemoteValue({sessionId:e.sessionId,name:o.command,value:o.value}).catch(e=>t("thatFailed","That failed: {{v0}}",{v0:oU(e)}));await n.acknowledge(r),n.dismiss(),e.bridge.sendNote(n.chatId,r)}function handleChoice(e,n){const o=parsePermissionCallback(n.data);if(o)return void answerPermission(e,n,o);const r=parseQuestionCallback(n.data);if(r)return void answerQuestion(e,n,r);const s=parseValueCallback(n.data);if(!s||!Qj(s.command))return n.acknowledge(t("thatMenuIsOutOfDate","That menu is out of date.")),void n.dismiss();answerValue(e,n,s)}function useRemoteBridge({sessionId:e,harnessReady:n,onSubmit:o,pendingPermission:r,setPendingPermission:s,respondToPrompt:a,pendingQuestion:i,setPendingQuestion:l,setPermissionMode:c,dangerouslySkipPermissions:d}){const u=pt(o),m=pt(a),p=pt(s),g=pt(l),h=pt(c),f=pt(null),y=pt(null),v=pt([]),S=pt(null),w=pt(null),k=pt(null),C=pt(new Map),b=pt(0),T=pt(null),E=pt(new Map),P=pt(0);u.current=o,m.current=a,p.current=s,g.current=l,h.current=c,S.current=r,w.current=i;const M=pt(()=>{});M.current=e=>{const{params:n}=e.pending,o=n.questions.map((n,o)=>({questionIndex:o,selectedOptions:[e.answers.get(o)??""]})),r=resolvePlanModeAnswerTransition({answer:o[0]?.selectedOptions[0]??"",exitPlanMode:n.exitPlanMode,enterPlanMode:n.enterPlanMode,dangerouslySkipPermissions:d});r&&h.current(r),e.pending.resolve({answers:o}),g.current(null)};const I=__name((e,n)=>{const o=getActiveRemote();if(!o)return;const r=f.current;if("follow"===planStreamTarget(r))return n?(y.current=e,void r?.retarget(o.bridge.openReply(e))):void v.current.push(e);y.current=e,r?.abandon(),f.current=createReplyStream(o.bridge.openReply(e),UG(o.platform))},"openStream");gt(()=>{const n=[subscribeRemoteMessage(n=>{const o=getActiveRemote();if(!o)return;const r=parseRemoteCommand(n.text);if(r)return void runRemoteCommand({command:r,chatId:n.chatId,sessionId:e,bridge:o.bridge}).catch(e=>{o.bridge.sendNote(n.chatId,t("thatCommandFailed","That command failed: {{v0}}",{v0:oU(e)}))});const s=planRemoteMessage(f.current);s.note&&o.bridge.sendNote(n.chatId,s.note),I(n.chatId,!1),u.current(buildRemoteSubmission(n))}),subscribeRemoteChoice(n=>{const o=getActiveRemote();o&&handleChoice({sessionId:e,bridge:o.bridge,prompts:C.current,questions:E.current,livePermission:S.current,liveQuestion:w.current,respondToPrompt:m.current,clearPendingPermission:__name(()=>p.current(null),"clearPendingPermission"),resolveQuestionBatch:M.current},n)}),subscribeRemoteStopped(()=>{f.current?.abandon(),f.current=null,y.current=null,v.current=[],C.current.clear(),E.current.clear(),k.current=null,T.current=null}),subscribeLocalPrompt(({text:e})=>{const n=getActiveRemote();if(!n)return;const o=n.bridge.ownerChatId;void 0!==o&&(n.bridge.sendNote(o,`💻 ${BG(e)}`),I(o,!0))})];return()=>{for(const e of n)e()}},[e]),gt(()=>{const n=hO(e);if(n)return n.events.subscribe(e=>{if("run_start"===e.type&&null===f.current){const e=v.current.shift();void 0!==e&&I(e,!1)}const n=f.current;n&&(n.onEvent(e),n.isOpen()||(f.current=null,y.current=null))})},[e,n]),gt(()=>{if(r||(k.current=null,C.current.clear()),i||(T.current=null,E.current.clear()),!r&&!i)return;const e=getActiveRemote(),n=y.current;if(e&&null!==n&&f.current?.isOpen()){if(r&&k.current!==r){k.current=r;const o=b.current;b.current+=1,C.current.set(o,r),e.bridge.sendChoices({chatId:n,text:describePrompt(r),buttons:[[{text:t("approve3","✅ Approve"),data:encodePermissionCallback({id:o,allow:!0})},{text:t("deny","⛔️ Deny"),data:encodePermissionCallback({id:o,allow:!1})}]]})}if(i&&T.current!==i){T.current=i;const o=P.current;P.current+=1,E.current.set(o,{pending:i,answers:new Map});const r=i.params.questions.length;i.params.questions.forEach((s,a)=>{const i=buildQuestionMessage({id:o,questionIndex:a,question:s,...r>1?{position:{index:a+1,total:r}}:{}});e.bridge.sendChoices({chatId:n,text:i.text,buttons:i.buttons})})}}},[r,i])}function useSession(){const[e,n]=mt(()=>crypto.randomUUID()),[o,r]=mt(!1);return{sessionId:e,setSessionId:n,sessionLoaded:o,setSessionLoaded:r,sessionLoadIdRef:pt(null)}}__name(requestModelSwitch,"requestModelSwitch"),__name(describeSession,"describeSession"),__name(applyRemoteValue,"applyRemoteValue"),__name(runRemoteCommand,"runRemoteCommand"),__name(answerPermission,"answerPermission"),__name(answerQuestion,"answerQuestion"),__name(answerValue,"answerValue"),__name(handleChoice,"handleChoice"),__name(useRemoteBridge,"useRemoteBridge"),Jt(),__name(useSession,"useSession"),Jt(),hL(),Jt(),hL();var WG=__name(()=>createOSC8Link("https://commandcode.ai/docs/hooks",t("docs2","Docs ↗"),!1),"HOOK_DOCS_LINK"),HG=__name(()=>createOSC8Link("https://commandcode.ai/docs/core-concepts/custom-agents",t("docs2","Docs ↗"),!1),"AGENT_DOCS_LINK");function buildStartupWarningEntries(e){const n=[];for(const o of e.fileLevelMessages)n.push({message:o,isFileLevel:!0});if(e.summaryLine&&n.push({message:e.summaryLine,isFileLevel:!1}),0===n.length)return[];const o=n[n.length-1];return o.message=`${o.message} ${e.docsLink}`,n.map(n=>n.isFileLevel?Zh(n.message,e.fileLevelMetadata):Zh(n.message))}function buildHookStartupEntries(e){const n=buildHookStartupMessages(e),o=n.find(e=>!e.isHookWarning);return buildStartupWarningEntries({fileLevelMessages:n.filter(e=>e.isHookWarning).map(e=>e.message),summaryLine:o?.message??null,docsLink:WG(),fileLevelMetadata:{isHookWarning:!0}})}function buildAgentStartupEntries(e){return buildStartupWarningEntries({fileLevelMessages:[],summaryLine:summarizeAgentConfigWarnings(e),docsLink:HG()})}async function submitInitialPrompt({initialPrompt:e,onCommand:n,submitAsUserMessage:o}){const r=e.trim();r.startsWith("/")&&n&&"handled"===(await n(r)).status||await o()}function useStartup({resume:e,resumeSessionId:n,continueLatest:o,trust:r,initialPrompt:s,stdout:a,feedState:i,sessionState:l,statusState:c,authState:d,onboarding:u,uiOverlays:m,permissionState:p,harnessReady:g,isSubmittingRef:h,initialPromptSubmittedRef:f,historyManagerRef:y,executeBash:v,setInput:S,onCommand:w}){const k=ht(async()=>{try{const e=!isSandboxMode()&&await isTasteLearningEnabled();c.setTasteLearningOn(e),e&&await initTasteDir({runtime:createNodeRuntime()})}catch{}},[c.setTasteLearningOn]),C=ht(async()=>{const e=await getConfiguredProvider();d.setCurrentProvider(e)},[d.setCurrentProvider]),b=ht(()=>{},[]),T=ht(e=>{handleSelectSession({selectedSessionId:e,sessionLoadIdRef:l.sessionLoadIdRef,setFeed:i.setFeed,setLiveEntries:i.setLiveEntries,setSessionId:l.setSessionId,setShowSessionSelector:m.setShowSessionSelector,setSessionLoaded:l.setSessionLoaded,setStaticKey:m.setStaticKey,setShareInfo:c.setShareInfo,setCurrentModel:d.setCurrentModel})},[l,i,m,c,d.setCurrentModel]),E=ht(async()=>{const r=await resolveStartupSessionTarget({continueLatest:o,resumeSessionId:n,resume:e,listSessions:listCommandSessions});"load"!==r.kind?"open-picker"===r.kind&&m.setShowSessionSelector(!0):T(r.sessionId)},[o,n,e,T,m]);gt(()=>{(async()=>{if(isSandboxMode())return u.setProjectTrusted(!0),u.setCheckingProject(!1),k(),C(),void loadCustomProviderModels();const e=await resolveStartupTrust({trust:r,isProjectInitialized:isCommandProjectSessionInitialized,isDirectoryEmpty:__name(()=>isDirectoryEmpty({runtime:createNodeRuntime(),path:process.cwd()}),"isDirectoryEmpty")});if("prompt-trust"===e.kind)return u.setShowTrustPrompt(!0),void u.setCheckingProject(!1);e.initializeFirst&&await initializeCommandProjectSessions(),u.setProjectTrusted(!0),u.setCheckingProject(!1),k(),C(),loadCustomProviderModels(),b(),e.continueOrResume&&await E()})()},[e,o,r]);const P=pt(!1);gt(()=>{P.current||u.projectTrusted&&0!==getCommandZdrPausedFeatures().length&&(P.current=!0,m.setShowZdrNotice(!0))},[u.projectTrusted,m.setShowZdrNotice]);const M=pt(null);gt(()=>{u.projectTrusted&&d.currentModel!==M.current&&(M.current=d.currentModel,m.setModelNotice(getModelNotice(d.currentModel)??null))},[u.projectTrusted,d.currentModel,m.setModelNotice]);const I=pt(null);gt(()=>{if(!g||!u.projectTrusted)return;const e=l.sessionId;if(I.current===e)return;const n=hO(e);if(!n)return;I.current=e;const o=buildHookStartupEntries(n.hookSettingsWarnings);0!==o.length&&i.setFeed(e=>[...e,...o])},[g,u.projectTrusted,l.sessionId,i.setFeed]);const A=pt(null);gt(()=>{if(!g||!u.projectTrusted)return;const e=l.sessionId;if(A.current===e)return;const n=hO(e);if(!n)return;A.current=e;const o=buildAgentStartupEntries(n.agentConfigWarnings);0!==o.length&&i.setFeed(e=>[...e,...o])},[g,u.projectTrusted,l.sessionId,i.setFeed]),gt(()=>{if(!u.projectTrusted)return;const e=createCommandHistoryManager();return y.current=e,e.init(),()=>{e.cleanup()}},[u.projectTrusted,y]),gt(()=>{if(!a)return;const e=createResizeHandler({getColumns:__name(()=>a.columns??0,"getColumns"),bumpStaticKey:__name(()=>m.setStaticKey(e=>e+1),"bumpStaticKey")});return a.prependListener("resize",e),()=>{a.off("resize",e)}},[a,m.setStaticKey]);const[x,R]=mt(!1);gt(()=>{!s||hasAdoptedTurn()||x||!u.projectTrusted||u.checkingProject||!g||m.showSessionSelector||f.current||(f.current=!0,submitInitialPrompt({initialPrompt:s,onCommand:w,submitAsUserMessage:__name(async()=>{await handleSubmit({role:"user",input:s,feed:i.feed,setFeed:i.setFeed,setLiveEntries:i.setLiveEntries,isCmdCodeBusy:i.isCmdCodeBusy,setIsCmdCodeBusy:i.setIsCmdCodeBusy,setQueuedMessages:i.setQueuedMessages,setStatus:c.setStatus,setInteractionTokens:c.setInteractionTokens,updateStatus:c.updateStatus,setUpdateStatus:c.setUpdateStatus,billingLink:c.billingLink,setBillingLink:c.setBillingLink,currentModel:d.currentModel,currentProvider:d.currentProvider,premiumCreditsExhausted:d.premiumCreditsExhausted,setPremiumCreditsExhausted:d.setPremiumCreditsExhausted,setCurrentModel:d.setCurrentModel,sessionId:l.sessionId,isSubmittingRef:h,setInput:S,setStaticKey:m.setStaticKey,executeBash:v})},"submitAsUserMessage")}))},[s,u.projectTrusted,u.checkingProject,m.showSessionSelector,g,l.sessionId,d.currentProvider,w,x]);const L=pt(null);L.current={feed:i.feed,setFeed:i.setFeed,setLiveEntries:i.setLiveEntries,isCmdCodeBusy:i.isCmdCodeBusy,setIsCmdCodeBusy:i.setIsCmdCodeBusy,setQueuedMessages:i.setQueuedMessages,setStatus:c.setStatus,setInteractionTokens:c.setInteractionTokens,updateStatus:c.updateStatus,setUpdateStatus:c.setUpdateStatus,billingLink:c.billingLink,setBillingLink:c.setBillingLink,currentModel:d.currentModel,currentProvider:d.currentProvider,premiumCreditsExhausted:d.premiumCreditsExhausted,setPremiumCreditsExhausted:d.setPremiumCreditsExhausted,setCurrentModel:d.setCurrentModel,sessionId:l.sessionId,isSubmittingRef:h,setInput:S,setStaticKey:m.setStaticKey,executeBash:v,role:"",input:""};const O=pt(!1);gt(()=>{g&&!O.current&&hasAdoptedTurn()&&(O.current=!0,R(!0),handleSubmit({...L.current,role:"user",input:E_,suppressUserEcho:!0,isAutomated:!0}).finally(()=>{takeAdoptedTurn(),R(!1)}))},[g]);const D=ht(async({role:e,input:n,images:o,imageTokenPaths:r,ideContext:s,ideHint:a,displayMessage:i,isAutomated:l,isMeta:c,source:d,isRelayed:u,hiddenMessages:p})=>{m.setShowTasteSkipBanner(!1),m.setShowZdrNotice(!1),m.setModelNotice(null),l||"bash"===e||emitLocalPrompt({text:i??n}),await handleSubmit({...L.current,role:e,input:n,images:o,imageTokenPaths:r,ideContext:s,ideHint:a,displayMessage:i,isAutomated:l,isMeta:c,source:d,isRelayed:u,hiddenMessages:p})},[m.setShowTasteSkipBanner,m.setShowZdrNotice,m.setModelNotice]);return{loadTasteStatus:k,loadCurrentProvider:C,initializeMcpInBackground:b,onSubmit:D}}function useStatus(e){const[n,o]=mt(t("ready","Ready...")),r=pt(!1),[s,a]=mt(""),i=pt(null),[l,c]=mt(null),d=pt(l),[u,m]=mt(null),[p,g]=mt(!1),[h,f]=mt(""),[y,v]=mt(null),[S,w]=mt(0),[k,C]=mt(null),[b,T]=mt(null),[E,P]=mt(e??null);gt(()=>{d.current=l},[l]),gt(()=>{if(!E)return;const e=setTimeout(()=>{P(null)},3e4);return()=>clearTimeout(e)},[E]);const M=__name(e=>{i.current&&clearTimeout(i.current),a(e),i.current=setTimeout(()=>{a(""),i.current=null},5e3)},"showHintMessage");return{status:n,setStatus:o,pinnedStatusRef:r,hintMessage:s,setHintMessage:a,hintTimerRef:i,shareInfo:l,setShareInfo:c,shareInfoRef:d,billingLink:u,setBillingLink:m,showShareNotification:p,setShowShareNotification:g,unshareNotificationMessage:h,setUnshareNotificationMessage:f,retryAttempt:y,setRetryAttempt:v,interactionTokens:S,setInteractionTokens:w,contextUsage:k,setContextUsage:C,tasteLearningOn:b,setTasteLearningOn:T,updateStatus:E,setUpdateStatus:P,showHintMessage:M}}function useTerminalTitle({sessionId:e,isCmdCodeBusy:n,modelLabel:o=null}){const r=pt(process.cwd()),s=pt(e),a=pt(null),i=pt(o);i.current=o;const l=ht(e=>{a.current=e,setTerminalTitle(formatSessionTabTitle({sessionTitle:e,projectDir:r.current,modelLabel:i.current}))},[]),c=ht(e=>{(async()=>{const n=await loadCommandSessionMeta({sessionId:e});s.current===e&&n?.title&&n.title!==a.current&&l(n.title)})()},[l]);gt(()=>{s.current=e,l(null),c(e)},[e,l,c]);const d=pt(!0);gt(()=>{d.current?d.current=!1:l(a.current)},[o,l]);const u=pt(n);gt(()=>{const o=u.current;u.current=n,n!==o&&reassertTerminalTitle(),!n&&o&&(a.current||c(e))},[n,e,c]),gt(()=>{if(!process.stderr.isTTY)return;const e=setInterval(reassertTerminalTitle,5e3);return()=>{clearInterval(e)}},[]);const m=ht(e=>{l(e)},[l]);return{setRenamedTerminalTitle:m,applyGeneratedTitle:m}}function useUiOverlays(){const[e,n]=mt(!1),[o,r]=mt(!1),[s,a]=mt(!1),[i,l]=mt(!1),[c,d]=mt(!1),[u,m]=mt(!1),[p,g]=mt(!1),[h,f]=mt(!1),[y,v]=mt(!1),[S,w]=mt(!1),[k,C]=mt(!1),[b,T]=mt(!1),[E,P]=mt(!1),[M,I]=mt(!1),[A,x]=mt("default"),[R,L]=mt(!1),[O,D]=mt(!1),[N,F]=mt(!1),[_,$]=mt(!1),[U,B]=mt(!1),[j,W]=mt(!1),[H,G]=mt(null),[V,K]=mt(!1),[z,q]=mt(!1),[Y,J]=mt(!1),[Q,X]=mt(!1),[Z,ee]=mt(!1),[te,ne]=mt(!1),[oe,re]=mt(null),[se,ae]=mt(0),[ie,le]=mt(!1),[ce,de]=mt(!1),[ue,me]=mt(null),[pe,ge]=mt("off"),he="off"!==pe,fe=ht(e=>{hardResetForResize(),ae(e=>e+1),e(!1)},[]);return{showFileList:e,setShowFileList:n,showAgentsConfig:o,setShowAgentsConfig:r,showTasteConfig:s,setShowTasteConfig:a,showSkillsConfig:i,setShowSkillsConfig:l,showSettingsConfig:c,setShowSettingsConfig:d,showProviderSelector:u,setShowProviderSelector:m,showModelSelector:p,setShowModelSelector:g,showEffortSelector:h,setShowEffortSelector:f,showMemorySelector:y,setShowMemorySelector:v,showMcpManager:S,setShowMcpManager:w,showSessionSelector:k,setShowSessionSelector:C,showAddDirModal:b,setShowAddDirModal:T,showRewindSelector:E,setShowRewindSelector:P,showTreeSelector:M,setShowTreeSelector:I,treeFilterMode:A,setTreeFilterMode:x,treeBranchSummarySkipPrompt:R,setTreeBranchSummarySkipPrompt:L,showLoginOverlay:O,setShowLoginOverlay:D,showCompactModeSelector:N,setShowCompactModeSelector:F,showContextView:_,setShowContextView:$,showStatusView:U,setShowStatusView:B,showPlansView:j,setShowPlansView:W,plansTarget:H,setPlansTarget:G,planBreadcrumbPending:V,setPlanBreadcrumbPending:K,showUsageOverlay:z,setShowUsageOverlay:q,showThemeSelector:Y,setShowThemeSelector:J,showLanguageSelector:Q,setShowLanguageSelector:X,showRcSelector:Z,setShowRcSelector:ee,staticKey:se,setStaticKey:ae,closeFullScreenOverlay:fe,showTasteSkipBanner:ie,setShowTasteSkipBanner:le,showZdrNotice:ce,setShowZdrNotice:de,modelNotice:ue,setModelNotice:me,transcriptMode:pe,setTranscriptMode:ge,expandedToolOutput:he,showDesignGuide:te,setShowDesignGuide:ne,pendingDesignSuggestion:oe,setPendingDesignSuggestion:re}}__name(buildStartupWarningEntries,"buildStartupWarningEntries"),__name(buildHookStartupEntries,"buildHookStartupEntries"),__name(buildAgentStartupEntries,"buildAgentStartupEntries"),__name(submitInitialPrompt,"submitInitialPrompt"),__name(useStartup,"useStartup"),Jt(),__name(useStatus,"useStatus"),Jt(),hL(),__name(useTerminalTitle,"useTerminalTitle"),Jt(),__name(useUiOverlays,"useUiOverlays");var GG=__name(({resume:e=!1,resumeSessionId:n,continue:o=!1,trust:r=!1,dangerouslySkipPermissions:s=!1,updateStatus:a,updateFailedInfo:i,initialPrompt:l,skipOnboarding:c=!1,initialPermissionMode:d,local:u=!1,sessionTitleHolder:m})=>{const{t:p}=xt(),{exit:g}=it(),{stdout:h}=rt();usePasteRouter(),gt(()=>{isLocalOnly()||prefetchBillingContext()},[]);const[f,y]=mt(""),[v,S]=mt(""),[w,k]=mt(!1),C=pt(!1),b=pt(!1),T=pt(null);gt(()=>{let e=!0;return loadUserConfig().then(n=>{e&&k(!1!==n.showTasteLearningInFeed)}).catch(()=>{e&&k(!0)}),()=>{e=!1}},[]);const E=useUiOverlays(),P=useFeed(),M=useSession(),I=useStatus(a),A=useAuth(),x=usePendingOps(),R=useOnboarding(),L=useExit(),{executeBash:O,executionState:D}=QH(),N=usePermissionMode({initialPermissionMode:d,local:u,dangerouslySkipPermissions:s,setPendingPermission:x.setPendingPermission,setStatus:I.setStatus}),F=ut(()=>getModelShortName({modelId:A.currentModel,findModelById:findModelById}),[A.currentModel]),_=useTerminalTitle({sessionId:M.sessionId,isCmdCodeBusy:P.isCmdCodeBusy,modelLabel:F}),{ready:$}=useHarness({sessionId:M.sessionId,sessionLoaded:M.sessionLoaded,showSessionSelector:E.showSessionSelector,projectTrusted:R.projectTrusted,setConnecting:P.setIsCmdCodeBusy,onFatal:__name(()=>{process.exitCode=1,L.setShouldExit(!0)},"onFatal"),permissionsService:N.permissionsService,permissionModeRef:N.permissionModeRef,setPermissionMode:N.setPermissionMode,permissionModeExplicit:Boolean(d)||s,dangerouslySkipPermissions:N.dangerouslySkipPermissions,setPendingQuestion:x.setPendingQuestion,setStatus:I.setStatus,setFeed:P.setFeed,queuedMessagesRef:P.queuedMessagesRef,setQueuedMessages:P.setQueuedMessages,setInput:y,onSessionTitled:_.applyGeneratedTitle,currentModel:A.currentModel,setCurrentModel:A.setCurrentModel,setStaticKey:E.setStaticKey,isCmdCodeBusy:P.isCmdCodeBusy}),{onCommand:U}=useCommandCtx({feedState:P,sessionState:M,statusState:I,authState:A,uiOverlays:E,onboarding:R,exitState:L,permissionState:N,terminalTitleState:_,isSubmittingRef:C,executeBash:O,setInput:y});useAgentSlashCommandQueue({sessionId:M.sessionId,isCmdCodeBusy:P.isCmdCodeBusy,onCommand:U}),gt(()=>{E.planBreadcrumbPending&&!P.isCmdCodeBusy&&(E.setPlanBreadcrumbPending(!1),P.setFeed(e=>[...e,rf(p("planSavedRunPlansToReviewAnnotateOrExecuteItAnytime","Plan saved — run /plans to review, annotate, or execute it anytime."))]))},[E.planBreadcrumbPending,E.setPlanBreadcrumbPending,P.isCmdCodeBusy,P.setFeed]);const{loadTasteStatus:B,loadCurrentProvider:j,onSubmit:W}=useStartup({resume:e,resumeSessionId:n,continueLatest:o,trust:r,initialPrompt:l,stdout:h,feedState:P,sessionState:M,statusState:I,authState:A,onboarding:R,uiOverlays:E,permissionState:N,harnessReady:$,isSubmittingRef:C,initialPromptSubmittedRef:b,historyManagerRef:T,executeBash:O,setInput:y,onCommand:U});useMonitorOutputWakeup({onSubmit:W}),useCronWakeup({sessionId:M.sessionId,onSubmit:W}),useRemoteBridge({sessionId:M.sessionId,harnessReady:$,onSubmit:W,pendingPermission:x.pendingPermission,setPendingPermission:x.setPendingPermission,respondToPrompt:N.respondToPrompt,pendingQuestion:x.pendingQuestion,setPendingQuestion:x.setPendingQuestion,setPermissionMode:N.setPermissionMode,dangerouslySkipPermissions:N.dangerouslySkipPermissions}),useQueuedMessageFlush({isCmdCodeBusy:P.isCmdCodeBusy,queuedMessages:P.queuedMessages,queuedMessagesRef:P.queuedMessagesRef,setQueuedMessages:P.setQueuedMessages,isSubmittingRef:C,onSubmit:W}),useLifecycle({exit:g,feedState:P,exitState:L,statusState:I,authState:A,onboarding:R,uiOverlays:E,skipOnboarding:c,sessionId:M.sessionId,sessionTitleHolder:m});const{handleToggleAutoAccept:H,handleEnableAutoAccept:G,handleDoubleEscapeEmpty:V,handleTasteOnboardingComplete:K,handleTrust:z,handleNoTrust:q}=useHandlers({resume:e,feedState:P,onboarding:R,uiOverlays:E,exitState:L,pendingOps:x,permissionState:N,statusState:I,authState:A,sessionId:M.sessionId,loadTasteStatus:B,loadCurrentProvider:j,setInput:__name(e=>y(e),"setInput")}),Y=useMainActionCallbacks({feedState:P,sessionState:M,statusState:I,authState:A,uiOverlays:E,permissionState:N,setInput:y}),{creditWarning:J}=useCreditWarning({interactionTokens:I.interactionTokens,currentModel:A.currentModel});return renderView({feedState:P,sessionState:M,statusState:I,authState:A,uiOverlays:E,onboarding:R,exitState:L,pendingOps:x,permissionState:N,historyManagerRef:T,executionState:D,actionCallbacks:Y,onSubmit:W,onCommand:U,input:f,setInput:y,fileSearchQuery:v,setFileSearchQuery:S,updateFailedInfo:i,creditWarning:J,handleTrust:z,handleNoTrust:q,handleToggleAutoAccept:H,handleEnableAutoAccept:G,handleDoubleEscapeEmpty:V,handleTasteOnboardingComplete:K,loadTasteStatus:B,showTasteLearningInFeed:w,setShowTasteLearningInFeed:k})},"InteractiveCLI");function renderView({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,onboarding:a,exitState:i,pendingOps:l,permissionState:c,historyManagerRef:d,executionState:u,actionCallbacks:m,onSubmit:p,onCommand:g,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:v,updateFailedInfo:S,creditWarning:w,handleTrust:k,handleNoTrust:C,handleToggleAutoAccept:b,handleEnableAutoAccept:T,handleDoubleEscapeEmpty:E,handleTasteOnboardingComplete:P,loadTasteStatus:M,showTasteLearningInFeed:I,setShowTasteLearningInFeed:A}){if(i.shouldExit)return null;if(a.checkingProject)return null;if(a.showTrustPrompt)return ct.createElement(JH,{staticKey:s.staticKey,onTrust:k,onExit:C});if(s.showSessionSelector)return ct.createElement(qH,{onSelectSession:m.onSelectSession,onClose:()=>s.closeFullScreenOverlay(s.setShowSessionSelector),currentSessionId:n.sessionId});if(!a.projectTrusted)return null;const x=s.pendingDesignSuggestion?ct.createElement(O$,{suggestion:s.pendingDesignSuggestion,onSelect:e=>{g(`/design ${e}`)},onClose:()=>s.setPendingDesignSuggestion(null)}):null,R=l.pendingQuestion?.params.exitPlanMode?l.pendingQuestion:null,L=l.pendingQuestion&&!R?ct.createElement(QuestionView,{pendingQuestion:l.pendingQuestion,permissionMode:c.permissionMode,setPermissionMode:c.setPermissionMode,dangerouslySkipPermissions:c.dangerouslySkipPermissions,setPendingQuestion:l.setPendingQuestion,setStatus:o.setStatus,setStaticKey:s.setStaticKey}):null,O=l.pendingPermission?ct.createElement(b$,{pendingPermission:l.pendingPermission,permissionMode:c.permissionMode,setPendingPermission:l.setPendingPermission,setStatus:o.setStatus,respondToPrompt:c.respondToPrompt,showHintMessage:o.showHintMessage,handleEnableAutoAccept:T}):null,{closeFullScreenOverlay:D}=s;if(R){const e=__name(e=>{const n=resolvePlanModeAnswerTransition({answer:e,exitPlanMode:!0,dangerouslySkipPermissions:c.dangerouslySkipPermissions});n&&c.setPermissionMode(n),R.resolve({answers:[{questionIndex:0,selectedOptions:[e]}]}),l.setPendingQuestion(null),hardResetForResize(),s.setStaticKey(e=>e+1)},"resolveApproval");return ct.createElement(PlanApprovalView,{staticKey:s.staticKey,planContent:R.params.planContent,planFilePath:R.params.planFilePath,onAutoAccept:n=>{e("Yes, auto-accept edits"),n&&p({role:"user",input:n})},onCancel:()=>{e("Cancel"),s.setPlanBreadcrumbPending(!0)},onSendFeedback:n=>{e("Cancel"),p({role:"user",input:n})}})}if(s.showTasteConfig)return ct.createElement(TasteConfigView,{staticKey:s.staticKey,onClose:()=>D(s.setShowTasteConfig),loadTasteStatus:M});if(s.showSkillsConfig)return ct.createElement(SkillsConfigView,{staticKey:s.staticKey,onClose:()=>D(s.setShowSkillsConfig)});if(s.showSettingsConfig)return ct.createElement(SettingsConfigView,{staticKey:s.staticKey,onClose:()=>D(s.setShowSettingsConfig),loadTasteStatus:M,onShowTasteLearningInFeedChange:A,reloadHarnessConfig:async()=>{await(hO(n.sessionId)?.reloadConfig())}});if(s.showUsageOverlay)return ct.createElement(UsageView,{staticKey:s.staticKey,onClose:()=>D(s.setShowUsageOverlay)});if(s.showContextView)return ct.createElement(ContextConfigView,{staticKey:s.staticKey,sessionId:n.sessionId,onClose:()=>D(s.setShowContextView),setInput:f});if(s.showStatusView)return ct.createElement(StatusConfigView,{staticKey:s.staticKey,sessionId:n.sessionId,onClose:()=>D(s.setShowStatusView),setInput:f});if(s.showPlansView){const e=__name(e=>{s.setPlansTarget(null),D(s.setShowPlansView),p({role:"user",input:e})},"submitFromPlans");return ct.createElement(PlansView,{staticKey:s.staticKey,sessionId:n.sessionId,target:s.plansTarget,onClose:()=>{s.setPlansTarget(null),D(s.setShowPlansView)},onSubmitFeedback:e,onExecute:o=>{const r=hO(n.sessionId);"plan"===c.permissionModeRef.current?(c.permissionModeRef.current="auto-accept",c.setPermissionMode("auto-accept"),r?.setPermissionMode({mode:"auto-accept",viaPlanApproval:!0})):r?.notePlanApproved(),e(o)}})}return ct.createElement(fH,{feed:e.feed,liveEntries:e.liveEntries,queuedMessages:e.queuedMessages,isCmdCodeBusy:e.isCmdCodeBusy,staticKey:s.staticKey,setStaticKey:s.setStaticKey,transcriptMode:s.transcriptMode,tasteOnboardingEntryId:a.tasteOnboardingEntryId,autoLearnTaste:a.autoLearnTaste,showTasteSkipBanner:s.showTasteSkipBanner,showTasteLearningInFeed:I,showZdrNotice:s.showZdrNotice,modelNotice:s.modelNotice,retryAttempt:o.retryAttempt,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:v,showFileList:s.showFileList,setShowFileList:s.setShowFileList,showProviderSelector:s.showProviderSelector,showModelSelector:s.showModelSelector,showEffortSelector:s.showEffortSelector,showMemorySelector:s.showMemorySelector,showMcpManager:s.showMcpManager,showAgentsConfig:s.showAgentsConfig,showRewindSelector:s.showRewindSelector,showTreeSelector:s.showTreeSelector,treeFilterMode:s.treeFilterMode,treeBranchSummarySkipPrompt:s.treeBranchSummarySkipPrompt,showLoginOverlay:s.showLoginOverlay,showUsageOverlay:s.showUsageOverlay,setShowUsageOverlay:s.setShowUsageOverlay,showAddDirModal:s.showAddDirModal,showCompactModeSelector:s.showCompactModeSelector,showThemeSelector:s.showThemeSelector,showLanguageSelector:s.showLanguageSelector,showRcSelector:s.showRcSelector,authComponentInfo:r.authComponentInfo,status:o.status,currentProvider:r.currentProvider,currentModel:r.currentModel,showProviderNotification:r.showProviderNotification,shareInfo:o.shareInfo,showShareNotification:o.showShareNotification,unshareNotificationMessage:o.unshareNotificationMessage,updateStatus:o.updateStatus,updateFailedInfo:S,creditWarning:w,permissionMode:c.permissionMode,hintMessage:o.hintMessage,pendingExitKey:i.pendingExitKey,interactionTokens:o.interactionTokens,contextUsage:o.contextUsage,tasteLearningOn:o.tasteLearningOn,historyManagerRef:d,executionState:u,sessionId:n.sessionId,onSubmit:p,onCommand:g,onToggleAutoAccept:b,onResetPendingExitKey:i.resetPendingExitKey,onDoubleEscapeEmpty:E,onTasteOnboardingComplete:P,permissionPanel:O,questionPanel:L,designSuggestionPanel:x,onRewindSelect:m.onRewindSelect,onRewindCancel:m.onRewindCancel,onTreeSelect:m.onTreeSelect,onTreeCancel:m.onTreeCancel,onTreeLabel:m.onTreeLabel,onTreeAbortSummary:m.onTreeAbortSummary,onLoginComplete:m.onLoginComplete,onLoginCancel:m.onLoginCancel,setShowProviderSelector:s.setShowProviderSelector,setShowModelSelector:s.setShowModelSelector,setShowEffortSelector:s.setShowEffortSelector,setShowMemorySelector:s.setShowMemorySelector,setShowMcpManager:s.setShowMcpManager,setShowAgentsConfig:s.setShowAgentsConfig,setShowRewindSelector:s.setShowRewindSelector,setShowTreeSelector:s.setShowTreeSelector,setShowLoginOverlay:s.setShowLoginOverlay,setShowAddDirModal:s.setShowAddDirModal,handleProviderSelect:m.handleProviderSelect,handleProviderCancel:m.handleProviderCancel,handleModelSelect:m.handleModelSelect,handleModelCancel:m.handleModelCancel,handleCompactModeSelect:m.handleCompactModeSelect,handleCompactModeCancel:m.handleCompactModeCancel,handleThemeSelect:m.handleThemeSelect,handleThemeCancel:m.handleThemeCancel,handleLanguageSelect:m.handleLanguageSelect,handleLanguageCancel:m.handleLanguageCancel,handleRcSelect:m.handleRcSelect,handleRcCancel:m.handleRcCancel,handleAuthSuccess:m.handleAuthSuccess,handleAuthCancel:m.handleAuthCancel,showDesignGuide:s.showDesignGuide,setShowDesignGuide:s.setShowDesignGuide})}function needsLanguageOnboarding(e){return!e.skipOnboarding&&!e.sandbox&&!isLocale(e.language)}function LanguageOnboarding({required:e,ready:n=!0,children:o}){const{t:r}=xt(),[s,a]=mt(!e),[i,l]=mt(!1),[c,d]=mt(null),u=pt(!1),m=__name(async e=>{if(!u.current){u.current=!0,l(!0),d(null);try{await changeUiLanguage(e),a(!0)}catch(e){d(r("couldNotSaveLanguage","Could not save language: {{reason}}. Report issues at https://cond.dev/issue",{reason:e instanceof Error?e.message:String(e)}))}finally{u.current=!1,l(!1)}}},"selectLanguage");return n?s?o:ct.createElement(tt,{flexDirection:"column"},ct.createElement(fj,{onboarding:!0,disabled:i,onSelect:e=>{m(e)},onCancel:()=>{u.current||a(!0)}}),c&&ct.createElement(nt,{color:XO.RED},c)):null}__name(renderView,"renderView"),Jt(),__name(needsLanguageOnboarding,"needsLanguageOnboarding"),__name(LanguageOnboarding,"LanguageOnboarding");var VG=St.hex(XO.DIM),KG=__name((e,n)=>{const o=Z_(),r=Ee([e]),s=n?`cd ${Ee([n])} && ${o} --resume ${r}`:`${o} --resume ${r}`;return`${VG(translateUiCopy("Resume this session with:"))}\n${VG(s)}\n`},"formatResumeHint"),zG=__name(e=>e?{isValid:!0}:{isValid:!1,errorMessage:[t("errorInteractiveModeRequiresATtyTerminal","Error: Interactive mode requires a TTY terminal."),t("pleaseRunThisCommandDirectlyInYourTerminalNotThroughAPipeOrRedirect","Please run this command directly in your terminal, not through a pipe or redirect.")].join("\n")},"validateTtyEnvironment"),qG=__name(e=>Boolean(e.resume||e.continue),"shouldValidateSessions"),YG=__name(({isInitialized:e,sessionCount:n})=>e&&0===n?{canProceed:!1,exitCode:0,message:t("noConversationsFoundToResume","No conversations found to resume.")}:{canProceed:!0},"validateSessionAvailability"),JG=__name(e=>e.permissionMode?e.permissionMode:e.plan?"plan":void 0,"resolveInitialPermissionMode"),QG=__name(({options:e,resumeSessionId:n,sessionTitleHolder:o})=>{const r=JG(e);return{resume:"boolean"==typeof e.resume?e.resume:void 0,resumeSessionId:n,continue:e.continue,trust:e.trust,dangerouslySkipPermissions:e.dangerouslySkipPermissions,initialPrompt:e.initialPrompt,skipOnboarding:e.skipOnboarding,initialPermissionMode:r,local:e.local,sessionTitleHolder:o}},"buildInteractiveCLIProps"),XG=__name(e=>({stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,kittyKeyboard:e}),"getInkRenderOptions"),ZG=!1,eV=__name(()=>{enableBracketedPasteMode(),process.on("exit",()=>{disableBracketedPasteMode(),!ZG&&isKittyKeyboardActive()&&popKittyKeyboardProtocol()})},"setupBracketedPasteMode"),tV=__name(()=>{eV()},"initializeTerminal"),nV=__name(()=>{process.on("SIGINT",()=>{})},"swallowSigintDuringShutdown"),oV=__name(async e=>{const{resumeSessionId:n,useContinue:o}=e,r=o?(await listCommandSessions())[0]?.id:void 0,s=n??r;if(!s)return console.error(t("forkSessionIgnoredNoSessionToForkUseWithResumeIdNameOrContinue","--fork-session ignored: no session to fork (use with --resume <id|name> or --continue).")),null;try{const{newId:e}=await forkCommandSessionFiles({sourceId:s});return e}catch(e){const n=e instanceof Error?e.message:String(e);return console.error(t("forkSessionFailedResumingTheOriginalSession","--fork-session failed: {{v0}}. Resuming the original session.",{v0:n})),null}},"forkSourceAtColdStart"),rV=__name(async(e={})=>{const n=zG(process.stdin.isTTY);let o,s;if(n.isValid||(console.error(n.errorMessage),process.exit(1)),tV(),"string"==typeof e.resume){const n=e.resume.trim();await isCommandProjectSessionInitialized()||(console.error(t("projectNotInitializedRunCmdToStartAConversationFirst","Project not initialized. Run cmd to start a conversation first.")),process.exit(1));const r=await resolveCommandSessionRef({sessionRef:n});"not-found"===r.status&&(console.error(buildSessionRefNotFoundMessage(n)),process.exit(1)),o=r.sessionId}if("string"==typeof e.session&&!o){const n=getCommandSessionRuntime(),i=await listAllSessionsV3({runtime:n}),l=getProjectSessionDir({env:n.env(),cwd:n.cwd()}),c=resolveSessionRefFlag({ref:e.session,isExistingFile:__name(e=>L(e),"isExistingFile"),listSessionIds:__name(()=>i.map(e=>e.id),"listSessionIds")});"not-found"===c.kind&&(console.error(t("sessionIsNeitherAnExistingJsonlTranscriptNorAKnownSessionIdPrefix",'--session "{{v0}}" is neither an existing .jsonl transcript nor a known session-id prefix.',{v0:e.session})),process.exit(1)),"ambiguous"===c.kind&&(console.error(t("sessionIsAmbiguousMatches",'--session "{{v0}}" is ambiguous — matches: {{v1}}',{v0:e.session,v1:c.candidates.join(", ")})),process.exit(1));const u="path"===c.kind?a(c.path):a(i.find(e=>e.id===c.sessionId)?.path??"");o=d(u,".jsonl"),r(u)!==l&&(s=u)}if(qG(e)&&!o){const e=await isCommandProjectSessionInitialized(),n=e?await listCommandSessions():[],o=YG({isInitialized:e,sessionCount:n.length});o.canProceed||(console.log(o.message),process.exit(o.exitCode))}if(e.forkSession){const n=await oV({resumeSessionId:o,useContinue:Boolean(e.continue)});n&&(o=n,e.continue=!1)}await applyStartupTheme();const i=await resolveKittyKeyboard();startEarlyInputCapture(),setStartupSessionOptions({...!1===e.session?{persist:!1}:{},...s?{sessionFilePath:s}:{},...e.name?{name:e.name}:{}});const l={},c=QG({options:e,resumeSessionId:o,sessionTitleHolder:l}),u=XG(i),m=needsLanguageOnboarding({language:(await cs()).language,skipOnboarding:e.skipOnboarding,sandbox:isSandboxMode()}),p=__name(e=>ct.createElement(Rt,{i18n:getI18n()},m?ct.createElement(LanguageOnboarding,{required:!0,ready:e},ct.createElement(GG,{...c})):ct.createElement(GG,{...c})),"renderCli"),g=st(p(!m),u);registerInkControl({clear:g.clear,stdout:process.stdout,instance:await resolveInkInstance(process.stdout)}),m&&g.rerender(p(!0)),await g.waitUntilExit(),ZG=!0,clearTerminalTitle(),nV();const h=consumePendingReload();h&&await handlePendingReload(h);const f=await(l.loadTitle?.())??null,y=Boolean(f);let v;const S=getAutoCreatedWorktree();if(S){const e=worktreeHasWork(S.worktreePath,S.baseSha);let n="auto";if(e||y){const o=worktreeChangeCount(S.worktreePath),r=e?o>0?t("youHaveUncommittedFileTheseWillBeLostIfYouRemoveTheWorktree","You have {{v0}} uncommitted file{{v1}}. These will be lost if you remove the worktree.",{v0:o,v1:1===o?"":"s"}):t("thisWorktreeHasCommitsThatAreNotOnYourMainBranchTheyWillBeLostIfYouRemoveIt","This worktree has commits that are not on your main branch. They will be lost if you remove it."):null;n=await promptWorktreeExit({worktreePath:S.worktreePath,warning:r})}const o=finalizeAutoCreatedWorktree(n);if(o.worktreePath){const e=VG(createOSC8Link(fileUrl(o.worktreePath),tildeHome(o.worktreePath),!1));if(o.removed){const o="auto"===n?t("removedEmptyWorktree","Removed empty worktree"):t("removedWorktree2","Removed worktree");process.stdout.write(`${VG(o)}\n${e}\n\n`)}else if(o.kept){v=o.worktreePath;const n=o.reason&&"kept"!==o.reason?` (${o.reason})`:"";process.stdout.write(`${VG(`Kept worktree${n}`)}\n${e}\n\n`)}}}if(isSandboxMode()){const e=getSandboxConnection()?.sessionId??getRequestedSandboxSessionId();return void(e&&process.stdout.write(`${VG("Reopen it with:")}\n${VG(`${Z_()} --cloud ${e}`)}\n`))}const w=l.sessionId;if(w&&await commandSessionExists(w)){const e=f?sanitizeTitleForOutput(f):"";process.stdout.write(KG(e||w,v))}},"interactiveMode");function modelAndEffort(e){const n=sandboxModelFor(e??getConfiguredModel()),o=sandboxEffortFor(n);return{...n?{model:n}:{},...o?{effort:o}:{}}}function openCommand2(e){return`${Z_()} --cloud ${e}`}async function startWithTask(e){const n=runSandboxStartPreflight({prompt:e.task,...e.baseBranch?{baseBranch:e.baseBranch}:{}});return(await e.client.start({repoUrl:n.repoUrl,prompt:e.task,mode:"rpc",...e.baseBranch?{baseBranch:e.baseBranch}:{},...modelAndEffort(e.model)})).sessionId}function refusal(e){const n=e.error;return n?n.message??"refused":null}async function sendToLiveBox(e){const n=await openSandboxConnection({sessionId:e.sessionId,...modelAndEffort(e.model)});try{const o=void 0!==e.model||!0===e.effortGiven?modelAndEffort(e.model):{};if(e.model&&o.model){const e=refusal(await n.request({method:"session/set_model",params:{model:o.model}}));if(e)throw new Error(`The cloud session kept its model: ${e}.`)}if(o.effort){const e=refusal(await n.request({method:"session/set_effort",params:{effort:o.effort}}));if(e)throw new Error(`The cloud session kept its effort: ${e}.`)}const r=refusal(await n.request({method:"turn/start",params:{input:e.task,headless:!0}}));if(r)throw new Error(`The cloud session did not take the task: ${r}.`)}finally{n.close()}}async function sendFollowUp(e){const{client:n,sessionId:o,task:r}=e,s=await n.status({sessionId:o});if("running"===s.status)throw new Error(`A task is already running in ${o.slice(0,8)}\nConnect: ${openCommand2(o)}`);!1===s.boxUp||"rpc"!==s.mode?await n.continueTask({sessionId:o,prompt:r,mode:"rpc",...modelAndEffort(e.model)}):await sendToLiveBox({sessionId:o,task:r,...e.model?{model:e.model}:{},...e.effortGiven?{effortGiven:!0}:{}})}async function runSandboxPrint(e){warnAboutPromptTruncation(e.task);const n=truncateSandboxPrompt(e.task);if(!n)throw new Error('Give the task: cmd -p --cloud "task", or cmd -p --cloud <id> "task" for a follow-up.');if(e.sessionId&&e.baseBranch)throw new Error("--base applies to a new session only; a follow-up stays on its branch.");const o=createSandboxClient({transport:createSandboxTransport()}),r=e.sessionId?(await sendFollowUp({client:o,sessionId:e.sessionId,task:n,...e.model?{model:e.model}:{},...e.effortGiven?{effortGiven:!0}:{}}),e.sessionId):await startWithTask({client:o,task:n,...e.baseBranch?{baseBranch:e.baseBranch}:{},...e.model?{model:e.model}:{}});process.stdout.write(`${r}\n`),process.stderr.write(It.dim(`${e.sessionId?"Sent to the cloud session":"Cloud session started"}\nConnect: ${openCommand2(r)}\n`))}Jt(),hL(),__name(modelAndEffort,"modelAndEffort"),__name(openCommand2,"openCommand"),__name(startWithTask,"startWithTask"),__name(refusal,"refusal"),__name(sendToLiveBox,"sendToLiveBox"),__name(sendFollowUp,"sendFollowUp"),__name(runSandboxPrint,"runSandboxPrint"),Jt(),hL(),Jt();function isAgentMetrics(e){if("object"!=typeof e||null===e)return!1;const n=e;return"string"==typeof n.name&&"number"==typeof n.turns&&"object"==typeof n.toolCalls&&null!==n.toolCalls&&"number"==typeof n.toolErrors&&"number"==typeof n.tokens&&"number"==typeof n.durationMs}function extractAgentMetrics(e){const n=e.indexOf("\x3c!-- BENCHMARK_AGENT_METRICS:");if(-1===n)return{cleanContent:e,metrics:null};const o=n+29,r=e.indexOf(" --\x3e",o);if(-1===r)return{cleanContent:e,metrics:null};try{const s=e.substring(o,r),a=JSON.parse(s);return isAgentMetrics(a)?{cleanContent:e.substring(0,n).trimEnd()+e.substring(r+4),metrics:a}:{cleanContent:e,metrics:null}}catch{return{cleanContent:e,metrics:null}}}__name(isAgentMetrics,"isAgentMetrics"),__name(extractAgentMetrics,"extractAgentMetrics");var sV=__name(e=>({turnNumber:e,apiDurationMs:0,toolCalls:[],toolDurationMs:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0}),"newTurn");function createBenchmarkCollector(e){const n=e.now??Date.now,o=e.writeFile??((e,n)=>{x.writeFileSync(e,n)}),r=n(),s=[],a=[],i=new Map,l=new Map;let c,d=!1;const u=__name(e=>{let n=e;for(;;){const{cleanContent:e,metrics:o}=extractAgentMetrics(n);if(!o)return;a.push(o),n=e}},"collectAgentMetrics"),m=__name(()=>{const e=s[s.length-1];if(e)return e;const n=sV(s.length+1);return s.push(n),n},"currentTurn"),p=__name(e=>{const o=m(),r=i.get(e.toolCallId);void 0!==r&&(o.toolDurationMs+=n()-r,i.delete(e.toolCallId));const s=l.get(e.toolCallId);s?s.isError=e.isError||s.isError:o.toolCalls.push({name:e.toolName,isError:e.isError})},"finishToolCall"),g=__name(e=>{if("turn_start"!==e.type)if("model_request_start"!==e.type){if("model_request_end"===e.type){const o=m();return void 0!==c&&(o.apiDurationMs+=n()-c,c=void 0),o.inputTokens+=e.usage.inputTokens,o.outputTokens+=e.usage.outputTokens,o.cacheReadTokens+=e.usage.cacheReadTokens,void(o.cacheCreationTokens+=e.usage.cacheWriteTokens)}if("tool_running"===e.type){const o={name:e.toolName,isError:!1};return i.set(e.toolCallId,n()),l.set(e.toolCallId,o),void m().toolCalls.push(o)}if("tool_completed"!==e.type)"tool_errored"!==e.type&&"tool_denied"!==e.type&&"tool_hook_blocked"!==e.type?"run_end"!==e.type||(d=d||"max_turns"===e.result.stopReason):p({toolCallId:e.toolCallId,toolName:e.toolName,isError:!0});else{p({toolCallId:e.toolCallId,toolName:e.toolName,isError:!1});for(const n of e.result)"text"===n.type&&u(n.text)}}else c=n();else s.push(sV(e.turnNumber))},"onEvent"),h=__name(()=>{const e={};let o=0,i=0,l=0,c=0;for(const n of s){for(const r of n.toolCalls)o++,e[r.name]=(e[r.name]??0)+1,r.isError&&i++;l+=n.inputTokens,c+=n.outputTokens}return{wallTimeMs:n()-r,turns:s.length,turnDetails:s.map(e=>({turnNumber:e.turnNumber,apiDurationMs:e.apiDurationMs,toolCalls:e.toolCalls.map(e=>({name:e.name,isError:e.isError})),toolDurationMs:e.toolDurationMs,inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheReadTokens:e.cacheReadTokens,cacheCreationTokens:e.cacheCreationTokens})),toolCalls:{total:o,byType:e,errors:i},tokens:{input:l,output:c},maxTurnsReached:d,agents:[...a]}},"snapshot"),f=__name(()=>{try{o(e.outputPath,JSON.stringify(h(),null,2))}catch{}},"write");return{onEvent:g,snapshot:h,write:f}}__name(createBenchmarkCollector,"createBenchmarkCollector");var aV=null,iV=!1;function resolveLaunchPermissionMode(e){return e.permissionMode?e.permissionMode:e.plan?"plan":e.dangerouslySkipPermissions?"bypass":void 0}function getAuthKey4(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function readStdin(){return new Promise((e,n)=>{let o="";const r=setTimeout(()=>{n(new Error("Timeout reading from stdin"))},3e4);process.stdin.setEncoding("utf8"),process.stdin.on("data",e=>{o+=e}),process.stdin.on("end",()=>{clearTimeout(r),e(o)}),process.stdin.on("error",e=>{clearTimeout(r),n(e)}),process.stdin.resume()})}function writeOutput(e,n){return!n||e.destroyed?Promise.resolve():new Promise((o,r)=>{e.write(n,e=>{e?r(e):o()})})}function setupSignalHandlers(){if(iV)return;iV=!0;const e=__name(e=>{aV?.abort(),process.stderr.write(`\n${e}\n`),exitAfterModHostTeardown(YE.INTERRUPTED)},"handleTermination");process.on("SIGINT",()=>e("Interrupted.")),process.on("SIGTERM",()=>e("Terminated."))}async function printMode(e={}){trackCommand({command:"print"}),setupSignalHandlers(),aV=new AbortController;const n=e.benchmarkOutput?createBenchmarkCollector({outputPath:e.benchmarkOutput}):null,o=resolveToolEnable({flags:e,env:process.env}),r=toolEnableWarning(o);r&&process.stderr.write(`${r}\n`);const s=await runPrintMode({options:e,stdinIsTTY:Boolean(process.stdin.isTTY),readStdin:readStdin,isAuthenticated:__name(async()=>null!==await getAuthKey4(),"isAuthenticated"),createHarness:__name(async({sessionId:n,entrypoint:r,headless:s,maxTurns:a,mods:i,resumeState:l,sessionFilePath:c})=>{const d=await createHarnessSession({sessionId:n,baseUrl:getApiBaseUrl(),entrypoint:r,headless:s,maxTurns:a,mods:i,dangerouslySkipPermissions:e.dangerouslySkipPermissions,permissionMode:resolveLaunchPermissionMode(e),...o.forceEnabledTools?{forceEnabledTools:o.forceEnabledTools}:{},modHost:await loadCommandModHost({projectMods:Boolean(e.dangerouslySkipPermissions)}),resumeState:l,persist:e.persist,sessionFilePath:c,ideBridge:createLocalIdeBridge()});return e.name&&d.setSessionName(e.name),d},"createHarness"),emit:__name(e=>{"session"===e.type&&process.stderr.write(`session: ${e.sessionId}\n`)},"emit"),writeStdout:__name(e=>{process.stdout.write(e)},"writeStdout"),...n?{runQuery:__name(e=>runHarnessQuery({...e,onEvent:__name(o=>{e.onEvent?.(o),n.onEvent(o)},"onEvent")}),"runQuery")}:{}});n?.write(),await Promise.all([writeOutput(process.stdout,s.stdoutText),writeOutput(process.stderr,s.stderrText)]),exitAfterModHostTeardown(s.exitCode)}function resolveLaunchPermissionMode2(e){return e.permissionMode?e.permissionMode:e.plan?"plan":e.dangerouslySkipPermissions?"bypass":void 0}async function isAuthenticated(){return null!==await getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function rpcMode(e={}){let n;trackCommand({command:"rpc"}),setCliSurface("rpc"),await isAuthenticated()||(process.stderr.write(cP),process.exit(YE.AUTH_ERROR)),e.model&&setModelOverride(e.model);try{n=await resolvePrintSession(e)}catch(e){const n=e instanceof Error?e.message:String(e);process.stderr.write(`Error: ${n}\n`),process.exit(YE.ERROR)}n.warning&&process.stderr.write(`${n.warning}\n`);const o={sessionId:n.sessionId,priorMessages:n.priorMessages,...n.sessionFilePath?{sessionFilePath:n.sessionFilePath}:{}},r=await resolvePrintResumeState(o);await runRpcMode({sessionId:n.sessionId,resume:void 0!==r,catalog:{startingModel:__name(()=>startingModel({sessionId:n.sessionId,resume:void 0!==r}),"startingModel"),providerForModel:providerForModel,selectableModels:selectableModelIds,effortLevels:effortLevels},loadResumeState:__name(()=>resolvePrintResumeState(o),"loadResumeState"),...!1===e.persist?{saveSessionModel:__name(async()=>{},"saveSessionModel")}:{},stdin:process.stdin,writeLine:__name(e=>{process.stdout.write(`${e}\n`)},"writeLine"),dangerouslySkipPermissions:e.dangerouslySkipPermissions,createHarness:__name(async({sessionId:o,mods:r,drainQueuedMessages:s,peekQueuedMessageCount:a,provider:i,resumeState:l,permissionMode:c,modelLaneSnapshot:d})=>{const u=await createHarnessSession({sessionId:o,baseUrl:getApiBaseUrl(),provider:i,...d?{modelLaneSnapshot:d}:{},entrypoint:resolvePrintHarnessEntrypoint(n.entrypoint),headless:!0,mods:r,drainQueuedMessages:s,peekQueuedMessageCount:a,dangerouslySkipPermissions:e.dangerouslySkipPermissions,permissionMode:c??resolveLaunchPermissionMode2(e),modHost:await loadCommandModHost({projectMods:Boolean(e.dangerouslySkipPermissions)}),...l?{resumeState:l}:{},persist:e.persist,...n.sessionFilePath?{sessionFilePath:n.sessionFilePath}:{},ideBridge:createLocalIdeBridge()});return e.name&&u.setSessionName(e.name),u},"createHarness")}),await new Promise(e=>{process.stdout.write("",()=>e())}),exitAfterModHostTeardown(YE.SUCCESS)}__name(resolveLaunchPermissionMode,"resolveLaunchPermissionMode"),__name(getAuthKey4,"getAuthKey"),__name(readStdin,"readStdin"),__name(writeOutput,"writeOutput"),__name(setupSignalHandlers,"setupSignalHandlers"),__name(printMode,"printMode"),Jt(),hL(),__name(resolveLaunchPermissionMode2,"resolveLaunchPermissionMode"),__name(isAuthenticated,"isAuthenticated"),__name(rpcMode,"rpcMode"),Jt(),hL();var lV=getPackageJson(import.meta.url),cV="string"==typeof lV.version&&lV.version.trim()?lV.version:"unknown";function createSystemOneTransport(){const e=T();return createNodeTransport({baseUrl:getApiBaseUrl(),headers:__name(()=>resolveCommandAuthHeaders({sessionId:e,cliVersion:cV}),"headers")})}function readStdinText(){return new Promise((e,n)=>{let o="";const r=setTimeout(()=>{n(new Error("timeout reading from stdin"))},3e4);r.unref?.(),process.stdin.setEncoding("utf8"),process.stdin.on("data",e=>{o+=e}),process.stdin.on("end",()=>{clearTimeout(r),e(o)}),process.stdin.on("error",e=>{clearTimeout(r),n(e)}),process.stdin.resume()})}function systemOneUsageHint(e){return`Run it headlessly: cmd -p '{"state": "...", "questions": {"<name>": {"type": "noul", "instructions": "..."}}}' -m ${e}`}async function runSystemOnePrint(e){const n=e.now??Date.now,o=n(),r="json"===e.outputFormat,s=__name((s,a,i=`Error: ${s}\n`)=>r?{exitCode:a,stderrText:i,stdoutText:`${safeJsonStringify({type:"result",subtype:"error",model:e.model,durationMs:n()-o,error:s})}\n`}:{exitCode:a,stderrText:i},"fail");let a=e.query;if(void 0===a||""===a.trim()){if(e.stdinIsTTY)return s(`no request given. ${systemOneUsageHint(e.model)}, or pipe the JSON on stdin`,YE.ERROR);try{a=await e.readStdin()}catch(e){return s(`could not read stdin: ${e instanceof Error?e.message:String(e)}`,YE.ERROR)}}const i=parseSystemOneQuery(a);if(!i.ok)return s(i.error,YE.ERROR);const l=await runSystemOne({transport:e.transport,model:e.model,request:i.request,...e.signal?{signal:e.signal}:{}});if(!l.ok&&"bad-response"===l.kind)return s(l.error,YE.SERVER_ERROR);if(!l.ok){const e=classifyPrintModeError(l.error);return s(e.stderrText.replace(/^\s*Error: /,"").trim(),e.exitCode,e.stderrText)}const{response:c}=l;if(!r){const n={model:c.model??e.model,answers:c.answers,usage:c.usage??{}};return{exitCode:YE.SUCCESS,stdoutText:`${JSON.stringify(n,null,2)}\n`}}const d=safeJsonStringify({type:"result",subtype:"success",model:c.model??e.model,answers:c.answers,usage:c.usage??{},durationMs:n()-o});return{exitCode:YE.SUCCESS,stdoutText:`${d}\n`}}async function ensureAuthenticated(){return ensureCommandAuthenticated({runLogin:__name(async()=>{await runLogin()},"runLogin"),getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),onAuthFailed:__name(()=>{console.error(`${vt.cross} Authentication failed. Please try again with: ${getBinaryCommand()} login`)},"onAuthFailed"),onLoginError:__name(e=>{console.error(`${vt.cross} Login failed: ${getErrorMessage(e)}`),console.error(`Please try again with: ${getBinaryCommand()} login`)},"onLoginError"),onCheckError:__name(e=>{console.error("Error checking authentication:",e)},"onCheckError")})}function suggestModel(e){return suggestModelInput({input:e,models:[...getAllModelOptions(),...customModelListOptions()]})}function formatModelList(e={}){return formatModelListText({color:e.color,defaultModel:wn,groups:[...getModelGroupsInOrder(),...customModelListGroups()]})}function formatSystemOneModelNote(){const e=["Decision models (headless only)"],n=isJevFree()?"free through September 24, 2026":"$0.042 per 1M input tokens, everything else free";for(const o of BM)e.push(`${o} typed questions in, probabilities out, ${n} — ${systemOneUsageHint(o)}`);return e.join("\n")}async function printModelList(){await loadCustomProviderModels();const e=Boolean(process.stdout.isTTY)&&void 0===process.env.NO_COLOR;process.stdout.write(`${formatModelList({color:e})}\n`),process.stdout.write(`\n${formatSystemOneModelNote()}\n`);const n=getCustomProviderWarningsSync();n.length>0&&process.stderr.write(`\nproviders.json needs attention — ${1===n.length?"one entry":"some entries"} did not load as written:\n${n.map(e=>` ${e}`).join("\n")}\n`)}async function resolveModelFlagOrExit({model:e}){const n=await resolveSelectableModel(e);if(n){if(n.warning&&process.stderr.write(`Note: ${n.warning}\n`),!n.providerId){const e=customProvidersDeclaring(n.modelId);e.length>0&&process.stderr.write(`Note: "${n.modelId}" routes via Command Code; your providers.json also declares it — use ${e.map(e=>`"${e}/${n.modelId}"`).join(" or ")} to route there instead.\n`)}return{modelId:n.modelId,...void 0!==n.providerId?{providerId:n.providerId}:{}}}const o=suggestModel(e),r=o?` Did you mean "${o}"?`:"";process.stderr.write(`Error: unknown model "${e}".${r}\nRun "${getBinaryCommand()} --list-models" to see all available models\n`),process.exit(1)}__name(createSystemOneTransport,"createSystemOneTransport"),__name(readStdinText,"readStdinText"),__name(systemOneUsageHint,"systemOneUsageHint"),__name(runSystemOnePrint,"runSystemOnePrint"),Jt(),hL(),__name(ensureAuthenticated,"ensureAuthenticated"),Jt(),hL(),__name(suggestModel,"suggestModel"),__name(formatModelList,"formatModelList"),__name(formatSystemOneModelNote,"formatSystemOneModelNote"),__name(printModelList,"printModelList"),__name(resolveModelFlagOrExit,"resolveModelFlagOrExit"),Jt(),hL();var dV=!1;function getAuthKey5(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function setupTelemetry(){initTelemetry()&&(startSession(),registerStartupTask(trackSystemInfo()),trackCliSessionExistsEvent(),registerCleanupHandlers())}function trackSystemInfo(){return trackTelemetryIdentity({client:createApiClient({baseUrl:getApiBaseUrl()}),platform:G.platform(),arch:G.arch()})}function registerCleanupHandlers(){process.on("beforeExit",async()=>{await shutdownTelemetry()}),process.on("exit",()=>{shutdownTelemetrySync(),releaseRemoteLockSync()}),process.on("SIGINT",handleShutdownSignal),process.on("SIGTERM",handleShutdownSignal)}async function disconnectMcpServers(){try{await Promise.allSettled([disconnectAllMcpServers(),yO()])}catch{}}function handleShutdownSignal(){dV||(dV=!0,abandonPendingCommandSpan(),Promise.allSettled([shutdownActiveRemote(),disconnectMcpServers(),disposeCommandModHost(),shutdownTelemetry()]).finally(()=>{process.exit(0)}))}async function shutdownAndExit(e=0){dV=!0,abandonPendingCommandSpan();try{await Promise.allSettled([shutdownActiveRemote(),disconnectMcpServers(),disposeCommandModHost(),shutdownTelemetry(No)])}finally{process.exit(e)}}async function trackCliSessionExistsEvent(){try{if(!await getAuthKey5())return;const e=getSessionId();if(!e)return;const n=getPackageJson(import.meta.url).version||"unknown",o=G.platform(),r=G.arch(),s=isTTY()?"interactive":"non-interactive";await trackLifecycleEvent({eventType:"cli_session_exists",metadata:{sessionId:e,cliVersion:n,mode:s,os:`${o}-${r}`},isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog})}catch{}}__name(getAuthKey5,"getAuthKey"),__name(setupTelemetry,"setupTelemetry"),__name(trackSystemInfo,"trackSystemInfo"),__name(registerCleanupHandlers,"registerCleanupHandlers"),__name(disconnectMcpServers,"disconnectMcpServers"),__name(handleShutdownSignal,"handleShutdownSignal"),__name(shutdownAndExit,"shutdownAndExit"),__name(trackCliSessionExistsEvent,"trackCliSessionExistsEvent");var uV=__name(async()=>{await ensureAuthenticated()||process.exit(1)},"requireAuth");function sandboxRequested(e){return void 0!==e.cloud&&!1!==e.cloud}function sandboxValue(e){return"string"==typeof e.cloud?e.cloud.trim():""}async function requireSandboxBypassAllowed(){isBypassPermissionsDisabled(await loadCommandCodeConfig({runtime:getCommandConfigRuntime()}))&&(process.stderr.write("Cloud sessions run without permission prompts, which your settings disable (permissions.disableBypass).\n"),process.exit(1))}async function interactiveModeAction(e,n){if(trackCommand({command:"interactive"}),n.listModels)return void await printModelList();if(n.addDir&&n.addDir.length>0)for(const e of n.addDir)Av.addDirectory(e);n.mod&&n.mod.length>0&&setModPathsOverride(n.mod),n.modOption&&n.modOption.length>0&&setModOptionsOverride(n.modOption);const o=(n.skill??[]).map(e=>a(e)),r=!1!==n.skills;if(setSkillLoadOverrides({extraPaths:o,discovery:r}),void 0!==n.worktree&&!1!==n.worktree){const e=void 0!==n.print||!0===n.rpc;e||Boolean(n.trust||n.dangerouslySkipPermissions)||await isCommandProjectSessionInitialized()||(console.error(`Worktree error: this directory isn't trusted yet. Run \`${getInvokedCommandName()}\` here once to trust it, then retry with --worktree.`),process.exit(1));const o=enterWorktreeFromFlag(n.worktree,{quiet:e,track:!e});o.ok||(console.error(`Worktree error: ${o.error}`),process.exit(1)),await initializeCommandProjectSessions()}const s=n.model?resolveSystemOneModel(n.model):void 0;if(s){void 0===n.print&&(process.stderr.write(`Error: ${s} is a decision model (TypeSafe System One): it answers typed questions with probabilities, not chat, so it has no interactive mode. ${systemOneUsageHint(s)}\n`),process.exit(1)),await uV(),trackCommand({command:"print"});const o=await runSystemOnePrint({model:s,query:extractPrintModeQuery({print:n.print,prompt:e}),outputFormat:n.outputFormat,stdinIsTTY:Boolean(process.stdin.isTTY),readStdin:readStdinText,transport:createSystemOneTransport()});o.stderrText&&process.stderr.write(o.stderrText),o.stdoutText&&process.stdout.write(o.stdoutText),await shutdownAndExit(o.exitCode)}const i=n.model?await resolveModelFlagOrExit({model:n.model}):void 0,l=i?.modelId,c=n,d=__name(e=>{process.stderr.write(`${e.message}\n`),e.ok||process.exit(1)},"applySettingResult");for(const e of $_){const n=c[e.key];"string"==typeof n&&d(await e.apply(n,{model:l}))}const u=c.config;if(Array.isArray(u))for(const e of u)"string"==typeof e&&d(await applyConfigSetting(e));if((n.dangerouslySkipPermissions||"bypass"===n.permissionMode)&&isBypassPermissionsDisabled(await loadCommandCodeConfig({runtime:getCommandConfigRuntime()}))&&(process.stderr.write("Bypass permissions are disabled by settings (permissions.disableBypass); continuing with normal permission prompts.\n"),n.dangerouslySkipPermissions=!1,"bypass"===n.permissionMode&&(n.permissionMode=void 0)),n.rpc)return void await rpcMode({dangerouslySkipPermissions:n.dangerouslySkipPermissions,plan:n.plan,permissionMode:n.permissionMode,model:l,resume:n.resume,continue:n.continue,..."string"==typeof n.session?{session:n.session}:{},forkSession:n.forkSession,name:n.name,persist:!1!==n.session&&void 0});if(n.base&&!sandboxRequested(n)&&(process.stderr.write("--base works with --cloud: cmd --cloud --base <branch>\n"),process.exit(1)),void 0!==n.print&&sandboxRequested(n)){await requireSandboxBypassAllowed(),await uV();const o=sandboxValue(n),r=IL.test(o)?o:null,s=extractPrintModeQuery({print:n.print,prompt:e});return void await runSandboxPrint({sessionId:r,task:r?s:o||s,...n.base?{baseBranch:n.base}:{},...l?{model:l}:{},..."string"==typeof c.effort?{effortGiven:!0}:{}}).catch(e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exit(1)})}if(void 0!==n.print){const o=extractPrintModeQuery({print:n.print,prompt:e});return void await printMode({query:o,dangerouslySkipPermissions:n.dangerouslySkipPermissions,plan:n.plan,permissionMode:n.permissionMode,maxTurns:n.maxTurns,verbose:n.verbose,toolsAll:n.toolsAll,toolsEnable:n.toolsEnable,outputFormat:n.outputFormat,model:l,benchmarkOutput:n.benchmarkOutput,name:n.name,resume:n.resume,continue:n.continue,forkSession:n.forkSession,session:"string"==typeof n.session?n.session:void 0,persist:!1!==n.session&&void 0})}l&&setModelOverride(l,i?.providerId),setGoalMaxTurnsOverride(n.maxTurns);const m=parseInteractivePromptArgument((sandboxRequested(n)&&!IL.test(sandboxValue(n))?sandboxValue(n):"")||e);await uV();const p=buildInteractiveRuntimeOptions(n),g=resolveInteractiveLaunchConfig({options:n,runtimeOptions:p,initialPrompt:m});if(setOriginalInvocation({trust:p.trust,dangerouslySkipPermissions:p.dangerouslySkipPermissions,skipOnboarding:p.skipOnboarding,maxTurns:n.maxTurns,skillPaths:o,skillDiscovery:r}),await installKeybindingsFromConfig({runtime:getCommandConfigRuntime()}),sandboxRequested(n)){const e=sandboxValue(n),o=IL.test(e)?e:null;return o&&n.base&&(process.stderr.write("--base applies to a new session only; a reopened one stays on its branch.\n"),process.exit(1)),await requireSandboxBypassAllowed(),enableSandboxMode({sessionId:o,...n.base?{baseBranch:n.base}:{}}),await rV({...g,dangerouslySkipPermissions:!0}),void await shutdownAndExit(Number(process.exitCode??0))}await rV(g),await shutdownAndExit(0)}__name(sandboxRequested,"sandboxRequested"),__name(sandboxValue,"sandboxValue"),__name(requireSandboxBypassAllowed,"requireSandboxBypassAllowed"),__name(interactiveModeAction,"interactiveModeAction"),Jt(),hL(),Jt(),hL();var mV={connected:St.green("✔"),installed:St.green("✔"),up_to_date:St.green("✔"),needs_reload:St.yellow("◌"),failed:St.red("✖"),not_in_ide:St.yellow("◌")};function formatSetupResult(e){const{prefix:n,ide:o,suffix:r}=getIDESetupStatusHeadline(e.status,e.ide),s=`${n}${o??""}${r}`;return["",`${mV[e.status]} ${s}`,...(e.details??[]).map(e=>St.dim(` ${e}`)),""]}__name(formatSetupResult,"formatSetupResult"),globalThis.COMMAND_CODE_CWD=process.cwd();var pV=__name(()=>process.cwd(),"getCwd"),gV=__name(()=>process.argv.slice(2),"getArgs"),hV=__name(()=>{const e=pV(),n=gV(),o=getCliStartupEnvironment(n);dlog(`[Startup] cwd: ${e}`),dlog(`[Startup] args: ${n.join(" ")}`),dlog(`[Startup] env: ${o}`),dlog(`[Startup] traceId: ${getTraceId()??"unavailable"}`)},"logStartupInfo");function getAuthKey6(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function preRun(){hV();const e=resolveCliStartupPlan({args:gV()});if(e.shouldRunIdeSetup){const e=await runIdeSetup({host:XH,moduleUrl:import.meta.url});formatSetupResult(e).forEach(e=>console.log(e)),process.exit("failed"===e.status?1:0)}e.shouldRunAutoUpdate&&runCliStartupPendingUpdates({plan:e,host:lG}),await migrateDeprecatedModel(),await getAuthKey6()&&detectAndTrackFirstInstall({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),getCliVersion:__name(()=>getPackageJson(import.meta.url).version??"unknown","getCliVersion"),log:dlog}).catch(()=>{}),e.shouldRunAutoUpdate&&runCliStartupUpdateCheck({plan:e,host:lG}),scheduleCliStartupIdeAutoInstall({host:XH,moduleUrl:import.meta.url})}__name(getAuthKey6,"getAuthKey"),__name(preRun,"preRun"),Jt(),hL();var fV=Object.fromEntries(Object.entries(yC).map(([e,n])=>[n,e])),yV=new Set(ZL.map(e=>e.id));function formatProviderModule(e){return yV.has(e)?`@byokkit/cmd-provider-${e}`:e}async function buildProviderLoginRows(e={}){const n=e.hasCredential??hasProviderCredential,o=e.modules??(await loadInstalledProviderModules()).modules,r=e.moduleSources??{},s=[];for(const e of o){const o=Boolean(e.auth?.methods.length),a=fV[e.id]??e.id;s.push({provider:e.id,name:e.displayName??e.id,module:r[e.id]??formatProviderModule(e.id),description:e.transport.kind,authenticated:!!o&&await n({provider:a}),canAuthenticate:o,installed:!0})}const a=new Set(s.map(e=>e.provider));for(const e of ZL){if(a.has(e.id))continue;if(!1===e.discoverable)continue;const o=fV[e.id]??e.id;s.push({provider:e.id,name:e.displayName,module:e.package,description:"gateway",authenticated:await n({provider:o}),canAuthenticate:!0,installed:!1})}return s}function formatProviderLoginRows(e){const n=getBinaryCommand(),o=[It.bold("Providers available for login/logout"),""];for(const r of e){const e=r.authenticated?It.green("logged in"):It.dim("not logged in"),s=r.installed?"":It.dim(" (not installed, installs on first login)");o.push(It.cyan(r.provider)),o.push(` Name: ${r.name}`),o.push(` Module: ${r.module}${s}`),o.push(` Type: ${r.description}`),r.canAuthenticate?(o.push(` Status: ${e}`),o.push(` Login: ${n} login ${r.provider}`),o.push(` Logout: ${n} logout ${r.provider}`),o.push("")):(o.push(` Status: ${It.dim("no login")}`),o.push(""))}return o.join("\n")}async function providersAction(e){const n=await loadInstalledProviderModules(),o=await buildProviderLoginRows({modules:n.modules,moduleSources:n.sources});if(e.json)console.log(JSON.stringify({providers:o,errors:n.errors}));else if(console.log(formatProviderLoginRows(o)),n.errors.length>0){console.log(It.yellow("Provider load errors"));for(const e of n.errors)console.log(`${It.yellow(e.id)}: ${e.error}`)}}__name(formatProviderModule,"formatProviderModule"),__name(buildProviderLoginRows,"buildProviderLoginRows"),__name(formatProviderLoginRows,"formatProviderLoginRows"),__name(providersAction,"providersAction");var vV=new Ve("providers").description("List providers available for login/logout").option("--json","Output providers as JSON for automation").action(providersAction);function assertSessionId(e){IL.test(e)||(console.error(It.red(`Invalid session id: ${e}`)),console.error(It.dim(`Find it with: ${getBinaryCommand()} cloud list`)),process.exit(1))}function client(){return createSandboxClient({transport:createSandboxTransport()})}function printTaskSummary(e){console.error(`${It.dim("Status:")} ${e.status}`),e.prUrl&&console.error(`PR: ${It.cyan(e.prUrl)}`),e.error&&console.error(It.red(e.error)),console.error(It.dim(`Open it with: ${getBinaryCommand()} --cloud ${e.sessionId}`))}async function statusSandboxTask(e){assertSessionId(e),printTaskSummary(await client().status({sessionId:e}))}async function stopSandboxTask(e){assertSessionId(e);const{status:n}=await client().cancel({sessionId:e});"cancelled"===n?console.error(It.yellow("Session stopped.")):console.error(It.yellow(`Session already ${n.replace("_"," ")}.`))}async function listSandboxTasks(){const{sessions:e}=await client().list();if(0!==e.length){console.log(It.dim(`${"SESSION".padEnd(38)}${"STATUS".padEnd(12)}${"AGE".padEnd(12)}REPO`));for(const n of e){const e=n.repoUrl.replace(/^https:\/\/github\.com\//,""),o=formatRelativeTimeShort({timestamp:n.createdAt});console.log(`${n.sessionId.padEnd(38)}${n.status.padEnd(12)}${o.padEnd(12)}${It.dim(e)}`)}}else console.error("No cloud sessions yet.")}function run3(e){e().catch(e=>{const n=e instanceof Error?e.message:"Unknown error";console.error(It.red(n)),process.exit(1)})}function createSandboxCommand(){const e=new Ve("cloud").description("Manage your cloud sessions").action(()=>{console.log(["Work in the cloud:"," cmd --cloud open a new session (the TUI)"," cmd --cloud <id> reopen a session",' cmd --cloud "message" open a new session with a first message',' cmd -p --cloud "task" run one task, print the session id',' cmd -p --cloud <id> "task" send a follow-up task',"Manage sessions:"," cmd cloud list | status <id> | stop <id>"].join("\n"))});return e.command("list").description("List your cloud sessions").action(()=>run3(listSandboxTasks)),e.command("status").description("Show a session summary").argument("<sessionId>").action(e=>run3(()=>statusSandboxTask(e))),e.command("stop").description("Stop a running session").argument("<sessionId>").action(e=>run3(()=>stopSandboxTask(e))),e}Jt(),Jt(),hL(),__name(assertSessionId,"assertSessionId"),__name(client,"client"),__name(printTaskSummary,"printTaskSummary"),__name(statusSandboxTask,"statusSandboxTask"),__name(stopSandboxTask,"stopSandboxTask"),__name(listSandboxTasks,"listSandboxTasks"),__name(run3,"run"),__name(createSandboxCommand,"createSandboxCommand"),Jt(),Jt(),hL();var SV=[`${It.dim("Usage:")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("<owner/repo>")}`,"",`${It.dim("Examples:")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/my-skills")} ${It.dim("# single-skill repo")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/skills/path/to/skill")} ${It.dim("# specific path in repo")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/multi-skills -s my-skill")} ${It.dim("# pick one from multi-skill repo")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/repo@branch")} ${It.dim("# specific branch")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/repo --global")} ${It.dim("# install to ~/.commandcode/skills/")}`],wV=__name((e,n)=>`${It.green(vt.tick)} Installed ${It.cyan(e)} ${It.dim(`${vt.arrowRight} ${n}/`)}`,"formatInstalled"),kV=__name(e=>`${It.red(vt.cross)} ${e}`,"formatError");async function cleanupAndExit(e,n){await removeSkillInstallTempDir(e),process.exit(n)}function validateRepoFormat(e){const n=validateSkillInstallRepoInput(e);n.valid||(console.error(kV(n.message)),console.log(""),n.message.startsWith("Invalid repository")&&(console.log(`Expected format: ${It.cyan("owner/repo")} or ${It.cyan("owner/repo/path")}`),console.log("")),SV.forEach(e=>console.log(e)),process.exit(1))}async function addAction2(e,n){const o=process.stdout.isTTY&&process.stdin.isTTY,r=n.global?"~/.commandcode/skills":".commandcode/skills";let s;validateRepoFormat(e);const a=Dt({text:`Fetching ${It.cyan(e)}...`,color:"cyan"});try{let i=[];a.start();const l=await discoverCommandSkills(e,{keepTempDir:!0}),{skills:c,tempDir:d}=l;s=d,a.stop();const u=planSkillInstallSelection({skills:c,requestedSkillName:n.skill,interactive:o,repoInput:e});if("empty"===u.kind&&(console.error(kV(`No skills found in ${It.cyan(e)}`)),console.log(It.dim("The repository must contain at least one SKILL.md file.")),await cleanupAndExit(s,1)),"missing-requested-skill"===u.kind)return console.error(kV(`Skill "${u.requestedSkillName}" not found in ${It.cyan(u.repoInput)}`)),console.log(""),console.log(It.dim("Available skills:")),u.availableSkillNames.forEach(e=>console.log(` ${It.cyan(e)}`)),void await cleanupAndExit(s,1);if("prompt"===u.kind){const n=await Qe({message:`Select skills to install from ${e}`,options:[...u.options],required:!0});"symbol"==typeof n&&(console.log(It.dim("Cancelled")),await cleanupAndExit(s,0)),i=resolvePromptedSkillSelection({skills:c,selectedNames:n})}let m;"selected"===u.kind&&(i=u.skills);const p=await installSelectedCommandSkills({repoInput:e,skills:i,global:n.global,force:n.force,cachedTempDir:s,onSkillStart:__name(e=>{m=Dt({text:`Installing ${It.cyan(e.name)}...`,color:"cyan"}),m.start()},"onSkillStart"),onSkillInstalled:__name(e=>{m?.stop(),console.log(wV(e.name,r))},"onSkillInstalled"),onSkillFailed:__name(({skillName:e,message:n})=>{m?.stop(),console.error(kV(`Failed to install "${e}"`)),console.log(It.dim(` ${n}`))},"onSkillFailed")});await cleanupAndExit(s,p.exitCode)}catch(e){a.stop();const n=e instanceof Error?e.message:String(e);console.error(kV(n)),await cleanupAndExit(s,1)}}__name(cleanupAndExit,"cleanupAndExit"),__name(validateRepoFormat,"validateRepoFormat"),__name(addAction2,"addAction");var CV=new Ve("add").description("Install a skill from a GitHub repository").argument("<repo>","GitHub repository (owner/repo or owner/repo/path)").option("-g, --global","Install to global skills (~/.commandcode/skills/)").option("-f, --force","Overwrite if skill already exists").option("-s, --skill <name>","Specific skill name to install from repo").addHelpText("after",`\n${SV.join("\n")}`).configureOutput({outputError:__name((e,n)=>{e.includes("missing required argument")?(console.error(kV("No repository specified.")),console.log(""),SV.forEach(e=>console.log(e))):n(e)},"outputError")}).action(addAction2);Jt(),hL();var bV=__name((e,n)=>{const o=n.length>60?n.substring(0,57)+"...":n;return` ${It.cyan(e)} ${It.dim(`· ${o}`)}`},"formatSkillLine"),TV=__name((e,n)=>`${It.bold(It.white(e))} ${It.dim(`(${n})`)}`,"formatSectionHeader"),EV=__name(e=>{if(0!==e.warningCount){console.log(""),console.log(`${It.bold(It.yellow("Skipped"))} ${It.dim(`(${e.warningCount})`)}`);for(const n of e.warningGroups){console.log(""),console.log(` ${It.bold(n.category)} ${It.dim(`(${n.items.length})`)}`);for(const e of n.items)console.log(` ${It.bold(skillIdentifier(e.path))}`),console.log(` ${It.dim(e.reason)}`)}}},"printWarnings"),PV=__name(e=>{const n=["",It.dim("No skills installed."),"",It.dim("Looking in:")];for(const o of e.lookupPaths)n.push(It.dim(` ${o.path} ${It.white(`(${o.label})`)}`));return n.push("",`Install a skill: ${It.cyan(e.installCommand)} ${It.dim(e.installPlaceholder)}`,""),n},"formatEmptyHint"),MV=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),IV=__name(e=>{e&&(console.log(""),console.log(It.dim(e.replace("--debug",It.cyan("--debug")))))},"printDebugHint");async function listAction2(){const e="true"===process.env.DEBUG;try{const{global:n,project:o,bundled:r,warnings:s}=await listCommandSkills(),a=planSkillListView({global:n,project:o,bundled:r,warnings:s,showWarnings:e});if(a.empty){const n=await buildSkillListEmptyHint({runtime:getCommandSkillRuntime(),binCommand:`${getBinaryCommand()}`});MV(PV(n));for(const e of a.sections)console.log(TV(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(bV(e.name,e.description))}),console.log("");e&&(EV({warningCount:a.warningCount,warningGroups:a.warningGroups}),a.warningCount>0&&console.log("")),e||(IV(a.debugHint),console.log("")),process.exit(0)}console.log(""),console.log(heading({text:"Skills",sub:It.dim(`${a.userInstalledTotal} installed`)}));for(const e of a.sections)console.log(""),console.log(TV(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(bV(e.name,e.description))});e&&EV({warningCount:a.warningCount,warningGroups:a.warningGroups}),e||IV(a.debugHint),console.log(""),process.exit(0)}catch(e){const n=e instanceof Error?e.message:"Unknown error";console.error(`${It.red(vt.cross)} Failed to list skills: ${n}`),process.exit(1)}}__name(listAction2,"listAction");var AV=new Ve("list").description("List all installed skills. Run with -d/--debug to also see why any skills were skipped.").action(listAction2);Jt(),hL();var xV=__name((e,n)=>`${It.green(vt.tick)} Removed ${It.cyan(e)} from ${n} skills`,"formatRemoved"),RV=__name(e=>`${It.red(vt.cross)} ${e}`,"formatError"),LV=__name((e,n)=>{let o=e;for(const e of n)o=o.replace(e,It.cyan(e));return It.dim(o)},"formatHint");function validateSkillNameEarly(e){const n=validateSkillRemoveName(e);return n.valid?null:n.message}async function removeAction2(e,n){try{const o=process.stdout.isTTY&&process.stdin.isTTY,r=n.global?"global":"project",s=validateSkillNameEarly(e);if(s&&(console.error(RV(s)),console.log(LV(getSkillListCommandHint({binCommand:`${getBinaryCommand()}`}),[`${getBinaryCommand()} skills list`])),process.exit(1)),!n.yes&&o){const n=await Xe({message:`Remove ${It.cyan(e)} from ${r} skills?`});"symbol"!=typeof n&&n||(console.log(It.dim("Cancelled")),process.exit(0))}await removeCommandSkill({skillName:e,global:n.global}),console.log(xV(e,r)),process.exit(0)}catch(o){const r=o instanceof Error?o.message:"Failed to remove skill",s=planSkillRemoveError({skillName:e,global:n.global,errorMessage:r,binCommand:`${getBinaryCommand()}`});if(console.error(RV(s.message)),"not-found"===s.kind)for(const n of s.hints)console.log(LV(n,[`${getBinaryCommand()} skills remove ${e} --global`,`${getBinaryCommand()} skills list`]));process.exit(1)}}__name(validateSkillNameEarly,"validateSkillNameEarly"),__name(removeAction2,"removeAction");var OV=new Ve("remove").description("Remove an installed skill").argument("<skill-name>","Name of the skill to remove").option("-g, --global","Remove from global skills (~/.commandcode/skills/)").option("-y, --yes","Skip confirmation prompt").action(removeAction2),DV=new Ve("skills").description("Manage skills from GitHub repositories").addCommand(CV).addCommand(OV).addCommand(AV);Jt(),hL(),Jt(),hL(),Jt(),Jt(),hL();var NV=[vt.bullet,vt.squareSmallFilled,vt.lozenge,vt.star,vt.triangleRight,vt.triangleUp];Jt(),hL(),Jt();var FV=[/MallocStackLogging: can't turn off malloc stack logging because it was not enabled/i];function shouldIgnoreChunk(e){return FV.some(n=>n.test(e))}function chunkToString(e){return"string"==typeof e?e:Buffer.isBuffer(e)?e.toString("utf-8"):""}async function withFilteredStderrNoise(e){const n=process.stderr.write.bind(process.stderr);process.stderr.write=(e,...o)=>{const r=chunkToString(e);return!(!r||!shouldIgnoreChunk(r))||("function"==typeof o[0]?n(e,o[0]):n(e,o[0],o[1]))};try{return await e()}finally{process.stderr.write=n}}__name(shouldIgnoreChunk,"shouldIgnoreChunk"),__name(chunkToString,"chunkToString"),__name(withFilteredStderrNoise,"withFilteredStderrNoise"),Jt(),hL(),Jt(),Jt();var _V=__name(({summary:e,elapsedSeconds:o})=>{const{t:r}=xt();if(!e)return null;const s=n.relative(process.cwd(),e.storage),a=e.learningCount>0;return ct.createElement(tt,{flexDirection:"column",marginLeft:3},ct.createElement(tt,{marginBottom:1,flexDirection:"row"},ct.createElement(nt,{color:XO.DIM},VD),ct.createElement(tt,{marginLeft:2},ct.createElement(nt,{color:eD.TEXT},a?r("learned2","Learned {{v0}} {{v1}}",{v0:e.learningCount,v1:1===e.learningCount?"preference":"preferences"}):r("tasteProfileInitialized","Taste profile initialized"),o?r("in2"," in {{v0}} {{v1}}",{v0:o,v1:1===o?"second":"seconds"}):""))),ct.createElement(tt,{flexDirection:"column",marginLeft:1},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},vt.pointerSmall," ",r("tasteStoredIn","Taste stored in")," "),ct.createElement(_D,{url:fileUrl(e.storage),text:s||".commandcode/taste/taste.md",color:XO.CYAN})),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},vt.pointerSmall," ",r("shareYourCodingTaste","Share your coding taste:")," ",ct.createElement(nt,{color:XO.CYAN},"npx taste push --all")))),ct.createElement(tt,{marginTop:1,marginLeft:1},ct.createElement(nt,{color:XO.DIM},a?r("commandCodeAutomaticallyUsesUpdatesTasteFilesAsYouCode","Command Code automatically uses & updates taste files as you code."):r("commandCodeWillLearnYourPreferencesAsYouCode","Command Code will learn your preferences as you code."))))},"RepoLearnCompletionSummary");Jt();var $V=__name(({message:e})=>ct.createElement(jF,null,e),"RepoLearnErrorPanel");Jt();var UV=__name(({done:e,error:n})=>{const{t:o}=xt();return n?ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("press","Press")," ",ct.createElement(qN,null,"Esc")," ",o("toExit","to exit"))):e?ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("press","Press")," ",ct.createElement(qN,null,"Enter")," ",o("toContinue","to continue"))):ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("escToCancel2","Esc to cancel")))},"RepoLearnFooter");Jt(),hL();var BV=__name(({insights:e,insightCount:n})=>{const{t:o}=xt();return 0===e.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1,marginLeft:4},ct.createElement(nt,{color:XO.CYAN},n>0?o("recentSignalsLearned","Recent signals · {{v0}} {{v1}} learned",{v0:n,v1:1===n?"preference":"preferences"}):o("recentSignals","Recent signals")),e.map((e,n)=>ct.createElement(nt,{key:`${n}-${e}`,color:XO.DIM},NV[n%NV.length]," ",truncateRepoLearnPanelText(e,14))))},"RepoLearnRollingInsights");Jt(),hL();var jV=__name(({status:e})=>"active"===e?ct.createElement(tt,null,ct.createElement(nt,{color:XO.YELLOW},ct.createElement(Et,{type:"dots"})),ct.createElement(nt,null," ")):"complete"===e?ct.createElement(nt,{color:rD.BG},vt.square," "):ct.createElement(nt,{color:XO.DIM},vt.circle," "),"StepStatusIndicator");function getStepLabelColor(e,n){return"complete"===e?XO.WHITE:n?XO.YELLOW:XO.DIM}__name(getStepLabelColor,"getStepLabelColor");var WV=__name(({steps:e,currentMessage:n})=>ct.createElement(tt,{flexDirection:"column",marginTop:1},e.map(e=>{const o="active"===e.status;return ct.createElement(tt,{key:e.id,flexDirection:"column",marginBottom:0,marginLeft:3},ct.createElement(tt,null,ct.createElement(tt,{marginRight:1},ct.createElement(jV,{status:e.status})),ct.createElement(nt,{bold:o,color:getStepLabelColor(e.status,o)},translateUiCopy(e.label))),o&&n?ct.createElement(tt,{marginLeft:3},ct.createElement(nt,{color:XO.DIM},truncateRepoLearnPanelText(n))):null)})),"RepoLearnStepList");Jt();var HV=__name(({isComplete:e,hasError:n})=>{const{t:o}=xt();return n?ct.createElement(nt,{color:XO.DIM},o("learningInterrupted","learning interrupted")):e?ct.createElement(nt,{color:eD.TEXT},o("learnedYourCodingTaste","learned your coding taste")):ct.createElement(BD,null)},"TastePillStatus"),GV=__name(({isComplete:e,hasError:n})=>ct.createElement(tt,{flexDirection:"column",marginTop:1,marginBottom:0},ct.createElement(YD,null),ct.createElement(tt,{marginTop:0},ct.createElement(nt,{color:XO.DIM},VD),ct.createElement(tt,{marginLeft:2},ct.createElement(HV,{isComplete:e,hasError:n})))),"RepoLearnTastePill");Jt();var VV=__name(({text:e,repoName:n})=>{const{t:o}=xt(),r=useTerminalWidth(),s=ut(()=>AN(r),[r]);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(CD,null,s.trimEnd())),e?ct.createElement(nt,{color:XO.WHITE},e):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.WHITE},o("learningYourCodingTasteFrom","Learning your coding taste from")," ",ct.createElement(nt,{bold:!0,color:XO.CYAN},n??o("repository","repository"))),ct.createElement(nt,{color:XO.DIM},o("thisMayTakeAFewMinutesDependingOnRepositorySize","This may take a few minutes depending on repository size"))))},"RepoLearnHeader");function useRepoLearnState(e){const n=e??kx,[o,r]=mt(()=>createRepoLearnProjection({stepOrder:n})),s=pt(null),[a,i]=mt(null),l=ht(()=>{s.current=Date.now()},[]),c=ht(e=>{r(n=>({...n,showLogin:e}))},[]);return gt(()=>{const e=__name(()=>{r(createRepoLearnProjection({stepOrder:n})),s.current=null,i(null)},"handleReset"),o=__name(e=>{r(n=>reduceRepoLearnEvent({state:n,event:e}))},"handleEvent"),a=__name(()=>{r(e=>completeRepoLearnProjection({state:e})),s.current&&i(Math.round((Date.now()-s.current)/1e3))},"handleComplete");return qp.on("reset",e),qp.on("new-event",o),qp.on("learning-complete",a),()=>{qp.off("reset",e),qp.off("new-event",o),qp.off("learning-complete",a)}},[n]),{steps:o.steps,currentMessage:o.currentMessage,insights:o.insights,insightCount:o.insightCount,summary:o.summary,done:o.done,error:o.error,showLogin:o.showLogin,setShowLogin:c,elapsedSeconds:a,markStarted:l}}function StatusPanel({error:e,done:n,summary:o,elapsedSeconds:r,insights:s,insightCount:a}){return e?ct.createElement($V,{message:e}):n?ct.createElement(_V,{summary:o,elapsedSeconds:r}):ct.createElement(BV,{insights:s,insightCount:a})}function RepoLearnProgressApp({runTask:e,onExit:n,stepOrder:o,headerText:r,repoName:s}){const{t:a}=xt(),i=useRepoLearnState(o),l=pt(!1);return gt(()=>{l.current||(l.current=!0,i.markStarted(),e().catch(()=>{}))},[e,i.markStarted]),at((e,o)=>{if(i.showLogin)return;const r=o.escape||""===e,s=o.return||"\n"===e||"\r"===e;r?n({published:!1,cancelled:!0}):(i.done||i.error)&&s&&n({published:!1,cancelled:!!i.error})}),i.showLogin?ct.createElement(tt,{flexDirection:"column"},ct.createElement(VV,{text:r,repoName:s}),ct.createElement(yj,{onComplete:(e,n)=>{i.setShowLogin(!1),e?qp.resolveAuth():qp.rejectAuth(n)},onCancel:()=>{i.setShowLogin(!1),qp.rejectAuth(a("loginCancelled","Login cancelled")),n({published:!1,cancelled:!0})}})):ct.createElement(tt,{flexDirection:"column"},ct.createElement(VV,{text:r,repoName:s}),ct.createElement(GV,{isComplete:i.done&&!i.error,hasError:Boolean(i.error)}),ct.createElement(WV,{steps:i.steps,currentMessage:i.currentMessage}),ct.createElement(StatusPanel,{error:i.error,done:i.done,summary:i.summary,elapsedSeconds:i.elapsedSeconds,insights:i.insights,insightCount:i.insightCount}),ct.createElement(UV,{done:i.done,error:i.error}))}async function runRepoLearnProgress(e){return await applyStartupTheme(),withFilteredStderrNoise(()=>renderProgressUI(e))}function renderProgressUI(e){return new Promise((n,o)=>{qp.reset();const r=new AbortController;let s,a,i=!1,l=!1;const c=__name(async()=>{try{s=await e.runTask(r.signal)}catch(e){r.signal.aborted||(a=e,qp.addEvent({type:"error",message:toRepoLearnErrorMessage(e)}),qp.markLearningComplete())}},"handleRunTask"),d=__name(({published:e,cancelled:c})=>{l||(l=!0,i=e,r.abort(),u.unmount(),qp.reset(),a?o(a):n({result:s,published:i,cancelled:c}))},"handleExit"),u=st(ct.createElement(RepoLearnProgressApp,{stepOrder:e.stepOrder,headerText:e.headerText,repoName:e.repoName,runTask:c,onExit:d}));u.waitUntilExit().catch(e=>{qp.reset(),o(e)})})}function getAuthKey7(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function logLearnSummary(e){const{summary:n}=e;console.log(St.cyan("\n ─── Results ───\n")),console.log(` Source: ${n.sourceName}`),console.log(` Signals: ${n.signalCount} extracted`),console.log(` Context: ${n.contextLength} chars compiled`),console.log(` Taste dir: ${n.tasteDir}`),console.log("")}Jt(),hL(),__name(useRepoLearnState,"useRepoLearnState"),__name(StatusPanel,"StatusPanel"),__name(RepoLearnProgressApp,"RepoLearnProgressApp"),__name(runRepoLearnProgress,"runRepoLearnProgress"),__name(renderProgressUI,"renderProgressUI"),__name(getAuthKey7,"getAuthKey"),__name(logLearnSummary,"logLearnSummary");var KV=__name(e=>n=>{const o=parseInt(n,10);if(isNaN(o)||o<1)throw new Error(`${e} must be a positive integer`);return o},"parsePositiveInt");function createLearnCommand(){return new Ve("learn").description("Learn coding taste from repository change history").argument("[source]","Local path, GitHub URL, or owner/repo (defaults to current directory)").option("--max-commits <number>","Maximum commits to analyze",KV("--max-commits"),200).addOption(new Ke("--max-signals <number>","Maximum diff signals to extract").default(50).argParser(KV("--max-signals")).hideHelp()).option("--branch <name>","Branch to analyze (defaults to main/master)").action(async(e,n)=>{try{await learnTaste({source:e??".",maxCommits:n.maxCommits??200,maxSignals:n.maxSignals??50,branch:n.branch})}catch(e){const n=e instanceof Error?e.message:String(e);console.error(`Error: ${n}`),process.exit(1)}})}async function learnTaste(e){const n=createNodeRuntime(),o=await isLocalTasteSource({runtime:n,source:e.source}),r=isTTY(),s=await resolveDisplayName({runtime:n,source:e.source}),a=!await getAuthKey7();if(a&&!r)return console.log(""),console.log(" Login required to learn taste."),console.log(""),console.log(` Run: ${getBinaryCommand()} login`),console.log(` Then: npx taste learn ${e.source}`),void console.log("");let i;const l=__name(()=>{i?.().finally(()=>process.exit(130))},"sigintHandler");process.once("SIGINT",l);let c=!1;try{const l=__name(async r=>{const{summary:s,resolved:l}=await runLearnPipeline({runtime:n,reporter:qp,runLearn:__name(e=>runTasteLearningAgent({...e,createSession:createHarnessSession}),"runLearn"),source:e.source,maxCommits:e.maxCommits,maxSignals:e.maxSignals,branch:e.branch,isLocalSource:o,needsAuth:a,signal:r});return i=l?.cleanup,s},"runTask");if(r){const e=o?void 0:[...Cx];({cancelled:c}=await runRepoLearnProgress({runTask:l,repoName:s,stepOrder:e}))}else logLearnSummary({summary:await l((new AbortController).signal)})}finally{process.off("SIGINT",l),i&&await i()}r&&!c||process.exit(0),sN(),await rV({skipOnboarding:!0}),await shutdownAndExit(0)}__name(createLearnCommand,"createLearnCommand"),__name(learnTaste,"learnTaste"),Jt(),hL(),Jt(),hL();var zV=St.bgGreen.black.bold(" TASTE ");function shortenPath(e){const n=process.env.HOME??process.env.USERPROFILE??"";return n&&e.startsWith(n)?`~${e.slice(n.length)}`:e}function exitWithError(e){console.error(`${St.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`),process.exit(1)}function formatUsageLine(e){const n=e.match(/^(\s*(?:Usage:|or:)?\s*)(cmd)(\s+.+?)(\s+\(.*\))?$/);return n?`${St.dim(n[1])}${St.green(n[2])}${St.white(n[3]??"")}${n[4]?St.dim(n[4]):""}`:St.dim(e)}function exitWithUsage({message:e,usage:n}){console.error(`${St.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`);for(const e of n)console.error(formatUsageLine(e));process.exit(1)}function exitWithTasteCliValidation(e){e.valid||(e.usage&&exitWithUsage({message:e.message,usage:e.usage}),exitWithError(e.message))}__name(shortenPath,"shortenPath"),__name(exitWithError,"exitWithError"),__name(formatUsageLine,"formatUsageLine"),__name(exitWithUsage,"exitWithUsage"),__name(exitWithTasteCliValidation,"exitWithTasteCliValidation");var qV=__name((e,n)=>n,"linkFallback");function getPackageLink({owner:e,packageName:n}){const o=buildPackageUrl({owner:e,packageName:n});return _t(`commandcode.ai/${e}/${n}`,o,{fallback:qV})}function getProfileLink(e){const n=buildProfileUrl2(e);return _t(`commandcode.ai/${e}`,n,{fallback:qV})}function wrapLine(e,n=0){const o=(process.stdout.columns||80)-n;return $t(e,o,{trim:!1})}function logMergeReviewTip(){console.log(St.yellow("\nTip: Review merged learnings to ensure no conflicting rules."))}function handleResultErrors(e){for(const n of e){const e=normalizeTasteResultError(n);console.error(`${St.red("Error:")} ${e}`)}process.exit(1)}async function flushAndExit(e){await Promise.race([shutdownTelemetry(),new Promise(e=>setTimeout(e,500))]).catch(()=>{}),process.exit(e)}function withErrorHandler(e){return async(...n)=>{try{await e(...n),await flushAndExit(0)}catch(e){const n=e instanceof Error?e.message:String(e);console.error(St.red(`Error: ${n}`)),await flushAndExit(1)}}}function formatSingleIssue(e,n){const o=[`${e.line?St.dim(` Line ${e.line}: `):" "}${n(e.message)}`];return e.suggestion&&o.push(St.dim(` → ${e.suggestion}`)),o}function formatIssueGroup(e,n,o){return 0===e.length?[]:[o,...e.flatMap(e=>formatSingleIssue(e,n)),""]}function formatValidationIssues(e){const{result:n,verbose:o=!0}=e;if(0===n.issues.length){const e=n.summary.charAt(0),o=n.summary.substring(2);return`${St.green(e)} ${St.dim(o)}`}if(!o)return n.summary;const r=n.issues.filter(e=>"error"===e.severity),s=n.issues.filter(e=>"warning"===e.severity);return[r.length>0?St.red(n.summary):St.yellow(n.summary),"",...formatIssueGroup(r,St.red,St.bold(St.red("Errors:"))),...formatIssueGroup(s,St.yellow,St.bold(St.yellow("Warnings:")))].join("\n").trim()}__name(getPackageLink,"getPackageLink"),__name(getProfileLink,"getProfileLink"),__name(wrapLine,"wrapLine"),__name(logMergeReviewTip,"logMergeReviewTip"),__name(handleResultErrors,"handleResultErrors"),__name(flushAndExit,"flushAndExit"),__name(withErrorHandler,"withErrorHandler"),Jt(),__name(formatSingleIssue,"formatSingleIssue"),__name(formatIssueGroup,"formatIssueGroup"),__name(formatValidationIssues,"formatValidationIssues");var YV=createTasteLintService({runtime:createNodeRuntime(),formatValidationIssues:formatValidationIssues});function createLintCommand(){return new Ve("lint").argument("[package]","Taste package name").option("-g, --global","Validate taste packages from global storage (~/.commandcode)").option("--all","Validate all taste packages").description(`Validate taste package format ${St.dim("(structure, style, etc.)")}`).action(withErrorHandler(async(e,n)=>runLint({packageName:e,options:n})))}function validateLintOptions({packageName:e,options:n}){exitWithTasteCliValidation(validateTasteLintCliOptions({packageName:e,options:n}))}function logLintResults(e){for(const n of e.filesLinted)console.log(n.formatted);e.filesLinted.length>1&&logLintSummary(e),e.success||process.exit(1)}function logLintSummary({filesLinted:e,totalErrors:n,totalWarnings:o}){if(console.log(""),0===n&&0===o)return void console.log(`${St.green(vt.tick)} All ${St.green(e.length)} taste files are valid`);const r=[];n>0&&r.push(St.red(`${n} error${n>1?"s":""}`)),o>0&&r.push(St.yellow(`${o} warning${o>1?"s":""}`)),console.log(`Summary: ${r.join(", ")} across ${e.length} files`)}async function runLint({packageName:e,options:n}){console.log(""),validateLintOptions({packageName:e,options:n});const o=await YV.lint({packages:e?[e]:[],target:n.global?"local-global":"local-project"});if(o.errors.length>0){for(const e of o.errors)console.error(St.red(`Error: ${e.error}`));process.exit(1)}logLintResults(o)}__name(createLintCommand,"createLintCommand"),__name(validateLintOptions,"validateLintOptions"),__name(logLintResults,"logLintResults"),__name(logLintSummary,"logLintSummary"),__name(runLint,"runLint"),Jt(),hL();var JV={};__export(JV,{downloadPackage:()=>downloadPackage,downloadRemotePackage:()=>downloadRemotePackage,getAllPackages:()=>getAllPackages,getPackage:()=>getPackage,listPackages:()=>listPackages,writePackage:()=>writePackage,writePackages:()=>writePackages}),Jt(),hL();var QV=createNodeRuntime();function getAuthKey8(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function requireAuthKey(){const e=await getAuthKey8();if(!e)throw new Error(`No API key found. Please authenticate with: ${getBinaryCommand()} login`);return e}function storage(){return createTasteRemoteStorage({transport:createNodeTransport({baseUrl:getApiBaseUrl()}),requireAuthKey:requireAuthKey,getAuthKey:getAuthKey8,getAuthenticatedEntity:__name(()=>getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})}),"getAuthenticatedEntity"),trackError:__name(({error:e,label:n,heading:o,context:r})=>trackError({error:sanitizeErrorForTelemetry({error:e,label:n}),context:{component:Rs.TASTE_REMOTE_STORAGE,heading:o,...r??{}}}),"trackError"),onWarn:__name(e=>console.warn(e),"onWarn"),logDebug:__name(e=>dlog(e),"logDebug")})}function getAllPackages(){return storage().getAllPackages()}function getPackage(e){return storage().getPackage(e)}function downloadPackage(e){return storage().downloadPackage(e)}function downloadRemotePackage(e){return storage().downloadRemotePackage(e)}function writePackage(e){return storage().writePackage(e)}async function writePackages(e){const{packages:n,projectName:o,owner:r,isPublic:s,overwrite:a}=e,{rootContent:i,categoryContents:l}=e.files??await readProjectUploadFiles({runtime:QV,packages:n});return storage().writePackages({projectName:o,owner:r,isPublic:s,overwrite:a,rootContent:i,categoryContents:l,packageCount:n.length})}function listPackages(){return storage().listPackages()}__name(getAuthKey8,"getAuthKey"),__name(requireAuthKey,"requireAuthKey"),__name(storage,"storage"),__name(getAllPackages,"getAllPackages"),__name(getPackage,"getPackage"),__name(downloadPackage,"downloadPackage"),__name(downloadRemotePackage,"downloadRemotePackage"),__name(writePackage,"writePackage"),__name(writePackages,"writePackages"),__name(listPackages,"listPackages");var XV=createNodeRuntime(),ZV=createTasteLocalStorage({runtime:XV,target:"local-project"}),eK=createTasteLocalStorage({runtime:XV,target:"local-global"});function list(e){return createTasteListService({runtime:XV,localProject:ZV,localGlobal:eK,remote:JV}).list(e)}function getUserName(){return getCommandAuthUserName({runtime:getCommandConfigRuntime(),path:getAuthFile()})}function createListCommand(){return new Ve("list").alias("ls").option("-g, --global","List global packages").addOption(new Ke("-l, --local","Use local server").hideHelp()).option("--remote","List remote packages").addOption(new Ke("--staging","Use staging environment").hideHelp()).description(`List available packages ${St.dim("(project, global, or remote)")}`).action(withErrorHandler(async e=>runList({options:e})))}function formatPackageLine(e){return` ${St.white(e.name)}${e.publicBadge?St.green(e.publicBadge):""}${e.starsBadge?St.yellow(e.starsBadge):""}${e.downloadsBadge?St.gray(e.downloadsBadge):""}${e.padding}${St.dim.gray(e.statsLabel)}`}function validateListOptions(e){exitWithTasteCliValidation(validateTasteListCliOptions(e))}async function fetchPackages({options:e}){const n=resolveTasteListStorage(e),o=e.remote?Dt(`Fetching ${n.name} packages`).start():null,r=await list({location:n.location});return o?.stop(),{packages:r,storage:n}}async function getStorageLabel({options:e,fallback:n}){if(!e.remote)return n;const o=await getUserName();return o?getProfileLink(o):n}function printPackageTable({packages:e,subtitle:n}){console.log(`\n${zV} Packages`),console.log(`${St.gray("⎿")} ${St.dim(n)}\n`);const o=projectTasteListView({packages:e,symbols:{star:vt.star,arrowDown:vt.arrowDown}});for(const e of o.rows)console.log(formatPackageLine(e));console.log(St.dim(`\n${o.totalLabel}\n`))}async function runList({options:e}){console.log(""),validateListOptions(e);const{packages:n,storage:o}=await fetchPackages({options:e});0!==n.length?printPackageTable({packages:n,subtitle:await getStorageLabel({options:e,fallback:o.subtitle})}):console.log(St.yellow(`No taste packages found in ${o.name}`))}__name(list,"list"),__name(getUserName,"getUserName"),__name(createListCommand,"createListCommand"),__name(formatPackageLine,"formatPackageLine"),__name(validateListOptions,"validateListOptions"),__name(fetchPackages,"fetchPackages"),__name(getStorageLabel,"getStorageLabel"),__name(printPackageTable,"printPackageTable"),__name(runList,"runList"),Jt(),hL(),Jt(),hL();var tK=createNodeRuntime(),nK=createTasteLocalStorage({runtime:tK,target:"local-project"}),oK=createTasteLocalStorage({runtime:tK,target:"local-global"});async function open7(e){try{const n=await createTasteOpenService({runtime:tK,localProject:nK,localGlobal:oK,remote:JV}).resolveOpen(e);return n.success?(await Ft([{file:n.filePath,line:n.lineNumber}]),n):n}catch(e){return classifyTasteOpenError({error:e,platform:Ie.platform})}}function createOpenCommand(){return new Ve("open").argument("[package]","Taste package name, or owner/package to open in browser").option("-g, --global","Open taste package from global storage (~/.commandcode)").description(`Open a taste package in your editor ${St.dim("(use owner/package to open in browser)")}`).action(withErrorHandler(async(e,n)=>runOpen({packageName:e,options:n})))}function validateOpenOptions(e){exitWithTasteCliValidation(validateTasteOpenCliOptions(e))}async function runOpen({packageName:e,options:n}){console.log(""),validateOpenOptions(e);const o=parseOwnerPackage(e);o?await openInBrowser(o):await openInEditor2({packageName:e,options:n})}async function openInBrowser(e){const n=`https://commandcode.ai/${e.owner}/${e.packageName}`;await Ot(n);const o=getPackageLink({owner:e.owner,packageName:e.packageName});console.log(`${St.green(vt.tick)} Opened ${o} in browser`)}async function openInEditor2({packageName:e,options:n}){const o=resolveTasteOpenTarget(n),r=await open7({package:e,target:o});r.success||exitWithError(r.error??"Unknown error"),console.log(`${St.green(vt.tick)} Opened ${St.green(`'${e}'`)} taste package from ${n.global?"global":"project"}`)}__name(open7,"open"),__name(createOpenCommand,"createOpenCommand"),__name(validateOpenOptions,"validateOpenOptions"),__name(runOpen,"runOpen"),__name(openInBrowser,"openInBrowser"),__name(openInEditor2,"openInEditor"),Jt(),hL(),Jt(),hL(),Jt();var rK=null,sK=!1;function setActiveSpinner(e){rK=e}function stopActiveSpinner(e){rK&&(rK.stop(e),rK=null)}function setPrompted(e){sK=e}function wasPrompted(){return sK}function logResult(e){if(wasPrompted())return qe.outro(e),void setPrompted(!1);console.log(e)}function buildPullMessage(e){const{summary:n,sourceName:o}=e,r=wasPrompted()?"":`${vt.tick} `,s=n.detailPath?St.dim(`\n ${shortenPath(n.detailPath)}`):"";return"single-replaced"===n.variant?`${St.green(r)}Replaced ${St.green(`'${n.packageName}'`)} taste package in project`+s:"single-merged"===n.variant?`${St.green(r)}Pulled ${St.green(`'${n.packageName}'`)} taste package from ${o} ${St.gray(`(${n.mergeParts.join(", ")})`)}`+s:`${St.green(r)}Pulled ${St.green(`'${n.packageName}'`)} taste package from ${o}`+s}function logPullSummary(e){const{breakdown:n,sourceName:o}=e,r=[];if(n.succeeded.length>0&&r.push(wrapLine(`${St.green("Pulled")} (${n.succeeded.length}) ${n.succeeded.join(", ")}`,wasPrompted()?4:0)),n.overwritten.length>0&&r.push(wrapLine(`${St.yellow("Overwritten")} (${n.overwritten.length}) ${n.overwritten.join(", ")}`,wasPrompted()?4:0)),n.skipped.length>0&&r.push(wrapLine(`${St.dim("Skipped")} (${n.skipped.length}) ${St.dim(n.skipped.join(", "))}`,wasPrompted()?4:0)),wasPrompted())return r.length>0&&qe.log.message(r.join("\n")),qe.outro(`${n.totalLabel} from ${o}`),void setPrompted(!1);console.log(`${St.green(vt.tick)} ${n.totalLabel} from ${o}`),r.length>0&&console.log(r.join("\n"))}function logPullSuccess(e){const{result:n,sourceName:o,options:r}=e,s=projectTastePullSummary({result:n,options:r});if("multi"===s.variant)return logPullSummary({breakdown:s.breakdown,sourceName:o}),void(s.showTip&&logMergeReviewTip());"single-skipped"!==s.variant?"none"!==s.variant&&(logResult(buildPullMessage({summary:s,sourceName:o})),s.showTip&&logMergeReviewTip()):logResult(St.yellow(s.message))}function beginPrompt(e,n){stopActiveSpinner(),qe.intro(St.dim(e)),n&&qe.log.message(St.dim(n)),setPrompted(!0)}function handleCancel(e){qe.isCancel(e)&&(qe.cancel("Operation cancelled"),process.exit(0))}function startStrategySpinner(e){if("skip"===e){const e=qe.spinner();return e.start("Skipping"),void e.stop("Skipped")}const n="merge"===e?"Merging":"Overwriting",o="merge"===e?"Merged":"Overwritten",r=qe.spinner();r.start(n),setActiveSpinner({stop:__name(e=>r.stop(e??o),"stop"),cancel:__name(e=>r.cancel(e),"cancel"),error:__name(e=>r.error(e),"error")})}async function runConflictPrompt(e){if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(e.existsMessage),setPrompted(!0),qe.log.warn(e.nonInteractive.warning),e.nonInteractive.strategy;if(beginPrompt(`${e.title.prefix}${St.green(e.title.emphasis)}${e.title.suffix}`,e.existsMessage),qe.log.message(`${e.context.firstLine}\n${e.context.secondLine}${e.context.secondLineNote?` ${St.dim(e.context.secondLineNote)}`:""}`),e.reviewLink){const n=_t(e.reviewLink.text,e.reviewLink.url,{fallback:__name((e,n)=>n,"fallback")});qe.log.info(`${e.reviewLink.prefix}${St.cyan(n)} ${St.dim(e.reviewLink.note)}`)}const n=await qe.select({message:e.selectMessage,options:e.options.map(e=>({value:e.value,label:e.label,hint:e.hint})),initialValue:e.initialValue});handleCancel(n);const o=n;return startStrategySpinner(o),o}async function promptMergeStrategy(e){const{packageName:n,owner:o,localPkg:r,remoteLearningsCount:s}=e;return runConflictPrompt(buildTastePullConflictPrompt({packageName:n,owner:o,localLearningsCount:r.learnings.length,remoteLearningsCount:s}))}async function promptGlobalPushStrategy(e){const{packageName:n,localLearningsCount:o,globalPkg:r}=e;return runConflictPrompt(buildTasteGlobalPushConflictPrompt({packageName:n,localLearningsCount:o,globalLearningsCount:r.learnings.length}))}async function promptGlobalPullStrategy(e){const{packageName:n,localPkg:o,globalLearningsCount:r}=e;return runConflictPrompt(buildTasteGlobalPullConflictPrompt({packageName:n,localLearningsCount:o.learnings.length,globalLearningsCount:r}))}async function promptTypeMismatchStrategy(e){const{packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}=e;return runConflictPrompt(buildTasteTypeMismatchConflictPrompt({packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}))}async function promptSameTypeStrategy(e){const{packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}=e;return runConflictPrompt(buildTasteSameTypeConflictPrompt({packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}))}__name(setActiveSpinner,"setActiveSpinner"),__name(stopActiveSpinner,"stopActiveSpinner"),__name(setPrompted,"setPrompted"),__name(wasPrompted,"wasPrompted"),__name(logResult,"logResult"),__name(buildPullMessage,"buildPullMessage"),__name(logPullSummary,"logPullSummary"),__name(logPullSuccess,"logPullSuccess"),Jt(),hL(),Jt(),hL(),__name(beginPrompt,"beginPrompt"),__name(handleCancel,"handleCancel"),__name(startStrategySpinner,"startStrategySpinner"),__name(runConflictPrompt,"runConflictPrompt"),__name(promptMergeStrategy,"promptMergeStrategy"),__name(promptGlobalPushStrategy,"promptGlobalPushStrategy"),__name(promptGlobalPullStrategy,"promptGlobalPullStrategy"),__name(promptTypeMismatchStrategy,"promptTypeMismatchStrategy"),__name(promptSameTypeStrategy,"promptSameTypeStrategy");var aK=createNodeRuntime(),iK=createTasteLocalStorage({runtime:aK,target:"local-project"}),lK=createTasteLocalStorage({runtime:aK,target:"local-global"});function service(){return createTastePullService({localProject:iK,localGlobal:lK,remote:JV,getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:aK,...e}),"getDestinationPath"),promptGlobalPullStrategy:promptGlobalPullStrategy,promptMergeStrategy:promptMergeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function pull(e){return service().pull(e)}function pullRemote(e){return service().pullRemote(e)}function createPullCommand(){return new Ve("pull").argument("[package]","Taste package name, or owner/package to pull from remote").option("-g, --global","Pull taste package from global storage (~/.commandcode)").addOption(new Ke("--local","Use local server").hideHelp()).option("--remote","Pull taste package from commandcode.ai remote").option("--all","Pull all taste packages from global").option("--overwrite","Replace local package without prompting").option("--skip","Keep local package, skip conflicting pull").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ke("--staging","Use staging environment").hideHelp()).description(`Pull taste packages from remote or global into the project ${St.dim("(prompts on conflicts)")}`).action(withErrorHandler(async(e,n)=>{setPrompted(!1);const o=resolveRemoteDefault(n),{result:r,owner:s}=await runPull({packageName:e,options:o});r.success||handleResultErrors(r.errors),logPullSuccess({result:r,sourceName:o.remote?s??"remote":"global",options:o})}))}async function runPull(e){const{packageName:n,options:o}=e;console.log("");const r=planTastePullCommand({packageName:n,options:o});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-single"===r.route.type?pullRemoteSingle({options:r.options,route:r.route}):pullGlobal({options:r.options,route:r.route})}async function pullRemoteSingle(e){setActiveSpinner(Dt("Pulling taste package").start());const n=await pullRemote({owner:e.route.owner,packageName:e.route.packageName,overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:n,owner:e.route.owner}}async function pullGlobal(e){setActiveSpinner(Dt("Pulling taste package").start());const n=await pull({packages:[...e.route.packages],source:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:n}}function logResult2(e){if(wasPrompted())return qe.outro(e),void setPrompted(!1);console.log(e)}function formatAllLocation(n){return"taste-dir"===n.kind?shortenPath(e.dirname(e.dirname(n.filePath))):n.filePath}function formatDetailPath(e){return e?St.dim(`\n ${shortenPath(e)}`):""}function renderPushSummary(e){const n=wasPrompted()?"":`${vt.tick} `;if("none"!==e.variant)if("all-skipped"!==e.variant)if("all-pushed-remote"!==e.variant){if("all-replaced"===e.variant){const o=e.replacedLabel?` ${St.gray(`(${e.replacedLabel})`)}`:"";return void logResult2(`${St.green(n)}Replaced ${e.packageCountLabel} in ${formatAllLocation(e.location)}${o}`)}if("all-pushed"!==e.variant){if("all-merged"===e.variant){const o=e.mergeParts.length>0?` ${St.gray(`(${e.mergeParts.join(", ")})`)}`:"";return void logResult2(`${St.green(n)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}${o}`)}"single-replaced"!==e.variant?"single-merged"!==e.variant?"single-pushed"!==e.variant?"multi"!==e.variant||logResult2(wrapLine(`${St.green(n)}Pushed ${St.green(e.count)} taste packages ${St.green(`(${e.packages.join(", ")})`)} to ${e.targetName}`)):logResult2(`${St.green(n)}Pushed ${St.green(`'${e.packageName}'`)} taste package to ${e.locationLabel}`+formatDetailPath(e.detailPath)):logResult2(`${St.green(n)}Pushed ${St.green(`'${e.packageName}'`)} taste package to ${e.locationLabel} ${St.gray(`(${e.mergeParts.join(", ")})`)}`+formatDetailPath(e.detailPath)):logResult2(`${St.green(n)}Replaced ${St.green(`'${e.packageName}'`)} taste package in ${e.locationLabel}`+formatDetailPath(e.detailPath))}else logResult2(`${St.green(n)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}`)}else logResult2(`${St.green(n)}Pushed ${e.packageCountLabel} to remote`);else logResult2(`${St.green(n)}Skipped ${e.packageCountLabel}`)}function logPushUrls(e){for(const n of collectTastePushRemoteLinks(e))console.log(St.gray(` ${getPackageLink(n)}`))}function logConflictSummary(e){const n=projectTastePushOutcome(e.result),o=[];n.succeeded.length>0&&o.push(wrapLine(`${St.green("Merged")} (${n.succeeded.length}) ${n.succeeded.join(", ")}`,4)),n.overwritten.length>0&&o.push(wrapLine(`${St.yellow("Overwritten")} (${n.overwritten.length}) ${n.overwritten.join(", ")}`,4)),n.skipped.length>0&&o.push(wrapLine(`${St.dim("Skipped")} (${n.skipped.length}) ${St.dim(n.skipped.join(", "))}`,4)),o.length>0&&qe.log.message(o.join("\n")),qe.outro(n.totalLabel)}function logPushBreakdown(e){const n=projectTastePushOutcome(e);if(0===n.skipped.length&&0===n.overwritten.length)return;const o=[];n.succeeded.length>0&&o.push(wrapLine(`${St.green("Pushed")} (${n.succeeded.length}) ${n.succeeded.join(", ")}`)),n.overwritten.length>0&&o.push(wrapLine(`${St.yellow("Overwritten")} (${n.overwritten.length}) ${n.overwritten.join(", ")}`)),n.skipped.length>0&&o.push(wrapLine(`${St.dim("Skipped")} (${n.skipped.length}) ${St.dim(n.skipped.join(", "))}`)),o.length>0&&console.log(o.join("\n"))}function logPushSuccess(e){const{result:n,options:o}=e;if(wasPrompted())return setPrompted(!1),logConflictSummary({result:n}),void logPushUrls({result:n,options:o});const r=projectTastePushSummary({result:n,options:o});renderPushSummary(r),o.all&&logPushBreakdown(n),logPushUrls({result:n,options:o}),r.showTip&&logMergeReviewTip()}__name(service,"service"),__name(pull,"pull"),__name(pullRemote,"pullRemote"),__name(createPullCommand,"createPullCommand"),__name(runPull,"runPull"),__name(pullRemoteSingle,"pullRemoteSingle"),__name(pullGlobal,"pullGlobal"),Jt(),hL(),Jt(),hL(),__name(logResult2,"logResult"),__name(formatAllLocation,"formatAllLocation"),__name(formatDetailPath,"formatDetailPath"),__name(renderPushSummary,"renderPushSummary"),__name(logPushUrls,"logPushUrls"),__name(logConflictSummary,"logConflictSummary"),__name(logPushBreakdown,"logPushBreakdown"),__name(logPushSuccess,"logPushSuccess"),Jt(),hL();var cK=createNodeRuntime(),dK=createTasteLocalStorage({runtime:cK,target:"local-project"}),uK=createTasteLocalStorage({runtime:cK,target:"local-global"});async function getUserOwner(){try{const e=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});if(e.success&&e.user?.userName)return e.user.userName}catch{}}function service2(){return createTastePushService({localProject:dK,localGlobal:uK,remote:JV,getUserOwner:getUserOwner,getProjectName:__name(()=>e.basename(process.cwd()),"getProjectName"),getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:cK,...e}),"getDestinationPath"),promptGlobalPushStrategy:promptGlobalPushStrategy,promptTypeMismatchStrategy:promptTypeMismatchStrategy,promptSameTypeStrategy:promptSameTypeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function push(e){return service2().push(e)}function pushRemote(e){return service2().pushRemote(e)}async function promptOwnerSelection(e){const{userName:n,orgs:o}=e;if(0===o.length)return n;const{options:r,initialValue:s}=buildTasteOwnerSelectOptions({userName:n,orgs:o}),a=await qe.select({message:"Owner",options:[...r],initialValue:s});return qe.isCancel(a)&&(qe.cancel("Operation cancelled"),process.exit(0)),a}__name(getUserOwner,"getUserOwner"),__name(service2,"service"),__name(push,"push"),__name(pushRemote,"pushRemote"),Jt(),hL(),__name(promptOwnerSelection,"promptOwnerSelection");var mK=createNodeRuntime(),pK=createTasteLocalStorage({runtime:mK,target:"local-project"});function loadUserNamespaces(){return fetchUserNamespaces({client:createApiClient({baseUrl:getApiBaseUrl()})})}function createPushCommand(){return new Ve("push").description(`Push taste packages to remote ${St.dim("(commandcode.ai)")} or global ${St.dim("(~/.commandcode)")}`).argument("[package]","Taste package name to push (omit with --all)").option("--all","Push all taste packages to remote").option("--remote","Push to commandcode.ai remote (default)").option("-g, --global","Push to local global storage (~/.commandcode)").addOption(new Ke("--local","Use local server").hideHelp()).option("--public","Make package publicly discoverable on commandcode.ai").option("--private","Make package private (not publicly discoverable)").option("--owner <owner>","Push under a specific owner or organization").option("--overwrite","Replace existing package without prompting").option("--skip","Keep existing package, skip conflicting push").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ke("--staging","Push to staging environment").hideHelp()).action(withErrorHandler(async(e,n)=>{setPrompted(!1);const o=resolveRemoteDefault(n),r=await runPush({packageName:e,options:o});r.success||handleResultErrors(r.errors),logPushSuccess({result:r,options:o})}))}async function validateOwnerAccess(e){const n=await checkTastePushOwnerAccess({owner:e,loadNamespaces:loadUserNamespaces});"unavailable"!==n.type?"denied"===n.type&&exitWithError(`No push access to '${e}'. Available: ${n.availableOwners.join(", ")}`):dlog(`[Auth] validateOwnerAccess: namespace service unavailable, skipping — ${n.error instanceof Error?n.error.message:String(n.error)}`)}async function resolveOwnerForPush(e){let n;return resolveTastePushOwner({ownerPlan:e,validateOwnerAccess:validateOwnerAccess,hasLocalPackage:__name(async e=>(await pK.getAllPackages()).some(n=>n.category===e),"hasLocalPackage"),loadNamespaces:loadUserNamespaces,prompt:{onPromptStart:__name(({packageName:e})=>{qe.intro(St.dim(`pushing ${e}`)),setPrompted(!0),n=qe.spinner(),n.start("Resolving")},"onPromptStart"),onPackageMissing:__name(({packageName:e})=>{n?.error("Failed"),qe.outro(St.red(`Taste package '${e}' not found in project`)),process.exit(1)},"onPackageMissing"),onNamespacesLoaded:__name(({willPrompt:e})=>{n?.stop(e?"Select owner to push to":"")},"onNamespacesLoaded"),selectOwner:promptOwnerSelection}})}async function runPush(e){const{packageName:n,options:o}=e;console.log("");const r=planTastePushCommand({packageName:n,options:o});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-all"===r.route.type?pushRemoteAll({options:r.options,route:r.route}):"remote-single"===r.route.type?pushRemoteSingle({options:r.options,route:r.route}):pushGlobal({options:r.options,route:r.route})}async function pushRemoteAll(n){n.route.owner&&await validateOwnerAccess(n.route.owner);const o=formatTastePackageCount((await pK.getAllPackages()).length),r=e.basename(process.cwd()),s=resolveTasteStrategyLabel({strategy:n.route.strategy,isRemote:!0});console.log(St.dim(` Pushing ${o} to ${r} (remote)${s}`)),console.log(""),setActiveSpinner(Dt("Pushing taste packages").start());const a=await push({packages:[],target:"remote-project",overwrite:n.options.overwrite,isPublic:n.route.isPublic,strategy:n.route.strategy,owner:n.route.owner});return stopActiveSpinner(),a}async function pushRemoteSingle(e){const{owner:n,packageName:o}=await resolveOwnerForPush(e.route.ownerPlan);startPushSpinner({owner:n,pkgName:o});const r=await pushRemote({owner:n,packageName:o,overwrite:e.options.overwrite,isPublic:e.route.isPublic,strategy:e.route.strategy});return stopActiveSpinner(`Pushed to ${n}/${o}`),r}function startPushSpinner(e){const{owner:n,pkgName:o}=e;if(wasPrompted()){const e=qe.spinner();return e.start(`Pushing to ${n}/${o}`),void setActiveSpinner(e)}setActiveSpinner(Dt("Pushing taste package").start())}async function pushGlobal(e){const n=await pK.getAllPackages(),o=formatTastePackageCount(e.route.packages.length>0?e.route.packages.length:n.length),r=shortenPath(getTastePathForRuntime({runtime:mK,target:"local-global"})),s=resolveTasteStrategyLabel({strategy:e.route.strategy});console.log(St.dim(` Pushing ${o} to ${r}${s}`)),console.log(""),setActiveSpinner(Dt("Pushing taste packages").start());const a=await push({packages:[...e.route.packages],target:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),a}function scopeOf(e){return e.user?"global":"project"}function whereFor(e){return"project"===e?" for this project":" for all your projects"}async function applyTasteLearning(e){await setTasteLearning({tasteLearning:e.enabled,scope:e.scope,..."project"===e.scope?{projectPath:process.cwd()}:{}})}function reportEnabled(e){console.log(`${St.green(vt.tick)} Taste learning is on${whereFor(e)}. New preferences are saved and reused across sessions.`)}function reportDisabled(e){const n=getBinaryCommand();console.log(`${St.green(vt.tick)} Taste learning is off${whereFor(e)}. Turn it back on with ${St.cyan(`${n} taste enable`)}.`)}function createEnableCommand(){return new Ve("enable").option("-u, --user","Apply at the user level (all your projects)").description("Turn on taste learning (save preferences across sessions)").action(withErrorHandler(async e=>{const n=scopeOf(e);await applyTasteLearning({enabled:!0,scope:n}),console.log(""),reportEnabled(n)}))}function createDisableCommand(){return new Ve("disable").option("-u, --user","Apply at the user level (all your projects)").description("Turn off taste learning (stop saving preferences)").action(withErrorHandler(async e=>{const n=scopeOf(e);await applyTasteLearning({enabled:!1,scope:n}),console.log(""),reportDisabled(n)}))}function createTasteCommand(){const e=new Ve("taste");return e.description("Manage taste learning packages").allowUnknownOption().allowExcessArguments(),e.addCommand(createEnableCommand()),e.addCommand(createDisableCommand()),e.addCommand(createPushCommand()),e.addCommand(createPullCommand()),e.addCommand(createListCommand()),e.addCommand(createLintCommand()),e.addCommand(createOpenCommand()),isExperimentalEnabled()&&e.addCommand(createLearnCommand()),e}__name(loadUserNamespaces,"loadUserNamespaces"),__name(createPushCommand,"createPushCommand"),__name(validateOwnerAccess,"validateOwnerAccess"),__name(resolveOwnerForPush,"resolveOwnerForPush"),__name(runPush,"runPush"),__name(pushRemoteAll,"pushRemoteAll"),__name(pushRemoteSingle,"pushRemoteSingle"),__name(startPushSpinner,"startPushSpinner"),__name(pushGlobal,"pushGlobal"),Jt(),hL(),__name(scopeOf,"scopeOf"),__name(whereFor,"whereFor"),__name(applyTasteLearning,"applyTasteLearning"),__name(reportEnabled,"reportEnabled"),__name(reportDisabled,"reportDisabled"),__name(createEnableCommand,"createEnableCommand"),__name(createDisableCommand,"createDisableCommand"),__name(createTasteCommand,"createTasteCommand"),Jt(),hL();var gK=`${getBinaryCommand()}`;function formatVersion(e,n,o=!1){const r=o?It.bold(It.green(n)):It.white(n);return`${It.dim(e)} ${r}`}function showVersionDetails(e){for(const n of e.versionLines)console.log(formatVersion(n.label,n.version,n.highlight));console.log("");for(const n of e.detailLines)console.log(n.replace(`${gK} update`,It.bold(It.green(`${gK} update`))))}function showUpdateSuccessHint(e){for(const n of e.detailLines)console.log(It.dim(n.replace(gK,It.cyan(gK))))}function showManualUpdateHint(e){const[n,o]=e.manualUpdateLines;n&&console.log(It.dim(n)),o&&console.log(It.cyan(o))}function showCheckFailure(e){for(const n of e.detailLines)console.log(It.dim(n))}function renderUpdateEvent(e,n){if("type"in e)"updating"===e.type&&(n.text=e.text.replace("→",vt.arrowRight));else{if("check-failed"===e.kind)return n.fail(e.outcome.spinnerMessage),void showCheckFailure(e.outcome);if("up-to-date"!==e.kind)return"update-available"===e.kind?(n.stop(),console.log(""),console.log(`${It.green(vt.tick)} ${e.outcome.heading}`),void showVersionDetails(e.outcome)):"update-failed"===e.kind?(n.fail(e.outcome.spinnerMessage),void showManualUpdateHint(e.outcome)):"updated"===e.kind?(n.succeed(e.outcome.spinnerMessage),void showUpdateSuccessHint(e.outcome)):void 0;n.succeed(e.outcome.spinnerMessage)}}async function updateAction2(e){const n=Dt("Checking for updates...").start(),o=await runCliUpdateCommand({checkOnly:e.checkOnly,host:lG,copy:{binCommand:gK,updateCommand:"npm i -g command-code"},emit:__name(e=>renderUpdateEvent(e,n),"emit")});if("update-failed"===o.kind){const{failureReason:e}=o.outcome.telemetry;trackError({error:sanitizeErrorForTelemetry({error:new Error(e?`Update failed: ${e}`:"Update failed"),label:"cli_update_failed"}),context:{component:Rs.UPDATE_COMMAND,heading:o.outcome.telemetry.heading,"update.current_version":o.outcome.telemetry.currentVersion,"update.target_version":o.outcome.telemetry.targetVersion,...e&&{"update.failure_reason":e}}}),await shutdownTelemetry(),process.exit(1)}}__name(formatVersion,"formatVersion"),__name(showVersionDetails,"showVersionDetails"),__name(showUpdateSuccessHint,"showUpdateSuccessHint"),__name(showManualUpdateHint,"showManualUpdateHint"),__name(showCheckFailure,"showCheckFailure"),__name(renderUpdateEvent,"renderUpdateEvent"),__name(updateAction2,"updateAction");var hK=new Ve("update").description("Update Command Code to the latest version").option("--check-only","Check for updates without installing").allowUnknownOption().allowExcessArguments().action(updateAction2);function getAuthKey9(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}Jt(),hL(),__name(getAuthKey9,"getAuthKey");var fK=__name((e,n)=>`${vt.info} ${e}: ${It.cyan(n)}`,"formatInfoLine"),yK=__name(e=>It.bold(`${e}:`),"formatSectionHeader"),vK=__name(e=>It.red(e),"formatError"),SK=__name(e=>e instanceof Error?e.message:"Unknown error","formatErrorMessage"),wK=__name((e,n)=>["",yK(e),...n.map(e=>fK(e.label,e.value))],"buildSection"),kK=__name(e=>wK("User Information",projectWhoamiUserRows(e)),"buildUserOutput"),CK=__name(e=>wK("Organization",projectWhoamiOrgRows(e)),"buildOrgOutput"),bK=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),TK=__name((e,n)=>{bK(kK(e)),n&&bK(CK(n)),console.log("")},"displayUserInfo");async function whoamiAction(){const e=Dt("Fetching user information...").start();try{hasCommandApiKey(await getAuthKey9())||(e.fail(vK(ws)),process.exit(1));const n=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});isAuthenticatedEntityLoaded(n)||(e.fail(vK(ks)),process.exit(1)),e.succeed("User information loaded"),TK(n.user,n.org)}catch(n){e.fail(vK(`Error: ${SK(n)}`)),process.exit(1)}}__name(whoamiAction,"whoamiAction");var EK=new Ve("whoami").description("Display current user information").allowUnknownOption().allowExcessArguments().action(whoamiAction);handleUnhandledErrors(),setVscodeIpcLogger(dlog),setupTelemetry(),registerBundledRipgrep(),setImmediate(()=>{const e=getTelemetryEnv();recordCliFingerprintInBackground({getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),baseUrl:getApiBaseUrl(),cliEnvironment:normalizeCliEnvironment(e),cliVersion:getPackageJson(import.meta.url).version??"unknown",cmdZdr:"1"===process.env.CMD_ZDR})}),await preRun();var PK=createProgram();PK.action(interactiveModeAction),PK.addCommand(MF),PK.addCommand(_F),PK.addCommand(EK),PK.addCommand(hK),PK.addCommand(PF),PK.addCommand(EF),PK.addCommand(createTasteCommand()),PK.addCommand(createMcpCommand()),PK.addCommand(d_),PK.addCommand(wF),PK.addCommand(pF),PK.addCommand(SF),PK.addCommand(vV),PK.addCommand(DV),PK.addCommand(C_),PK.addCommand(createAcpCommand()),PK.addCommand(createSandboxCommand()),addRootModeOptions(PK),setupCommanderHooks(PK),PK.parse();
16
+ This is an unexpected error. Please file a bug report at https://github.com/CommandCodeAI/command-code/issues/new`,error:e,skipTelemetry:!0,exit:!1}),shutdownTelemetry().finally(()=>{process.exit(1)}))})}__name(handleStdoutError,"handleStdoutError"),__name(handleStderrError,"handleStderrError"),__name(reportBenignUncaughtWriteError,"reportBenignUncaughtWriteError"),__name(handleUnhandledErrors,"handleUnhandledErrors"),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt();var J_=null,Q_={};function requestReload(e){J_=e}function discardPendingReload(){J_=null}function consumePendingReload(){const e=J_;return J_=null,e}function setOriginalInvocation(e){Q_=e}function getOriginalInvocation(){return Q_}function clearedHandoffEnv(e=process.env,n=process.pid){return{...releasedPaneOwnerEnv(e,n)}}function canRespawn(){if(process.versions.bun)return!1;const e=process.argv[1];return"string"==typeof e&&e.length>0}function resetTerminalForRespawn(){process.stdout.isTTY&&sN()}async function writeReloadHandoff(e){const n=process.env[WI];if(n)try{await J.writeFile(n,serializeReloadCarryover(e))}catch{}}async function consumeReloadHandoff(e){try{return parseReloadCarryover(await J.readFile(e,"utf-8"))}catch{return null}finally{await J.unlink(e).catch(()=>{})}}function restoreTerminal({signal:e=null}={}){try{process.stdin.isTTY&&process.stdin.setRawMode(!1)}catch{}try{process.stdout.write("[?25h")}catch{}if(e)try{popKittyKeyboardProtocol()}catch{}}__name(requestReload,"requestReload"),__name(discardPendingReload,"discardPendingReload"),__name(consumePendingReload,"consumePendingReload"),__name(setOriginalInvocation,"setOriginalInvocation"),__name(getOriginalInvocation,"getOriginalInvocation"),__name(clearedHandoffEnv,"clearedHandoffEnv"),__name(canRespawn,"canRespawn"),__name(resetTerminalForRespawn,"resetTerminalForRespawn"),__name(writeReloadHandoff,"writeReloadHandoff"),__name(consumeReloadHandoff,"consumeReloadHandoff"),__name(restoreTerminal,"restoreTerminal");var X_=St.hex(XO.DIM);function printReloadFallbackHint(){process.stdout.write(X_("Couldn't restart automatically in this build — exiting instead.\n"))}async function shutdownWrapperRuntime(){try{await Promise.allSettled([disconnectAllMcpServers(),yO(),disposeCommandModHost()])}catch{}try{await shutdownTelemetry()}catch{}process.removeAllListeners("SIGINT"),process.removeAllListeners("SIGTERM"),process.on("SIGINT",()=>{}),process.on("SIGTERM",()=>{}),process.stdin.pause()}async function runRelaunchLoop(e){await shutdownWrapperRuntime();const o=await J.mkdtemp(n.join(V.tmpdir(),"cmd-reload-")),r=n.join(o,"handoff.json");let s=e;for(;;){const e=await commandSessionTranscriptExists(s.sessionId),n=buildRelaunchArgs({invocation:getOriginalInvocation(),request:s,resumable:e,argv:process.argv.slice(2)});clearTerminalTitle(),resetTerminalForRespawn();const a=w(process.execPath,[process.argv[1],...n],{stdio:"inherit",env:{...process.env,[WI]:r,[HI]:String(process.pid),...clearedHandoffEnv()}});let i,l;try{[i,l]=await new Promise((e,n)=>{a.once("exit",(n,o)=>e([n,o])),a.once("error",n)})}catch(e){restoreTerminal(),process.stderr.write(X_(`\nCouldn't relaunch Command Code: ${e.message}\n`)),await J.rm(o,{recursive:!0,force:!0}).catch(()=>{}),process.exit(1)}if(i!==jI){if(restoreTerminal({signal:l}),await J.rm(o,{recursive:!0,force:!0}).catch(()=>{}),l){const e=V.constants.signals[l];process.exit(e?128+e:1)}process.exit(i??1)}else s=await consumeReloadHandoff(r)??s}}async function handlePendingReload(e){canRespawn()?(isWrappedChild()&&(await writeReloadHandoff(e),await disposeCommandModHost(),process.exit(jI)),await runRelaunchLoop(e)):printReloadFallbackHint()}__name(printReloadFallbackHint,"printReloadFallbackHint"),__name(shutdownWrapperRuntime,"shutdownWrapperRuntime"),__name(runRelaunchLoop,"runRelaunchLoop"),__name(handlePendingReload,"handlePendingReload"),Jt();var Z_=__name(()=>{const e=getInvokedCommandName();return"win32"===process.platform&&"cmd"===e?"cmdc":e},"getResumeCommandName");function tildeHome(e){const n=V.homedir();return n&&e.startsWith(n)?`~${e.slice(n.length)}`:e}function formatWorktreePathLine(e){return` ${St.dim(vt.arrowRight)} ${createOSC8Link(fileUrl(e),tildeHome(e))}`}function enterWorktreeFromFlag(e,n={}){const{quiet:o=!1,track:r=!0}=n,s=process.cwd();if(!isGitRepo(s))return{ok:!1,error:"--worktree requires a git repository (none found here)."};const a=getMainWorktreeRoot(s)??s,i=createWorktree({spec:"string"==typeof e?e.trim():void 0,cwd:s});if(!i.ok)return{ok:!1,error:i.error};try{process.chdir(i.target.worktreePath),global.COMMAND_CODE_CWD=i.target.worktreePath}catch(e){return{ok:!1,error:`couldn't enter worktree: ${e instanceof Error?e.message:String(e)}`}}if(r&&i.created&&markAutoCreatedWorktree({worktreePath:i.target.worktreePath,branch:i.target.branch,baseSha:i.baseSha,mainRoot:a}),!o){const e=i.created?"Created":"Entered",n=i.created?St.dim(` (branch ${i.target.branch}${i.usedRemote?", from origin":""})`):"",o=i.created&&i.copiedFiles>0?St.dim(` · copied ${i.copiedFiles} file(s)`):"",r=i.created&&i.copyFailedFiles.length>0?St.dim(` · ${i.copyFailedFiles.length} include copy failure(s)`):"";process.stdout.write(`${St.cyan(vt.squareSmallFilled)} ${e} worktree ${St.bold(i.target.name)}${n}${o}${r}\n${formatWorktreePathLine(i.target.worktreePath)}\n`)}return dlog(`[worktree] entered ${i.target.worktreePath} (created=${i.created})`),{ok:!0,name:i.target.name,path:i.target.worktreePath}}Jt(),hL(),__name(tildeHome,"tildeHome"),__name(formatWorktreePathLine,"formatWorktreePathLine"),__name(enterWorktreeFromFlag,"enterWorktreeFromFlag"),Jt(),hL();var e$=["disambiguateEscapeCodes"];async function resolveKittyKeyboard(e={}){const n=e.env??process.env,o=e.platform??process.platform,r=e.probe??queryKittyKeyboardSupport,s=!(isVSCodeTerminal2({env:n})||"win32"===o)&&await r();return setKittyKeyboardActive(s),{mode:s?"enabled":"disabled",flags:e$}}__name(resolveKittyKeyboard,"resolveKittyKeyboard"),Jt();var t$=__name(({worktreePath:e,warning:n,onChoice:o})=>{const{t:r}=xt(),[s,a]=mt(1);return at((e,n)=>{if(!n.upArrow&&!n.downArrow)return"1"===e?o("keep"):"2"===e?o("remove"):n.return?o(1===s?"keep":"remove"):n.escape||n.ctrl&&"c"===e?o("keep"):void 0;a(e=>1===e?2:1)}),ct.createElement(oF,{title:r("exitingWorktreeSession","Exiting worktree session"),subtitle:n,hint:r("enterToConfirmEscToCancel","Enter to confirm · Esc to cancel")},ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:1===s?XO.CYAN:XO.GRAY},1===s?vt.pointer:" "," ",r("1KeepWorktree","1. Keep worktree")," ",ct.createElement(nt,{color:XO.GRAY},r("staysAt","Stays at")," ",tildeHome(e)))),ct.createElement(tt,null,ct.createElement(nt,{color:2===s?XO.CYAN:XO.GRAY},2===s?vt.pointer:" "," ",r("2RemoveWorktree","2. Remove worktree")," ",ct.createElement(nt,{color:XO.GRAY},r("allChangesAndCommitsWillBeLost","All changes and commits will be lost."))))))},"WorktreeExitPrompt");function promptWorktreeExit(e){return new Promise(n=>{const{unmount:o}=st(ct.createElement(t$,{worktreePath:e.worktreePath,warning:e.warning,onChoice:e=>{o(),n(e)}}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})})}__name(promptWorktreeExit,"promptWorktreeExit"),Jt();var n$={},o$={};function setStartupSessionOptions(e){n$=void 0===e.persist?{}:{persist:e.persist},o$={...e.sessionFilePath?{sessionFilePath:e.sessionFilePath}:{},...e.name?{name:e.name}:{}}}function getStickyStartupSessionOptions(){return n$}function consumeStartupSessionOverrides(){const e=o$;return o$={},e}__name(setStartupSessionOptions,"setStartupSessionOptions"),__name(getStickyStartupSessionOptions,"getStickyStartupSessionOptions"),__name(consumeStartupSessionOverrides,"consumeStartupSessionOverrides"),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt();var r$=vt.pointer,s$=__name(({isSelected:e,backgroundColor:n})=>ct.createElement(nt,{color:e?ZN:tF,backgroundColor:n,bold:e&&isLightTheme()},e?r$:" "),"OverlayCaret"),a$=__name(({isSelected:e,isActive:n,idleColor:o=eF,backgroundColor:r,children:s})=>ct.createElement(nt,{color:e?ZN:n?nF:o,backgroundColor:r,bold:e&&isLightTheme()},s),"OverlayOptionText"),i$=__name(({isSelected:e,label:n})=>ct.createElement(a$,{isSelected:e}," ",n),"OverlayOptionItem"),l$=__name(({backgroundColor:e})=>ct.createElement(nt,{color:nF,backgroundColor:e}," ",vt.tick),"OverlayActiveTick"),c$=__name(({indent:e=4,children:n})=>ct.createElement(nt,{color:QN}," ".repeat(e),n),"OverlayOptionDescription"),d$=__name(({isSelected:e,idleColor:n=XO.GRAY,selectedColor:o=XO.WHITE,bold:r,children:s})=>ct.createElement(nt,{color:e?o:n,backgroundColor:e?kD:void 0,bold:r??e},s),"OverlayBarText"),u$=__name(({isSelected:e,label:n})=>ct.createElement(d$,{isSelected:e}," ",n," "),"OverlayBarItem"),m$=__name(()=>null,"OverlayBarIndicator");Jt();var p$=__name(()=>createOSC8Link("https://commandcode.ai/docs/permissions#permission-modes",t("docs2","Docs ↗"),!1),"YOLO_DOCS_LINK"),g$=__name(({hint:e})=>{const{t:n}=xt();return ct.createElement(nt,{italic:!0,color:XO.DIM},e," ",n("run2","· Run")," ",ct.createElement(nt,{color:XO.WHITE},"cmd --yolo")," ",n("toBypassAllPermissions","to bypass all permissions ("),p$(),")")},"PermissionFooter"),h$=__name(({request:e,onResponse:n})=>{const{t:o}=xt(),[r]=mt(0),s=getPermissionChoicesForRisk({choices:getGenericToolPermissionChoices({toolName:e.toolName}),risk:e.risk}),a=__name(e=>{const o=s.find(n=>n.value===e.value);o&&n(o)},"handleSelect");return ct.createElement(oF,{title:o("toolPermission","Tool Permission"),subtitle:ct.createElement(nt,{wrap:"wrap"},o("needsToRun","{{v0}} needs to run ",{v0:"Command Code"}),ct.createElement(nt,{color:ZN},e.toolName),"."),footer:ct.createElement(g$,{hint:o("navigateEnterSelect","↑/↓ navigate · enter select")})},e.risk&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.RED,wrap:"wrap"},vt.warning," ",getRiskDisplay(e.risk))),e.description&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},e.description)),ct.createElement(SelectInput,{items:s.map((e,n)=>({label:`${n+1}. ${translatePermissionLabel(e.label)}`,value:e.value})),onSelect:a,initialIndex:r,indicatorComponent:s$,itemComponent:i$}))},"GenericPermissionPrompt");function buildTreeConnectors(e,n={}){const{isTruncated:o=!1,closesFrame:r=!0}=n;return e.split("\n").map((e,n,s)=>r&&!o&&n===s.length-1?VD:KD).join("\n")}Jt(),hL(),Jt(),hL(),Jt(),__name(buildTreeConnectors,"buildTreeConnectors");var f$=Mt()?"⟳":"*",y$=" │ ";function DiffWordSegments({segments:e,type:n,paired:o,dimDiff:r,language:s,highlightOptions:a}){const i="removed"===n?oD.REMOVED_HIGHLIGHT_BG:oD.ADDED_HIGHLIGHT_BG,l=[];let c=0;for(const d of e){const e=d.highlighted,u=highlightSyntax(d.text,s,a),m=`${n}-${c++}-${e?"highlighted":"unchanged"}`;e?l.push(ct.createElement(nt,{key:m,backgroundColor:i,dimColor:r},u)):o?l.push(ct.createElement(nt,{key:m,color:XO.WHITE,dimColor:r},u)):l.push(ct.createElement(nt,{key:m,color:"removed"===n?oD.REMOVED_TEXT:oD.ADDED_TEXT,dimColor:r},u))}return l}function DiffRow({background:e,prefix:n,wrap:o="wrap",children:r}){return ct.createElement(tt,{width:"100%",backgroundColor:e},ct.createElement(tt,{flexShrink:0},n),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{wrap:o},r)))}function renderDiffLine({line:e,dimDiff:n,language:o,highlightOptions:r}){if("skip"===e.kind)return ct.createElement(tt,{key:e.key,width:"100%"},ct.createElement(nt,{color:oD.LINE_NUM,dimColor:n},e.spacer,y$,e.label));if("context"===e.kind)return ct.createElement(DiffRow,{key:e.key,prefix:ct.createElement(nt,{color:oD.LINE_NUM,dimColor:n}," "+e.lineNumberLabel+y$)},ct.createElement(nt,{color:XO.WHITE,dimColor:n}," ",highlightSyntax(e.text,o,r)));const s="removed"===e.kind,a=s?oD.REMOVED_TEXT:oD.ADDED_TEXT,i=s?oD.REMOVED_BG:oD.ADDED_BG;return ct.createElement(DiffRow,{key:e.key,background:i,prefix:ct.createElement(nt,null,ct.createElement(nt,{color:a,dimColor:n}," "+e.lineNumberLabel),ct.createElement(nt,{color:oD.LINE_NUM,dimColor:n},y$),ct.createElement(nt,{color:a,dimColor:n},s?"- ":"+ "))},ct.createElement(DiffWordSegments,{segments:e.segments,type:e.kind,paired:e.paired,dimDiff:n,language:o,highlightOptions:r}))}function DiffMetadata({metadata:e}){const{t:n}=xt();return e?"rejected"===e.kind?ct.createElement(nt,{color:XO.RED},n("rejectedUpdateTo","Rejected update to"),ct.createElement(nt,{color:XO.RED},` ${e.filePath}`)):ct.createElement(nt,{color:XO.GRAY},n("updated","Updated")," ",ct.createElement(nt,{color:XO.WHITE,bold:!0},e.filePath)," ",n("with","with")," ",e.additions>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:iD.SUCCESS},e.additions)," ",translateUiCopy(1===e.additions?"addition":"additions"),e.removals>0?n("and2"," and "):""),e.removals>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:iD.ERROR},e.removals)," ",translateUiCopy(1===e.removals?"removal":"removals"))):null}function generateDiff({oldValue:e,newValue:n,filePath:o,permissionDenied:r=!1,showMetadata:s=!1,marginLeft:a=2,startLine:i=1,dimDiff:l=!1,maxLines:c}){const d=projectEditDiffView({oldValue:e,newValue:n,filePath:o,permissionDenied:r,showMetadata:s,startLine:i,maxLines:c});let u="";"string"==typeof n&&n?u=n:"string"==typeof e&&(u=e);const m=syntaxLanguageFromFilePath(o,u.split("\n",1)[0]??null),p=getSyntaxHighlightOptions(isLightTheme());return{diffContent:ct.createElement(tt,{flexDirection:"column"},ct.createElement(DiffMetadata,{metadata:d.metadata}),ct.createElement(tt,{flexDirection:"column",marginLeft:a,marginRight:a+4,width:Math.max(20,(process.stdout.columns||80)-2*a-8)},d.displayedLines.map(e=>renderDiffLine({line:e,dimDiff:l,language:m,highlightOptions:p})))),isTruncated:d.isTruncated,totalLines:d.totalLines}}function resolveTodoTextStyle(e){return"completed"===e?{textColor:iD.SUCCESS,strikethrough:!0}:"in_progress"===e?{textColor:iD.IN_PROGRESS,strikethrough:!1}:{textColor:XO.WHITE,strikethrough:!1}}function TodoChecklist({todos:e}){return ct.createElement(tt,{flexDirection:"column"},e.map((e,n)=>{const o="completed"===e.status?vt.checkboxOn:vt.checkboxOff,{textColor:r,strikethrough:s}=resolveTodoTextStyle(e.status),a="in_progress"===e.status&&e.activeForm?`${e.activeForm}…`:e.content;return ct.createElement(tt,{key:e.id||n,flexDirection:"row"},ct.createElement(tt,{width:2},ct.createElement(nt,{color:r},o)),ct.createElement(nt,{color:r,bold:"in_progress"===e.status,strikethrough:s},a))}))}function formatTodosForDisplay(e){const n=Ef(e);return n?ct.createElement(TodoChecklist,{todos:n}):ct.createElement(nt,null,e)}function computeDisplayInput({input:e,isAgent:n,isShell:o,expandedOutput:r}){return e?n?summarizeAgentTaskInput(e):o&&!r?truncateCommand({command:e}):e:e}function formatToolInput({input:e,isShell:n}){return ct.createElement(BracketWrap,null,n?e:ct.createElement(Markdown,null,e))}function ReadToolInlineSummaryRow({summary:e}){return e?.dimText?ct.createElement(nt,{dimColor:!0}," ",e.dimText):null}function resolveSymbol({isPending:e,hasError:n,isThinking:o,isTodos:r,output:s}){if(e)return{symbolColor:XO.YELLOW,symbol:vt.arrowRight};if(n)return{symbolColor:XO.RED,symbol:vt.square};if(o)return{symbolColor:tD,symbol:"✻"};if(r&&s){const e=Ef(s),n=e?.every(e=>"completed"===e.status);return{symbolColor:n?iD.SUCCESS:iD.WARNING,symbol:vt.square}}return{symbolColor:rD.BG,symbol:vt.square}}function ToolHeader({isThinking:e,isTasteFile:n,tasteCategory:o,name:r,summaryMatch:s,expandedOutput:a,expandKey:i,input:l,output:c}){const{t:d}=xt();if(e){const e=estimateReasoningSeconds(l||c||"");return ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:tD},d("thoughtForSecond","Thought for {{v0}} second{{v1}}",{v0:e,v1:1!==e?"s":""})," "),!a&&ct.createElement(BracketWrap,{color:XO.DIM},d("oToExpand","{{v0}}+o to expand",{v0:i})))}if(n)return ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG,bold:!0},qD)),ct.createElement(nt,null," ",d("usingYourTaste","Using your taste")," ",o?d("packageOf","package of "):translateUiCopy("packages"),o&&ct.createElement(nt,{bold:!0},o)));let u=translateUiCopy(r);return"READ[n]"===r&&s&&(u=`${translateUiCopy("READ")}[${Number(s[1])}]`),ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},`${zD}${u}${zD}`))}function stripAgentUsageTrailer(e){return e.replace(/\n*<usage>[\s\S]*?<\/usage>\s*$/,"").trimEnd()}function AgentStatus({agentStatus:e,hasError:n,output:o,elapsedSeconds:r,tokensUsed:s}){const{t:a}=xt(),i=`${formatTime3(r)} | ${formatTokens(s)}`;return"running"===e?ct.createElement(nt,{color:XO.GRAY},a("running","Running ("),i,")"):"background"===e?ct.createElement(nt,{color:XO.GRAY},a("runningInBackground","Running in background")):"interrupted"===e||o===Hv?ct.createElement(nt,{color:XO.GRAY,wrap:"wrap"},a("interrupted","Interrupted")):"error"===e||n?ct.createElement(nt,{color:XO.RED,wrap:"wrap"},o," (",i,")"):ct.createElement(ct.Fragment,null,ct.createElement(nt,{wrap:"wrap"},a("done","Done")),ct.createElement(nt,{color:XO.GRAY}," (",i,")"))}function getTruncatedOutputParts({output:e,name:n,expandedOutput:o,expandKey:r}){if(o)return{text:e,isTruncated:!1,remainingLines:0,truncationMsg:null};const s=dedentText(e),{text:a,isTruncated:i,remainingLines:l}=truncateToVisualLines({output:s,maxVisualLines:n===t("question","Question")?Tu:Cu,maxChars:n===t("question","Question")?1/0:xu}),c=i&&n!==t("question","Question");return{text:a,isTruncated:c,remainingLines:l,truncationMsg:c?l>0?ct.createElement(BracketedText,{text:t("linesOToExpand","... +{{v0}} lines [{{v1}}+o to expand]",{v0:l,v1:r}),color:XO.DIM}):ct.createElement(BracketedText,{text:t("oToExpand2","... [{{v0}}+o to expand]",{v0:r}),color:XO.DIM}):null}}function renderTruncatedOutput({output:e,name:n,expandedOutput:o,expandKey:r}){const{text:s,isTruncated:a,truncationMsg:i}=getTruncatedOutputParts({output:e,name:n,expandedOutput:o,expandKey:r});return a?ct.createElement(ct.Fragment,null,s,"\n",i):s}function renderEditFileDiff({input:e,metadata:n,expandedOutput:o,isPermissionDenied:r,output:s,expandKey:a}){const i=o?void 0:Eu,{diffContent:l,isTruncated:c,totalLines:d}=generateDiff({filePath:e,showMetadata:!0,oldValue:n.oldValue??"",newValue:n.newValue??"",startLine:"number"==typeof n.startLine?n.startLine:1,dimDiff:r,permissionDenied:r,maxLines:i}),u=d-Eu;return ct.createElement(tt,{flexDirection:"column"},l,c&&ct.createElement(tt,{marginTop:1},ct.createElement(BracketedText,{text:t("moreOToExpand","… ({{v0}} more {{v1}}) [{{v2}}+o to expand]",{v0:u,v1:1===u?"line":"lines",v2:a}),color:XO.DIM})),r&&s&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.RED,wrap:"wrap"},s)))}function renderWriteFileContent({input:e,metadata:n,expandedOutput:o,expandKey:r}){const s=syntaxLanguageFromFilePath(e,n.content?.split("\n",1)[0]??null),a=getSyntaxHighlightOptions(isLightTheme()),i=projectWriteFileContentView({filePath:e,content:n.content,totalLines:n.totalLines,expandedOutput:o,expandKey:r});return i.empty?ct.createElement(nt,{color:XO.GRAY},t("created","Created")," ",ct.createElement(nt,{color:XO.WHITE,bold:!0},i.filePath)," ",t("emptyFile","(empty file)")):ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},t("created","Created")," ",ct.createElement(nt,{color:XO.WHITE,bold:!0},i.filePath)," ","(",i.totalLinesLabel,")"),ct.createElement(tt,{marginTop:1,flexDirection:"column"},i.visibleLines.map(e=>ct.createElement(DiffRow,{key:e.lineNumber,background:oD.ADDED_BG,wrap:"truncate-end",prefix:ct.createElement(nt,null,ct.createElement(nt,{color:oD.ADDED_TEXT}," "+e.lineNumberLabel),ct.createElement(nt,{color:oD.LINE_NUM},y$))},ct.createElement(nt,{color:oD.ADDED_TEXT},highlightSyntax(e.text,s,a))))),i.isTruncated&&i.moreLinesLabel&&ct.createElement(tt,{marginTop:1},ct.createElement(BracketedText,{text:i.expandHint?`… (${i.moreLinesLabel}) ${i.expandHint}`:`… (${i.moreLinesLabel})`,color:XO.DIM})))}function renderOutputContent({isTodos:e,isThinking:n,isEditFile:o,isWriteFile:r,metadata:s,output:a,expandedOutput:i,isPermissionDenied:l,input:c,hasError:d,name:u,expandKey:m,showTreeConnector:p,closesFrame:g}){if(e)return formatTodosForDisplay(a);if(n){if(!i)return null;const e=c||a;return ct.createElement(tt,{width:"100%",flexDirection:"column"},ct.createElement(nt,null," "),ct.createElement(nt,{color:tD,wrap:"wrap",italic:!0},e))}const h=g?VD:KD;if(o&&"string"==typeof s?.oldValue&&"string"==typeof s?.newValue){const e=renderEditFileDiff({input:c,metadata:s,expandedOutput:i,isPermissionDenied:l,output:a,expandKey:m});return p?ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},h," "),e):e}if(r&&s&&"content"in s){const e=renderWriteFileContent({input:c,metadata:s,expandedOutput:i,expandKey:m});return p?ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},h," "),e):e}return p?renderTextWithLongConnector({output:a,name:u,expandedOutput:i,expandKey:m,hasError:d,closesFrame:g}):ct.createElement(tt,{width:"100%"},ct.createElement(nt,{color:d?XO.RED:"",wrap:"wrap"},renderTruncatedOutput({output:a,name:u,expandedOutput:i,expandKey:m})))}function renderTextWithLongConnector({output:e,name:n,expandedOutput:o,expandKey:r,hasError:s,closesFrame:a}){const{text:i,isTruncated:l,truncationMsg:c}=getTruncatedOutputParts({output:e,name:n,expandedOutput:o,expandKey:r}),d=s?XO.RED:void 0,u=buildTreeConnectors(i,{isTruncated:l,closesFrame:a}),m=a?VD:KD;return ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(tt,{columnGap:1,width:"100%"},ct.createElement(nt,{color:wD},u),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:d,wrap:"wrap"},i))),l&&ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},m," "),c))}function ToolMessage({name:e,input:n,output:o,isPending:r=!1,hasError:s=!1,metadata:a,expandedOutput:i=!1}){const{t:l}=xt(),c="thinking…"===e,d="TODOS"===e,u="EDIT"===e,m="WRITE"===e,p="READ"===e||e.startsWith("READ[")&&e.endsWith("]"),g=!0===a?.isTasteFile,h=a?.tasteCategory,f=!0===a?.permissionDenied,y=!c&&!d&&!g,v="ctrl",S=!0===a?.isAgent,w=computeDisplayInput({input:n,isAgent:S,isShell:"SHELL"===e,expandedOutput:i}),k=!c&&w&&!g,C=a?.status,b=a?.tokensUsed||0,T="number"==typeof a?.elapsedSeconds?Math.floor(a.elapsedSeconds):0,{notes:E}=extractRepairNotes(o??""),P=E.length,M=p?parseReadSummaryLine(extractRepairNotes(o??"").body):null,I=p?projectReadToolInlineSummary({name:e,summaryMatch:M}):null,A=p?projectReadToolBadge({name:e,summaryMatch:M}):e,x=S&&!0===a?.showOutput&&"done"===C,R=Boolean((o||c&&n)&&!g&&(!S||x)&&(!p||s)),{symbolColor:L,symbol:O}=resolveSymbol({isPending:r,hasError:s,isThinking:c,isTodos:d,output:o}),D=a?.preHookLines,N=a?.postHookLines,F=Boolean(D?.length),_=Boolean(N?.length),$=Boolean(a?.hookOutcome),U=r&&!S&&!$,B=!$&&!U,j=R&&!_&&!$&&!U,W=F&&!R&&!_&&!$&&!U;return ct.createElement(tt,null,c&&ct.createElement(nt,{color:L},O),ct.createElement(tt,{flexDirection:"column",marginLeft:c?1:0},ct.createElement(tt,null,ct.createElement(ToolHeader,{isThinking:c,isTasteFile:g,tasteCategory:h,name:A,summaryMatch:M,expandedOutput:i,expandKey:v,input:n,output:o}),k&&ct.createElement(nt,null," ",formatToolInput({input:w,isShell:"SHELL"===e})),ct.createElement(ReadToolInlineSummaryRow,{summary:I}),P>0&&ct.createElement(nt,{dimColor:!0},` ${f$}${P>1?` ${P}`:""}`)),S&&("running"===C||"background"===C||"done"===C||"error"===C||o)&&ct.createElement(tt,{columnGap:1,marginLeft:y?1:0},y&&ct.createElement(nt,{color:wD},VD," "),ct.createElement(AgentStatus,{agentStatus:C,hasError:s,output:o,elapsedSeconds:T,tokensUsed:b})),ct.createElement(HookLines,{lines:D,showTreeConnector:y,closesFrame:W}),R&&renderOutputWithRepairNotes({output:x?stripAgentUsageTrailer(o??""):o??"",isTodos:d,isThinking:c,isEditFile:u,isWriteFile:m,metadata:a,expandedOutput:i||x,isPermissionDenied:f,input:n,hasError:s,name:e,expandKey:v,showTreeConnector:y,closesFrame:j}),ct.createElement(HookLines,{lines:N,showTreeConnector:y,closesFrame:B}),ct.createElement(HookOutcome,{outcome:a?.hookOutcome,showTreeConnector:y}),U&&ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{color:wD},VD," "),ct.createElement(nt,{color:XO.GRAY},l("processing","Processing…")))))}function renderOutputWithRepairNotes({output:e,isTodos:n,isThinking:o,isEditFile:r,isWriteFile:s,metadata:a,expandedOutput:i,isPermissionDenied:l,input:c,hasError:d,name:u,expandKey:m,showTreeConnector:p,closesFrame:g}){const{body:h}=extractRepairNotes(e);return ct.createElement(tt,{marginLeft:p?1:0},renderOutputContent({isTodos:n,isThinking:o,isEditFile:r,isWriteFile:s,metadata:a,output:h,expandedOutput:i,isPermissionDenied:l,input:c,hasError:d,name:u,expandKey:m,showTreeConnector:p,closesFrame:g}))}function HookLines({lines:e,showTreeConnector:n,closesFrame:o=!1}){if(!e||0===e.length)return null;const r=e.length-1;return ct.createElement(tt,{flexDirection:"column",marginLeft:n?1:0},e.map((e,n)=>{const s=o&&n===r?VD:KD;return ct.createElement(tt,{key:n,columnGap:1},ct.createElement(nt,{color:wD},s),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},e)))}))}function HookOutcome({outcome:e,showTreeConnector:n}){if(!e)return null;const o="stop"===e.kind?XO.YELLOW:XO.RED;return ct.createElement(tt,{columnGap:1,marginLeft:n?1:0},ct.createElement(nt,{color:wD},VD),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:o},e.text)))}__name(DiffWordSegments,"DiffWordSegments"),__name(DiffRow,"DiffRow"),__name(renderDiffLine,"renderDiffLine"),__name(DiffMetadata,"DiffMetadata"),__name(generateDiff,"generateDiff"),__name(resolveTodoTextStyle,"resolveTodoTextStyle"),__name(TodoChecklist,"TodoChecklist"),__name(formatTodosForDisplay,"formatTodosForDisplay"),__name(computeDisplayInput,"computeDisplayInput"),__name(formatToolInput,"formatToolInput"),__name(ReadToolInlineSummaryRow,"ReadToolInlineSummaryRow"),__name(resolveSymbol,"resolveSymbol"),__name(ToolHeader,"ToolHeader"),__name(stripAgentUsageTrailer,"stripAgentUsageTrailer"),__name(AgentStatus,"AgentStatus"),__name(getTruncatedOutputParts,"getTruncatedOutputParts"),__name(renderTruncatedOutput,"renderTruncatedOutput"),__name(renderEditFileDiff,"renderEditFileDiff"),__name(renderWriteFileContent,"renderWriteFileContent"),__name(renderOutputContent,"renderOutputContent"),__name(renderTextWithLongConnector,"renderTextWithLongConnector"),__name(ToolMessage,"ToolMessage"),__name(renderOutputWithRepairNotes,"renderOutputWithRepairNotes"),__name(HookLines,"HookLines"),__name(HookOutcome,"HookOutcome");var v$=createNodeRuntime(),S$=__name(({label:e,isSelected:n})=>e.includes("[shift+tab]")?ct.createElement(ct.Fragment,null,e.split("[shift+tab]")[0],ct.createElement(BracketWrap,{color:n?ZN:eF,bold:!0},"shift+tab")):e.includes("(")?ct.createElement(ct.Fragment,null,e.split("(")[0],ct.createElement(nt,{color:XO.GRAY},"(",e.split("(")[1])):e,"ChoiceLabel"),w$=__name(({request:e,onResponse:n,onEnableAutoAccept:o})=>{const{t:r}=xt(),[s]=mt(0),[a,i]=mt(1);gt(()=>{"edit"===e.action&&e.oldContent&&e.filePath&&resolveEditStartLine({runtime:v$,filePath:e.filePath,oldContent:e.oldContent}).then(e=>{void 0!==e&&i(e)}).catch(()=>{})},[e.filePath,e.oldContent,e.action]);const l=getPermissionChoicesForRisk({choices:rI,risk:e.risk}),c=__name(e=>{const r=l.find(n=>n.value===e.value);r&&(n(r),"yes-session"===r.value&&o&&o())},"handleSelect"),d=__name(()=>"edit"===e.action?r("makeThisEditTo","make this edit to"):"create"===e.action?"create":"delete"===e.action?"delete":"execute"===e.action?"execute":"modify","getActionDescription"),u=getDisplayPath({filePath:e.filePath,cwd:process.cwd()}),m=__name(()=>"edit"===e.action?r("editFile","Edit File"):"create"===e.action?r("createFile","Create File"):"delete"===e.action?r("deleteFile","Delete File"):"execute"===e.action?r("executeFile","Execute File"):r("fileOperation","File Operation"),"getHeading");return ct.createElement(oF,{title:`${m()}${"edit"===e.action?` ${u}`:""}`,footer:ct.createElement(g$,{hint:r("navigateEnterSelect","↑/↓ navigate · enter select")})},"edit"===e.action&&e.oldContent&&e.newContent&&ct.createElement(tt,{marginBottom:1},generateDiff({oldValue:e.oldContent,newValue:e.newContent,filePath:u,marginLeft:0,startLine:a}).diffContent),e.risk&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.RED,wrap:"wrap"},vt.warning," ",getRiskDisplay(e.risk))),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0},r("doYouWantTo","Do you want to")," ",d()," ",ct.createElement(nt,{color:ZN},u),"?")),ct.createElement(SelectInput,{items:l.map((e,n)=>({label:` ${n+1}. ${translatePermissionLabel(e.label)}`,value:e.value})),onSelect:c,initialIndex:s,indicatorComponent:s$,itemComponent:({label:e,isSelected:n})=>ct.createElement(a$,{isSelected:n},ct.createElement(S$,{label:e,isSelected:n}))}))},"PermissionPrompt");Jt(),hL();var k$=IE?"ctrl+y":"ctrl+e",C$=__name(({request:e,onResponse:n})=>{const{t:o}=xt(),[r]=mt(0),[s,a]=mt({phase:"idle"}),i=e.description??("done"===s.phase?s.explanation:void 0),l=void 0!==e.explain&&void 0===e.description&&"done"!==s.phase;at((n,o)=>{l&&"loading"!==s.phase&&(isCtrlKey({inputChar:n,key:o,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:n,key:o,letter:"y",ctrlCode:25}))&&(a({phase:"loading"}),e.explain?.().then(e=>{a(e?{phase:"done",explanation:e}:{phase:"failed"})}).catch(()=>a({phase:"failed"})))});const c=getPermissionChoicesForRisk({choices:getShellPermissionChoices({command:e.command,...void 0!==e.args?{args:e.args}:{}}),risk:e.risk}),d=__name(e=>{const o=c.find(n=>n.value===e.value);o&&n(o)},"handleSelect");return ct.createElement(oF,{title:o("executeShellCommand","Execute Shell Command"),subtitle:ct.createElement(nt,{wrap:"wrap"},o("needsToExecute","{{v0}} needs to execute ",{v0:"Command Code"}),ct.createElement(nt,{color:ZN},getCommandDisplay(e)),"."),footer:ct.createElement(g$,{hint:l?o("navigateEnterSelectExplain","↑/↓ navigate · enter select · {{v0}} explain",{v0:k$}):o("navigateEnterSelect","↑/↓ navigate · enter select")})},e.risk&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:XO.RED,wrap:"wrap"},vt.warning," ",getRiskDisplay(e.risk))),e.workingDirectory&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.GRAY},o("workingDirectory","Working directory:")," ",e.workingDirectory)),i&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},i)),l&&"idle"===s.phase&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},o("press","Press")," ",ct.createElement(BracketWrap,{color:XO.DIM,bold:!0},k$)," ",o("toExplainThisCommand","to explain this command"))),"loading"===s.phase&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},ct.createElement(Et,{type:"dots"})," ",o("explainingThisCommand","Explaining this command…"))),"failed"===s.phase&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM,italic:!0},o("couldnTGenerateAnExplanationPress","Couldn't generate an explanation — press")," ",k$," ",o("toRetry","to retry"))),ct.createElement(SelectInput,{items:c.map((e,n)=>({label:` ${n+1}. ${translatePermissionLabel(e.label)}`,value:e.value})),onSelect:d,initialIndex:r,indicatorComponent:s$,itemComponent:({label:e,isSelected:n})=>ct.createElement(a$,{isSelected:n},e.includes("[shift+tab]")?ct.createElement(ct.Fragment,null,e.split("[shift+tab]")[0],ct.createElement(BracketWrap,{color:n?ZN:eF,bold:!0},"shift+tab")):e)}))},"ShellPermissionPrompt");function handlePermissionResponse({choice:e,resolve:n,setPendingPermission:o,respondToPrompt:r,setStatus:s,permissionMode:a,showHintMessage:i,allowedStatus:l,deniedStatus:c}){r(e);const d="no"!==e.value;n(d),o(null),d?(s(l),"default"===a&&i(t("useShiftTabToEnableAcceptEdits","Use shift+tab to enable accept edits"))):s(c)}__name(handlePermissionResponse,"handlePermissionResponse");var b$=dt(__name(function PermissionView2({pendingPermission:e,permissionMode:n,setPendingPermission:o,setStatus:r,respondToPrompt:s,showHintMessage:a,handleEnableAutoAccept:i}){const{t:l}=xt(),c={resolve:e.resolve,setPendingPermission:o,respondToPrompt:s,setStatus:r,permissionMode:n,showHintMessage:a};if("shell_command"===e.toolName){const n=e.params;return ct.createElement(tt,{marginY:1},ct.createElement(C$,{request:n,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("shellCommandAllowed","Shell command allowed"),deniedStatus:l("shellCommandDenied","Shell command denied")})}))}if("kill_shell"===e.toolName){const n=buildKillShellPermissionRequest(e.params);return ct.createElement(tt,{marginY:1},ct.createElement(C$,{request:n,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("processTerminationAllowed","Process termination allowed"),deniedStatus:l("processTerminationDenied","Process termination denied")})}))}if(isGenericToolRequest(e.params)){const n=e.params;return ct.createElement(tt,{marginY:1},ct.createElement(h$,{request:n,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("toolCallAllowed","Tool call allowed"),deniedStatus:l("toolCallDenied","Tool call denied")})}))}const d=isFileEditRequest(e.params)?e.params:buildFileToolPermissionRequest({toolName:e.toolName,input:e.params,fallbackDescription:l("allowOperation","Allow {{v0}} operation",{v0:e.toolName}),useInputDescription:!1});return ct.createElement(tt,{marginY:1},ct.createElement(w$,{request:d,onResponse:e=>handlePermissionResponse({...c,choice:e,allowedStatus:l("fileOperationAllowed","File operation allowed"),deniedStatus:l("fileOperationDenied","File operation denied")}),onEnableAutoAccept:i}))},"PermissionView"));function isGenericToolRequest(e){return"object"==typeof e&&null!==e&&"toolName"in e&&"string"==typeof e.toolName}function isFileEditRequest(e){if("object"!=typeof e||null===e)return!1;const n=e;return"string"==typeof n.action&&"string"==typeof n.filePath}function PlanPanel({content:e,filePath:o,expanded:r}){const{t:s}=xt(),{stdout:a}=rt(),i=trimPlanMarkdown(e,getCollapsedPlanMaxLines(a?.rows)),l=i.hiddenLineCount>0,c=r?e:i.visible,d=1!==i.hiddenLineCount?"s":"",u=s("moreLineCtrlOToExpand","… +{{v0}} more line{{v1}} · ctrl+o to expand",{v0:i.hiddenLineCount,v1:d});return ct.createElement(oF,{title:s("plan","Plan"),titleSuffix:o?` · ${n.basename(o)}`:void 0,gapAfterHeader:!1,hint:l?r?s("ctrlOToCollapse","ctrl+o to collapse"):u:void 0},ct.createElement(tt,{marginTop:1},ct.createElement(Markdown,null,c)))}__name(isGenericToolRequest,"isGenericToolRequest"),__name(isFileEditRequest,"isFileEditRequest"),Jt(),hL(),Jt(),hL(),__name(PlanPanel,"PlanPanel"),Jt(),hL();var T$=__name(({preview:e})=>{const{t:n}=xt(),o=e.trim().split("\n"),r=o.slice(0,8),s=o.length-r.length,a="─".repeat(70),i=n("lineHidden","─── ✂ ─── {{v0}} line{{v1}} hidden ",{v0:s,v1:1===s?"":"s"}),l="─".repeat(Math.max(0,70-i.length));return ct.createElement(tt,{flexDirection:"column",marginTop:1,paddingLeft:4},ct.createElement(nt,{italic:!0,color:XO.DIM},n("preview","Preview")),ct.createElement(nt,{color:XO.DIM},`┌${a}┐`),r.map((e,n)=>{const o=e.length>68?e.slice(0,68):e,r=" ".repeat(Math.max(0,68-o.length));return ct.createElement(nt,{key:n},ct.createElement(nt,{color:XO.DIM},"│ "),ct.createElement(nt,{color:XO.GRAY},o),ct.createElement(nt,{color:XO.DIM},`${r} │`))}),s>0?ct.createElement(nt,{color:XO.YELLOW},`├${i}${l}┤`):null,ct.createElement(nt,{color:XO.DIM},`└${a}┘`))},"OptionPreview"),E$=__name(()=>[{label:t("1Submit","1. Submit"),value:"submit"},{label:t("2Cancel","2. Cancel"),value:"cancel"}],"REVIEW_ITEMS"),P$=__name(({checked:e})=>e?ct.createElement(nt,{color:XO.GREEN},"[",vt.tick,"] "):ct.createElement(nt,{color:XO.DIM},"[ ] "),"MultiSelectCheckbox"),M$=__name((e,n)=>{if(!e.startsWith("option_"))return null;const o=e.slice(7),r=parseInt(o,10);return Number.isNaN(r)||r<0||r>n?null:r},"parseOptionIndex"),I$=__name((e,n)=>{const o=new Set(e);return o.has(n)?(o.delete(n),o):(o.add(n),o)},"toggleLabel"),A$=__name((e,n)=>e?{indicator:vt.bullet,color:ZN}:n?{indicator:vt.tick,color:XO.GREEN}:{indicator:vt.circle,color:XO.GRAY},"getTabMarker"),x$=__name(({questions:e,currentIndex:n,answeredQuestions:o,isReviewPage:r,hideReview:s=!1})=>{const{t:a}=xt();if(s&&1===e.length)return null;const i=[];if(e.forEach((s,a)=>{const l=a===n&&!r,c=o.has(a),{indicator:d,color:u}=A$(l,c);i.push(ct.createElement(nt,{key:a},ct.createElement(nt,{color:u},d),ct.createElement(nt,{color:l?ZN:void 0}," ",s.header),a<e.length-1?ct.createElement(nt,{color:XO.DIM}," | "):null))}),!s){const e=r;i.push(ct.createElement(nt,{key:"review"},ct.createElement(nt,{color:XO.DIM}," | "),ct.createElement(nt,{color:e?ZN:XO.GRAY},e?vt.bullet:vt.circle),ct.createElement(nt,{color:e?ZN:void 0,bold:e}," ",a("review","Review"))))}return ct.createElement(tt,null,i)},"TabIndicator"),R$=__name(({questions:e,onResponse:n,hideCustomInput:o=!1,compact:r=!1})=>{const{t:s}=xt(),[a,i]=mt(0),[l,c]=mt(new Map),d=pt(null);null===d.current&&(d.current=new Map);const u=d.current,[m,p]=mt(""),[g,h]=mt(new Set),[f,y]=mt(null),[v,S]=mt(!1),[w,k]=mt(!1),[C,b]=mt(!1),[T,E]=mt(null),[P,M]=mt(!1),I=pt(null);null===I.current&&(I.current=new Map);const A=pt(null);null===A.current&&(A.current=new Map);const[x,R]=mt(!1),[L,O]=mt(""),[,D]=mt(0),N=e[a],F=N?.multiSelect??!1,_=l.get(a),$=N?[...N.options.map((e,n)=>({label:e.label,value:`option_${n}`,description:e.description,...void 0!==e.preview?{preview:e.preview}:{}}))]:[],U=$.map((e,n)=>({label:` ${n+1}. ${e.label}`,value:e.value})),B=new Map(U.map((e,n)=>[e.label,$[n]])),j=__name((e,n)=>{n.size>0?u.set(e,Array.from(n)):u.delete(e)},"saveOrClearMultiAnswer"),W=__name(n=>{const o=e[n],r=u.get(n);if(o?.multiSelect&&r){h(new Set(r));const e=r.find(e=>!o.options.some(n=>n.label===e));return void p(e||"")}if(h(new Set),!o?.multiSelect&&1===r?.length){const e=r[0],n=!o?.options.some(n=>n.label===e);return void p(n&&e?e:"")}p("")},"restoreInputsForQuestion"),H=__name(e=>{"submit"!==e.value?"cancel"===e.value&&n({answers:[]}):J()},"handleReviewSelect"),G=__name(()=>{if(!_||0===_.length)return 0;const e=_[0],n=N.options.findIndex(n=>n.label===e);return n>=0?n:0},"getInitialIndex"),V=__name(e=>{if(v)return;if(F){const n=M$(e.value,N.options.length-1);if(null===n)return;const o=N.options[n]?.label||"";return void h(e=>I$(e,o))}const n=M$(e.value,N.options.length-1);if(null===n)return;S(!0);const o=N.options[n]?.label||"";q([o])},"handleSelect"),K=__name(()=>{if(v)return;S(!0);const e=Array.from(g);q(e)},"handleMultiSelectDone"),z=__name(()=>{if(v)return;const e=m.trim();if(e){if(F){const n=new Set(N.options.map(e=>e.label));return void h(o=>{const r=new Set;return o.forEach(e=>{n.has(e)&&r.add(e)}),r.add(e),r})}S(!0),q([e])}},"handleOtherSubmit"),q=__name(n=>{u.set(a,n);const r=new Map(u);if(c(r),a<e.length-1){const e=a+1;return W(e),i(e),S(!1),b(!1),E(null),void M(!1)}if(e.every((e,n)=>r.has(n)))return o&&1===e.length?void J():(h(new Set),p(""),b(!1),M(!1),E(null),k(!0),void S(!1));const s=e.findIndex((e,n)=>!r.has(n));-1!==s&&(W(s),i(s)),S(!1),b(!1),E(null),M(!1)},"finishQuestion"),Y=__name(()=>e.map((e,n)=>{const o=u.get(n)||[],r=A.current?.get(n),s=0===o.length&&r?.length?["(Image attached)"]:o,a=I.current?.get(n)?.trim(),i=e.multiSelect||1!==o.length?void 0:e.options.find(e=>e.label===o[0]);return{questionIndex:n,selectedOptions:s,...i?.preview?{preview:i.preview}:{},...a?{notes:a}:{},...r?.length?{images:r}:{}}}),"buildAnswers"),J=__name(()=>{n({answers:Y()})},"submitAnswers"),Q=__name(()=>{n({answers:Y(),disposition:"chat"})},"chatAboutQuestions"),X=__name(()=>{I.current&&(L.trim()?I.current.set(a,L):I.current.delete(a)),R(!1)},"saveNotesAndClose"),Z=__name(async()=>{try{const e=await detectClipboardImage();if(!e)return;const n=A.current?.get(a)??[];A.current?.set(a,[...n,{data:e.data,mediaType:e.mediaType}]),D(e=>e+1)}catch{}},"pasteClipboardImageIntoQuestion"),ee=__name(async(e,n)=>{try{const o=await openInEditor(e);o!==e&&n(o)}catch{}},"editExternally"),te=__name(e=>{k(!1),i(e),M(!1),b(!1),E(null),W(e)},"editQuestion"),ne=__name(n=>{n<0||n>=e.length||(F&&(j(a,g),c(new Map(u))),S(!1),b(!1),E(null),M(!1),W(n),i(n))},"navigateToQuestion"),oe=__name(()=>{if(!f||!F)return;if("done"===f.value)return;const e=M$(f.value,N.options.length-1);if(null===e)return;const n=N.options[e]?.label||"";h(e=>I$(e,n))},"toggleMultiSelection"),re=__name(e=>{const n=U[0],r=U[U.length-1],s=f&&n&&f.value===n.value,a=f&&r&&f.value===r.value;if(!e.downArrow||C||P||o||!(U.length>0)||!a)return e.upArrow&&!C&&!P&&U.length>0&&s?F?void M(!0):void(o||(b(!0),E(U.length-1))):e.upArrow&&C?(b(!1),E(U.length-1),void(r&&y(r))):e.downArrow&&C?(b(!1),F?void M(!0):(E(0),void(n&&y(n)))):e.upArrow&&P?(M(!1),void b(!0)):e.downArrow&&P?(M(!1),E(0),void(n&&y(n))):void(e.return&&P&&F&&K());b(!0)},"handleVerticalNav"),se=__name(n=>{v||C||P||(w?n.leftArrow&&te(e.length-1):n.leftArrow&&a>0?ne(a-1):n.rightArrow&&(a<e.length-1?ne(a+1):(F&&(j(a,g),c(new Map(u))),k(!0))))},"handleHorizontalNav"),ae=__name(()=>{if(!v)if(w)k(!1);else{if(C){b(!1);const e=T??U.length-1;E(e);const n=U[e];return void(n&&y(n))}if(P){M(!1);const e=U[U.length-1];e&&y(e)}}},"handleEscape");if(at((e,n)=>{const r="v"===e&&(n.ctrl||n.meta&&"darwin"!==process.platform);if(x)n.escape?X():r?Z():n.ctrl&&"g"===e&&ee(L,O);else if(r&&C)Z();else if(n.ctrl&&"g"===e&&C)ee(m,p);else{if(" "===e&&F&&!C&&oe(),"d"!==e||!F||C||w||K(),!(C||w||v||o)){if("n"===e)return O(I.current?.get(a)??""),void R(!0);if("c"===e)return void Q()}w||v||re(n),se(n),n.escape&&ae()}}),!N&&!w)return null;if(w)return ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(MD,{dividerColor:XN}),ct.createElement(tt,{marginBottom:1},ct.createElement(x$,{questions:e,currentIndex:e.length,answeredQuestions:new Set(l.keys()),isReviewPage:!0})),e.some((e,n)=>!l.get(n)?.length)&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.YELLOW},s("youHaveNotAnsweredAllQuestions","⚠ You have not answered all questions"))),e.map((e,n)=>ct.createElement(tt,{key:n,marginBottom:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n+1,". ",e.question),ct.createElement(nt,{color:XO.GREEN}," ",l.get(n)?.join(", ")||s("noAnswer","No answer")))),ct.createElement(SelectInput,{items:E$(),onSelect:H,initialIndex:0,indicatorComponent:s$,itemComponent:i$}),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{italic:!0,color:XO.DIM},vt.arrowLeft," ",s("toGoBackAndEdit","to go back and edit"))));const ie=r&&1===e.length;return ct.createElement(tt,{flexDirection:"column",width:"100%"},!ie&&ct.createElement(MD,{dividerColor:XN}),!ie&&ct.createElement(tt,{marginBottom:1},ct.createElement(x$,{questions:e,currentIndex:a,answeredQuestions:new Set(l.keys()),isReviewPage:!1,hideReview:o})),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{bold:!0,color:JN},N.question)),C||P||x?ct.createElement(tt,{flexDirection:"column"},U.map((e,n)=>{const o=B.get(e.label),r=F&&o&&g.has(o.label),s=!F&&o&&_?.includes(o.label),a=r||s;return ct.createElement(tt,{key:e.value,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,null," "),ct.createElement(a$,{isActive:a,idleColor:XO.GRAY}," ",n+1,"."," "),F&&ct.createElement(P$,{checked:a}),ct.createElement(a$,{isActive:a,idleColor:XO.GRAY},o?.label||""),!F&&a&&ct.createElement(l$,null)),o?.description&&ct.createElement(tt,null,ct.createElement(nt,null," "),ct.createElement(c$,{indent:F?7:4},o.description)))})):ct.createElement(SelectInput,{key:`${a}-${T??"default"}`,items:U,initialIndex:T??G(),onSelect:V,onHighlight:y,indicatorComponent:s$,itemComponent:({label:e,isSelected:n})=>{const o=B.get(e),r=F&&o&&g.has(o.label),s=!F&&o&&_?.includes(o.label),a=r||s,i=e.match(/^\s*(\d+)\.\s*(.*)$/),l=i?.[1]||"",c=i?.[2]||e;return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(a$,{isSelected:n,isActive:a}," ",l,"."," "),F&&ct.createElement(P$,{checked:a}),ct.createElement(a$,{isSelected:n,isActive:a},c),!F&&a&&ct.createElement(l$,null)),o?.description&&ct.createElement(c$,{indent:F?7:4},o.description))}}),!C&&!P&&(()=>{const e=(f?B.get(f.label):void 0)??$[T??G()];return e?.preview?ct.createElement(T$,{preview:e.preview}):null})(),!o&&ct.createElement(tt,null,ct.createElement(s$,{isSelected:C}),ct.createElement(a$,{isSelected:C}," ",U.length+1,"."," "),F&&ct.createElement(P$,{checked:g.has(m.trim())}),ct.createElement(TextInput,{value:m,onChange:e=>{const n=e.replace(/\r\n/g," ").replace(/[\r\n]/g," "),o=m.trim();p(n),F&&h(e=>{const r=new Set(e);return o&&r.has(o)&&r.delete(o),n.trim()&&r.add(n.trim()),r})},onSubmit:z,placeholder:s("typeSomething","Type something..."),focus:C,stripBracketedPaste:!0})),x?ct.createElement(tt,null,ct.createElement(s$,{isSelected:!0}),ct.createElement(a$,{isSelected:!0}," ",s("notes","notes:")," "),ct.createElement(TextInput,{value:L,onChange:O,onSubmit:X,placeholder:s("addNotesOnThisDesign","Add notes on this design…"),focus:x,stripBracketedPaste:!0})):(()=>{const e=I.current?.get(a)?.trim();return e?ct.createElement(tt,null,ct.createElement(nt,{italic:!0,color:XO.DIM}," ",s("notes","notes:")," ",e)):null})(),(A.current?.get(a)??[]).map((e,n)=>ct.createElement(tt,{key:n},ct.createElement(nt,{color:XO.DIM}," ",s("imageNumber","[Image #{{index}}",{index:n+1})," ",s("attached","attached —")," ",e.mediaType,"]"))),F&&ct.createElement(tt,null,ct.createElement(s$,{isSelected:P}),ct.createElement(a$,{isSelected:P}," ",a===e.length-1?s("submit2","Submit"):s("next","Next"))),e.length>1&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{italic:!0,color:XO.DIM},s("enterToSelectArrowKeysToNavigate","Enter to select | Arrow keys to navigate |")," ",o?s("escToCancel2","Esc to cancel"):s("19QuickSelectNNotesCChatEscToCancel","1-9 quick select | n notes | c chat | Esc to cancel"))))},"QuestionPrompt");function QuestionView({pendingQuestion:e,setPermissionMode:n,dangerouslySkipPermissions:o,setPendingQuestion:r,setStatus:s,setStaticKey:a}){const{t:i}=xt(),[l,c]=mt(!1),d=e.params.planContent;return at((e,n)=>{d&&getIsExpandToolShortcut(n,e)&&c(e=>!e)}),ct.createElement(tt,{marginY:1,flexDirection:"column"},d&&ct.createElement(tt,{marginBottom:1},ct.createElement(PlanPanel,{content:d,filePath:e.params.planFilePath,expanded:l})),ct.createElement(R$,{questions:e.params.questions,hideCustomInput:e.params.hideCustomInput,compact:e.params.compact,onResponse:l=>{const c=resolvePlanModeAnswerTransition({answer:l.answers[0]?.selectedOptions[0]||"",exitPlanMode:e.params.exitPlanMode,enterPlanMode:e.params.enterPlanMode,dangerouslySkipPermissions:o});c&&n(c),e.resolve(l),r(null),s(i("answersSubmitted","Answers submitted")),hardResetForResize(),a(e=>e+1)}}))}__name(QuestionView,"QuestionView"),Jt(),hL();var L$="__skip__",O$=__name(({suggestion:e,onSelect:n,onClose:o})=>{const{t:r}=xt(),{completedMode:s,primary:a,secondary:i,description:l}=e,c=[...a.map(e=>({label:e,value:e,isPrimary:!0})),...i.map(e=>({label:e,value:e,isPrimary:!1})),{label:"skip",value:L$,isPrimary:!1}],d=new Map(c.map(e=>[e.label,e]));at((e,n)=>{n.escape&&o()});const u=__name(e=>{e.value!==L$?(n(e.value),o()):o()},"handleSelect");return ct.createElement(oF,{title:r("designComplete","/design {{v0}} complete",{v0:s}),titleSuffix:` · ${translateUiCopy(l)}`,hint:r("enterToRunEscToDismiss","Enter to run · Esc to dismiss")},ct.createElement(SelectInput,{items:c,onSelect:u,indicatorComponent:m$,itemComponent:({label:e,isSelected:n})=>{const o=d.get(e),s=o?.value===L$,a=o?.isPrimary??!1,i=s?r("runDesignManually","run /design manually"):translateUiCopy(ov[e]??"");return ct.createElement(tt,{flexDirection:"column"},ct.createElement(d$,{isSelected:n,idleColor:a?XO.WHITE:XO.DIM},s?r("skip"," skip "):` /design ${e} `),i&&ct.createElement(d$,{isSelected:n,idleColor:XO.DIM,bold:!1},` ${i} `))}}))},"DesignModeSelector");function getUsageToneColor(e){return"danger"===e?XO.RED:"warning"===e?XO.YELLOW:XO.GREEN}function getDistanceToneColor(e){return"danger"===e?XO.RED:"warning"===e?XO.YELLOW:XO.GRAY}function ContextProgress({view:e,progressBarWidth:n}){const{t:o}=xt(),r=getUsageToneColor(e.tone),s=buildBlockBar({percentage:e.percentage,width:n});return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{marginBottom:1},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:XO.BLUE,color:"#f4f4f4",bold:!0},o("context2","{{v0}}CONTEXT{{v1}}",{v0:zD,v1:zD}))),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.GRAY},e.modelLabel)),ct.createElement(tt,null,ct.createElement(nt,{color:r},s.filled),ct.createElement(nt,{color:cD},s.empty),ct.createElement(nt,{bold:!0,color:r},` ${e.percentageLabel}`)),ct.createElement(tt,null,ct.createElement(nt,null,e.tokensUsedLabel),ct.createElement(nt,{color:XO.GRAY},` / ${e.tokenLimitLabel}`),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:r},e.tokensRemainingLabel),ct.createElement(nt,{color:XO.GRAY}," ",o("remaining","remaining")),e.isEstimated&&ct.createElement(nt,{color:XO.DIM}," ",o("estimated","(estimated)"))))}function CompactionDistance({view:e}){if(!e)return null;const n=getDistanceToneColor(e.tone);return ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:n},e.tokensAwayLabel),ct.createElement(nt,{color:XO.DIM},e.label))}function BreakdownRow({item:e,labelWidth:n}){const{t:o}=xt(),r=translateUiCopy(e.name);return ct.createElement(tt,null,ct.createElement(nt,null,r+" ".repeat(Math.max(1,n-Be(r)))),ct.createElement(nt,{bold:!0},e.paddedValue),ct.createElement(nt,{color:XO.GRAY},o("tokens"," tokens")),e.detail&&ct.createElement(nt,{color:XO.DIM},` · ${e.detail}`))}function ContextBreakdown({view:e,labelWidth:n}){return 0===e.rows.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},e.rows.map(e=>ct.createElement(BreakdownRow,{key:e.name,item:e,labelWidth:n})))}function ContextTips({tips:e}){return 0===e.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},e.map(e=>ct.createElement(tt,{key:e},ct.createElement(nt,{color:XO.CYAN},vt.pointer),ct.createElement(nt,{color:XO.GRAY}," ",e))))}function ContextMessage({analysis:e}){const n=projectContextView(e,{terminalWidth:useTerminalWidth(),modelDisplayName:XL(e.model)});return ct.createElement(tt,{flexDirection:"column",paddingTop:1},ct.createElement(ContextProgress,{view:n.progress,progressBarWidth:n.layout.progressBarWidth}),ct.createElement(CompactionDistance,{view:n.compactionDistance}),ct.createElement(ContextBreakdown,{view:n.breakdown,labelWidth:n.layout.labelWidth}),ct.createElement(ContextTips,{tips:n.tips}))}function ContextConfigView({staticKey:e,sessionId:n,onClose:o,setInput:r}){const{t:s}=xt(),[a,i]=mt(null),[l,c]=mt(null);return gt(()=>{let e=!0;return __name(async()=>{const o=hO(n);if(o)try{const n=await analyzeCommandContext({messages:harnessSessionMessages(o),deps:{getContextLimit:__name(e=>customAwareContextLimit({modelId:e,fallback:getContextLimit}),"getContextLimit")}});e&&i(n)}catch{e&&c(s("failedToAnalyzeContext","Failed to analyze context."))}else e&&c(s("noActiveConversationStartChattingFirst","No active conversation. Start chatting first."))},"load")(),()=>{e=!1}},[n]),at((e,n)=>{n.escape&&(r(""),o())}),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(ContextBody,{error:l,analysis:a}),ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Esc")," ",s("toReturnToConversation","to return to conversation")))))}function ContextBody({error:e,analysis:n}){const{t:o}=xt();return e?ct.createElement(oF,{title:o("context","Context"),gapAfterHeader:!1},ct.createElement(nt,{color:XO.DIM},e)):n?ct.createElement(ContextMessage,{analysis:n}):ct.createElement(oF,{title:o("context","Context"),gapAfterHeader:!1},ct.createElement($F,{label:o("loadingContextAnalysis","Loading context analysis")}))}Jt(),hL(),Jt(),hL(),__name(getUsageToneColor,"getUsageToneColor"),__name(getDistanceToneColor,"getDistanceToneColor"),__name(ContextProgress,"ContextProgress"),__name(CompactionDistance,"CompactionDistance"),__name(BreakdownRow,"BreakdownRow"),__name(ContextBreakdown,"ContextBreakdown"),__name(ContextTips,"ContextTips"),__name(ContextMessage,"ContextMessage"),__name(ContextConfigView,"ContextConfigView"),__name(ContextBody,"ContextBody"),Jt(),Jt(),hL(),Jt(),hL();var D$="https://commandcode.ai/studio";function getVersionStatus(){try{return{current:getPackageJson(import.meta.url).version??"Unknown",updateAvailable:null}}catch{return{current:"Unknown",updateAvailable:null}}}async function getAuthStatus(){try{const e=await checkCommandAuthStatus({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),n=e.userName||null;return{authenticated:e.authenticated,username:n}}catch{return{authenticated:!1,username:null}}}async function getModelStatus(e){try{const n=e?.sessionId?hO(e.sessionId):void 0,o=n?.getModel()??await getSelectedModel(),r=getProviderDisplayName((await loadUserConfig()).provider||null),s=getModelShortName({modelId:o,findModelById:findModelById});let a;return modelSupportsReasoningEffort(o)&&(a=n?n.getEffort():getReasoningEffort(o)),{id:o,displayName:a?t("withEffort","{{v0}} with {{v1}} effort",{v0:s,v1:a}):s,provider:r}}catch{return{id:"Unknown",displayName:"Unknown",provider:"Unknown"}}}function getPrStatus(e){try{const n=getCachedPR(e);return n?{number:n.number,url:n.url,state:n.state}:null}catch{return null}}function gatherStatusData(e){const n=e?.runtime??createNodeRuntime();return getStatusSnapshot({runtime:n,version:getVersionStatus,auth:getAuthStatus,model:__name(()=>getModelStatus({sessionId:e?.sessionId}),"model"),pr:getPrStatus,taste:__name(()=>getTasteStatus({runtime:n,learningEnabled:isTasteLearningEnabled,byokSuppressed:isByok({model:getConfiguredModel()})}),"taste"),system:__name(()=>getSystemStatus({runtime:n,arch:process.arch,nodeVersion:process.version}),"system"),disabledSkillNames:__name(async()=>(await loadCommandDisabledSkills()).names,"disabledSkillNames")})}__name(getVersionStatus,"getVersionStatus"),__name(getAuthStatus,"getAuthStatus"),__name(getModelStatus,"getModelStatus"),__name(getPrStatus,"getPrStatus"),__name(gatherStatusData,"gatherStatusData");var N$=__name(({label:e,value:n,valueColor:o,dimValue:r})=>ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},`${e}:`.padEnd(14)),r?ct.createElement(nt,{dimColor:!0},n):ct.createElement(nt,{color:o},n)),"Row");function StatusMessage({statusData:e}){const{t:n}=xt(),o=projectStatusView(e,{profileBaseUrl:"https://commandcode.ai"}),r=o.account.authenticated?vt.tick:vt.cross,s=o.account.authenticated?XO.WHITE:iD.ERROR;return ct.createElement(tt,{flexDirection:"column",paddingX:0},ct.createElement(tt,null,ct.createElement(nt,{color:ZO,bold:!0},"Command Code"," "),ct.createElement(nt,{dimColor:!0},o.versionText)),ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},n("visit","Visit")," "),ct.createElement(_D,{url:D$,text:D$,color:XO.CYAN}),ct.createElement(nt,{dimColor:!0}," ",n("forUsageAndBilling","for usage and billing"))),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{dimColor:!0},n("account","Account:").padEnd(14)),o.account.username&&o.account.profileUrl?ct.createElement(ct.Fragment,null,ct.createElement(_D,{url:o.account.profileUrl,text:o.account.label,color:XO.CYAN}),ct.createElement(nt,{color:s}," ",r)):o.account.authenticated?ct.createElement(ct.Fragment,null,ct.createElement(nt,null,o.account.label),ct.createElement(nt,{color:s}," ",r)):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:iD.WARNING},o.account.label),ct.createElement(nt,{color:s}," ",r),ct.createElement(nt,{dimColor:!0}," ",n("run","— run")," "),ct.createElement(nt,{bold:!0},o.account.loginHint))),ct.createElement(N$,{label:n("model","Model"),value:o.model.value}),ct.createElement(N$,{label:n("branch2","Branch"),value:o.branch.value,dimValue:o.branch.dim}),o.worktree?ct.createElement(N$,{label:n("worktree","Worktree"),value:o.worktree.value}):null,o.repository?ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},n("repository","Repository:").padEnd(14)),ct.createElement(_D,{url:o.repository.url,text:o.repository.text,color:XO.CYAN}),o.pullRequest?ct.createElement(ct.Fragment,null,ct.createElement(nt,{dimColor:!0}," · "),ct.createElement(_D,{url:o.pullRequest.url,text:o.pullRequest.text,color:o.pullRequest.open?XO.CYAN:XO.GRAY}),ct.createElement(nt,{dimColor:!0}," ","(",o.pullRequest.stateLabel,")")):null):o.pullRequest?ct.createElement(tt,null,ct.createElement(nt,{dimColor:!0},n("pullRequest","Pull Request:").padEnd(14)),ct.createElement(_D,{url:o.pullRequest.url,text:o.pullRequest.text,color:o.pullRequest.open?XO.CYAN:XO.GRAY}),ct.createElement(nt,{dimColor:!0}," (",o.pullRequest.stateLabel,")")):null,ct.createElement(N$,{label:"Taste",value:o.taste.value,dimValue:o.taste.dim}),ct.createElement(N$,{label:n("directory","Directory"),value:o.directory.value}),ct.createElement(N$,{label:n("skills","Skills"),value:o.skills.value,dimValue:o.skills.dim}),ct.createElement(N$,{label:n("agents","Agents"),value:o.agents.value,dimValue:o.agents.dim}),ct.createElement(N$,{label:n("system","System"),value:o.system.value}),o.proxy?ct.createElement(N$,{label:n("proxy","Proxy"),value:o.proxy.value}):null)}function StatusBody({state:e}){const{t:n}=xt();return"ready"===e.phase?ct.createElement(StatusMessage,{statusData:e.data}):"error"===e.phase?ct.createElement(nt,{dimColor:!0},n("couldNotLoadStatus","Could not load status:")," ",e.message):ct.createElement(nt,{dimColor:!0},n("gatheringStatus","Gathering status…"))}function StatusConfigView({staticKey:e,sessionId:n,onClose:o,setInput:r}){const{t:s}=xt(),[a,i]=mt({phase:"loading"});return gt(()=>{let e=!1;return gatherStatusData({sessionId:n}).then(n=>{e||i({phase:"ready",data:n})}).catch(n=>{if(e)return;const o=n instanceof Error?n.message:s("failedToGatherStatus","Failed to gather status");i({phase:"error",message:o})}),()=>{e=!0}},[n]),at((e,n)=>{n.escape&&(r(""),o())}),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(StatusBody,{state:a}),ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Esc")," ",s("toReturnToConversation","to return to conversation")))))}function remoteLockPath(){return o(K(),".commandcode","remote-host.json")}__name(StatusMessage,"StatusMessage"),__name(StatusBody,"StatusBody"),__name(StatusConfigView,"StatusConfigView"),Jt(),hL(),Jt(),Jt(),__name(remoteLockPath,"remoteLockPath");var F$=__name(e=>"object"==typeof e&&null!==e,"isRecord"),_$=__name(e=>"string"==typeof e&&""!==e?e:void 0,"asString"),$$=__name(e=>F$(e)&&"EEXIST"===e.code,"isAlreadyExists");function parseLock(e){let n;try{n=JSON.parse(e)}catch{return}if(!F$(n))return;const o=n.pid,r=_$(n.cwd),s=_$(n.sessionId);return"number"==typeof o&&Number.isInteger(o)&&!(o<=0)&&r&&s?{pid:o,cwd:r,sessionId:s,startedAt:_$(n.startedAt)??"unknown",label:_$(n.label)}:void 0}__name(parseLock,"parseLock");var U$=__name(e=>{try{return process.kill(e,0),!0}catch{return!1}},"isProcessAlive");async function readLock(e){try{return parseLock(await ce(e,"utf8"))}catch{return}}async function readRemoteLock(e=remoteLockPath()){const n=await readLock(e);if(n&&U$(n.pid))return n}async function acquireRemoteLock(e,n=remoteLockPath()){await oe(r(n),{recursive:!0});const o=JSON.stringify(e,null,2);for(let r=0;r<3;r+=1){try{return await Q(n,o,{flag:"wx",mode:384}),{ok:!0}}catch(e){if(!$$(e))throw e}const r=await readLock(n);if(r&&r.pid!==e.pid&&U$(r.pid))return{ok:!1,holder:r};await ne(n,{force:!0}).catch(()=>{})}return{ok:!1,holder:await readLock(n)}}async function takeoverRemoteLock(e,n=remoteLockPath()){await oe(r(n),{recursive:!0}),await Q(n,JSON.stringify(e,null,2),{mode:384})}function watchRemoteLock(e){const n=e.path??remoteLockPath(),o=d(n);let s,a,i=!1;const l=__name(()=>{i=!0,s?.close(),a&&clearInterval(a)},"finish"),c=__name(()=>{if(i)return;let o;try{o=parseLock(O(n,"utf8"))}catch{o=void 0}o?.pid!==e.pid&&(l(),e.onLost())},"check");try{s=j(r(n),(e,n)=>{null!==n&&n!==o||c()})}catch{}return a=setInterval(c,e.pollMs??2e3),a.unref?.(),l}async function releaseRemoteLock(e=process.pid,n=remoteLockPath()){const o=await readLock(n);o&&o.pid!==e||await ne(n,{force:!0}).catch(()=>{})}function releaseRemoteLockSync(e=process.pid,n=remoteLockPath()){try{const o=parseLock(O(n,"utf8"));if(o&&o.pid!==e)return;U(n)}catch{}}__name(readLock,"readLock"),__name(readRemoteLock,"readRemoteLock"),__name(acquireRemoteLock,"acquireRemoteLock"),__name(takeoverRemoteLock,"takeoverRemoteLock"),__name(watchRemoteLock,"watchRemoteLock"),__name(releaseRemoteLock,"releaseRemoteLock"),__name(releaseRemoteLockSync,"releaseRemoteLockSync"),Jt();var B$=["telegram","discord"],j$={telegram:{token:"CMD_TELEGRAM_BOT_TOKEN",user:"CMD_TELEGRAM_USER",channel:"CMD_TELEGRAM_CHANNEL"},discord:{token:"CMD_DISCORD_BOT_TOKEN",user:"CMD_DISCORD_USER",channel:"CMD_DISCORD_CHANNEL"}};function remoteConfigPath(){return o(K(),".commandcode","auth.json")}__name(remoteConfigPath,"remoteConfigPath");var W$=__name(e=>"object"==typeof e&&null!==e,"isRecord"),H$=__name(e=>"string"==typeof e&&""!==e?e:void 0,"asString");async function readAuthDocument(e){let n;try{n=await ce(e,"utf8")}catch{return{ok:!0,data:{}}}try{const e=JSON.parse(n);return W$(e)?{ok:!0,data:e}:{ok:!1}}catch{return{ok:!1}}}__name(readAuthDocument,"readAuthDocument");var G$="remoteControl",V$=["rc"],K$=__name((e,n)=>{const o=[G$,...V$].map(n=>W$(e[n])?e[n]:void 0).map(e=>W$(e?.[n])?e[n]:void 0).find(e=>void 0!==e),r=W$(e[n])?e[n]:void 0,s=o??r??{};return{token:H$(s.token),allowedUserId:H$(s.allowedUserId),channelId:H$(s.channelId)}},"providerOf"),z$=__name(e=>[...V$,...B$].filter(n=>n in e),"staleKeys"),q$=__name(e=>Boolean(e.token)||Boolean(e.allowedUserId)||Boolean(e.channelId),"isConfigured");async function loadRemoteConfig(e=remoteConfigPath()){const n=await readAuthDocument(e);if(!n.ok)return{};const o={};for(const e of B$){const r=K$(n.data,e);q$(r)&&(o[e]=r)}return o}async function updateRemoteProviderConfig(e,n,o=remoteConfigPath()){const r=await readAuthDocument(o);if(!r.ok)throw new Error(`${o} is not valid JSON, so it will not be overwritten. Fix or remove the file, then try again.`);const s=await loadRemoteConfig(o),a=s[e];await writeAuthDocument(o,r.data,{...s,[e]:{token:n.token??a?.token,allowedUserId:n.allowedUserId??a?.allowedUserId,channelId:n.channelId??a?.channelId}})}async function migrateRemoteConfig(e=remoteConfigPath()){const n=await readAuthDocument(e);return!(!n.ok||0===z$(n.data).length||(await writeAuthDocument(e,n.data,await loadRemoteConfig(e)),0))}async function writeAuthDocument(e,n,o){const s=o??{},a=W$(n[G$])?n[G$]:{},i={...n,[G$]:{...a,...s}};for(const e of z$(i))delete i[e];const l=JSON.stringify(i,null,2);await oe(r(e),{recursive:!0});const c=`${e}.tmp-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;await Q(c,l,{mode:384});try{await ae(c,e)}catch(e){throw await ne(c).catch(()=>{}),e}}function resolveRemoteSettings(e,n=process.env,o="telegram"){const r=j$[o],s=e[o];return{token:H$(n[r.token])??s?.token,allowedUserId:H$(n[r.user])??s?.allowedUserId,channelId:H$(n[r.channel])??s?.channelId}}function resolveDefaultProvider(e){if(e.active)return e.active;const n=e.env??process.env,o=B$.filter(o=>void 0!==resolveRemoteSettings(e.config,n,o).token);return 1===o.length?o[0]??"telegram":"telegram"}__name(loadRemoteConfig,"loadRemoteConfig"),__name(updateRemoteProviderConfig,"updateRemoteProviderConfig"),__name(migrateRemoteConfig,"migrateRemoteConfig"),__name(writeAuthDocument,"writeAuthDocument"),__name(resolveRemoteSettings,"resolveRemoteSettings"),__name(resolveDefaultProvider,"resolveDefaultProvider"),Jt();var Y$={setTimeout(e,n){const o=setTimeout(e,n);return o.unref?.(),o},clearTimeout(e){clearTimeout(e)},now:__name(()=>Date.now(),"now"),random:__name(()=>Math.random(),"random")};Jt();var J$=__name(e=>e.split("@",1)[0]??e,"stripBotSuffix");function parseRemoteCommand(e){const n=e.trim();if(!n.startsWith("/"))return;const[o="",...r]=n.split(/\s+/),s=J$(o.slice(1)).toLowerCase(),a=r.join(" ").trim();return""!==s?"stop"===s?{kind:"stop"}:"help"===s||"start"===s?{kind:"help"}:"status"===s?{kind:"status"}:{kind:"slash",name:s,argument:a}:void 0}__name(parseRemoteCommand,"parseRemoteCommand");function encodePermissionCallback(e){return`p:${e.id}:${e.allow?"a":"d"}`}function parsePermissionCallback(e){if(!e.startsWith("p:"))return;const[n,o]=e.slice(2).split(":"),r=Number(n);return!Number.isInteger(r)||r<0||"a"!==o&&"d"!==o?void 0:{id:r,allow:"a"===o}}__name(encodePermissionCallback,"encodePermissionCallback"),__name(parsePermissionCallback,"parsePermissionCallback");function encodeQuestionCallback(e){return`q:${e.id}:${e.questionIndex}:${e.optionIndex}`}function parseQuestionCallback(e){if(!e.startsWith("q:"))return;const n=e.slice(2).split(":");if(3!==n.length)return;const[o,r,s]=n.map(Number),a=__name(e=>void 0!==e&&Number.isInteger(e)&&e>=0,"valid");return a(o)&&a(r)&&a(s)?{id:o,questionIndex:r,optionIndex:s}:void 0}__name(encodeQuestionCallback,"encodeQuestionCallback"),__name(parseQuestionCallback,"parseQuestionCallback");function encodeValueCallback(e){return`v:${e.command}:${e.value}`}function parseValueCallback(e){if(!e.startsWith("v:"))return;const n=e.slice(2),o=n.indexOf(":");if(o<=0)return;const r=n.slice(0,o),s=n.slice(o+1).trim();return""===s?void 0:{command:r,value:s}}__name(encodeValueCallback,"encodeValueCallback"),__name(parseValueCallback,"parseValueCallback"),Jt();var Q$,X$=new Set,Z$=new Set,eU=new Set,tU=new Set;function subscribeRemoteMessage(e){return X$.add(e),()=>{X$.delete(e)}}function subscribeRemoteChoice(e){return Z$.add(e),()=>{Z$.delete(e)}}function emitRemoteChoice(e){for(const n of Z$)n(e)}function emitRemoteMessage(e){for(const n of X$)n(e)}function subscribeLocalPrompt(e){return eU.add(e),()=>{eU.delete(e)}}function emitLocalPrompt(e){for(const n of eU)n(e)}function subscribeRemoteStopped(e){return tU.add(e),()=>{tU.delete(e)}}function emitRemoteStopped(){for(const e of tU)e()}function getActiveRemote(){return Q$}function setActiveRemote(e){Q$&&(Q$.bridge.stop(),emitRemoteStopped()),Q$=e}function clearActiveRemote(){Q$?.bridge.stop(),Q$=void 0,emitRemoteStopped()}__name(subscribeRemoteMessage,"subscribeRemoteMessage"),__name(subscribeRemoteChoice,"subscribeRemoteChoice"),__name(emitRemoteChoice,"emitRemoteChoice"),__name(emitRemoteMessage,"emitRemoteMessage"),__name(subscribeLocalPrompt,"subscribeLocalPrompt"),__name(emitLocalPrompt,"emitLocalPrompt"),__name(subscribeRemoteStopped,"subscribeRemoteStopped"),__name(emitRemoteStopped,"emitRemoteStopped"),__name(getActiveRemote,"getActiveRemote"),__name(setActiveRemote,"setActiveRemote"),__name(clearActiveRemote,"clearActiveRemote");var nU=__name(e=>new Promise(n=>{const o=setTimeout(n,e);o.unref?.()}),"graceElapsed");async function shutdownActiveRemote(){const e=Q$;e&&(Q$=void 0,e.bridge.stop(),emitRemoteStopped(),await Promise.race([e.bridge.announce(e.farewell),nU(1500)]))}__name(shutdownActiveRemote,"shutdownActiveRemote"),Jt();var oU=__name(e=>e instanceof Error?e.message:String(e),"errorMessage");Jt();var rU="```";function openingFence(e,n){if(e.startsWith(rU))return n?void 0:e.trimEnd()}function splitLongLine(e,n){const o=[];for(let r=0;r<e.length;r+=n)o.push(e.slice(r,r+n));return o}function splitForChat(e,n){if(e.length<=n)return[e];const o=[];let r,s,a=[],i=0;const l=__name(()=>{if(0===a.length)return;const e=r?[rU]:[];o.push([...a,...e].join("\n")),s=r,a=[],i=0},"flush"),c=__name(()=>{void 0!==s&&(a=[s],i=s.length+1,s=void 0)},"startChunk");for(const o of e.split("\n")){const e=n-(r?4:0);for(const n of o.length>e?splitLongLine(o,e):[o]){a.length>0&&i+n.length+1>e&&(l(),c()),a.push(n),i+=n.length+1;const o=openingFence(n,void 0!==r);o?r=o:n.startsWith(rU)&&(r=void 0)}}return l(),o.filter(e=>""!==e)}__name(openingFence,"openingFence"),__name(splitLongLine,"splitLongLine"),__name(splitForChat,"splitForChat"),Jt();var sU=__name(e=>"object"==typeof e&&null!==e,"isRecord"),aU=__name(e=>"string"==typeof e?e:void 0,"asString"),iU="Thinking";function renderBlock(e){const n=e.suffix?`${e.header} · ${e.suffix}`:e.header,o=e.lines??[];if(0===o.length)return n;const r=o.slice(0,3),s=o.length-r.length,a=r.map(e=>`│ ${e}`);if(s>0)return[n,...a,`└ +${s} more lines`].join("\n");const i=a.pop();return[n,...a,`└${i?.slice(1)??""}`].join("\n")}function createReplyStream(e,n={}){let o=e;const r=n.clock??Y$;let s="",a=!0,i=!1,l=iU;const c=r.now();let d,u=0;const m=[],p=new Map;function renderStatus(e){const o=Math.floor((r.now()-c)/1e3),s=o<60?`${o}s`:`${Math.floor(o/60)}m ${o%60}s`,a=[o>=1?`${e}… ${s}`:`${e}…`,...u>0?[`↓ ${u}`]:[]].join(" · ");return n.formatStatus?.(a)??`✻ ${a}`}function scheduleTick(){void 0!==d&&r.clearTimeout(d),d=r.setTimeout(()=>{a&&void 0!==l&&(o.update(compose(s)),scheduleTick())},1e4)}function stopTick(){void 0!==d&&(r.clearTimeout(d),d=void 0)}function toolLog(){if(0===m.length)return"";const e=Math.max(0,m.length-40);return`\`\`\`\n${[...e>0?[`… ${e} earlier call(s)`]:[],...e>0?m.slice(-40):m].join("\n")}\n\`\`\`\n\n`}function compose(e){const n=void 0===l?[]:[renderStatus(l)];return[toolLog().trimEnd(),e,...n].filter(e=>""!==e).join("\n\n")}function setStatus(e){l=e,void 0===e?stopTick():scheduleTick(),o.update(compose(s))}function pushBlock(e){m.push(renderBlock(e)),o.update(compose(s))}function abandon(){a=!1,l=void 0,stopTick(),o.cancel()}function retarget(e){a&&(o=e,o.update(compose(s)),void 0!==l&&scheduleTick())}function close(e){a=!1,l=void 0,stopTick(),o.finish(compose(e))}function onEvent(e){if(a)if(i=!0,"run_start"!==e.type){if("model_request_end"===e.type){const n=sU(e.usage)?e.usage:void 0,o=n?.outputTokens;return void("number"==typeof o&&(u+=o))}if("thinking_start"!==e.type)if("message_start"!==e.type){if("text_delta"===e.type)return s+=aU(e.delta)??"",l=void 0,void o.update(compose(s));if("tool_queued"===e.type){const o=aU(e.toolName),r=aU(e.toolCallId);if(!o||!r||!n.summarizeCall)return;return void p.set(r,n.summarizeCall({toolName:o,input:sU(e.input)?e.input:{}}))}if("tool_running"===e.type){const o=aU(e.toolName);return void setStatus(aU(e.description)??(o?n.describeTool?.(o)??o:void 0)??"Working")}if("tool_completed"!==e.type&&"tool_errored"!==e.type||(l=""===s?iU:void 0),"tool_completed"===e.type){const o=aU(e.toolCallId),r=aU(e.toolName),s=o?p.get(o):void 0;if(o&&p.delete(o),!s||!r)return;const a=n.summarizeResult?.({toolName:r,result:e.result});return void pushBlock({header:s.header,suffix:a?.suffix??s.suffix,lines:a?.lines})}if("tool_errored"===e.type){const n=aU(e.toolCallId),o=n?p.get(n):void 0;if(n&&p.delete(n),!o)return;return void pushBlock({header:o.header,lines:[aU(e.error)??"failed"]})}if("run_end"===e.type){const n=sU(e.result)?e.result:{};return void close(aU(n.finalText)||s)}if("interrupted"!==e.type){if("run_error"===e.type){const n=sU(e.error)?e.error:{};close(`Run failed: ${aU(n.message)??"unknown error"}`)}}else close(`${s}\n\n⏹ Interrupted.`.trim())}else s="";else setStatus(iU)}else setStatus(iU)}return __name(renderStatus,"renderStatus"),__name(scheduleTick,"scheduleTick"),__name(stopTick,"stopTick"),__name(toolLog,"toolLog"),__name(compose,"compose"),__name(setStatus,"setStatus"),__name(pushBlock,"pushBlock"),__name(abandon,"abandon"),__name(retarget,"retarget"),__name(close,"close"),__name(onEvent,"onEvent"),o.update(compose(s)),scheduleTick(),{onEvent:onEvent,isOpen:__name(()=>a,"isOpen"),hasEvents:__name(()=>i,"hasEvents"),abandon:abandon,retarget:retarget}}function fenceFor2(e){const n=[...e.matchAll(/`+/g)].reduce((e,n)=>Math.max(e,n[0].length),0);return"`".repeat(Math.max(3,n+1))}function getRemoteMessageLabel(e){const[n=""]=e.text.split("\n",1);return n.length>60?`${n.slice(0,59)}…`:n}__name(renderBlock,"renderBlock"),__name(createReplyStream,"createReplyStream"),Jt(),__name(fenceFor2,"fenceFor"),__name(getRemoteMessageLabel,"getRemoteMessageLabel");var lU=__name(e=>e.userName??`user ${e.userId}`,"senderOf"),cU=__name((e,n)=>`Remote message from ${e} (${n}). Carry out the request below.`,"instructionsFor");function buildRemoteSubmission(e){const n=e.platform??"Telegram",o=lU(e),r=fenceFor2(e.text);return{role:"user",input:[cU(n,o),"",r,e.text,r].join("\n"),displayMessage:`${n} (${o}): ${getRemoteMessageLabel(e)}`,isAutomated:!0,isMeta:!0,isRelayed:!0}}__name(buildRemoteSubmission,"buildRemoteSubmission"),Jt(),Jt();var dU="input",uU=__name(e=>"string"==typeof e?e:void 0,"asString"),mU=__name(e=>"object"==typeof e&&null!==e,"isRecord"),pU=__name(e=>"string"==typeof e?e:"number"==typeof e?String(e):void 0,"asId");function toApiError2(e,n,o){const r=mU(o)&&"string"==typeof o.message?o.message:`HTTP ${n}`,s=mU(o)&&"number"==typeof o.retry_after?Math.ceil(1e3*o.retry_after):void 0;return Object.assign(new Error(`Discord ${e} failed: ${r}`),{retryable:429===n||n>=500,retryAfterMs:s})}__name(toApiError2,"toApiError");var gU=__name(e=>e.length<=5&&e.every(e=>e.length<=5),"fitsButtonGrid"),hU=__name(e=>({type:1,components:e.map(e=>({type:2,style:2,label:e.text.slice(0,80),custom_id:e.data.slice(0,100)}))}),"buttonRow");function selectRows(e){const n=[];for(let o=0;o<e.length&&n.length<5;o+=25){const r=e.slice(o,o+25),s=e.length>25;n.push({type:1,components:[{type:3,custom_id:`select-${String(n.length)}`,placeholder:s?`Choose one (${String(o+1)}–${String(o+r.length)})`:"Choose one",options:r.map(e=>({label:e.text.slice(0,100),value:e.data.slice(0,100)}))}]})}return n}__name(selectRows,"selectRows");var fU=__name(e=>e&&0!==e.length?{components:gU(e)?e.map(hU):selectRows(e.flat())}:{},"componentsBody");function createDiscordClient(e){const n=e.fetchFn??fetch,o=e.sleep??(e=>new Promise(n=>setTimeout(n,e)));async function call(r,s,a){let i;for(let l=0;l<3;l+=1){const c=await n(`https://discord.com/api/v10${s}`,{method:r,headers:{authorization:`Bot ${e.token}`,"content-type":"application/json"},...void 0===a?{}:{body:JSON.stringify(a)}});if(204===c.status)return;const d=await c.json().catch(()=>({}));if(c.ok)return d;const u=toApiError2(s,c.status,d);if(!u.retryable)throw u;i=u,await o(u.retryAfterMs??500*2**l)}throw i}__name(call,"call");const r=__name((e,n)=>{const o=mU(e)?pU(e.id):void 0;if(!o)throw new Error(`Discord ${n}: malformed response`);return o},"messageIdOf");return{async createThread({channelId:e,name:n}){const o=await call("POST",`/channels/${e}/threads`,{name:n.slice(0,100),type:11,auto_archive_duration:1440});return r(o,"createThread")},async renameThread({channelId:e,name:n}){await call("PATCH",`/channels/${e}`,{name:n.slice(0,100)})},async sendMessage({channelId:e,text:n,buttons:o}){const s=await call("POST",`/channels/${e}/messages`,{content:n,...fU(o)});return r(s,"sendMessage")},async editMessage({channelId:e,messageId:n,text:o}){await call("PATCH",`/channels/${e}/messages/${n}`,{content:o})},async deleteMessage({channelId:e,messageId:n}){await call("DELETE",`/channels/${e}/messages/${n}`)},async replyToInteraction({interactionId:e,token:n,text:o}){await call("POST",`/interactions/${e}/${n}/callback`,{type:4,data:{content:o,flags:64}})},async guildOfChannel(e){const n=await call("GET",`/channels/${e}`),o=mU(n)?pU(n.guild_id):void 0;if(!o)throw new Error("Discord guildOfChannel: not a server channel");return o},async publishCommands({applicationId:e,guildId:n,commands:o}){await call("PUT",`/applications/${e}/guilds/${n}/commands`,o.map(e=>({type:1,name:e.name,description:e.description.slice(0,100),...e.argument?{options:[{type:3,name:dU,description:e.argument.slice(0,100),required:!1}]}:{}})))},async ackInteraction({interactionId:e,token:n}){await call("POST",`/interactions/${e}/${n}/callback`,{type:6})}}}function parseDiscordMessage(e){if(!mU(e))return;const n=mU(e.author)?e.author:void 0,o=pU(e.id),r=pU(e.channel_id),s=pU(n?.id);return o&&r&&s?{messageId:o,channelId:r,userId:s,userName:"string"==typeof n?.username?n.username:void 0,text:"string"==typeof e.content?e.content:"",fromBot:!0===n?.bot}:void 0}function parseDiscordInteraction(e){if(!mU(e)||3!==e.type)return;const n=mU(e.data)?e.data:void 0,o=mU(e.message)?e.message:void 0,r=pU(e.id),s=interactionChannelId(e),a=interactionUserId(e),i=Array.isArray(n?.values)?uU(n.values[0]):void 0;if(!r||!s||!a)return;if("string"!=typeof e.token)return;const l=i??uU(n?.custom_id);return void 0!==l?{interactionId:r,token:e.token,channelId:s,messageId:pU(o?.id),userId:a,data:l}:void 0}function interactionChannelId(e){const n=mU(e.channel)?e.channel:void 0;return pU(e.channel_id)??pU(n?.id)}function interactionUserId(e){const n=mU(e.member)?e.member:void 0,o=mU(e.user)?e.user:mU(n?.user)?n.user:void 0;return pU(o?.id)}function parseDiscordCommand(e){if(!mU(e)||2!==e.type)return;const n=mU(e.data)?e.data:void 0,o=pU(e.id),r=interactionChannelId(e),s=interactionUserId(e);if(!o||!r||!s)return;if("string"!=typeof e.token)return;if("string"!=typeof n?.name)return;const a=(Array.isArray(n.options)?n.options:[]).find(e=>mU(e)&&e.name===dU);return{interactionId:o,token:e.token,channelId:r,userId:s,name:n.name,value:"string"==typeof a?.value?a.value:""}}function createDiscordReply(e){const{client:n,channelId:o}=e,r=e.prefix??"",s=e.clock??Y$,a=e.onLog??(()=>{}),i=[],l=[];let c,d="",u="",m=Number.NEGATIVE_INFINITY,p=!1,g=Promise.resolve();const h=__name(e=>""===r?e:`${r}\n\n${e}`,"label");async function deliver(r){const s=splitForChat(h(r),2e3);for(const[r,a]of s.entries()){if(l[r]===a)continue;const s=i[r];if(void 0===s){const s=await n.sendMessage({channelId:o,text:a});i[r]=s,e.onSent?.(s)}else await n.editMessage({channelId:o,messageId:s,text:a});l[r]=a}}function enqueueSend(e){const n=u;u=e,m=s.now(),g=g.then(()=>deliver(e)).catch(e=>{u=n,a(`reply failed: ${oU(e)}`)})}function flushLater(){if(void 0!==c)return;const e=Math.max(0,1e3-(s.now()-m));c=s.setTimeout(()=>{c=void 0,d!==u&&enqueueSend(d)},e)}return __name(deliver,"deliver"),__name(enqueueSend,"enqueueSend"),__name(flushLater,"flushLater"),{cancel(){p=!0,void 0!==c&&(s.clearTimeout(c),c=void 0)},update(e){p||(d=e,e!==u&&(s.now()-m>=1e3?enqueueSend(e):flushLater()))},async finish(e){p||(d=""===e?"(no text reply)":e,void 0!==c&&(s.clearTimeout(c),c=void 0),await g,d!==u&&enqueueSend(d),await g)}}}__name(createDiscordClient,"createDiscordClient"),__name(parseDiscordMessage,"parseDiscordMessage"),__name(parseDiscordInteraction,"parseDiscordInteraction"),__name(interactionChannelId,"interactionChannelId"),__name(interactionUserId,"interactionUserId"),__name(parseDiscordCommand,"parseDiscordCommand"),Jt(),__name(createDiscordReply,"createDiscordReply");var yU=__name(e=>e.length<=2e3?e:`${e.slice(0,1999)}…`,"clipToDiscordLimit");function createDiscordBridge(e){const{client:n,allowedUserId:o,onMessage:r}=e,s=e.clock??Y$,a=e.onLog??(()=>{});let i,l,c=e.threadName;const d=[];function threadId(){return l??=n.createThread({channelId:e.channelId,name:e.threadName??"Command Code"}).then(e=>(i=e,e)),l}__name(threadId,"threadId");const u=__name(e=>e===i,"isOurs");async function deliver(e){try{const o=await n.sendMessage({channelId:e.channelId,text:yU(e.text),buttons:e.buttons});d.push({channelId:e.channelId,messageId:o})}catch(e){const n=oU(e);a(n.includes("403")?`note failed: ${n}. The bot needs "Send Messages in Threads" in that channel`:`note failed: ${n}`)}}function handleMessage(e){const n=parseDiscordMessage(e);n&&(""!==n.text?n.fromBot||u(n.channelId)&&(n.userId===o?r({chatId:n.channelId,userId:n.userId,userName:n.userName,text:n.text,platform:"Discord"}):a(`refused message from unauthorized user ${n.userId}`)):u(n.channelId)&&!n.fromBot&&a("message arrived with no content. Is MESSAGE CONTENT INTENT on in the developer portal?"))}function acknowledge(e){return n.ackInteraction({interactionId:e.interactionId,token:e.token}).catch(e=>{a(`interaction ack failed: ${oU(e)}`)})}function handleCommand2(e){const n=parseDiscordCommand(e);if(!n)return!1;if(!u(n.channelId))return!0;const s=`/${n.name}${n.value?` ${n.value}`:""}`;return n.userId!==o?(a(`refused command from unauthorized user ${n.userId}`),reply(n,"Not authorized for this session."),!0):(reply(n,`Running ${s}`),r({chatId:n.channelId,userId:n.userId,userName:void 0,text:s,platform:"Discord"}),!0)}function reply(e,o){return n.replyToInteraction({interactionId:e.interactionId,token:e.token,text:o}).catch(e=>{a(`command reply failed: ${oU(e)}`)})}async function publishCommands(o){const r=e.commands??[];if(0!==r.length)try{const s=await n.guildOfChannel(e.channelId);await n.publishCommands({applicationId:o,guildId:s,commands:r}),a(`registered ${r.length} slash command(s)`)}catch(e){const n=oU(e);a(n.includes("Missing Access")||n.includes("403")?`slash commands not registered: ${n}. Re-invite the bot with the applications.commands scope`:`slash commands not registered: ${n}`)}}function handleInteraction(r){const s=parseDiscordInteraction(r);s&&u(s.channelId)&&(acknowledge(s),s.userId===o?e.onChoice?.({chatId:s.channelId,userId:s.userId,data:s.data,acknowledge:__name(async()=>{},"acknowledge"),dismiss:__name(async()=>{if(s.messageId)try{await n.deleteMessage({channelId:s.channelId,messageId:s.messageId})}catch(e){a(`message delete failed: ${oU(e)}`)}},"dismiss")}):a(`refused interaction from unauthorized ${s.userId}`))}__name(deliver,"deliver"),__name(handleMessage,"handleMessage"),__name(acknowledge,"acknowledge"),__name(handleCommand2,"handleCommand"),__name(reply,"reply"),__name(publishCommands,"publishCommands"),__name(handleInteraction,"handleInteraction");const m=e.connect({onDispatch:__name(({type:e,data:n})=>{if("MESSAGE_CREATE"===e)return handleMessage(n);"INTERACTION_CREATE"===e&&(handleCommand2(n)||handleInteraction(n))},"onDispatch"),onReady:__name(({applicationId:n})=>{threadId().then(()=>e.onReady?.({skippedUpdates:0}),n=>e.onFatal?.(`could not open a thread in that channel. Check the id, and that the bot can Create Public Threads there (${oU(n)})`)),n?publishCommands(n):a("no application id in READY, so slash commands are not registered")},"onReady"),onFatal:__name(n=>e.onFatal?.(n),"onFatal")});return{start:__name(()=>m.start(),"start"),stop:__name(()=>m.stop(),"stop"),isRunning:__name(()=>m.isRunning(),"isRunning"),openReply:__name(o=>{const r="function"==typeof e.label?e.label():e.label;return void 0!==r&&r!==c&&(c=r,threadId().then(e=>n.renameThread({channelId:e,name:r})).catch(e=>{a(`thread rename failed: ${oU(e)}`)})),createDiscordReply({client:n,channelId:o,prefix:r,onSent:__name(e=>d.push({channelId:o,messageId:e}),"onSent"),onLog:a,clock:s})},"openReply"),sendNote:__name((e,n)=>{deliver({channelId:e,text:n})},"sendNote"),sendChoices:__name(e=>{deliver({channelId:e.chatId,text:e.text,buttons:e.buttons})},"sendChoices"),announce:__name(async e=>{const n=await threadId().catch(()=>{});n&&await deliver({channelId:n,text:e})},"announce"),get ownerChatId(){return i},clearSentMessages:__name(async()=>{const e=[...d].reverse();d.length=0;let o=0;for(const r of e)try{await n.deleteMessage(r),o+=1}catch{}return o},"clearSentMessages")}}__name(createDiscordBridge,"createDiscordBridge"),Jt();var vU=__name(e=>`\`${e.replaceAll("`","")}\``,"code"),SU=__name(e=>`⌘ Command Code · ${e.repo}`,"title");function discordConnectBanner(e){const{info:n,note:o}=e,r=[vU(`v${n.version}`),vU(n.model),...n.branch?[vU(n.branch)]:[]].join(" · ");return[`## ${SU(n)}`,r,"-# Slash commands work in this thread. /help lists them.",...o?[`-# ${o}`]:[]].join("\n")}__name(discordConnectBanner,"discordConnectBanner");var wU=__name(e=>[`## ⚪ ${SU(e)} · ended`,"-# Messages sent from now on are skipped when a session reconnects."].join("\n"),"discordFarewell"),kU=__name(e=>`-# ✻ ${e}`,"discordStatusLine"),CU=__name(e=>`-# ⌘ ${e.repo}${e.branch?` · ${e.branch}`:""} · ${e.model}`,"discordReplyLabel"),bU=__name(e=>[`## ${SU(e.info)}${e.info.branch?` · ${e.info.branch}`:""}`,`${vU(`v${e.info.version}`)} · ${vU(e.info.model)}`,`-# ${e.mode}`].join("\n"),"discordStatus");Jt();var TU={4004:"that bot token is not valid",4010:"invalid shard",4011:"this bot is in too many servers to run unsharded",4012:"invalid API version",4013:"invalid intents",4014:"the MESSAGE CONTENT intent is off. Turn it on in the Discord developer portal, under Bot → Privileged Gateway Intents"},EU=__name(e=>"object"==typeof e&&null!==e,"isRecord");function createDiscordGateway(e){const n=e.clock??Y$,o=e.onLog??(()=>{}),r=e.createSocket??(e=>new WebSocket(e));let s,a,i,l,c,d,u=!1,m=0,p=0,g=!1;const h=__name(()=>{void 0!==a&&n.clearTimeout(a),void 0!==i&&n.clearTimeout(i),a=void 0,i=void 0},"clearTimers"),f=__name(e=>{try{s?.send(JSON.stringify(e))}catch(e){o(`gateway send failed: ${String(e)}`)}},"send");function backoffMs2(){const e=Math.min(p-1,5);return Math.min(1e3*2**e,3e4)+Math.floor(500*n.random())}function scheduleHeartbeat(e,r){a=n.setTimeout(()=>{if(u&&r===m){if(g)return o("gateway heartbeat not acknowledged, reconnecting"),void s?.close(4e3);g=!0,f({op:1,d:d??null}),scheduleHeartbeat(e,r)}},e)}function identify(){f(l&&void 0!==d?{op:6,d:{token:e.token,session_id:l,seq:d}}:{op:2,d:{token:e.token,intents:33280,properties:{os:process.platform,browser:"commandcode",device:"commandcode"}}})}function handleDispatch(n,r){if("READY"===n&&EU(r)){p=0,l="string"==typeof r.session_id?r.session_id:void 0,c="string"==typeof r.resume_gateway_url?`${r.resume_gateway_url}/?v=10&encoding=json`:void 0,o("gateway ready");const n=EU(r.application)?r.application:void 0,s=EU(r.user)?r.user:void 0;return void e.onReady?.({applicationId:"string"==typeof n?.id?n.id:"string"==typeof s?.id?s.id:void 0})}if("RESUMED"===n)return p=0,void o("gateway resumed");e.onDispatch({type:n,data:r})}function handleFrame(e,r){if(!u||r!==m)return;let i;try{i=JSON.parse("string"==typeof e?e:String(e))}catch{return}if(EU(i)){if("number"==typeof i.s&&(d=i.s),10===i.op&&EU(i.d)){const e="number"==typeof i.d.heartbeat_interval?i.d.heartbeat_interval:41250;return g=!1,a=n.setTimeout(()=>{u&&r===m&&(g=!0,f({op:1,d:d??null}),scheduleHeartbeat(e,r))},Math.floor(e*n.random())),void identify()}if(11!==i.op)return 7===i.op?(o("gateway asked us to reconnect"),void s?.close(4e3)):9===i.op?(!0!==i.d&&(l=void 0,d=void 0,c=void 0),o("gateway invalidated the session"),void s?.close(4e3)):void(0===i.op&&"string"==typeof i.t&&handleDispatch(i.t,i.d));g=!1}}function connect(n){if(!u||n!==m)return;h();const a=l&&c?c:"wss://gateway.discord.gg/?v=10&encoding=json";let i;try{i=r(a)}catch(e){return o(`gateway connect failed: ${String(e)}`),void scheduleReconnect(n)}s=i,i.onopen=()=>o("gateway socket open"),i.onmessage=e=>handleFrame(e.data,n),i.onerror=()=>o("gateway socket error"),i.onclose=r=>{if(!u||n!==m)return;const s=TU[r.code];if(s)return u=!1,h(),o(`gateway closed fatally (${r.code}): ${s}`),void e.onFatal?.(s);4007!==r.code&&4009!==r.code||(l=void 0,d=void 0,c=void 0),o(`gateway closed (${r.code})`),scheduleReconnect(n)}}function scheduleReconnect(e){u&&e===m&&(h(),p+=1,i=n.setTimeout(()=>connect(e),backoffMs2()))}return __name(backoffMs2,"backoffMs"),__name(scheduleHeartbeat,"scheduleHeartbeat"),__name(identify,"identify"),__name(handleDispatch,"handleDispatch"),__name(handleFrame,"handleFrame"),__name(connect,"connect"),__name(scheduleReconnect,"scheduleReconnect"),{start(){u||(u=!0,m+=1,p=0,connect(m))},stop(){u=!1,m+=1,h();try{s?.close(1e3)}catch{}s=void 0,l=void 0,d=void 0,c=void 0},isRunning:__name(()=>u,"isRunning")}}__name(createDiscordGateway,"createDiscordGateway"),Jt(),Jt();var PU={"content-type":"application/json"},MU=__name(e=>e instanceof Error&&"retryable"in e,"isTelegramApiError");function toApiError3(e,n,o){const r=DU(o)?o:{},s=DU(r.parameters)?r.parameters:{},a="string"==typeof r.description?r.description:`Telegram API error (HTTP ${n})`;return Object.assign(new Error(`${e}: ${a}`),{retryable:429===n||n>=500,retryAfterMs:"number"==typeof s.retry_after?1e3*s.retry_after:void 0})}__name(toApiError3,"toApiError");var IU=__name(e=>!MU(e)||e.retryable,"isRetryableFailure"),AU=__name((e,n)=>MU(e)&&void 0!==e.retryAfterMs?e.retryAfterMs:500*2**n,"retryDelayMs"),xU=__name(e=>e instanceof Error&&e.message.includes("message is not modified"),"isNotModifiedError"),RU=__name(e=>e instanceof Error&&/can'?t parse entities/i.test(e.message),"isParseEntitiesError"),LU=__name(e=>e instanceof Error&&/chat not found/i.test(e.message),"isChatMissingError"),OU=__name(e=>e instanceof Error&&/message to edit not found|message can'?t be edited/i.test(e.message),"isMessageGoneError"),DU=__name(e=>"object"==typeof e&&null!==e,"isRecord"),NU=__name(e=>"string"==typeof e?e:"number"==typeof e?String(e):void 0,"asId");function parseMessage2(e){if(!DU(e))return;const n=DU(e.chat)?e.chat:void 0,o=DU(e.from)?e.from:void 0,r=e.message_id,s=NU(n?.id),a=NU(o?.id);return"number"==typeof r&&s&&a?{messageId:r,chatId:s,userId:a,userName:"string"==typeof o?.username?o.username:void 0,text:"string"==typeof e.text?e.text:""}:void 0}function parseCallback(e){if(!DU(e))return;const n=DU(e.from)?e.from:void 0,o=DU(e.message)?e.message:void 0,r=DU(o?.chat)?o.chat:void 0,s=NU(e.id),a=NU(r?.id),i=NU(n?.id);return s&&a&&i&&"string"==typeof e.data&&"number"==typeof o?.message_id?{callbackId:s,chatId:a,userId:i,userName:"string"==typeof n?.username?n.username:void 0,data:e.data,messageId:o.message_id}:void 0}function parseUpdates(e){if(!Array.isArray(e))return[];const n=[];for(const o of e)DU(o)&&"number"==typeof o.update_id&&n.push({updateId:o.update_id,message:parseMessage2(o.message),callback:parseCallback(o.callback_query)});return n}__name(parseMessage2,"parseMessage"),__name(parseCallback,"parseCallback"),__name(parseUpdates,"parseUpdates");var FU=__name(e=>e?{parse_mode:e}:{},"parseModeBody"),_U=__name(e=>e&&e.length>0?{reply_markup:{inline_keyboard:e.map(e=>e.map(e=>({text:e.text,callback_data:e.data})))}}:{},"replyMarkupBody");function defaultSleep3(e){return new Promise(n=>{const o=setTimeout(n,e);o.unref?.()})}function createTelegramClient(e){const n=e.fetchFn??fetch,o=e.sleep??defaultSleep3,r=`https://api.telegram.org/bot${e.token}`;async function call(e){const{method:o,body:s,signal:a=null}=e,i=await n(`${r}/${o}`,s instanceof FormData?{method:"POST",body:s,signal:a}:{method:"POST",body:JSON.stringify(s),headers:PU,signal:a}),l=await i.json().catch(()=>{});if(DU(l)&&!0===l.ok)return l.result;throw toApiError3(o,i.status,l)}async function callWithRetry(e){for(let n=0;;n+=1)try{return await call(e)}catch(e){const r=n>=2;if(!IU(e)||r)throw e;await o(AU(e,n))}}return __name(call,"call"),__name(callWithRetry,"callWithRetry"),{getUpdates:async({offset:e,timeoutSeconds:n,signal:o})=>parseUpdates(await call({method:"getUpdates",body:{offset:e,timeout:n,allowed_updates:["message","callback_query"]},signal:o})),async sendMessage({chatId:e,text:n,parseMode:o,buttons:r}){const s=parseMessage2(await callWithRetry({method:"sendMessage",body:{chat_id:e,text:n,...FU(o),..._U(r)}}));if(!s)throw new Error("sendMessage: malformed Telegram response");return s.messageId},async answerCallback({callbackId:e,text:n}){await callWithRetry({method:"answerCallbackQuery",body:{callback_query_id:e,...void 0===n?{}:{text:n}}})},async deleteMessage({chatId:e,messageId:n}){await callWithRetry({method:"deleteMessage",body:{chat_id:e,message_id:n}})},async editMessageText({chatId:e,messageId:n,text:o,parseMode:r}){try{await callWithRetry({method:"editMessageText",body:{chat_id:e,message_id:n,text:o,...FU(r)}})}catch(e){if(xU(e))return;throw e}}}}__name(defaultSleep3,"defaultSleep"),__name(createTelegramClient,"createTelegramClient"),Jt();var $U=/```[\w+-]*\n?[\s\S]*?```|`[^`\n]+`/g,UU=/^```[\w+-]*\n?([\s\S]*?)```$/,BU=/^`([^`\n]+)`$/,jU=/^#{1,6}[ \t]+(.+)$/gm,WU=/\*\*([^\n]+?)\*\*/g,HU=/~~([^\n]+?)~~/g,GU=/\[([^\]\n]+)\]\(([^)\s]+)\)/g,VU=__name(e=>/^https?:\/\//i.test(e),"isWebUrl"),KU=__name(e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),"escapeHtml");function splitCodeRuns(e){const n=[];let o=0;for(const r of e.matchAll($U)){const s=r.index;void 0!==s&&(s>o&&n.push({isCode:!1,value:e.slice(o,s)}),n.push({isCode:!0,value:r[0]}),o=s+r[0].length)}return o<e.length&&n.push({isCode:!1,value:e.slice(o)}),n}function codeBody(e){const n=UU.exec(e);return n?(n[1]??"").replace(/\n$/,""):BU.exec(e)?.[1]}__name(splitCodeRuns,"splitCodeRuns"),__name(codeBody,"codeBody");var zU=__name(e=>{const n=codeBody(e);return void 0===n?KU(e):e.startsWith("```")?`<pre><code>${KU(n)}</code></pre>`:`<code>${KU(n)}</code>`},"codeToHtml"),qU=__name(e=>KU(e).replace(jU,"<b>$1</b>").replace(WU,"<b>$1</b>").replace(HU,"<s>$1</s>").replace(GU,(e,n,o)=>VU(o)?`<a href="${o}">${n}</a>`:e),"proseToHtml");function toTelegramHtml(e){return splitCodeRuns(e).map(e=>e.isCode?zU(e.value):qU(e.value)).join("")}__name(toTelegramHtml,"toTelegramHtml");var YU=__name(e=>e.replace(jU,"$1").replace(WU,"$1").replace(HU,"$1").replace(GU,(e,n,o)=>VU(o)?`${n} (${o})`:e),"proseToPlain");function stripMarkdown(e){return splitCodeRuns(e).map(e=>e.isCode?codeBody(e.value)??e.value:YU(e.value)).join("")}__name(stripMarkdown,"stripMarkdown");var JU=__name(e=>`\`${e.replaceAll("`","")}\``,"code"),QU=__name(e=>`⌘ Command Code · ${e.repo}`,"title");function telegramConnectBanner(e){const{info:n,note:o}=e,r=[JU(`v${n.version}`),JU(n.model),...n.branch?[JU(n.branch)]:[]].join(" · ");return[`# ${QU(n)}`,r,...o?["",o]:[]].join("\n")}__name(telegramConnectBanner,"telegramConnectBanner");var XU=__name(e=>[`# ⚪ ${QU(e)} · ended`,"Messages sent from now on are skipped when a session reconnects."].join("\n"),"telegramFarewell"),ZU=__name(e=>`⌘ ${e.repo}${e.branch?` · ${e.branch}`:""} · ${e.model}`,"telegramReplyLabel"),eB=__name(e=>[`# ${QU(e.info)}${e.info.branch?` · ${e.info.branch}`:""}`,`${JU(`v${e.info.version}`)} · ${JU(e.info.model)}`,e.mode].join("\n"),"telegramStatus");Jt();var tB=__name(e=>e.length<=4096?e:`${e.slice(0,4095)}…`,"clipToMessageLimit");function createRemoteReply(e){const{client:n,chatId:o}=e,r=e.prefix??"",s=e.clock??Y$,a=e.onLog??(()=>{}),i=e.onSendFailure??(e=>{a(`reply send failed: ${oU(e)}`)}),l=[],c=[];let d,u="",m="",p=Number.NEGATIVE_INFINITY,g=!1,h=Promise.resolve();const f=__name(e=>""===r?e:`${r}\n\n${e}`,"label");async function sendChunk(e){try{return await n.sendMessage({chatId:o,text:toTelegramHtml(e),parseMode:"HTML"})}catch(r){if(!RU(r))throw r;return a(`html rejected, sending plain: ${oU(r)}`),n.sendMessage({chatId:o,text:stripMarkdown(e)})}}async function editChunk(e,r){try{return await n.editMessageText({chatId:o,messageId:e,text:toTelegramHtml(r),parseMode:"HTML"}),!0}catch(s){if(OU(s))return!1;if(!RU(s))throw s;return a(`html rejected, editing plain: ${oU(s)}`),await n.editMessageText({chatId:o,messageId:e,text:stripMarkdown(r)}),!0}}async function post(n,o){const r=await sendChunk(o);l[n]=r,e.onSent?.(r)}async function send(e){const n=splitForChat(e,4096);for(const[e,o]of n.entries()){if(c[e]===o)continue;const n=l[e];void 0===n?await post(e,o):await editChunk(n,o)||await post(e,o),c[e]=o}}function enqueueSend(e){const n=m;m=e,p=s.now(),h=h.then(()=>send(e)).catch(o=>{m===e&&(m=n),i(o)})}function flush(){if(d=void 0,""===u)return;const e=f(u);e!==m&&enqueueSend(e)}function update(e){if(g)return;if(u=e,void 0!==d)return;const n=Math.max(0,p+1e3-s.now());d=s.setTimeout(flush,n)}function cancel5(){g=!0,void 0!==d&&s.clearTimeout(d),d=void 0}async function finish(e){if(g)return;void 0!==d&&s.clearTimeout(d),d=void 0;const n=f(""===e?"(no text reply)":e);await h,n!==m&&enqueueSend(n),await h}return __name(sendChunk,"sendChunk"),__name(editChunk,"editChunk"),__name(post,"post"),__name(send,"send"),__name(enqueueSend,"enqueueSend"),__name(flush,"flush"),__name(update,"update"),__name(cancel5,"cancel"),__name(finish,"finish"),{update:update,finish:finish,cancel:cancel5}}function createSendFailureReporter(e){let n=!1;function report(o){LU(o)?n||(n=!0,e("waiting on Telegram: message your bot once. a bot cannot text you first, and everything held posts when you do")):e(`send failed: ${oU(o)}`)}return __name(report,"report"),{report:report,reset:__name(()=>{n=!1},"reset")}}function createRemoteBridge(e){const{client:n,allowedUserId:o,onMessage:r}=e,s=e.clock??Y$,a=e.onLog??(()=>{}),i=createSendFailureReporter(a);let l,c,d=!1,u=0,m=0,p=0,g=!1;function backoffMs2(){const e=Math.min(p-1,5);return Math.min(1e3*2**e,3e4)+Math.floor(250*s.random())}__name(backoffMs2,"backoffMs");const h=[],f=__name(e=>{h.push(e)},"track");async function clearSentMessages(){const e=[...h].reverse();h.length=0;let r=0;for(const s of e)try{await n.deleteMessage({chatId:o,messageId:s}),r+=1}catch{}return r}async function deliverMarkdown(e){try{return f(await n.sendMessage({chatId:e.chatId,text:tB(toTelegramHtml(e.text)),parseMode:"HTML",buttons:e.buttons})),!0}catch(e){if(!RU(e))return i.report(e),!1;a("note HTML rejected, retrying as plain text")}try{return f(await n.sendMessage({chatId:e.chatId,text:tB(stripMarkdown(e.text)),buttons:e.buttons})),!0}catch(e){return i.report(e),!1}}__name(clearSentMessages,"clearSentMessages"),__name(deliverMarkdown,"deliverMarkdown");const y=__name((e,n)=>deliverMarkdown({chatId:e,text:n}),"deliverNote");function sendNote(e,n){y(e,n)}function sendChoices(e){deliverMarkdown(e)}async function acknowledge(e,o){try{await n.answerCallback({callbackId:e,text:o})}catch(e){a(`callback answer failed: ${oU(e)}`)}}async function dismiss(e,o){try{await n.deleteMessage({chatId:e,messageId:o})}catch(e){a(`message delete failed: ${oU(e)}`)}}let v;function flushAnnouncement(e){const n=v;void 0!==n&&(v=void 0,y(e,n))}function deliver(e){""!==e.text&&(e.userId===o?(i.reset(),flushAnnouncement(e.chatId),r({chatId:e.chatId,userId:e.userId,userName:e.userName,text:e.text})):a(`refused message from unauthorized user ${e.userId}`))}function deliverChoice(n){if(n.userId!==o)return a(`refused callback from unauthorized user ${n.userId}`),void acknowledge(n.callbackId,"Not authorized.");e.onChoice?.({chatId:n.chatId,userId:n.userId,data:n.data,acknowledge:__name(e=>acknowledge(n.callbackId,e),"acknowledge"),dismiss:__name(()=>dismiss(n.chatId,n.messageId),"dismiss")})}function schedule(e,n){d&&e===u&&(l=s.setTimeout(()=>{tick(e)},n))}async function tick(e){if(d&&e===u){c=new AbortController;try{const o=await n.getUpdates({offset:m,timeoutSeconds:30,signal:c.signal});if(!d||e!==u)return;p=0,g&&(g=!1,a("Telegram reconnected"));for(const e of o)e.updateId>=m&&(m=e.updateId+1),e.message&&deliver(e.message),e.callback&&deliverChoice(e.callback);schedule(e,0)}catch(n){if(!d||e!==u)return;p+=1,g||(g=!0,a(`Telegram unreachable: ${oU(n)}. retrying`)),schedule(e,backoffMs2())}}}async function drainBacklog(e){let o=0;for(let r=0;r<20;r+=1){if(!d||e!==u)return o;c=new AbortController;try{const e=await n.getUpdates({offset:m,timeoutSeconds:0,signal:c.signal});if(0===e.length)return o;for(const n of e)n.updateId>=m&&(m=n.updateId+1);o+=e.length}catch(e){return a(`backlog drain failed: ${oU(e)}`),o}}return o}function start(){if(d)return;d=!0,u+=1,p=0,g=!1,a("remote bridge started");const n=u;drainBacklog(n).then(o=>{d&&n===u&&(o>0&&a(`skipped ${o} queued update(s)`),e.onReady?.({skippedUpdates:o}),schedule(n,0))})}function stop(){d&&(d=!1,u+=1,void 0!==l&&s.clearTimeout(l),l=void 0,c?.abort(),c=void 0,a("remote bridge stopped"))}return __name(sendNote,"sendNote"),__name(sendChoices,"sendChoices"),__name(acknowledge,"acknowledge"),__name(dismiss,"dismiss"),__name(flushAnnouncement,"flushAnnouncement"),__name(deliver,"deliver"),__name(deliverChoice,"deliverChoice"),__name(schedule,"schedule"),__name(tick,"tick"),__name(drainBacklog,"drainBacklog"),__name(start,"start"),__name(stop,"stop"),{start:start,stop:stop,isRunning:__name(()=>d,"isRunning"),openReply:__name(o=>createRemoteReply({client:n,chatId:o,prefix:"function"==typeof e.label?e.label():e.label,onSent:f,onLog:a,onSendFailure:i.report,clock:s}),"openReply"),sendNote:sendNote,sendChoices:sendChoices,clearSentMessages:clearSentMessages,announce:__name(async e=>{await y(o,e)||(v=e)},"announce"),ownerChatId:o}}async function greetTelegramChat(e){const n=e.client??createTelegramClient({token:e.token});try{return await n.sendMessage({chatId:e.chatId,text:"Setup done. This is where Command Code answers."}),{kind:"greeted"}}catch(e){return LU(e)?{kind:"not-started"}:{kind:"failed",reason:oU(e)}}}function usePhaseModel(e){const[n,o]=mt(null);return gt(()=>{const n=__name(()=>{const n=hO(e.sessionId);if(!n)return void o(null);const r=n.getActiveModelLane();if(!r)return void o(null);const s="planning"===r?"planning":"implementing",a=XL(n.getActiveModel());o(e=>e?.lane===s&&e.modelName===a?e:{lane:s,modelName:a})},"read");n();const r=setInterval(n,1e3);return()=>clearInterval(r)},[e.sessionId]),n}__name(createRemoteReply,"createRemoteReply"),Jt(),__name(createSendFailureReporter,"createSendFailureReporter"),__name(createRemoteBridge,"createRemoteBridge"),Jt(),__name(greetTelegramChat,"greetTelegramChat"),Jt(),__name(usePhaseModel,"usePhaseModel"),Jt(),hL(),Jt(),Jt(),Jt(),Jt();var nB=/\[\^[^\]]+\]/;function splitMarkdownBlocks(e){return e?nB.test(e)?[e]:kt.lex(e,{gfm:!0}).map(e=>e.raw):[]}function isWhitespaceOnly2(e){return 0===e.trim().length}function createBlockStream(){let e="",n=0,o=!1;function frozenAdvance(o){return{newlyCompleted:[],openTail:o.startsWith(e)?o.slice(e.length):o,committedBlockCount:n,frozen:!0}}function advance(r){if(o)return frozenAdvance(r);if(!r.startsWith(e))return o=!0,frozenAdvance(r);const s=splitMarkdownBlocks(r);if(s.length<=1)return{newlyCompleted:[],openTail:r.slice(e.length),committedBlockCount:n,frozen:!1};const a=s.slice(0,-1),i=[];let l=0;for(const s of a){const a=l+s.length;if(a<=e.length){if(e.slice(l,a)!==s)return o=!0,frozenAdvance(r)}else{if(l!==e.length)return o=!0,frozenAdvance(r);i.push(s),e+=s,isWhitespaceOnly2(s)||(n+=1)}l=a}return{newlyCompleted:i,openTail:r.slice(e.length),committedBlockCount:n,frozen:!1}}function finalize(r){if(o||!r.startsWith(e)){const o=r.startsWith(e)?r.slice(e.length):r;return{remaining:o?[o]:[],committedBlockCount:n}}const s=r.slice(e.length);return s?{remaining:splitMarkdownBlocks(s),committedBlockCount:n}:{remaining:[],committedBlockCount:n}}return __name(frozenAdvance,"frozenAdvance"),__name(advance,"advance"),__name(finalize,"finalize"),{advance:advance,finalize:finalize}}__name(splitMarkdownBlocks,"splitMarkdownBlocks"),__name(isWhitespaceOnly2,"isWhitespaceOnly"),__name(createBlockStream,"createBlockStream"),Jt();var oB=String.fromCharCode(8203),rB=new Set(["_","~","*","`"]),sB=/!?\[[^\]]*\]\([^)]*$/,aB=/!?\[[^\]]*$/;function isSpace(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function isOnlyMarkersOrSpace(e){for(const n of e)if(!isSpace(n)&&!rB.has(n))return!1;return!0}function isShortSetextUnderline(e){if(0===e.length||e.length>2)return!1;const n=e[0];if("-"!==n&&"="!==n)return!1;for(const o of e)if(o!==n)return!1;return!0}function isTagOpener(e){const n=e.startsWith("</")?e[2]:e[1];return void 0!==n&&/[a-zA-Z]/.test(n)}function countFenceMarkers(e){let n=0;for(let o=0;o<e.length;o+=1)"\\"!==e[o]||"`"!==e[o+1]?e.startsWith("```",o)&&(n+=1,o+=2):o+=1;return n}function countMarkerOutsideCode(e,n){let o=0,r=!1,s=!1;for(let a=0;a<e.length;a+=1){const i=e[a];"\\"!==i?e.startsWith("```",a)?(r=!r,a+=2):r||("`"!==i?s||e.startsWith(n,a)&&(o+=1,a+=n.length-1):s=!s):a+=1}return o}function countSingleBackticks(e){let n=0,o=!1;for(let r=0;r<e.length;r+=1)"\\"!==e[r]||"`"!==e[r+1]?e.startsWith("```",r)?(o=!o,r+=2):o||"`"!==e[r]||(n+=1):r+=1;return n}function stripDanglingHtmlTag(e){const n=e.lastIndexOf("<");if(-1===n)return e;const o=e.slice(n);return o.includes(">")?e:isTagOpener(o)?e.slice(0,n).trimEnd():e}function stripDanglingLink(e){const n=e.match(sB);if(void 0!==n?.index)return e.slice(0,n.index).trimEnd();const o=e.match(aB);return void 0!==o?.index?e.slice(0,o.index).trimEnd():e}function guardSetextUnderline(e){const n=e.lastIndexOf("\n");if(-1===n)return e;const o=e.slice(n+1),r=o.trim();if(!isShortSetextUnderline(r))return e;if(o!==r&&o.endsWith(" "))return e;const s=e.slice(0,n).split("\n").at(-1);return s&&0!==s.trim().length?`${e}${oB}`:e}function closeUnbalancedMarker(e,n,o){if(countMarkerOutsideCode(e,n)%2==0)return e;const r=e.lastIndexOf(n),s=e.slice(r+n.length);return isOnlyMarkersOrSpace(s)?e:o&&s.endsWith(o)?`${e}${o}`:`${e}${n}`}function completeInlineTripleFence(e){if(e.includes("\n"))return null;if(!e.startsWith("```"))return null;if(!e.endsWith("``")||e.endsWith("```"))return null;const n=e.slice(3,-2);return 0===n.length||n.includes("`")?null:`${e}\``}function closeInlineCode(e){if(countSingleBackticks(e)%2==0)return e;const n=e.lastIndexOf("`");return isOnlyMarkersOrSpace(e.slice(n+1))?e:`${e}\``}function mendMarkdown(e){if(!e)return e;const n=completeInlineTripleFence(e);if(null!==n)return n;if(countFenceMarkers(e)%2==1)return e;let o=e;return o=stripDanglingHtmlTag(o),o=stripDanglingLink(o),o=guardSetextUnderline(o),o=closeUnbalancedMarker(o,"***",""),o=closeUnbalancedMarker(o,"**","*"),o=closeUnbalancedMarker(o,"__","_"),o=closeUnbalancedMarker(o,"~~","~"),o=closeInlineCode(o),o}__name(isSpace,"isSpace"),__name(isOnlyMarkersOrSpace,"isOnlyMarkersOrSpace"),__name(isShortSetextUnderline,"isShortSetextUnderline"),__name(isTagOpener,"isTagOpener"),__name(countFenceMarkers,"countFenceMarkers"),__name(countMarkerOutsideCode,"countMarkerOutsideCode"),__name(countSingleBackticks,"countSingleBackticks"),__name(stripDanglingHtmlTag,"stripDanglingHtmlTag"),__name(stripDanglingLink,"stripDanglingLink"),__name(guardSetextUnderline,"guardSetextUnderline"),__name(closeUnbalancedMarker,"closeUnbalancedMarker"),__name(completeInlineTripleFence,"completeInlineTripleFence"),__name(closeInlineCode,"closeInlineCode"),__name(mendMarkdown,"mendMarkdown");var iB=Mt()?"⠶":"#";function streamingMaxRows(e){return Math.max(8,e-12)}function AssistantMessage({content:e,isStreaming:n=!1,continuation:o=!1}){const r=useTerminalRows(),s=n?mendMarkdown(e):e;return ct.createElement(tt,null,o?ct.createElement(tt,{width:2,flexShrink:0}):ct.createElement(nt,{color:uD},iB),ct.createElement(tt,{marginLeft:o?0:1,flexGrow:1,flexShrink:1,minWidth:0,flexDirection:"column"},ct.createElement(Markdown,{maxPhysicalRows:n?streamingMaxRows(r):void 0},s)))}__name(streamingMaxRows,"streamingMaxRows"),__name(AssistantMessage,"AssistantMessage"),Jt();var lB=/^\s*```/;function isBlank(e){return 0===e.trim().length}function leadingSpaces(e){return e.length-e.trimStart().length}function badgeReplyLines(e){const n=e.split("\n").filter(e=>!lB.test(e)),o=n.findIndex(e=>!isBlank(e));if(-1===o)return[];const r=[...n].reverse().findIndex(e=>!isBlank(e)),s=n.slice(o,n.length-r).filter((e,n,o)=>!(isBlank(e)&&n>0&&isBlank(o[n-1]??""))),a=Math.min(...s.filter(e=>!isBlank(e)).map(leadingSpaces));return s.map(e=>isBlank(e)?"":e.slice(a))}__name(isBlank,"isBlank"),__name(leadingSpaces,"leadingSpaces"),__name(badgeReplyLines,"badgeReplyLines");var cB=/^\s*title\s*:\s*/i,dB=/[─━│┃┌┐└┘├┤┬┴┼═║╔╗╚╝▶◀►◄▲▼→←↑↓⟶]|-->|<--|==>/,uB=/^[#>*_`\s]+|[*_`]+$/g;function cleanTitle(e){const n=e.replace(uB,"").replace(cB,"").replace(/[.:]+$/,"").trim();if(n)return n.length>48?`${n.slice(0,47)}…`:n}function splitReplyTitle(e){const n=e.search(/^\s*```/m),o=(-1===n?e:e.slice(0,n)).split("\n").filter(e=>!isBlank(e)),r=o[0];return r?-1===n&&(o.length>1||dB.test(r))?{title:void 0,body:e}:{title:cleanTitle(r),body:-1===n?"":e.slice(n)}:{title:void 0,body:e}}function titledReplyBody(e){const{content:n,continuation:o}=e,r=n.split("\n"),s=r.findIndex(e=>lB.test(e));if(-1===s)return o?"":n;const a=r.slice(s+1),i=a.findIndex(e=>lB.test(e));return(-1===i?a:a.slice(0,i)).join("\n")}function badgeHeader(e,n){const o=n??e.label;return`※ ${o?`${e.name} · ${o}`:e.name} ───────────────`}function isReplyBadge(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name}function BadgeReplyMessage({content:e,badge:n,continuation:o=!1}){const{title:r,body:s}=n.titleFromReply&&!o?splitReplyTitle(e):{title:void 0,body:e},a=badgeReplyLines(n.titleFromReply?titledReplyBody({content:s,continuation:o}):s);return o&&0===a.length?null:ct.createElement(tt,{flexDirection:"column"},!o&&ct.createElement(tt,{marginBottom:a.length>0?1:0},ct.createElement(nt,{color:XO.DIM},badgeHeader(n,r))),a.map((e,n)=>ct.createElement(tt,{key:`${n}-${e}`,marginLeft:2},ct.createElement(nt,{color:XO.DIM,wrap:"truncate-end"},e||" "))))}function BashMessage({command:e,output:n,isPending:o=!1,hasError:r=!1}){const{t:s}=xt();let a=XO.GREEN,i=vt.tick,l="default",c=n||s("noOutput","(No output)");o&&(a=XO.YELLOW,i=vt.arrowRight,l=XO.YELLOW,c=s("executing","Executing…")),r&&(a=XO.RED,i=vt.cross,l=XO.RED);const d=ut(()=>buildTreeConnectors(c),[c]);return ct.createElement(tt,null,ct.createElement(nt,{color:a},i),ct.createElement(tt,{flexDirection:"column",marginLeft:1},ct.createElement(tt,null,ct.createElement(nt,{color:XO.GRAY},"$ "),ct.createElement(nt,{color:a,bold:!0},e)),ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{color:wD},d),ct.createElement(nt,{color:l,wrap:"wrap"},c))))}function CommandResultMessage({message:e,details:n,hasError:o=!1}){const{t:r}=xt(),s=o?XO.YELLOW:void 0,a=ut(()=>buildTreeConnectors(e),[e]);return ct.createElement(tt,{flexDirection:"column",marginBottom:0,marginTop:-1},ct.createElement(tt,{columnGap:1},ct.createElement(nt,{color:wD},a),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:s},e))),n&&ct.createElement(tt,{marginLeft:3},ct.createElement(nt,{color:XO.DIM},r("see","See")," ",n)))}__name(cleanTitle,"cleanTitle"),__name(splitReplyTitle,"splitReplyTitle"),__name(titledReplyBody,"titledReplyBody"),__name(badgeHeader,"badgeHeader"),__name(isReplyBadge,"isReplyBadge"),__name(BadgeReplyMessage,"BadgeReplyMessage"),Jt(),__name(BashMessage,"BashMessage"),Jt(),__name(CommandResultMessage,"CommandResultMessage"),Jt(),hL();var mB=/^([\s\S]*\s)(https?:\/\/\S+?)\.?$/;function splitTrailingUrl(e){const n=mB.exec(e.trim());return n?.[2]?{text:(n[1]??"").trimEnd(),url:n[2]}:{text:e,url:null}}function ErrorMessage({content:e}){if(xt(),isInterruptedByUserMessage(e))return ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},vt.pointer),ct.createElement(tt,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},translateUiCopy(Gv))));const{text:n,url:o}=splitTrailingUrl(e);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:XO.RED},vt.warning),ct.createElement(tt,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(Markdown,{color:XO.RED},n))),o&&ct.createElement(tt,{marginLeft:2},ct.createElement(_D,{url:o,text:o,color:XO.CYAN})))}__name(splitTrailingUrl,"splitTrailingUrl"),__name(ErrorMessage,"ErrorMessage"),Jt(),hL();var pB={connected:{char:vt.tick,color:XO.GREEN},installed:{char:vt.tick,color:XO.GREEN},up_to_date:{char:vt.tick,color:XO.GREEN},needs_reload:{char:vt.circle,color:XO.YELLOW},failed:{char:vt.cross,color:XO.RED},not_in_ide:{char:vt.circle,color:XO.YELLOW}};function IDEStatusMessage({status:e,ide:n,details:o}){xt();const{prefix:r,ide:s,suffix:a}=getIDESetupStatusHeadline(e,n),i=pB[e];return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,null,ct.createElement(nt,{color:i.color},i.char),ct.createElement(nt,null," ",translateUiCopy(r)),s&&ct.createElement(nt,{color:XO.CYAN},s),a&&ct.createElement(nt,null,translateUiCopy(a)))),o?.map(e=>ct.createElement(nt,{key:e,color:XO.DIM}," ",translateUiCopy(e))))}function linkImageTokens(e,n){if(!n)return e;const o=new RegExp(mI.source,"g");return e.replace(o,(e,o)=>{const r=n[Number(o)];return r?createOSC8Link(fileUrl(r),e,!1):e})}function UserMessage({content:e,ideHint:n,imageTokenPaths:o}){const{t:r}=xt(),s=isSpecialUserMessageContent(e),a=s&&isInterruptedByUserMessage(e)?XO.DIM:XO.RED,i=s?getSpecialUserMessageContent({content:e,billingUrl:Ks}):linkImageTokens(e,o);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{backgroundColor:s?void 0:dD.BG,paddingRight:1},ct.createElement(nt,{color:s?a:dD.POINTER,bold:!s},vt.pointer),ct.createElement(tt,{marginLeft:1},ct.createElement(nt,{color:s?a:dD.FG,wrap:"wrap"},i))),n&&!s&&ct.createElement(tt,{marginLeft:2},ct.createElement(nt,{color:wD},VD),ct.createElement(nt,{color:XO.DIM}," ",r("selected","Selected")," ",n.lines," ",translateUiCopy(1===n.lines?"line":"lines")," ",r("from","from")," ",n.file," ",r("in","in")," ",n.ide)))}__name(IDEStatusMessage,"IDEStatusMessage"),Jt(),hL(),Jt(),hL(),__name(linkImageTokens,"linkImageTokens"),__name(UserMessage,"UserMessage");var gB=vt.squareSmallFilled;function goalStatusGlyph(e){return"completed"===e?vt.tick:"paused"===e?"⏸":"idle"===e?vt.circle:gB}function goalStatusHeadColor(e){return"completed"===e?XO.GREEN:"paused"===e?XO.YELLOW:XO.DIM}function goalNoticeGlyph(e){return"cleared"===e?vt.tick:"none"===e?vt.circle:"paused"===e?"⏸":gB}function AutoCompactMessage({content:e}){return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},gB," ",e))}function ZdrPausedMessage(){const{t:e}=xt();return ct.createElement(tt,{marginTop:1,marginBottom:1},ct.createElement(nt,null,ct.createElement(nt,{color:XO.DIM},gB," "),ct.createElement(nt,{color:XO.DIM},e("perTaskModelOverridesRevertedToZdrSafeDefaultsRun","Per-task model overrides reverted to ZDR safe defaults. Run")," "),ct.createElement(nt,{color:fD.CODE},"/config"),ct.createElement(nt,{color:XO.DIM}," ",e("toReviewEscToDismiss","to review · esc to dismiss"))))}function ModelNoticeMessage({text:e}){const{t:n}=xt();return ct.createElement(tt,{marginTop:1,marginBottom:1},ct.createElement(nt,null,ct.createElement(nt,{color:XO.DIM},gB," "),ct.createElement(nt,{color:XO.DIM},e),ct.createElement(nt,{color:XO.DIM}," ",n("escToDismiss","· esc to dismiss"))))}function TasteSkipMessage(){const{t:e}=xt();return ct.createElement(tt,{marginTop:1,marginBottom:1},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG,bold:!0},qD)),ct.createElement(nt,{color:XO.DIM}," ",e("skippedRun","Skipped. Run")," "),ct.createElement(nt,{color:fD.CODE},"/learn-taste"),ct.createElement(nt,{color:XO.DIM}," ",e("or","or")," "),ct.createElement(nt,{color:fD.CODE},"cmd learn-taste"),ct.createElement(nt,{color:XO.DIM}," ",e("anytime","anytime.")))}function TasteNoticeMessage({notice:e}){const{t:n}=xt(),o=e.path?`${tasteDirForRoot({projectRoot:process.cwd()})}/${e.path}`:null;return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG,bold:!0},qD)),ct.createElement(nt,{color:eD.TEXT}," ",translateUiCopy(e.label))),ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{color:wD},VD),ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{wrap:"wrap"},e.text,e.confidence&&ct.createElement(nt,{color:XO.DIM},n("confidence"," [Confidence {{v0}}]",{v0:e.confidence}))))),e.path&&o&&ct.createElement(tt,{marginLeft:3},ct.createElement(_D,{url:fileUrl(o),text:e.path,color:XO.DIM})))}function SkillLoadedMessage({name:e}){const{t:n}=xt();return ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},n("skill","{{v0}}SKILL{{v1}}",{v0:zD,v1:zD}))),ct.createElement(nt,null," ",e),ct.createElement(nt,{color:XO.DIM}," ",n("loaded","loaded")))}function HookWarningMessage({content:e}){return ct.createElement(tt,null,ct.createElement(nt,{color:XO.YELLOW},vt.warning),ct.createElement(tt,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.YELLOW},e)))}function HookLineMessage({content:e}){return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},` ${e}`))}function HookLineContinuationMessage({content:e}){return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},` ${e}`))}function HookFrameMessage({lines:e,header:n}){return ct.createElement(tt,{flexDirection:"column"},void 0!==n&&ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},` ${n}`)),e.map((e,n)=>ct.createElement(tt,{key:n,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},e.primary?` └ ${e.text}`:` ${e.text}`))))}function GoalLineMessage({content:e,subline:n}){return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:wD},VD),ct.createElement(nt,{color:XO.DIM,wrap:"wrap"}," ",e)),n?ct.createElement(tt,{marginLeft:4,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},n)):null)}function GoalAcceptMessage({command:e,acceptLine:n,hint:o}){return ct.createElement(tt,{flexDirection:"column"},ct.createElement(UserMessage,{content:e}),ct.createElement(GoalLineMessage,{content:n,subline:o}))}function GoalCompleteMessage({elapsed:e,turns:n,goal:o}){const{t:r}=xt(),s=`${n} ${1===n?"turn":"turns"}`;return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,null,ct.createElement(nt,{color:XO.GREEN},vt.tick," ",r("goalAchieved","Goal achieved")),ct.createElement(nt,{color:XO.DIM},` (${e} · ${s})`))),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},r("goal","Goal:")," ",o)))}function GoalStatusMessage({state:e,headline:n,goal:o,detail:r,hint:s}){const a=goalStatusGlyph(e),i=goalStatusHeadColor(e);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:i},a," ",n)),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},o)),r?ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},r)):null,s?ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},s)):null)}function BranchResultMessage({title:e}){const{t:n}=xt();return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},e?ct.createElement(nt,null,ct.createElement(nt,{color:XO.GREEN},n("forked","⑂ Forked.")),ct.createElement(nt,null," ",n("youReNowIn","You're now in")," "),ct.createElement(nt,{bold:!0},'"',e,'"')):ct.createElement(nt,null,ct.createElement(nt,{color:XO.GREEN},n("forked","⑂ Forked.")),ct.createElement(nt,null," ",n("youReNowInTheNewSession","You're now in the new session")))),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},n("originalSessionSavedResumeToSwitchBack","Original session saved · /resume to switch back"))))}function SessionFileMessage({sessionId:e,fileLine:n}){const{t:o}=xt();return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},gB," ",o("sessionId","Session ID:")," "),ct.createElement(nt,null,e)),ct.createElement(tt,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:wD},VD," "),ct.createElement(nt,{color:XO.DIM,wrap:"wrap"},n)))}function InfoMessage({content:e,metadata:n}){if(n?.isTasteSkip)return ct.createElement(TasteSkipMessage,null);if(n?.tasteNotice)return ct.createElement(TasteNoticeMessage,{notice:n.tasteNotice});if(n?.skillLoaded)return ct.createElement(SkillLoadedMessage,{name:n.skillLoaded.name});if(n?.isAutoCompact)return ct.createElement(AutoCompactMessage,{content:e});if(n?.hookFrame&&n.hookFrame.length>0)return ct.createElement(HookFrameMessage,{lines:n.hookFrame,header:n.hookFrameHeader});if(n?.isHookLine)return ct.createElement(HookLineMessage,{content:e});if(n?.isHookLineContinuation)return ct.createElement(HookLineContinuationMessage,{content:e});if(n?.isHookWarning)return ct.createElement(HookWarningMessage,{content:e});if(n?.isSuccess)return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.GREEN},vt.tick," ",e));if(n?.isGoalAccept)return ct.createElement(GoalAcceptMessage,{command:e,acceptLine:n.goalAcceptLine??"",hint:n.goalSubline});if(n?.isGoalComplete)return ct.createElement(GoalCompleteMessage,{elapsed:n.goalElapsed??"",turns:n.goalTurns??1,goal:n.goalText??""});if(n?.isGoalStatus)return ct.createElement(GoalStatusMessage,{state:n.goalState??"running",headline:n.goalHeadline??"",goal:n.goalText??"",detail:n.goalDetail,hint:n.goalSubline});if(n?.isBranchResult)return ct.createElement(BranchResultMessage,{title:n.branchTitle});if(n?.isSessionFile)return ct.createElement(SessionFileMessage,{sessionId:n.sessionFileId??"",fileLine:n.sessionFileLine??""});if(n?.isGoalNotice){const o=goalNoticeGlyph(n.goalNoticeKind);return ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},o," ",e))}return n?.isGoalLine?ct.createElement(GoalLineMessage,{content:e,subline:n.goalSubline}):ct.createElement(tt,{flexGrow:1,flexShrink:1,minWidth:0},ct.createElement(nt,{color:XO.DIM},gB," ",e))}function reasoningBodyColumns(e){const n=Math.floor(.9*Math.floor(.9*e));return Math.max(1,n-2)}function ReasoningMessage({content:e,expandedOutput:n,expandKey:o,isStreaming:r=!1}){const s=projectReasoningView({content:e,expandedOutput:n,expandKey:o,isStreaming:r,columns:reasoningBodyColumns(useTerminalWidth()),measureWidth:Be});return ct.createElement(tt,{flexDirection:"column",width:"90%"},ct.createElement(tt,null,ct.createElement(nt,{color:tD},"✻"," "),ct.createElement(nt,{color:tD},s.showExpandHint?`${s.headerLabel} `:s.headerLabel),s.showExpandHint&&ct.createElement(BracketWrap,{color:XO.DIM},s.expandHint)),s.showBody&&s.hiddenAboveLabel&&ct.createElement(tt,{marginLeft:2},ct.createElement(nt,{color:XO.DIM},s.hiddenAboveLabel)),s.showBody&&ct.createElement(tt,{marginLeft:2,flexDirection:"column"},ct.createElement(nt,{color:tD,wrap:"wrap",italic:!0},s.bodyText)))}__name(goalStatusGlyph,"goalStatusGlyph"),__name(goalStatusHeadColor,"goalStatusHeadColor"),__name(goalNoticeGlyph,"goalNoticeGlyph"),__name(AutoCompactMessage,"AutoCompactMessage"),__name(ZdrPausedMessage,"ZdrPausedMessage"),__name(ModelNoticeMessage,"ModelNoticeMessage"),__name(TasteSkipMessage,"TasteSkipMessage"),__name(TasteNoticeMessage,"TasteNoticeMessage"),__name(SkillLoadedMessage,"SkillLoadedMessage"),__name(HookWarningMessage,"HookWarningMessage"),__name(HookLineMessage,"HookLineMessage"),__name(HookLineContinuationMessage,"HookLineContinuationMessage"),__name(HookFrameMessage,"HookFrameMessage"),__name(GoalLineMessage,"GoalLineMessage"),__name(GoalAcceptMessage,"GoalAcceptMessage"),__name(GoalCompleteMessage,"GoalCompleteMessage"),__name(GoalStatusMessage,"GoalStatusMessage"),__name(BranchResultMessage,"BranchResultMessage"),__name(SessionFileMessage,"SessionFileMessage"),__name(InfoMessage,"InfoMessage"),Jt(),hL(),__name(reasoningBodyColumns,"reasoningBodyColumns"),__name(ReasoningMessage,"ReasoningMessage"),Jt(),hL(),Jt(),hL();function HelpMessage(){const{t:e}=xt(),n=getInvokedCommandName(),o=ut(()=>getVisibleSlashCommands(),[]),r=ut(()=>getVisibleCliOptions(),[]),s=ut(()=>getVisibleCliSubcommands(),[]),a=ut(()=>getVisibleKeyboardShortcuts(),[]),i=ut(()=>getVisibleCliExamples(),[]),l=ut(()=>getVisibleHelpLinks(),[]);return ct.createElement(tt,{flexDirection:"column",paddingY:1},ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(tt,null,ct.createElement(nt,{bold:!0},"Command Code"),ct.createElement(nt,{color:XO.GRAY}," v","1.79.1")),ct.createElement(nt,{color:XO.GRAY},getVisibleHelpTagline())),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpUsage","Usage")),ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,null,n," <command> [options]"))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpOptions","Options")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},r.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.replace(/^cmd/,n).padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpCommands","Commands")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},s.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.replace(/^cmd/,n).padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpSlashCommands","Slash Commands")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},o.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpKeyboardShortcuts","Keyboard Shortcuts")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},a.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{bold:!0},e("helpExamples","Examples")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},i.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.replace(/^cmd/,n).padEnd(ri)),ct.createElement(nt,{color:XO.GRAY},e.description))))),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.CYAN},vt.pointer),ct.createElement(nt,{color:XO.GRAY}," ",getVisibleHelpTip().replace(/cmd/,n))),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{bold:!0},e("helpLinks","Links")),ct.createElement(tt,{flexDirection:"column",paddingLeft:2},l.map(e=>ct.createElement(tt,{key:e.key},ct.createElement(nt,null,e.key.padEnd(ri)),ct.createElement(nt,{color:XO.CYAN},e.description))))))}function SystemMessage({content:e}){return isHelpSystemEntryContent(e)?ct.createElement(HelpMessage,null):ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{wrap:"wrap"},ct.createElement(Markdown,null,e)))}function FeedEntryView({entry:e,expandedToolOutput:n}){return renderFeedEntry(e,n)}function renderFeedEntry(e,n){if("user"===e.role){const n=e.metadata?.ideHint,o=e.metadata?.imageTokenPaths;return ct.createElement(UserMessage,{content:e.input,ideHint:n,imageTokenPaths:o})}return"assistant"===e.role&&isReplyBadge(e.metadata?.badge)?ct.createElement(BadgeReplyMessage,{content:e.input,badge:e.metadata.badge,continuation:!0===e.metadata?.continuation}):"assistant"===e.role?ct.createElement(AssistantMessage,{content:e.input,isStreaming:"running"===e.metadata?.status,continuation:!0===e.metadata?.continuation}):"reasoning"===e.role?ct.createElement(ReasoningMessage,{content:e.input,expandedOutput:n,expandKey:"ctrl",isStreaming:"running"===e.metadata?.status}):"tool"===e.role?ct.createElement(ToolMessage,{name:Sf(e.name||""),input:e.input,output:e.output||"",isPending:hf(e),hasError:gf(e),metadata:e.metadata,expandedOutput:n}):"bash"===e.role?ct.createElement(BashMessage,{command:e.command||"",output:e.output||"",isPending:hf(e),hasError:gf(e)}):"system"===e.role?ct.createElement(SystemMessage,{content:e.input}):"info"===e.role?ct.createElement(InfoMessage,{content:e.input,metadata:e.metadata}):"error"===e.role?ct.createElement(ErrorMessage,{content:e.input}):"command-result"===e.role?ct.createElement(CommandResultMessage,{message:e.input,details:e.details,hasError:e.hasError??!1}):"ide-status"===e.role?ct.createElement(IDEStatusMessage,{status:e.status,ide:e.ide,details:e.details}):null}__name(HelpMessage,"HelpMessage"),__name(SystemMessage,"SystemMessage"),__name(FeedEntryView,"FeedEntryView"),__name(renderFeedEntry,"renderFeedEntry");var hB=__name(e=>getModelShortName({modelId:e,findModelById:findModelById}),"getModelShortName");function TranscriptDivider({count:e,width:n}){const{t:o}=xt(),r=o("hiddenMessagesToExpandMore"," {{v0}} hidden messages [{{v1}} to expand more] ",{v0:e,v1:IE?"ctrl+y":"ctrl+e"}),s=Math.max(0,Math.floor((n-r.length)/2)),a="─".repeat(s);return ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:cD},a),ct.createElement(BracketedText,{text:r,color:cD}),ct.createElement(nt,{color:cD},a))}__name(TranscriptDivider,"TranscriptDivider");var fB=ct.memo(({feed:e,showHeader:n=!1,staticKey:o,expandedToolOutput:r=!1,currentModel:s,currentEffort:a=null,currentProvider:i,hiddenCount:l=0})=>{const c=l>0?{role:"transcript-divider",count:l}:null,d=[...n?["header"]:[],...c?[c]:[],...e],u=useTerminalWidth(),m=ut(()=>AN(u),[u]),p=ut(()=>DN(u),[u]),g=ut(()=>getPackageJson(import.meta.url).version||"0.0.0",[]),h=ut(()=>getGitHeaderInfo(),[]),f=__name(e=>isSandboxMode()?t("base","(base: {{v0}})",{v0:e}):t("branch","(branch: {{v0}})",{v0:e}),"branchLabel"),y=ut(()=>{if(isSandboxMode())return t("cloudSandbox","cloud");const e=process.cwd(),n=process.env.HOME??process.env.USERPROFILE??"";return e.replace(n,"~")},[]),v=s?hB(s):"sonnet-4.6",S=Boolean(s&&byokProviderId({model:s}))||isSandboxMode()?"":" · taste-1",w=translateUiCopy(isSandboxMode()?"model":"models"),k=ut(()=>{if(!s)return"";if(!modelSupportsReasoningEffort(s))return"";const e=null===a?getReasoningEffort(s):a;return e?t("withEffort2"," with {{v0}} effort",{v0:e}):""},[a,s,o,t]),C=ut(()=>{const e=s?byokProviderId({model:s}):void 0;return e?` · ${e} (byok)`:i&&i!==qr.COMMAND?` · ${getProviderShortName(i)} (byok)`:""},[s,i,o]);return ct.createElement(ot,{items:d,key:o,style:{width:"100%"}},e=>{if("object"==typeof e&&"transcript-divider"===e.role)return ct.createElement(TranscriptDivider,{key:"transcript-divider",count:e.count,width:u});if("header"===e)return"compact"===p?ct.createElement(tt,{key:"header",marginBottom:1,flexDirection:"row"},ct.createElement(tt,{width:LN,flexShrink:0},ct.createElement(CD,null,RN)),ct.createElement(tt,{flexDirection:"column",marginLeft:2},ct.createElement(tt,null,ct.createElement(nt,{bold:!0},"Command Code"),ct.createElement(nt,{color:cD}," ","v",g)),ct.createElement(nt,{color:cD},w,": ",v,k,S,C),ct.createElement(nt,{color:cD},y,h&&h.isLocal&&h.branch&&` (${h.branch})`))):ct.createElement(tt,{key:"header",marginBottom:1,flexDirection:"column"},ct.createElement(CD,null,m.trimEnd()),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(tt,null,ct.createElement(nt,{color:cD},"# "),ct.createElement(nt,{bold:!0},"Command Code"),ct.createElement(nt,{color:cD}," v",g)),ct.createElement(nt,{color:cD},"# ",w,": ",v,k,S,C),ct.createElement(tt,null,ct.createElement(nt,{color:cD},"# ",y,h&&h.isLocal&&h.branch&&ct.createElement(nt,{color:cD}," ",f(h.branch))))));const n=e,o=renderFeedEntry(n,r);return ct.createElement(tt,{key:n.id,paddingBottom:1,width:"90%"},o)})});Jt(),hL();var yB=dt(__name(function LiveAgentStatusInner2({entry:e}){const{t:n}=xt(),o=Sf(e.name||"Agent"),r=summarizeAgentTaskInput(e.input||""),s=e.metadata?.tokensUsed||0,a=e.metadata?.elapsedSeconds||0,i=e.metadata?.recentTools||[],[l,c]=mt(".");return gt(()=>{const e=setInterval(()=>{c(e=>"..."===e?".":e+".")},500);return()=>clearInterval(e)},[]),ct.createElement(tt,{flexDirection:"column",marginBottom:1,width:"90%"},ct.createElement(tt,null,ct.createElement(nt,{backgroundColor:aD.BG,color:aD.FG,bold:!0},` ${o} `),r&&ct.createElement(nt,null," (",r,")")),ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,null,"⎿"," "),ct.createElement(nt,{color:XO.GRAY},n("running","Running ("),formatTime3(a)," | ",formatTokens(s),")",l)),i.length>0&&ct.createElement(tt,{flexDirection:"column",marginLeft:1},i.map((e,n)=>{const o=Sf(e.name);return ct.createElement(tt,{key:n,columnGap:1},ct.createElement(nt,{color:XO.GRAY},"⎿"),ct.createElement(nt,{color:XO.GRAY}," ",o),e.input&&ct.createElement(nt,{color:XO.GRAY},"(",e.input,")"))})))},"LiveAgentStatusInner")),vB=dt(__name(function LiveAgentStatus2({entry:e}){return"tool"!==e.role?null:ct.createElement(yB,{entry:e})},"LiveAgentStatus"));function projectTasteFeedVisibility(e){return e.showTasteLearningInFeed?[...e.feed]:e.feed.filter(e=>void 0===e.metadata?.tasteNotice)}Jt(),__name(projectTasteFeedVisibility,"projectTasteFeedVisibility"),Jt(),Jt(),hL();var SB=[],wB=SB,kB=!1,CB=null,bB="",TB=new Set,EB=new Set,PB=new Set;function shapeOf(e){return e.map(e=>e.content.replace(/\d+/g,"#")).join("\0")}function emit2(){for(const e of PB)e()}function cancelPeek(){CB&&clearTimeout(CB),CB=null,kB=!1}function armPeek(){CB&&clearTimeout(CB),kB=!0,CB=setTimeout(()=>{CB=null,kB=!1,emit2()},5e3),CB.unref?.()}function projectUserEdits(e){return e.filter(e=>!TB.has(e.content)).map(e=>"completed"!==e.status&&EB.has(e.content)?{...e,status:"completed"}:e)}function setSessionTodos(e){const n=projectUserEdits(e);if(n.length>0&&EB.size>0&&n.every(e=>"completed"===e.status))return void clearSessionTodos();const o=shapeOf(n),r=o!==bB;(r||JSON.stringify(n)!==JSON.stringify(wB))&&(wB=n.length>0?n:SB,bB=o,wB.length>0&&r&&armPeek(),emit2())}function adoptSettled(e){wB=e.length>0?[...e]:SB,bB=shapeOf(wB),cancelPeek(),emit2()}function seedSessionTodos(e){TB.clear(),EB.clear(),adoptSettled(e)}function removeSessionTodoAt(e){const n=wB[e];return n&&TB.add(n.content),adoptSettled(wB.filter((n,o)=>o!==e)),wB}function seedTodosFromFeedEntries(e){for(let n=e.length-1;n>=0;n-=1){const o=e[n];if(!o||"tool"!==o.role||"todo_write"!==o.name)continue;const r="output"in o?o.output:void 0,s="string"==typeof r?Ef(r):null;if(s){if(s.every(e=>"completed"===e.status))break;return seedSessionTodos(s),wB}}return clearSessionTodos(),SB}function clearSessionTodos(){(wB!==SB||kB||0!==TB.size||0!==EB.size)&&(wB=SB,bB="",TB.clear(),EB.clear(),cancelPeek(),emit2())}function getSessionTodos(){return wB}function isTodoPanelCollapsed(){return!kB}function completeSessionTodoAt(e){const n=wB[e];return n&&EB.add(n.content),adoptSettled(wB.map((n,o)=>o===e?{...n,status:"completed"}:n)),wB}function completeAllSessionTodos(){const e=wB.map(e=>e.content);for(const n of e)EB.add(n);return adoptSettled(SB),e}function subscribe(e){return PB.add(e),()=>PB.delete(e)}function useSessionTodos(){return ft(subscribe,getSessionTodos)}function useTodoPanelCollapsed(){return ft(subscribe,isTodoPanelCollapsed)}function usePausedLabel(e){const[n,o]=mt(!e);return gt(()=>{if(e)return void o(!1);const n=setTimeout(()=>o(!0),1500);return n.unref?.(),()=>clearTimeout(n)},[e]),n}function projectVisibleTodos(e){if(e.length<=8)return{foldedDone:0,visible:e,hiddenTail:0};const n=e.filter(e=>"completed"!==e.status),o=e.length-n.length,r=8-(o>0?1:0),s=n.slice(0,Math.max(1,r));return{foldedDone:o,visible:s,hiddenTail:n.length-s.length}}function currentTaskLabel(e){const n=e.find(e=>"in_progress"===e.status);if(n)return n.activeForm?`${n.activeForm}…`:n.content;const o=e.find(e=>"pending"===e.status);return o?o.content:null}function TodoPanel({active:e=!0}){const{t:n}=xt(),o=useSessionTodos(),r=useTodoPanelCollapsed(),s=usePausedLabel(e);if(0===o.length)return null;const a=o.filter(e=>"completed"===e.status).length,i=a>0?n("itemsDone","{{v0}} items · {{v1}} done",{v0:o.length,v1:a}):n("items","{{v0}} items",{v0:o.length}),l=r?currentTaskLabel(o):null;return ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},n("todos2","{{v0}}TODOS{{v1}}",{v0:zD,v1:zD}))),ct.createElement(tt,{flexShrink:0},ct.createElement(nt,null," ",ct.createElement(BracketWrap,null,i))),l&&ct.createElement(tt,{flexShrink:1,minWidth:0},ct.createElement(nt,{color:s?XO.DIM:iD.IN_PROGRESS,bold:!s,wrap:"truncate-end"},` ${l}${s?" (paused)":""}`)),ct.createElement(tt,{flexShrink:0},ct.createElement(nt,null," ",ct.createElement(BracketWrap,{color:XO.DIM},r?n("ctrlXToExpand","ctrl+x to expand"):n("ctrlXToManage","ctrl+x to manage"))))),!r&&ct.createElement(CappedChecklist,{todos:o}))}function CappedChecklist({todos:e}){const{t:n}=xt(),{foldedDone:o,visible:r,hiddenTail:s}=projectVisibleTodos(e);return ct.createElement(tt,{flexDirection:"column"},o>0&&ct.createElement(tt,{flexDirection:"row"},ct.createElement(tt,{width:2},ct.createElement(nt,{color:iD.SUCCESS},vt.checkboxOn)),ct.createElement(nt,{color:iD.SUCCESS,strikethrough:!0},o," ",n("completed","completed"))),ct.createElement(TodoChecklist,{todos:r}),s>0&&ct.createElement(nt,{color:XO.DIM},n("more6"," … +{{v0}} more",{v0:s})))}__name(shapeOf,"shapeOf"),__name(emit2,"emit"),__name(cancelPeek,"cancelPeek"),__name(armPeek,"armPeek"),__name(projectUserEdits,"projectUserEdits"),__name(setSessionTodos,"setSessionTodos"),__name(adoptSettled,"adoptSettled"),__name(seedSessionTodos,"seedSessionTodos"),__name(removeSessionTodoAt,"removeSessionTodoAt"),__name(seedTodosFromFeedEntries,"seedTodosFromFeedEntries"),__name(clearSessionTodos,"clearSessionTodos"),__name(getSessionTodos,"getSessionTodos"),__name(isTodoPanelCollapsed,"isTodoPanelCollapsed"),__name(completeSessionTodoAt,"completeSessionTodoAt"),__name(completeAllSessionTodos,"completeAllSessionTodos"),__name(subscribe,"subscribe"),__name(useSessionTodos,"useSessionTodos"),__name(useTodoPanelCollapsed,"useTodoPanelCollapsed"),__name(usePausedLabel,"usePausedLabel"),__name(projectVisibleTodos,"projectVisibleTodos"),__name(currentTaskLabel,"currentTaskLabel"),__name(TodoPanel,"TodoPanel"),__name(CappedChecklist,"CappedChecklist"),Jt(),Jt(),Jt();var MB=[],IB=new Set;function publish2(e){MB=e;for(const e of IB)e()}function stepKey(e){return e.split(" · ")[0]??e}function showConnectStep(e){const n=MB.at(-1);!n||n.done||stepKey(n.label)!==stepKey(e)?publish2([...MB.map(e=>e.done?e:{...e,done:!0,label:stepKey(e.label)}),{label:e,done:!1,since:Date.now()}]):publish2([...MB.slice(0,-1),{...n,label:e}])}function clearConnectSteps(){publish2([])}function getConnectSteps(){return MB}function useConnectSteps(){return ft(e=>(IB.add(e),()=>IB.delete(e)),getConnectSteps)}__name(publish2,"publish"),__name(stepKey,"stepKey"),__name(showConnectStep,"showConnectStep"),__name(clearConnectSteps,"clearConnectSteps"),__name(getConnectSteps,"getConnectSteps"),__name(useConnectSteps,"useConnectSteps");var AB=[["Checking out","Checked out"],["Creating","Created"],["Restarting","Restarted"],["Starting","Started"],["Connecting","Connected"],["Cloning","Cloned"],["Updating","Updated"],["Preparing","Prepared"],["Loading","Loaded"],["Using","Used"]];function doneLabel(e){for(const[n,o]of AB)if(e.startsWith(`${n} `))return`${o}${e.slice(n.length)}`;return e}__name(doneLabel,"doneLabel"),Jt(),Jt(),hL();var xB=["·","○","◇","☆","✧","☆","◇","○","⌘"],RB=[12,5,4,4,4,4,4,5,16],LB=[5,4,4,4,4,4,5];function getWaveSymbol(e){const n=e%88;let o=0;for(let e=0;e<RB.length;e++)if(o+=RB[e],n<o)return xB[e];const r=n-58;o=0;for(let e=0;e<LB.length;e++)if(o+=LB[e],r<o)return xB[7-e];return xB[0]}function ShimmerText({text:e,offset:n,bg:o}){const r=ut(()=>e.split(""),[e]),s=__name(e=>{const o=e-(n-5);return o>=0&&o<yD.length?yD[o]:vD},"getCharColor");return ct.createElement(nt,null,r.map((e,n)=>ct.createElement(nt,{key:`${n}:${e}`,color:s(n),backgroundColor:o},e)))}function CMDIcon({frame:e,color:n}){return ct.createElement(nt,{color:n??ZO,bold:!0},`${getWaveSymbol(e)} `)}__name(getWaveSymbol,"getWaveSymbol"),__name(ShimmerText,"ShimmerText"),__name(CMDIcon,"CMDIcon");var OB=formatStatusTokenCount,DB=formatElapsedMs,NB=__name(({status:e,timeElapsed:n,tokens:o})=>{const{t:r}=xt(),[s,a]=mt(0),[i,l]=mt(o),c=pt(o);c.current=o;const d=getTerminalWidth(),[u,m]=mt(()=>d>=72?"all":d>=42?"medium":"none");gt(()=>{m(e=>"all"===e?d<68?d>=42?"medium":"none":"all":"medium"===e?d>=72?"all":d<38?"none":"medium":d>=72?"all":d>=42?"medium":"none")},[d]),gt(()=>{const e=setInterval(()=>{a(e=>(e+1)%88),l(e=>{const n=c.current;if(e===n)return e;const o=n-e,r=e+Math.sign(o)*Math.max(1,Math.ceil(Math.abs(o)/10));return o>0?Math.min(r,n):Math.max(r,n)})},80);return()=>clearInterval(e)},[]);const p=s%(e.length+10),g="all"===u,h="medium"===u;return rN.statusRender({width:d,layoutMode:u,status:e,frame:s}),ct.createElement(tt,{width:d,height:1,paddingLeft:0,marginLeft:0},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:sD.BG,color:sD.FG}," "),ct.createElement(nt,{backgroundColor:sD.BG},ct.createElement(CMDIcon,{frame:4*s,color:sD.FG})),ct.createElement(ShimmerText,{text:e,offset:p,bg:sD.BG}),ct.createElement(nt,{backgroundColor:sD.BG,color:sD.FG}," ")),g&&ct.createElement(tt,{columnGap:1,marginLeft:1},ct.createElement(nt,{bold:!0,color:XO.GRAY},"esc"),ct.createElement(nt,{color:XO.DIM},r("toInterrupt","to interrupt")),ct.createElement(nt,{color:XO.DIM},"•"),ct.createElement(nt,{color:XO.DIM},DB(n)),ct.createElement(nt,{color:XO.DIM},"•"),ct.createElement(nt,{color:XO.GRAY},vt.arrowDown),ct.createElement(nt,{color:XO.DIM},OB(Math.round(i)))),h&&ct.createElement(tt,{marginLeft:1},ct.createElement(nt,{color:XO.DIM},OB(Math.round(i)))))},"Status");function ShimmerLine({text:e,indent:n=1,icon:o=!1}){const[r,s]=mt(0);return gt(()=>{const e=setInterval(()=>s(e=>e+1),80);return()=>clearInterval(e)},[]),ct.createElement(tt,{marginLeft:n},o&&ct.createElement(CMDIcon,{frame:4*r}),ct.createElement(ShimmerText,{text:e,offset:r%(e.length+10)}))}function activeText(e){return e.includes(" · ")?e:`${e}…`}function ConnectSteps(){const{t:e}=xt(),n=useConnectSteps(),[o,r]=mt(()=>Date.now());gt(()=>{const e=setInterval(()=>r(Date.now()),1e3);return()=>clearInterval(e)},[]);const s=n.at(-1);if(!s||s.done)return ct.createElement(ShimmerLine,{text:e("connectingToTheSandbox","Connecting to the cloud…"),icon:!0});const a=s.label.startsWith("Cloning ")&&o-s.since>15e3;return ct.createElement(tt,{flexDirection:"column"},n.filter(e=>e.done).map((e,n)=>ct.createElement(tt,{key:`${n}:${e.label}`,marginLeft:1},ct.createElement(nt,{color:XO.GREEN},"✓ "),ct.createElement(nt,{color:XO.DIM},doneLabel(e.label)))),ct.createElement(ShimmerLine,{text:activeText(s.label),icon:!0}),a&&ct.createElement(tt,{marginLeft:3},ct.createElement(nt,{color:XO.DIM},e("largeRepoCloneHint","Large repo: it is cloned once per session, and reopening is fast."))))}function isToggleShortcut(e,n){return""===e||!0===n.ctrl&&"b"===e}__name(ShimmerLine,"ShimmerLine"),__name(activeText,"activeText"),__name(ConnectSteps,"ConnectSteps"),Jt(),hL(),Jt(),hL(),__name(isToggleShortcut,"isToggleShortcut");var FB=new Set;function requestBackgroundTasksExpand(){for(const e of FB)e()}function formatShellTaskCounts(e){const n=e.filter(e=>"running"===e.status),o=n.filter(e=>"shell"===e.kind).length,r=n.filter(e=>"monitor"===e.kind).length,s=[];return o>0&&s.push(t("shell2","{{v0}} shell{{v1}}",{v0:o,v1:1===o?"":"s"})),r>0&&s.push(t("monitor","{{v0}} monitor{{v1}}",{v0:r,v1:1===r?"":"s"})),s.join(", ")}function formatPanelSubtitle(e){const n=e.filter(e=>"running"===e.status);if(0===n.length)return t("noneRunning","none running");const o=n.filter(e=>"shell"===e.kind).length,r=n.filter(e=>"monitor"===e.kind).length;return o>0&&0===r?t("activeShell","{{v0}} active shell{{v1}}",{v0:o,v1:1===o?"":"s"}):r>0&&0===o?t("activeMonitor","{{v0}} active monitor{{v1}}",{v0:r,v1:1===r?"":"s"}):formatShellTaskCounts(e)}function formatTaskRuntime(e){const n=Date.parse(e.startedAt);if(Number.isNaN(n))return;const o=e.stoppedAt?Date.parse(e.stoppedAt):Date.now();if(Number.isNaN(o))return;const r=Math.max(0,Math.floor((o-n)/1e3)),s=Math.floor(r/3600),a=Math.floor(r%3600/60),i=r%60;return s>0?`${s}h ${a}m ${i}s`:a>0?`${a}m ${i}s`:`${i}s`}function useShellTaskSnapshot(){const[e,n]=mt(()=>listShellTasks({includeStopped:!0}));return gt(()=>{const e=setInterval(__name(()=>n(listShellTasks({includeStopped:!0})),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(requestBackgroundTasksExpand,"requestBackgroundTasksExpand"),__name(formatShellTaskCounts,"formatShellTaskCounts"),__name(formatPanelSubtitle,"formatPanelSubtitle"),__name(formatTaskRuntime,"formatTaskRuntime"),__name(useShellTaskSnapshot,"useShellTaskSnapshot");var _B=getShellTaskLabel,$B=getShellTaskStatusText,UB=getVisibleShellTasks,BB=latestShellTaskOutputLines,jB={running:XO.CYAN,completed:XO.GREEN,failed:XO.RED,"auto-stopped":XO.YELLOW,stopped:XO.GRAY};function getStatusColor(e){return jB[getShellTaskStatusTone(e)]}function TaskRow({task:e,selected:n}){const o=truncateString2({text:_B(e),maxChars:56}),r=n?kD:void 0;return ct.createElement(tt,null,ct.createElement(s$,{isSelected:n,backgroundColor:r}),ct.createElement(nt,{color:n?ZN:void 0,backgroundColor:r}," ",o),ct.createElement(nt,{color:XO.DIM,backgroundColor:r}," ","(",$B(e),")"))}function TaskGroup({title:e,tasks:n,selectedTaskId:o}){return 0===n.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM,bold:!0},e," (",n.length,")"),n.map(e=>ct.createElement(TaskRow,{key:e.id,task:e,selected:e.id===o})))}function TaskDetailsBody({task:e,output:n}){const{t:o}=xt(),r=BB(n,10),s=formatTaskRuntime(e);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{bold:!0},o("status","Status:")," "),ct.createElement(nt,{color:getStatusColor(e)},$B(e))),void 0!==s&&ct.createElement(tt,null,ct.createElement(nt,{bold:!0},o("runtime","Runtime:")," "),ct.createElement(nt,null,s)),ct.createElement(tt,null,ct.createElement(nt,{bold:!0},o("script","Script:")," "),ct.createElement(nt,{wrap:"wrap"},e.command)),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{bold:!0},o("output","Output:")),ct.createElement(tt,{flexDirection:"column",borderStyle:"single",borderColor:XO.DIM,paddingX:1},r.length>0?r.map((n,o)=>ct.createElement(nt,{key:`${e.id}-${o}`},truncateString2({text:n,maxChars:100}))):ct.createElement(nt,{color:XO.DIM},o("noOutputYet","No output yet."))),ct.createElement(nt,{italic:!0,color:XO.DIM},o("showing","Showing")," ",r.length," ",translateUiCopy(1===r.length?"line":"lines"))))}function BackgroundTasksPanel({onExpandedChange:e}={}){const{t:n}=xt(),o=useShellTaskSnapshot(),r=o.filter(e=>"running"===e.status),[s,a]=mt(!1),[i,l]=mt("list"),[c,d]=mt(0),[u,m]=mt(""),p=ut(()=>UB(o),[o]),g=p[c]??p[0];gt(()=>{e?.(s)},[s,e]),gt(()=>{const e=__name(()=>{l("list"),a(!0)},"listener");return FB.add(e),()=>{FB.delete(e)}},[]),gt(()=>{if(0===p.length)return a(!1),l("list"),void d(0);d(e=>Math.min(e,Math.max(0,p.length-1)))},[p.length]),gt(()=>{if(!s||"details"!==i||!g)return void m("");const e=readShellTaskOutputTail({taskId:g.id,maxBytes:4096});m(e?.content??"")},[s,i,g?.id,o]);const h=__name(()=>{a(!1),l("list")},"closePanel");if(at((e,n)=>isToggleShortcut(e,n)&&(r.length>0||s)?(l("list"),void a(e=>!e)):s?"details"===i?n.leftArrow?void l("list"):n.escape||n.return||" "===e?void h():void("x"===e&&"running"===g?.status&&stopShellTaskById(g.id)):void(n.escape||n.leftArrow?h():0!==p.length&&(n.upArrow?d(e=>Math.max(0,e-1)):n.downArrow?d(e=>Math.min(p.length-1,e+1)):n.return&&g?l("details"):"x"===e&&"running"===g?.status&&stopShellTaskById(g.id))):void 0,{isActive:r.length>0||s}),!s)return null;if("details"===i&&g)return ct.createElement(oF,{title:"monitor"===g.kind?n("monitorDetails","Monitor details"):n("shellDetails","Shell details"),titleColor:XO.CYAN,ruleColor:XO.CYAN,subtitle:truncateString2({text:_B(g),maxChars:80}),hint:n("toGoBackEscEnterSpaceToCloseXToStop","← to go back · Esc/Enter/Space to close · x to stop"),boxProps:{marginTop:1,marginBottom:1}},ct.createElement(TaskDetailsBody,{task:g,output:u}));const f=p.filter(e=>"monitor"===e.kind),y=p.filter(e=>"shell"===e.kind),v=f.length>0&&y.length>0;return ct.createElement(oF,{title:n("background","Background"),titleColor:XO.CYAN,ruleColor:XO.CYAN,subtitle:formatPanelSubtitle(o),hint:n("toSelectEnterToViewXToStopEscToGoBackToFeed","↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed"),gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},v?ct.createElement(ct.Fragment,null,ct.createElement(TaskGroup,{title:n("monitors","Monitors"),tasks:f,selectedTaskId:g?.id}),ct.createElement(TaskGroup,{title:n("shells","Shells"),tasks:y,selectedTaskId:g?.id})):ct.createElement(tt,{flexDirection:"column",marginTop:1},p.map(e=>ct.createElement(TaskRow,{key:e.id,task:e,selected:e.id===g?.id}))))}function useExternalEditor({input:e,setInput:n,setInputKey:o,detectedContent:r,setDetectedContent:s,onEditorClose:a}){const[i,l]=mt(!1),[c,d]=mt(null),u=ht(async()=>{if(!i){l(!0),d(null);try{const i=resolvePastedTextTokens({input:e.replace(/\n+$/,""),detectedContent:r}),l=await openInEditor(i);n(l),s([]),o(e=>e+1),a?.()}catch(e){if(e instanceof jy)return void d("No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/docs/core-concepts/interactive-mode#setting-up-your-editor");d(t("editorError","Editor error: {{v0}}",{v0:e instanceof Error?e.message:String(e)}))}finally{l(!1)}}},[e,n,o,r,s,a,i]),m=ht(()=>{d(null)},[]);return{isEditorOpen:i,editorError:c,handleOpenInEditor:u,clearEditorError:m}}__name(getStatusColor,"getStatusColor"),__name(TaskRow,"TaskRow"),__name(TaskGroup,"TaskGroup"),__name(TaskDetailsBody,"TaskDetailsBody"),__name(BackgroundTasksPanel,"BackgroundTasksPanel"),Jt(),hL(),__name(useExternalEditor,"useExternalEditor"),Jt(),hL();var WB=__name((e={})=>{const{enabled:n=!0,paused:o=!1}=e,[r,s]=mt(null),[a,i]=mt(!1),[l,c]=mt({visible:!1,type:"connected"}),d=pt(null);null===d.current&&(d.current=vE({onConnectedChange:i,onContext:s,onIndicatorChange:c}));const u=d.current;gt(()=>{u.setPaused(o)},[u,o]),gt(()=>{if(n)return u.start(),()=>{u.stop()}},[n,u]);const m=ZT(),p=m?bE[m]??"IDE":"IDE",g={visible:l.visible,message:"connected"===l.type?`${p} ${vt.tick}`:t("runIde","run /ide"),type:l.type};return{context:r,connected:a,refresh:u.refresh,connectionIndicator:g}},"useVSCodeContext");Jt(),hL();var HB=__name((e={})=>{const{enabled:n=!0}=e,[o,r]=mt(null),s=pt(!1);return gt(()=>{if(!n||s.current)return;let e=!0;return s.current=!0,detectPR().then(n=>{e&&r(n)}),()=>{e=!1}},[n]),{pr:o}},"usePRDetection");function pushEntry(e,n){e.push(n),e.length>50&&e.shift()}function commitBurst({stack:e,burstStart:n,inBurst:o,timer:r}){r.current&&(clearTimeout(r.current),r.current=null),o.current=!1,pushEntry(e,n)}function useUndoStack({input:e,setInput:n,initialCursorRef:o,incrementInputKey:r}){const s=pt([]),a=pt(""),i=pt(!1),l=pt(null),c=pt(!1),d=pt("");return gt(()=>{if(c.current)return c.current=!1,void(d.current=e);if(e===d.current)return;const n=d.current;return d.current=e,i.current||(a.current=n,i.current=!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{i.current=!1,l.current=null,pushEntry(s.current,a.current)},400),()=>{l.current&&(clearTimeout(l.current),l.current=null)}},[e]),{commitUndo:__name(()=>{i.current&&commitBurst({stack:s.current,burstStart:a.current,inBurst:i,timer:l});const e=s.current.pop();void 0!==e&&(c.current=!0,n(e),o.current=e.length,r())},"commitUndo")}}function getCommandHintLayout(e){const n=getCommandMenuDescriptionWidth(e.terminalWidth);return{descriptionWidth:n,text:truncateString2({text:e.text,maxChars:n})}}function getModelHintText(e){return formatCurrentModelHint({modelId:e,findModelById:findModelById})}Jt(),__name(pushEntry,"pushEntry"),__name(commitBurst,"commitBurst"),__name(useUndoStack,"useUndoStack"),Jt(),hL(),__name(getCommandHintLayout,"getCommandHintLayout"),__name(getModelHintText,"getModelHintText"),Jt(),hL();var GB=createNodeRuntime(),VB=__name(({onSelectFile:e,onClose:n,searchQuery:o=""})=>{const{t:r}=xt(),[s,i]=mt(()=>process.cwd()),[l,c]=mt([]),[d,u]=mt(0),[m,p]=mt(0),g=o.trim()?15:10;gt(()=>{invalidateFileIndex()},[]),gt(()=>{let e=!1;return __name(async()=>{if(o.trim()){const n=await searchFiles({runtime:GB,searchTerm:o,basePath:process.cwd()});if(e)return;return c(n),u(0),void p(0)}try{const n=await browseDirectory({runtime:GB,dirPath:s,basePath:process.cwd()});if(e)return;c(n),u(0),p(0)}catch{}},"run")(),()=>{e=!0}},[s,o]),at((r,s)=>{if(s.escape)n();else if(s.upArrow)u(e=>{const n=Math.max(0,e-1);return n<m&&p(n),n});else if(s.downArrow)u(e=>{const n=Math.min(l.length-1,e+1);return n>=m+g&&p(n-g+1),n});else{if(s.rightArrow){const e=l[d];if(!e)return;return void(e.isDirectory&&!o.trim()&&i(a(e.path)))}if(s.return){const n=l[d];if(!n)return;return void e(n.path)}}});const h=l.slice(m,m+g);return ct.createElement(tt,{flexDirection:"column",paddingLeft:1},ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},o.trim()?r("searchingFor",'Searching for: "{{v0}}"',{v0:o}):r("files","Files: {{v0}}",{v0:s}))),0===h.length?ct.createElement(WF,{message:o.trim()?r("noFilesFoundMatching",'No files found matching "{{v0}}"',{v0:o}):r("noFilesFoundInThisDirectory","No files found in this directory")}):h.map((e,n)=>{const o=m+n,r=e.name,s=o===d;return ct.createElement(nt,{key:e.path,color:s?ZN:XO.DIM,bold:s&&isLightTheme()},e.isDirectory?`${r}/`:r)}),ct.createElement(YN,{hints:[r("navigate","↑↓ navigate"),!o.trim()&&r("toOpenFolder","→ to open folder"),r("enterToSelect","Enter to select"),r("escToClose","Esc to close")]}))},"FileList");Jt(),hL();var KB=__name(()=>{const{t:e}=xt();return ct.createElement(tt,{paddingRight:3},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},vt.pointerSmall," ",e("stashed","stashed")))},"StashBadge"),zB=__name(({hint:e})=>ct.createElement(tt,{paddingRight:1},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},e)),"PasteKeyHint"),qB=__name(({tasteLearningOn:e,byokSession:n,showSeparator:o=!0})=>{const{t:r}=xt();if(null==e)return null;const s=e&&n,a=s?r("tasteOffByok","taste off (byok)"):e?r("tasteOn","taste on"):r("tasteOff","taste off");return ct.createElement(ct.Fragment,null,o&&ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:e&&!s?eD.TEXT:XO.DIM},a))},"TasteStateBadge"),YB=__name(({phaseModel:e})=>ct.createElement(nt,{color:ZO,wrap:"truncate"},phaseModelLabel(e)),"PhaseModelBadge");function phaseModelLabel(e){return`${e.lane}: ${e.modelName}`}function pasteKeyHintMinWidth(e){return e?93+phaseModelLabel(e).length+3:90}__name(phaseModelLabel,"phaseModelLabel"),__name(pasteKeyHintMinWidth,"pasteKeyHintMinWidth");var JB=__name(({hasStashedPrompt:e,cornerHint:n,phaseModel:o})=>{const{t:r}=xt();if(!o)return e?ct.createElement(KB,null):n?ct.createElement(zB,{hint:n}):null;const s=e?`${vt.pointerSmall} ${r("stashed","stashed")}`:n;return ct.createElement(tt,{flexDirection:"row",paddingRight:3},s&&ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},s," · "),ct.createElement(YB,{phaseModel:o}))},"CornerStatus");function useBackgroundTasksSummary(){const[e,n]=mt(()=>formatShellTaskCounts(listShellTasks({includeStopped:!1})));return gt(()=>{const e=setInterval(__name(()=>n(formatShellTaskCounts(listShellTasks({includeStopped:!1}))),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(useBackgroundTasksSummary,"useBackgroundTasksSummary");var QB=__name(({showSeparator:e=!0,armed:n=!1})=>{const{t:o}=xt(),r=useBackgroundTasksSummary();return r?ct.createElement(ct.Fragment,null,e&&ct.createElement(nt,{color:XO.DIM}," · "),n?ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.CYAN,inverse:!0},` ${r} `),ct.createElement(nt,{color:XO.DIM}," ","· ",o("enterToOpen","Enter to open"))):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.CYAN},r),ct.createElement(nt,{color:XO.DIM}," ","· ",o("arrowDownToManage","↓ to manage")))):null},"BackgroundTasksBadge"),XB=__name(({indicator:e,showSeparator:n=!0})=>e?.visible?ct.createElement(ct.Fragment,null,n&&ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:"connected"===e.type?XO.GREEN:XO.YELLOW},e.message)):null,"ConnectionIndicatorBadge"),ZB=__name(({termWidth:e,indicatorText:n,isIDEIndicator:o,permissionMode:r="default",prInfo:s,contextUsage:a,connectionIndicator:i,pendingExitKey:l,updateStatus:c,updateFailedInfo:d,currentProvider:u,showProviderInfo:m,isBashMode:p,shareInfo:g,showShareNotification:h,unshareNotificationMessage:f,tasteNotificationMessage:y,creditWarning:v,hasStashedPrompt:S,tasteLearningOn:w,byokSession:k,backgroundTasksArmed:C,pasteKeyHint:b,phaseModel:T})=>{const{t:E}=xt(),P=e>=60,M=b&&e>=pasteKeyHintMinWidth(T)?b:null;return ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column",paddingLeft:2},"auto-accept"!==r&&"plan"!==r&&"bypass"!==r&&"dont-ask"!==r||l?ct.createElement(tt,{flexDirection:"row",flexWrap:"wrap",columnGap:2,width:e-1},ct.createElement(tt,{flexDirection:"row",columnGap:0},o&&!l?ct.createElement(nt,{color:lD},n):ct.createElement(FD,{mode:r,pendingExitKey:l}),!l&&ct.createElement($D,{prInfo:s}),!l&&ct.createElement(XB,{indicator:i}),!l&&P&&ct.createElement(qB,{tasteLearningOn:w,byokSession:k}),!l&&ct.createElement(QB,{armed:C})),(P||S||M||T)&&ct.createElement(tt,{flexDirection:"column",alignItems:"flex-end",flexGrow:1},ct.createElement(JB,{hasStashedPrompt:S,cornerHint:M,phaseModel:T}),(!S||T)&&P&&a&&ct.createElement(PD,{usage:a}))):ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"row",flexWrap:"wrap",columnGap:2,width:e-1},ct.createElement(FD,{mode:r}),ct.createElement(tt,{flexGrow:1,justifyContent:"flex-end"},ct.createElement(JB,{hasStashedPrompt:S,cornerHint:M,phaseModel:T}))),ct.createElement(tt,{flexDirection:"row",justifyContent:"space-between",width:e-1},ct.createElement(tt,{flexDirection:"row",columnGap:0},ct.createElement(nt,{color:o?lD:XO.DIM},n),ct.createElement($D,{prInfo:s}),ct.createElement(XB,{indicator:i}),P&&ct.createElement(qB,{tasteLearningOn:w,byokSession:k}),ct.createElement(QB,{armed:C})),ct.createElement(tt,{flexDirection:"row",columnGap:2},P&&a&&ct.createElement(PD,{usage:a})))),(c||d||m&&u)&&ct.createElement(tt,{flexDirection:"row",columnGap:1},c&&ct.createElement(nt,null,vt.tick," ","Command Code"," ",E("updatedColon","updated:")," ",ct.createElement(nt,{color:XO.DIM},"v",c.updatedFrom),ct.createElement(nt,{color:XO.DIM}," ",vt.arrowRight," "),ct.createElement(nt,null,"v",c.updatedTo)),!c&&d&&ct.createElement(nt,{color:XO.YELLOW,dimColor:!0},vt.info," ",E("updateAvailableColon","Update available:")," ",d.currentVersion," ",vt.arrowRight," ",d.latestVersion),m&&u&&ct.createElement(nt,{color:XO.GREEN,dimColor:!0},vt.bullet," ",E("providerColon","Provider:")," ",getProviderDisplayName(u)))),p&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:XO.GREEN},E("bashModeHint","! for bash mode"))),h&&g&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:ZO},E("sharedColon","SHARED:")," ",g.url," ",E("copiedToClipboardParen","(copied to clipboard)"))),f&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:f.includes("NOT SHARED")||f.startsWith("未分享:")?XO.RED:ZO},f)),y&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:ZO},y)),v&&ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{color:XO.YELLOW},vt.warning," ",v)))},"BottomIndicator");Jt();var ej=[["rc","token"],["rc","user"]];function carriesSecretArgument(e){const[n,o,...r]=e.trim().replace(/^\//,"").split(/\s+/).filter(Boolean);return void 0!==n&&void 0!==o&&0!==r.length&&ej.some(([e,r])=>e===n.toLowerCase()&&r===o.toLowerCase())}function useClipboardPasteKey(e){const{latestInputRef:n,cursorPositionRef:o,detectedImagesRef:r,setDetectedImages:s,setInput:a,incrementInputKey:i,setInitialCursor:l,handlePaste:c,onTextPasted:d,showClipboardNotice:u,clearClipboardNotice:m,armPasteKeyHint:p}=e,g=ht(e=>{const c=nextImagePasteNumber(r.current),{text:d,cursor:u}=insertTextAt(n.current,o.current,imagePasteToken(c)),m=[...r.current,{imageNumber:c,image:e}];r.current=m,s(m),a(d),n.current=d,o.current=u,l(u),i()},[o,r,i,n,s,l,a]),h=ht(async e=>{const r=stripEmbeddedPasteEndMarker(e),s=n.current,a=o.current,i=s.slice(0,a),l=s.slice(a);await c(`${i}[200~${r}[201~${l}`)&&d()},[o,c,n,d]);return ht(async()=>{const e=p(),n=setTimeout(()=>{u(t("readingClipboard","Reading clipboard…"),{sticky:!0})},150);try{const o=await probeClipboardImage();if(o.image)return g(o.image),clearTimeout(n),void m();const r=o.text??await detectClipboardText();if(clearTimeout(n),r)return m(),void await h(r);u(describeClipboardImageMiss({environment:o.environment,attempted:o.attempted})),e()}catch{clearTimeout(n),m()}},[p,m,g,h,u])}__name(carriesSecretArgument,"carriesSecretArgument"),Jt(),hL(),__name(useClipboardPasteKey,"useClipboardPasteKey");var tj=["","","[118;5u"];function removeAltPCharacter(e){return e.includes("π")?e.replace(/π/g,""):null}function buildFileMentionInput(e){const{currentInput:n,mentionPath:o,isSearchMode:r}=e;if(!r)return`${n}${o} `;const s=n.lastIndexOf("@");return-1===s?`${o} `:`${n.substring(0,s+1)}${o} `}__name(removeAltPCharacter,"removeAltPCharacter"),__name(buildFileMentionInput,"buildFileMentionInput");var nj=__name(({pasteKeyAdvice:e})=>{const{t:n}=xt();return ct.createElement(tt,{flexDirection:"column",paddingLeft:1},ct.createElement(nt,{color:XO.DIM,bold:!0},n("availableShortcuts","Available Shortcuts:")),ct.createElement(tt,{columnGap:4},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n("bashModeHint","! for bash mode")),ct.createElement(nt,{color:XO.DIM},n("forCommands","/ for commands")),ct.createElement(nt,{color:XO.DIM},n("forFilePaths","@ for file paths")),ct.createElement(nt,{color:XO.DIM},getModeToggleShortcutHint()," ",n("toToggleAcceptEdits","to toggle accept edits"))),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n("doubleTapEscToClearInput","double tap esc to clear input")),ct.createElement(nt,{color:XO.DIM},getNewlineShortcutHint()," ",n("forNewline","for newline")),ct.createElement(nt,{color:XO.DIM},n("ctrlGToOpenInEditor","ctrl + g to open in editor")),ct.createElement(nt,{color:XO.DIM},n("ctrlZToUndo","ctrl + z to undo")),ct.createElement(nt,{color:XO.DIM},n("ctrlSToStashPrompt","ctrl + s to stash prompt")),ct.createElement(nt,{color:XO.DIM},spacedKey(e.key)," ",n("toPasteImage","to paste image")),e.textOnlyKey&&ct.createElement(nt,{color:XO.DIM},spacedKey(e.textOnlyKey)," ",n("pastesTextOnlyIn","pastes text only in")," ",e.terminal))))},"ShortcutMenu");function spacedKey(e){return e.split("+").join(" + ")}function currentPasteKeyAdvice(){return pasteImageKeyAdvice({terminal:detectTerminal({env:process.env}),environment:currentClipboardEnvironment()})}__name(spacedKey,"spacedKey"),__name(currentPasteKeyAdvice,"currentPasteKeyAdvice");var oj=__name(({input:e,onSubmit:n,setInput:o,showCursor:r=!0,placeholder:s=t("enterYourInput","Enter your input…"),showFileList:a,setShowFileList:l,fileSearchQuery:c,setFileSearchQuery:d,onCommand:u,contextUsage:m,tasteLearningOn:p,phaseModel:g,tasteUsage:h=!1,shareInfo:f,showShareNotification:y,unshareNotificationMessage:v,tasteNotificationMessage:S,creditWarning:w,updateStatus:k,updateFailedInfo:C,currentProvider:b,currentModel:T,showProviderInfo:E,permissionMode:P="default",onToggleAutoAccept:M,hintMessage:I,historyManager:A,pendingExitKey:x=null,onOverlayVisibilityChange:R,onDoubleEscapeEmpty:L,onAltP:O,isProcessing:D=!1,ideContextEnabled:N=!0,footer:F})=>{const{t:_}=xt(),[$,U]=mt(0),[B,j]=mt(!1),[W,H]=mt(!1),[G,V]=mt(!1),[K,z]=mt(""),[q,Y]=mt(null),J=pt(0),Q=pt(0),[X,Z]=mt([]),[ee,te]=mt([]),[ne,oe]=mt(null),[re,se]=mt(null),ae=pt(null),ie=ht(()=>{ae.current&&(clearTimeout(ae.current),ae.current=null),se(null)},[]),le=ht((e,n)=>{ae.current&&(clearTimeout(ae.current),ae.current=null),se(e),n?.sticky||(ae.current=setTimeout(()=>{ae.current=null,se(null)},5e3))},[]);gt(()=>()=>{ae.current&&clearTimeout(ae.current)},[]);const ce=ut(currentPasteKeyAdvice,[]),de=ut(()=>formatPasteImageKeyHint(ce),[ce,_]),[ue,me]=mt(()=>de?Date.now():null);gt(()=>{if(null===ue)return;const e=setTimeout(()=>{me(null)},1e4);return()=>clearTimeout(e)},[ue]);const pe=pt(0),ge=ht(()=>{pe.current+=1,me(null)},[]),he=ht(()=>{const e=pe.current;return()=>{de&&pe.current===e&&me(Date.now())}},[de]),fe=pt(()=>{}),ye=pt(!1),ve=pt(!1),[Se,we]=mt(!1),ke=pt(!1),Ce=ht(e=>{ke.current=e,we(e)},[]),be=pt(!1),Te=pt(void 0),[Ee,Pe]=mt(-1),[Me,Ie]=mt(""),Ae=pt(0),xe=pt(e);xe.current=e;const Re=pt(ee);Re.current=ee;const{commitUndo:Le}=useUndoStack({input:e,setInput:o,initialCursorRef:Te,incrementInputKey:__name(()=>U(e=>e+1),"incrementInputKey")}),{isEditorOpen:Oe,editorError:De,handleOpenInEditor:Ne,clearEditorError:Fe}=useExternalEditor({input:e,setInput:o,setInputKey:U,detectedContent:X,setDetectedContent:Z,onEditorClose:__name(()=>{ye.current=!1},"onEditorClose")}),_e=ut(()=>shouldCollapsePastedText(),[]),{handlePaste:$e,resetPasteState:Ue,isPasting:Be}=useBracketedPaste({input:e,setInput:o,setDetectedImages:te,setDetectedContent:Z,incrementInputKey:__name(()=>U(e=>e+1),"incrementInputKey"),setInitialCursor:__name(e=>{Te.current=e},"setInitialCursor"),collapsePastedText:_e,nextImageNumber:nextImagePasteNumber(ee),onPasteMiss:__name(e=>{le(describeClipboardImageMiss({environment:e.environment,attempted:e.attempted})),fe.current()},"onPasteMiss")}),je=useClipboardPasteKey({latestInputRef:xe,cursorPositionRef:Ae,detectedImagesRef:Re,setDetectedImages:te,setInput:o,incrementInputKey:__name(()=>U(e=>e+1),"incrementInputKey"),setInitialCursor:__name(e=>{Te.current=e},"setInitialCursor"),handlePaste:$e,onTextPasted:__name(()=>{be.current=!0},"onTextPasted"),showClipboardNotice:le,clearClipboardNotice:ie,armPasteKeyHint:he}),We=pt(()=>{});We.current=n=>{Oe||(async()=>{const o=Ae.current,r=e.slice(0,o),s=e.slice(o),a=stripEmbeddedPasteEndMarker(n);fe.current=he(),await $e(`${r}[200~${a}[201~${s}`)&&(be.current=!0)})()},gt(()=>registerPasteConsumer(e=>We.current(e)),[]);const He=pt(new Map),Ge=ut(()=>{const e=He.current,n=new Map,o=new Map;for(const r of ee){const s=e.has(r)?e.get(r)??null:saveTempImage(r.image,r.imageNumber);n.set(r,s),o.set(r.imageNumber,s)}return He.current=n,o},[ee]),{skills:Ve,customMenuItems:Ke}=useSlashMenuData(),ze=ut(()=>{const e=resolveSlashMenuItems({searchQuery:"",customMenuItems:Ke,skills:Ve,showProviderCommand:!0,showTerminalSetupCommand:isVSCodeTerminal2()});return new Set([...e.map(e=>e.command),...Ve.map(e=>buildSkillNamespacedCommand(e.name))])},[Ve,Ke]),qe=ht(e=>ze.has(e),[ze]),{context:Ye,connected:Je,refresh:Qe,connectionIndicator:Xe}=WB({enabled:N,paused:D}),{stdout:Ze}=rt(),et=Ze?.columns??80,{pr:ot}=HB();gt(()=>{const e=a||G;R?.(e)},[a,G,R]),gt(()=>{if(!be.current)return;be.current=!1;const n=pv(e);!G&&n.showCommandMenu||(V(n.showCommandMenu),z(n.showCommandMenu?n.commandSearchQuery:""))},[e,G]);const st=ht(()=>{te([])},[]),it=ht(()=>{V(!1),Y(null)},[]),lt=ht(()=>{it(),z(""),l(!1),d(""),Pe(-1),Ie(""),Te.current=void 0,U(e=>e+1)},[it,d,l]),dt=ht(n=>!(null===ne||!n?.replaceCurrentInput&&e.trim().length>0||(ye.current=!0,o(ne),oe(null),lt(),setTimeout(()=>{ye.current=!1},0),0)),[e,lt,o,ne]),ft=ht(()=>{o(""),H(!1),it(),z(""),Z([]),st(),Ue(),Pe(-1),Ie(""),U(e=>e+1)},[o,Ue,st,it]),yt=ht(e=>{ye.current=!0,o(e.text),Te.current=e.cursor,U(e=>e+1),setTimeout(()=>{ye.current=!1},0)},[o]),St=ht(()=>{yt(insertTextAt(e,Ae.current,"\n"))},[e,yt]);at(async(n,r)=>{if(ge(),ke.current&&!r.downArrow&&!r.return&&"\r"!==n&&(Ce(!1),r.upArrow))return;if(r.upArrow){if(a||G)return;const n=e.indexOf("\n"),r=-1===n||Ae.current<=n;if(0!==e.length&&-1===Ee&&!r)return;const s=A?.count()??0;if(0===s)return;-1===Ee&&Ie(e);const i=Math.min(Ee+1,s-1);return void(i!==Ee&&(Pe(i),o(A?.getAt(i)||""),U(e=>e+1)))}if(r.downArrow){if(a||G)return;if(-1===Ee){const n=e.lastIndexOf("\n"),o=-1===n||Ae.current>n;return void((0===e.length||o)&&listShellTasks().some(e=>"running"===e.status)&&Ce(!0))}const n=e.lastIndexOf("\n");if(!(-1===n||Ae.current>n))return;const r=Ee-1;return Pe(r),o(-1===r?Me:A?.getAt(r)||""),void U(e=>e+1)}if(""===n||r.ctrl&&"c"===n)return void st();if(isCtrlKey({inputChar:n,key:r,letter:"g",ctrlCode:7}))return ye.current=!0,void Ne();if(isCtrlKey({inputChar:n,key:r,letter:"s",ctrlCode:19})){const n=e.trim().length>0;if(!n&&null===ne)return;if(!n&&dt())return;ye.current=!0;const r=ne??"";return oe(n?e:null),o(r),lt(),void setTimeout(()=>{ye.current=!1},0)}if(getIsExpandToolShortcut(r,n))return ye.current=!0,o(e),U(e=>e+1),void setTimeout(()=>{ye.current=!1},0);if(isNewlineShortcutKey({inputChar:n,key:r,isPasting:Be()}))return ve.current=!0,St(),void setTimeout(()=>{ve.current=!1},0);if(r.meta&&"w"===n)return ye.current=!0,void ft();const s=r.ctrl&&"v"===n.toLowerCase()||tj.includes(n),i=r.meta&&"v"===n.toLowerCase();if(s||i){if(Oe)return;return ye.current=!0,setTimeout(()=>{ye.current=!1},0),void await je()}if(!r.ctrl&&!r.meta||"u"!==n)if(r.ctrl&&"z"===n?.toLowerCase())Le();else{if(r.escape){if(G)return;const n=Date.now();return n-J.current<500?(e.length>0?ft():L?.(),J.current=0,Q.current=0,j(!1),void H(!1)):(J.current=n,B||W||(Q.current=n),j(!1),void H(!1))}if(B&&(r.backspace||r.delete)&&0===e.length)j(!1);else if(r.return&&!r.shift&&!r.ctrl&&!r.meta){if(ke.current&&(Ce(!1),listShellTasks().some(e=>"running"===e.status)))return void requestBackgroundTasksExpand();if(ve.current)return void(ve.current=!1);if(Date.now()-Q.current<100)return Q.current=0,void St();if(a)return;if(G)return;if(Oe)return;const e=applyBackslashNewline(xe.current,Ae.current);return e?void yt(e):void await kt(xe.current)}}});const wt=ht(async n=>{if(Oe)return;const r=removeAltPCharacter(n);if(null!==r)return o(r),void O?.();const s=processBracketedPaste(n),i=findInsertion({before:e,after:n}),u=null!==i&&looksLikeDroppedImagePath(i.text);if((s.isPasteStart||s.isPasteEnd||u||Be())&&await $e(n))return void(be.current=!0);if(ye.current)return void(ye.current=!1);-1!==Ee&&Pe(-1),te(e=>{if(0===e.length)return e;const o=prunePastedImages({input:n,images:e});return o===e?e:[...o]});const m=1===n.length,p=n.slice(-1);if(m){if("?"===p&&!B)return j(!0),o(""),void U(e=>e+1);if("!"===p&&!W)return j(!1),H(!0),o(""),void U(e=>e+1)}const g=pv(n),h=n.length<e.length&&!e.startsWith(n),f=!h&&n.length<e.length,y=n.length===e.length+1||f,v=gv({canOpenMenu:y,deletedFromMiddle:h,menuState:g,showCommandMenu:G});G===v&&K===g.commandSearchQuery||(V(v),z(v?g.commandSearchQuery:""));const S=reduceFileMentionInput({prevInput:e,nextInput:n,state:{showFileList:a,query:c}});S.showFileList!==a&&l(S.showFileList),S.query!==c&&d(S.query),B&&(n!==e||n.length<e.length)&&j(!1),De&&Fe(),0===n.length&&(H(!1),it(),z(""),Z([]),d(""),Ue()),o(n)},[B,e,o,a,l,c,d,G,K,W,Ee,$e,Ue,Be,O,De,Fe,Oe,it]),kt=ht(async(r=e)=>{if(Qe(),Q.current=0,B)return void j(!1);const s=r.trim(),a=!W&&s.startsWith("/");let i=s;!W&&X.length>0&&(i=resolvePastedTextTokens({input:i,detectedContent:X}));const l=W?[]:resolvePastedImageTokens({input:s,images:ee}),c={};if(!W)for(const e of ee){if(!s.includes(imagePasteToken(e.imageNumber)))continue;const n=Ge.get(e.imageNumber);n&&(c[e.imageNumber]=n)}const d=Object.keys(c).length>0,m=Ye?uE(Ye):void 0;if(a&&u&&(o(""),"handled"===(await u(i,l,m)).status))return carriesSecretArgument(i)||A?.add(i),H(!1),it(),z(""),st(),Z([]),Pe(-1),Ie(""),void dt({replaceCurrentInput:!0});Pe(-1),Ie(""),i.length>0&&!carriesSecretArgument(i)&&A?.add(i);const p=buildIdeContextHint({ideContext:Ye});n({input:i,role:W?"bash":"user",images:l,ideContext:m,ideHint:p,imageTokenPaths:d?c:void 0}),H(!1),it(),z(""),st(),Z([]),dt({replaceCurrentInput:!0})},[n,u,B,e,W,ee,Ge,X,A,Qe,Ye,st,it,dt,o]),Ct=ht(n=>{const r=i(process.cwd(),n),s=r.includes(" ")?`"${r}"`:r,u=buildFileMentionInput({currentInput:e,mentionPath:s,isSearchMode:a&&""!==c});o(u),l(!1),d(""),U(e=>e+1)},[o,l,e,a,c,d]),bt=ht(()=>{l(!1),d("")},[l,d]),Tt=ht(e=>{const n=lv.has(e),r="/design"===e.trimEnd();if(n||r){const n=e.trimEnd();return o(n+" "),z(n.substring(1)+" "),void U(e=>e+1)}it(),z(""),o(e+" "),U(e=>e+1)},[o,it]),Et=ht(n=>{if("/design help"===n)return it(),z(""),o(""),U(e=>e+1),A?.add(n),void u?.("/design help");if(iv.has(n))return it(),z(""),A?.add(n),Pe(-1),Ie(""),o(""),U(e=>e+1),void u?.(n);const r=lv.has(n),s=Ti.has(n),a=Ei.has(n);if(r)Tt(n);else{if(it(),z(""),!s&&!a&&e!==n)return o(n+" "),void U(e=>e+1);A?.add(n),Pe(-1),Ie(""),o(""),U(e=>e+1),u?.(n)}},[u,o,e,A,Tt,it]),Pt=ht(()=>{it(),z(""),Pe(-1),Ie(""),U(e=>e+1)},[it]),Mt=ht(e=>{Ae.current=e,Te.current=void 0},[]),It=ut(()=>formatSlashCommandInputHint({value:e,selectedCommand:G?q:null}),[e,G,q]),At=Boolean(It)&&!x,Rt=ut(()=>{const n=ot&&("OPEN"===ot.state||"MERGED"===ot.state);return"auto-accept"===P||"plan"===P||"bypass"===P||"dont-ask"===P||Je||n?!B:!B&&0===e.length&&!W},[B,e,W,P,Je,ot]),Lt=null!==ne,Ot=__name(()=>B||a||G?0:At||Rt||x||W?3:4,"getBottomMargin");return ct.createElement(tt,{width:"100%",flexDirection:"column",marginBottom:Ot()},ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(nt,{color:W?XO.GREEN:XO.GRAY},vt.line.repeat(et)),(()=>{const n=__name(n=>ct.createElement(TextInput,{key:$,value:e,placeholder:Oe?_("saveAndCloseTheEditorToContinue","Save and close the editor to continue..."):s,onChange:wt,showCursor:!Oe&&r,onCursorChange:Mt,initialCursor:Te.current,prefix:`${W?"!":vt.pointer} `,prefixColor:W?XO.GREEN:XO.WHITE,singleLine:n?.singleLine,maxWidth:n?.maxWidth,imageTokenLinks:Ge,isRecognizedSlashCommand:qe,disablePasteRouting:!0}),"renderTextInput"),o=G?"/model"===q&&T?getModelHintText(T):It:null,a=o?getCommandHintLayout({text:o,terminalWidth:et}):null;return a?ct.createElement(tt,{flexDirection:"row",width:"100%"},ct.createElement(tt,{width:25},n({singleLine:!0,maxWidth:25})),ct.createElement(tt,{width:a.descriptionWidth},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},a.text))):n()})(),ct.createElement(nt,{color:W?XO.GREEN:XO.GRAY},vt.line.repeat(et))),B&&ct.createElement(nj,{pasteKeyAdvice:ce}),a&&ct.createElement(VB,{onSelectFile:Ct,onClose:bt,searchQuery:c}),G&&ct.createElement(TD,{onSelectCommand:Et,onInsertCommand:Tt,onSubmitSearch:kt,onClose:Pt,searchQuery:K,onSelectedCommandChange:Y}),!G&&!a&&At&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},It)),!G&&!a&&!At&&(Rt||x||Lt)&&ct.createElement(ZB,{termWidth:et,indicatorText:getIdeInputIndicatorText(Je,Ye,et),isIDEIndicator:hasIdeInputIndicatorContext(Je,Ye),permissionMode:P,prInfo:ot,contextUsage:m,tasteLearningOn:p,byokSession:isByok({model:T??""}),phaseModel:g,connectionIndicator:Xe,pendingExitKey:x,updateStatus:k,updateFailedInfo:C,currentProvider:b,showProviderInfo:E,isBashMode:W,shareInfo:f,showShareNotification:y,unshareNotificationMessage:v,tasteNotificationMessage:S,creditWarning:w,hasStashedPrompt:Lt,backgroundTasksArmed:Se,pasteKeyHint:null!==ue&&0===ee.length?de:null}),De&&ct.createElement(tt,{paddingLeft:1,flexDirection:"column"},ct.createElement(nt,{color:XO.YELLOW},De)),!De&&re&&ct.createElement(tt,{paddingLeft:1},ct.createElement(nt,{color:XO.DIM,wrap:"truncate"},re)),F)},"InputBox");Jt(),hL();var rj=__name(()=>{const[e,n]=mt([]);return gt(()=>subscribeModStatus(n),[]),0===e.length?null:ct.createElement(tt,{paddingLeft:2},ct.createElement(nt,{wrap:"truncate"},e.map(e=>e.text).join(" ")))},"ModStatusLine");Jt(),hL();var sj=__name(({messages:e})=>{const{t:n}=xt(),o=countVisibleQueuedMessages(e);if(0===o)return null;const r=getQueuedDisplayRows(e);return ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(tt,{marginBottom:0},ct.createElement(nt,{color:nD,inverse:!0},n("queued"," Queued ({{v0}}) ",{v0:o}))),r.map(e=>ct.createElement(tt,{key:e.text},ct.createElement(nt,{color:XO.DIM},vt.pointerSmall," "),ct.createElement(nt,{color:XO.DIM},truncateString2({text:e.count>1?`${e.text} (${e.count})`:e.text,maxChars:80})))))},"QueuedMessages");function useWorkedDuration(e,n){const o=pt(null),[r,s]=mt(null);return gt(()=>{o.current=null,s(null)},[n]),gt(()=>{if(e)return o.current??=Date.now(),void s(null);null!==o.current&&(s(Date.now()-o.current),o.current=null)},[e]),r}function WorkedDurationNote({durationMs:e}){const{t:n}=xt();return null===e||e<1e3?null:ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},n("workedFor","{{v0}} Worked for {{v1}}",{v0:"✻",v1:formatElapsedMs(e)})))}Jt(),hL(),__name(useWorkedDuration,"useWorkedDuration"),__name(WorkedDurationNote,"WorkedDurationNote");var aj=ct.memo(({queuedMessages:e,isProcessing:n,processingStartedAt:o=null,executionState:r,status:s,input:a,setInput:i,onSubmit:l,showFileList:c,setShowFileList:d,fileSearchQuery:u,setFileSearchQuery:m,onCommand:p,outputTokens:g=0,contextUsage:h,tasteLearningOn:f,tasteUsage:y,shareInfo:v,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:C,updateFailedInfo:b,creditWarning:T,currentProvider:E,currentModel:P,phaseModel:M,showProviderInfo:I,permissionMode:A,onToggleAutoAccept:x,hintMessage:R,historyManager:L,pendingExitKey:O,onResetPendingExitKey:D,onDoubleEscapeEmpty:N,retryAttempt:F,onAltP:_,inputActive:$=!0,inactiveHint:U,sessionId:B})=>{const[j,W]=mt(()=>null===o?0:Date.now()-o),H=pt(a),G=n||r.isExecuting,V=useSandboxWaiting(),K=n&&isSandboxMode()&&isSandboxConnecting(),z=useWorkedDuration(G&&!K,B);return gt(()=>{O&&a!==H.current&&a.length>0&&D?.(),H.current=a},[a,O,D]),gt(()=>{if(!n||null===o)return void W(0);W(Date.now()-o);const e=setInterval(()=>{W(Date.now()-o)},1e3);return()=>{clearInterval(e)}},[n,o]),ct.createElement(tt,{flexDirection:"column"},ct.createElement(sj,{messages:e}),ct.createElement(tt,{flexDirection:"row",justifyContent:"space-between"},ct.createElement(tt,{flexDirection:"column"},K&&ct.createElement(ConnectSteps,null),V&&!K&&!G&&ct.createElement(ShimmerLine,{text:`${V}…`,icon:!0}),G&&!K&&null===F&&ct.createElement(NB,{tokens:g,timeElapsed:j,status:r.isExecuting?t("executing2","Executing: {{v0}}",{v0:r.currentCommand}):s}),!G&&ct.createElement(WorkedDurationNote,{durationMs:z}),G&&!K&&null===F&&R&&ct.createElement(tt,{marginLeft:1},ct.createElement(nt,{color:XO.DIM}," ","⎿"," ",t("tip","Tip:")," ",R)))),$?ct.createElement(oj,{input:a,setInput:i,onSubmit:l,placeholder:t("askYourQuestion","Ask your question..."),showFileList:c,setShowFileList:d,fileSearchQuery:u,setFileSearchQuery:m,onCommand:p,contextUsage:h,tasteLearningOn:f,tasteUsage:y,shareInfo:v,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:C,updateFailedInfo:b,creditWarning:T,currentProvider:E,currentModel:P,phaseModel:M,showProviderInfo:I,permissionMode:A,onToggleAutoAccept:x,hintMessage:R,historyManager:L,pendingExitKey:!O||n||r.isExecuting?null:O,onDoubleEscapeEmpty:N,onAltP:_,isProcessing:n,footer:ct.createElement(rj,null)}):ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{marginLeft:1},ct.createElement(zN,null,U??t("backgroundFocusedToSelectEnterToViewXToStopEscToGoBackToFeed","Background focused · ↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed"))),ct.createElement(rj,null)))});Jt(),hL();var{addDirectory:ij,formatDirectoryForDisplay:lj,getAdditionalDirectories:cj,removeAdditionalDirectory:dj}=Av,uj=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt(""),[s,a]=mt(null),[i,l]=mt([]),[c,d]=mt(()=>cj()),[u,m]=mt(()=>({zone:"input",suggestionIndex:0,activeDirIndex:0})),[p,g]=mt(0);gt(()=>{l(o?getDirectorySuggestions(o):[]),m(e=>({...e,zone:"input"})),g(0)},[o]),gt(()=>{if(!s||"success"!==s.tone)return;const e=setTimeout(()=>{a(null)},5e3);return()=>clearTimeout(e)},[s]);const h=__name(e=>{const o=ij(e);"error"!==o.status?"skipped"!==o.status?(a({tone:"success",text:n("addedToDirectoryScope","Added {{v0}} to directory scope",{v0:o.displayPath})}),r(""),d(cj()),m({zone:"input",suggestionIndex:0,activeDirIndex:0})):a({tone:"warning",text:o.message}):a({tone:"error",text:o.message})},"submitPath"),f=__name(e=>{if(!dj(e))return a({tone:"error",text:n("isNoLongerInWorkspaceScope","{{v0}} is no longer in workspace scope",{v0:lj(e)})}),void d(cj());a({tone:"success",text:n("removedFromDirectoryScope","Removed {{v0}} from directory scope",{v0:lj(e)})}),d(cj()),m(e=>{if("active-dir"!==e.zone)return e;const n=Math.max(0,e.activeDirIndex-1);return{...e,activeDirIndex:n}})},"handleRemove");at((n,o)=>{if(o.escape)e();else{if(o.return)return"suggestions"===u.zone&&i[u.suggestionIndex]?void h(i[u.suggestionIndex]):void 0;if((o.delete||o.backspace)&&"active-dir"===u.zone&&c[u.activeDirIndex])f(c[u.activeDirIndex]);else{if(o.tab&&i.length>0){const e=i[u.suggestionIndex]??i[0];return void(e&&(r(e),m(e=>({...e,zone:"input"})),a(null)))}o.downArrow?m(e=>moveAddDirFocusDown(e,{suggestionCount:i.length,activeDirCount:c.length})):o.upArrow&&m(e=>moveAddDirFocusUp(e,{suggestionCount:i.length,activeDirCount:c.length}))}}}),gt(()=>{"suggestions"===u.zone&&g(e=>getAdjustedSuggestionOffset({selectedIndex:u.suggestionIndex,currentOffset:e,maxVisible:rL,totalSuggestions:i.length}))},[u,i.length]),gt(()=>{m(e=>"suggestions"===e.zone&&e.suggestionIndex>=i.length?{...e,zone:"input",suggestionIndex:Math.max(0,i.length-1)}:"active-dir"===e.zone&&e.activeDirIndex>=c.length?{...e,zone:"input",activeDirIndex:Math.max(0,c.length-1)}:e)},[i.length,c.length]);const y=i.slice(p,p+rL),v=getAddDirFooterText({focusZone:u.zone});return ct.createElement(oF,{title:n("addDirectoryToWorkspace","Add directory to workspace"),subtitle:ct.createElement(nt,{color:XO.GRAY},n("commandCodeWillBeAbleToReadFilesInThisDirectoryAndMakeEditsWhenAcceptEditsModeIsOn","Command Code will be able to read files in this directory and make edits when accept edits mode is on.")),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},ct.createElement(BracketedText,{text:v,color:XO.DIM})),gapAfterHeader:!1},ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},n("addedDirectories","Added directories")),0===c.length?ct.createElement(nt,{color:XO.GRAY}," ",n("noneYet","None yet")):c.map((e,n)=>{const o="active-dir"===u.zone&&u.activeDirIndex===n;return ct.createElement(tt,{key:e},ct.createElement(nt,null," "),ct.createElement(s$,{isSelected:o}),ct.createElement(a$,{isSelected:o,isActive:!0}," ",lj(e)))})),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{bold:!0,color:XO.WHITE},n("path","Path"))),ct.createElement(tt,null,ct.createElement(TextInput,{value:o,focus:"input"===u.zone,prefix:`${"input"===u.zone?vt.pointer:" "} `,prefixColor:"input"===u.zone?ZN:XO.GRAY,onChange:e=>{r(e),a(null)},onSubmit:h})),!o&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},n("examplesSharedDocsAbsPath","Examples: ../shared ~/docs /abs/path"))),s&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:{error:XO.RED,warning:XO.YELLOW,success:XO.GREEN}[s.tone]},s.text)),i.length>0&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.GRAY},n("suggestions","Suggestions")),y.map((e,n)=>{const o=p+n,r="suggestions"===u.zone&&u.suggestionIndex===o;return ct.createElement(tt,{key:e},ct.createElement(nt,null," "),ct.createElement(s$,{isSelected:r}),ct.createElement(a$,{isSelected:r,idleColor:XO.GRAY}," ",e))})))},"AddDirModal");Jt(),hL();var mj=__name(()=>[{label:t("completeBrief","Complete brief"),desc:t("ifTheTargetGoalAudienceOrArtifactIsClearActWithoutAsking","If the target, goal, audience, or artifact is clear, act without asking.")},{label:t("composition","Composition"),desc:t("chooseLayoutFromTheWorkPatternMonitorOperateCompareConfigureLearnDecideOrExplore","Choose layout from the work pattern: monitor, operate, compare, configure, learn, decide, or explore.")},{label:t("scope","Scope"),desc:t("broadPromptsGetTheFullModePassNarrowPromptsStayNarrow","Broad prompts get the full mode pass. Narrow prompts stay narrow.")},{label:t("truth","Truth"),desc:t("onlyClaimChangesThatExistInFilesAndAreVisibleOrVerifiable","Only claim changes that exist in files and are visible or verifiable.")},{label:t("templates","Templates"),desc:t("designHtmlAndReportHtmlAreDocumentationTemplatesNotUiInspiration","design-html and report-html are documentation templates, not UI inspiration.")},{label:t("reports","Reports"),desc:t("followUpModesReadMarkdownReportsApplyRelevantFindingsThenStillRunTheirOwnFullModePass","Follow-up modes read markdown reports, apply relevant findings, then still run their own full mode pass.")}],"DESIGN_GUIDE_RULES"),pj=['/design redesign "Make this dashboard feel like an operator console"','/design motion "Animate the whole page and add missing interactions"','/design checkup "Audit this UI and generate the design report"','/design "Build a landing page for a privacy-first contract review tool"'],gj=__name(({onCancel:e})=>{const{t:n}=xt();return at((n,o)=>{o.escape&&e()}),ct.createElement(tt,{flexDirection:"column",paddingLeft:2,paddingRight:2},ct.createElement(tt,{marginBottom:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("use","Use")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},n("designLtModeGtQuotTargetOrRequestQuot",'/design <mode> "target or request"')),ct.createElement(nt,{color:XO.DIM},n("designQuotFreeformRequestQuotAlsoWorksTheClosestModeIsInferred",'/design "freeform request" also works. The closest mode is inferred.')))),ct.createElement(tt,{marginBottom:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("modes","Modes")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},tv.map(e=>ct.createElement(tt,{key:e.name,columnGap:2},ct.createElement(tt,{width:18,flexShrink:0},ct.createElement(nt,{color:XO.CYAN},"/design ",e.name)),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},translateUiCopy(e.description))))))),ct.createElement(tt,{marginBottom:1,marginTop:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("workingRules","Working rules")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},mj().map(e=>ct.createElement(tt,{key:e.label,columnGap:2},ct.createElement(tt,{width:16,flexShrink:0},ct.createElement(nt,{color:XO.CYAN},e.label)),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},e.desc)))))),ct.createElement(tt,{marginBottom:1,marginTop:1,flexDirection:"column"},ct.createElement(nt,{bold:!0,color:ZO},n("quickExamples","Quick examples:")),ct.createElement(tt,{paddingLeft:2,flexDirection:"column"},pj.map(e=>ct.createElement(nt,{key:e,color:XO.DIM},e)))),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},n("pressEscToCloseTypeDesignHelpAnytimeToReturn","Press Esc to close. Type /design help anytime to return."))))},"DesignGuide");Jt(),hL();var hj=FN.map(e=>({label:_N[e].label,value:e,description:_N[e].description})),fj=__name(({onSelect:e,onCancel:n,onboarding:o=!1,disabled:r=!1})=>{const{t:s}=xt(),[a]=mt(()=>getCliLanguage()),i=ut(()=>hj.map(e=>({...e})),[]),l=__name(n=>{if(r)return;const o=i.find(e=>e.value===n.value);o&&e(o.value)},"handleSelect");at((e,o)=>{o.escape&&!r&&n()});const c=i.findIndex(e=>e.value===a),d=i.find(e=>e.value===a)?.label??a;return ct.createElement(oF,{title:o?"Choose a language / 选择语言":s("selectLanguage","Select a language"),subtitle:o?"Command Code · English / 简体中文":s("languageSubtitle",{defaultValue:"Choose the language for Command Code's interface · currently {{label}}",label:d}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},o?"↑/↓ · Enter confirm / 确认 · Esc skip / 跳过":s("pressEscToCancel","Press Esc to cancel"))},ct.createElement(SelectInput,{isFocused:!r,items:i,onSelect:l,initialIndex:c>=0?c:0,indicatorComponent:s$,itemComponent:({isSelected:e,label:n})=>{const o=i.findIndex(e=>e.label===n),r=i[o],s=r?.value===a,l=o===i.length-1;return ct.createElement(tt,{flexDirection:"column",marginBottom:l?0:1},ct.createElement(tt,null,ct.createElement(a$,{isSelected:e,isActive:s,idleColor:XO.DIM},` ${o+1}. ${r?.label??n}`),s&&ct.createElement(l$,null)),ct.createElement(c$,null,r?.description??""))}}))},"LanguageSelector");Jt();var yj=__name(({onComplete:e,onCancel:n})=>{const{t:o}=xt(),{authState:r,statusMessage:s,browserUrl:a,apiKeyInput:i,setApiKeyInput:l,handleApiKeySubmit:c,cancel:d}=useAuthFlow({onSuccess:__name((n,r)=>{const s=n.userName&&n.userName!==o("apiKey2","API Key")&&n.userName!==o("manualApiKey","Manual API Key")?n.userName:"",a=s?o("loggedInAs","Logged in as {{v0}}",{v0:s}):o("loggedInSuccessfully","Logged in successfully");e(!0,a)},"onSuccess"),onFailure:__name((n,o)=>{e(!1,o)},"onFailure"),onCancel:__name(()=>{n()},"onCancel")});return at((e,n)=>{n.ctrl&&"c"===e&&d()}),ct.createElement(sF,{authState:r,statusMessage:s,browserUrl:a,apiKeyInput:i,setApiKeyInput:l,handleApiKeySubmit:c})},"LoginOverlay");function getStatusTextColor(e){return"connected"===e?XO.GREEN:"connecting"===e||"authenticated"===e?XO.CYAN:"requires_auth"===e?XO.YELLOW:XO.GRAY}Jt(),hL(),__name(getStatusTextColor,"getStatusTextColor");var vj=__name((e,n)=>{const o=__name((e,o)=>ct.createElement(nt,{color:e,backgroundColor:n},o),"icon");return"connected"===e?o(XO.GREEN,vt.tick):"connecting"===e?o(XO.CYAN,vt.circle):"authenticated"===e?o(XO.CYAN,vt.tick):"requires_auth"===e?o(XO.YELLOW,vt.warning):"error"===e?o(XO.RED,vt.cross):o(XO.GRAY,vt.circle)},"getStatusIcon"),Sj=__name(({onClose:e,mcp:n})=>{const{t:o}=xt(),[r,s]=mt([]),[a,i]=mt(!0),[l,c]=mt(0),[d,u]=mt("list"),[m,p]=mt(null),[g,h]=mt(0),f=useTerminalHeight(),y=ht(async()=>{try{const e=await listMcpServers(),o=n?mcpManagerConnectionsFromRegistry(n):mcpManagerConnectionsFromPool(getConnectedMcpServers()),r=await buildMcpManagerServerInfos({configuredServers:e,connectedServers:o,hasTokens:hasTokens});s([...r])}catch{}finally{i(!1)}},[n]);gt(()=>{y()},[y]),gt(()=>{if(n)return n.onChange(()=>{y()})},[n,y]);const v=ut(()=>[...orderMcpManagerServers(r)],[r]),S=v[l]??null,w=f-1,k=ut(()=>new Set(v.map(e=>e.scope)).size,[v]),C=Math.max(4,w-8-2*k);gt(()=>{h(e=>clampScrollOffset({cursor:l,total:v.length,maxVisible:C,currentOffset:e}))},[l,v.length,C]),at((n,o)=>{if(o.ctrl&&"c"===n)e();else{if(o.escape)return"actions"===d||"confirm-remove"===d?(u("list"),void p(null)):void e();if("list"===d){if(o.upArrow&&(c(e=>Math.max(0,e-1)),p(null)),o.downArrow){if(0===v.length)return;const e=Math.max(0,v.length-1);c(n=>Math.min(e,n+1)),p(null)}o.return&&S&&(u("actions"),p(null))}}});const b=__name(async e=>{if(S)if("back"!==e.value)if("connected"!==e.value)if("authenticated"!==e.value)if("connect"!==e.value)if("auth"!==e.value)if("remove"!==e.value)if("disable"!==e.value)if("enable"!==e.value);else{p({text:o("enabling","Enabling {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:S.name,enabled:!0,scope:S.scope}))return void p({text:o("failedToEnableServerMayNoLongerExistInScope","{{v0}} Failed to enable {{v1}}, server may no longer exist in {{v2}} scope",{v0:vt.cross,v1:S.name,v2:S.scope}),color:XO.YELLOW});await y(),p({text:o("enabled","{{v0}} Enabled {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN})}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else{p({text:o("disabling","Disabling {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:S.name,enabled:!1,scope:S.scope}))return void p({text:o("failedToDisableServerMayNoLongerExistInScope","{{v0}} Failed to disable {{v1}}, server may no longer exist in {{v2}} scope",{v0:vt.cross,v1:S.name,v2:S.scope}),color:XO.YELLOW});await disconnectMcpServer({name:S.name,registry:n}),await y(),p({text:o("disabled","{{v0}} Disabled {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN})}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else u("confirm-remove");else{p({text:o("authenticating","Authenticating {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{const e=await runMcpServerAuthFlow({serverName:S.name,config:S.config,connectAfterAuth:__name(({name:e})=>connectMcpServer({name:e,registry:n}),"connectAfterAuth")});if("unsupported"===e.kind)return void p({text:e.message,color:XO.YELLOW});"success"===e.kind?(p({text:o("authenticatedWith","{{v0}} Authenticated with {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN}),await y()):p({text:o("authFailed","{{v0}} Auth failed: {{v1}}",{v0:vt.cross,v1:e.message}),color:XO.RED})}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else{p({text:o("connecting","Connecting {{v0}}...",{v0:S.name}),color:XO.CYAN,loading:!0});try{await connectMcpServer({name:S.name,registry:n}),p({text:o("connectedTo","{{v0}} Connected to {{v1}}",{v0:vt.tick,v1:S.name}),color:XO.GREEN}),await y()}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED})}}else p({text:o("alreadyAuthenticated","Already authenticated"),color:XO.GREEN});else p({text:o("alreadyConnected","Already connected"),color:XO.GREEN});else u("list")},"handleActionSelect"),T=__name(async e=>{if(S)if("yes"===e.value)try{"connected"===S.status&&await disconnectMcpServer({name:S.name,registry:n}),await removeMcpServer({name:S.name,scope:S.scope}),u("list"),await y(),c(e=>Math.min(e,Math.max(0,v.length-2)))}catch(e){p({text:o("failed","{{v0}} Failed: {{v1}}",{v0:vt.cross,v1:e instanceof Error?e.message:String(e)}),color:XO.RED}),u("actions")}else u("actions")},"handleRemoveConfirm");if(a)return ct.createElement(oF,{title:o("manageMcpServers","Manage MCP servers")},ct.createElement(nt,{color:XO.DIM},o("loading2","Loading...")));if("confirm-remove"===d&&S)return ct.createElement(oF,{title:o("remove","Remove {{v0}}?",{v0:S.name}),titleColor:XO.RED,hint:o("navigateEnterToSelectEscToCancel","↑↓ navigate · Enter to select · Esc to cancel")},ct.createElement(nt,{color:XO.DIM},o("thisWillRemoveTheServerFrom","This will remove the server from")," ",S.scope," ",o("config2","config.")),ct.createElement(tt,{marginTop:1},ct.createElement(SelectInput,{items:[{label:o("yesRemove","Yes, remove"),value:"yes"},{label:o("cancel2","Cancel"),value:"no"}],onSelect:T,indicatorComponent:m$,itemComponent:u$})));if("actions"===d&&S){const e=buildMcpManagerActionItems(S);return ct.createElement(oF,{title:S.name,hint:o("navigateEnterToSelectEscToGoBack","↑↓ navigate · Enter to select · Esc to go back")},ct.createElement(tt,null,vj(S.status),ct.createElement(nt,{color:XO.DIM}," ",getMcpManagerStatusText(S))),ct.createElement(tt,{marginTop:1},ct.createElement(SelectInput,{items:[...e],onSelect:b,indicatorComponent:m$,itemComponent:u$})),m&&ct.createElement(tt,{marginTop:1},m.loading&&ct.createElement(nt,{color:m.color},ct.createElement(Et,{type:"dots"})," "),ct.createElement(nt,{color:m.color},m.text)))}let E=null;const P=g,M=g+C,I=v.slice(P,M),A=v.length>C;return ct.createElement(oF,{title:o("manageMcpServers","Manage MCP servers"),hint:0===r.length?o("escToClose","Esc to close"):o("navigateEnterToSelectEscToClose","↑↓ navigate · Enter to select · Esc to close")},ct.createElement(nt,{color:XO.DIM},r.length," ",translateUiCopy(1===r.length?"server":"servers")),0===r.length?ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},o("noMcpServersConfigured","No MCP servers configured.")),ct.createElement(nt,{color:XO.DIM},o("use2",'Use "'),getBinaryCommand()," ",o("mcpAddToAddAServer",'mcp add" to add a server.')),ct.createElement(_D,{url:"https://commandcode.ai/docs/mcp",text:o("viewMcpDocs","View MCP Docs ↗"),color:XO.CYAN,dimColor:!0})):ct.createElement(tt,{marginTop:1,flexDirection:"column"},I.map((e,n)=>{const o=P+n,r=e.scope!==E;E=e.scope;const s=o===l;return ct.createElement(ct.Fragment,{key:e.name},r&&ct.createElement(tt,{marginTop:0===n?0:1},ct.createElement(nt,{bold:!0},getMcpManagerScopeLabel(e.scope)),ct.createElement(nt,{color:XO.DIM}," ","(",getMcpManagerScopePath(e.scope),")")),ct.createElement(tt,null,ct.createElement(nt,{color:s?XO.WHITE:void 0,backgroundColor:s?kD:void 0,bold:s},e.name),ct.createElement(nt,{color:XO.DIM,backgroundColor:s?kD:void 0}," · "),vj(e.status,s?kD:void 0),ct.createElement(nt,{color:getStatusTextColor(e.status),backgroundColor:s?kD:void 0}," ",getMcpManagerStatusText(e)," ")))})),A&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},o("showing","Showing")," ",P+1,"–",Math.min(M,v.length)," ",o("of","of")," ",v.length,P>0?o("more3"," · ↑ more"):"",M<v.length?o("more4"," · ↓ more"):"")),m&&ct.createElement(tt,{marginTop:1},m.loading&&ct.createElement(nt,{color:m.color},ct.createElement(Et,{type:"dots"})," "),ct.createElement(nt,{color:m.color},m.text)))},"McpManager");Jt(),hL();var wj=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt([]),[s,a]=mt(0),[i,l]=mt(!0),[c,d]=mt(null);gt(()=>{__name(async()=>{try{const e=await discoverCommandMemoryFiles(process.cwd());r(e),l(!1)}catch(e){d(e instanceof Error?e.message:n("failedToDiscoverMemoryFiles","Failed to discover memory files")),l(!1)}},"loadMemoryFiles")()},[]);const u=__name(async o=>{try{await openMemoryFileInEditor(o.path,{logError:__name(e=>console.error(e),"logError")}),e()}catch(o){console.error(n("errorOpeningMemoryFilePleaseEnsureYouHaveAnEditorSetUp","Error opening memory file. Please ensure you have an editor set up.")),e()}},"handleOpenInEditor"),m=filterEditableMemoryLocations(o);if(at((n,o)=>{o.escape?e():o.upArrow?a(e=>Math.max(0,e-1)):o.downArrow?a(e=>Math.min(m.length-1,e+1)):(o.return&&m[s]&&u(m[s]),"1"===n&&m[0]&&u(m[0]),"2"===n&&m[1]&&u(m[1]))}),i)return ct.createElement(oF,{title:n("selectMemoryToEdit","Select memory to edit:")},ct.createElement(nt,{color:XO.DIM},n("loadingMemoryFiles","Loading memory files...")));if(c)return ct.createElement(oF,{title:n("selectMemoryToEdit","Select memory to edit:")},ct.createElement(nt,{color:XO.RED},vt.cross," ",c));const p=projectMemorySelectorOptions(m);return ct.createElement(oF,{title:n("selectMemoryToEdit","Select memory to edit:"),hint:n("toNavigateEnterToEditEscToCancel","↑/↓ to navigate · enter to edit · esc to cancel")},ct.createElement(tt,{columnGap:4},ct.createElement(tt,{flexDirection:"column"},p.map((e,n)=>ct.createElement(tt,{key:e.label},ct.createElement(s$,{isSelected:s===n}),ct.createElement(a$,{isSelected:s===n,idleColor:tF}," ",e.label)))),ct.createElement(tt,{flexDirection:"column"},p.map((e,n)=>ct.createElement(a$,{key:e.label,isSelected:s===n,idleColor:tF},e.description)))))},"MemorySelector");Jt(),hL();var kj=__name(()=>[{label:t("compactNormalDefault","Compact Normal (default)"),value:"default",description:t("summarizeSessionWhenContextLimitReached","Summarize session when context limit reached.")},{label:t("compactFast","Compact Fast"),value:"fast",description:t("fastTieredCompactionHigherQualityUsesMoreTokens","Fast tiered compaction. Higher quality, uses more tokens.")}],"COMPACT_MODE_OPTIONS"),Cj=__name(({onSelect:e,onCancel:n})=>{const{t:o}=xt(),[r,s]=mt(null);gt(()=>{loadUserConfig().then(e=>{s(e.compactMode??"default")})},[]);const a=__name(n=>{e(n.value)},"handleSelect");if(at((e,o)=>{o.escape&&n()}),null===r)return null;const i=kj().findIndex(e=>e.value===r);return ct.createElement(oF,{title:o("selectACompactModeToCompactSessions","Select a compact mode to compact sessions"),subtitle:o("chooseHowCommandCodeHandlesAutomaticContextCompaction","Choose how Command Code handles automatic context compaction."),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},o("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",o("toCancel","to cancel"))},ct.createElement(SelectInput,{items:kj(),onSelect:a,initialIndex:i>=0?i:0,indicatorComponent:m$,itemComponent:({isSelected:e,label:n})=>{const o=kj().find(e=>e.label===n),s=o?.value===r,a=kj().findIndex(e=>e.label===n);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(d$,{isSelected:e,idleColor:s?XO.GREEN:XO.WHITE,bold:e||s},` ${a+1}. ${o?.label??n} `),s&&ct.createElement(l$,null)),ct.createElement(d$,{isSelected:e,idleColor:XO.DIM,bold:!1},` ${o?.description??""} `))}}))},"CompactModeSelector");Jt(),hL(),Jt(),hL();var bj=__name((e,n)=>`${e+1}. ${n}`,"labelText"),Tj=__name(({modelLabel:e,supportedEfforts:n,currentEffort:o,onSelect:r,onCancel:s})=>{const{t:a}=xt(),i=ut(()=>buildEffortPickerRows(n).map(e=>({...e,label:translateUiCopy(e.label),description:translateUiCopy(e.description)})),[n,a]),l=ut(()=>{if(void 0===o)return 0;const e=i.findIndex(e=>e.value===o);return e>=0?e:0},[i,o]),c=ut(()=>Math.max(...i.map((e,n)=>Be(bj(n,e.label))))+4,[i]),{cursor:d}=useListNavigation({items:i,onSelect:__name(e=>r(e.value),"onSelect"),onCancel:s,initialIndex:l,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,selectByNumber:!0});return ct.createElement(oF,{title:a("selectReasoningEffortFor","Select reasoning effort for {{v0}}",{v0:e}),hint:a("navigateEnterToSelectEscToGoBack2","↑/↓ navigate · enter to select · esc to go back")},ct.createElement(tt,{flexDirection:"column"},i.map((e,n)=>{const r=n===d,s=e.value===o;return ct.createElement(tt,{key:e.label},ct.createElement(nt,{color:r||!s?XO.WHITE:XO.GREEN,backgroundColor:r?kD:void 0,bold:r||s},bj(n,e.label)," ".repeat(c-Be(bj(n,e.label)))),ct.createElement(nt,{color:r?XO.WHITE:XO.DIM,backgroundColor:r?kD:void 0},e.description," "),s&&ct.createElement(nt,{color:XO.GREEN}," ",vt.tick))})))},"ReasoningEffortSelector"),Ej=__name(({currentModel:e,onClose:n,refreshBanner:o,sessionId:r})=>{const s=(r?hO(r)?.getActiveModel?.():void 0)??e,a=customReasoningEfforts(s)??getSupportedEfforts(s)??[],i=findModelById(s)?.label??XL(s),l=pt(!1),c=__name(e=>{if(l.current)return;l.current=!0;const a=r?hO(r):void 0,i=getReasoningEffort(s),c=a?.getActiveEffort?.()??i;(async()=>{try{if(e===i&&e===c)return;const n=await tellSandboxEffort({effort:e});if(!n.ok)return void dlog(`[Effort] ${n.message}`);if(e!==i&&(await setReasoningEffort({modelId:s,effort:e}),o()),void 0===e||e===c)return;a?.recordEffortChange({model:s,effort:e})}catch(e){dlog(`[Effort] Failed to persist reasoning effort: ${e}`)}finally{n()}})()},"handleSelect"),d=__name(()=>{l.current||n()},"handleCancel");return ct.createElement(Tj,{modelLabel:i,supportedEfforts:a,currentEffort:getReasoningEffort(s),onSelect:c,onCancel:d})},"EffortSelector");function createBillingTransport(){const e=createApiClient({baseUrl:getApiBaseUrl()});return{get:__name(({route:n})=>e.get({endpoint:n}),"get"),post:__name(({route:n,body:o})=>e.post({endpoint:n,body:o}),"post"),postMultipart:__name(()=>Promise.reject(new Error("billing transport does not upload multipart")),"postMultipart"),delete:__name(({route:n})=>e.delete({endpoint:n}),"delete"),postStream:__name(()=>Promise.reject(new Error("billing transport does not stream")),"postStream")}}Jt(),hL(),Jt(),hL(),__name(createBillingTransport,"createBillingTransport");var Pj=null;function getBilling(){return Pj||(Pj=createBilling({transport:createBillingTransport()})),Pj}function getCachedBillingContext(){return Pj?.getCached()??null}function getBillingContext(){return getBilling().get()}function prefetchBillingContext(){getBilling().prefetch()}function invalidateBillingContext(){Pj=null}function buildLaneModelPickerGroups(){const e=filterModelGroupsByRegisteredModules($L).filter(e=>e.providerId!==qr.COMMAND);return[...buildModelPickerGroups({normalModeGroups:UL}),...e,...buildCustomModelPickerGroups()]}function buildCatalogModelPickerGroups(){return[...buildModelPickerGroups({normalModeGroups:UL}),...buildCustomModelPickerGroups()]}function laneServesModel(e){if(e.activeLane===qr.COMMAND)return!0;const n=Us[e.activeLane]?.supportedModelProviders;if(!n)return!0;const o=Object.values(RL).find(n=>n.id===e.modelId);return!o||laneSupportsModel(n,o)}function laneModelCount(e){return e.laneId===qr.COMMAND?UL.reduce((e,n)=>e+n.models.length,0):$L.find(n=>n.providerId===e.laneId)?.models.length??0}function defaultModelForLane(e){const n=filterModelGroupsByRegisteredModules($L),o=n.filter(n=>n.providerId===e.activeLane),r=o.length>0?o:n.filter(e=>e.providerId===qr.COMMAND);return r[0]?.models[0]?.id}async function resolveProviderAuth(e){const n=await Promise.all([...new Set(e)].map(async e=>{const n=getProviderConfig(e);if(!n?.requiresAuth)return null;if(!n.checkAuth)return{providerId:e,authed:!0};try{return{providerId:e,authed:await n.checkAuth()}}catch{return{providerId:e,authed:!1}}})),o=new Set,r=new Set;for(const e of n)e&&(o.add(e.providerId),e.authed||r.add(e.providerId));return{authResolvedProviders:o,unauthedProviders:r}}function useCustomModelsReady(e){const[n,o]=mt(!1);return gt(()=>{let n=!0;return(async()=>{await refreshCustomProviderModels(e?{sessionId:e}:void 0),n&&o(!0)})(),()=>{n=!1}},[e]),n}__name(getBilling,"getBilling"),__name(getCachedBillingContext,"getCachedBillingContext"),__name(getBillingContext,"getBillingContext"),__name(prefetchBillingContext,"prefetchBillingContext"),__name(invalidateBillingContext,"invalidateBillingContext"),Jt(),hL(),__name(buildLaneModelPickerGroups,"buildLaneModelPickerGroups"),__name(buildCatalogModelPickerGroups,"buildCatalogModelPickerGroups"),__name(laneServesModel,"laneServesModel"),__name(laneModelCount,"laneModelCount"),__name(defaultModelForLane,"defaultModelForLane"),Jt(),__name(resolveProviderAuth,"resolveProviderAuth"),Jt(),__name(useCustomModelsReady,"useCustomModelsReady"),Jt(),hL();var Mj=__name((e,n)=>{const o=n&&e.id===DL?t("default2"," (default)"):"",r="free"===e.badge?t("free"," (FREE)"):"";return Be(e.label+o+r)},"renderedLabelLength");function getModelLabelColumnWidth(e,{showDefaultBadge:n=!0}={}){return e.reduce((e,o)=>Math.max(e,Mj(o,n)+2),32)}__name(getModelLabelColumnWidth,"getModelLabelColumnWidth");var Ij=__name(({model:e,providerId:n,isHighlighted:o,isCurrent:r,showProviderLabel:s,showDefaultBadge:a=!0,labelColumnWidth:i=32})=>{const{t:l}=xt(),c=Us[n],d=s??c?.showProviderLabelInSelector??!1,u=e.vendorLabel??NL[e.provider],m=a&&e.id===DL,p="free"===e.badge,g=m?l("default3","{{v0}} (default)",{v0:e.label}):e.label,h=p?l("free"," (FREE)"):"",f=" ".repeat(Math.max(2,i-Be(g+h))),y=o?kD:void 0,v=e.description?`${d?`${u} · `:""}${translateUiCopy(e.description)}`:"",S=useTerminalWidth()>=i+38&&v;return ct.createElement(tt,null,ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:y,color:r?XO.GREEN:XO.WHITE,bold:r},g),p&&ct.createElement(nt,{backgroundColor:y,color:XO.GREEN,bold:!0},h),S&&ct.createElement(nt,{backgroundColor:y},f)),S&&ct.createElement(tt,{flexShrink:1},ct.createElement(nt,{backgroundColor:y,color:XO.DIM,wrap:"truncate-end"},v)),ct.createElement(nt,{backgroundColor:y,color:XO.GREEN},r?` ${vt.tick} `:" "))},"ModelRow");function windowModelGroups(e){const{groups:n,firstSectionBase:o,windowStart:r,windowEnd:s}=e;let a=o;return n.flatMap(e=>{const n=sliceSectionForWindow({section:e.models,sectionBase:a,windowStart:r,windowEnd:s});return a+=e.models.length,n.rows.length>0?[{group:e,groupWindow:n}]:[]})}Jt(),hL(),__name(windowModelGroups,"windowModelGroups");var Aj=__name(({onSelect:e,onCancel:n,currentModel:o,currentProvider:r,planId:s,purchasedCredits:a=0,freeCredits:i=0,refreshBanner:l,subtitle:c,skipEffortStep:d=!1,sessionId:u})=>{const{t:m}=xt(),[p,g]=mt(""),[h,f]=mt(null),[y,v]=mt(()=>new Set),[S,w]=mt(()=>new Set),k=r??h??qr.COMMAND,C=useCustomModelsReady(u),b=ut(()=>buildLaneModelPickerGroups(),[C]),T=ut(()=>filterModelPickerGroupsByAuth({groups:b,authResolvedProviders:S,unauthedProviders:y}),[b,S,y]),E=ut(()=>filterModelPickerGroups(T,p),[T,p]),P=ut(()=>{const e=new Set(T.map(e=>`${e.providerId}:${e.label}`));return b.filter(n=>!e.has(`${n.providerId}:${n.label}`))},[b,T]),M=ut(()=>filterModelPickerGroups(P,p),[P,p]),I=ut(()=>flattenModelPickerGroups(E),[E]),A=ut(()=>{const e=[];let n=0;for(const o of E)o.models.length>0&&e.push(n),n+=o.models.length;return e},[E]),x=ut(()=>getModelLabelColumnWidth(b.flatMap(e=>e.models)),[b,m]),[R,L]=mt(0),O=useTerminalHeight()-1,D=Math.max(4,O-16-2*E.length),N=void 0!==s,F=ut(()=>N?null:getCachedBillingContext(),[N]),[_,$]=mt(F),[U,B]=mt(!N&&!F);gt(()=>{if(N)return;if(_)return;let e=!0;return getBillingContext().then(n=>{e&&($(n),B(!1))}),()=>{e=!1}},[N,_]);const j=!N&&!0===_?.fetchFailed,W=N?s:_?.planId??null,H=N?a:_?.purchasedCredits??0,G=N?i:_?.freeCredits??0,V=o?Math.max(0,I.findIndex(e=>e.model.id===o)):0,[K,z]=mt("model"),[q,Y]=mt(null),{cursor:J,error:Q,setError:X}=useListNavigation({items:I,onSelect:__name(n=>{const o=n.model.reasoningEfforts??getSupportedEfforts(n.model.id);if(!d&&o&&o.length>0)return Y(n),void z("effort");e(n.model.id,n.providerId)},"onSelect"),onCancel:n,initialIndex:V,searchQuery:p,onSearchChange:g,isActive:"model"===K,sectionStarts:A,validate:__name(e=>validateModelPickerSelection({row:e,unauthedProviders:y,accessDataLoading:U,billing:{planId:W,purchasedCredits:H,freeCredits:G},getProviderDisplayName:__name(e=>getProviderConfig(e)?.displayName,"getProviderDisplayName")}),"validate")});gt(()=>{L(e=>clampScrollOffset({cursor:J,total:I.length,maxVisible:D,currentOffset:e}))},[J,I.length,D]);const Z=pt(!1),ee=__name(n=>{if(!q||Z.current)return;Z.current=!0;const{model:r,providerId:s}=q,a=getReasoningEffort(r.id),i=n!==a,c=r.id===o;(async()=>{try{if(i&&(await setReasoningEffort({modelId:r.id,effort:n}),c)){const e=await tellSandboxEffort({effort:n});e.ok||dlog(`[Model] ${e.message}`),l?.()}}catch(e){dlog(`[Model] Failed to persist reasoning effort: ${e}`)}finally{e(r.id,s)}})()},"handleEffortSelect"),te=__name(()=>{Z.current||(Y(null),z("model"))},"handleEffortCancel");if(gt(()=>{if(U)return;if(Q!==$M)return;const e=I[J];X(e&&!j?getModelPickerAccessError({model:e.model,providerId:e.providerId,billing:{planId:W,purchasedCredits:H,freeCredits:G}}):null)},[U,j,Q,X,I,J,W,H,G]),gt(()=>{(async()=>{const e=await getConfiguredProvider();e&&e!==qr.COMMAND&&f(e)})()},[]),gt(()=>{let e=!0;return(async()=>{const n=await resolveProviderAuth(b.map(e=>e.providerId));e&&(w(n.authResolvedProviders),v(n.unauthedProviders))})(),()=>{e=!1}},[b]),"effort"===K&&q){const e=q.model.reasoningEfforts??getSupportedEfforts(q.model.id)??[];return ct.createElement(Tj,{modelLabel:q.model.label,supportedEfforts:e,currentEffort:getReasoningEffort(q.model.id),onSelect:ee,onCancel:te})}const ne=R,oe=R+D,re=windowModelGroups({groups:E,firstSectionBase:0,windowStart:ne,windowEnd:oe}),se=I.length>D;return ct.createElement(oF,{title:m("selectModel2","Select model"),subtitle:c??m("switchBetweenTheAvailableModelsSetsTheDefaultForNewSessionsOtherOpenSessionsAreUnaffected","Switch between the available models. Sets the default for new sessions; other open sessions are unaffected."),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},m("typeToSearchNavigateShiftJumpProviderEnterToSelect","type to search · ↑/↓ navigate · shift+↑/↓ jump provider · enter to select"),p?m("escToClear"," · esc to clear"):m("escToCancel"," · esc to cancel"))},ct.createElement(tt,{marginBottom:2,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:p,resultCount:p?I.length:void 0,placeholder:m("typeToSearchModels","Type to search models...")})),0===I.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},M.length>0?m("providerLoginRequiredRunConnectToAuthenticate","Provider login required. Run /connect to authenticate."):m("noModelsMatch",'No models match "{{v0}}"',{v0:p}))):ct.createElement(tt,{flexDirection:"column"},re.map(({group:e,groupWindow:n},r)=>ct.createElement(tt,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:r>0?1:0},ct.createElement(nt,{bold:!0,dimColor:!0},e.label),n.rows.map((r,s)=>ct.createElement(Ij,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:n.baseIndex+s===J,isCurrent:r.id===o&&e.providerId===k,showProviderLabel:!1,labelColumnWidth:x}))))),se&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},m("showing","Showing")," ",ne+1,"–",Math.min(oe,I.length)," ",m("of","of")," ",I.length,ne>0?m("more3"," · ↑ more"):"",oe<I.length?m("more4"," · ↓ more"):"")),Q&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},Q)))},"ModelSelector");function store(){return createAuthFileCredentialStore({authStore:createCommandAuthFileStore({runtime:createNodeRuntime()})})}async function getCustomProviderKeyState(e){const n=await store().get({provider:e});if("api"===n?.kind&&n.token)return"stored";const o=(await loadProvidersConfig({runtime:createNodeRuntime()})).providers.find(n=>n.id===e);return o?.apiKey?"configured":o?.keyless?"keyless":"missing"}async function getConfiguredKeyReference(e){const n=await loadProvidersConfig({runtime:createNodeRuntime()});return n.providers.find(n=>n.id===e)?.apiKey}async function storeCustomProviderKey(e){await store().set({provider:e.providerId,credential:{kind:"api",token:e.key}})}async function getStoredKeyPreview(e){const n=await store().get({provider:e});if("api"===n?.kind&&n.token)return`${n.token.slice(0,8)}…`}async function getStoredKeyToken(e){const n=await store().get({provider:e});return"api"===n?.kind&&n.token?n.token:void 0}async function clearCustomProviderKey(e){await store().remove({provider:e})}Jt(),hL(),Jt(),hL(),__name(store,"store"),__name(getCustomProviderKeyState,"getCustomProviderKeyState"),__name(getConfiguredKeyReference,"getConfiguredKeyReference"),__name(storeCustomProviderKey,"storeCustomProviderKey"),__name(getStoredKeyPreview,"getStoredKeyPreview"),__name(getStoredKeyToken,"getStoredKeyToken"),__name(clearCustomProviderKey,"clearCustomProviderKey"),Jt(),hL(),Jt();var xj={"@ai-sdk/openai":"openai-responses","@ai-sdk/anthropic":"anthropic-messages","@ai-sdk/openai-compatible":"openai-completions"};function modelOverrides(e){if(!isPlainObject8(e))return{};const n=e.provider;if(!isPlainObject8(n))return{};if("string"!=typeof n.npm)return{};const o=xj[n.npm];if(void 0===o)return;const r="string"==typeof n.api&&n.api.startsWith("https://")&&!n.api.includes("${")?n.api.replace(/\/+$/,""):void 0;return{api:o,...void 0!==r?{baseURL:r}:{}}}function cachePath(){return o(K(),".commandcode","cache","models-dev.json")}function isPlainObject8(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}async function readCache(){try{const e=JSON.parse(await ce(cachePath(),"utf8"));if(!isPlainObject8(e.data))return null;const n=Date.now()-(e.fetchedAt??0);return{data:e.data,fresh:n>=0&&n<864e5}}catch{return null}}async function writeCache(e){try{const n=cachePath();await oe(r(n),{recursive:!0}),await Q(n,JSON.stringify({fetchedAt:Date.now(),data:e}))}catch{}}async function fetchCatalog(e){const n=new AbortController,o=setTimeout(()=>n.abort(),6e3);try{const o=await e("https://models.dev/api.json",{headers:{accept:"application/json"},signal:n.signal});if(!o.ok)return null;const r=await o.json();return isPlainObject8(r)?r:null}catch{return null}finally{clearTimeout(o)}}async function loadCatalog(e){const n=await readCache();if(n?.fresh)return n.data;const o=await fetchCatalog(e);return o?(await writeCache(o),o):n?.data??null}function asPositive(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?e:void 0}function urlParts(e){try{const n=new URL(e);return{host:n.hostname.toLowerCase(),path:n.pathname.replace(/\/+$/,"")||"/"}}catch{return}}function recordContains(e,n){if(e===n)return!0;const o="/"===e?"/":`${e}/`;return n.startsWith(o)}function curateModels(e){return isPlainObject8(e)?Object.entries(e).filter(e=>isPlainObject8(e[1])).filter(([,e])=>"deprecated"!==e.status).filter(([,e])=>{const n=isPlainObject8(e.modalities)?e.modalities.output:void 0;return!Array.isArray(n)||n.includes("text")}).sort(([,e],[,n])=>String(n.release_date??"").localeCompare(String(e.release_date??""))).flatMap(([e,n])=>{const o=modelOverrides(n);if(void 0===o)return[];const r=isPlainObject8(n.limit)?n.limit:void 0;return{id:e,...o,..."string"==typeof n.name&&n.name?{name:n.name}:{},...void 0!==asPositive(r?.context)?{contextWindow:asPositive(r?.context)}:{},...void 0!==asPositive(r?.output)?{maxOutput:asPositive(r?.output)}:{}}}):[]}__name(modelOverrides,"modelOverrides"),__name(cachePath,"cachePath"),__name(isPlainObject8,"isPlainObject"),__name(readCache,"readCache"),__name(writeCache,"writeCache"),__name(fetchCatalog,"fetchCatalog"),__name(loadCatalog,"loadCatalog"),__name(asPositive,"asPositive"),__name(urlParts,"urlParts"),__name(recordContains,"recordContains"),__name(curateModels,"curateModels");var Rj=new Set(["github-copilot","amazon-bedrock","google-vertex","azure"]);async function listModelsDevProviders(e){const n=await loadCatalog(e?.fetchImpl??globalThis.fetch);if(!n)return[];const o=[];for(const[e,r]of Object.entries(n)){if(!isPlainObject8(r))continue;if(Rj.has(e))continue;const n="string"==typeof r.api?r.api:void 0;if(!n||!n.startsWith("https://")||n.includes("${"))continue;const s=e.toLowerCase();o.push({id:"openai"===s||"anthropic"===s?`${s}-api`:s,name:"string"==typeof r.name&&r.name?r.name:e,baseURL:n.replace(/\/+$/,""),wire:"@ai-sdk/anthropic"===r.npm?"anthropic-messages":"openai-completions"})}return o}async function findModelsDevProvider(e){const n=urlParts(e.baseURL);if(!n)return null;const o=await loadCatalog(e.fetchImpl??globalThis.fetch);if(!o)return null;const r=[];for(const[e,s]of Object.entries(o)){if(!isPlainObject8(s))continue;const o="string"==typeof s.api?urlParts(s.api):void 0;o&&o.host===n.host&&r.push({slug:e,record:s,path:o.path})}if(0===r.length)return null;const s=r.filter(e=>recordContains(e.path,n.path)).sort((e,n)=>n.path.length-e.path.length),a=s[0]??(1===r.length?r[0]:void 0);if(!a)return null;if(s.length>1&&s[1]?.path===a.path)return null;const i=curateModels(a.record.models);if(0===i.length)return null;const l=Array.isArray(a.record.env)?a.record.env.find(e=>"string"==typeof e):void 0;return{slug:a.slug,displayName:"string"==typeof a.record.name&&a.record.name?a.record.name:a.slug,...l?{envVar:l}:{},models:i}}__name(listModelsDevProviders,"listModelsDevProviders"),__name(findModelsDevProvider,"findModelsDevProvider"),Jt();var Lj=[{id:"ollama",name:"Ollama (local)",baseURL:"http://localhost:11434/v1",wire:"openai-completions",keyless:!0},{id:"lmstudio",name:"LM Studio (local)",baseURL:"http://127.0.0.1:1234/v1",wire:"openai-completions",keyless:!0}],Oj=[{id:"vercel",name:"Vercel AI Gateway",baseURL:"https://ai-gateway.vercel.sh/v1",wire:"openai-completions"},{id:"groq",name:"Groq",baseURL:"https://api.groq.com/openai/v1",wire:"openai-completions"},{id:"mistral",name:"Mistral",baseURL:"https://api.mistral.ai/v1",wire:"openai-completions"},{id:"xai",name:"xAI",baseURL:"https://api.x.ai/v1",wire:"openai-completions"},{id:"together",name:"Together AI",baseURL:"https://api.together.xyz/v1",wire:"openai-completions"},{id:"cerebras",name:"Cerebras",baseURL:"https://api.cerebras.ai/v1",wire:"openai-completions"},{id:"deepinfra",name:"DeepInfra",baseURL:"https://api.deepinfra.com/v1/openai",wire:"openai-completions"},{id:"perplexity",name:"Perplexity",baseURL:"https://api.perplexity.ai",wire:"openai-completions"}],Dj=/^[a-z0-9._-]+$/;function hostOf2(e){try{return new URL(e).hostname.toLowerCase()}catch{return}}function fallbackProviderSuggestions(){return[...Oj,...Lj]}async function loadProviderSuggestions(e){let n=[];try{n=await listModelsDevProviders(e?.fetchImpl?{fetchImpl:e.fetchImpl}:void 0)}catch{}const o=n.filter(e=>Dj.test(e.id)).map(e=>({id:e.id,name:e.name,baseURL:e.baseURL,wire:e.wire})),r=[],s=new Set;for(const e of fallbackProviderSuggestions()){const n=o.find(n=>n.id===e.id||hostOf2(n.baseURL)===hostOf2(e.baseURL))??e;s.has(n.id)||(r.push(n),s.add(n.id))}return[...r,...o.filter(e=>!s.has(e.id)).sort((e,n)=>e.id.localeCompare(n.id))]}function matchKnownProviders(e){const n=e.query.trim().toLowerCase();return n?e.providers.filter(e=>e.id.startsWith(n)||e.name.toLowerCase().includes(n)).slice(0,e.limit??3):[]}function findKnownProvider(e){const n=e.id.trim().toLowerCase();return e.providers.find(e=>e.id===n)}__name(hostOf2,"hostOf"),__name(fallbackProviderSuggestions,"fallbackProviderSuggestions"),__name(loadProviderSuggestions,"loadProviderSuggestions"),__name(matchKnownProviders,"matchKnownProviders"),__name(findKnownProvider,"findKnownProvider"),Jt();var Nj=["/chat/completions","/completions","/responses","/messages","/models"];function normalizeEndpointInput(e){let n=e.trim().replace(/\/+$/,"");for(const e of Nj)if(n.toLowerCase().endsWith(e))return n=n.slice(0,-e.length).replace(/\/+$/,""),{url:n,stripped:e};return{url:n}}function asPositiveInt(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?Math.floor(e):void 0}function extractModels(e){const n=Array.isArray(e)?e:"object"==typeof e&&null!==e?e.data??e.models:void 0;if(!Array.isArray(n))return[];const o=new Map;for(const e of n){if("string"==typeof e){o.has(e)||o.set(e,{id:e});continue}if("object"!=typeof e||null===e)continue;const n=e,r="string"==typeof n.id?n.id:"string"==typeof n.name?n.name:void 0;if(!r||o.has(r))continue;const s="string"==typeof n.name&&n.name!==r?n.name:void 0,a=asPositiveInt(n.context_length)??asPositiveInt(n.context_window)??asPositiveInt(n.top_provider?.context_length),i=asPositiveInt(n.top_provider?.max_completion_tokens)??asPositiveInt(n.max_output_tokens)??asPositiveInt(n.max_tokens);o.set(r,{id:r,...s?{name:s}:{},...void 0!==a?{contextWindow:a}:{},...void 0!==i?{maxOutput:i}:{}})}return[...o.values()]}async function probeProviderModels(e){const n=e.fetchImpl??globalThis.fetch,o=e.baseURL.replace(/\/+$/,""),r=new AbortController,s=setTimeout(()=>r.abort(),e.timeoutMs??5e3);try{const s=await n(`${o}/models`,{headers:{accept:"application/json",...e.apiKey?{authorization:`Bearer ${e.apiKey}`,"x-api-key":e.apiKey}:{}},signal:r.signal});if(!s.ok)return{ok:!1,models:[],detail:`the endpoint answered ${s.status} on /models`};const a=extractModels(await s.json());return 0===a.length?{ok:!1,models:[],detail:"the endpoint listed no models"}:{ok:!0,models:a}}catch(e){return{ok:!1,models:[],detail:e instanceof Error&&("AbortError"===e.name||r.signal.aborted)?"no answer within 5s":"could not reach the endpoint"}}finally{clearTimeout(s)}}function ProvidersJsonLink({color:e=XO.DIM}){const n=`${K()}/.commandcode/providers.json`;return ct.createElement(_D,{url:`file://${n}`,text:"~/.commandcode/providers.json",color:e})}function toNewProviderModels(e){return e.map(e=>({id:e.id,...e.name?{name:e.name}:{},...void 0!==e.contextWindow?{contextWindow:e.contextWindow}:{},...void 0!==e.maxOutput?{maxOutput:e.maxOutput}:{},...e.api?{api:e.api}:{},...e.baseURL?{baseURL:e.baseURL}:{}}))}function cardKeyLine(e){return"stored"===e.keyState?ct.createElement(nt,null,t("key","key")," ",ct.createElement(nt,{color:XO.GREEN},e.keyPreview)," ",ct.createElement(nt,{color:XO.GREEN},"✓")," ",t("storedInAuthJson","stored in auth.json"),e.configuredReference?t("overrides"," · overrides {{v0}}",{v0:e.configuredReference}):""):"configured"===e.keyState?ct.createElement(nt,null,t("key","key")," ",e.configuredReference??"set"):"keyless"===e.keyState?ct.createElement(nt,null,t("noKeyTheEndpointAsksForNone","no key — the endpoint asks for none")):ct.createElement(nt,{color:XO.YELLOW},t("noKeyYetRequestsFailUntilOneIsAdded","no key yet, requests fail until one is added"))}function cardHints(e){const n=[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"u")," ",t("updateModels","update models")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"d")," ",t("delete","delete")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",t("close","close"))];return"stored"===e?[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",t("save","save")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"r")," ",t("replaceKey","replace key")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"c")," ",t("clear","clear")),...n]:"missing"===e?[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",t("addKey","add key")),...n]:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"r")," ",t("storeKey","store key")),...n]}function CustomProviderKeyEntry({providerId:e,providerName:n,keyState:o,keyPreview:r,configuredReference:s,onClose:a,onOpenModels:i,sessionId:l,onActiveModelOrphaned:c,onDiskDefaultOrphaned:d}){const{t:u}=xt(),[m,p]=mt(""),[g,h]=mt("card"),[f,y]=mt(void 0),[v,S]=mt(!1),[w,k]=mt(void 0),[C,b]=mt(void 0);ct.useEffect(()=>{let n=!0;return(async()=>{const o=(await loadProvidersConfig({runtime:createNodeRuntime()})).providers.find(n=>n.id===e);n&&o&&k({baseURL:o.baseURL,modelCount:o.models.length})})(),()=>{n=!1}},[e]);const T=__name(async()=>{h("removing");try{const n=isByok({model:getConfiguredModel()??"",providerId:e}),o=(await loadUserConfig()).model??"",r=!n&&isByok({model:o,providerId:e});await removeUserProviderEntry({runtime:createNodeRuntime(),id:e}),await clearCustomProviderKey(e),n?(await(c?.()),S(!0)):r&&await(d?.()),await refreshCustomProviderModels(l?{sessionId:l}:void 0),h("removed")}catch(e){y(e instanceof Error?e.message:String(e)),h("error")}},"removeProvider"),E=__name(async()=>{h("updating-models");try{const n=(await loadProvidersConfig({runtime:createNodeRuntime()})).providers.find(n=>n.id===e);if(!n)throw new Error(u("isNotInProvidersJson","'{{v0}}' is not in providers.json",{v0:e}));const o=await findModelsDevProvider({baseURL:n.baseURL}).catch(()=>null);let r,s;if(o&&o.models.length>0)r=toNewProviderModels(o.models),s=u("theModelRegistry","the model registry");else{const o=await getStoredKeyToken(e),a=await probeProviderModels({baseURL:n.baseURL,...o?{apiKey:o}:{}});if(!a.ok||0===a.models.length)throw new Error(u("couldnTFetchModels","couldn't fetch models — {{v0}}",{v0:a.detail??"no source answered"}));r=toNewProviderModels(a.models),s=u("theEndpoint","the endpoint")}const{count:a}=await updateUserProviderEntryModels({runtime:createNodeRuntime(),id:e,models:r});await refreshCustomProviderModels(l?{sessionId:l}:void 0),k(e=>e?{...e,modelCount:a}:e),b({count:a,source:s}),h("models-updated")}catch(e){y(e instanceof Error?e.message:String(e)),h("error")}},"updateModels");at((n,r)=>{if(r.escape){if("removing"===g||"updating-models"===g)return;return"entry"===g?(p(""),void h("card")):"confirm-remove"===g?void h("card"):void a()}if("entry"!==g||!r.leftArrow||m){if("card"===g)return"d"===n||"D"===n?void h("confirm-remove"):"r"===n||"R"===n?void h("entry"):"u"===n||"U"===n?void E():"stored"!==o||"c"!==n&&"C"!==n?"missing"===o&&r.return?void h("entry"):void(r.return&&a()):void clearCustomProviderKey(e).then(()=>h("cleared"),()=>h("error"));if("confirm-remove"!==g)return"saved"===g&&r.return?(a(),void i?.()):void("models-updated"===g&&r.return?h("card"):"cleared"!==g&&"removed"!==g&&"error"!==g||!r.return||a());"y"===n||"Y"===n?T():(r.return||n)&&h("card")}else h("card")});const P=__name(async()=>{const n=m.trim();if(n)try{await storeCustomProviderKey({providerId:e,key:n}),h("saved")}catch{h("error")}},"handleSubmit"),M=w?ct.createElement(ct.Fragment,null,w.baseURL," · ",w.modelCount," ",translateUiCopy(1===w.modelCount?"model":"models")," ",u("config","· config:")," ",ct.createElement(_D,{url:`file://${K()}/.commandcode/providers.json`,text:"providers.json",color:XO.DIM})):void 0;if("card"===g){const e=cardKeyLine({keyState:o,keyPreview:r,configuredReference:s}),a=cardHints(o);return ct.createElement(oF,{title:n,titleSuffix:ct.createElement(nt,{color:XO.DIM}," (byok)"),subtitle:M,footer:ct.createElement(YN,{hints:a,marginTop:0})},ct.createElement(tt,null,e))}return"confirm-remove"===g?ct.createElement(oF,{title:u("remove","Remove {{v0}}?",{v0:n}),subtitle:u("itsEntryModelsAndStoredKeyGoWithIt","Its entry, models, and stored key go with it"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"y")," ",u("remove2","remove")),u("anyOtherKeyKeepsIt","any other key keeps it")]})},ct.createElement(nt,null,u("deletesTheEntryFrom","Deletes the entry from")," ",ct.createElement(ProvidersJsonLink,null)," ",u("andClearsItsStoredKey","and clears its stored key."))):"removing"===g||"updating-models"===g?ct.createElement(oF,{title:n,rule:!1},ct.createElement(nt,null,"removing"===g?u("removing","Removing '{{v0}}'…",{v0:e}):u("refetchingModelsFor","Refetching models for '{{v0}}'…",{v0:e}))):"removed"===g?ct.createElement(oF,{title:u("removed","{{v0}} removed",{v0:n}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.DIM},u("providerDeletedFrom","Provider deleted from")," ",ct.createElement(ProvidersJsonLink,null)," ",u("storedKeyClearedItsModelsLeftModel","· stored key cleared · its models left /model"),v?u("itOwnedYourActiveModelSwitchedToYourLaneSDefault"," · it owned your active model — switched to your lane’s default"):"")):"models-updated"===g?ct.createElement(oF,{title:n,subtitle:M,footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("back","back")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.GREEN},u("modelsUpdated","Models updated —")," ",C?.count??0," ",u("declaredFrom","declared from")," ",C?.source??u("theRefetch","the refetch"),".")):"saved"===g?ct.createElement(oF,{title:u("keySavedFor","Key saved for {{v0}}",{v0:n}),subtitle:u("storedInCommandcodeAuthJson","Stored in ~/.commandcode/auth.json"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("pickAModel","pick a model")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",u("close","close"))]})}):"cleared"===g?ct.createElement(oF,{title:u("storedKeyClearedFor","Stored key cleared for {{v0}}",{v0:n}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.DIM},u("itsModelsStayListed","Its models stay listed"),s?u("theProvidersJsonKeyAppliesAgain"," — the providers.json key applies again"):u("requestsWillNeedAKeyAgain","; requests will need a key again"))):"error"===g?ct.createElement(oF,{title:u("couldNotUpdate","Could not update {{v0}}",{v0:n}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("close","close"))]})},ct.createElement(nt,{color:XO.DIM},f??u("checkThatCommandcodeIsWritableOrSetApikeyToAEnvVarReferenceInProvidersJson",'Check that ~/.commandcode is writable, or set "apiKey" to a "$ENV_VAR" reference in providers.json'))):ct.createElement(oF,{title:u("apiKeyFor","API key for {{v0}}",{v0:n}),subtitle:u("savedToCommandcodeAuthJsonUnderRequestsGoStraightToThisProviderWithYourKey","Saved to ~/.commandcode/auth.json under '{{v0}}'. requests go straight to this provider with your key",{v0:e}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",u("save","save")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",u("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},u("key2","key:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:m,onChange:p,onSubmit:()=>{P()},placeholder:u("pasteYourApiKey2","paste your API key…"),mask:"*",showCursor:!0}))))}function makeCustomProviderKeyEntry(e){return __name(function CustomProviderKeyEntryAdapter({onCancel:n}){return ct.createElement(CustomProviderKeyEntry,{providerId:e.providerId,providerName:e.providerName,keyState:e.keyState,keyPreview:e.keyPreview,configuredReference:e.configuredReference,onClose:n,onOpenModels:e.onOpenModels,sessionId:e.sessionId,onActiveModelOrphaned:e.onActiveModelOrphaned,onDiskDefaultOrphaned:e.onDiskDefaultOrphaned})},"CustomProviderKeyEntryAdapter")}function makeAddCustomProviderEntry(e={}){return __name(function AddCustomProviderAdapter({onCancel:n}){return ct.createElement(AddCustomProviderEntry,{onClose:n,onOpenModels:e.onOpenModels,sessionId:e.sessionId})},"AddCustomProviderAdapter")}__name(normalizeEndpointInput,"normalizeEndpointInput"),__name(asPositiveInt,"asPositiveInt"),__name(extractModels,"extractModels"),__name(probeProviderModels,"probeProviderModels"),__name(ProvidersJsonLink,"ProvidersJsonLink"),__name(toNewProviderModels,"toNewProviderModels"),__name(cardKeyLine,"cardKeyLine"),__name(cardHints,"cardHints"),__name(CustomProviderKeyEntry,"CustomProviderKeyEntry"),__name(makeCustomProviderKeyEntry,"makeCustomProviderKeyEntry"),__name(makeAddCustomProviderEntry,"makeAddCustomProviderEntry");var Fj=__name(()=>[{value:"openai-completions",label:t("openaiCompatible","OpenAI-compatible"),detail:t("chatCompletionsOllamaVllmLmStudioMostHostedApis","/chat/completions · Ollama, vLLM, LM Studio, most hosted APIs")},{value:"openai-responses",label:"OpenAI Responses",detail:t("responsesEndpointsSpeakingTheOpenaiResponsesApi","/responses · endpoints speaking the OpenAI Responses API")},{value:"anthropic-messages",label:t("anthropicWire","Anthropic wire"),detail:t("v1MessagesEndpointsSpeakingTheClaudeMessagesApi","/v1/messages · endpoints speaking the Claude Messages API")}],"WIRE_CHOICES");function cycleWire(e){const n=Fj().findIndex(n=>n.value===e.current),o=Fj().length,r=((e.forward?n+1:n-1)+o)%o;return Fj()[r]?.value??e.current}__name(cycleWire,"cycleWire");var _j=__name(()=>[["{",""],[' "provider": {',""],[' "openrouter": {',t("theIdYouTyped","the id you typed")],[' "baseURL": "https://openrouter.ai/api/v1",',t("apiRootNoRoute","API root, no route")],[' "apiKey": "$OPENROUTER_API_KEY",',t("referenceNeverARawKey","reference — never a raw key")],[' "models": { "openai/gpt-5.6": {} }',t("editAnytimeReloadsLive","edit anytime, reloads live")],[" }",""],[" }",""],["}",""]],"HELP_FILE_LINES");function endpointSubtitle(e){return e.prefilledName?t("prefilledForEditItOrPressEnterToAccept","Prefilled for {{v0}} — edit it or press enter to accept",{v0:e.prefilledName}):"anthropic-messages"===e.wire?t("theMessagesApiRootV1IsAddedOnTheWireWhenMissing","The Messages API root · /v1 is added on the wire when missing"):"openai-responses"===e.wire?t("theApiRootRequestsGoToResponsesIsAddedOnTheWire","The API root requests go to · /responses is added on the wire"):t("theApiRootRequestsGoToMostEndInV1","The API root requests go to · most end in /v1")}function endpointPlaceholder(e){return"anthropic-messages"===e?"https://api.example.com/anthropic":"openai-responses"===e?"https://api.example.com/v1":"http://localhost:11434/v1"}function idStepMatches(e){return"id"!==e.phase?[]:e.query.trim()?matchKnownProviders({query:e.query,providers:e.providers,limit:e.providers.length}):e.providers}function AddCustomProviderEntry({onClose:e,onOpenModels:n,sessionId:o}){const{t:r}=xt(),[s,a]=mt(""),[i,l]=mt("openai-completions"),[c,d]=mt(""),[u,m]=mt(""),[p,g]=mt(""),[h,f]=mt("id"),[y,v]=mt(()=>fallbackProviderSuggestions());ct.useEffect(()=>{let e=!0;return loadProviderSuggestions().then(n=>{e&&n.length>0&&v(n)}),()=>{e=!1}},[]);const[S,w]=mt(void 0),[k,C]=mt(null),[b,T]=mt(void 0),[E,P]=mt(void 0),M=ct.useRef(null),I=ct.useRef("api"),A=ct.useRef([]),[x,R]=mt(void 0),[L,O]=mt(0),[D,N]=mt(void 0),F=""===u.trim(),_=idStepMatches({phase:h,query:s,providers:y}),$=__name(e=>{A.current.push(h),f(e)},"goTo"),U=__name((e,n)=>{A.current.push(e),f(n)},"arriveFrom"),B=__name(()=>{const n=A.current.pop();T(void 0),P(void 0),n?f(n):e()},"goBack");at((o,r)=>{if("help"!==h){if(r.escape){if("saving"===h||"probing"===h)return;return"done"===h||"error"===h?void e():void B()}if(r.leftArrow&&("api"===h||"id"===h&&!s||"endpoint"===h&&!c||"key"===h&&!u||"manual-models"===h&&!p))B();else{if("api"===h&&("h"===o||"H"===o))return I.current=h,void f("help");if("id"!==h)return"api"===h?((r.upArrow||r.downArrow)&&l(e=>cycleWire({current:e,forward:!0===r.downArrow})),void(r.return&&$("endpoint"))):"done"===h&&r.return?(e(),void n?.()):void("error"===h&&r.return&&e());(r.upArrow||r.downArrow)&&_.length>0&&C(e=>{const n=_.length-1;if(null===e)return r.downArrow?0:n;const o=e+(r.downArrow?1:-1);return o<0?n:o>n?0:o})}}else f(I.current)});const j=__name(()=>{const e=null===k?void 0:_[k];if(e)return getCustomProviderModelsSync().some(n=>n.id===e.id)?void T(r("alreadyExistsSelectItInConnectToManageIt","'{{v0}}' already exists — select it in /connect to manage it.",{v0:e.id})):(T(void 0),a(e.id),w(e),l(e.wire),d(e.baseURL),C(null),void $("api"));const n=s.trim().toLowerCase();if(!n)return;if(!isValidProviderId(n))return void T(r("lowercaseLettersDigitsDotsDashesAndUnderscoresOnly","Lowercase letters, digits, dots, dashes and underscores only."));if(isReservedProviderId(n))return void T(r("isABuiltInSubscriptionLaneTryApi","'{{v0}}' is a built-in subscription lane — try '{{v1}}-api'.",{v0:n,v1:n}));if(getCustomProviderModelsSync().some(e=>e.id===n))return void T(r("alreadyExistsSelectItInConnectToManageIt","'{{v0}}' already exists — select it in /connect to manage it.",{v0:n}));T(void 0),a(n);const o=findKnownProvider({id:n,providers:y});w(o),o&&(l(o.wire),d(o.baseURL)),$("api")},"submitId"),W=__name(()=>{const{url:e,stripped:n}=normalizeEndpointInput(c);if(!e)return;let o;try{o=new URL(e)}catch{return void T(r("thatIsNotAUrlIncludeTheSchemeHttp","That is not a URL — include the scheme (http…)."))}if("http:"===o.protocol||"https:"===o.protocol){if(T(void 0),n)return d(e),void P(r("removedTheEndpointIsTheApiRoot","removed {{v0}} — the endpoint is the API root",{v0:n}));P(void 0),d(e),M.current=findModelsDevProvider({baseURL:e}).catch(()=>null),$("key")}else T(r("httpOrHttpsUrlsOnly","http:// or https:// URLs only."))},"submitEndpoint"),H=__name(async()=>{f("probing");const e=u.trim();let n=await probeProviderModels({baseURL:c,...e?{apiKey:e}:{}});n.ok||"anthropic-messages"!==i||c.endsWith("/v1")||(n=await probeProviderModels({baseURL:`${c}/v1`,...e?{apiKey:e}:{}})),n.ok&&n.models.length>0?await K(n.models):(R(n.detail),U("key","manual-models"))},"runProbe"),G=__name(async()=>{const e=u.trim();if(e)try{await storeCustomProviderKey({providerId:s,key:e})}catch{return N(r("theKeyCouldNotBeStoredCheckThatCommandcodeIsWritable","The key could not be stored — check that ~/.commandcode is writable.")),void f("error")}f("probing");const n=await M.current??null;n&&n.models.length>0?await K(n.models):await H()},"submitKey"),V=__name(()=>{const e=p.split(",").map(e=>e.trim()).filter(Boolean);0!==e.length&&K(e.map(e=>({id:e})))},"submitManualIds"),K=__name(async e=>{f("saving");try{await addUserProviderEntry({runtime:createNodeRuntime(),id:s,baseURL:c,api:i,keyless:F,models:toNewProviderModels(e)}),O(e.length),await refreshCustomProviderModels(o?{sessionId:o}:void 0),f("done")}catch(e){N(e instanceof Error?e.message:String(e)),f("error")}},"writeEntry"),z=b?ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.RED},b)):null,q=s.trim()?r("addAProvider","Add a provider · {{v0}}",{v0:s.trim().toLowerCase()}):r("addAProvider2","Add a provider");if("saving"===h||"probing"===h)return ct.createElement(oF,{title:q,rule:!1},ct.createElement(nt,null,"probing"===h?r("askingWhichModelsItServes","Asking {{v0}} which models it serves…",{v0:c}):r("writingToCommandcodeProvidersJson","Writing '{{v0}}' to ~/.commandcode/providers.json…",{v0:s})));if("done"===h)return ct.createElement(oF,{title:r("isSetUp","'{{v0}}' is set up",{v0:s}),subtitle:r("declared","{{v0}} {{v1}} declared{{v2}}",{v0:L,v1:translateUiCopy(1===L?"model":"models"),v2:F?" · keyless endpoint":" · key stored in auth.json"}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("pickAModel","pick a model")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("close","close"))]})},ct.createElement(nt,{color:XO.DIM},r("providerAddedTo","Provider added to")," ",ct.createElement(ProvidersJsonLink,null),r("editItAnytimeItReloadsLive",". Edit it anytime, it reloads live.")));if("error"===h)return ct.createElement(oF,{title:r("addingDidnTFinish","Adding '{{v0}}' didn't finish",{v0:s}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("close","close"))]})},ct.createElement(nt,{color:XO.DIM},D));if("help"===h)return ct.createElement(oF,{title:r("addingAProviderTheShortVersion","Adding a provider: the short version"),footer:ct.createElement(tt,{flexDirection:"column"},ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,r("docs","docs:")," ",ct.createElement(_D,{url:"https://commandcode.ai/docs/byok",text:"commandcode.ai/docs/byok",color:XO.DIM})),r("anyKeyToGoBack","any key to go back")]}))},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},r("providerIdNamesTheEntryIn","• provider id names the entry in")," ",ct.createElement(ProvidersJsonLink,null)," ",r("modelsSelectAsIdModel","· models select as id/model")),ct.createElement(nt,{color:XO.DIM},r("endpointIsTheBaseUrlRequestsGoToMostEndInV1","• endpoint is the base URL requests go to · most end in /v1")),ct.createElement(nt,{color:XO.DIM},r("pastedKeysGoToAuthJsonProvidersJsonOnlyEverHoldsEnvVarOrCommandReferences","• pasted keys go to auth.json · providers.json only ever holds $ENV_VAR or !command references")),ct.createElement(nt,{color:XO.DIM},r("noKeyNeededPressEnterOnTheEmptyKeyFieldLocalServers","• no key needed? press enter on the empty key field (local servers)")),ct.createElement(nt,{color:XO.DIM},r("modelsYouCanImportTheFetchedListProbeTheEndpointAposSModelsRouteOrTypeIdsByHandIdsYouLeaveUndeclaredStillRunAsIdModel","• models: you can import the fetched list, probe the endpoint&apos;s /models route, or type ids by hand. Ids you leave undeclared still run as id/model")),ct.createElement(nt,{color:XO.DIM},r("the","• the")," ",ct.createElement(ProvidersJsonLink,null)," ",r("fileIsYoursEditItAnytimeItReloadsLiveManageItFromConnect","file is yours · edit it anytime, it reloads live · manage it from /connect")),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},r("whatItWrites","what it writes:")),_j().map(([e,n])=>ct.createElement(nt,{key:e},ct.createElement(nt,{color:XO.CYAN}," ",e),n?ct.createElement(nt,{color:XO.DIM}," ","// ",n):null)))));if("manual-models"===h)return ct.createElement(oF,{title:q,subtitle:x?r("couldnTListModelsAutomatically","Couldn't list models automatically — {{v0}}",{v0:x}):r("whichModelsDoesServe","Which models does {{v0}} serve?",{v0:s}),footer:ct.createElement(YN,{marginTop:0,hints:[r("commaSeparatedExactIds","comma-separated, exact ids"),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("save","save")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("models","models:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:p,onChange:g,onSubmit:V,placeholder:"llama3.3:70b, qwen2.5-coder:32b",showCursor:!0}))));if("key"===h)return ct.createElement(oF,{title:q,subtitle:r("keysLiveInCommandcodeAuthJsonNeverInProvidersJson","Keys live in ~/.commandcode/auth.json, never in providers.json"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("save","save")),r("emptyEnterKeylessLocalServers","empty enter = keyless (local servers)"),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("key2","key:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:u,onChange:m,onSubmit:()=>{G()},placeholder:r("pasteItOrPressEnterIfNoneIsNeeded","paste it — or press enter if none is needed"),mask:"*",showCursor:!0}))));if("api"===h)return ct.createElement(oF,{title:q,subtitle:r("whatDoesTheEndpointSpeak","What does the endpoint speak?"),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"↑/↓")," ",r("switch","switch")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("continue","continue")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"h")," ",r("help","help")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{flexDirection:"column"},Fj().map(e=>ct.createElement(nt,{key:e.value},i===e.value?"❯ ":" ",ct.createElement(nt,{bold:i===e.value},e.label),ct.createElement(nt,{color:XO.DIM}," · ",e.detail)))));if("endpoint"===h){const e=S&&c===S.baseURL;return ct.createElement(oF,{title:q,subtitle:endpointSubtitle({prefilledName:e?S.name:void 0,wire:i}),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("continue","continue")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("back","back"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("baseUrl","base URL:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:c,onChange:e=>{d(e),T(void 0),P(void 0)},onSubmit:W,placeholder:endpointPlaceholder(i),showCursor:!0}))),E&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},E)),z)}const Y=null===k?0:Math.min(Math.max(0,k-6+1),Math.max(0,_.length-6)),J=_.slice(Y,Y+6),Q=_.length-(Y+J.length);return ct.createElement(oF,{title:r("addAProvider2","Add a provider"),subtitle:r("pickAKnownProviderBelowOrTypeYourOwnId","Pick a known provider below, or type your own id."),footer:ct.createElement(YN,{marginTop:0,hints:[ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"↑/↓")," ",r("pickFromTheList","pick from the list")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"enter")," ",r("continue","continue")),ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"esc")," ",r("close","close"))]})},ct.createElement(tt,{borderStyle:"single",borderColor:XO.YELLOW,paddingX:1,width:"100%"},ct.createElement(nt,{color:XO.DIM},r("providerId","provider id:")," "),ct.createElement(tt,{flexGrow:1},ct.createElement(TextInput,{value:s,onChange:e=>{a(e),T(void 0),C(null)},onSubmit:j,placeholder:"ollama, work-llm, openrouter…",showCursor:!0}))),z,J.length>0&&ct.createElement(tt,{flexDirection:"column",marginTop:1},J.map((e,n)=>{const o=null!==k&&Y+n===k;return ct.createElement(tt,{key:e.id},ct.createElement(s$,{isSelected:o}),ct.createElement(a$,{isSelected:o,idleColor:XO.DIM},` ${e.id}`),ct.createElement(nt,{color:XO.DIM}," ","· ",e.baseURL))}),(Y>0||Q>0)&&ct.createElement(nt,{color:XO.DIM}," ",Y>0?r("more","↑ {{v0}} more · ",{v0:Y}):"",Q>0?r("more2","↓ {{v0}} more",{v0:Q}):"")))}__name(endpointSubtitle,"endpointSubtitle"),__name(endpointPlaceholder,"endpointPlaceholder"),__name(idStepMatches,"idStepMatches"),__name(AddCustomProviderEntry,"AddCustomProviderEntry"),Jt(),hL();var $j="__add-custom-provider__";async function invalidateHarnessForLaneSwitch(e){e&&await rebuildHarnessSession(e)}function showProviderNotification({setShowProviderNotification:e,providerNotificationTimer:n}){n.current&&clearTimeout(n.current),e(!0),n.current=setTimeout(()=>{e(!1),n.current=null},FI)}async function handleProviderSelect({provider:e,setCurrentProvider:n,setShowProviderSelector:o,setAuthComponentInfo:r,setStatus:s,setShowProviderNotification:a,providerNotificationTimer:i,setShowModelSelector:l,sessionId:c,onActiveModelOrphaned:d,onDiskDefaultOrphaned:u}){if(e===$j)return o(!1),r({provider:e,Component:makeAddCustomProviderEntry({...l?{onOpenModels:__name(()=>l(!0),"onOpenModels")}:{},...c?{sessionId:c}:{}})}),{switched:!1};const m=getCustomProviderModelsSync().find(n=>n.id===e);if(m){const n=await getCustomProviderKeyState(e),s="stored"===n?await getStoredKeyPreview(e):void 0,a=await getConfiguredKeyReference(e);return o(!1),r({provider:e,Component:makeCustomProviderKeyEntry({providerId:m.id,providerName:m.name,keyState:n,keyPreview:s,configuredReference:a,onOpenModels:l?()=>l(!0):void 0,sessionId:c,onActiveModelOrphaned:d,onDiskDefaultOrphaned:u})}),{switched:!1}}const p=getProviderConfig(e),g=p?.authComponent,h=await resolveProviderSelection({provider:e,requiresAuth:p?.requiresAuth,hasAuthFlow:Boolean(g),checkAuth:p?.checkAuth});return"auth-required"===h.status?(g&&r({provider:e,Component:g}),{switched:!1}):"error"===h.status?(s(h.statusMessage),o(!1),{switched:!1}):(n(e),await invalidateHarnessForLaneSwitch(c),o(!1),s(h.statusMessage),showProviderNotification({setShowProviderNotification:a,providerNotificationTimer:i}),{switched:!0})}function handleProviderCancel({setShowProviderSelector:e}){e(!1)}async function handleAuthSuccess({authComponentInfo:e,setAuthComponentInfo:n,setShowProviderSelector:o,setCurrentProvider:r,setStatus:s,setShowProviderNotification:a,providerNotificationTimer:i,sessionId:l}){return e?(n(null),o(!1),r(e.provider),await invalidateHarnessForLaneSwitch(l),s(buildProviderAuthSuccessStatus(e.provider)),showProviderNotification({setShowProviderNotification:a,providerNotificationTimer:i}),{switchedProvider:e.provider}):{switchedProvider:null}}function handleAuthCancel({setAuthComponentInfo:e}){e(null)}__name(invalidateHarnessForLaneSwitch,"invalidateHarnessForLaneSwitch"),__name(showProviderNotification,"showProviderNotification"),__name(handleProviderSelect,"handleProviderSelect"),__name(handleProviderCancel,"handleProviderCancel"),__name(handleAuthSuccess,"handleAuthSuccess"),__name(handleAuthCancel,"handleAuthCancel");var Uj=__name(({onSelect:e,onCancel:n,sessionId:o})=>{const{t:r}=xt(),[s,a]=ct.useState(()=>getCustomProviderModelsSync()),[i,l]=ct.useState(()=>getCustomProviderWarningsSync()),[c,d]=ct.useState({});ct.useEffect(()=>{let e=!0;return(async()=>{const{providers:n}=await refreshCustomProviderModels(o?{sessionId:o}:void 0);if(!e)return;a(n),l(getCustomProviderWarningsSync());const r=await Promise.all(n.map(async e=>[e.id,await getCustomProviderKeyState(e.id)]));e&&d(Object.fromEntries(r))})(),()=>{e=!1}},[o]);const[u,m]=ct.useState({});ct.useEffect(()=>{let e=!0;return(async()=>{const n=getProviderOptions().filter(e=>isProviderLaneListable({providerId:e.value})),o=await Promise.all(n.map(async e=>{const n=getProviderConfig(e.value);if(!n?.requiresAuth||!n.checkAuth)return[e.value,!0];try{return[e.value,await n.checkAuth()]}catch{return[e.value,!1]}}));e&&m(Object.fromEntries(o))})(),()=>{e=!1}},[]);const p=__name(e=>{const n=u[e];if(void 0===n)return"";if(!n)return r("notConnected","○ not connected");const o=laneModelCount({laneId:e});return o>0?`✓ ${r("providerModelCount","{{count}} model",{count:o})}`:"✓"},"laneStatus"),g=__name((e,n)=>{const o=c[e];if("missing"===o)return r("needsAKey","○ needs a key");const s=r("providerModelCount","{{count}} model",{count:n});return void 0===o?s:`✓ ${s}`},"customStatus"),h=[...getProviderOptions().filter(e=>isProviderLaneListable({providerId:e.value})).map(e=>({label:"command-code"===e.value?r("recommended","{{v0}} (recommended)",{v0:getProviderDisplayName(e.value)}):getProviderDisplayName(e.value),value:e.value,status:p(e.value),notLive:!1===u[e.value]})),...s.map(e=>({label:e.name,value:e.id,status:g(e.id,e.models.length),notLive:"missing"===c[e.id]})),{label:r("byokAddYourOwnProvider","(BYOK) Add your own provider"),value:$j,status:"",notLive:!1}],f=Math.max(42,...h.map(e=>Be(e.label)+12)),y=new Map(h.map(e=>[e.label,e])),v=__name(n=>{e(n.value)},"handleSelect");return at((e,o)=>{o.escape&&n()}),ct.createElement(oF,{title:r("connect","Connect"),subtitle:r("connectToAiProvidersAndSeeCurrentlyConnectedProviders","Connect to AI providers and see currently connected providers"),hint:r("navigateEnterSelectEscClose","↑/↓ navigate · enter select · esc close")},ct.createElement(SelectInput,{items:h.map(e=>({label:e.label,value:e.value})),onSelect:v,initialIndex:0,indicatorComponent:s$,itemComponent:({isSelected:e,label:n})=>{const o=y.get(n??"");return ct.createElement(tt,null,ct.createElement(a$,{isSelected:e,...o?.notLive?{idleColor:XO.DIM}:{}},` ${n??""}${" ".repeat(Math.max(0,f-Be(n??"")))}`,o?.status.startsWith("✓")?ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.GREEN},"✓"),o.status.slice(1)):o?.status??""))}}),i.length>0&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.YELLOW},ct.createElement(ProvidersJsonLink,{color:XO.YELLOW})," ",r("needsAttention","needs attention —")," ",1===i.length?r("oneEntry","one entry"):r("someEntries","some entries")," ",r("didNotLoadAsWritten","did not load as written:")),i.slice(0,3).map(e=>ct.createElement(nt,{key:e,color:XO.DIM}," ",e)),i.length>3&&ct.createElement(nt,{color:XO.DIM}," ",r("and","… and")," ",i.length-3," ",r("more5","more"))))},"ProviderSelector");Jt(),hL(),Jt(),hL(),Jt();var Bj=new Map,jj=new Set;function subscribeAgentSlashCommands(e){return jj.add(e),()=>{jj.delete(e)}}function enqueueAgentSlashCommand(e){const n={command:e.command,source:e.source??"agent"},o=Bj.get(e.sessionId);o?o.push(n):Bj.set(e.sessionId,[n]);for(const e of[...jj])e()}function drainAgentSlashCommands(e){const n=Bj.get(e.sessionId);return n&&0!==n.length?(Bj.delete(e.sessionId),n):[]}function hasAgentSlashCommands(e){return(Bj.get(e.sessionId)?.length??0)>0}__name(subscribeAgentSlashCommands,"subscribeAgentSlashCommands"),__name(enqueueAgentSlashCommand,"enqueueAgentSlashCommand"),__name(drainAgentSlashCommands,"drainAgentSlashCommands"),__name(hasAgentSlashCommands,"hasAgentSlashCommands");var Wj=__name(e=>"remote"===e?"remote":"agent","originOf"),Hj="Only you can run /rc — connecting the bot or changing who may use it is yours to decide, not mine. /rc status and /rc disconnect still work.";function refuseAgentSlashCommand(e){const[n,o]=e.trim().replace(/^\//,"").split(/\s+/);if("rc"===n&&"status"!==o&&"off"!==o&&"disconnect"!==o)return Hj}__name(refuseAgentSlashCommand,"refuseAgentSlashCommand"),Jt(),hL(),Jt(),hL();var Gj=__name(e=>Buffer.byteLength(e,"utf8")<=64,"fits"),Vj=__name((e,n)=>e===n?"✓ ":"","mark");function chunk(e){const n=[];for(let o=0;o<e.length;o+=2)n.push([...e.slice(o,o+2)]);return n}function buildRemoteModelMenu(e){const n=[t("selectModel2","Select model"),t("pickOneOrSendModelId","Pick one, or send /model <id>")],o=[];for(const n of e.groups)for(const r of n.models){const n=encodeValueCallback({command:"model",value:r.id});Gj(n)&&o.push({text:`${Vj(r.id,e.currentModel)}${r.name}`,data:n})}return 0===e.groups.length?{text:t("providerLoginRequiredRunConnectToAuthenticate","Provider login required. Run /connect to authenticate."),buttons:[]}:{text:n.join("\n").trimEnd(),buttons:chunk(o)}}async function resolveRemoteModelMenu(e){const n=buildLaneModelPickerGroups(),[o,r]=await Promise.all([getBillingContext(),resolveProviderAuth(n.map(e=>e.providerId))]);return buildRemoteModelMenu({currentModel:e,groups:filterModelPickerGroupsByPlan({groups:filterModelPickerGroupsByAuth({groups:n,...r}),billing:o})})}__name(chunk,"chunk"),__name(buildRemoteModelMenu,"buildRemoteModelMenu"),__name(resolveRemoteModelMenu,"resolveRemoteModelMenu");var Kj=__name((e,n)=>e===n?"✓ ":"","mark");async function effortMenu(){const e=getConfiguredModel(),n=getSupportedEfforts(e);if(!n||0===n.length)return{text:t("thisModelHasNoReasoningEffortToSet","This model has no reasoning effort to set."),buttons:[]};const o=getReasoningEffort(e);return{text:t("reasoningEffortTapOneOrSendEffortLevel","Reasoning effort\nTap one, or send /effort <level>\n\n{{v0}}",{v0:n.join(", ")}),buttons:[n.map(e=>({text:`${Kj(e,o)}${e}`,data:encodeValueCallback({command:"effort",value:e})}))]}}__name(effortMenu,"effortMenu");var zj=__name(e=>{const n=getSupportedEfforts(getConfiguredModel());return n&&0!==n.length?n.includes(e.toLowerCase())?void 0:t("isNotALevelTry",'"{{v0}}" is not a level. Try: {{v1}}.',{v0:e,v1:n.join(", ")}):t("thisModelHasNoReasoningEffortToSet","This model has no reasoning effort to set.")},"rejectEffort");function cliSummary(e){const n=bi.find(n=>n.command===`/${e}`);return n?localizeSlashDescription(n.command,n.description):e}__name(cliSummary,"cliSummary");var qj=__name(()=>[{name:"model",summary:cliSummary("model"),argument:t("aModelIdOrLeaveEmptyForTheList","a model id, or leave empty for the list"),menu:__name(()=>resolveRemoteModelMenu(getConfiguredModel()),"menu")},{name:"effort",summary:cliSummary("effort"),argument:t("aLevelOrLeaveEmptyForTheList","a level, or leave empty for the list"),menu:effortMenu,reject:zj},{name:"compact",summary:cliSummary("compact"),menu:__name(async()=>({text:t("compacting","Compacting…"),buttons:[]}),"menu")},{name:"clear",summary:cliSummary("clear"),menu:__name(async()=>({text:t("cleared","Cleared."),buttons:[]}),"menu")}],"SPECS"),Yj=__name(()=>[{name:"status",summary:t("thisSessionItsModelAndWhetherItAsksFirst","this session, its model, and whether it asks first")},{name:"stop",summary:t("interruptWhateverItIsDoing","interrupt whatever it is doing")},{name:"help",summary:t("whatYouCanSend","what you can send")}],"BRIDGE_COMMANDS"),Jj=new Map(qj().map(e=>[e.name,e])),Qj=__name(e=>Jj.get(e.toLowerCase()),"findRemoteCommand"),Xj=new Set(["model","effort"]),Zj=__name(e=>Xj.has(e),"needsMenu"),eW=__name(()=>[...qj().map(({name:e,summary:n,argument:o})=>({name:e,summary:n,argument:o})),...Yj()],"listRemoteCommands");function buildRemoteHelp(){return[t("whatYouCanSend2","What you can send"),"",...eW().map(e=>`/${e.name}: ${e.summary}`),"",t("anythingElseIsAPromptForTheAgent","Anything else is a prompt for the agent.")].join("\n")}__name(buildRemoteHelp,"buildRemoteHelp");var tW=Hj,nW=__name(e=>void 0!==e.origin&&"user"!==e.origin,"isUntrustedDispatch"),oW=__name(e=>"remote"===e.origin?t("rcOnlyWorksAtTheTerminalTheBotCannotReconfigureItselfFromTheChatStatusAndStopWorkFromHere","/rc only works at the terminal. The bot cannot reconfigure itself from the chat. /status and /stop work from here."):tW,"untrustedRefusal");function info(e,n){e.setFeed(e=>[...e,Zh(n)])}__name(info,"info");var rW=__name(()=>getModelShortName({modelId:getConfiguredModel(),findModelById:findModelById}),"shortModelName");function shortPath(e){const n=e.split("/").filter(Boolean);return n.length<=2?e:`…/${n.slice(-2).join("/")}`}function sessionLabel(){const e=process.cwd(),n=getCurrentBranch({cwd:e}),o=getPackageJson(import.meta.url).version||"0.0.0",r=`${d(e)}${n?` (${n})`:""}`;return[`Command Code v${o}`,rW(),r].join(" · ")}function sessionInfo(){const e=process.cwd();return{version:getPackageJson(import.meta.url).version||"0.0.0",model:rW(),repo:d(e),branch:getCurrentBranch({cwd:e})||void 0}}__name(shortPath,"shortPath"),__name(sessionLabel,"sessionLabel"),__name(sessionInfo,"sessionInfo");var sW=__name(e=>"discord"===e?"Discord":"Telegram","platformName"),aW={on:"default",default:"default","auto-accept":"auto-accept",bypass:"bypass",yolo:"bypass"};function modeBehaviour(e){return"bypass"===e?t("itNeverAsksBeforeEditingFilesOrRunningCommands","it never asks before editing files or running commands"):"auto-accept"===e?t("itEditsFilesOnItsOwnAndAsksInTheChatBeforeRunningCommands","it edits files on its own, and asks in the chat before running commands"):t("itAsksYouInTheChatBeforeEachNewTool","it asks you in the chat before each new tool")}__name(modeBehaviour,"modeBehaviour");var iW=/failed|rejected|unauthorized|not acknowledged|no content|waiting on|reconnected/i,lW=__name(e=>n=>{iW.test(n)&&info(e,t("remote","Remote: {{v0}}",{v0:n}))},"bridgeLogger"),cW=__name(e=>{const n=Date.parse(e);if(Number.isNaN(n))return"unknown";const o=Math.max(0,Math.round((Date.now()-n)/6e4));return o<1?t("justNow","just now"):o<60?t("mAgo","{{v0}}m ago",{v0:o}):t("hAgo","{{v0}}h ago",{v0:Math.round(o/60)})},"sinceLabel");function describeLockHolder(e){return[e.label??"Command Code",` ${shortPath(e.cwd)}`,t("startedPid"," started {{v0}} · pid {{v1}}",{v0:cW(e.startedAt),v1:e.pid})].join("\n")}function applyPermissionMode(e,n){const o=e.permissionModeRef.current;return e.permissionModeRef.current=n,e.setPermissionMode(n),hO(e.sessionId)?.setPermissionMode({mode:n}),o}__name(describeLockHolder,"describeLockHolder"),__name(applyPermissionMode,"applyPermissionMode");var dW,uW,mW=__name(()=>new Promise(e=>{const n=setTimeout(e,400);n.unref?.()}),"handoverPause");function takeRcSelectorStep(){const e=dW;return dW=void 0,e}__name(takeRcSelectorStep,"takeRcSelectorStep");var pW=!1;function registerExitRelease(){pW||(pW=!0,process.once("exit",()=>{releaseRemoteLockSync()}))}async function buildRcStatusMessage(e){const n=getActiveRemote(),o=await yW(),r=resolveRemoteSettings(await loadRemoteConfig(),process.env,o),s=await readRemoteLock(),a=!n&&s&&s.pid!==process.pid?["",t("anotherSessionHasTheBot","Another session has the bot:"),describeLockHolder(s),t("runRcToTakeItOver","Run /rc to take it over.")]:[],i=n?t("onViaInMode","on via {{v0}} in {{v1}} mode, {{v2}}",{v0:n.platform,v1:modeLabel(n.mode),v2:modeBehaviour(n.mode)}):translateUiCopy("off"),l=n&&e?[` ${sessionLabel()}`]:[];return[t("remoteControl","Remote control: {{v0}}",{v0:i}),...l,t("tokenAllowedUser"," {{v0}} token: {{v1}} · allowed user: {{v2}}",{v0:sW(o),v1:r.token?translateUiCopy("configured"):translateUiCopy("not set"),v2:r.allowedUserId??translateUiCopy("not set")}),t("credentials"," credentials: {{v0}}",{v0:remoteConfigPath()}),...a].join("\n")}__name(registerExitRelease,"registerExitRelease"),__name(buildRcStatusMessage,"buildRcStatusMessage");var gW=__name(e=>"discord"===e?wU(sessionInfo()):XU(sessionInfo()),"farewellFor");function stopRemote(e,n={}){const o=getActiveRemote();if(!o)return void info(e,t("remoteControlIsNotRunning","Remote control is not running."));if(o.restoreMode&&applyPermissionMode(e,o.restoreMode),uW?.(),uW=void 0,!n.clearChat)return shutdownActiveRemote(),releaseRemoteLock(),void info(e,t("remoteControlStopped","Remote control stopped."));const{bridge:r}=o;clearActiveRemote(),(async()=>{const n=await r.clearSentMessages();getActiveRemote()||await releaseRemoteLock(),info(e,0===n?t("remoteControlStoppedNothingOfMineLeftInTheChat","Remote control stopped. Nothing of mine left in the chat."):t("remoteControlStoppedAndMessageSClearedFromTheChatYourOwnMessagesStayBecauseABotCanOnlyDeleteItsOwnAndOnlyFor48Hours","Remote control stopped, and {{v0}} message(s) cleared from the chat. Your own messages stay, because a bot can only delete its own, and only for 48 hours.",{v0:n}))})()}__name(stopRemote,"stopRemote");var hW=__name(e=>({pid:process.pid,cwd:process.cwd(),sessionId:e,startedAt:(new Date).toISOString(),label:sessionLabel()}),"lockInfoFor");function surrenderRemote(e){const n=getActiveRemote();n&&(n.restoreMode&&applyPermissionMode(e,n.restoreMode),shutdownActiveRemote(),info(e,t("remoteControlMovedToAnotherSessionWhichTookOverTheBotRunRcHereToTakeItBack","Remote control moved to another session, which took over the bot. Run /rc here to take it back.")))}function buildBridge(e){const n={allowedUserId:e.allowedUserId,onMessage:emitRemoteMessage,onChoice:emitRemoteChoice,onLog:e.onLog,label:__name(()=>"discord"===e.provider?CU(sessionInfo()):ZU(sessionInfo()),"label")},o=__name(e=>e>0?t("skippedMessageSQueuedWhileNoSessionWasConnected","Skipped {{v0}} message(s) queued while no session was connected.",{v0:e}):void 0,"skippedNote"),r=__name((n,r)=>{const s="discord"===e.provider?discordConnectBanner:telegramConnectBanner;n.announce(s({info:sessionInfo(),note:o(r)}))},"announceReady");if("discord"===e.provider){const o=createDiscordClient({token:e.token}),s=createDiscordBridge({...n,client:o,channelId:e.channelId??"",threadName:sessionLabel(),commands:eW().map(e=>({name:e.name,description:e.summary,argument:e.argument})),connect:__name(n=>createDiscordGateway({token:e.token,onDispatch:n.onDispatch,onReady:n.onReady,onFatal:n.onFatal,onLog:e.onLog}),"connect"),onFatal:e.onFatal,onReady:__name(({skippedUpdates:e})=>r(s,e),"onReady")});return s}const s=createRemoteBridge({...n,client:createTelegramClient({token:e.token}),onReady:__name(({skippedUpdates:e})=>r(s,e),"onReady")});return s}__name(surrenderRemote,"surrenderRemote"),__name(buildBridge,"buildBridge");var fW=__name(e=>"telegram"===e,"needsExclusiveBot");async function claimBot(e,n){const o=hW(e.sessionId);if(uW?.(),uW=void 0,n)await takeoverRemoteLock(o),await mW();else{const n=await acquireRemoteLock(o);if(!n.ok)return info(e,n.holder?t("theBotIsAttachedToAnotherSessionRunRcAndPickTakeItOverToMoveItHere",'The bot is attached to another session:\n{{v0}}\n\nRun /rc and pick "Take it over" to move it here.',{v0:describeLockHolder(n.holder)}):t("theBotIsAttachedToAnotherSessionRunRcToTakeItOver","The bot is attached to another session. Run /rc to take it over.")),!1}return registerExitRelease(),uW=watchRemoteLock({pid:process.pid,onLost:__name(()=>surrenderRemote(e),"onLost")}),!0}__name(claimBot,"claimBot");var yW=__name(async()=>resolveDefaultProvider({config:await loadRemoteConfig(),active:getActiveRemote()?.provider}),"defaultProvider");async function startRemote(e,n,o={}){const r=o.provider??await yW(),s=resolveRemoteSettings(await loadRemoteConfig(),process.env,r);if(!s.token||!s.allowedUserId)return info(e,t("notSetUpYetRunRcAndItWalksYouThroughIt","Not set up yet. Run /rc and it walks you through it.")),!1;if("discord"===r&&!s.channelId)return info(e,t("notSetUpYetRunRcAndItWalksYouThroughIt","Not set up yet. Run /rc and it walks you through it.")),!1;if(fW(r)&&!await claimBot(e,!0===o.takeover))return!1;const a=buildBridge({provider:r,token:s.token,allowedUserId:s.allowedUserId,channelId:s.channelId,onLog:lW(e),onFatal:__name(n=>{info(e,t("discordDisconnected","Discord disconnected: {{v0}}",{v0:n})),stopRemote(e)},"onFatal")}),i=getActiveRemote()?.restoreMode??e.permissionModeRef.current;return applyPermissionMode(e,n),setActiveRemote({bridge:a,mode:n,provider:r,platform:sW(r),farewell:gW(r),restoreMode:i}),a.start(),info(e,t("remoteControlIsOnSendAMessageHereOrOnToContinueOrRcToDisconnect","Remote control is on. Send a message here or on {{v0}} to continue, or /rc to disconnect.",{v0:sW(r)})),!0}async function restartActiveRemote(e){const n=getActiveRemote();n&&(info(e,t("restartingRemoteControlWithTheNewSettings","Restarting remote control with the new settings…")),await startRemote(e,n.mode,{provider:n.provider}))}function disconnect(e,n){const o=getActiveRemote();o?n.provider&&n.provider!==o.provider?info(e,t("isNotConnectedIsRunRcOffToStopThatOne","{{v0}} is not connected, {{v1}} is. Run /rc {{v2}} off to stop that one.",{v0:sW(n.provider),v1:o.platform,v2:o.provider})):n.clear||nW(e)?stopRemote(e,{clearChat:n.clear}):(dW="stopping",e.setShowRcSelector(!0)):info(e,t("remoteControlIsNotRunning","Remote control is not running."))}async function handleRcCommand(e,n){await migrateRemoteConfig().catch(()=>{});const[o,r,s]=n.trim().split(/\s+/).filter(Boolean);if(!o)return nW(e)?void info(e,oW(e)):void e.setShowRcSelector(!0);if("status"===o)return void info(e,await buildRcStatusMessage(e.sessionId));if("off"===o||"disconnect"===o)return void disconnect(e,{clear:"clear"===r});const a=B$.find(e=>e===o);if(a)return"off"===r||"disconnect"===r?void disconnect(e,{provider:a,clear:"clear"===s}):void info(e,t("tryRcOffOrRcToConnect","Try /rc {{v0}} off, or /rc to connect.",{v0:a}));if(nW(e))return void info(e,oW(e));const i=aW[o];if(i)await startRemote(e,i);else{if("token"===o){if(!r)return void info(e,t("provideTheBotTokenRcTokenBotToken","Provide the bot token: /rc token <bot-token>"));const n=await yW();return await updateRemoteProviderConfig(n,{token:r}),info(e,t("botTokenSavedTo","{{v0}} bot token saved to {{v1}}.",{v0:sW(n),v1:remoteConfigPath()})),void await restartActiveRemote(e)}if("user"===o){const n=await yW();return r&&/^\d+$/.test(r)?(await updateRemoteProviderConfig(n,{allowedUserId:r}),info(e,t("allowedUserSetTo","Allowed {{v0}} user set to {{v1}}.",{v0:sW(n),v1:r})),void await restartActiveRemote(e)):void info(e,"discord"===n?t("provideYourNumericDiscordIdRcUserIdInDiscordTurnOnSettingsDeveloperDeveloperModeThenRightClickYourNameCopyUserId","Provide your numeric Discord id: /rc user <id>. In Discord, turn on Settings → Developer → Developer Mode, then right-click your name → Copy User ID."):t("provideYourNumericTelegramIdRcUserIdMessageUserinfobotOnTelegramAndItRepliesWithTheNumber","Provide your numeric Telegram id: /rc user <id>. Message @userinfobot on Telegram and it replies with the number."))}info(e,t("unknownRcArgument",'Unknown /rc argument "{{v0}}". {{v1}}',{v0:o,v1:t("tryRcRcStatusRcDefaultRcAutoAcceptRcYoloRcOffRcTelegramOffRcDiscordOffRcTokenBotTokenRcUserId","Try: /rc · /rc status · /rc default · /rc auto-accept · /rc yolo · /rc off · /rc telegram off · /rc discord off · /rc token <bot-token> · /rc user <id>")}))}}__name(startRemote,"startRemote"),__name(restartActiveRemote,"restartActiveRemote"),__name(disconnect,"disconnect"),__name(handleRcCommand,"handleRcCommand"),Jt();var vW=/("[^"]+"|(?:[\w-]+\.)+(?:com|org|net|io|dev|me|app)(?:\/[\w\-./]*)?|(?<![\w./])\/[\w-]+|@[\w-]+)/g,SW=__name(e=>/^[\w-]+\./.test(e),"isAddress");function urlFor(e,n){return SW(e)?`https://${e}`:e.startsWith("@")&&"telegram"===n?`https://t.me/${e.slice(1)}`:""}function splitStepTokens(e,n="telegram"){return e.split(vW).map((e,o)=>{const r=o%2==1,s=r?urlFor(e,n):"";return{text:e,isToken:r,...""===s?{}:{url:s}}}).filter(e=>""!==e.text)}__name(urlFor,"urlFor"),__name(splitStepTokens,"splitStepTokens");var wW={telegram:"Telegram",discord:"Discord"},kW=__name(()=>[{label:"Telegram",value:"telegram",description:t("driveThisSessionFromATelegramBot","Drive this session from a Telegram bot.")},{label:"Discord",value:"discord",description:t("aThreadPerSessionSoSeveralCanRunAtOnce","A thread per session, so several can run at once.")}],"PLATFORM_OPTIONS"),CW=__name(()=>[{label:modeLabel("default"),value:"default",description:t("asksBeforeEachNewToolApproveOrDenyInTheChat","Asks before each new tool. Approve or Deny in the chat.")},{label:modeLabel("auto-accept"),value:"auto-accept",description:t("readsAndWritesFilesAsksBeforeRunningCommands","Reads and writes files. Asks before running commands.")},{label:modeLabel("bypass"),value:"bypass",description:t("dangerouslyBypassesEveryPermissionNeverAsks","Dangerously bypasses every permission. Never asks.")}],"MODE_OPTIONS"),bW=__name(()=>({label:t("disconnect","Disconnect"),value:"off",description:t("stopTheBotTheSessionKeepsRunningHere","Stop the bot. The session keeps running here.")}),"STOP_OPTION"),TW=__name(()=>[{label:t("takeItOver","Take it over"),value:"takeover",description:t("thatSessionDisconnectsThisOneTakesTheBot","That session disconnects, this one takes the bot.")},{label:t("leaveItAlone","Leave it alone"),value:"cancel",description:t("thatSessionKeepsTheBot","That session keeps the bot.")}],"HELD_OPTIONS"),EW=__name(()=>[{label:t("disconnect","Disconnect"),value:"stop",description:t("keepTheChatHistory","Keep the chat history.")},{label:t("disconnectAndClearAllChatHistory","Disconnect and clear all chat history"),value:"stop-clear",description:t("deleteTheBotSMessagesYoursStay","Delete the bot's messages. Yours stay.")}],"STOPPING_OPTIONS"),PW=__name(e=>n=>/^\d+$/.test(n)?void 0:t("isDigitsOnly","{{v0}} is digits only.",{v0:e}),"digitsOnly"),MW=__name(()=>({telegram:[{key:"token",title:t("createTheBot","create the bot"),steps:[t("1OpenTelegramAndSearchForBotfather","1. Open Telegram and search for @BotFather"),t("2SendItNewbot","2. Send it /newbot"),t("3ItAsksForANameThenAUsernameAnyNameWillDo","3. It asks for a name, then a username. Any name will do;"),t("theUsernameHasToEndInBotEGYournameCmdBot",' the username has to end in "bot" (e.g. yourname_cmd_bot)'),t("4ItRepliesWithATokenCopyItAndPasteItHere","4. It replies with a token. Copy it and paste it here")],reject:__name(e=>/^\d+:[A-Za-z0-9_-]{20,}$/.test(e)?void 0:t("thatDoesNotLookLikeABotTokenItIsANumberAColonThenALongString","That does not look like a bot token. It is a number, a colon, then a long string."),"reject")},{key:"allowedUserId",title:t("sayWhoMayUseIt","say who may use it"),steps:[t("1InTelegramSearchForUserinfobot","1. In Telegram, search for @userinfobot"),t("2SendItStart","2. Send it /start"),t("3ItRepliesWithYourUserIdPasteThatNumberHere","3. It replies with your user ID. Paste that number here")],reject:PW(t("yourTelegramId","Your Telegram id"))}],discord:[{key:"token",title:t("createTheBot","create the bot"),steps:[t("1OpenDiscordComDevelopersApplicationsAndLogIn","1. Open discord.com/developers/applications and log in"),t("2TopRightClickNewApplicationGiveItAnyName",'2. Top right: click "New Application". Give it any name,'),t("tickTheTermsBoxClickCreate",' tick the terms box, click "Create"'),t("3InTheLeftSidebarClickBot",'3. In the left sidebar, click "Bot"'),t("4ClickResetTokenConfirmThenCopyDiscordShows",'4. Click "Reset Token", confirm, then "Copy". Discord shows'),t("aTokenOnceIfYouLoseItResetItAgain"," a token once. If you lose it, reset it again"),t("5StillOnThatPageScrollToPrivilegedGatewayIntents",'5. Still on that page, scroll to "Privileged Gateway Intents"'),t("andTurnOnMessageContentIntentClickSaveChanges",' and turn ON "Message Content Intent". Click "Save Changes"'),t("6PasteTheTokenHere","6. Paste the token here")],reject:__name(e=>/^[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{20,}$/.test(e)?void 0:t("thatDoesNotLookLikeABotTokenItHasThreePartsSeparatedByDotsSoMakeSureYouCopiedTheBotTokenNotTheApplicationId",RW),"reject")},{key:"allowedUserId",title:t("sayWhoMayUseIt","say who may use it"),steps:[t("1InTheDiscordAppNotThePortalClickTheGearBy","1. In the Discord app (not the portal): click the gear by"),t("yourNameDeveloperTurnOnDeveloperMode",' your name → "Developer" → turn ON "Developer Mode"'),t("2RightClickYourOwnNameInAnyChatCopyUserId",'2. Right-click your own name in any chat → "Copy User ID"'),t("3PasteThatNumberHere","3. Paste that number here")],reject:PW(t("yourDiscordId","Your Discord id"))},{key:"channelId",title:t("inviteTheBotThenPickItsChannel","invite the bot, then pick its channel"),steps:[t("1BackInThePortalLeftSidebarOauth2",'1. Back in the portal, left sidebar: "OAuth2"'),t("2UnderOauth2UrlGeneratorTickTwoScopes",'2. Under "OAuth2 URL Generator", tick TWO scopes:'),t("botAndApplicationsCommands",' "bot" and "applications.commands"'),t("3ABotPermissionsBoxOpensUnderneathTickFour",'3. A "Bot Permissions" box opens underneath. Tick four:'),t("viewChannelsSendMessages",' "View Channels", "Send Messages",'),t("createPublicThreadsSendMessagesInThreads",' "Create Public Threads", "Send Messages in Threads"'),t("4AtTheBottomCopyTheGeneratedUrlOpenItInA",'4. At the bottom, copy the "Generated URL". Open it in a'),t("browserChooseYourServerClickAuthorize",' browser, choose your server, click "Authorize"'),t("5BackInDiscordRightClickTheChannelTheBotShould","5. Back in Discord, right-click the channel the bot should"),t("postInCopyChannelId",' post in → "Copy Channel ID"'),t("6PasteThatNumberHere","6. Paste that number here"),"",t("everyRcOpensItsOwnThreadInThatChannelSoSeveral","Every /rc opens its own thread in that channel, so several"),t("sessionsCanRunOnOneBotAtTheSameTime","sessions can run on one bot at the same time.")],reject:PW(t("aChannelId","A channel id"))}]}),"WIZARD"),IW=__name(()=>[t("1OpenTelegramAndFindTheBotYouJustMade","1. Open Telegram and find the bot you just made"),t("2SendItStart","2. Send it /start"),"",t("aBotCannotTextYouFirstSoThisIsWhatCreatesTheChat","A bot cannot text you first, so this is what creates the chat.")],"GREET_STEPS"),AW=__name(()=>[{label:t("doneCheckIt","Done, check it"),value:"greet-check",description:t("sendsAMessageBackSoYouSeeItWorks","Sends a message back, so you see it works.")},{label:t("skip2","Skip"),value:"greet-skip",description:t("nothingReachesTelegramUntilYouDoIt","Nothing reaches Telegram until you do it.")}],"GREET_OPTIONS"),xW=__name(e=>MW()[e].length+("telegram"===e?1:0),"stepCount"),RW="That does not look like a bot token. It has three parts separated by dots, so make sure you copied the Bot token, not the Application ID.",LW=__name(({line:e,provider:n})=>ct.createElement(nt,{color:XO.GRAY},splitStepTokens(e,n).map((e,n)=>{const o=`${e.text}:${String(n)}`;return e.url?ct.createElement(_D,{key:o,url:e.url,text:e.text,color:ZO}):ct.createElement(nt,{key:o,color:e.isToken?ZO:void 0,bold:e.isToken},e.text)})),"StepLine"),OW=__name(({lines:e,provider:n})=>ct.createElement(tt,{flexDirection:"column",marginBottom:1},e.map((e,o)=>""===e?ct.createElement(tt,{key:`gap-${String(o)}`,height:1}):ct.createElement(LW,{key:e,line:e,provider:n}))),"Steps"),DW=__name(({options:e,onSelect:n})=>ct.createElement(SelectInput,{items:e.map(e=>({label:e.label,value:e.value})),onSelect:n,indicatorComponent:s$,itemComponent:({isSelected:n,label:o})=>{const r=e.findIndex(e=>e.label===o),s=e[r],a=r===e.length-1;return ct.createElement(tt,{flexDirection:"column",marginBottom:a?0:1},ct.createElement(a$,{isSelected:n},` ${r+1}. ${s?.label??o}`),ct.createElement(c$,null,s?.description??""))}}),"OptionList"),NW=__name(({remoteActive:e,onSelect:n,onCancel:o})=>{const{t:r}=xt(),[s,a]=mt(()=>takeRcSelectorStep()??"platform"),[i,l]=mt(""),[c,d]=mt(null),[u,m]=mt(null),[p,g]=mt(void 0),[h,f]=mt("telegram"),[y,v]=mt(0),[S,w]=mt(void 0);gt(()=>{let e=!0;return loadRemoteConfig().then(n=>{e&&w(n)}),readRemoteLock().then(n=>{e&&g(n?.pid===process.pid?void 0:n)}),()=>{e=!1}},[]);const k=__name(e=>{if(!S)return;const n=resolveRemoteSettings(S,process.env,e);return MW()[e].every(e=>Boolean(n[e.key]))},"isConfigured"),C=__name(e=>{if(!S)return 0;const n=resolveRemoteSettings(S,process.env,e),o=MW()[e].findIndex(e=>!n[e.key]);return-1===o?0:o},"firstMissingField");at((e,n)=>{n.escape&&("platform"!==s?(a("platform"),d(null),l("")):o())});const b=__name(n=>e?[...n,bW()]:n,"withStop"),T=__name(e=>"held"===e?TW():"stopping"===e?EW():"greet"===e?AW():b("platform"===e?kW():CW()),"optionsFor")(s),E=__name(e=>!0===k(e)?"mode":(v(C(e)),"field"),"afterSetup"),P=__name(r=>{if("telegram"===r.value||"discord"===r.value){const n=r.value;return f(n),m(null),void a("telegram"!==n||void 0===p||e?E(n):"held")}if("cancel"!==r.value)if("takeover"!==r.value)if("off"!==r.value){if("greet-check"!==r.value)return"greet-skip"===r.value?(m(null),void a("mode")):void("stop"!==r.value&&"stop-clear"!==r.value?n({kind:"start",provider:h,mode:r.value,takeover:void 0!==p}):n({kind:"stop",clearChat:"stop-clear"===r.value}));x()}else a("stopping");else a(E(h));else o()},"handleSelect"),M=__name((e,n)=>{updateRemoteProviderConfig(h,e).then(()=>{d(null),l(""),a(n)},e=>{d(r("couldNotSave","Could not save: {{v0}}",{v0:String(e)}))})},"save"),I=__name(e=>{d(e),l("")},"reject"),A=__name(e=>{const n=MW()[h],o=n[y];if(!o)return;const r=e.trim(),s=o.reject(r);if(s)return void I(s);const a=y===n.length-1,i="telegram"===h?"greet":"mode";M({[o.key]:r},a?i:"field"),a||v(y+1)},"submitField"),x=__name(()=>{m(r("sendingAMessageToYourBot","Sending a message to your bot…")),loadRemoteConfig().then(e=>{const n=resolveRemoteSettings(e,process.env,"telegram"),{token:o,allowedUserId:s}=n;return o&&s?greetTelegramChat({token:o,chatId:s}):{kind:"failed",reason:r("theCredentialsAreNotSaved","the credentials are not saved")}}).then(e=>{if("greeted"===e.kind)return m(null),void a("mode");m("not-started"===e.kind?r("telegramHasNoChatYetSendYourBotStartThenTryAgain","Telegram has no chat yet. Send your bot /start, then try again."):r("telegramRefused","Telegram refused: {{v0}}",{v0:e.reason}))})},"checkGreeting");if("greet"===s)return ct.createElement(oF,{title:r("remoteControl2","Remote control"),subtitle:r("stepOfOpenTheChat","{{v0}} · step {{v1}} of {{v2}} · open the chat",{v0:wW.telegram,v1:xW("telegram"),v2:xW("telegram")}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",r("toGoBack","to go back")),gapAfterHeader:!1},ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(OW,{lines:IW(),provider:"telegram"}),ct.createElement(DW,{options:AW(),onSelect:P}),u&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},u))));if("field"===s){const e=MW()[h][y];return e?ct.createElement(oF,{title:r("remoteControl2","Remote control"),subtitle:r("stepOf","{{v0}} · step {{v1}} of {{v2}} · {{v3}}",{v0:wW[h],v1:y+1,v2:xW(h),v3:e.title}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",r("toGoBack","to go back")),gapAfterHeader:!1},ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(OW,{lines:e.steps,provider:h}),ct.createElement(tt,null,ct.createElement(TextInput,{value:i,focus:!0,prefix:`${vt.pointer} `,prefixColor:ZN,onChange:e=>{l(e),d(null)},onSubmit:A})),c&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.RED},c)))):ct.createElement(tt,null)}const R=__name(n=>"held"===n?r("anotherSessionHasTheBot2","Another session has the bot"):"stopping"===n?r("clearTheChatOnTheWayOut","Clear the chat on the way out?"):"mode"===n?r("whichPermissionMode","Which permission mode?"):r("runThisSessionFromAChatAppCurrently","Run this session from a chat app · currently {{v0}}",{v0:translateUiCopy(e?"on":"off")}),"subtitleFor");return ct.createElement(oF,{title:r("remoteControl2","Remote control"),subtitle:R(s),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",r("to","to")," ","platform"===s?r("cancelLower","cancel"):r("goBack","go back"))},"held"===s&&p&&ct.createElement(tt,{flexDirection:"column",marginBottom:1},describeLockHolder(p).split("\n").map(e=>ct.createElement(nt,{key:e,color:XO.GRAY},e)),ct.createElement(nt,{color:XO.GRAY},r("telegramAllowsOneSessionPerBotSoOnlyOneCanHaveIt","Telegram allows one session per bot, so only one can have it."))),ct.createElement(DW,{options:T,onSelect:P}),u&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},u)))},"RcSelector");Jt(),hL();var FW=[{value:"auto",labelKey:"themeAuto",labelDefault:"Auto theme",descriptionKey:"themeAutoDescription",descriptionDefault:"Automatically detect your terminal background and use light or dark to match."},{value:"dark",labelKey:"themeDark",labelDefault:"Dark theme",descriptionKey:"themeDarkDescription",descriptionDefault:"Use purple accent colors on dark backgrounds."},{value:"light",labelKey:"themeLight",labelDefault:"Light theme",descriptionKey:"themeLightDescription",descriptionDefault:"Use higher-contrast colors for white terminal backgrounds."}];function labelFor(e,n){return"auto"===e.value?`${e.label} (${n})`:e.label}__name(labelFor,"labelFor");var _W=__name(({onSelect:e,onCancel:n})=>{const{t:o}=xt(),{t:r}=xt(),[s]=mt(()=>getCliTheme()),[a]=mt(()=>resolveCliTheme("auto")),i=ut(()=>FW.map(e=>({value:e.value,label:labelFor({value:e.value,label:r(e.labelKey,e.labelDefault)},a),description:r(e.descriptionKey,e.descriptionDefault)})),[a,r]),l=__name(n=>{const o=i.find(e=>e.value===n.value)?.value;o&&e(o)},"handleSelect");at((e,o)=>{o.escape&&n()});const c=i.findIndex(e=>e.value===s),d=i.find(e=>e.value===s)?.label??o("theme","{{v0}} theme",{v0:s});return ct.createElement(oF,{title:r("selectTheme","Select a theme"),subtitle:r("themeSubtitle",{defaultValue:"Choose the color palette for this terminal · currently {{label}}",label:d}),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},r("pressEscToCancel","Press Esc to cancel"))},ct.createElement(SelectInput,{items:i,onSelect:l,initialIndex:c>=0?c:0,indicatorComponent:s$,itemComponent:({isSelected:e,label:n})=>{const o=i.findIndex(e=>e.label===n),r=i[o],a=r?.value===s,l=o===i.length-1;return ct.createElement(tt,{flexDirection:"column",marginBottom:l?0:1},ct.createElement(tt,null,ct.createElement(a$,{isSelected:e,isActive:a,idleColor:XO.DIM},` ${o+1}. ${r?.label??n}`),a&&ct.createElement(l$,null)),ct.createElement(c$,null,r?.description??""))}}))},"ThemeSelector");Jt();var $W=new Set,UW=!1;function isTodosManagerOpen(){return UW}function requestTodosManagerOpen(){for(const e of $W)e()}function statusColor(e){return"completed"===e?XO.GREEN:"in_progress"===e?XO.CYAN:XO.WHITE}function TodoRow({todo:e,selected:n}){const{t:o}=xt(),r="completed"===e.status?vt.checkboxOn:vt.checkboxOff,s=n?kD:void 0;return ct.createElement(tt,null,ct.createElement(s$,{isSelected:n,backgroundColor:s}),ct.createElement(nt,{color:statusColor(e.status),backgroundColor:s}," ",r),ct.createElement(nt,{color:n?ZN:statusColor(e.status),strikethrough:"completed"===e.status,backgroundColor:s,wrap:"truncate-end"}," ",e.content),"in_progress"===e.status&&ct.createElement(nt,{color:XO.DIM,backgroundColor:s}," ",o("inProgress","(in progress)")))}function TodosManagerPanel({sessionId:e,onExpandedChange:n}){const{t:o}=xt(),r=useSessionTodos(),[s,a]=mt(!1),[i,l]=mt(0);gt(()=>(UW=s,n?.(s),()=>{UW=!1,n?.(!1)}),[s,n]),gt(()=>{const e=__name(()=>{l(0),a(!0)},"listener");return $W.add(e),()=>{$W.delete(e)}},[]),gt(()=>{if(0===r.length)return a(!1),void l(0);l(e=>Math.min(e,r.length-1))},[r.length]);const c=__name(n=>{hO(e)?.applyTodoUserEdit(n)},"syncHarness");if(at((e,n)=>{if(n.escape||n.leftArrow||n.ctrl&&"x"===e||""===e)a(!1);else if(0!==r.length)if(n.upArrow)l(e=>Math.max(0,e-1));else if(n.downArrow)l(e=>Math.min(r.length-1,e+1));else{if("c"===e){const e=r[i];return void c({todos:completeSessionTodoAt(i),...e?{completedContents:[e.content]}:{}})}if("x"===e){const e=r[i];return void c({todos:removeSessionTodoAt(i),...e?{removedContents:[e.content]}:{}})}"a"===e&&c({todos:[],completedContents:completeAllSessionTodos()})}},{isActive:s}),!s)return null;const d=r.filter(e=>"completed"===e.status).length;return ct.createElement(oF,{title:o("todos","Todos"),subtitle:d>0?o("itemsDone","{{v0}} items · {{v1}} done",{v0:r.length,v1:d}):o("items","{{v0}} items",{v0:r.length}),gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},ct.createElement(tt,{flexDirection:"column",marginTop:1},r.map((e,n)=>ct.createElement(TodoRow,{key:e.id??n,todo:e,selected:n===i}))))}__name(isTodosManagerOpen,"isTodosManagerOpen"),__name(requestTodosManagerOpen,"requestTodosManagerOpen"),__name(statusColor,"statusColor"),__name(TodoRow,"TodoRow"),__name(TodosManagerPanel,"TodosManagerPanel"),Jt(),Jt(),hL(),Jt(),hL(),Jt(),hL(),Jt();var BW=__name(e=>{if(!e)return t("inheritFromSession","Inherit from session");for(const n of UL)for(const o of n.models)if(o.id===e)return o.label;return e},"agentModelLabel"),jW=[{value:"inherit",get label(){return t("1InheritFromSessionDefault","1. Inherit from session (default)")}},{value:"pick",get label(){return t("2PickASpecificModel","2. Pick a specific model")}}],WW=__name(({selectedModel:e,onSelect:n})=>{const{t:o}=xt(),[r,s]=mt("choice"),[a,i]=mt(e?1:0);return at((e,o)=>{if(o.upArrow)i(e=>Math.max(0,e-1));else if(o.downArrow)i(e=>Math.min(jW.length-1,e+1));else if("1"!==e)if("2"!==e){if(o.return){const e=jW[a];if(!e)return;"inherit"===e.value?n(null):s("picker")}}else s("picker");else n(null)},{isActive:"choice"===r}),"picker"===r?ct.createElement(Aj,{onSelect:e=>n(e),onCancel:()=>s("choice"),currentModel:e,subtitle:o("pinAModelForThisAgentItWillAlwaysRunOnThisModelIndependentOfTheSessionSModel","Pin a model for this agent. It will always run on this model, independent of the session's /model."),skipEffortStep:!0}):ct.createElement(tt,{flexDirection:"column"},jW.map((e,n)=>{const o=n===a;return ct.createElement(tt,{key:e.value},ct.createElement(nt,{color:o?XO.WHITE:XO.GRAY,backgroundColor:o?kD:void 0,bold:o},o?">":" "," ",e.label))}),e&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},o("currentlyPinned","Currently pinned:")," ",BW(e))),ct.createElement(YN,{hints:[o("navigate","↑↓ navigate"),o("enterToSelect","Enter to select"),o("inheritFollowsModelPinnedAgentsKeepTheirOwnModelAndPromptCache","Inherit follows /model; pinned agents keep their own model and prompt cache")]}))},"AgentModelSelector"),HW=__name(({config:e,onSaveComplete:n,viewOnly:o=!1})=>{const{t:r}=xt(),[s,a]=mt("idle"),[i,l]=mt(""),c=__name(async()=>{if(!e.location||!e.agentType||!e.sysPrompt)return a("error"),void l(r("agentConfigurationIsIncomplete","Agent configuration is incomplete"));a("saving");try{await saveAgentDefinition({runtime:createNodeRuntime(),location:e.location,name:e.agentType,description:e.ccToolDefinition,systemPrompt:e.sysPrompt,selectedTools:[...e.selectedTools],allToolNames:vS,model:e.model,reasoningEffort:e.reasoningEffort}),n(e.agentType)}catch(e){console.error(r("errorSavingAgent","Error saving agent:"),e),a("error"),l(e instanceof Error?e.message:r("unknownErrorOccurred","Unknown error occurred"))}},"handleSaveAgent");at((e,n)=>{o||!n.return||"idle"!==s&&"error"!==s||c()});const d=formatAgentToolAccessForDisplay({access:[...e.selectedTools],allToolNames:vS,displayNameByToolName:kS,displayNameToToolName:CS}),u=e.location&&e.agentType?getAgentDisplayPath({location:e.location,name:e.agentType}):"";return ct.createElement(tt,{flexDirection:"column",gap:1},ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("name","Name:")),ct.createElement(nt,{color:XO.GRAY},e.agentType)),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("location","Location:")),ct.createElement(nt,{color:XO.GRAY},u)),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("tools","Tools:")),ct.createElement(nt,{color:XO.GRAY},d)),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("model2","Model:")),ct.createElement(nt,{color:XO.GRAY},BW(e.model))),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("reasoningEffort","Reasoning effort:")),ct.createElement(nt,{color:XO.GRAY},e.reasoningEffort??r("modelDefault","model default")))),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("description","Description")),ct.createElement(nt,{color:XO.GRAY},r("tells","(Tells")," ","Command Code"," ",r("whenToUseThisAgent","when to use this agent):"))),ct.createElement(nt,{color:XO.GRAY},e.ccToolDefinition),ct.createElement(tt,{gap:1},ct.createElement(nt,{color:XO.WHITE,bold:!0},r("systemPrompt2","System Prompt:"))),ct.createElement(nt,{color:XO.GRAY},e.sysPrompt),!o&&ct.createElement(tt,{marginTop:1},"idle"===s&&ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toSave","to save ·")," ",ct.createElement(qN,null,"Esc")," ",r("toCancel","to cancel")),"saving"===s&&ct.createElement(nt,{color:XO.YELLOW},r("savingAgent","Saving agent…")),"saved"===s&&ct.createElement(BF,null,i),"error"===s&&ct.createElement(tt,{flexDirection:"column"},ct.createElement(UF,null,r("error","Error:")," ",i),ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toRetry","to retry")))))},"AgentSummary"),GW=__name(()=>[{label:t("1YesDelete","1. Yes, delete"),value:"confirm-delete"},{label:t("2NoCancel","2. No, cancel"),value:"cancel"}],"DELETE_ITEMS"),VW=__name(({agent:e,onBack:n,setRevalidateAgent:o,isReadOnly:r=!1})=>{const{t:s}=xt(),[a,i]=mt("menu"),l=new Set(resolveAgentToolSelection({access:e.tools,allToolNames:vS,displayNameToToolName:CS})),c={location:e.location,method:"manual",agentType:e.name,sysPrompt:e.sysPrompt,ccToolDefinition:e.description,recommendedMethodDescription:"",selectedTools:l,model:e.model??null,reasoningEffort:e.reasoningEffort??null},d=[{label:s("1ViewAgent","1. View agent"),value:"view"},...r?[]:[{label:s("2DeleteAgent","2. Delete agent"),value:"delete"}],{label:r?s("2Back","2. Back"):s("3Back","3. Back"),value:"back"}],u=__name(e=>{"back"!==e.value?"view"!==e.value?"edit"!==e.value?"delete"===e.value&&i("delete"):i("edit"):i("view"):n()},"handleMenuSelect"),m=__name(async r=>{if("confirm-delete"===r.value)try{await deleteAgentDefinition({runtime:createNodeRuntime(),filePath:e.filePath}),o(!0),n()}catch(e){console.error(s("failedToDeleteAgent","Failed to delete agent: {{v0}}",{v0:e})),i("menu")}else i("menu")},"handleDeleteSelect");return at((e,o)=>{if(o.escape)return"menu"===a?void n():void i("menu");if(o.return&&"view"===a)return void i("menu");if(1!==e.length||e<"1"||e>"9")return;const r=Number(e)-1;if("menu"===a){const e=d[r];return void(e&&u(e))}if("delete"===a){const e=GW()[r];e&&m(e)}}),"view"===a?ct.createElement(oF,{title:e.name,gapAfterHeader:!1,footer:ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Enter")," ",s("toGoBack","to go back"))},ct.createElement(HW,{config:c,onSaveComplete:()=>i("menu"),viewOnly:!0})):"edit"===a?ct.createElement(oF,{title:e.name,gapAfterHeader:!1},ct.createElement(nt,{color:XO.YELLOW},s("editFunctionalityComingSoon","Edit functionality coming soon...")),ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"Esc")," ",s("toGoBack","to go back"))):"delete"===a?ct.createElement(oF,{title:s("deleteAgent","Delete agent"),subtitle:s("areYouSureYouWantToDeleteTheAgent","Are you sure you want to delete the agent {{v0}}?",{v0:e.name})},ct.createElement(tt,null,ct.createElement(SelectInput,{items:GW(),onSelect:m,indicatorComponent:m$,itemComponent:u$}))):ct.createElement(oF,{title:e.name,footer:ct.createElement(zN,null,s("press","Press")," ",ct.createElement(qN,null,"↑↓")," ",s("toNavigate","to navigate ·")," ",ct.createElement(qN,null,"Enter")," ",s("toSelect","to select ·")," ",ct.createElement(qN,null,"Esc")," ",s("toGoBack","to go back"))},ct.createElement(SelectInput,{items:d,onSelect:u,indicatorComponent:m$,itemComponent:u$}))},"AgentDetails");Jt();var KW="https://commandcode.ai/docs/core-concepts/custom-agents",zW=__name(({onDone:e})=>{const{t:n}=xt();return at((n,o)=>{o.return&&e()}),ct.createElement(oF,{title:n("createAgentsWithCommandCode","Create agents with Command Code"),gapAfterHeader:!1,boxProps:{gap:1}},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},n("askCommandCodeToCreateOrUpdateSubagentsForYouEG","Ask Command Code to create or update subagents for you, e.g.")),ct.createElement(nt,{color:XO.GRAY}," ",vt.pointerSmall," ",n("createACodeReviewerSubagentThatReviewsDiffsForBugs","“create a code-reviewer subagent that reviews diffs for bugs”")),ct.createElement(nt,{color:XO.GRAY}," ",vt.pointerSmall," ",n("makeAChangelogAgentThatUsesAFastModel","“make a changelog agent that uses a fast model”"))),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.GRAY},n("orEditTheFilesDirectly","Or edit the files directly:")),ct.createElement(nt,{color:XO.GRAY},n("commandcodeAgentsThisProject"," • .commandcode/agents/ (this project)")),ct.createElement(nt,{color:XO.GRAY},n("commandcodeAgentsAllProjects"," • ~/.commandcode/agents/ (all projects)"))),ct.createElement(nt,{color:XO.GRAY},n("docs3","Docs:")," ",KW),ct.createElement(zN,null,n("press","Press")," ",ct.createElement(qN,null,"Enter")," ",n("toGoBackAndJustAsk","to go back and just ask")))},"AskCommandCodeGuide"),qW=__name(({handleSelect:e,createdAgentName:n})=>{const{t:o}=xt(),[r,s]=mt([]),[a,i]=mt([]),[l,c]=mt([]),[d,u]=mt(!0),[m,p]=mt(!1),[g,h]=mt(null),[f,y]=mt(!1),[v,S]=mt(0),[w,k]=mt(0),C=useTerminalHeight();gt(()=>{__name(async()=>{u(!0),p(!1);const{personal:e,project:n}=await discoverAgents({runtime:createNodeRuntime()}),o=listDefaultAgentsForDisplay();s(e.map(e=>toDisplayAgent({definition:e,location:"personal"}))),i(n.map(e=>toDisplayAgent({definition:e,location:"project"}))),c(o),u(!1)},"loadAgents")()},[m]);const b=[{label:o("1CreateAgentsWithCommandCodeRecommended","1. Create agents with Command Code (recommended)"),value:"ask_command_code"},{label:o("2CreateManually","2. Create manually"),value:"create_new_agent"}];r.forEach(e=>{b.push({label:e.name,value:e.filePath})}),a.forEach(e=>{b.push({label:e.name,value:e.filePath})}),l.forEach(e=>{b.push({label:e.name.charAt(0).toUpperCase()+e.name.slice(1),value:e.filePath})});const T=r.length+a.length,E=(r.length>0?1:0)+(a.length>0?1:0)+(l.length>0?1:0),P=__name(e=>e<2?"action":e<2+r.length?"user":e<2+r.length+a.length?"project":"default","sectionOf"),M=C-1,I=Math.max(4,M-12-2*E),A=__name(n=>{if("ask_command_code"===n.value||"create_new_agent"===n.value)return void e(n);const o=[...r,...a,...l].find(e=>e.filePath===n.value);o&&(h(o),y(!0))},"handleAgentSelect");if(at((e,n)=>{if(n.upArrow)S(e=>Math.max(0,e-1));else if(n.downArrow)S(e=>Math.min(b.length-1,e+1));else if(n.return){const e=b[v];e&&A(e)}},{isActive:!d&&!f}),gt(()=>{S(e=>Math.min(e,Math.max(0,b.length-1)))},[b.length]),gt(()=>{k(e=>clampScrollOffset({cursor:v,total:b.length,maxVisible:I,currentOffset:e}))},[v,b.length,I]),d)return ct.createElement($F,{label:o("loadingAgents","Loading agents")});if(f&&g){const e=isBuiltinAgentPath(g.filePath);return ct.createElement(VW,{agent:g,onBack:()=>{y(!1),h(null)},setRevalidateAgent:p,isReadOnly:e})}const x=w,R=w+I,L=b.slice(x,R),O=b.length>I;let D=null;return ct.createElement(oF,{title:o("agents","Agents"),titleSuffix:T>0?o("agent"," ({{v0}} agent{{v1}})",{v0:T,v1:T>1?"s":""}):o("noCustomAgents"," (No custom agents)")},n&&ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(nt,{color:XO.GREEN,dimColor:!0},o("createdAgent","Created agent:")," ",n)),ct.createElement(tt,{flexDirection:"column"},L.map((e,n)=>{const r=x+n,s=P(r),a="action"!==s&&s!==D;D=s;const i=r===v,l="user"===s?o("userAgents","User agents"):"project"===s?o("projectAgents","Project agents"):o("defaultAgentsReadOnly","Default agents (read-only)");return ct.createElement(ct.Fragment,{key:e.value},a&&ct.createElement(tt,{marginTop:0===n?0:1},ct.createElement(nt,{color:cD,bold:!0},l)),ct.createElement(tt,null,ct.createElement(nt,{color:i?XO.WHITE:XO.GRAY,backgroundColor:i?kD:void 0,bold:i},i?"> ":" ",e.label," ")))})),O&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},o("showing","Showing")," ",x+1,"–",Math.min(R,b.length)," ",o("of","of")," ",b.length,x>0?o("more3"," · ↑ more"):"",R<b.length?o("more4"," · ↓ more"):"")),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(YN,{hints:[o("navigate","↑↓ navigate"),o("enterToSelect","Enter to select"),o("escToClose","Esc to close")],marginTop:0}),ct.createElement(nt,{color:XO.DIM},o("agentsLiveInCommandcodeAgentsProjectAndCommandcodeAgentsAllProjectsEditTheFilesDirectlyAnytime","Agents live in .commandcode/agents/ (project) and ~/.commandcode/agents/ (all projects) — edit the files directly anytime.")),ct.createElement(nt,{color:XO.DIM},o("docs3","Docs:")," ",KW)))},"ManageAgents");Jt(),hL(),Jt(),Jt(),hL();var YW=__name(({model:e,selectedEffort:n,onSelect:o,onBack:r})=>{const s=(e?getSupportedEfforts(e):null)??[];return ct.createElement(Tj,{modelLabel:BW(e),supportedEfforts:s,currentEffort:n??void 0,onSelect:e=>o(e??null),onCancel:r})},"AgentEffortSelector");Jt();var JW=__name(()=>[{label:t("1ProjectAgents","1. Project ({{v0}}/agents/)",{v0:".commandcode"}),value:"project"},{label:t("2PersonalAgents","2. Personal (~/{{v0}}/agents/)",{v0:".commandcode"}),value:"personal"}],"LOCATIONS"),QW=__name(({onSelect:e})=>(xt(),ct.createElement(SelectInput,{items:JW(),onSelect:n=>{"project"!==n.value&&"personal"!==n.value||e(n.value)},indicatorComponent:s$,itemComponent:i$})),"LocationSelector");Jt(),hL();var XW=__name(({step:e,agentType:n,sysPrompt:o,ccToolDefinition:r,onAgentTypeChange:s,onSysPromptChange:a,onCCToolDefinitionChange:i,onAgentTypeSubmit:l,onSysPromptSubmit:c,onCCToolDefinitionSubmit:d})=>{const{t:u}=xt(),m=n?validateAgentName({name:n,displayNameByToolName:kS}):null,p=usePasteAwareChange({onChange:a}),g=usePasteAwareChange({onChange:i});return"agentType"===e?ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.WHITE},u("enterAUniqueIdentifierForYourAgent","Enter a unique identifier for your agent:")),"tool_conflict"===m?.issue&&ct.createElement(nt,{color:XO.RED},vt.warning," ",u("thisNameConflictsWithAnExistingToolNamePleaseChooseADifferentName","This name conflicts with an existing tool name. Please choose a different name.")),"reserved"===m?.issue&&ct.createElement(nt,{color:XO.RED},vt.warning," ",u("thisNameIsReservedReservedNames","This name is reserved. Reserved names:")," ",Nw.join(", "))),ct.createElement(TextInput,{showCursor:!0,value:n||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"agentType",config:{agentType:n,sysPrompt:o,ccToolDefinition:r}})&&l()},onChange:s,placeholder:u("eGCodeReviewerUnitTester","e.g. code-reviewer, unit-tester")})):"sysPrompt"===e?ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:XO.WHITE},u("enterTheSystemPromptForYourAgent","Enter the system prompt for your agent:")),ct.createElement(nt,{color:XO.GRAY},u("beComprehensiveForBestResults","Be comprehensive for best results."))),ct.createElement(TextInput,{showCursor:!0,value:o||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"sysPrompt",config:{agentType:n,sysPrompt:o,ccToolDefinition:r}})&&c()},onChange:p,placeholder:u("youAreAHelpfulCodingReviewer","You are a helpful coding reviewer...")})):"ccToolDefinition"===e?ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.WHITE},u("whenShould","When should")," ","Command Code"," ",u("useThisAgent","use this agent?")),ct.createElement(TextInput,{showCursor:!0,value:r,onSubmit:()=>{canSubmitAgentManualStep({manualStep:"ccToolDefinition",config:{agentType:n,sysPrompt:o,ccToolDefinition:r}})&&d()},onChange:g,placeholder:u("eGUseThisAgentWhenYouAreDoneWritingCode","e.g., Use this agent when you are done writing code...")})):null},"ManualFlow");Jt(),hL();var ZW=__name((e,n)=>e?"[x]":"[ ]","categoryCheckbox"),eH=__name(({selectedTools:e,onToggleTool:n,onToggleCategory:o,onComplete:r})=>{const{t:s}=xt(),[a,i]=mt(!1),[l,c]=mt(0),[d,u]=mt(0),m=useTerminalHeight(),p=ut(()=>{const e=[];return e.push({type:"continue",value:"continue"}),e.push({type:"divider",value:"divider-1"}),IS.forEach(n=>{e.push({type:"category",value:n.name})}),a?(e.push({type:"divider",value:"divider-3"}),e.push({type:"toggle",value:"hide-advanced"}),e.push({type:"spacer",value:"spacer-1"}),e.push({type:"label",value:s("individualTools","Individual Tools:")}),vS.forEach(n=>{e.push({type:"tool",value:n})}),e):(e.push({type:"divider",value:"divider-2"}),e.push({type:"toggle",value:"show-advanced"}),e)},[a,s]),g=p.map((n,o)=>{if("divider"===n.type)return{label:"─".repeat(30),value:o,type:"divider"};if("spacer"===n.type)return{label:"",value:o,type:"spacer"};if("label"===n.type)return{label:n.value,value:o,type:"label"};if("continue"===n.type)return{label:s("continue2","[ Continue ]"),value:o,type:"continue"};if("toggle"===n.type)return{label:"show-advanced"===n.value?s("showAdvancedOptions","[ Show advanced options ]"):s("hideAdvancedOptions","[ Hide advanced options ]"),value:o,type:"toggle"};if("category"===n.type){const r=IS.find(e=>e.name===n.value),s=r?.tools.every(n=>e.has(n)),a=r?.tools.some(n=>e.has(n));return{label:`${ZW(Boolean(s),Boolean(a))} ${translateUiCopy(n.value)}`,value:o,type:"category"}}return"tool"===n.type?{label:` ${e.has(n.value)?"[x]":"[ ]"} ${translateUiCopy(kS[n.value]||n.value)}`,value:o,type:"tool"}:{label:"",value:o,type:"unknown"}}),h=g.filter(e=>"divider"!==e.type&&"spacer"!==e.type&&"label"!==e.type),f=Math.max(5,m-1-10),y=h[l]?.value??0;gt(()=>{u(e=>clampScrollOffset({cursor:y,total:g.length,maxVisible:f,currentOffset:e}))},[y,g.length,f]);const v=d,S=d+f,w=g.slice(v,S),k=g.length>f;return at((e,s)=>{if(s.upArrow)return void c(e=>{const n=e-1;return n<0?h.length-1:n});if(s.downArrow)return void c(e=>{const n=e+1;return n>=h.length?0:n});if(!s.return&&" "!==e)return;const d=h[l];if(!d)return;const u=p[d.value];if(u){if("continue"!==u.type)return"toggle"===u.type?(i(!a),void c(0)):void("category"!==u.type?"tool"===u.type&&n(u.value):o(u.value));r()}}),ct.createElement(tt,{flexDirection:"column"},w.map(e=>{const n=h.findIndex(n=>n.value===e.value),o=-1!==n&&n===l;if("divider"===e.type)return ct.createElement(tt,{key:`divider-${e.value}`},ct.createElement(nt,{color:XO.GRAY}," ",e.label));if("spacer"===e.type)return ct.createElement(tt,{key:`spacer-${e.value}`,height:1});if("label"===e.type)return ct.createElement(tt,{key:`label-${e.value}`},ct.createElement(nt,{color:XO.GRAY}," ",e.label));const r="continue"===e.type;return ct.createElement(tt,{key:`item-${e.value}`},ct.createElement(nt,{color:o?XO.WHITE:XO.GRAY,bold:r&&o},o?">":" "," ",e.label))}),k&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.GRAY}," ",s("showing","Showing")," ",v+1,"–",Math.min(S,g.length)," ",s("of","of")," ",g.length,v>0?s("more3"," · ↑ more"):"",S<g.length?s("more4"," · ↓ more"):"")),ct.createElement(tt,{marginTop:1},e.size===vS.length&&ct.createElement(nt,{color:XO.GRAY},s("allToolsSelected","All tools selected")),e.size>0&&e.size<vS.length&&ct.createElement(nt,{color:XO.GRAY},e.size," ",s("toolsSelected","tools selected")),0===e.size&&ct.createElement(nt,{color:XO.GRAY},s("noToolsSelected","No tools selected"))))},"ToolsSelector"),tH=__name(({onComplete:e})=>{const{t:n}=xt(),[o,r]=mt(createAgentCreationState),{step:s,manualStep:a,config:i}=o,l=__name(e=>r(n=>reduceAgentCreation({state:n,event:e})),"dispatch"),c=__name(n=>{l({type:"reset"}),e(n)},"resetToDefaults"),d=__name(()=>{if("location"===s)return n("chooseLocation","Choose location");if("configuration"===s){if("agentType"===a)return n("agentTypeIdentifier","Agent type (identifier)");if("sysPrompt"===a)return n("systemPrompt","System prompt");if("ccToolDefinition"===a)return n("descriptionTellWhenToUseThisAgent","Description (Tell {{v0}} when to use this agent)",{v0:"Command Code"})}return"tools"===s?n("selectTools","Select tools"):"model"===s?n("selectModel2","Select model"):"effort"===s?n("selectReasoningEffort","Select reasoning effort"):"summary"===s?n("confirmAndSave","Confirm and save"):""},"getSubText"),u=__name(e=>{l({type:"select_location",location:e}),l({type:"select_method",method:"manual"})},"handleLocationSelect");return ct.createElement(oF,{title:n("createNewAgent","Create new agent"),subtitle:d()},ct.createElement(tt,null,"location"===s&&ct.createElement(QW,{onSelect:u}),"configuration"===s&&ct.createElement(tt,{flexDirection:"column",gap:1},ct.createElement(XW,{step:a,agentType:i.agentType,sysPrompt:i.sysPrompt,ccToolDefinition:i.ccToolDefinition,onAgentTypeChange:e=>l({type:"set_agent_type",value:e}),onSysPromptChange:e=>l({type:"set_sys_prompt",value:e}),onCCToolDefinitionChange:e=>l({type:"set_cc_tool_definition",value:e}),onAgentTypeSubmit:()=>l({type:"submit_agent_type"}),onSysPromptSubmit:()=>l({type:"submit_sys_prompt"}),onCCToolDefinitionSubmit:()=>l({type:"submit_cc_tool_definition"})})),"tools"===s&&ct.createElement(eH,{selectedTools:i.selectedTools,onToggleTool:e=>l({type:"toggle_tool",tool:e}),onToggleCategory:e=>l({type:"toggle_category",category:e}),onComplete:()=>l({type:"complete_tools"})}),"model"===s&&ct.createElement(WW,{selectedModel:i.model,onSelect:e=>l({type:"select_model",model:e})}),"effort"===s&&ct.createElement(YW,{model:i.model,selectedEffort:i.reasoningEffort??null,onSelect:e=>l({type:"select_effort",effort:e}),onBack:()=>l({type:"back"})}),"summary"===s&&ct.createElement(HW,{config:i,onSaveComplete:c})))},"AgentNew"),nH=__name(({onCancel:e})=>{const[n,o]=mt(null),[r,s]=mt(null),a=__name(e=>{o(e.value),s(null)},"handleSelect");return at((n,o)=>{o.escape&&e()}),ct.createElement(tt,{width:"100%",flexDirection:"column"},null===n&&ct.createElement(qW,{handleSelect:a,createdAgentName:r}),"ask_command_code"===n&&ct.createElement(zW,{onDone:e}),"create_new_agent"===n&&ct.createElement(tH,{onComplete:e=>{s(e),o(null)}}))},"AgentsConfig");Jt(),hL(),Jt(),Jt();var oH=__name(({error:e,traceId:n})=>{const{t:o}=xt();return ct.createElement(tt,{padding:1},ct.createElement(jF,{title:o("errorInitializingOnboarding","Error initializing onboarding:")},e,n&&ct.createElement(nt,{color:XO.DIM},"\n\n",o("traceId2","Trace ID:")," ",n),"\n\n",o("continuingWithoutOnboarding","Continuing without onboarding...")))},"OnboardingError");Jt(),Jt();var rH=__name(()=>ct.createElement(nt,null,t("skip2","Skip")),"SkipOptionText"),sH=__name(({sessionCount:e,agentSessions:n,onImport:o,onSkip:r})=>{const{t:s}=xt(),[a,i]=mt(1);return at((e,n)=>{n.escape?r():"n"!==e&&"N"!==e?n.upArrow||n.downArrow?i(e=>1===e?2:1):"1"!==e?"2"!==e?n.return&&(1===a?o():r()):r():o():dismissOnboardingForeverForProject().then(()=>r())}),ct.createElement(tt,{flexDirection:"column",borderStyle:"single",borderColor:eD.TEXT,paddingX:1,paddingY:0},ct.createElement(nt,{color:eD.TEXT,bold:!0},s("buildYourCodingTaste","Build Your Coding Taste")),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,null,s("found","Found")," ",1===e?s("oneSession","one session"):s("sessions","{{v0}} sessions",{v0:e})," ",s("from","from")," ",n.map(e=>e.displayName).join(", ")," ",s("forThisProject","for this project.")),ct.createElement(tt,{marginTop:1},ct.createElement(nt,null,s("analyze","Analyze")," ",1===e?s("thatSession","that session"):s("thoseSessions","those sessions")," ",s("toBuildYourCodingTastePackage","to build your coding taste package?")))),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:1===a?eD.TEXT:XO.GRAY},1===a?vt.pointer:" "," ",s("1YesLearnRecommended","1. Yes, learn (recommended)"))),ct.createElement(tt,null,ct.createElement(nt,{color:2===a?eD.TEXT:XO.GRAY},2===a?vt.pointer:" "," 2."," ",ct.createElement(rH,null)))),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},"↑↓ · "),ct.createElement(nt,{color:fD.CODE},"enter"),ct.createElement(nt,{color:XO.DIM}," ",s("ok","ok ·")," "),ct.createElement(nt,{color:fD.CODE},"esc"),ct.createElement(nt,{color:XO.DIM}," ",s("skip3","skip ·")," "),ct.createElement(nt,{color:fD.CODE},"n"),ct.createElement(nt,{color:XO.DIM}," ",s("never","never"))))},"ImportChoice"),aH=__name(({step:e,conditions:n,onImportStart:o,onImportComplete:r,onImportError:s,onErrorDismiss:a,onSkip:i})=>"asking"===e?n&&"has_sessions"===n.reason?ct.createElement(sH,{sessionCount:n.sessionCount,agentSessions:n.agentSessions,onImport:o,onSkip:i}):null:"learning"===e?ct.createElement(c_,{onComplete:r,onCancel:i,onError:s,onErrorDismiss:a}):null,"OnboardingStepRenderer"),iH=__name(({onComplete:e,autoLearn:n=!1})=>{gt(()=>(dlog("[UI:Onboarding] mounted"),()=>{dlog("[UI:Onboarding] unmounted")}),[]);const{conditions:o,error:r,traceId:s,isLoading:a}=YF({autoLearn:n,onShouldSkip:e}),{step:i,setStep:l}=JF({conditions:o,autoLearn:n}),{handleImportStart:c,handleImportComplete:d,handleImportError:u,handleErrorDismiss:m,handleSkip:p}=QF({onStepChange:__name(e=>{l(e)},"onStepChange"),onError:__name(()=>{},"onError"),onCompleteCallback:e});return dlog(`[UI:Onboarding] render: ${i}${o?.reason?` (${o.reason})`:""}${r?" ERROR":""}`),a?null:r?ct.createElement(oH,{error:r,traceId:s}):"done"===i||"asking"!==i&&"learning"!==i?null:ct.createElement(aH,{step:i,conditions:o,onImportStart:c,onImportComplete:d,onImportError:u,onErrorDismiss:m,onSkip:p})},"TasteOnboarding");Jt(),hL();var lH=__name(e=>0===e?t("noCodeChanges","No code changes"):t("fileChanged","{{v0}} file{{v1}} changed",{v0:e,v1:e>1?"s":""}),"formatFileCountLabel"),cH=__name(({checkpoints:e,onSelect:n,onCancel:o})=>{const{t:r}=xt(),s=ut(()=>[...e].sort((e,n)=>new Date(e.createdAt).getTime()-new Date(n.createdAt).getTime()),[e]),[a,i]=mt(()=>Math.max(0,s.length-1)),[l,c]=mt(()=>Math.max(0,s.length-8)),[d,u]=mt("checkpoint"),[m,p]=mt(null),[g,h]=mt(0),f=ut(()=>hasCodeChangesToRestore({sortedCheckpoints:s,selectedCheckpoint:m}),[m,s]),y=ut(()=>f?PA:PA.filter(e=>"conversation"===e.mode),[f]);if(gt(()=>{if(s.length>0){const e=s.length-1;i(e),c(Math.max(0,s.length-8))}},[s.length,8]),at((e,r)=>{if(r.escape)return"mode"===d?(u("checkpoint"),p(null),void h(0)):void o();"checkpoint"===d&&r.upArrow?i(e=>{const n=Math.max(0,e-1);return n<l&&c(n),n}):"checkpoint"===d&&r.downArrow?i(e=>{const n=Math.min(s.length-1,e+1);return n>=l+8&&c(n-8+1),n}):"checkpoint"===d&&r.return?s.length>0&&(p(s[a]),u("mode"),h(0)):"mode"===d&&r.upArrow?h(e=>Math.max(0,e-1)):"mode"===d&&r.downArrow?h(e=>Math.min(y.length-1,e+1)):"mode"===d&&r.return&&m&&y[g]&&n({messageId:m.messageId,mode:y[g].mode})}),0===s.length)return ct.createElement(oF,{title:r("rewind","Rewind"),subtitle:r("noCheckpointsAvailableStartAConversationToCreateCheckpoints","No checkpoints available. Start a conversation to create checkpoints."),gapAfterHeader:!1,footer:ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Esc")," ",r("toClose","to close"))});if("mode"===d&&m)return ct.createElement(oF,{title:r("rewind","Rewind"),subtitle:ct.createElement(ct.Fragment,null,r("restoreTo","Restore to:")," ",ct.createElement(nt,{color:XO.WHITE},truncateString2({text:m.prompt||r("checkpoint","checkpoint"),maxChars:50}))),footer:ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toConfirm","to confirm ·")," ",ct.createElement(qN,null,"Esc")," ",r("toGoBack","to go back"))},ct.createElement(tt,{flexDirection:"column"},y.map((e,n)=>{const o=g===n,r=n===y.length-1;return ct.createElement(tt,{key:e.mode,flexDirection:"column"},ct.createElement(tt,{flexDirection:"row"},ct.createElement(nt,{color:o?ZO:void 0},o?`${GD} `:" "),ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{color:o?ZO:XO.WHITE},translateUiCopy(e.label)),ct.createElement(nt,{color:XO.DIM},translateUiCopy(e.description)))),!r&&ct.createElement(nt,null," "))})));const v=s.slice(l,l+8);return ct.createElement(oF,{title:r("rewind","Rewind"),subtitle:r("selectACheckpointToRestoreYourSession","Select a checkpoint to restore your session"),gapAfterHeader:!1,footer:ct.createElement(zN,null,r("press","Press")," ",ct.createElement(qN,null,"Enter")," ",r("toSelect","to select ·")," ",ct.createElement(qN,null,"Esc")," ",r("toCancel","to cancel"))},s.length>8&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},r("showing","Showing")," ",l+1,"-",Math.min(l+8,s.length)," ",r("of","of")," ",s.length)),ct.createElement(tt,{marginTop:1}),ct.createElement(tt,{flexDirection:"column"},v.map((e,n)=>{const o=l+n,i=a===o,c=e.filesModified.length,d=n===v.length-1,u=o===s.length-1;return ct.createElement(tt,{key:e.messageId,flexDirection:"column"},ct.createElement(tt,{flexDirection:"row"},ct.createElement(nt,{color:i?ZO:void 0},i?`${GD} `:" "),ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:i?ZO:XO.WHITE},truncateString2({text:e.prompt||r("noPrompt","(no prompt)"),maxChars:60})),ct.createElement(nt,{color:XO.DIM}," • "),ct.createElement(nt,{color:XO.DIM},getRelativeTimeString({timestamp:e.createdAt}),u&&r("latest"," (latest)"))),ct.createElement(nt,{color:XO.DIM},lH(c)))),!d&&ct.createElement(nt,null," "))})))},"RewindSelector");Jt(),hL();var dH=["default","no-tools","user-only","labeled-only","all"],uH={default:"","no-tools":"[no-tools]","user-only":"[user]","labeled-only":"[labeled]",all:"[all]"};function nextFilterMode(e){const n=dH.indexOf(e);return dH[(n+1)%dH.length]}function previousFilterMode(e){const n=dH.indexOf(e);return dH[(n-1+dH.length)%dH.length]}function buildToolCallMap(e){const n=new Map,o=__name(e=>{for(const r of e){const{entry:e}=r;if("message"===e.type&&"assistant"===e.message.role)for(const o of e.message.content)"tool_use"===o.type&&n.set(o.id,{name:o.name,input:o.input});o(r.children)}},"visit");return o(e),n}function pathArgOf(e){const n=e.file_path??e.path;return"string"==typeof n?toRelativePath(n):"?"}function formatToolBracket(e){const{name:n,input:o}=e;if("read_file"===n){const e=pathArgOf(o),n=o.offset,r=o.limit;return"number"==typeof n&&"number"==typeof r?t("read","[read: {{v0}}:{{v1}}-{{v2}}]",{v0:e,v1:n,v2:n+r}):t("read2","[read: {{v0}}]",{v0:e})}return"write_file"===n?t("write","[write: {{v0}}]",{v0:pathArgOf(o)}):"edit_file"===n?t("edit","[edit: {{v0}}]",{v0:pathArgOf(o)}):"shell_command"===n?t("bash","[bash: {{v0}}]",{v0:truncateString2({text:"string"==typeof o.command?o.command:"",maxChars:50})}):"grep"===n?t("grepIn","[grep: /{{v0}}/ in {{v1}}]",{v0:"string"==typeof o.pattern?o.pattern:"",v1:"string"==typeof o.directory?toRelativePath(o.directory):"."}):"glob"===n?t("glob","[glob: {{v0}}]",{v0:"string"==typeof o.pattern?o.pattern:""}):"read_directory"===n?t("ls","[ls: {{v0}}]",{v0:pathArgOf(o)}):`[${n}: ${truncateString2({text:JSON.stringify(o),maxChars:40})}]`}function messageText5(e){return extractTextFromMessageContent({content:e.content})}function isToolResultOnlyUserMessage2(e){return"user"===e.role&&e.content.length>0&&e.content.every(e=>"tool_result"===e.type)}__name(nextFilterMode,"nextFilterMode"),__name(previousFilterMode,"previousFilterMode"),__name(buildToolCallMap,"buildToolCallMap"),__name(pathArgOf,"pathArgOf"),__name(formatToolBracket,"formatToolBracket"),__name(messageText5,"messageText"),__name(isToolResultOnlyUserMessage2,"isToolResultOnlyUserMessage");var mH=new Set(["label","custom","model_change","effort_change","session_info"]);function isContentlessAssistantMessage(e){return"message"===e.type&&"assistant"===e.message.role&&0===messageText5(e.message).trim().length}function passesFilter(e){const{entry:n,mode:o,isCurrentLeaf:r,hasLabel:s}=e;return"all"===o||("labeled-only"===o?s:"user-only"===o?"message"===n.type&&"user"===n.message.role&&!isToolResultOnlyUserMessage2(n.message)&&messageText5(n.message).trim().length>0:!mH.has(n.type)&&(!(isContentlessAssistantMessage(n)&&!r)&&("no-tools"!==o||"message"!==n.type||"user"!==n.message.role||!isToolResultOnlyUserMessage2(n.message))))}function buildVisibleNodes(e){const{nodes:n,mode:o,currentLeafId:r}=e,s=[];for(const e of n){const n=buildVisibleNodes({nodes:e.children,mode:o,currentLeafId:r});passesFilter({entry:e.entry,mode:o,isCurrentLeaf:e.entry.id===r,hasLabel:void 0!==e.label})?s.push({entry:e.entry,children:n,...void 0!==e.label?{label:e.label}:{},...void 0!==e.labelTimestamp?{labelTimestamp:e.labelTimestamp}:{}}):s.push(...n)}return s}function containsId(e,n){return e.entry.id===n||e.children.some(e=>containsId(e,n))}function reorderActiveFirst(e,n){for(const o of e)o.children=reorderActiveFirst(o.children,n);if(null===n)return e;const o=e.findIndex(e=>containsId(e,n));return o<=0?e:[e[o],...e.slice(0,o),...e.slice(o+1)]}function connectorGlyph(e){return e.folded?"⊞":e.foldable?"⊟":"─"}function buildRowPrefix(e){const{displayIndent:n,gutters:o,connectorVisible:r,isLast:s,folded:a,foldable:i}=e,l=r?n-1:-1,c=[];for(let e=0;e<3*n;e++){const n=Math.floor(e/3),r=e%3,d=o.find(e=>e.position===n);d?c.push(0===r&&d.show?"│":" "):n!==l?c.push(" "):0===r?c.push(s?"└":"├"):1===r?c.push(connectorGlyph({folded:a,foldable:i})):c.push(" ")}const d=a&&!r?"⊞ ":"";return c.join("")+d}function flattenVisibleTree(e){const{roots:n,activePathIds:o,foldedNodes:r}=e,s=[],a=new Map,i=n.length>1;function visit(e){const{node:n,parentId:l,indent:c,justBranched:d,isLast:u,gutters:m}=e,p=n.children.map(e=>e.entry.id);a.set(n.entry.id,p);const g=r.has(n.entry.id),h=n.children.length>0,f=e.showConnector&&!e.isVirtualRootChild,y=i?Math.max(0,c-1):c;if(s.push({id:n.entry.id,entry:n.entry,parentId:l,prefix:buildRowPrefix({displayIndent:y,gutters:m,connectorVisible:f,isLast:u,folded:g,foldable:h}),isActivePath:o.has(n.entry.id),isBranchChild:e.showConnector,hasVisibleChildren:h,...void 0!==n.label?{label:n.label}:{},...void 0!==n.labelTimestamp?{labelTimestamp:n.labelTimestamp}:{}}),g)return;const v=n.children.length>1,S=v||d&&c>0?c+1:c,w=f?[...m,{position:Math.max(0,y-1),show:!u}]:m;n.children.forEach((e,o)=>{visit({node:e,parentId:n.entry.id,indent:S,justBranched:v,showConnector:v,isLast:o===n.children.length-1,gutters:w,isVirtualRootChild:!1})})}return __name(visit,"visit"),n.forEach((e,o)=>{visit({node:e,parentId:null,indent:i?1:0,justBranched:i,showConnector:i,isLast:o===n.length-1,gutters:[],isVirtualRootChild:i})}),{rows:s,visibleChildrenIds:a}}function normalizeRowText(e){return truncateString2({text:e.replace(/[\n\t]+/g," ").trim(),maxChars:200})}function describeRow(e,n){if("message"===e.type){const{message:o}=e;if("user"===o.role){if(isToolResultOnlyUserMessage2(o)){const e=o.content.find(e=>"tool_result"===e.type),r=e?n.get(e.tool_use_id):void 0;return{text:r?formatToolBracket(r):t("toolResult","[tool result]"),color:XO.DIM}}return{text:t("user3","user: {{v0}}",{v0:normalizeRowText(messageText5(o))}),color:XO.CYAN}}const r=messageText5(o).trim();return r?{text:t("assistant","assistant: {{v0}}",{v0:normalizeRowText(r)}),color:XO.GREEN}:{text:t("assistantNoContent","assistant: (no content)"),color:XO.DIM}}return"compaction"===e.type?{text:t("compactionKTokens","[compaction: {{v0}}k tokens]",{v0:Math.round(e.tokensBefore/1e3)}),color:XO.CYAN}:"branch_summary"===e.type?{text:t("branchSummary","[branch summary]: {{v0}}",{v0:normalizeRowText(e.summary)}),color:XO.YELLOW}:"custom_message"===e.type?{text:`[${e.customType}]: ${normalizeRowText(extractTextFromMessageContent({content:e.content}))}`,color:XO.MAGENTA}:"custom"===e.type?{text:t("custom","[custom: {{v0}}]",{v0:e.customType}),color:XO.DIM}:"model_change"===e.type?{text:t("model3","[model: {{v0}}]",{v0:e.model}),color:XO.DIM}:"effort_change"===e.type?{text:t("effort","[effort: {{v0}}]",{v0:e.effort}),color:XO.DIM}:"label"===e.type?{text:t("label","[label: {{v0}}]",{v0:e.label??"(cleared)"}),color:XO.DIM}:{text:e.name?t("title","[title: {{v0}}]",{v0:e.name}):t("titleEmpty","[title: (empty)]"),color:XO.DIM}}__name(isContentlessAssistantMessage,"isContentlessAssistantMessage"),__name(passesFilter,"passesFilter"),__name(buildVisibleNodes,"buildVisibleNodes"),__name(containsId,"containsId"),__name(reorderActiveFirst,"reorderActiveFirst"),__name(connectorGlyph,"connectorGlyph"),__name(buildRowPrefix,"buildRowPrefix"),__name(flattenVisibleTree,"flattenVisibleTree"),__name(normalizeRowText,"normalizeRowText"),__name(describeRow,"describeRow");var pH=__name(()=>({compaction:"compaction",branch_summary:t("branchSummary2","branch summary"),session_info:"title",model_change:"model",effort_change:"effort",custom:"custom",custom_message:"custom",label:"label"}),"SEARCH_TYPE_KEYWORDS");function searchableText(e){const{entry:n,label:o,toolCallMap:r}=e,s=[n.type];o&&s.push(o);const a=pH()[n.type];if(a&&s.push(a),"message"===n.type)if(s.push(n.message.role),isToolResultOnlyUserMessage2(n.message)){const e=n.message.content.find(e=>"tool_result"===e.type),o=e?r.get(e.tool_use_id):void 0;if(o){s.push(o.name);const e=o.input.command;"string"==typeof e&&s.push(e);const n=o.input.file_path??o.input.path;"string"==typeof n&&s.push(n)}}else s.push(messageText5(n.message));return"branch_summary"===n.type&&s.push(n.summary),"custom_message"===n.type&&s.push(extractTextFromMessageContent({content:n.content})),s.join(" ").toLowerCase()}function matchesSearch(e,n){const o=n.toLowerCase().split(/\s+/).filter(Boolean);return 0===o.length||o.every(n=>e.includes(n))}function formatLabelTimestamp(e,n){const o=new Date(e),r=__name(e=>String(e).padStart(2,"0"),"pad"),s=`${r(o.getHours())}:${r(o.getMinutes())}`;return o.getFullYear()===n.getFullYear()&&o.getMonth()===n.getMonth()&&o.getDate()===n.getDate()?s:o.getFullYear()===n.getFullYear()?`${o.getMonth()+1}/${o.getDate()} ${s}`:`${String(o.getFullYear()).slice(-2)}/${o.getMonth()+1}/${o.getDate()} ${s}`}function previousSegmentStart(e,n,o){let r=n.get(o),s=null;for(;r?.parentId;){const e=n.get(r.parentId);if(!e)break;if(e.isBranchChild)return e.id;s=e.id,r=e}return s}function nextSegmentStart(e,n,o){const r=n.get(o)?.[0];if(void 0===r)return null;let s=r;for(let o=0;o<1e4;o++){const o=e.get(s);if(!o||o.isBranchChild)return s;const r=n.get(s)?.[0];if(void 0===r)return s;s=r}return s}function resolveTargetLocally(e){const n=e.byId.get(e.entryId);return n?"message"===n.type&&"user"===n.message.role&&messageText5(n.message).trim().length>0||"custom_message"===n.type?{targetId:n.parentId}:{targetId:n.id}:{targetId:e.entryId}}function isOnPathLocally(e){if(null===e.ancestorId)return!0;if(null===e.targetId)return!1;let n=e.targetId;const o=new Set;for(;null!==n;){if(n===e.ancestorId)return!0;if(o.has(n))return!1;o.add(n);const r=e.byId.get(n);n=r?r.parentId:null}return!1}__name(searchableText,"searchableText"),__name(matchesSearch,"matchesSearch"),__name(formatLabelTimestamp,"formatLabelTimestamp"),__name(previousSegmentStart,"previousSegmentStart"),__name(nextSegmentStart,"nextSegmentStart"),__name(resolveTargetLocally,"resolveTargetLocally"),__name(isOnPathLocally,"isOnPathLocally");var gH=[{value:"none",get label(){return t("noSummary","No summary")}},{value:"summarize",get label(){return t("summarize","Summarize")}},{value:"custom",get label(){return t("summarizeWithCustomPrompt","Summarize with custom prompt")}}],hH=__name(({tree:e,currentLeafId:n,initialSelectedId:o,initialFilterMode:r,branchSummarySkipPrompt:s,onSelect:a,onAbortSummary:i,onCancel:l,onLabelChange:c})=>{const{t:d}=xt(),[u,m]=mt(r),[p,g]=mt(""),[h,f]=mt(()=>new Set),y=__name(e=>{m(e),f(new Set)},"applyFilterMode"),v=__name(e=>{y(n=>n===e?"default":e)},"toggleFilterMode"),[S,w]=mt(!1),[k,C]=mt("browse"),[b,T]=mt(""),[E,P]=mt(""),[M,I]=mt(0),[A,x]=mt(null),[R,L]=mt(0),[O,D]=mt(0),[N,F]=mt(o??n??void 0),_=useTerminalHeight(),$=ut(()=>{const n=new Map,o=__name(e=>{for(const r of e)n.set(r.entry.id,r.entry),o(r.children)},"visit");return o(e),n},[e]),U=ut(()=>buildToolCallMap(e),[e]),B=ut(()=>{const e=new Set;let o=n;for(;null!==o;){e.add(o);const n=$.get(o);o=n?n.parentId:null}return e},[$,n]),j=ut(()=>reorderActiveFirst(buildVisibleNodes({nodes:e,mode:u,currentLeafId:n}),n),[e,u,n]),{rows:W,visibleChildrenIds:H}=ut(()=>flattenVisibleTree({roots:j,activePathIds:B,foldedNodes:h}),[j,B,h]),G=ut(()=>new Map(W.map(e=>[e.id,e])),[W]),V=ut(()=>p?W.filter(e=>matchesSearch(searchableText({entry:e.entry,label:e.label,toolCallMap:U}),p)):W,[W,p,U]);gt(()=>{if(0===V.length)return void L(0);let e=N;for(;e;){const n=V.findIndex(n=>n.id===e);if(n>=0)return void L(n);e=$.get(e)?.parentId}L(V.length-1)},[V,u,p,$]);const K=V[R]?.id,z=pt(!1);gt(()=>{z.current?K&&F(K):z.current=!0},[K]);const q=_-1,Y=Math.max(6,q-10);gt(()=>{D(e=>clampScrollOffset({cursor:R,total:V.length,maxVisible:Y,currentOffset:e}))},[R,V.length,Y]);const J=V[R],Q=__name(e=>{F(e.entryId),e.summarize?(C("summarizing"),a(e).then(e=>{e.aborted&&C("browse")})):a(e)},"commitSelection"),X=__name(()=>{if(!J)return;F(J.id);const{targetId:e}=resolveTargetLocally({byId:$,entryId:J.id});isOnPathLocally({byId:$,ancestorId:n,targetId:e})||s?Q({entryId:J.id,summarize:!1}):(x(J.id),I(0),C("confirm-summary"))},"handleEnterInBrowse");at((e,n)=>{if("summarizing"===k)return void(n.escape&&i());if("label"===k)return void(n.escape&&C("browse"));if("custom-prompt"===k)return void(n.escape&&C("confirm-summary"));if("confirm-summary"===k){if(n.escape)return void C("browse");if(n.upArrow)return void I(e=>Math.max(0,e-1));if(n.downArrow)return void I(e=>Math.min(gH.length-1,e+1));if(n.return&&A){const e=gH[M]?.value;"none"===e?(Q({entryId:A,summarize:!1}),C("browse")):"summarize"===e?Q({entryId:A,summarize:!0}):(P(""),C("custom-prompt"))}return}const o=getKeybindings();if(n.escape)return p?void g(""):void l();if(n.upArrow)L(e=>0===V.length?0:(e-1+V.length)%V.length);else if(n.downArrow)L(e=>0===V.length?0:(e+1)%V.length);else if(!n.leftArrow||n.ctrl||n.meta)if(!n.rightArrow||n.ctrl||n.meta){if((keybindingMatches(o,"app.tree.foldOrPrevBranch",e,n)||isWordLeftSequence(e)||(n.ctrl||n.meta)&&n.leftArrow)&&J){if(J.hasVisibleChildren&&!h.has(J.id))return void f(e=>new Set(e).add(J.id));const e=previousSegmentStart(0,G,J.id);if(e&&F(e),e){const n=V.findIndex(n=>n.id===e);n>=0&&L(n)}return}if((keybindingMatches(o,"app.tree.unfoldOrNextBranch",e,n)||isWordRightSequence(e)||(n.ctrl||n.meta)&&n.rightArrow)&&J){if(h.has(J.id))return void f(e=>{const n=new Set(e);return n.delete(J.id),n});const e=nextSegmentStart(G,H,J.id);if(e){F(e);const n=V.findIndex(n=>n.id===e);n>=0&&L(n)}return}if(n.return)X();else if(n.ctrl&&"O"===e||keybindingMatches(o,"app.tree.filter.cycleBack",e,n))y(e=>previousFilterMode(e));else if(keybindingMatches(o,"app.tree.filter.cycle",e,n))y(e=>nextFilterMode(e));else if(keybindingMatches(o,"app.tree.filter.default",e,n))y("default");else if(keybindingMatches(o,"app.tree.filter.noTools",e,n))v("no-tools");else if(keybindingMatches(o,"app.tree.filter.userOnly",e,n))v("user-only");else if(keybindingMatches(o,"app.tree.filter.labeledOnly",e,n))v("labeled-only");else if(keybindingMatches(o,"app.tree.filter.all",e,n))v("all");else{if("L"===e||keybindingMatches(o,"app.tree.label",e,n)){if(!J)return;return T(J.label??""),void C("label")}"T"===e||keybindingMatches(o,"app.tree.labelTime",e,n)?w(e=>!e):n.backspace||n.delete?p&&g(e=>e.slice(0,-1)):!n.ctrl&&!n.meta&&!n.tab&&e&&1===e.length&&e>=" "&&g(n=>n+e)}}else L(e=>Math.min(V.length-1,e+Y));else L(e=>Math.max(0,e-Y))});const Z=__name(e=>{if(J){const n=e.trim();c({entryId:J.id,label:n.length>0?n:void 0})}C("browse")},"submitLabel"),ee=__name(e=>{if(A){const n=e.trim();Q({entryId:A,summarize:!0,...n.length>0?{customInstructions:n}:{}})}},"submitCustomPrompt");if("summarizing"===k)return ct.createElement(oF,{title:"/tree",gapAfterHeader:!1},ct.createElement(nt,{color:XO.CYAN},d("summarizingAbandonedBranchEscToCancel","Summarizing abandoned branch… (Esc to cancel)")));if("confirm-summary"===k)return ct.createElement(oF,{title:"/tree",subtitle:d("youReLeavingWorkBehindOnThisBranchSummarizeItBeforeJumping","You're leaving work behind on this branch. Summarize it before jumping?"),hint:d("enterConfirmEscBack","enter confirm · esc back")},ct.createElement(tt,{flexDirection:"column"},gH.map((e,n)=>ct.createElement(nt,{key:e.value,color:n===M?ZO:XO.WHITE,bold:n===M},n===M?`${GD} `:" ",e.label))));if("custom-prompt"===k)return ct.createElement(oF,{title:"/tree",subtitle:d("focusInstructionsForTheSummary","Focus instructions for the summary:"),gapAfterHeader:!1,hint:d("enterConfirmEscBack","enter confirm · esc back")},ct.createElement(TextInput,{value:E,focus:!0,prefix:`${GD} `,prefixColor:"cyan",onChange:P,onSubmit:ee}));if("label"===k&&J)return ct.createElement(oF,{title:"/tree",subtitle:d("label2","Label:"),gapAfterHeader:!1,hint:d("enterSaveEmptyClearsEscCancel","enter save (empty clears) · esc cancel")},ct.createElement(TextInput,{value:b,focus:!0,prefix:`${GD} `,prefixColor:"cyan",onChange:T,onSubmit:Z}));const te=V.slice(O,O+Y),ne=new Date,oe=uH[u];return ct.createElement(tt,{flexDirection:"column",paddingLeft:1,width:"100%"},ct.createElement(nt,{color:ZO,bold:!0},"/tree"),ct.createElement(tt,{marginBottom:1,width:"100%"},ct.createElement(jD,{query:p,resultCount:p?V.length:void 0,placeholder:d("typeToSearch2","Type to search…")})),0===V.length?ct.createElement(tt,{marginBottom:1},ct.createElement(WF,{message:d("noEntriesFound","No entries found")})):ct.createElement(tt,{flexDirection:"column"},te.map((e,n)=>{const o=O+n===R,{text:r,color:s}=describeRow(e.entry,U);return ct.createElement(nt,{key:e.id,backgroundColor:o?kD:void 0,bold:o,wrap:"truncate-end"},o?`${GD} `:" ",ct.createElement(nt,{color:wD},e.prefix),e.isActivePath?ct.createElement(nt,{color:ZO},"• "):null,void 0!==e.label?ct.createElement(nt,{color:XO.YELLOW},"[",e.label,"]"," "):null,S&&e.labelTimestamp?ct.createElement(nt,{color:XO.DIM},formatLabelTimestamp(e.labelTimestamp,ne)," "):null,ct.createElement(nt,{color:s},r))})),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},"(",0===V.length?0:R+1,"/",V.length,")",oe?` ${oe}`:"",S?d("labelTime"," [+label time]"):"")),ct.createElement(tt,{flexDirection:"column"},ct.createElement(zN,null,d("movePageTabAltBranchShiftLLabelShiftTLabelTime","↑/↓ move · ←/→ page · tab / alt+←/→ branch · shift+L label · shift+T label time")),ct.createElement(zN,null,d("filtersCtrlDTULACycleCtrlOTypeToSearchRebindViaCommandcodeKeybindingsJson","filters ctrl+d/t/u/l/a · cycle ctrl+o · type to search · rebind via ~/.commandcode/keybindings.json"))))},"TreeSelector"),fH=dt(__name(function MainView2({feed:e,liveEntries:n,queuedMessages:o,isCmdCodeBusy:r,staticKey:s,setStaticKey:a,transcriptMode:i,tasteOnboardingEntryId:l,autoLearnTaste:c,showTasteSkipBanner:d,showTasteLearningInFeed:u,showZdrNotice:m,modelNotice:p,retryAttempt:g,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:v,showFileList:S,setShowFileList:w,showProviderSelector:k,showModelSelector:C,showEffortSelector:b,showMemorySelector:T,showMcpManager:E,showAgentsConfig:P,showRewindSelector:M,showTreeSelector:I,treeFilterMode:A,treeBranchSummarySkipPrompt:x,showLoginOverlay:R,showUsageOverlay:L,showAddDirModal:O,showCompactModeSelector:D,showThemeSelector:N,showLanguageSelector:F,showRcSelector:_,authComponentInfo:$,status:U,currentProvider:B,currentModel:j,showProviderNotification:W,shareInfo:H,showShareNotification:G,unshareNotificationMessage:V,updateStatus:K,updateFailedInfo:z,creditWarning:q,permissionMode:Y,hintMessage:J,pendingExitKey:Q,interactionTokens:X,contextUsage:Z,tasteLearningOn:ee,historyManagerRef:te,executionState:ne,sessionId:oe,onSubmit:re,onCommand:se,onToggleAutoAccept:ae,onResetPendingExitKey:ie,onDoubleEscapeEmpty:le,onTasteOnboardingComplete:ce,permissionPanel:de,questionPanel:ue,designSuggestionPanel:me,onRewindSelect:pe,onRewindCancel:ge,onTreeSelect:he,onTreeCancel:fe,onTreeLabel:ye,onTreeAbortSummary:ve,onLoginComplete:Se,onLoginCancel:we,setShowProviderSelector:ke,setShowModelSelector:Ce,setShowEffortSelector:be,setShowMemorySelector:Te,setShowMcpManager:Ee,setShowAgentsConfig:Pe,setShowAddDirModal:Me,setShowUsageOverlay:Ie,handleProviderSelect:Ae,handleProviderCancel:xe,handleModelSelect:Re,handleModelCancel:Le,handleCompactModeSelect:Oe,handleCompactModeCancel:De,handleThemeSelect:Ne,handleThemeCancel:Fe,handleLanguageSelect:_e,handleLanguageCancel:$e,handleRcSelect:Ue,handleRcCancel:Be,handleAuthSuccess:je,handleAuthCancel:We,showDesignGuide:He,setShowDesignGuide:Ge}){const Ve=usePhaseModel({sessionId:oe}),{t:Ke}=xt(),ze=ut(()=>projectTasteFeedVisibility({feed:e.filter(e=>"taste-onboarding"!==e.role),showTasteLearningInFeed:u}),[e,u]),qe=ht(()=>Ge(!1),[Ge]),Ye=useTerminalWidth(),[Je,Qe]=mt(!1),[Xe,Ze]=mt(!1),et=pt(null);et.current=r?et.current??Date.now():null;const ot=ut(()=>"off"===i?ze:projectTranscriptWindow({feed:ze,mode:i}),[ze,i]),rt=ut(()=>"off"===i?0:Math.max(0,ze.length-ot.length),[ze.length,ot.length,i]),st=ut(()=>0===rt?ot:ot.filter(e=>"user"!==e.role),[ot,rt]),at=ht(()=>Pe(!1),[Pe]),it=ht(()=>Te(!1),[Te]),lt=ht(()=>Ee(!1),[Ee]),dt=ht(()=>Me(!1),[Me]),gt=ht(()=>Ce(!0),[Ce]),ft=ht(()=>be(!1),[be]),yt=ht(()=>{hardResetForResize(),a(e=>e+1)},[a]),vt=!("off"!==i||de||ue||me||k||C||b||$||T||E||P||M||I||R||L||O||D||N||F||_||He||l),St=hO(oe),wt=St?St.getEffort():null;return ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(fB,{staticKey:s,feed:st,showHeader:!0,expandedToolOutput:"off"!==i,currentModel:j,currentEffort:wt,currentProvider:B,hiddenCount:rt}),l&&ct.createElement(iH,{onComplete:ce,autoLearn:c}),d&&ct.createElement(TasteSkipMessage,null),m&&ct.createElement(ZdrPausedMessage,null),p&&ct.createElement(ModelNoticeMessage,{text:p}),n.map(e=>e.metadata?.isAgent?ct.createElement(vB,{key:e.id,entry:e}):ct.createElement(tt,{key:e.id,marginBottom:1,width:"90%"},ct.createElement(FeedEntryView,{entry:e,expandedToolOutput:"off"!==i}))),ct.createElement(RetryMessage,{attempt:g}),"off"===i&&!l&&!Xe&&ct.createElement(TodoPanel,{active:r}),me,ue,de,"off"!==i&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},"─".repeat(Ye))),ct.createElement(tt,{paddingRight:1},ct.createElement(nt,{backgroundColor:rD.BG,color:rD.FG,bold:!0},Ke("detailedTranscript","{{v0}}DETAILED TRANSCRIPT{{v1}}",{v0:zD,v1:zD})),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{bold:!0},"ctrl+o"),ct.createElement(nt,{color:XO.DIM}," ",Ke("toToggle","to toggle")),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{bold:!0},IE?"ctrl+y":"ctrl+e"),ct.createElement(nt,{color:XO.DIM}," ",Ke("to","to")," ","limited"===i?Ke("showAll","show all"):Ke("collapse","collapse")),ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{bold:!0},"esc"),ct.createElement(nt,{color:XO.DIM}," ",Ke("toExit","to exit")))),vt&&ct.createElement(ct.Fragment,null,ct.createElement(BackgroundTasksPanel,{onExpandedChange:Qe}),ct.createElement(TodosManagerPanel,{sessionId:oe,onExpandedChange:Ze}),ct.createElement(aj,{queuedMessages:o,sessionId:oe,isProcessing:r,processingStartedAt:et.current,executionState:ne,status:U,input:h,setInput:f,onSubmit:re,showFileList:S,setShowFileList:w,fileSearchQuery:y,setFileSearchQuery:v,onCommand:se,outputTokens:X,contextUsage:Z,tasteLearningOn:ee,phaseModel:Ve,shareInfo:H,showShareNotification:G,unshareNotificationMessage:V,updateStatus:K,updateFailedInfo:z,creditWarning:q,currentProvider:B,currentModel:j,showProviderInfo:W,permissionMode:Y,onToggleAutoAccept:ae,hintMessage:J,historyManager:te.current,pendingExitKey:Q,onResetPendingExitKey:ie,onDoubleEscapeEmpty:le,retryAttempt:g,onAltP:gt,renderKey:s,inputActive:!Je&&!Xe,inactiveHint:Xe?Ke("todosFocusedToSelectCToCompleteXToRemoveAAllDoneEscToGoBackToFeed","Todos focused · ↑/↓ to select · c to complete · x to remove · a all done · Esc to go back to feed"):void 0})),k&&ct.createElement(tt,{marginY:1},ct.createElement(Uj,{onSelect:Ae,onCancel:xe,sessionId:oe})),C&&ct.createElement(tt,{marginY:1},ct.createElement(Aj,{onSelect:Re,onCancel:Le,currentModel:j,currentProvider:B,refreshBanner:yt,sessionId:oe})),b&&ct.createElement(tt,{marginY:1},ct.createElement(Ej,{currentModel:j,sessionId:oe,onClose:ft,refreshBanner:yt})),He&&ct.createElement(tt,{marginY:1},ct.createElement(gj,{onCancel:qe})),D&&ct.createElement(tt,{marginY:1},ct.createElement(Cj,{onSelect:Oe,onCancel:De})),N&&ct.createElement(tt,{marginY:1},ct.createElement(_W,{onSelect:Ne,onCancel:Fe})),F&&ct.createElement(tt,{marginY:1},ct.createElement(fj,{onSelect:_e,onCancel:$e})),_&&ct.createElement(tt,{marginY:1},ct.createElement(NW,{remoteActive:void 0!==getActiveRemote(),onSelect:Ue,onCancel:Be})),P&&ct.createElement(tt,{marginY:1},ct.createElement(nH,{onCancel:at})),T&&ct.createElement(tt,{marginY:1},ct.createElement(wj,{onClose:it})),E&&ct.createElement(tt,{marginY:1},ct.createElement(Sj,{onClose:lt,mcp:hO(oe)?.mcp})),M&&hO(oe)&&ct.createElement(tt,{marginY:1},ct.createElement(cH,{checkpoints:[...hO(oe).listCheckpoints()],onSelect:pe,onCancel:ge})),I&&hO(oe)&&ct.createElement(tt,{marginY:1},ct.createElement(hH,{tree:hO(oe).getSessionTree(),currentLeafId:hO(oe).getSessionLeafId(),initialFilterMode:A,branchSummarySkipPrompt:x,onSelect:he,onAbortSummary:ve,onCancel:fe,onLabelChange:ye})),$&&ct.createElement(tt,{marginY:1},ct.createElement($.Component,{onSuccess:je,onCancel:We})),R&&ct.createElement(tt,{marginY:1},ct.createElement(yj,{onComplete:Se,onCancel:we})),O&&ct.createElement(tt,{marginY:1},ct.createElement(uj,{onClose:dt})))},"MainView"));function useFeatureModelCatalog(){const[e,n]=mt(()=>getCachedBillingContext());gt(()=>{if(e)return;let o=!0;return getBillingContext().then(e=>{o&&n(e)}),()=>{o=!1}},[e]);const o=useCustomModelsReady(),r=ut(()=>buildCatalogModelPickerGroups(),[o]),s=ut(()=>filterModelPickerGroupsByPlan({groups:r,billing:e}),[r,e]),a=ut(()=>flattenModelPickerGroups(s).map(e=>({id:e.model.id,label:XL(e.model.id)})),[s]);return{groups:s,catalog:a,resolved:null!==e}}Jt(),Jt(),hL(),Jt(),hL(),__name(useFeatureModelCatalog,"useFeatureModelCatalog"),Jt(),hL();var yH=["Listing only models with a zero-data-retention upstream."];function getVisibleZdrBannerLines(){return[t("listingOnlyModelsWithAZeroDataRetentionUpstream",yH[0])]}function wrappedRowCount(e){const n=Math.max(1,e.width),o=e.text.split(/\s+/).filter(Boolean);if(0===o.length)return 1;let r=1,s=0;for(const e of o){const o=Be(e);if(o>n){s>0&&(r+=1),r+=Math.ceil(o/n)-1,s=o%n||n;continue}const a=0===s?o:o+1;s+a<=n?s+=a:(r+=1,s=o)}return r}function zdrBannerRowCount(e){return getVisibleZdrBannerLines().reduce((n,o)=>n+wrappedRowCount({text:o,width:e}),0)+1}function narrowGroups(e){return e.groups.map(n=>({...n,models:n.models.filter(e.accepts)})).filter(e=>e.models.length>0)}__name(getVisibleZdrBannerLines,"getVisibleZdrBannerLines"),__name(wrappedRowCount,"wrappedRowCount"),__name(zdrBannerRowCount,"zdrBannerRowCount"),__name(narrowGroups,"narrowGroups");var vH=__name(({featureLabel:e,defaultLabel:n,currentModelId:o,modelFilter:r,isMainLoopLane:s=!1,onPick:a,onBack:i})=>{const{t:l}=xt(),[c,d]=mt(""),{groups:u,resolved:m}=useFeatureModelCatalog(),p=isCmdZdrEnabled(),g=ut(()=>r||p?narrowGroups({groups:u,accepts:__name(e=>!(r&&!r(e)||p&&!JL(e.id)),"accepts")}):u,[u,r,p]),h=ut(()=>filterModelPickerGroups(g,c),[g,c]),f=ut(()=>getModelLabelColumnWidth(g.flatMap(e=>e.models),{showDefaultBadge:!1}),[g]),y=ut(()=>[{kind:"reset"},...flattenModelPickerGroups(h).map(e=>({kind:"model",providerId:e.providerId,model:e.model}))],[h]),v=ut(()=>{if(!o)return 0;const e=y.findIndex(e=>"model"===e.kind&&e.model.id===o);return e>=0?e:0},[y,o]),{cursor:S}=useListNavigation({items:y,initialIndex:v,searchCursorIndex:1,searchQuery:c,onSearchChange:d,onSelect:__name(e=>{m&&a("reset"===e.kind?void 0:e.model.id)},"onSelect"),onCancel:i}),[w,k]=mt(0),C=useTerminalHeight(),b=useTerminalWidth(),T=C-1,E=p?zdrBannerRowCount(b):0,P=Math.max(4,T-13-E-2*h.length);gt(()=>{k(e=>clampScrollOffset({cursor:S,total:y.length,maxVisible:P,currentOffset:e}))},[S,y.length,P]);const M=w,I=w+P,A=0===M,x=windowModelGroups({groups:h,firstSectionBase:1,windowStart:M,windowEnd:I}),R=y.length>P;return ct.createElement(oF,{title:l("selectModel","{{v0}} › select model",{v0:e}),subtitle:s?l("pickPhaseModel","Pick the model this phase runs on, or reset it to follow your current model."):ct.createElement(ct.Fragment,null,l("pickAModelForThisTaskOrResetItToTheDefault","Pick a model for this task, or reset it to the default.")," ",createOSC8Link("https://commandcode.ai/docs/troubleshooting/faqs#why-do-i-see-small-background-requests",l("whyBackgroundRequests","Why background requests?"),!1)),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},l("typeToSearchNavigateEnterSelect","type to search · ↑/↓ navigate · enter select"),c?l("escToClear"," · esc to clear"):l("escBack"," · esc back"))},p&&ct.createElement(tt,{marginBottom:1,flexDirection:"column"},getVisibleZdrBannerLines().map(e=>ct.createElement(nt,{key:e,color:XO.YELLOW},e))),ct.createElement(tt,{marginBottom:2,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:c,resultCount:c?y.length-1:void 0,placeholder:l("typeToSearchModels","Type to search models...")})),m?ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},A&&ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{bold:!0,dimColor:!0},l("default","Default")),ct.createElement(tt,null,ct.createElement(nt,{backgroundColor:0===S?kD:void 0,color:o?XO.WHITE:XO.GREEN},n," "),!o&&ct.createElement(nt,{color:XO.GREEN},vt.tick))),x.map(({group:e,groupWindow:n},r)=>ct.createElement(tt,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:0!==r||A?1:0},ct.createElement(nt,{bold:!0,dimColor:!0},e.label),n.rows.map((r,s)=>ct.createElement(Ij,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:n.baseIndex+s===S,isCurrent:r.id===o,showProviderLabel:!1,showDefaultBadge:!1,labelColumnWidth:f}))))),R&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},l("showing","Showing")," ",M+1,"–",Math.min(I,y.length)," ",l("of","of")," ",y.length,M>0?l("more3"," · ↑ more"):"",I<y.length?l("more4"," · ↓ more"):""))):ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},l("loadingAvailableModels","Loading available models…"))))},"FeatureModelPicker"),SH="Taste learning is off on BYOK models. Switch to a Command Code model to change it.";function isTasteRow(e){return"taste-learning"===e.id||e.id===cg}function clampDescriptionLines(e){const n=Math.max(e.width,10),{maxLines:o}=e,r=e.text.trim().split(/\s+/).filter(Boolean);if(0===r.length||o<=0)return[];const s=[];let a="",i=0,l=!1;for(;i<r.length;){let e=r[i];Be(e)>n&&(r.splice(i,1,sliceDisplayWidth(e,n),e.slice(sliceDisplayWidth(e,n).length)),e=r[i]);const c=a?`${a} ${e}`:e;if(Be(c)<=n)a=c,i+=1;else if(s.push(a),a="",s.length===o){l=!0;break}}if(!l)return a&&s.push(a),s;const c=s[o-1];return s[o-1]=Be(c)>=n?`${sliceDisplayWidth(c,n-1)}…`:`${c}…`,s}function formatSettingValue(e){if(void 0!==e.displayValue)return e.displayValue;if("boolean"===e.kind)return!0===e.currentValue?t("enabled2","Enabled"):t("disabled2","Disabled");const n=(e.options??[]).find(n=>n.value===e.currentValue);return n?translateUiCopy(n.label):String(e.currentValue)}function startsNewGroup(e,n){return 0===n||e[n-1]?.group!==e[n]?.group}__name(isTasteRow,"isTasteRow"),__name(clampDescriptionLines,"clampDescriptionLines"),__name(formatSettingValue,"formatSettingValue"),__name(startsNewGroup,"startsNewGroup");var wH=__name(({onClose:e,staticKey:n,loadTasteStatus:o,onShowTasteLearningInFeedChange:r,reloadHarnessConfig:s})=>{const{t:a}=xt(),[i,l]=mt([]),c=isByok({model:getConfiguredModel()}),[d,u]=mt(!0),[m,p]=mt(""),[g,h]=mt(null),{catalog:f}=useFeatureModelCatalog(),y=ht(()=>listConfigSettings({modelCatalog:f,isByok:isByok}).then(e=>l(e)),[f,a]);gt(()=>{let e=!0;return listConfigSettings({modelCatalog:f,isByok:isByok}).then(n=>{e&&l(n)}).finally(()=>{e&&u(!1)}),()=>{e=!1}},[f,a]);const v=ut(()=>filterConfigSettings({settings:i,query:m}),[i,m]),S=ut(()=>i.reduce((e,n)=>Math.max(e,Be(translateUiCopy(n.label))),0)+2,[i,a]),w=__name((e,n)=>{"theme"!==e.id||"string"!=typeof n?"taste-learning"!==e.id&&e.id!==cg?e.id===ig&&"boolean"==typeof n&&r(n):o():applyTuiTheme(resolveCliTheme(n))},"applyLiveSideEffect"),k=__name(async e=>{if(e.featureModelKey)return void h(e);const n=nextSettingValue(e),o=i;l(o=>o.map(o=>o.id===e.id?{...o,currentValue:n}:o));try{await updateConfigSetting({id:e.id,value:n}),w(e,n)}catch{l(o)}},"selectSetting"),C=__name(async(e,n)=>{try{await updateConfigSetting({id:e.id,value:n??fg}),await y(),await s()}catch{}h(null)},"pickFeatureModel"),{cursor:b,error:T,setError:E}=useListNavigation({items:[...v],onSelect:__name(e=>{k(e)},"onSelect"),onReset:__name(e=>{P(e)},"onReset"),onCancel:e,searchQuery:m,onSearchChange:p,isActive:!d&&null===g,validate:__name(e=>c&&isTasteRow(e)?a("tasteLearningIsOffOnByokModelsSwitchToACommandCodeModelToChangeIt",SH):e.locked?a("isLockedBySettingsLocalJsonEditThatFileToChangeIt","{{v0}} is locked by settings.local.json — edit that file to change it.",{v0:translateUiCopy(e.label)}):null,"validate")}),P=__name(async e=>{if(c&&isTasteRow(e))return void E(a("tasteLearningIsOffOnByokModelsSwitchToACommandCodeModelToChangeIt",SH));if(e.locked)return void E(a("isLockedBySettingsLocalJsonEditThatFileToChangeIt","{{v0}} is locked by settings.local.json — edit that file to change it.",{v0:translateUiCopy(e.label)}));if(e.currentValue===e.defaultValue)return void E(a("isAlreadyAtItsDefault","{{v0}} is already at its default.",{v0:translateUiCopy(e.label)}));if(e.featureModelKey){try{await updateConfigSetting({id:e.id,value:e.defaultValue}),await y(),await s()}catch{}return}const n=i;l(n=>n.map(n=>n.id===e.id?{...n,currentValue:e.defaultValue}:n));try{await updateConfigSetting({id:e.id,value:e.defaultValue}),w(e,e.defaultValue)}catch{l(n)}},"resetSetting"),M=useTerminalWidth(),I=v[b],A=ut(()=>I?clampDescriptionLines({text:translateUiCopy(I.description),width:Math.max(20,M-2),maxLines:2}):[],[I,M,a]);if(g?.featureModelKey){const e=Yp.find(e=>e.key===g.featureModelKey),n="string"==typeof g.currentValue&&g.currentValue!==fg?g.currentValue:void 0,o=isModelLaneKey(g.featureModelKey),r=e?getFeatureDefaultLabel({meta:e,getModelDisplayName:XL,zdrEnabled:isCmdZdrEnabled()}):"";return ct.createElement(vH,{featureLabel:translateUiCopy(g.label),defaultLabel:o&&r?a("useCurrentModel","Use current model ({{model}})",{model:r}):r,isMainLoopLane:o,currentModelId:n,modelFilter:"vision"===g.featureModelKey?e=>YL(e.id):void 0,onBack:()=>h(null),onPick:e=>{C(g,e)}})}return d?ct.createElement(oF,{key:n,title:a("settings","Settings"),gapAfterHeader:!1},ct.createElement($F,{label:a("loadingSettings","Loading settings")})):ct.createElement(oF,{title:a("settings","Settings"),footer:ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(tt,{flexDirection:"column",height:2,width:"100%"},A.map((e,n)=>ct.createElement(nt,{key:n,color:XO.DIM,wrap:"truncate-end"},e))),ct.createElement(YN,{marginTop:0,hints:[a("typeToFilter","type to filter"),a("navigate","↑↓ navigate"),a("enterToChange","enter to change"),a("tabToReset","tab to reset"),m?a("escToClear2","esc to clear"):a("escToClose2","esc to close")]}))},ct.createElement(tt,{marginBottom:1,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:m,resultCount:m?v.length:void 0,placeholder:a("searchSettings","Search settings...")})),0===v.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},a("noSettingsMatch",'No settings match "'),m,'"')):ct.createElement(tt,{flexDirection:"column"},v.map((e,n)=>{const o=n===b?kD:void 0,r=!m&&startsNewGroup(v,n);return ct.createElement(ct.Fragment,{key:e.id},r&&ct.createElement(tt,{marginTop:0===n?0:1},ct.createElement(nt,{color:XO.DIM,bold:!0},translateUiCopy(e.group))),ct.createElement(tt,null,ct.createElement(nt,{color:e.locked||c&&isTasteRow(e)?XO.DIM:XO.WHITE,backgroundColor:o},translateUiCopy(e.label)+" ".repeat(Math.max(2,S-Be(translateUiCopy(e.label))))),ct.createElement(nt,{color:e.locked||c&&isTasteRow(e)?XO.DIM:XO.GREEN,backgroundColor:o},formatSettingValue(e)),(e.locked||c&&isTasteRow(e))&&ct.createElement(nt,{color:XO.DIM,backgroundColor:o},c&&isTasteRow(e)?a("unavailableOnByok"," (unavailable on BYOK)"):a("lockedBySettingsLocalJson"," (locked by settings.local.json)"))))})),T&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.GRAY},T)))},"SettingsConfig");function sliceDisplayWidth(e,n){let o="";for(const r of e){if(Be(o+r)>n)return o;o+=r}return o}function SettingsConfigView({staticKey:e,onClose:n,loadTasteStatus:o,onShowTasteLearningInFeedChange:r,reloadHarnessConfig:s}){return ct.useEffect(()=>{hardResetForResize()},[]),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(wH,{onClose:n,staticKey:e,loadTasteStatus:o,onShowTasteLearningInFeedChange:r,reloadHarnessConfig:s})))}function categoryColor(e){return isFatalWarningCategory(e)?XO.RED:XO.YELLOW}__name(sliceDisplayWidth,"sliceDisplayWidth"),__name(SettingsConfigView,"SettingsConfigView"),Jt(),Jt(),hL(),Jt(),Jt(),hL(),__name(categoryColor,"categoryColor");var kH=formatSkillWarningsAsMarkdown;async function copyAllWarnings(e,n){try{const{writeClipboardText:o}=await Promise.resolve().then(()=>(hL(),gL));if(!await o(kH(e)))throw new Error(t("clipboardUnavailable","clipboard unavailable"));const r=e.length;n({text:t("copiedIssueToClipboard","Copied {{v0}} issue{{v1}} to clipboard",{v0:r,v1:1===r?"":"s"}),color:XO.GREEN})}catch{n({text:t("clipboardWriteFailed","Clipboard write failed"),color:XO.YELLOW})}}__name(copyAllWarnings,"copyAllWarnings");var CH=__name(({warnings:e,onClose:n,isActive:o=!0})=>{const{t:r}=xt(),s=groupWarnings(e),a=e.length>0,[i,l]=mt(null),c=pt(null),d=pt(!0);gt(()=>()=>{d.current=!1,c.current&&(clearTimeout(c.current),c.current=null)},[]);const u=__name(e=>{d.current&&(c.current&&clearTimeout(c.current),l(e),c.current=setTimeout(()=>{d.current&&(l(null),c.current=null)},3e3))},"showStatus");return at((o,r)=>r.escape||" "===o&&a?(sN(),void n()):void("c"===o&&a&&copyAllWarnings(e,u)),{isActive:o}),ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(tt,null,ct.createElement(nt,{color:ZO,bold:!0},r("skills","Skills")," "),ct.createElement(nt,{color:XO.DIM},"› "),ct.createElement(nt,{color:ZO,bold:!0},r("skipped2","Skipped")," "),ct.createElement(nt,{color:XO.WHITE},e.length)),a&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},r("pressCToCopyAllIssues","Press c to copy all issues"))),a?ct.createElement(tt,{flexDirection:"column"},s.map(e=>ct.createElement(tt,{key:e.category,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(nt,{color:categoryColor(e.category)},e.category)),e.items.map(e=>ct.createElement(tt,{key:e.path,flexDirection:"column",marginBottom:1},ct.createElement(tt,{paddingLeft:2},ct.createElement(_D,{url:h(e.path).href,text:skillIdentifier(e.path),color:XO.WHITE})),ct.createElement(tt,{paddingLeft:4},ct.createElement(nt,{color:XO.WHITE},e.reason))))))):ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},r("noIssuesEverySkillLoaded","No issues — every skill loaded."))),i&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:i.color},i.text)),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},a?r("cCopyAllIssuesEscBackToSkills","c copy all issues · esc back to skills"):r("escBackToSkills","esc back to skills"))))},"SkillsConfigIssues"),bH=[],TH=__name(({warnings:e=bH,onClose:n})=>{const{t:o}=xt(),[r,s]=mt("list");return at((o,a)=>{"list"===r&&(a.escape&&n?n():" "===o&&!a.ctrl&&!a.meta&&e.length>0&&s("issues"))},{isActive:"list"===r}),"issues"===r?ct.createElement(CH,{warnings:e,onClose:()=>s("list"),isActive:!0}):ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(tt,null,ct.createElement(nt,{color:ZO,bold:!0},o("skills","Skills")),e.length>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.YELLOW},e.length," ",o("skipped","skipped")))),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.DIM},o("noSkillsFound","No skills found"))),ct.createElement(nt,{color:XO.DIM},o("createSkillsIn","Create skills in:")),ct.createElement(nt,{color:XO.DIM}," ","~/",".commandcode","/","skills",o("user2","/ (user)")),ct.createElement(nt,{color:XO.DIM}," ","~/.agents/","skills",o("userAgents2","/ (user, .agents)")),ct.createElement(nt,{color:XO.DIM}," ",".commandcode","/","skills",o("project","/ (project)")),ct.createElement(nt,{color:XO.DIM}," ",".agents/","skills",o("projectAgents2","/ (project, .agents)")),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},e.length>0&&o("spaceToViewIssues","space to view issues · "),o("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",o("toClose","to close"))))},"SkillsConfigEmpty");Jt();var EH=__name(()=>"win32"===process.platform?t("noEditorFoundSetEditorSetxEditorCode",'No editor found. Set $EDITOR: setx EDITOR "code"'):t("noEditorFoundSetEditorEchoExportEditorCode","No editor found. Set $EDITOR: echo 'export EDITOR=\"code\"' >> {{v0}}",{v0:"darwin"===process.platform?"~/.zshrc":"~/.bashrc"}),"getEditorSetupMessage");Jt();var PH=__name(({title:e,subtitle:n,skills:o,baseIndex:r,cursor:s,disabled:a})=>{const{t:i}=xt();return ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(tt,null,ct.createElement(nt,{color:cD,bold:!0},e," "),ct.createElement(nt,{color:cD},n)),o.map((e,n)=>{const o=r+n===s,l=a.has(e.label),c=o?kD:void 0;return ct.createElement(tt,{key:e.filePath},ct.createElement(nt,{color:l?XO.DIM:XO.GREEN,backgroundColor:c},l?i("off","[off] "):i("on","[on] ")),ct.createElement(nt,{color:l?XO.DIM:XO.WHITE,backgroundColor:c},e.label),e.fromAgents&&ct.createElement(nt,{color:XO.DIM,backgroundColor:c}," [.agents]"),ct.createElement(nt,{color:XO.DIM,backgroundColor:c}," · ~",e.estimatedTokens,i("tokens2"," tokens ")))}))},"SkillSection"),MH=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt([]),[s,a]=mt([]),[i,l]=mt(!0),[c,d]=mt(null),[u,m]=mt(""),[p,g]=mt(new Set),[h,f]=mt(new Map),[y,v]=mt(!1),[S,w]=mt(null),[k,C]=mt("list"),[b,T]=mt(0),E=useTerminalHeight(),P=pt(!1);gt(()=>{__name(async()=>{try{const e=await loadCommandSkillPickerState();r([...e.skills]),a([...e.warnings]),g(new Set(e.disabled)),f(new Map(e.disabledScopes)),v(e.noProjectRoot)}catch(e){d(e instanceof Error?e.message:n("failedToLoadSkills","Failed to load skills"))}finally{l(!1)}},"load")()},[]);const M=ut(()=>filterSkillPickerRowsForQuery({rows:o,searchQuery:u}),[o,u]),I=M.sections.project,A=M.sections.user,x=M.sections.bundled,R=M.rows,L=E-1,O=(I.length>0?1:0)+(A.length>0?1:0)+(x.length>0?1:0),D=Math.max(4,L-14-2*O),N=__name(async e=>{if(P.current)return;const o=getSkillTogglePolicy({skillName:e.label,disabled:p,disabledScopes:h,noProjectRoot:y});if(!o.allowed)return void w(o.notice);P.current=!0;const r=new Set(p);o.enabling&&r.delete(e.label),o.enabling||r.add(e.label),g(r),w(null);try{const n=await setCommandSkillEnabled(e.label,o.enabling),r=new Map(h);o.enabling&&r.delete(e.label),o.enabling||r.set(e.label,n),f(r),w(getSkillPickerNoProjectWriteNotice(n))}catch(e){g(p),w(n("failedToSave","Failed to save: {{v0}}",{v0:e instanceof Error?e.message:String(e)}))}finally{P.current=!1}},"toggleSkill");gt(()=>{"issues"===k&&m("")},[k]);const F="list"===k&&o.length>0,{cursor:_}=useListNavigation({items:R,onSelect:N,onCancel:e,searchQuery:u,onSearchChange:m,initialIndex:0,isActive:F});if(gt(()=>{T(e=>clampScrollOffset({cursor:_,total:R.length,maxVisible:D,currentOffset:e}))},[_,R.length,D]),at((o,r)=>{if(!r.tab)return;const s=R[_];s&&(async()=>{try{await Ft([{file:s.filePath,line:1}]),e()}catch(e){if(e instanceof Error&&e.message.includes(n("editorEnvironmentVariable","$EDITOR environment variable")))return void d(EH());d(e instanceof Error?e.message:n("failedToOpenSkillInEditor","Failed to open skill in editor"))}})()},{isActive:F}),at((e,n)=>{"list"===k&&0!==o.length&&" "===e&&!n.ctrl&&!n.meta&&s.length>0&&0===u.length&&C("issues")},{isActive:"list"===k&&o.length>0}),i)return ct.createElement(oF,{title:n("skills","Skills"),gapAfterHeader:!1},ct.createElement(nt,{color:XO.DIM},n("loadingSkills","Loading skills...")));if(c)return ct.createElement(oF,{title:n("skills","Skills"),titleColor:XO.RED,gapAfterHeader:!1,footer:ct.createElement(nt,{italic:!0,color:XO.DIM},n("press","Press")," ",ct.createElement(nt,{bold:!0},"Esc")," ",n("toClose","to close"))},ct.createElement(nt,{color:XO.DIM},c));if(0===o.length)return ct.createElement(TH,{warnings:s,onClose:e});if("issues"===k)return ct.createElement(CH,{warnings:s,onClose:()=>C("list"),isActive:!0});const $=o.filter(e=>p.has(e.label)).length,U=b,B=b+D,j=sliceSectionForWindow({section:I,sectionBase:0,windowStart:U,windowEnd:B}),W=sliceSectionForWindow({section:A,sectionBase:I.length,windowStart:U,windowEnd:B}),H=sliceSectionForWindow({section:x,sectionBase:I.length+A.length,windowStart:U,windowEnd:B}),G=R.length>D;return ct.createElement(oF,{title:n("skills","Skills"),titleSuffix:ct.createElement(ct.Fragment,null," ",o.length," ",translateUiCopy(1===o.length?"skill":"skills"),$>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.YELLOW},$," ",n("off2","off"))),s.length>0&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.YELLOW},s.length," ",n("skipped","skipped")))),subtitle:getSkillPickerNoProjectNotice(y),footer:ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,{italic:!0,color:XO.DIM},n("typeToSearchNavigateEnterToToggleTabToEdit","type to search · ↑/↓ navigate · enter to toggle · tab to edit"),s.length>0&&!u&&n("spaceToViewIssues2"," · space to view issues"),u?n("escToClear"," · esc to clear"):n("escToClose3"," · esc to close")),ct.createElement(nt,{color:XO.DIM},n("addSkills","add skills:")," ",ct.createElement(nt,{color:XO.CYAN},getBinaryCommand()," skills add ","<owner/repo>")))},ct.createElement(tt,{marginBottom:1,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:u,resultCount:u?R.length:void 0,placeholder:n("typeToSearchSkills","Type to search skills...")})),0===R.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},n("noSkillsMatch",'No skills match "'),u,'"')):ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},j.rows.length>0&&ct.createElement(PH,{title:n("projectSkills","Project skills"),subtitle:n("orAgents","({{v0}}/{{v1}} or .agents/{{v2}})",{v0:".commandcode",v1:"skills",v2:"skills"}),skills:j.rows,baseIndex:j.baseIndex,cursor:_,disabled:p}),W.rows.length>0&&ct.createElement(PH,{title:n("userSkills","User skills"),subtitle:n("orAgents2","(~/{{v0}}/{{v1}} or ~/.agents/{{v2}})",{v0:".commandcode",v1:"skills",v2:"skills"}),skills:W.rows,baseIndex:W.baseIndex,cursor:_,disabled:p}),H.rows.length>0&&ct.createElement(PH,{title:n("bundledSkills","Bundled skills"),subtitle:n("shipsWithCommandCode","(ships with Command Code)"),skills:H.rows,baseIndex:H.baseIndex,cursor:_,disabled:p})),G&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},n("showing","Showing")," ",U+1,"–",Math.min(B,R.length)," ",n("of","of")," ",R.length,U>0?n("more3"," · ↑ more"):"",B<R.length?n("more4"," · ↓ more"):""))),S&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.YELLOW},S)))},"SkillsConfig");function SkillsConfigView({staticKey:e,onClose:n}){return ct.useEffect(()=>{hardResetForResize()},[]),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(MH,{onClose:n,staticKey:e})))}__name(SkillsConfigView,"SkillsConfigView"),Jt(),Jt(),hL();var IH=__name(()=>[{kind:"scope",scope:"project",label:t("thisProject","This project")},{kind:"scope",scope:"global",label:t("user","User")},{kind:"feed",label:t("showInFeed","Show in feed")}],"ROWS"),AH=__name(({onClose:e,onSettingsChange:n,staticKey:o})=>{const{t:r}=xt(),[s,a]=mt(!0),[i,l]=mt(void 0),[c,d]=mt(void 0),[u,m]=mt(!0),[p,g]=mt(!0),h=isProjectTasteToggleLocked(c),f=ht(async()=>{try{const[e,n]=await Promise.all([getTasteLearningSettings(),getShowTasteLearningInFeed()]);a(e.global),l(e.project),d(e.projectSource),m(n)}catch{}},[]);gt(()=>{f().finally(()=>g(!1))},[f]);const y=__name(async(e,o,r)=>{e();try{await r(),n?.(),await f()}catch(e){o()}},"persist"),v=isByok({model:getConfiguredModel()}),S=__name(e=>{if(v)return;const n=resolveTasteScopeToggle({scope:e.scope,globalEnabled:s,projectOverride:i,projectSource:c});if("locked"===n.kind)return;if("global"===n.scope)return y(()=>a(n.value),()=>a(!n.value),()=>setTasteLearning({tasteLearning:n.value,scope:"global"}));const o=i;return y(()=>l(n.value),()=>l(o),()=>setTasteLearning({tasteLearning:n.value,scope:"project"}))},"toggleRow"),w=__name(e=>{if(v)return;const n=resolveTasteScopeReset({scope:e.scope,globalEnabled:s,projectOverride:i,projectSource:c});if("noop"===n.kind)return;if("save-global"===n.kind)return y(()=>a(!0),()=>a(!1),()=>setTasteLearning({tasteLearning:!0,scope:"global"}));const o=i;return y(()=>l(void 0),()=>l(o),()=>clearProjectTasteLearning())},"resetRow"),k=__name(()=>{if(v)return;const e=!u;return y(()=>m(e),()=>m(!e),()=>setShowTasteLearningInFeed({show:e}))},"toggleFeed"),C=__name(()=>{if(!v&&!u)return y(()=>m(!0),()=>m(!1),()=>setShowTasteLearningInFeed({show:!0}))},"resetFeed"),b=__name(e=>"feed"===e.kind?k():S(e),"handleToggle"),T=__name(e=>"feed"===e.kind?C():w(e),"handleReset"),{cursor:E}=useListNavigation({items:IH(),onSelect:__name(e=>{b(e)},"onSelect"),onReset:__name(e=>{T(e)},"onReset"),onCancel:e,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,isActive:!p});if(p)return ct.createElement(oF,{key:o,title:r("tasteLearning","Taste Learning"),gapAfterHeader:!1},ct.createElement($F,{label:r("loadingConfiguration","Loading configuration")}));const P=__name(e=>!v&&("feed"===e.kind?u:"project"===e.scope?i??s:s),"valueFor");return ct.createElement(oF,{key:o,title:r("tasteLearning","Taste Learning"),subtitle:v?translateUiCopy(Xg):r("learnFromYourInteractions","Learn from your interactions."),hint:v?r("escToClose2","esc to close"):r("navigateEnterToToggleRResetToDefaultEscToClose","↑/↓ navigate · enter to toggle · r reset to default · esc to close")},IH().map((e,n)=>{const o=n===E,s=P(e),a=v||"scope"===e.kind&&"project"===e.scope&&h;return ct.createElement(tt,{key:"feed"===e.kind?"feed":e.scope,marginTop:"feed"===e.kind?1:0},ct.createElement(nt,{color:o?XO.CYAN:XO.GRAY},o?`${vt.pointer} `:" "),ct.createElement(nt,{color:o?XO.CYAN:XO.WHITE},e.label," ".repeat(Math.max(0,16-Be(e.label)))),ct.createElement(nt,{color:s?XO.GREEN:XO.DIM},translateUiCopy(s?"enabled":"disabled")),a?ct.createElement(nt,{color:XO.DIM}," ",v?r("unavailableOnByok2","(unavailable on BYOK)"):r("setInSettingsLocalJson","(set in settings.local.json)")):null)}),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(nt,{color:XO.DIM},r("showInFeedOnlyHidesTheNoticesLearningStaysOn",'"Show in feed" only hides the notices — learning stays on.')),ct.createElement(nt,{color:XO.DIM},r("tasteDataStoredInCommandcodeTasteTasteMd","Taste data stored in .commandcode/taste/taste.md")),h?ct.createElement(nt,{color:XO.DIM},r("thisProjectIsPinnedByCommandcodeSettingsLocalJsonEditThatFileToChangeIt","This project is pinned by .commandcode/settings.local.json — edit that file to change it.")):null))},"TasteConfig");function TasteConfigView({staticKey:e,onClose:n,loadTasteStatus:o}){return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(AH,{onClose:n,onSettingsChange:o,staticKey:e})))}function OrgLimitMeter({row:e,width:n,marginTop:o}){const r=e.reached?XO.RED:getUsageColor(e.pct),s=buildBlockBar({percentage:e.pct,width:n});return ct.createElement(tt,{flexDirection:"column",marginTop:o},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},`${e.label} `),ct.createElement(nt,{color:r},s.filled),ct.createElement(nt,{color:cD},s.empty),ct.createElement(nt,{bold:!0,color:r},` ${Math.round(e.pct)}%`)),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},`${" ".repeat(e.label.length+1)}${e.detail}`)))}function OrgLimitsSection({limits:e,width:n,now:o}){const{t:r}=xt(),s=projectOrgSpendLimitRows({limits:e,now:o});return 0===s.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},r("spendLimits","Spend limits")),s.map((e,o)=>ct.createElement(OrgLimitMeter,{key:e.label,row:e,width:n,marginTop:0===o?0:1})))}function fetchUsageData2(){return fetchUsageData({getAuthKey:getAuthKey2,getApiBaseUrl:getApiBaseUrl,createRequest:__name(({baseUrl:e})=>createApiClient({baseUrl:e}),"createRequest")})}function getAuthKey2(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function WindowLimitMeter({label:e,used:n,cap:o,resetAt:r,width:s,now:a}){const{t:i}=xt(),l=o>0?Math.min(100,n/o*100):0,c=getUsageColor(l),d=buildBlockBar({percentage:l,width:s}),u=r>a?i("resetsIn"," · resets in {{v0}}",{v0:formatDuration(r-a)}):"";return ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},e.padEnd(7)," "),ct.createElement(nt,{color:c},d.filled),ct.createElement(nt,{color:cD},d.empty),ct.createElement(nt,{bold:!0,color:c},` ${Math.round(l)}%`),ct.createElement(nt,{color:XO.DIM},u))}function getProgressBarWidth({terminalWidth:e}){return e<50?Math.max(10,e-10):e<70?Math.max(15,e-15):Math.min(30,e-15)}function getDaysColor(e){const n=getRenewalUrgency(e);return"critical"===n?XO.RED:"warning"===n?XO.YELLOW:void 0}__name(TasteConfigView,"TasteConfigView"),Jt(),Jt(),hL(),Jt(),hL(),Jt(),__name(OrgLimitMeter,"OrgLimitMeter"),__name(OrgLimitsSection,"OrgLimitsSection"),__name(fetchUsageData2,"fetchUsageData"),__name(getAuthKey2,"getAuthKey"),__name(WindowLimitMeter,"WindowLimitMeter"),__name(getProgressBarWidth,"getProgressBarWidth"),__name(getDaysColor,"getDaysColor");var xH=__name(({plan:e,status:n})=>{const{t:o}=xt();return ct.createElement(tt,{marginBottom:0},ct.createElement(tt,{flexShrink:0},ct.createElement(nt,{backgroundColor:XO.BLUE,color:"#f4f4f4",bold:!0},o("usage","{{v0}}USAGE{{v1}}",{v0:zD,v1:zD}))),e&&ct.createElement(ct.Fragment,null,ct.createElement(nt,null," "),ct.createElement(nt,{color:XO.GRAY},o("plan2","{{v0}} Plan",{v0:e.name}))),n&&ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:"active"===n?XO.GREEN:XO.YELLOW},n)))},"UsageBadge"),RH=__name(()=>{const{t:e}=xt();return ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.YELLOW},e("runningLowKeepGoing","Running low? Keep going:")),ct.createElement(nt,null,ct.createElement(nt,{bold:!0},"/extra "),ct.createElement(nt,{color:XO.DIM},e("payAsYouGoAtApiCostZeroMarkup","pay-as-you-go at API cost, zero markup"))),ct.createElement(nt,null,ct.createElement(nt,{bold:!0},"/upgrade "),ct.createElement(nt,{color:XO.DIM},e("biggerLimits","bigger limits"))))},"ExtraUsageCallout"),LH=__name(({showRetry:e})=>{const{t:n}=xt();return ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,e&&ct.createElement(ct.Fragment,null,ct.createElement(qN,null,"r"),n("toRetry2"," to retry · ")),n("press2","Press "),ct.createElement(qN,null,"Esc"),n("toClose2"," to close")))},"UsageFooter"),OH=__name(({onClose:e})=>{const{t:n}=xt(),[o,r]=mt("loading"),[s,a]=mt(null),[i,l]=mt(!1),c=getProgressBarWidth({terminalWidth:useTerminalWidth()}),d=ht(async e=>{try{l(!1);const n=await fetchUsageData2();if(e.aborted)return;if(!n.whoami){const e=n.errors.some(isAuthErrorMessage);return l(e),void r("error")}a(n),r("loaded")}catch{if(e.aborted)return;r("error")}},[]),u=ct.useRef(null);at((n,s)=>{if(s.escape&&e(),"r"===n&&"error"===o){r("loading"),u.current?.abort();const e=new AbortController;u.current=e,d(e.signal)}}),gt(()=>{const e=new AbortController;return u.current=e,d(e.signal),()=>e.abort()},[d]);const m=s?projectUsageView({usageData:s}):null,p=m?.subscription??null,g=m?.plan??null;if("loading"===o)return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(xH,{plan:g,status:p?.status??null}),ct.createElement($F,null),ct.createElement(LH,null));if("error"===o)return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(xH,{plan:g,status:p?.status??null}),ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},i?n("notAuthenticatedRunLoginToConnectYourAccount","Not authenticated. Run /login to connect your account."):n("somethingWentWrong","Something went wrong."))),ct.createElement(LH,{showRetry:!i}));if(!s)return null;const h=m?.hasBillingData??!1,f=m?.usageUrl??null,y=m?.orgLimits??[],v=m?.now??Date.now();if(!h)return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(xH,{plan:g,status:p?.status??null}),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(WF,{message:n("noBillingDataFound","No billing data found.")}),f&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},n("visit","Visit")," "),ct.createElement(_D,{url:f,text:"Studio",color:XO.CYAN}),ct.createElement(nt,{color:XO.DIM}," ",n("forUsageDetails","for usage details.")))),ct.createElement(OrgLimitsSection,{limits:y,width:c,now:v}),ct.createElement(LH,null));const S=m?.windowLimits??null,w=m?.sandboxMinutes??null,k=!0===m?.sandboxAccess&&null!==w&&(w.limitMinutes>0||w.usedMinutes>0),C=m?.summary??null,b=m?.credits,T=b?.usagePercent??0,E=Boolean(b?.hasCreditsInfo),P=(b?.purchasedRemaining??0)+(b?.freeRemaining??0),M=m?.daysLeft??null,I=getDaysColor(M),A=E&&shouldNudgeExtraUsage({usagePercent:T,windows:[S?.fiveHour,S?.weekly]}),x=getUsageColor(T),R=buildBlockBar({percentage:T,width:c});return ct.createElement(tt,{flexDirection:"column",paddingX:0,width:"100%"},ct.createElement(tt,{marginBottom:1},ct.createElement(xH,{plan:g,status:p?.status??null})),E?ct.createElement(tt,null,ct.createElement(nt,{color:x},R.filled),ct.createElement(nt,{color:cD},R.empty),ct.createElement(nt,{bold:!0,color:x},n("used"," {{v0}}% used",{v0:Math.round(T)}))):ct.createElement(nt,{color:XO.DIM},n("planDetailsUnavailable","Plan details unavailable")),E&&ct.createElement(tt,null,C&&ct.createElement(ct.Fragment,null,ct.createElement(nt,null,C.totalCount.toLocaleString()),ct.createElement(nt,{color:XO.DIM},"billing-period"===C.periodBasis?n("requestsThisMonth"," requests this month"):n("requests"," requests"))),null!==M&&ct.createElement(ct.Fragment,null,C&&ct.createElement(nt,{color:XO.DIM}," · "),0===M?ct.createElement(nt,{color:I},n("renewsToday","renews today")):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:I},n("day","{{v0}} day{{v1}}",{v0:M,v1:1===M?"":"s"})),ct.createElement(nt,{color:XO.DIM},n("toRenew"," to renew")))),P>0&&ct.createElement(ct.Fragment,null,(C||null!==M)&&ct.createElement(nt,{color:XO.DIM}," · "),ct.createElement(nt,{color:XO.DIM},n("extraCredits","Extra Credits:")," "),ct.createElement(nt,null,formatCredits(P)))),S?.limited&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},n("usageLimits","Usage limits")),S.fiveHour&&ct.createElement(WindowLimitMeter,{label:n("fiveHour","5-hour"),used:S.fiveHour.used,cap:S.fiveHour.cap,resetAt:S.fiveHour.resetAt,width:c,now:v}),S.weekly&&ct.createElement(tt,{marginTop:S.fiveHour?1:0,flexDirection:"column"},ct.createElement(WindowLimitMeter,{label:n("weekly","Weekly"),used:S.weekly.used,cap:S.weekly.cap,resetAt:S.weekly.resetAt,width:c,now:v}))),A&&ct.createElement(RH,null),k&&ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(nt,{color:XO.DIM},n("sandboxMinutes","Cloud minutes")),w.limitMinutes>0?ct.createElement(WindowLimitMeter,{label:n("month","Month"),used:w.usedMinutes,cap:w.limitMinutes,resetAt:w.resetAt,width:c,now:v}):ct.createElement(nt,null,n("minUsedThisMonthBilledPerMinute","{{v0}} min used this month, billed per minute",{v0:w.usedMinutes}))),ct.createElement(OrgLimitsSection,{limits:y,width:c,now:v}),f&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},n("fullBreakdownAt","Full breakdown at")," "),ct.createElement(_D,{url:f,text:m?.usageUrlDisplay??f,color:XO.CYAN})),ct.createElement(LH,null))},"UsageOverlay");function UsageView({staticKey:e,onClose:n}){return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(OH,{onClose:n})))}__name(UsageView,"UsageView"),Jt(),hL(),Jt(),hL(),Jt();var DH="@last";function shortenHomePath(e){const n=K();return e.startsWith(n)?`~${e.slice(n.length)}`:e}__name(shortenHomePath,"shortenHomePath");var NH=__name(()=>({approved:{label:t("approved","{{v0}} approved",{v0:vt.tick}),color:XO.GREEN},"not-implemented":{label:t("setAside","{{v0}} set aside",{v0:vt.circleDotted}),color:XO.YELLOW},pending:{label:t("pending","{{v0}} pending",{v0:vt.dot}),color:XO.DIM}}),"PLAN_STATUS_DISPLAY"),FH=createNodeRuntime(),_H={"?":"Why? Explain the reasoning behind this.",x:"Cut this — remove it from the plan.","!":"Risky — double-check this before implementing."};function lineStyleProps(e){if(e.changed)return{color:XO.GREEN,bold:!1,italic:!1};const n={color:XO.WHITE,bold:!1,italic:!1};if(!e.style)return n;switch(e.style.role){case"heading":return{color:fD.HEADING,bold:!0,italic:!1};case"code":case"code-fence":return{color:fD.CODE,bold:!1,italic:!1};case"quote":return{color:XO.DIM,bold:!1,italic:!0};case"table":return{color:XO.CYAN,bold:!1,italic:!1};default:return n}}__name(lineStyleProps,"lineStyleProps");var $H=__name(({plan:e,variant:n="browse",fallbackContent:o,onBack:r,onSubmitFeedback:s,onExecute:a,onAutoAccept:i})=>{const{t:l}=xt(),[c,d]=mt(null),[u,m]=mt(e.annotations),[p,g]=mt(!1);gt(()=>{p||m(e.annotations)},[e.annotations,p]);const[h,f]=mt({kind:"line",lineNumber:1}),[y,v]=mt(null),S=pt([]),w=ut(()=>shouldCollapsePastedText(),[]),[k,C]=mt(null),[b,T]=mt(null),[E,P]=mt(!1),[M,I]=mt(0),[A,x]=mt(null),R=useTerminalHeight(),L=useTerminalWidth();gt(()=>{__name(async()=>{const n=await readPlanContent({runtime:FH,filePath:e.filePath})??o??null;d(null===n?[]:splitPlanLines(n))},"load")()},[e.filePath,o]);const O=e.version??1;gt(()=>{O<=1||!e.filePath||readPlanVersionSnapshot({runtime:FH,filePath:e.filePath,version:O-1}).then(x).catch(()=>{})},[O,e.filePath]);const D=ut(()=>null!==A&&null!==c?diffPlanChangedLines({previous:A,current:c}):new Set,[A,c]),N=u.length,F=ut(()=>{const e={id:"feedback",label:l("submitReview","Submit review ({{v0}})",{v0:N}),chord:"ctrl+r",color:XO.CYAN,hint:l("agentRevisesThePlanReturnsItForReview","agent revises the plan, returns it for review")};return"approval"===n?[...N>0?[e]:[],{id:"auto-accept",label:l("approve","Approve"),chord:"ctrl+a",color:XO.GREEN,hint:N>0?l("executesThePlanCommentsGoAlongAsNotes","executes the plan · comments go along as notes"):l("executesThePlan","executes the plan")},{id:"cancel",label:l("cancel2","Cancel"),chord:"esc",color:XO.YELLOW,hint:""}]:[...N>0?[e]:[],{id:"execute",label:l("executePlan","Execute plan"),chord:"ctrl+e",color:XO.GREEN,hint:l("executesThePlanAsWritten","executes the plan as written")},{id:"cancel",label:l("back2","Back"),chord:"esc",color:XO.YELLOW,hint:""}]},[n,N]),_=ut(()=>y?u.filter(e=>e.line!==y.line):u,[u,y]),$=ut(()=>buildPlanReaderRows({lines:c??[],annotations:_}),[c,_]),U=ut(()=>classifyPlanLines(c??[]),[c]),B=c?.length??0,j=resolvePlanWrapWidth(Math.max(20,L-7-2)),W=ut(()=>buildPlanReaderDisplayRows({rows:$,width:j}),[$,j]),H=getPlanReaderCursorDisplaySpan({displayRows:W,cursor:h}),G=R-1,V=Math.max(4,G-10-7),K=y?1:0,z=-1===H.first?W.length-1:H.first,q=-1===H.last?W.length-1:H.last+K;gt(()=>{I(e=>{const n=clampScrollOffset({cursor:Math.max(0,q),total:W.length+K,maxVisible:V,currentOffset:e});return clampScrollOffset({cursor:Math.max(0,z),total:W.length+K,maxVisible:V,currentOffset:n})})},[z,q,W.length,K,V]),gt(()=>{f(e=>snapPlanReaderCursor({cursor:e,lineCount:B,actions:[]}))},[B]),gt(()=>{f(e=>"action"!==e.kind||F.some(n=>n.id===e.id)?e:{kind:"line",lineNumber:Math.max(1,B)})},[F,B]);const Y=__name(n=>{g(!0),m(n),e.filePath&&setPlanAnnotations({runtime:FH,filePath:e.filePath,annotations:n}).catch(()=>T(l("failedToSaveCommentsToDisk","Failed to save comments to disk")))},"persistAnnotations"),J="line"===h.kind?u.find(e=>e.line===h.lineNumber):void 0,Q=__name(()=>{if(0===u.length||!c)return;const n=buildPlanAnnotationsPrompt({title:e.title,filePath:e.filePath||l("planNotSavedToAFileYet","(plan not saved to a file yet)"),lines:c,annotations:u});e.filePath&&snapshotPlanVersion({runtime:FH,filePath:e.filePath}).catch(()=>{}),Y([]),s(n)},"submitFeedback"),X=__name(n=>{if(n&&u.length>0&&c){const n=buildPlanApprovalNotesPrompt({title:e.title,...e.filePath?{filePath:e.filePath}:{},lines:c,annotations:u});return Y([]),void i?.(n)}Y([]),i?.()},"approve"),Z=__name(()=>{"approval"===n&&(N>0?C({kind:"approve",choice:"notes"}):X(!1))},"requestApprove"),ee=__name(()=>{N>0&&!e.filePath?C({kind:"cancel"}):r()},"requestCancel"),te=__name(n=>{"feedback"!==n?"execute"!==n?"auto-accept"!==n?"cancel"===n&&ee():Z():(a??s)(buildPlanExecutePrompt({title:e.title,filePath:e.filePath||e.fileName})):Q()},"runAction"),ne=__name(()=>{e.filePath?(P(!0),openFileInEditor(e.filePath).then(async()=>{const n=await readPlanContent({runtime:FH,filePath:e.filePath});null!==n&&d(splitPlanLines(n))}).catch(e=>T(e instanceof Error?e.message:l("failedToOpenTheEditor","Failed to open the editor"))).finally(()=>{P(!1),hardResetForResize()})):T(l("thisPlanIsNotSavedToAFileYet","This plan is not saved to a file yet"))},"openExternalEditor"),oe=__name(e=>{"line"!==h.kind||h.lineNumber<1||h.lineNumber>B||(S.current=e?[]:J?.pastes??[],v({line:h.lineNumber,value:e||(J?.text??""),hadExisting:void 0!==J}))},"openDraft"),re=__name(e=>{y&&(Y(upsertPlanAnnotation({annotations:u,line:y.line,text:e,createdAt:(new Date).toISOString(),pastes:S.current})),S.current=[],v(null))},"commitDraft"),se=ut(()=>{const e=new Set;for(const n of u)e.add(n.line);for(const n of D)e.add(n);return[...e].sort((e,n)=>e-n)},[u,D]),ae=__name(e=>{if(0===se.length)return;const n="line"===h.kind?h.lineNumber:B+1,o="next"===e?se.find(e=>e>n)??se[0]:[...se].reverse().find(e=>e<n)??se[se.length-1];void 0!==o&&f({kind:"line",lineNumber:o})},"jumpMarked");at((e,n)=>{n.escape&&v(null)},{isActive:null!==y}),at((e,n)=>{if(k)if(n.escape)C(null);else if("approve"===k.kind&&(n.leftArrow||n.rightArrow||n.tab))C({kind:"approve",choice:"notes"===k.choice?"original":"notes"});else if(n.return){if("approve"===k.kind)return C(null),void X("notes"===k.choice);C(null),r()}},{isActive:null!==k}),at((e,o)=>{if(o.escape)return void ee();if(o.upArrow||o.downArrow)return T(null),void f(e=>{if("action"===e.kind){const n=F.findIndex(n=>n.id===e.id);if(o.upArrow){if(n<=0&&B>0)return{kind:"line",lineNumber:B};const o=F[Math.max(0,n-1)];return o?{kind:"action",id:o.id}:e}const r=F[Math.min(F.length-1,n+1)];return r?{kind:"action",id:r.id}:e}if(o.upArrow)return{kind:"line",lineNumber:Math.max(1,e.lineNumber-1)};if(e.lineNumber>=B){const n=F[0];return n?{kind:"action",id:n.id}:e}return{kind:"line",lineNumber:e.lineNumber+1}});if(o.pageUp||o.pageDown)return T(null),void f(e=>"action"===e.kind&&o.pageDown?e:movePlanReaderCursorByPage({displayRows:W,cursor:e,direction:o.pageDown?"down":"up",pageRows:Math.max(1,V-1)}));if(o.home||o.end)return T(null),void(B>0&&f({kind:"line",lineNumber:o.home?1:B}));if(o.leftArrow||o.rightArrow){if("action"!==h.kind)return;const e=F.findIndex(e=>e.id===h.id);if(-1===e)return;const n=o.leftArrow?Math.max(0,e-1):Math.min(F.length-1,e+1),r=F[n];return void(r&&f({kind:"action",id:r.id}))}if(o.ctrl&&"r"===e)return void Q();if(o.ctrl&&"a"===e&&"approval"===n)return void Z();if(o.ctrl&&"e"===e&&"browse"===n)return void te("execute");if(o.ctrl&&"g"===e)return void ne();if(o.ctrl&&"n"===e)return void ae("next");if(o.ctrl&&"p"===e)return void ae("previous");if(o.return)return"action"===h.kind?void te(h.id):void oe("");const r=_H[e];"line"!==h.kind||!r||o.ctrl||o.meta?"line"===h.kind&&e.length>0&&!o.ctrl&&!o.meta&&oe(e):Y(upsertPlanAnnotation({annotations:u,line:h.lineNumber,text:J?.text===r?"":r,createdAt:(new Date).toISOString()}))},{isActive:null===y&&null===k&&null!==c&&!E});const ie=NH()[e.status],le=M,ce=M+V-K,de=W.slice(le,ce),ue=y?y.hadExisting?l("enterToKeepClearEnterRemovesEscKeepAsWas","enter to keep · clear + enter removes · esc keep as was"):l("enterToPinEscDiscard","enter to pin · esc discard"):k?"approve"===k.kind?l("chooseEnterConfirmEscBack","←/→ choose · enter confirm · esc back"):l("enterDiscardEscBack","enter discard · esc back"):"action"===h.kind?l("chooseEnterToRun","↑/↓ choose · enter to run"):[l("typeEnterToComment","type + enter to comment"),...se.length>0?[l("ctrlNPJump","ctrl+n/p jump {{v0}}",{v0:D.size>0?"changes":"comments"})]:[],l("quickWhyXCutRisky","quick: ? why x cut ! risky"),"ctrl+g $EDITOR"].join(" · ");return ct.createElement(oF,{title:"approval"===n?l("planReview","Plan review: {{v0}}",{v0:e.title}):e.title,titleSuffix:"approval"===n?ct.createElement(ct.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1):ct.createElement(ct.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1," ",ct.createElement(nt,{color:ie.color},ie.label)),subtitle:"approval"===n?l("reviewThePlanLikeAPrTypeOnAnyLineToCommentEnterPinsItUnderTheLine","Review the plan like a PR — type on any line to comment, enter pins it under the line."):void 0,footer:ct.createElement(nt,{italic:!0,color:XO.DIM},ue)},null===c?ct.createElement(nt,{color:XO.DIM},l("loadingPlan","Loading plan...")):0===B?ct.createElement(nt,{color:XO.DIM},l("planFileIsEmptyOrMissingOnDisk","Plan file is empty or missing on disk.")):ct.createElement(tt,{flexDirection:"column"},de.map((e,n)=>{const o=le+n,{row:r}=e;if("action"===r.kind)return null;if("annotation"===r.kind)return ct.createElement(tt,{key:`annotation-${r.lineNumber}-${o}`},ct.createElement(nt,{color:XO.DIMMER}," ".repeat(5)),ct.createElement(nt,{backgroundColor:eD.BADGE_BG,color:eD.BADGE_FG}," ",e.isFirstSegment?"↳ ":" ",e.text," "));const s="line"===h.kind&&h.lineNumber===r.lineNumber,a=lineStyleProps({style:U[r.lineNumber-1],changed:D.has(r.lineNumber)}),i=W[o+1],c=!i||"line"!==i.row.kind||i.row.lineNumber!==r.lineNumber,d=o===ce-1,u=null!==y&&y.line===r.lineNumber&&(c||d);return ct.createElement(ct.Fragment,{key:`line-${r.lineNumber}-${o}`},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIMMER},e.isFirstSegment?String(r.lineNumber).padStart(4," "):" "," "),ct.createElement(nt,{color:r.hasAnnotation?XO.CYAN:XO.DIMMER},e.isFirstSegment&&r.hasAnnotation?`${vt.bullet} `:" "),ct.createElement(nt,{color:a.color,bold:a.bold,italic:a.italic,backgroundColor:s?kD:void 0},e.text||" ")),u&&y&&ct.createElement(tt,null,ct.createElement(nt,{color:XO.CYAN}," ┃ ",vt.bullet," "),ct.createElement(TextInput,{value:y.value,onChange:e=>{S.current=prunePlanAnnotationPastes(e,S.current),v(n=>n?{...n,value:e}:n)},onSubmit:re,placeholder:l("typeYourComment","Type your comment…"),focus:null!==y,stripBracketedPaste:!0,clipboardOnEmptyPaste:!0,collapsePastedText:w,onPasteCollapsed:e=>{S.current=[...S.current,e]}})))})),ct.createElement(tt,{flexDirection:"column",marginTop:1},ct.createElement(MD,{dividerColor:XO.DIMMER}),ct.createElement(tt,null,ct.createElement(nt,{bold:!0,backgroundColor:eD.BADGE_BG,color:XO.WHITE},l("review2"," REVIEW ")),ct.createElement(nt,{color:XO.DIM},N>0&&l("pendingComment"," {{v0}} pending comment{{v1}}",{v0:N,v1:1===N?"":"s"}),O>1&&l("round"," · round {{v0}}{{v1}}",{v0:O,v1:D.size>0?` · ${D.size} line${1===D.size?"":"s"} changed`:""}))),k?"approve"===k.kind?ct.createElement(tt,null,ct.createElement(nt,{bold:!0,color:XO.GREEN},l("approve","Approve")," "),ct.createElement(nt,{color:"notes"===k.choice?XO.WHITE:XO.DIM,backgroundColor:"notes"===k.choice?kD:void 0},"notes"===k.choice?"(•)":"( )"," ",l("approveWithComments","with {{count}} comment{{suffix}} as notes",{count:N,suffix:1===N?"":"s"})),ct.createElement(nt,{color:XO.DIMMER}," "),ct.createElement(nt,{color:"original"===k.choice?XO.WHITE:XO.DIM,backgroundColor:"original"===k.choice?kD:void 0},"original"===k.choice?"(•)":"( )"," ",l("originalPlanDiscardComments","original plan · discard comments"))):ct.createElement(tt,null,ct.createElement(nt,{color:XO.YELLOW},l("discardPendingComments","Discard {{count}} pending comment{{suffix}} and exit review?",{count:N,suffix:1===N?"":"s"}))):F.map(e=>{const n="action"===h.kind&&h.id===e.id;return ct.createElement(tt,{key:e.id},ct.createElement(nt,{bold:!0,color:e.color,backgroundColor:n?kD:void 0},n?`${vt.pointer} ${e.label} `:e.label),ct.createElement(nt,{color:XO.DIM}," ",e.chord),e.hint&&ct.createElement(nt,{color:XO.DIMMER}," ",e.hint))}),b&&ct.createElement(nt,{color:XO.YELLOW},b)))},"PlanReader"),UH=createNodeRuntime();function PlanApprovalView({staticKey:e,planContent:n,planFilePath:o,onAutoAccept:r,onCancel:s,onSendFeedback:a}){gt(()=>{hardResetForResize()},[]);const[i,l]=mt(null);gt(()=>{o&&listPlans({runtime:UH}).then(e=>l(e.find(e=>e.filePath===o)??null)).catch(()=>{})},[o]);const c=ut(()=>{if(i)return i;const e=o?.split("/").pop()??"plan.md";return{fileName:e,filePath:o??"",title:derivePlanTitle({content:n,fileName:e}),status:"pending",createdAt:"",updatedAt:"",annotations:[]}},[i,o,n]);return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement($H,{plan:c,variant:"approval",fallbackContent:n,onBack:s,onSubmitFeedback:a,onAutoAccept:r})))}__name(PlanApprovalView,"PlanApprovalView"),Jt(),Jt(),hL();var BH=Date.now(),jH=createNodeRuntime();function matchesTarget(e,n){const o=n.toLowerCase();return e.fileName.toLowerCase()===o||e.fileName.toLowerCase().replace(/\.md$/,"")===o||e.title.toLowerCase()===o}__name(matchesTarget,"matchesTarget");var WH=__name(({sessionId:e,target:n,onClose:o,onSubmitFeedback:r,onExecute:s})=>{const{t:a}=xt(),[i,l]=mt([]),[c,d]=mt([]),[u,m]=mt(!0),[p,g]=mt(null),[h,f]=mt("session"),[y,v]=mt(null),[S,w]=mt(""),[k,C]=mt(0),[b,T]=mt(0),E=useTerminalHeight(),P=pt(!1);gt(()=>{__name(async()=>{try{const[o,r]=await Promise.all([listPlans({runtime:jH,sessionId:e,sessionStartMs:BH}),listPlans({runtime:jH})]);if(l([...o]),d([...r]),n&&!P.current)if(P.current=!0,n===DH){const e=o[0];e&&v(e)}else{const e=r.find(e=>matchesTarget(e,n.trim()));e?v(e):w(n.trim())}}catch(e){g(e instanceof Error?e.message:a("failedToLoadPlans","Failed to load plans"))}finally{m(!1)}},"load")()},[e,b]);const M="session"===h?i:c,I=ut(()=>{const e=S.trim().toLowerCase();return e?M.filter(n=>n.title.toLowerCase().includes(e)||n.fileName.toLowerCase().includes(e)):M},[M,S]),A=E-1,x=Math.max(3,A-9),R=null===y&&!u,{cursor:L}=useListNavigation({items:I,onSelect:__name(e=>v(e),"onSelect"),onCancel:o,searchQuery:S,onSearchChange:w,initialIndex:0,isActive:R});if(gt(()=>{C(e=>clampScrollOffset({cursor:L,total:I.length,maxVisible:x,currentOffset:e}))},[L,I.length,x]),at((e,n)=>{(n.leftArrow||n.rightArrow)&&(f(e=>"session"===e?"all":"session"),C(0))},{isActive:R}),y)return ct.createElement($H,{plan:y,onBack:()=>{v(null),T(e=>e+1)},onSubmitFeedback:r,onExecute:s});if(u)return ct.createElement(oF,{title:a("plans","Plans"),gapAfterHeader:!1},ct.createElement(nt,{color:XO.DIM},a("loadingPlans","Loading plans...")));if(p)return ct.createElement(oF,{title:a("plans","Plans"),titleColor:XO.RED,gapAfterHeader:!1,hint:a("escToClose","Esc to close")},ct.createElement(nt,{color:XO.DIM},p));const O=k,D=k+x,N=I.slice(O,D),F=I.length>x;return ct.createElement(oF,{title:a("plans","Plans"),titleSuffix:ct.createElement(ct.Fragment,null," ",a("planCount","{{count}} plan{{suffix}}",{count:I.length,suffix:1===I.length?"":"s"})),subtitle:ct.createElement(ct.Fragment,null,ct.createElement(nt,{bold:"session"===h,color:"session"===h?JN:XO.DIM},a("thisSession","This session")),ct.createElement(nt,{color:XO.DIMMER},` ${vt.triangleLeftSmall} ${vt.triangleRightSmall} `),ct.createElement(nt,{bold:"all"===h,color:"all"===h?JN:XO.DIM},a("allPlans","All plans"))),footer:ct.createElement(nt,{italic:!0,color:XO.DIM},a("typeToSearchNavigateSwitchTabEnterToOpen","type to search · ↑/↓ navigate · ←/→ switch tab · enter to open"),S?a("escToClear"," · esc to clear"):a("escToClose3"," · esc to close"))},ct.createElement(tt,{marginBottom:1,flexDirection:"column",width:"100%"},ct.createElement(jD,{query:S,resultCount:S?I.length:void 0,placeholder:a("typeToSearchPlans","Type to search plans...")})),0===I.length?ct.createElement(tt,{marginY:1},ct.createElement(nt,{color:XO.GRAY},S?a("noPlansMatch",'No plans match "{{v0}}"',{v0:S}):"session"===h?a("noPlansInThisSessionYetUsePlanOrPlanModeToCreateOnePressForAllPlans","No plans in this session yet — use /plan or plan mode to create one. Press → for all plans."):a("noSavedPlansYetPlansLandInCommandcodePlansWhenYouUsePlanMode","No saved plans yet — plans land in ~/.commandcode/plans when you use plan mode."))):ct.createElement(ct.Fragment,null,ct.createElement(tt,{flexDirection:"column"},N.map((e,n)=>{const o=O+n===L,r=NH()[e.status];return ct.createElement(tt,{key:e.fileName},ct.createElement(nt,{color:o?ZN:XO.GRAY},o?`${vt.pointer} `:" "),ct.createElement(nt,{bold:o,color:o?ZN:XO.WHITE},e.title),ct.createElement(nt,{color:r.color}," ",r.label),(e.version??1)>1&&ct.createElement(nt,{color:XO.DIM}," ","v",e.version),e.annotations.length>0&&ct.createElement(nt,{color:XO.CYAN}," ",e.annotations.length," ",a("comment","comment"),1===e.annotations.length?"":"s"),ct.createElement(nt,{color:XO.DIM}," ",formatRelativeTimeShort({timestamp:e.updatedAt})))})),F&&ct.createElement(tt,{marginTop:1},ct.createElement(nt,{color:XO.DIM},a("showing","Showing")," ",O+1,"–",Math.min(D,I.length)," ",a("of","of")," ",I.length,O>0?a("more3"," · ↑ more"):"",D<I.length?a("more4"," · ↓ more"):""))))},"PlansScreen");function PlansView({staticKey:e,sessionId:n,target:o,onClose:r,onSubmitFeedback:s,onExecute:a}){return ct.useEffect(()=>{hardResetForResize()},[]),ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(tt,{flexDirection:"column",width:"100%"},ct.createElement(WH,{sessionId:n,target:o,onClose:r,onSubmitFeedback:s,onExecute:a})))}function ForkSummary({session:e,isSelected:n,nameColor:o}){if(!e.forkProvenance)return null;const r=n?void 0:XO.DIM,s=e.userRenamed&&e.title?e.title:null;return s?ct.createElement(nt,{color:o},`${s} `,ct.createElement(nt,{color:r},`· ${e.forkProvenance}`)):ct.createElement(nt,{color:r},e.forkProvenance)}__name(PlansView,"PlansView"),Jt(),Jt(),hL(),Jt(),__name(ForkSummary,"ForkSummary");var HH=__name((e,n)=>e.padEnd(n),"padCell"),GH=__name(e=>e instanceof Error&&e.message?e.message:t("unknownError","Unknown error"),"getActionErrorMessage");function resolveRowColor(e){return e.isDeletePending?XO.RED:e.isCurrentSession?ZO:e.isSelected?XO.WHITE:XO.GRAY}function renderRowSummary(e){const{session:n,isSelected:o,nameColor:r}=e;if(n.forkProvenance)return ct.createElement(ForkSummary,{session:n,isSelected:o,nameColor:r});const s=getSessionSummary({session:n});return n.userRenamed&&n.title?ct.createElement(nt,{color:r},s):s}__name(resolveRowColor,"resolveRowColor"),__name(renderRowSummary,"renderRowSummary");var VH=["recent","created","messages"],KH=__name(()=>({recent:t("recent","Recent"),created:t("created","Created"),messages:t("messages","Messages")}),"SORT_MODE_LABEL");function nextSortMode(e){const n=VH.indexOf(e);return VH[(n+1)%VH.length]}function sortSessions(e,n){return"created"===n?[...e].sort((e,n)=>Date.parse(n.createdAt)-Date.parse(e.createdAt)):"messages"===n?[...e].sort((e,n)=>n.messageCount-e.messageCount):e}function matchesSearch2(e,n){const o=n.toLowerCase().split(/\s+/).filter(Boolean);if(0===o.length)return!0;const r=[e.id,e.title??"",e.firstMessage,e.gitBranch??""].join(" ").toLowerCase();return o.every(e=>r.includes(e))}function getFilteredEmptyState(e){return e.namedOnly?{text:t("noNamedSessions","No named sessions."),hint:t("pressCtrlNToShowAll","Press ctrl+n to show all.")}:e.searchQuery?{text:t("noSessionsMatch",'No sessions match "{{v0}}"',{v0:e.searchQuery}),hint:t("pressEscToClearSearch","Press Esc to clear search.")}:e.branchFilter&&e.currentBranch?{text:t("noSessionsFoundForBranch",'No sessions found for branch "{{v0}}"',{v0:e.currentBranch}),hint:t("pressCtrlBToShowAllBranchesEscToCancel","Press ctrl+b to show all branches, Esc to cancel")}:{text:t("noPreviousSessionsFound","No previous sessions found"),hint:t("pressEscToGoBack","Press Esc to go back")}}function resolveProjectBaseDir(){const e=getCommandSessionRuntime();return getProjectSessionDir({env:e.env(),cwd:e.cwd()})}__name(nextSortMode,"nextSortMode"),__name(sortSessions,"sortSessions"),__name(matchesSearch2,"matchesSearch"),__name(getFilteredEmptyState,"getFilteredEmptyState"),__name(resolveProjectBaseDir,"resolveProjectBaseDir");var zH=__name(({onSelectSession:e,onClose:n,currentSessionId:o})=>{const{t:r}=xt(),[s,a]=mt([]),[i,l]=mt(0),[c,d]=mt(0),[u,m]=mt(!0),[p,g]=mt(!1),[h,f]=mt(!1),[y,v]=mt(null),[S,w]=mt(null),[k,C]=mt(""),[b,T]=mt(!1),[E,P]=mt("recent"),[M,I]=mt(!1),[A,x]=mt("list"),[R,L]=mt(null),[O,D]=mt(""),[N,F]=mt(null),[_]=mt(()=>getCurrentGitBranch()),[$]=mt(()=>resolveProjectBaseDir()),U=useTerminalHeight(),B=Math.max(6,U-19),j=ht(async()=>{m(!0);const e=await listCommandSessions();a(e),m(!1)},[]);gt(()=>{j()},[j]),gt(()=>{if(!S)return;const e=setTimeout(()=>w(null),3e3);return()=>clearTimeout(e)},[S]);const W=ht(async e=>{try{const n=getCommandSessionRuntime(),{method:o}=await deleteSessionV3({runtime:n,baseDir:$,id:e});f(!1),v(null),l(0),d(0),w("trash"===o?r("sessionMovedToTrash","Session moved to trash"):r("sessionDeleted","Session deleted")),await j()}catch(e){f(!1),v(r("failedToDeleteSession","Failed to delete session: {{v0}}",{v0:GH(e)}))}},[j,$]),H=ht(async e=>{const n=R;if(n)try{const o=getCommandSessionRuntime();await renameSessionFile({runtime:o,cwd:o.cwd(),baseDir:$,id:n,name:e}),x("list"),L(null),F(null),await j()}catch(e){F(r("failedToRenameSession","Failed to rename session: {{v0}}",{v0:GH(e)}))}else x("list")},[R,j,$]),G=filterSessionsByBranch({sessions:s,branchFilter:p,currentBranch:_}),V=M?G.filter(e=>e.userRenamed):G,K=sortSessions(k?V.filter(e=>matchesSearch2(e,k)):V,E);if(gt(()=>{l(e=>Math.min(e,Math.max(0,K.length-1)))},[K.length]),at((s,a)=>{if("rename"===A)return a.escape?(x("list"),void L(null)):void 0;if(h){if(!a.return)return void f(!1);if(K.length>0&&i<K.length){const e=K[i];W(e.id)}}else{if(a.delete||isCtrlKey({inputChar:s,key:a,letter:"d",ctrlCode:4})){if(0===K.length)return;return K[i]?.id===o?void v(r("cannotDeleteTheCurrentSession","Cannot delete the current session")):(v(null),void f(!0))}if(isCtrlKey({inputChar:s,key:a,letter:"r",ctrlCode:18})){if(u)return;const e=K[i];if(!e)return;return F(null),D(e.title??""),L(e.id),void x("rename")}if(isCtrlKey({inputChar:s,key:a,letter:"p",ctrlCode:16}))T(e=>!e);else{if(!isCtrlKey({inputChar:s,key:a,letter:"s",ctrlCode:19}))return isCtrlKey({inputChar:s,key:a,letter:"n",ctrlCode:14})?(I(e=>!e),l(0),void d(0)):a.escape?k?(C(""),l(0),void d(0)):void n():isCtrlKey({inputChar:s,key:a,letter:"b",ctrlCode:2})?(g(e=>!e),l(0),void d(0)):void(a.upArrow?l(e=>{const n=Math.max(0,e-1);return n<c&&d(n),n}):a.downArrow?l(e=>{const n=Math.min(K.length-1,e+1);return n>=c+B&&d(n-B+1),n}):a.return?K.length>0&&i<K.length&&e(K[i].id):a.backspace?k&&(C(e=>e.slice(0,-1)),l(0),d(0)):!a.ctrl&&!a.meta&&!a.tab&&s&&1===s.length&&s>=" "&&(C(e=>e+s),l(0),d(0)));P(e=>nextSortMode(e))}}}),u)return ct.createElement(tt,{flexDirection:"column",paddingLeft:2},ct.createElement($F,{label:r("loadingSessions","Loading sessions")}));if(0===s.length)return ct.createElement(tt,{flexDirection:"column",paddingLeft:2},ct.createElement(WF,{message:r("noPreviousSessionsFound","No previous sessions found"),hint:r("pressEscToGoBack","Press Esc to go back")}));const z=K.slice(c,c+B),q=i<K.length?K[i]:null,Y=h&&q?r("deletePressEnterToConfirmAnyOtherKeyToCancel",'Delete "{{v0}}"? Press Enter to confirm, any other key to cancel.',{v0:getSessionSummary({session:q})}):null,J=getFilteredEmptyState({namedOnly:M,searchQuery:k,branchFilter:p,currentBranch:_});return ct.createElement(oF,{title:r("resumeSession","Resume Session"),subtitle:r("sortNameBranch","Sort: {{v0}} · Name: {{v1}} · Branch: {{v2}}",{v0:KH()[E],v1:M?"Named":"All",v2:p?_??"unknown":"All"})},ct.createElement(tt,{marginBottom:1,width:"100%"},ct.createElement(jD,{query:k,resultCount:k?K.length:void 0,placeholder:r("typeToSearchSessions","Type to search sessions...")})),ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:cD,bold:!0},HH("#",6),HH(r("modified","Modified"),12),HH(r("gitBranch","Git Branch"),22),HH(r("messages","Messages"),12),r("summary","Summary"),b?r("path2"," · Path"):"")),0===K.length?ct.createElement(tt,{marginBottom:1},ct.createElement(WF,{message:J.text,hint:J.hint})):ct.createElement(tt,{flexDirection:"column"},z.map((e,n)=>{const r=c+n,s=i===r,a=h&&s,l=a?void 0:XO.YELLOW,d=resolveRowColor({isDeletePending:a,isCurrentSession:e.id===o,isSelected:s}),u=truncateString2({text:e.gitBranch||"-",maxChars:20}),m=b?toRelativePath(`${$}/${e.id}.jsonl`):null;return ct.createElement(nt,{key:e.id,color:d,backgroundColor:s?kD:void 0,bold:s,wrap:"truncate-end"},HH(`${r+1}.`,6),HH(formatRelativeTimeShort({timestamp:e.lastModified}),12),HH(u,22),HH(String(e.messageCount),12),renderRowSummary({session:e,isSelected:s,nameColor:l}),m?ct.createElement(nt,{color:XO.DIM},` ${m}`):null," ")})),ct.createElement(tt,{marginTop:1}),"rename"===A&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.CYAN},r("rename","Rename: ")),ct.createElement(TextInput,{value:O,onChange:D,onSubmit:H,singleLine:!0,stripBracketedPaste:!0})),N&&ct.createElement(tt,{marginBottom:1},ct.createElement(UF,{glyph:!1},N)),Y&&ct.createElement(tt,{marginBottom:1},ct.createElement(nt,{color:XO.RED},Y)),y&&ct.createElement(tt,{marginBottom:1},ct.createElement(UF,{glyph:!1},y)),S&&ct.createElement(tt,{marginBottom:1},ct.createElement(BF,{glyph:!1},S)),K.length>B&&ct.createElement(nt,{color:XO.DIM},r("showing","Showing")," ",c+1,"–",Math.min(c+B,K.length)," ",r("of","of")," ",K.length,c>0?r("more3"," · ↑ more"):"",c+B<K.length?r("more4"," · ↓ more"):""),ct.createElement(YN,{marginTop:0,hints:[r("enterResume","enter resume"),r("ctrlSSort","ctrl+s sort"),r("ctrlNNamed","ctrl+n named"),r("ctrlRRename","ctrl+r rename"),r("ctrlDDelete","ctrl+d delete"),r("ctrlPPath","ctrl+p path"),r("ctrlBBranch","ctrl+b branch"),r("typeToSearch","type to search")]}))},"SessionsResumeTable"),qH=dt(__name(function SessionView2({onSelectSession:e,onClose:n,currentSessionId:o}){return ct.createElement(zH,{onSelectSession:e,onClose:n,currentSessionId:o})},"SessionView"));Jt(),Jt();var YH=__name(({onTrust:e,onExit:n})=>{const{t:o}=xt(),{exit:r}=it(),[s,a]=mt(1),i=process.cwd(),l=K(),c=l&&i.startsWith(l)?`~${i.slice(l.length)}`:i;return at((o,i)=>{if(i.upArrow||i.downArrow)a(1===s?2:1);else{if(i.return)return 1===s?void e():(n(),void r());if("1"!==o)return"2"===o?(n(),void r()):void((i.escape||i.ctrl&&"c"===o)&&(n(),r()));e()}}),ct.createElement(oF,{title:o("doYouTrustTheFilesInThisFolder","Do you trust the files in this folder?"),subtitle:c,hint:o("toNavigateEnterToSelectEscToExit","↑/↓ to navigate · enter to select · esc to exit")},ct.createElement(tt,{flexDirection:"column"},ct.createElement(nt,null,o("mayReadFilesInThisFolderReadingUntrustedFilesMayLeadToBehaveInUnexpectedWays","{{v0}} may read files in this folder. Reading untrusted files may lead {{v1}} to behave in unexpected ways.",{v0:"Command Code",v1:"Command Code"})),ct.createElement(tt,{marginTop:1},ct.createElement(nt,null,o("withYourPermissionMayExecuteFilesInThisFolderExecutingUntrustedCodeIsUnsafe","With your permission {{v0}} may execute files in this folder. Executing untrusted code is unsafe.",{v0:"Command Code"})))),ct.createElement(tt,{marginTop:1,flexDirection:"column"},ct.createElement(tt,null,ct.createElement(s$,{isSelected:1===s}),ct.createElement(a$,{isSelected:1===s,idleColor:tF}," ",o("1YesProceed","1. Yes, proceed"))),ct.createElement(tt,null,ct.createElement(s$,{isSelected:2===s}),ct.createElement(a$,{isSelected:2===s,idleColor:tF}," ",o("2NoExit","2. No, exit")))))},"TrustPrompt"),JH=dt(__name(function TrustView2({staticKey:e,onTrust:n,onExit:o}){return ct.createElement(ct.Fragment,null,ct.createElement(kN,{staticKey:e}),ct.createElement(YH,{onTrust:n,onExit:o}))},"TrustView"));function useAgentSlashCommandQueue({sessionId:e,isCmdCodeBusy:n,onCommand:o}){const r=pt(!1),s=pt(()=>{});s.current=()=>{if(n||r.current)return;const a=drainAgentSlashCommands({sessionId:e});0!==a.length&&(r.current=!0,(async()=>{try{for(const e of a)await o(e.command,void 0,void 0,Wj(e.source))}finally{r.current=!1}hasAgentSlashCommands({sessionId:e})&&s.current()})())},gt(()=>{s.current()},[n,e,o]),gt(()=>subscribeAgentSlashCommands(()=>{s.current()}),[])}function useAuth(){const[e,n]=mt(()=>getConfiguredProviderSync()),[o,r]=mt(()=>getConfiguredModel()),[s,a]=mt(null),[i,l]=mt(!1),[c,d]=mt(!1);return{currentProvider:e,setCurrentProvider:n,currentModel:o,setCurrentModel:r,authComponentInfo:s,setAuthComponentInfo:a,showProviderNotification:i,setShowProviderNotification:l,premiumCreditsExhausted:c,setPremiumCreditsExhausted:d,providerNotificationTimer:pt(null),modelNotificationTimer:pt(null)}}Jt(),__name(useAgentSlashCommandQueue,"useAgentSlashCommandQueue"),Jt(),hL(),__name(useAuth,"useAuth"),Jt(),hL();var QH=__name(()=>{const[e,n]=mt({isExecuting:!1,currentCommand:null});return{executeBash:ht(async(e,o,r)=>{n({isExecuting:!0,currentCommand:e});try{const n=await runUserBashCommand({command:e});o(o=>completePendingBashEntry({feed:o,command:e,output:n})),r()}finally{n({isExecuting:!1,currentCommand:null})}},[]),executionState:e}},"useBashExecution");Jt(),Jt(),hL(),Jt(),hL();var XH={detectIDE:ZT,isIdeIpcConnected:__name(async e=>{const n=cE(),o=await n.connect(e);return n.disconnect(),o},"isIdeIpcConnected"),log:dlog,platform:__name(()=>process.platform,"platform")};function rehydrate(e){if("run_error"!==e.type)return e;const n=e.error??{};return{type:"run_error",error:"number"==typeof n.status?co.generate(n.status,{error:{message:n.message,code:n.code}},n.message??t("runFailed","Run failed"),void 0):Object.assign(new Error(n.message??t("runFailed","Run failed")),{name:n.name??"Error"})}}Jt(),hL(),__name(rehydrate,"rehydrate");var ZH="";function getLastSandboxReply(){return ZH}function createSandboxRunQuery(e){return async({input:n,onEvent:o,additionalContent:r,maxTurns:s})=>{const a=new Map,i=new Map;let l=null,c=null,d=-1,u=!1;const m=e.onAgentEvent(e=>{"run_error"===e.type&&(u=!0),o?.(rehydrate(e))}),p=e.onNotification(e=>{if("turn/completed"!==e.method)return;const n=e.params;a.set(n.turnId,n),i.get(n.turnId)?.(n)}),g=e.onEnded(n=>{c=n,d=e.streamNumber(),l?.(n)}),h=e.onGap(()=>{e.request({method:"session/state"}).then(e=>{const n=e.result?.busy;if(!1===n)for(const[e,n]of i)n({turnId:e,stopReason:"end_turn",finalText:"",turnCount:0}),i.delete(e)}).catch(()=>{})}),f=__name(n=>{const o=a.get(n);if(o)return Promise.resolve(o);const r=__name(e=>new Error(t("theTurnDidNotFinish","The turn did not finish: {{v0}}.",{v0:e})),"unfinished");return c&&d===e.streamNumber()?Promise.reject(r(c)):new Promise((e,o)=>{i.set(n,e),l=__name(e=>o(r(e)),"ended")})},"awaitTurn"),y=__name(async(n,o)=>{takeInterruptWanted();const r=await e.request({method:"turn/start",params:{input:n,...o?.length?{additionalContent:o}:{},...void 0===s?{}:{maxTurns:s}}}),a=r.error;if(a)throw new Error(a.message??t("theSandboxRefusedTheTurn","The cloud session refused the turn"));return takeInterruptWanted()&&e.request({method:"turn/interrupt"}).catch(()=>{}),f(r.result.turnId)},"start"),v=__name(async n=>{const o=await e.request({method:"session/state"}).catch(()=>null),r=o?.result;return void 0===r||!0===r.busy&&r.turnId===n.turnId||a.has(n.turnId)?f(n.turnId):(await n.reload().catch(()=>{}),{turnId:n.turnId,stopReason:"end_turn",finalText:"",turnCount:0})},"watchAdopted"),S=n===E_?takeAdoptedTurn():null;try{let e=S?await v(S):await y(n,r);for(;e.leftover?.length&&"interrupted"!==e.stopReason;)e=await y(joinLeftover(e.leftover));return e.error&&!u&&o?.(rehydrate({type:"run_error",error:e.error})),await(S?.afterward().catch(()=>{})),ZH=e.finalText,{finalText:e.finalText,stopReason:e.stopReason,turnCount:e.turnCount}}finally{m(),p(),g(),h()}}}function joinLeftover(e){const n=[];for(const o of e)"string"==typeof o?n.push({type:"text",text:o}):n.push(...o);return n.every(e=>"text"===e.type)?n.map(e=>e.text).join("\n\n"):n}async function steerSandbox(e){const n=(e.images??[]).map(e=>({type:"image",source:{type:"base64",media_type:e.mediaType,data:e.data}})),o=n.length>0?[...n,{type:"text",text:e.input}]:e.input;return void 0===(await e.connection.request({method:"turn/steer",params:{input:o}})).error}function resolveProviderOrReport(e){return resolveCommandProviderId(e.provider)||(e.setFeed(n=>[...n,sf(t("unknownProviderRunConnectToSeeAvailableProviders","Unknown provider '{{v0}}'. Run /connect to see available providers.",{v0:e.provider}))]),null)}async function handleLoginCommand({provider:e,setFeed:n,setShowLoginOverlay:o,setAuthComponentInfo:r}){const s=e?.trim();if(s){const e=resolveProviderOrReport({provider:s,setFeed:n});if(!e)return;const o=getProviderConfig(e),a=o?.authComponent;return o?.requiresAuth&&a?r?void r({provider:e,Component:a}):void n(e=>[...e,sf(t("providerLoginIsNotAvailableHere","Provider login is not available here."))]):void n(n=>[...n,Zh(t("doesNotUseProviderLoginRunLoginWithoutAProviderForCommandCodeAccountAuth","{{v0}} does not use provider login. Run /login without a provider for Command Code account auth.",{v0:getProviderDisplayName(e)}))])}const a=await resolveLoginCommand({onDebugError:__name(e=>{process.env.DEBUG&&console.error("Failed to load credentials for display:",e)},"onDebugError")});"already-logged-in"!==a.kind?o(!0):n(e=>[...e,Zh(a.message)])}function handleLoginComplete({success:e,message:n,setShowLoginOverlay:o,setFeed:r,setStatus:s}){if(o(!1),!e)return r(e=>[...e,sf(n)]),void s(t("ready","Ready..."));r(e=>[...e,Zh(n)]),invalidateBillingContext(),s(t("ready","Ready..."))}function handleLoginCancel({setShowLoginOverlay:e,setFeed:n,setStatus:o}){e(!1),n(e=>[...e,Zh(formatAuthCancelled())]),o(t("ready","Ready..."))}async function handleLogoutCommand({provider:e,setFeed:n,setRetryAttempt:o,setIsCmdCodeBusy:r}){const s=e?.trim();if(s){const e=resolveProviderOrReport({provider:s,setFeed:n});if(!e)return;const o=getProviderConfig(e);if(!o?.requiresAuth)return void n(n=>[...n,Zh(t("doesNotUseProviderLogoutRunLogoutWithoutAProviderForCommandCodeAccountAuth","{{v0}} does not use provider logout. Run /logout without a provider for Command Code account auth.",{v0:getProviderDisplayName(e)}))]);try{const o=await providerLogout({provider:e}),r=getProviderDisplayName(e);n(e=>[...e,Zh(o?t("loggedOutOf","Logged out of {{v0}}",{v0:r}):t("noSavedCredentialFound","No saved {{v0}} credential found",{v0:r}))])}catch(o){const r=o instanceof Error?o.message:t("unknownError","Unknown error");n(n=>[...n,sf(t("failedToLogOutOf","Failed to log out of {{v0}}: {{v1}}",{v0:getProviderDisplayName(e),v1:r}))])}return}const a=await runCommandLogoutFlow({env:process.env});a.success&&invalidateBillingContext(),a.turnInterrupted&&(o(null),r(!1)),n(e=>[...e,"error"===a.notice.kind?sf(a.notice.message):Zh(a.notice.message)])}function parseChangelogVersions(e){return e.split(/^(?=## )/m).map(e=>e.trim()).filter(e=>e.startsWith("## "))}function findChangelogPath(e){let n=r(g(e));for(let e=0;e<6;e++){const e=o(n,"CHANGELOG.md");if(L(e))return e;const s=r(n);if(s===n)return null;n=s}return null}function handleChangelog({setFeed:e,rawArguments:n="",moduleUrl:o}){const r=findChangelogPath(o??import.meta.url);if(!r)return void e(e=>[...e,Zh(t("noChangelogAvailableInThisBuild","No changelog available in this build."))]);const s=parseChangelogVersions(O(r,"utf8"));if(0===s.length)return void e(e=>[...e,Zh(t("theChangelogIsEmpty","The changelog is empty."))]);const a="all"===n.trim().toLowerCase()?s.length:10,i=s.slice(0,a).join("\n\n"),l=s.length-a,c=l>0?t("andEarlierReleasesChangelogAll","\n\n_…and {{v0}} earlier releases · /changelog all_",{v0:l}):"";e(e=>[...e,rf(t("whatSNew","**What's new**\n\n{{v0}}{{v1}}",{v0:i,v1:c}))])}async function releaseHarness(e){if(e){try{await(hO(e)?.flush())}catch{}fO(e)}}async function handleSelectSession({selectedSessionId:e,previousSessionId:n,sessionLoadIdRef:o,setFeed:r,setLiveEntries:s,setSessionId:a,setShowSessionSelector:i,setSessionLoaded:l,setStaticKey:c,setShareInfo:d,setCurrentModel:u,inTuiResume:m=!1}){const p=crypto.randomUUID();o.current=p;const g=__name(()=>o.current!==p,"isStale");n&&n!==e&&await releaseHarness(n),r([]),s([]),clearSessionTodos(),setNextSessionStartSource("resume"),a(e),i(!1),l(!0);const h=await resolveSessionSwitch({sessionId:e,inTuiResume:m,isModelSelectable:__name(async e=>(await loadCustomProviderModels(),Boolean(GL(e))||isByok({model:e})),"isModelSelectable"),isStale:g,onDebug:dlog});if("superseded"===h.status)return;if("error"===h.status){if(g())return;return console.error("Failed to load session:",h.message),r([sf(h.message)]),i(!1),l(!1),void a(crypto.randomUUID())}if(h.adoptedModel&&u?.(h.adoptedModel),h.shareInfo&&d({url:h.shareInfo.url,secret:h.shareInfo.secret}),g())return;r(h.feed);const f=seedTodosFromFeedEntries(h.feed);hO(e)?.applyTodoUserEdit({todos:f}),h.bannerModelChanged||isWrappedChild()?hardResetForResize():sN(),c(e=>e+1)}async function handleCloneCommand(e){const n=hO(e.sessionId);if(n)try{const o=await n.cloneSession();if(!o)return void e.setFeed(e=>[...e,Zh(t("nothingToCloneYet","Nothing to clone yet."))]);e.setFeed(e=>[...e,Zh(t("clonedToSwitching","Cloned to {{v0}} — switching…",{v0:o.newId}))]),await handleSelectSession({selectedSessionId:o.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0})}catch{e.setFeed(e=>[...e,sf(t("couldnTCloneTheSessionStorageErrorStayingOnTheCurrentSession","Couldn't clone the session (storage error). Staying on the current session."))])}else e.setFeed(e=>[...e,Zh(t("nothingToCloneYet","Nothing to clone yet."))])}async function handleCompactCommand({sessionId:e,setFeed:n,setStatus:o,setIsCmdCodeBusy:r,setContextUsage:s,setStaticKey:a}){try{r(!0),o(t("compactingConversation","Compacting conversation..."));const i=await gO({sessionId:e,baseUrl:getApiBaseUrl()}),l=await i.compact();sN(),a(e=>e+1);const c=buildCompactCommandNotice(l);n(e=>[...e,Zh(c.message)]),r(!1),o(t("ready","Ready...")),s(buildPostCompactContextUsage())}catch(e){n(n=>[...n,sf(buildCompactErrorNotice(e).message)]),r(!1),o(t("ready","Ready..."))}}__name(getLastSandboxReply,"getLastSandboxReply"),__name(createSandboxRunQuery,"createSandboxRunQuery"),__name(joinLeftover,"joinLeftover"),__name(steerSandbox,"steerSandbox"),Jt(),hL(),__name(resolveProviderOrReport,"resolveProviderOrReport"),__name(handleLoginCommand,"handleLoginCommand"),__name(handleLoginComplete,"handleLoginComplete"),__name(handleLoginCancel,"handleLoginCancel"),__name(handleLogoutCommand,"handleLogoutCommand"),Jt(),hL(),__name(parseChangelogVersions,"parseChangelogVersions"),__name(findChangelogPath,"findChangelogPath"),__name(handleChangelog,"handleChangelog"),Jt(),hL(),Jt(),hL(),__name(releaseHarness,"releaseHarness"),__name(handleSelectSession,"handleSelectSession"),__name(handleCloneCommand,"handleCloneCommand"),Jt(),hL(),__name(handleCompactCommand,"handleCompactCommand"),Jt(),hL();var eG=__name(e=>{const n=e.metadata?.blockOf;return"string"==typeof n?n:e.id},"groupIdOf"),tG=__name(e=>e.replace(/^(?:[^\S\n]*\n)+/,"").replace(/\s+$/,""),"stripOuterBlankLines");function findLastAssistantText(e){for(let n=e.length-1;n>=0;n--){const o=e[n];if(!o||"assistant"!==o.role)continue;if(!o.input.trim())continue;const r=eG(o),s=[];for(let o=n;o>=0;o--){const n=e[o];if(!n||"assistant"!==n.role||eG(n)!==r)break;const a=tG(n.input);a&&s.unshift(a)}return s.length>1?s.join("\n\n"):o.input}return null}async function handleCopy({feed:e,setFeed:n}){const o=findLastAssistantText(e);if(!o)return void n(e=>[...e,Zh(t("nothingToCopyYetNoReplyInThisSession","Nothing to copy yet — no reply in this session."))]);const r=await writeClipboardText(o),s=o.length.toLocaleString("en-US");n(e=>[...e,Zh(r?t("copiedTheLastReplyToTheClipboardChars","Copied the last reply to the clipboard ({{v0}} chars).",{v0:s}):t("couldNotReachTheClipboardIsThisAHeadlessTerminal","Could not reach the clipboard — is this a headless terminal?"))])}function getAuthKey3(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function trackFirstMessage(){(async()=>{await getAuthKey3()&&await detectAndTrackFirstMessage({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),log:dlog})})().catch(()=>{})}function isWhitespaceOnly3(e){return 0===e.trim().length}function routeTodoWriteEntry(e){const{entry:n,setFeed:o,setLiveEntries:r}=e;if("running"===n.metadata?.status)return!0;const s="output"in n?n.output:void 0,a="string"==typeof s?Ef(s):null;if(!a)return!1;const i=projectUserEdits(a);return i.every(e=>"completed"===e.status)?(clearSessionTodos(),i.length>0&&routeHarnessFeedEntry({entry:{...n,output:JSON.stringify(i)},setFeed:o,setLiveEntries:r}),!0):(setSessionTodos(a),!0)}function createBlockCommittingRouter(e){const{setFeed:n,setLiveEntries:o}=e,r=new Map;function buildBlockEntries(e,n,o){const r=[];for(const s of o){if(isWhitespaceOnly3(s))continue;const o=n.committedEntryCount;n.committedEntryCount+=1;const{status:a,...i}=e.metadata??{};r.push({...e,id:`${e.id}-block-${o}`,input:s,metadata:{...i,continuation:o>0,blockOf:e.id}})}return r}function routeRunningAssistant(e){let s=r.get(e.id);s||(s={stream:createBlockStream(),committedEntryCount:0},r.set(e.id,s));const a=s.stream.advance(e.input),i=buildBlockEntries(e,s,a.newlyCompleted);i.length>0&&n(e=>[...e,...i]);const l={...e,input:a.openTail,metadata:{...e.metadata,continuation:s.committedEntryCount>0}};o(n=>{const o=n.findIndex(n=>n.id===e.id);if(-1===o)return[...n,l];const r=[...n];return r[o]=l,r})}function routeFinalAssistant(e){o(n=>n.filter(n=>n.id!==e.id));const s=r.get(e.id);if(!s)return void(isWhitespaceOnly3(e.input)||n(n=>[...n,e]));r.delete(e.id);const a=s.stream.finalize(e.input);if(0===s.committedEntryCount&&a.remaining.length<=1)return void(isWhitespaceOnly3(e.input)||n(n=>[...n,e]));const i=buildBlockEntries(e,s,a.remaining);i.length>0&&n(e=>[...e,...i])}return __name(buildBlockEntries,"buildBlockEntries"),__name(routeRunningAssistant,"routeRunningAssistant"),__name(routeFinalAssistant,"routeFinalAssistant"),__name(function routeEntry(e){if(isDiscardedEntry(e))return r.delete(e.id),void routeHarnessFeedEntry({entry:e,setFeed:n,setLiveEntries:o});if("assistant"===e.role)"running"!==e.metadata?.status?routeFinalAssistant(e):routeRunningAssistant(e);else{if("tool"===e.role&&"todo_write"===e.name&&routeTodoWriteEntry({entry:e,setFeed:n,setLiveEntries:o}))return;routeHarnessFeedEntry({entry:e,setFeed:n,setLiveEntries:o})}},"routeEntry")}function takeSentSteers(e){const n=[],o=[];for(const r of e.queued){const s=e.eligible?.(r)??!0;r.sentToSandbox&&s&&n.length<e.count?n.push(r):o.push(r)}return{taken:n,rest:o}}function replaceQueue(e){e.queue.queuedRef.current=e.next,e.queue.setQueued(()=>e.next)}function echoes(e){return e.flatMap(e=>{if(e.isMeta)return[];const n=Xh(e.displayMessage??e.input);return e.ideHint&&(n.metadata={ideHint:e.ideHint}),[n]})}function moveSteers(e){const{taken:n,rest:o}=takeSentSteers({queued:e.queue.queuedRef.current,count:e.count??Number.POSITIVE_INFINITY,...e.eligible?{eligible:e.eligible}:{}});if(0===n.length)return;if(replaceQueue({queue:e.queue,next:o}),"feed"===e.to)return void e.queue.setFeed(e=>[...e,...echoes(n)]);const r=formatQueuedMessagesForRequeue(n);e.queue.setInput(e=>mergeRequeuedInput({queuedText:r,currentInput:e}))}__name(findLastAssistantText,"findLastAssistantText"),__name(handleCopy,"handleCopy"),Jt(),hL(),Jt(),hL(),Jt(),hL(),__name(getAuthKey3,"getAuthKey"),__name(trackFirstMessage,"trackFirstMessage"),Jt(),hL(),__name(isWhitespaceOnly3,"isWhitespaceOnly"),__name(routeTodoWriteEntry,"routeTodoWriteEntry"),__name(createBlockCommittingRouter,"createBlockCommittingRouter"),Jt(),Jt(),hL(),__name(takeSentSteers,"takeSentSteers"),__name(replaceQueue,"replaceQueue"),__name(echoes,"echoes"),__name(moveSteers,"moveSteers"),Jt();var nG=new WeakMap,oG=__name(e=>nG.get(e),"steerQueueFor");function registerSteerQueue(e){return!nG.has(e.connection)&&(nG.set(e.connection,e),!0)}function onTurnCompleted(e){const{queue:n}=e;n.turnsEnded+=1;const o=__name(e=>!n.pending.has(e),"settled");if(!n.connection.supports("steers_delivered"))return n.unclaimedLeftovers=Number.POSITIVE_INFINITY,void moveSteers({queue:n,to:"feed",eligible:o});const r=n.queuedRef.current.length;moveSteers({queue:n,to:"feed",count:e.leftovers,eligible:o});const s=r-n.queuedRef.current.length;n.unclaimedLeftovers=e.leftovers-s,moveSteers({queue:n,to:"input",eligible:o})}function wireSteerQueue(e){const n={...e,pending:new Set,turnsEnded:0,unclaimedLeftovers:0};if(!registerSteerQueue(n))return;const o=__name(e=>!n.pending.has(e),"settled"),r=__name(()=>{n.turnsEnded+=1,n.unclaimedLeftovers=0},"disrupted");e.connection.onEnded(()=>{r(),moveSteers({queue:n,to:"input",eligible:o})}),e.connection.onGap(()=>{r(),moveSteers({queue:n,to:"feed",eligible:o})}),e.connection.onNotification(e=>{const r=e.params??{};if("turn/steers_delivered"===e.method){const e=r.count??0,s=n.queuedRef.current.length;moveSteers({queue:n,to:"feed",count:e,eligible:o});const a=s-n.queuedRef.current.length;return void moveSteers({queue:n,to:"feed",count:e-a})}"turn/completed"===e.method&&onTurnCompleted({queue:n,leftovers:r.leftover?.length??0})})}function settleLate(e){const{queue:n}=e,o=n.unclaimedLeftovers>0;o&&(n.unclaimedLeftovers-=1),moveSteers({queue:n,to:o?"feed":"input",eligible:__name(n=>n===e.steer,"eligible")})}function dropSteer(e){const n=e.queue.queuedRef.current.filter(n=>n!==e.steer);e.queue.queuedRef.current=n,e.queue.setQueued(()=>n)}async function sendSteer(e){const n=oG(e.connection);if(!n)return e.send().catch(()=>!1);const o={...e.message,sentToSandbox:!0},r=n.turnsEnded;n.pending.add(o),n.queuedRef.current=[...n.queuedRef.current,o],n.setQueued(()=>n.queuedRef.current);const s=await e.send().catch(()=>!1);return n.pending.delete(o),!n.queuedRef.current.includes(o)||(s?(n.turnsEnded!==r&&settleLate({queue:n,steer:o}),!0):(dropSteer({queue:n,steer:o}),!1))}async function getBillingLink({billingLink:e,setBillingLink:n}){return resolveCommandBillingLink({existingBillingLink:e,client:createApiClient({baseUrl:getApiBaseUrl()}),onResolvedBillingLink:n})}async function runModInputInterception(e){const n=getActiveModHost();if(!n||"user"!==e.role||e.isAutomated||e.isMeta||e.isGoalContinuation||0===e.input.length||(e.images?.length??0)>0)return{action:"continue"};try{return await n.transformInput({text:e.input})}catch{return{action:"continue"}}}async function handleSubmit(e){const{role:n,input:o,images:r,imageTokenPaths:s,ideContext:a,ideHint:i,displayMessage:l,isAutomated:c,isMeta:d,source:u,isRelayed:m,hiddenMessages:p,isGoalContinuation:g,isGoalBootstrap:h,suppressUserEcho:f,feed:y,setFeed:v,setLiveEntries:S,isCmdCodeBusy:w,setIsCmdCodeBusy:k,setQueuedMessages:C,setStatus:b,setInteractionTokens:T,updateStatus:E,setUpdateStatus:P,billingLink:M,setBillingLink:I,currentModel:A,currentProvider:x,premiumCreditsExhausted:R,setPremiumCreditsExhausted:L,setCurrentModel:O,sessionId:D,isSubmittingRef:N,setInput:F,setStaticKey:_,executeBash:$}=e,U=resolveSubmitStartPlan({role:n,input:o,isCmdCodeBusy:w,isSubmitting:N.current,displayMessage:l,isAutomated:c,isMeta:d,source:u,isRelayed:m,hiddenMessages:p,images:r,ideContext:a,ideHint:i});if("skip"===U.kind&&!o.length)return U.outcome;if(E&&P(null),T(0),"skip"===U.kind)return U.outcome;if("bash"===U.kind){const e=sandboxBashMessage();if(e)return v([...y,Zh(e)]),F(""),"completed";N.current=!0;const n=of(o);return v([...y,n]),F(""),await $(o,e=>{v(e)},()=>{sN(),_(e=>e+1)}),N.current=!1,"completed"}if("queue"===U.kind){const e=getSandboxConnection();return e&&!d&&(c||F(""),await sendSteer({connection:e,message:U.queuedMessage,send:__name(()=>steerSandbox({connection:e,input:o,...r?{images:r}:{}}),"send")}))||(C(e=>[...e,U.queuedMessage]),c||F("")),U.outcome}N.current=!0;const B=await runModInputInterception(e);if("handled"===B.action){N.current=!1;const e=B.message;return e&&v(n=>[...n,Zh(e)]),"skipped"}const j="transform"===B.action?B.text:o;await loadCustomProviderModels();const W=isSandboxMode()?null:await checkOAuthSetupRequired({currentProvider:x??null,isByokModel:isByok({model:A??""}),providerAuthHeaders:providerAuthHeaders});if(W)return N.current=!1,b(W),v(e=>[...e,sf(W)]),"skipped";k(!0),b(yf()),c||F("");let H=!1,G=null,V=null,K=null,z=0;const q=createSubmitGoalSupervisor(e);let Y=null;const J=resolvePremiumCreditsPreflight({premiumCreditsExhausted:R,currentModel:A});if(J.blocked)return H=!0,b(J.status),v(e=>[...e,Zh(J.message)]),k(!1),N.current=!1,J.outcome;try{Y=await q.getGoalTurnBudget();const e=getSandboxConnection();if(isSandboxMode()&&!e)return v(e=>[...e,Zh(t("theSandboxIsNotConnectedYetWaitForTheConnectedToSandboxLineOrItsErrorThenSendAgain",'The cloud session is not connected yet. Wait for the "Connected to cloud" line (or its error), then send again.'))]),N.current=!1,"completed";const n=e?null:await gO({sessionId:D,baseUrl:getApiBaseUrl()});if(h&&!isCommandGoalLoopArmed(D))return"skipped";const o=clipboardImagesToUserContent(r),c=a?`${a}\n\n${j}`:j,d=o.length>0?[...o,{type:"text",text:c}]:a?[{type:"text",text:c}]:void 0,u={...r&&r.length>0?{images:r,...s?{imageTokenPaths:s}:{}}:{},...i?{ideHint:i}:{}};trackFirstMessage();const m=await runHarnessTurnIntoFeed({harness:n,input:j,turnUserInput:d,runQuery:e?createSandboxRunQuery(e):e=>runHarnessQuery({...e,harness:e.harness}),setFeed:v,setLiveEntries:S,displayMessage:l,suppressUserEcho:f,additionalContent:hiddenMessagesToUserContent(p),inputMeta:U.inputMeta,maxTurns:Y?.remainingTurns,onRoundTrip:__name(e=>{z=e},"onRoundTrip"),echoMetadata:Object.keys(u).length>0?u:void 0,setStatus:b,onInteractionTokens:T,onRunError:__name(e=>{V=e},"onRunError"),routeEntry:createBlockCommittingRouter({setFeed:v,setLiveEntries:S}),scrubGoalCompleteMarker:isCommandGoalLoopArmed(D)});if(V){const e=A?byokProviderId({model:A}):void 0;throw formatRunError(V,e?{byokProvider:e}:void 0)}return K=m.finalText,z=m.turnCount,"completed"}catch(e){const n=resolveSubmitErrorAction({error:e,sessionId:D});if("interrupted"===n.kind)return H=!0,n.outcome;if(trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"submit_error"}),context:{component:Rs.SUBMIT,heading:"Prompt submission failed",code:n.kind}}),H=!0,G=n.goalErrorKind,"insufficient-credits"===n.kind){b(n.status);const e=await getBillingLink({billingLink:M,setBillingLink:I});return v(n=>[...n,sf(buildInsufficientCreditsSubmitActionMessage({billingUrl:e}))]),n.outcome}if("premium-credits-exhausted"===n.kind)return L?.(!0),O?.(n.fallbackModelId),sN(),_(e=>e+1),b(n.status),v(e=>[...e,Zh(n.message)]),n.outcome;b(n.status);const o="info"===n.renderKind?Zh(n.message):sf(n.message);return v(e=>[...e,o]),n.outcome}finally{k(!1),H||b(t("ready","Ready...")),N.current=!1,await q.afterTurn({assistantText:H?null:K,errorKind:H?G:null,isGoalContinuation:g,turnsUsed:z,goalStartedAt:Y?.startedAt})}return"skipped"}function emitGoalNotice(e,n){e(e=>[...e,Zh(n.message,buildGoalNoticeMetadata(n))])}function createSubmitGoalSupervisor(e){const{sessionId:n,setFeed:o}=e;return createGoalTurnSupervisor({sessionId:n,isArmed:__name(()=>isCommandGoalLoopArmed(n),"isArmed"),disarm:__name(()=>disarmCommandGoalLoop(n),"disarm"),loadSessionMeta:__name(()=>loadCommandSessionMeta({sessionId:n}),"loadSessionMeta"),saveGoal:__name(e=>saveCommandSessionMeta({sessionId:n,meta:{goal:e}}),"saveGoal"),verifyCompletion:__name(async e=>(hO(n)??await gO({sessionId:n,baseUrl:getApiBaseUrl()})).verifyGoal(e),"verifyCompletion"),getEvidence:__name(()=>{const e=hO(n);return e?harnessRecentToolEvidence(e):""},"getEvidence"),emitCompletion:__name(e=>{o(n=>[...n,Zh("",e)])},"emitCompletion"),emitNotice:__name(e=>emitGoalNotice(o,e),"emitNotice"),runContinuation:__name(({prompt:n})=>handleSubmit({...e,...buildGoalContinuationTurnFields({prompt:n})}),"runContinuation")})}async function handleDesignCommand({ctx:e,rawArguments:n,positionalArgs:o,command:r}){try{const s=await resolveDesignCommand({runtime:createNodeRuntime(),rawArguments:n,positionalArgs:o});if("help"===s.status)return void e.setShowDesignGuide(!0);if("missing-skill"===s.status)return void e.setFeed(e=>[...e,sf(Nb)]);const a=await handleSubmit({input:s.command.visible,hiddenMessages:[{role:"user",content:s.command.hidden}],role:"user",displayMessage:r,isAutomated:!0,feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash}),{modeName:i}=s.command;if("completed"===a&&i&&isDesignMode(i)){const n=getDesignModeSuggestions(i);n&&e.setPendingDesignSuggestion?.(n)}}catch(n){e.setFeed(e=>[...e,sf(buildDesignSkillLoadErrorMessage(n))])}}__name(registerSteerQueue,"registerSteerQueue"),__name(onTurnCompleted,"onTurnCompleted"),__name(wireSteerQueue,"wireSteerQueue"),__name(settleLate,"settleLate"),__name(dropSteer,"dropSteer"),__name(sendSteer,"sendSteer"),__name(getBillingLink,"getBillingLink"),__name(runModInputInterception,"runModInputInterception"),__name(handleSubmit,"handleSubmit"),__name(emitGoalNotice,"emitGoalNotice"),__name(createSubmitGoalSupervisor,"createSubmitGoalSupervisor"),__name(handleDesignCommand,"handleDesignCommand"),Jt(),hL();var rG=new Set(["html","jsonl","md"]);function matchFormatKeyword(e){const n=e.toLowerCase();return rG.has(n)?n:void 0}function resolveConfiguredExportFormat(e){return e?matchFormatKeyword(e)??"html":"html"}function defaultExportFilename(e,n){return`command-code-session-${e.slice(0,8)}.${n}`}function resolveExportRoute(e){const n=e.rawPath.trim();if(!n){const n=e.defaultFormat??"html";return{kind:"target",format:n,path:o(e.cwd,defaultExportFilename(e.sessionId,n))}}const r=matchFormatKeyword(n);if(r)return{kind:"target",format:r,path:o(e.cwd,defaultExportFilename(e.sessionId,r))};const s=l(n)?n:a(e.cwd,n);if(L(s)&&$(s).isDirectory())return{kind:"target",format:"html",path:o(s,defaultExportFilename(e.sessionId,"html"))};const i=u(s).toLowerCase();return i?".html"===i?{kind:"target",format:"html",path:s}:".jsonl"===i?{kind:"target",format:"jsonl",path:s}:".md"===i?{kind:"target",format:"md",path:s}:{kind:"unknown-extension",extension:i}:{kind:"target",format:"html",path:o(s,defaultExportFilename(e.sessionId,"html"))}}function exportedMessage(e){const n=toRelativePath(e.path),o=_t.isSupported?createOSC8Link(fileUrl(e.path),n,!1):n;return t("exportedSessionTo","Exported {{v0}} session to {{v1}}",{v0:e.formatLabel,v1:o})}async function buildSessionHtmlExport(e){const{messages:n}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===n.length)return null;const o=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionHtml({messages:fromV2(n.map(e=>e.message)),title:o,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function buildSessionMarkdownExport(e){const{messages:n}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===n.length)return null;const o=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionMarkdown({messages:fromV2(n.map(e=>e.message)),title:o,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function exportJsonl(e){const n=o(getProjectSessionDir({env:process.env,cwd:e.cwd}),`${e.sessionId}.jsonl`);if(L(n)){try{H(n,e.target)}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}e.setFeed(n=>[...n,Zh(exportedMessage({path:e.target,formatLabel:"JSONL"}))])}else e.setFeed(e=>[...e,Zh(t("nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to export yet — the transcript is created on the first message."))])}async function exportHtml(e){let n;try{n=await buildSessionHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}if(n){try{N(e.target,n,"utf8")}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}e.setFeed(n=>[...n,Zh(exportedMessage({path:e.target,formatLabel:"HTML"}))])}else e.setFeed(e=>[...e,Zh(t("nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to export yet — the transcript is created on the first message."))])}async function exportMarkdown(e){let n;try{n=await buildSessionMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}if(n){try{N(e.target,n,"utf8")}catch(n){const o=n instanceof Error?n.message:String(n);return void e.setFeed(e=>[...e,Zh(t("exportFailed","Export failed: {{v0}}",{v0:o}))])}e.setFeed(n=>[...n,Zh(exportedMessage({path:e.target,formatLabel:"Markdown"}))])}else e.setFeed(e=>[...e,Zh(t("nothingToExportYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to export yet — the transcript is created on the first message."))])}async function handleExport(e){const n=getCurrentWorkingDirectory(),o=await loadUserConfig(),r=resolveExportRoute({rawPath:e.rawPath,cwd:n,sessionId:e.sessionId,defaultFormat:resolveConfiguredExportFormat(o.defaultExportFormat)});"unknown-extension"!==r.kind?"jsonl"!==r.format?"md"!==r.format?await exportHtml({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportMarkdown({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportJsonl({sessionId:e.sessionId,target:r.path,cwd:n,setFeed:e.setFeed}):e.setFeed(e=>[...e,Zh(t("unknownExportExtension",'Unknown export extension "{{v0}}". {{v1}}',{v0:r.extension,v1:t("supportedExportFormatsHtmlJsonlMd","Supported export formats: .html, .jsonl, .md")}))])}async function handleForkCommand(e,n){const o=hO(e.sessionId),r=await resolveForkCommand({sourceId:e.sessionId,rawName:n,hasActiveSession:Boolean(o),messageCount:o?harnessSessionMessages(o).length:0});if("notice"!==r.kind)try{await handleSelectSession({selectedSessionId:r.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0}),e.setFeed(e=>[...e,ef({name:r.title})])}catch{e.setFeed(e=>[...e,sf(translateUiCopy(by))])}else e.setFeed(e=>[...e,"error"===r.notice.kind?sf(r.notice.message):Zh(r.notice.message)])}function setMode(e,n){e.permissionModeRef.current=n,e.setPermissionMode(n),hO(e.sessionId)?.setPermissionMode({mode:n})}async function handlePlanCommand({rawArguments:e,ctx:n}){const o=resolvePlanCommand({rawArguments:e,currentMode:n.permissionModeRef.current});if(n.permissionModeRef.current!==o.nextMode&&setMode(n,o.nextMode),"notice"===o.kind)return n.setFeed(e=>[...e,Zh(o.message)]),void(o.clearInput&&n.setInput(""));await handleSubmit({input:o.task,role:"user",displayMessage:o.displayMessage,isAutomated:!0,feed:n.feed,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,isCmdCodeBusy:n.isCmdCodeBusy,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setQueuedMessages:n.setQueuedMessages,setStatus:n.setStatus,setInteractionTokens:n.setInteractionTokens,updateStatus:n.updateStatus,setUpdateStatus:n.setUpdateStatus,billingLink:n.billingLink,setBillingLink:n.setBillingLink,currentModel:n.currentModel,currentProvider:n.currentProvider,premiumCreditsExhausted:n.premiumCreditsExhausted,setPremiumCreditsExhausted:n.setPremiumCreditsExhausted,setCurrentModel:n.setCurrentModel,sessionId:n.sessionId,isSubmittingRef:n.isSubmittingRef,setInput:n.setInput,setStaticKey:n.setStaticKey,executeBash:n.executeBash})}__name(matchFormatKeyword,"matchFormatKeyword"),__name(resolveConfiguredExportFormat,"resolveConfiguredExportFormat"),__name(defaultExportFilename,"defaultExportFilename"),__name(resolveExportRoute,"resolveExportRoute"),__name(exportedMessage,"exportedMessage"),__name(buildSessionHtmlExport,"buildSessionHtmlExport"),__name(buildSessionMarkdownExport,"buildSessionMarkdownExport"),__name(exportJsonl,"exportJsonl"),__name(exportHtml,"exportHtml"),__name(exportMarkdown,"exportMarkdown"),__name(handleExport,"handleExport"),Jt(),hL(),__name(handleForkCommand,"handleForkCommand"),Jt(),hL(),__name(setMode,"setMode"),__name(handlePlanCommand,"handlePlanCommand"),Jt(),hL();var sG=[{title:"Composing",rows:[{keys:"Enter",action:"Send the prompt"},{keys:"Shift+Enter / Alt+Enter",action:"Insert a newline"},{keys:"Ctrl+G",action:"Edit the prompt in $EDITOR"},{keys:"Ctrl+S",action:"Stash / restore the current prompt"},{keys:"↑ / ↓",action:"Browse prompt history"},{keys:"@",action:"Mention a file (fuzzy search)"},{keys:"/",action:"Open the command menu"},{keys:"!",action:"Bash mode — run a shell command"}]},{title:"While it works",rows:[{keys:"Esc",action:"Interrupt the current turn"},{keys:"Type + Enter",action:"Queue a steering message"},{keys:"Ctrl+X",action:"Open the todo manager (/todos) for the current plan"}]},{title:"Transcript",rows:[{keys:"Ctrl+O",action:"Toggle expanded tool output"},{keys:"Ctrl+E / Ctrl+Y",action:"Toggle the full transcript"}]},{title:"Session & modes",rows:[{keys:"Shift+Tab",action:"Cycle mode: standard → accept edits → plan → yolo"},{keys:"Alt+P",action:"Quick model switch"},{keys:"Esc Esc",action:"Rewind to a checkpoint"},{keys:"Ctrl+C Ctrl+C",action:"Exit"}]}];function buildHotkeysMarkdown(){const e=[t("keyboardShortcuts","**Keyboard shortcuts**")];for(const n of sG){e.push("",`**${translateUiCopy(n.title)}**`);for(const o of n.rows)e.push(`- \`${translateUiCopy(o.keys)}\` — ${translateUiCopy(o.action)}`)}return e.join("\n")}function handleHotkeys({setFeed:e}){e(e=>[...e,rf(buildHotkeysMarkdown())])}async function handleImportCommand({setFeed:e},n=""){const o=resolveAgentImportSourceArg(n);if(!o.ok)return void e(e=>[...e,sf(o.message)]);const r=createNodeRuntime();try{const n=await detectAgentImport({runtime:r,sources:o.sources});if(0===n.items.length&&0===n.sourceErrors.length)return void e(e=>[...e,Zh(t("noSetupWasFoundToImportLookedForClaudeCodeCodexCursorPiOpencodeAndGeminiCliConfigInYourHomeDirectoryAndThisProject","No setup was found to import (looked for Claude Code, Codex, Cursor, Pi, OpenCode, and Gemini CLI config in your home directory and this project)."))]);const s=await importAgentSetup({runtime:r,inventory:n});e(e=>[...e,Zh(formatAgentImportSummary(s))])}catch(n){e(e=>[...e,sf(t("importFailed","Import failed: {{v0}}",{v0:n instanceof Error?n.message:"unknown error"}))])}}async function handleLanguageSelect({locale:e,setShowLanguageSelector:n,setStatus:o}){n(!1);try{await changeUiLanguage(e),o(t("languageSetTo","Language set to: {{label}}",{label:getCliLanguageLabel(e)}))}catch(e){o(t("couldNotSaveLanguage","Could not save language: {{reason}}. Report issues at https://cond.dev/issue",{reason:e instanceof Error?e.message:String(e)}))}}function handleLanguageCancel({setShowLanguageSelector:e}){e(!1)}async function handleLanguageCommand(e,n){const o=n.trim().toLowerCase();o?isCliLanguage(o)?await handleLanguageSelect({locale:o,setShowLanguageSelector:e.setShowLanguageSelector,setStatus:e.setStatus}):e.setFeed(e=>[...e,Zh(t("unknownLanguageOptions",'Unknown language "{{value}}". Options: {{options}}.',{value:o,options:Hr.join(", ")}))]):e.setShowLanguageSelector(!0)}function setMode2(e,n){e.permissionModeRef.current=n,e.setPermissionMode(n),hO(e.sessionId)?.setPermissionMode({mode:n})}async function handleModeCommand({rawArguments:e,ctx:n}){const o=resolveModeCommand({rawArguments:e,currentMode:n.permissionModeRef.current});o.nextMode&&setMode2(n,o.nextMode),n.setFeed(e=>[...e,Zh(o.message)]),n.setInput("")}async function applyRenameResult(e){const n=await resolveRenameCommand({name:e.name,sessionId:e.sessionId});if(e.setFeed(e=>[...e,"error"===n.notice.kind?sf(n.notice.message):Zh(n.notice.message)]),"renamed"===n.kind){e.setRenamedTerminalTitle(n.name);try{(e.harness??await gO({sessionId:e.sessionId,baseUrl:getApiBaseUrl()})).setSessionName(n.name)}catch{}}}async function autoRenameSession({sessionId:e,setFeed:n,setRenamedTerminalTitle:o,setStatus:r,setIsCmdCodeBusy:s}){s(!0),r(t("namingSession","Naming session…"));try{const r=await gO({sessionId:e,baseUrl:getApiBaseUrl()}),s=await r.regenerateTitle();if(!s)return void n(e=>[...e,Zh(t("nothingToNameYetSendAMessageFirstOrUseRenameName","Nothing to name yet — send a message first, or use /rename <name>."))]);await applyRenameResult({name:s,sessionId:e,setFeed:n,setRenamedTerminalTitle:o,harness:r})}catch{n(e=>[...e,Zh(t("couldNotGenerateATitleTryRenameNameInstead","Could not generate a title. Try /rename <name> instead."))])}finally{s(!1),r(t("ready","Ready..."))}}async function handleRenameCommand(e){e.name.trim()?await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle}):await autoRenameSession(e)}async function handleNameCommand(e){if(e.name.trim())return void await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle});const n=hO(e.sessionId)?.getSessionStats().name,o=n?null:await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),r=n??o?.title;e.setFeed(e=>[...e,Zh(r?t("currentName","Current name: {{v0}}",{v0:r}):t("thisSessionHasNoNameYetUseNameNameToSetOne","This session has no name yet. Use /name <name> to set one."))])}function handleRewindCommand({sessionId:e,setFeed:n,setShowRewindSelector:o}){const r=hO(e),s=resolveRewindCommand({hasActiveConversation:Boolean(r),checkpointCount:r?.listCheckpoints().length??0});"notice"!==s.kind?o(!0):n(e=>[...e,"error"===s.notice.kind?sf(s.notice.message):Zh(s.notice.message)])}async function handleRewindSelect({messageId:e,mode:n,sessionId:o,setFeed:r,setStatus:s,setShowRewindSelector:a,setStaticKey:i,setInput:l}){a(!1);const c=hO(o);if(!c)return;s(t("restoringCheckpoint","Restoring checkpoint..."));const d=await performRewindRestore({harness:c,messageId:e,mode:n});if("restored"===d.kind)return r(d.feed),c.applyTodoUserEdit({todos:seedTodosFromFeedEntries(d.feed)}),sN(),i(e=>e+1),d.promptToRestore&&l(d.promptToRestore),r(e=>[...e,Zh(d.notice.message)]),void s(d.statusMessage);r(e=>[...e,"error"===d.notice.kind?sf(d.notice.message):Zh(d.notice.message)]),s(d.statusMessage)}function handleRewindCancel({setShowRewindSelector:e}){e(!1)}function compactTranscriptPath(e){return`${toRelativePath(getProjectsBasePath({env:process.env}))}/…/${d(e)}`}function formatSessionFileLine(e){const{absolutePath:n,exists:o,linksSupported:r}=e;return o?r?createOSC8Link(fileUrl(n),compactTranscriptPath(n),!1):n:t("notCreatedYet","{{v0}} (not created yet)",{v0:n})}function handleSessionFile({sessionId:e,setFeed:n}){if(!e)return void n(e=>[...e,Zh(t("noActiveSession","No active session."))]);const r=o(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e}.jsonl`),s=formatSessionFileLine({absolutePath:r,exists:L(r),linksSupported:_t.isSupported});n(n=>[...n,Zh(t("sessionIdCurrentSessionFile","Session ID: {{v0}}\nCurrent session file: {{v1}}",{v0:e,v1:r}),{isSessionFile:!0,sessionFileId:e,sessionFileLine:s})])}__name(buildHotkeysMarkdown,"buildHotkeysMarkdown"),__name(handleHotkeys,"handleHotkeys"),Jt(),hL(),__name(handleImportCommand,"handleImportCommand"),Jt(),hL(),__name(handleLanguageSelect,"handleLanguageSelect"),__name(handleLanguageCancel,"handleLanguageCancel"),__name(handleLanguageCommand,"handleLanguageCommand"),Jt(),hL(),__name(setMode2,"setMode"),__name(handleModeCommand,"handleModeCommand"),Jt(),hL(),__name(applyRenameResult,"applyRenameResult"),__name(autoRenameSession,"autoRenameSession"),__name(handleRenameCommand,"handleRenameCommand"),__name(handleNameCommand,"handleNameCommand"),Jt(),hL(),__name(handleRewindCommand,"handleRewindCommand"),__name(handleRewindSelect,"handleRewindSelect"),__name(handleRewindCancel,"handleRewindCancel"),Jt(),hL(),__name(compactTranscriptPath,"compactTranscriptPath"),__name(formatSessionFileLine,"formatSessionFileLine"),__name(handleSessionFile,"handleSessionFile"),Jt(),hL();var aG=xe(y),iG=/https:\/\/gist\.github\.com\/\S+/;function parseGistUrl(e){const n=iG.exec(e);return n?n[0]:null}function execErrorText(e){if(!(e instanceof Error))return String(e);const n=e;return("string"==typeof n.stderr?n.stderr.trim():"")||e.message}async function defaultCreateGist(e){const{stdout:n}=await aG("gh",["gist","create",e,"--desc","Command Code session"],{encoding:"utf8"});return{stdout:String(n)}}async function resolveShareGistFormat(e){const n=(e??"").trim();return n?matchFormatKeyword(n):resolveConfiguredExportFormat((await loadUserConfig()).defaultShareGistFormat)}async function writeGistPayload(e){const n=o(e.tempDir,`command-code-session-${e.sessionId.slice(0,8)}.${e.format}`);if("jsonl"===e.format){const r=o(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e.sessionId}.jsonl`);return L(r)?(H(r,n),n):null}if("md"===e.format){const o=await e.buildMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel});return o?(await Q(n,o,"utf8"),n):null}const r=await e.buildHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel});return r?(await Q(n,r,"utf8"),n):null}async function handleShareGistCommand(e){const{isCommandAvailable:n=isCommandAvailable,buildHtmlExport:r=buildSessionHtmlExport,buildMarkdownExport:s=buildSessionMarkdownExport,createGist:a=defaultCreateGist,writeClipboardText:i=writeClipboardText}=e.deps??{},l=__name(n=>e.setFeed(e=>[...e,Zh(n)]),"info");if(!n("gh"))return void l(t("requiresTheGithubCliGhHttpsCliGithubCom","Requires the GitHub CLI (gh) — https://cli.github.com"));const c=await resolveShareGistFormat(e.rawFormatArg);if(!c)return void l(t("unknownGistFormat",'Unknown gist format "{{v0}}". {{v1}}',{v0:(e.rawFormatArg??"").trim(),v1:t("supportedGistFormatsHtmlJsonlMd","Supported gist formats: html, jsonl, md")}));let d;try{d=await ue(o(z(),"cmd-share-"));const n=await writeGistPayload({format:c,sessionId:e.sessionId,currentModel:e.currentModel,tempDir:d,buildHtmlExport:r,buildMarkdownExport:s});if(!n)return void l(t("nothingToShareYetTheTranscriptIsCreatedOnTheFirstMessage","Nothing to share yet — the transcript is created on the first message."));const{stdout:u}=await a(n),m=parseGistUrl(u);if(!m)return void l(t("ghGistCreateDidNotReturnAUrl","gh gist create did not return a URL: {{v0}}",{v0:u.trim()}));await i(m),l(t("sharedSessionGist","Shared session gist: {{v0}}",{v0:_t.isSupported?createOSC8Link(m,m,!1):m}))}catch(e){const n=execErrorText(e);l(/auth/i.test(n)?t("runGhAuthLogin","{{v0}} — run gh auth login",{v0:n}):t("shareFailed","Share failed: {{v0}}",{v0:n}))}finally{d&&await ne(d,{recursive:!0,force:!0}).catch(()=>{})}}function handleShareRebuildingCommand(e){e(e=>[...e,Zh("Share is being rebuilt, use /export")])}async function handleUnshareCommand({sessionId:e,shareInfo:n,setShareInfo:o,setStatus:r,setUnshareNotificationMessage:s}){e&&n&&r(t("removingShareLink","Removing share link..."));const a=createApiClient({baseUrl:getApiBaseUrl()}),i=await deleteCommandSessionShareLink({client:a,sessionId:e,shareInfo:n,harness:e?hO(e):void 0});if("no-session"!==i.status){if("not-shared"===i.status)return s(i.message),void setTimeout(()=>s(""),ob);if("error"===i.status)return r(i.message),void setTimeout(()=>r(""),ob);s(i.message),r(""),o(null),setTimeout(()=>{s("")},ob)}else r(i.message)}async function loadPersistedTraceIds(e){if(e.loadTraceIds)return e.loadTraceIds();if(!e.sessionId)return[];const n=await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),o=n?.traceIds;return Array.isArray(o)?o.filter(e=>"string"==typeof e&&e.length>0):[]}async function handleTrace({setFeed:e,sessionId:n,loadTraceIds:o}){const r=getTraceId();if(r){const n=await writeClipboardText(r)?t("copiedToClipboard"," (copied to clipboard)"):"";return void e(e=>[...e,Zh(t("traceId","Trace ID: {{v0}}{{v1}}",{v0:r,v1:n}))])}const s=await loadPersistedTraceIds({sessionId:n,loadTraceIds:o});if(s.length>0){const n=s[s.length-1],o=await writeClipboardText(n)?t("copiedToClipboard"," (copied to clipboard)"):"";return void e(e=>[...e,Zh(t("traceId","Trace ID: {{v0}}{{v1}}",{v0:n,v1:o}))])}const a=isTelemetryInitialized()?t("traceIdNotGeneratedSendAMessageFirst","Trace ID not generated: Send a message first"):t("noTraceIdRequestTracingIsOffThisSession","No trace ID — request tracing is off this session.");e(e=>[...e,Zh(a)])}function actionErrorMessage(e){return e instanceof Error?e.message:t("unknownError","Unknown error")}async function handleTreeCommand({sessionId:e,setFeed:n,setShowTreeSelector:o,setTreeFilterMode:r,setTreeBranchSummarySkipPrompt:s}){const a=hO(e),i=resolveTreeCommand({hasActiveConversation:Boolean(a),treeEntryCount:a?.getSessionTree().length??0});if("notice"===i.kind)return void n(e=>[...e,"error"===i.notice.kind?sf(i.notice.message):Zh(i.notice.message)]);const[l,c]=await Promise.all([getTreeFilterMode(),getBranchSummarySkipPrompt()]);r(l),s(c),o(!0)}async function handleTreeSelect({entryId:e,summarize:n,customInstructions:o,sessionId:r,setFeed:s,setShowTreeSelector:a,setStaticKey:i,setInput:l}){const c=hO(r);if(!c)return{aborted:!1};try{const r=await c.navigateTree({targetId:e,summarize:n,...o?{customInstructions:o}:{}});return r.aborted?{aborted:!0}:r.cancelled?(s(e=>[...e,Zh(t("alreadyAtThisPoint","Already at this point"))]),{aborted:!1}):(a(!1),s(reconstructFeedFromMessages(harnessSessionMessages(c))),sN(),i(e=>e+1),r.editorText&&l(r.editorText),s(e=>[...e,Zh(t("navigatedToSelectedPoint","Navigated to selected point"))]),{aborted:!1})}catch(e){return s(n=>[...n,sf(t("failedToNavigate","Failed to navigate: {{v0}}",{v0:actionErrorMessage(e)}))]),{aborted:!1}}}function handleTreeCancel({setShowTreeSelector:e}){e(!1)}function handleTreeAbortSummary({sessionId:e}){hO(e)?.abortBranchSummary()}function handleTreeLabel({entryId:e,label:n,sessionId:o,setFeed:r}){const s=hO(o);if(s)try{s.setTreeLabel({targetId:e,label:n})}catch(e){r(n=>[...n,sf(t("failedToSetLabel","Failed to set label: {{v0}}",{v0:actionErrorMessage(e)}))])}}function announceCompletedUpdate({fromVersion:e,toVersion:n}){console.log(It.green(`Updated ${e} → ${n}`))}function trackUpdateFailure({fromVersion:e,targetVersion:n,trigger:o,userName:r,failureReason:s}){trackError({error:new Error(`Update failed: ${e} -> ${n}${s?`: ${s}`:""}`),context:{component:Rs.UPDATER,heading:"CLI update failed (atomic + fallback)","cmd.update.from_version":e,"cmd.update.target_version":n,"cmd.update.trigger":o,...s&&{"cmd.update.failure_reason":s},...r&&{"user.name":r}}})}__name(parseGistUrl,"parseGistUrl"),__name(execErrorText,"execErrorText"),__name(defaultCreateGist,"defaultCreateGist"),__name(resolveShareGistFormat,"resolveShareGistFormat"),__name(writeGistPayload,"writeGistPayload"),__name(handleShareGistCommand,"handleShareGistCommand"),__name(handleShareRebuildingCommand,"handleShareRebuildingCommand"),__name(handleUnshareCommand,"handleUnshareCommand"),Jt(),hL(),__name(loadPersistedTraceIds,"loadPersistedTraceIds"),__name(handleTrace,"handleTrace"),Jt(),hL(),__name(actionErrorMessage,"actionErrorMessage"),__name(handleTreeCommand,"handleTreeCommand"),__name(handleTreeSelect,"handleTreeSelect"),__name(handleTreeCancel,"handleTreeCancel"),__name(handleTreeAbortSummary,"handleTreeAbortSummary"),__name(handleTreeLabel,"handleTreeLabel"),Jt(),hL(),Jt(),hL(),__name(announceCompletedUpdate,"announceCompletedUpdate"),__name(trackUpdateFailure,"trackUpdateFailure");var lG={createLifecycleEventClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createLifecycleEventClient"),isTelemetryEnabled:isTelemetryEnabled,log:dlog,onCompletedUpdate:announceCompletedUpdate,trackUpdateFailure:trackUpdateFailure},cG={updatedVersionThisSession:null};async function handleUpdateCommand({setFeed:e,setStatus:n,setIsCmdCodeBusy:o,setUpdateStatus:r,pinnedStatusRef:s}){const a=__name(e=>{"busy"===e.type&&o(e.value),"pin-status"===e.type&&(s.current=e.value),"status"===e.type&&n(e.value),"update-status"===e.type&&r(e.value)},"emit"),i=await runTuiUpdateCommand({state:cG,host:lG,copy:{binCommand:`${getBinaryCommand()}`,updateCommand:"npm i -g command-code"},emit:a});trackTuiUpdateCommandTelemetry(i),"error"!==i.level?e(e=>[...e,Zh(i.message,i.metadata)]):e(e=>[...e,sf(i.message)])}__name(handleUpdateCommand,"handleUpdateCommand"),Jt(),hL();var dG=__name((e,n)=>e.setFeed(e=>[...e,Zh(n)]),"info"),uG=__name((e,n)=>e.setFeed(e=>[...e,sf(n)]),"error");function renderList(e,o){const r=listWorktrees(e);if(0===r.length)return t("noWorktreesFound","No worktrees found.");const s=r.map(r=>{const s=samePath2(r.path,e)?"●":"○",a=n.relative(o,r.path),i=r.isMain?".":a&&!a.startsWith("..")?a:tildeHome(r.path);return` ${s} ${r.isMain?t("main","{{v0}} (main)",{v0:i}):i}${r.branch?` [${r.branch}]`:t("detached"," [detached]")}`});return[t("worktrees","Worktrees:"),...s,"",t("switchWithWorktreeName","Switch with /worktree <name>.")].join("\n")}async function handleWorktreeCommand(e,n){const o=process.cwd();if(!isGitRepo(o))return void uG(e,t("worktreeRequiresAGitRepository","/worktree requires a git repository."));const r=getMainWorktreeRoot(o)??o,s=n[0]?.toLowerCase();if(!s||"list"===s||"ls"===s)return void dG(e,renderList(o,r));if("remove"===s||"rm"===s){const s=n[1];return s?void await handleRemove(e,s,o,r):void uG(e,t("usageWorktreeRemoveName","Usage: /worktree remove <name>"))}const a="new"===s||"create"===s||"add"===s?n[1]:n[0];await handleSwitch(e,a,o)}async function handleRemove(e,o,r,s){const a=resolveTarget(o,s);if(samePath2(a.worktreePath,r))return void uG(e,t("canTRemoveTheWorktreeYouReInSwitchAwayFirstThenRemoveIt","Can't remove the worktree you're in. Switch away first, then remove it."));if(!listWorktrees(r).some(e=>samePath2(e.path,a.worktreePath)))return void uG(e,t("noWorktreeNamed",'No worktree named "{{v0}}".',{v0:o}));const i=removeWorktree({worktreePath:a.worktreePath,cwd:r,deleteBranch:isManagedWorktreePath(a.worktreePath,s)?a.branch:void 0});i.ok?dG(e,t("removedWorktree",'Removed worktree "{{v0}}".',{v0:o})):uG(e,t("couldnTRemoveCommitOrStashChangesOrRemoveItManuallyWithGitWorktreeRemoveForce",'Couldn\'t remove "{{v0}}": {{v1}}. Commit or stash changes, or remove it manually with: git worktree remove --force {{v2}}',{v0:o,v1:i.message,v2:n.relative(s,a.worktreePath)}))}async function handleSwitch(e,n,o){const r=createWorktree({spec:n,cwd:o});if(!r.ok)return void uG(e,t("couldnTCreateWorktree","Couldn't create worktree: {{v0}}",{v0:r.error}));if(samePath2(r.target.worktreePath,o))return void dG(e,t("alreadyInWorktree",'Already in worktree "{{v0}}".',{v0:r.target.name}));const s=r.created?t("created","Created"):t("reusing","Reusing"),a=r.created&&r.copiedFiles>0?t("copiedFileS"," (copied {{v0}} file(s))",{v0:r.copiedFiles}):"",i=r.created&&r.copyFailedFiles.length>0?t("includeCopyFailureS"," ({{v0}} include copy failure(s))",{v0:r.copyFailedFiles.length}):"";dG(e,t("worktreeSwitchingAFreshSessionStartsInTheWorktreeThisOneStaysResumable",'{{v0}} worktree "{{v1}}"{{v2}}{{v3}}. Switching… (a fresh session starts in the worktree; this one stays resumable).',{v0:s,v1:r.target.name,v2:a,v3:i})),await(hO(e.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:e.sessionId,permissionMode:e.permissionModeRef.current,worktree:r.target.name})),e.setShouldExit(!0)}function handleHelpCommand({setFeed:e}){e(e=>[...e,rf(Mf)])}async function handleTerminalSetupCommand({setFeed:e}){const n=Xh("/terminal-setup"),o=setupVSCodeTerminal(),r=lf(o.message,!o.success,o.details),s=lf(t("terminalTabTitlesNeedNoSetupTitlesAreSetAutomaticallyViaStandardEscapeSequencesVsCode1117HonorsThemOutOfTheBox","Terminal tab titles need no setup — titles are set automatically via standard escape sequences (VS Code 1.117+ honors them out of the box)."),!1),a=isKittyKeyboardActive()?[lf(t("shiftEnterAlreadyWorksNativelyInThisTerminalKittyKeyboardProtocolTheVsCodeKeybindingsOnlyApplyInsideAVsCodeFamilyTerminal","Shift+Enter already works natively in this terminal (kitty keyboard protocol) — the VS Code keybindings only apply inside a VS Code-family terminal."),!1)]:[];e(e=>[...e,n,r,s,...a])}async function handleIDESetupCommand({setFeed:e}){const n=await runIdeSetup({host:XH,moduleUrl:import.meta.url}),o=cf(n.status,n.ide,n.details);e(e=>[...e,o])}async function handleClearCommand({setFeed:e,setLiveEntries:n,setQueuedMessages:o,setShareInfo:r,setShowShareNotification:s,setUnshareNotificationMessage:a,setStaticKey:i,setContextUsage:l,setInteractionTokens:c,sessionId:d,setSessionId:u,clearSessionPermissions:m}){e([]),n([]),o([]),clearSessionTodos(),clearShellTasks(),sN(),r(null),s(!1),a(""),await deleteCommandSessionShareInfo({sessionId:d}).catch(()=>{});const p=hO(d);p?.stopBackgroundLearning(),await(p?.flush().catch(()=>{})),fO(d),setNextSessionStartSource("clear"),u(crypto.randomUUID()),m(),i(e=>e+1),l(null),c(0)}async function handleInitCommand({setFeed:e}){const n=await resolveInitMemoryCommand({projectRoot:process.cwd()});e(e=>[...e,Zh(n.message)])}async function runGoalTurn(e,n,o,r){await handleSubmit({role:"user",input:buildSlashCommandMessage({commandName:"/goal",skillName:"goal",rawArguments:n}),images:o,ideContext:r,suppressUserEcho:!0,persistVisibleMessage:!0,isAutomated:!0,isGoalBootstrap:!0,hiddenMessages:[{role:"user",content:buildGoalPrompt({kind:"bootstrap",goalText:n})}],feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash})}async function handleGoalCommand(e,n,o,r){const s=e.isSubmittingRef.current||e.isCmdCodeBusy,a=await resolveGoalSlashCommand({rawArguments:n,sessionId:e.sessionId,isSubmitting:s,permissionMode:e.permissionModeRef.current,maxTurnsOverride:getGoalMaxTurnsOverride(),loadSessionMeta:__name(async e=>await loadCommandSessionMeta(e),"loadSessionMeta"),saveSessionMeta:__name(async e=>saveCommandSessionMeta(e),"saveSessionMeta"),armGoalLoop:armCommandGoalLoop,disarmGoalLoop:disarmCommandGoalLoop,isGoalLoopArmed:isCommandGoalLoopArmed});e.setFeed(e=>[...e,Zh(a.notice.message,a.notice.metadata)]),s&&"notice"===a.status&&"cleared"===a.notice.metadata?.goalNoticeKind&&hO(e.sessionId)?.requestStopAfterTurn(),"start"===a.status&&await runGoalTurn(e,a.goalText,o,r)}async function openExternalSlashCommandTarget({setFeed:e,target:n}){e(e=>[...e,Zh(t("openingInYourBrowser","Opening {{v0}} in your browser…",{v0:createOSC8Link(n.url,n.noticeLabel,!1)}))]);try{await Ot(n.url,{wait:!1,background:!0})}catch{const{fallback:o}=n;if("info"===o.kind)return void e(e=>[...e,Zh(o.message)]);e(e=>[...e,sf(t("failedToOpenBrowser","Failed to open browser")),rf(createOSC8Link(n.url,o.label,!1))])}}function handleLearnCommand({setAutoLearnTaste:e,setShowTasteOnboarding:n,setTasteOnboardingEntryId:o,setFeed:r}){e(!0),n(!0);const s=af();o(s.id),r(e=>[...e,s])}function prCommentsFollowUp(e){const n=hO(e);return n?resolvePrCommentsFollowUpInput(harnessSessionMessages(n)):textHasPrComments(getLastSandboxReply())?Ki:null}async function handleCommand(e,n,o,r){const s=e.trim().split(/\s+/)[0]??"",a=s.split(":")[0]?.replace(/^\//,"")||"unknown";return withSpan({name:`command:${a}`,attributes:{"cmd.command.name":a,"cmd.command.arg_length":Math.max(e.trim().length-s.length,0)},fn:__name(async s=>{const a=await dispatchCommand(e,n,o,r);return s.setAttribute("cmd.command.status",a.status),a},"fn")})}async function dispatchCommand(e,n,o,r){const s=resolveSlashCommandRoute({command:e,isBusy:n.isCmdCodeBusy}),a=sandboxGateMessage(e.trim().split(/\s+/)[0]?.split(":")[0]?.replace(/^\//,"")??"");if(a)return n.setFeed(e=>[...e,Zh(a)]),{status:"handled"};if("blocked"===s.kind)return n.setFeed(e=>[...e,Zh(s.message)]),{status:"handled"};if("resume-by-id"===s.kind)return await handleSelectSession({selectedSessionId:s.selectedSessionId,previousSessionId:n.sessionId,sessionLoadIdRef:n.sessionLoadIdRef,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,setSessionId:n.setSessionId,setShowSessionSelector:n.setShowSessionSelector,setSessionLoaded:n.setSessionLoaded,setStaticKey:n.setStaticKey,setShareInfo:n.setShareInfo,setCurrentModel:n.setCurrentModel,inTuiResume:!0}),{status:"handled"};if("skill"===s.kind){if(0===s.skillName.length)return n.setFeed(e=>[...e,Zh(t("nameASkillToRunSkillNameRunSkillsToSeeWhatIsInstalled","Name a skill to run: /skill:<name>. Run /skills to see what is installed."))]),{status:"handled"};const e=buildSkillNamespacedCommand(s.skillName);return await handleSkillCommand({commandName:`/${s.skillName}`,command:`${e}${s.rawArguments?` ${s.rawArguments}`:""}`,rawArguments:s.rawArguments,positionalArgs:s.positionalArgs,ctx:n})||(n.setFeed(e=>[...e,sf(t("noSkillNamedRunSkillsToSeeWhatIsInstalled",'No skill named "{{v0}}". Run /skills to see what is installed.',{v0:s.skillName}))]),{status:"handled"})}if("unknown"===s.kind)return{status:"unknown"};const{commandName:i,rawArguments:l,positionalArgs:c}=s;if("/exit"===i||"/quit"===i)return discardPendingReload(),n.setShouldExit(!0),{status:"handled"};if("/reload"===i)return await(hO(n.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:n.sessionId,permissionMode:n.permissionModeRef.current})),n.setShouldExit(!0),{status:"handled"};if("/clear"===i)return await handleClearCommand(n),{status:"handled"};if("/help"===i)return await handleHelpCommand(n),{status:"handled"};if("/share"===i){const e=l.trim();return"gist"===e||e.startsWith("gist ")?(await handleShareGistCommand({sessionId:n.sessionId,currentModel:n.currentModel,rawFormatArg:e.slice(4).trim(),setFeed:n.setFeed}),{status:"handled"}):(handleShareRebuildingCommand(n.setFeed),{status:"handled"})}if("/unshare"===i)return await handleUnshareCommand({sessionId:n.sessionId,shareInfo:n.shareInfo,setShareInfo:n.setShareInfo,setStatus:n.setStatus,setUnshareNotificationMessage:n.setUnshareNotificationMessage}),{status:"handled"};if("/taste"===i)return n.setShowTasteConfig(!0),{status:"handled"};if("/learn-taste"===i)return handleLearnCommand(n),{status:"handled"};if("/design"===i)return await handleDesignCommand({ctx:n,rawArguments:l,positionalArgs:c,command:e}),{status:"handled"};if("/skills"===i)return n.setShowSkillsConfig(!0),{status:"handled"};if("/plans"===i)return n.setPlansTarget(l.trim()||null),n.setShowPlansView(!0),{status:"handled"};if("/plan-review"===i)return n.setPlansTarget(DH),n.setShowPlansView(!0),{status:"handled"};if("/config"===i)return n.setShowSettingsConfig(!0),{status:"handled"};if("/connect"===i)return n.setShowProviderSelector(!0),{status:"handled"};if("/model"===i)return await handleModelCommand(n,l),{status:"handled"};if("/effort"===i)return await handleEffortCommand(n,l),{status:"handled"};if("/memory"===i)return n.setShowMemorySelector(!0),{status:"handled"};if("/resume"===i||"/sessions"===i)return n.setShowSessionSelector(!0),{status:"handled"};if("/fork"===i)return await handleForkCommand(n,l.trim()||void 0),{status:"handled"};if("/worktree"===i)return await handleWorktreeCommand(n,c),{status:"handled"};if("/clone"===i)return await handleCloneCommand(n),{status:"handled"};if("/init"===i)return await handleInitCommand(n),{status:"handled"};if("/import"===i)return await handleImportCommand(n,l),{status:"handled"};if("/goal"===i)return await handleGoalCommand(n,l,o,r),{status:"handled"};if("/agents"===i)return n.setShowAgentsConfig(!0),{status:"handled"};if("/mcp"===i)return n.setShowMcpManager(!0),{status:"handled"};if("/compact"===i)return await handleCompactCommand({sessionId:n.sessionId,setFeed:n.setFeed,setStatus:n.setStatus,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setContextUsage:n.setContextUsage,setStaticKey:n.setStaticKey}),{status:"handled"};if("/compact-mode"===i)return n.setShowCompactModeSelector(!0),{status:"handled"};if("/update"===i)return n.setInput(""),await handleUpdateCommand({setFeed:n.setFeed,setStatus:n.setStatus,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setUpdateStatus:n.setUpdateStatus,pinnedStatusRef:n.pinnedStatusRef}),{status:"handled"};if("/context"===i)return n.setShowContextView(!0),{status:"handled"};if("/rewind"===i)return handleRewindCommand({sessionId:n.sessionId,setFeed:n.setFeed,setShowRewindSelector:n.setShowRewindSelector}),{status:"handled"};if("/tree"===i)return await handleTreeCommand({sessionId:n.sessionId,setFeed:n.setFeed,setShowTreeSelector:n.setShowTreeSelector,setTreeFilterMode:n.setTreeFilterMode,setTreeBranchSummarySkipPrompt:n.setTreeBranchSummarySkipPrompt}),{status:"handled"};if("/login"===i)return await handleLoginCommand({provider:l,setFeed:n.setFeed,setShowLoginOverlay:n.setShowLoginOverlay,setAuthComponentInfo:n.setAuthComponentInfo}),n.setInput(""),{status:"handled"};if("/logout"===i)return await handleLogoutCommand({provider:l,setFeed:n.setFeed,setRetryAttempt:n.setRetryAttempt,setIsCmdCodeBusy:n.setIsCmdCodeBusy}),n.setInput(""),{status:"handled"};if("/learn"===i){const e=resolveExternalSlashCommandTarget({commandName:i});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),{status:"handled"}}if("/feedback"===i){const e=resolveExternalSlashCommandTarget({commandName:i,rawArguments:l});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),n.setInput(""),{status:"handled"}}if("/trace"===i)return await handleTrace({setFeed:n.setFeed,sessionId:n.sessionId}),n.setInput(""),{status:"handled"};if("/copy"===i)return await handleCopy({feed:n.feed,setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/export"===i)return await handleExport({sessionId:n.sessionId,rawPath:l,currentModel:n.currentModel,setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/changelog"===i)return handleChangelog({setFeed:n.setFeed,rawArguments:l}),n.setInput(""),{status:"handled"};if("/hotkeys"===i)return handleHotkeys({setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/todos"===i)return 0===getSessionTodos().length?n.setFeed(e=>[...e,Zh(t("noTodosInThisSessionYet","No todos in this session yet."))]):requestTodosManagerOpen(),n.setInput(""),{status:"handled"};if("/session-file"===i)return handleSessionFile({sessionId:n.sessionId,setFeed:n.setFeed}),n.setInput(""),{status:"handled"};if("/terminal-setup"===i)return await handleTerminalSetupCommand(n),{status:"handled"};if("/ide"===i)return await handleIDESetupCommand(n),{status:"handled"};if("/add-dir"===i)return n.setShowAddDirModal(!0),{status:"handled"};if("/rename"===i)return await handleRenameCommand({name:l.trim(),sessionId:n.sessionId,setFeed:n.setFeed,setRenamedTerminalTitle:n.setRenamedTerminalTitle,setStatus:n.setStatus,setIsCmdCodeBusy:n.setIsCmdCodeBusy}),n.setInput(""),{status:"handled"};if("/name"===i)return await handleNameCommand({name:l.trim(),sessionId:n.sessionId,setFeed:n.setFeed,setRenamedTerminalTitle:n.setRenamedTerminalTitle}),n.setInput(""),{status:"handled"};if("/usage"===i)return n.setShowUsageOverlay(!0),{status:"handled"};if("/theme"===i)return await handleThemeCommand(n,l),{status:"handled"};if("/language"===i)return await handleLanguageCommand(n,l),{status:"handled"};if("/rc"===i)return await handleRcCommand(n,l),{status:"handled"};if("/plan"===i)return await handlePlanCommand({rawArguments:l,ctx:n}),{status:"handled"};if("/mode"===i||i.startsWith("/mode:")){const e=i.startsWith("/mode:")?i.slice(6):l;return await handleModeCommand({rawArguments:e,ctx:n}),{status:"handled"}}if("/review"===i){const e=await resolveReviewSlashCommand({rawArguments:l});return"missing-gh"===e.status?(n.setFeed(n=>[...n,Zh(e.message,e.metadata)]),n.setInput(""),{status:"handled"}):(await submitAutomatedSlashTurn({turn:e.turn,ctx:n}),{status:"handled"})}if("/pr-comments"===i){await submitAutomatedSlashTurn({turn:buildPrCommentsSlashTurn(),ctx:n});const e=prCommentsFollowUp(n.sessionId);return e&&n.setInput(e),{status:"handled"}}if("/status"===i)return n.setShowStatusView(!0),{status:"handled"};if("/upgrade"===i){const e=resolveExternalSlashCommandTarget({commandName:i,billingUrl:await getBillingLink({billingLink:n.billingLink,setBillingLink:n.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),{status:"handled"}}if("/extra"===i){const e=resolveExternalSlashCommandTarget({commandName:i,billingUrl:await getBillingLink({billingLink:n.billingLink,setBillingLink:n.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:n.setFeed,target:e}),{status:"handled"}}const d=getActiveModHost(),u=i.slice(1);if(d?.commands().some(e=>e.name===u)){try{const e=await d.runCommand({name:u,args:l}),o=e?.message;o&&n.setFeed(e=>[...e,Zh(o)]),e?.prompt&&await submitAutomatedSlashTurn({turn:buildAutomatedSlashTurn({commandName:i,rawArguments:l,fullPrompt:e.prompt}),ctx:n})}catch(e){n.setFeed(n=>[...n,sf(t("modCommandFailed","Mod command /{{v0}} failed: {{v1}}",{v0:u,v1:e instanceof Error?e.message:String(e)}))])}return{status:"handled"}}const m=await resolveCustomSlashTurn({runtime:createNodeRuntime(),commandName:i,rawArguments:l,positionalArgs:c});if(m)return await submitAutomatedSlashTurn({turn:m,ctx:n}),{status:"handled"};return await handleSkillCommand({commandName:i,command:e,rawArguments:l,positionalArgs:c,ctx:n})||{status:"unknown"}}async function submitAutomatedSlashTurn({turn:e,ctx:n}){await handleSubmit({input:e.input,role:"user",displayMessage:e.displayMessage,hiddenMessages:e.hiddenMessages,isAutomated:!0,feed:n.feed,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,isCmdCodeBusy:n.isCmdCodeBusy,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setQueuedMessages:n.setQueuedMessages,setStatus:n.setStatus,setInteractionTokens:n.setInteractionTokens,updateStatus:n.updateStatus,setUpdateStatus:n.setUpdateStatus,billingLink:n.billingLink,setBillingLink:n.setBillingLink,currentModel:n.currentModel,currentProvider:n.currentProvider,premiumCreditsExhausted:n.premiumCreditsExhausted,setPremiumCreditsExhausted:n.setPremiumCreditsExhausted,setCurrentModel:n.setCurrentModel,sessionId:n.sessionId,isSubmittingRef:n.isSubmittingRef,setInput:n.setInput,setStaticKey:n.setStaticKey,executeBash:n.executeBash})}async function handleSkillCommand({commandName:e,command:n,rawArguments:o,positionalArgs:r,ctx:s}){const a=await resolveSkillSlashTurn({runtime:createNodeRuntime(),commandName:e,command:n,rawArguments:o,positionalArgs:r});return"not-found"===a.status?null:"disabled"===a.status?(s.setFeed(e=>[...e,Zh(a.message)]),{status:"handled"}):"load-error"===a.status?(s.setFeed(e=>[...e,sf(a.message)]),{status:"handled"}):(await submitAutomatedSlashTurn({turn:a.turn,ctx:s}),{status:"handled"})}__name(renderList,"renderList"),__name(handleWorktreeCommand,"handleWorktreeCommand"),__name(handleRemove,"handleRemove"),__name(handleSwitch,"handleSwitch"),__name(handleHelpCommand,"handleHelpCommand"),__name(handleTerminalSetupCommand,"handleTerminalSetupCommand"),__name(handleIDESetupCommand,"handleIDESetupCommand"),__name(handleClearCommand,"handleClearCommand"),__name(handleInitCommand,"handleInitCommand"),__name(runGoalTurn,"runGoalTurn"),__name(handleGoalCommand,"handleGoalCommand"),__name(openExternalSlashCommandTarget,"openExternalSlashCommandTarget"),__name(handleLearnCommand,"handleLearnCommand"),__name(prCommentsFollowUp,"prCommentsFollowUp"),__name(handleCommand,"handleCommand"),__name(dispatchCommand,"dispatchCommand"),__name(submitAutomatedSlashTurn,"submitAutomatedSlashTurn"),__name(handleSkillCommand,"handleSkillCommand"),Jt();var mG=new Set(["info","error"]),pG=__name(e=>{if(!mG.has(e.role))return;const n="string"==typeof e.input?e.input.trim():"";return""===n?void 0:n},"spokenText");function echoFeedToChat(e){if("remote"!==e.origin)return e.setFeed;const n=getActiveRemote(),o=n?.bridge.ownerChatId;if(!n||void 0===o)return e.setFeed;const r=new Set;return s=>{e.setFeed(e=>{const a="function"==typeof s?s(e):s;for(const s of a.slice(e.length)){const e=pG(s);void 0===e||r.has(s.id)||(r.add(s.id),n.bridge.sendNote(o,e))}return a})}}function useCommandCtx({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,onboarding:a,exitState:i,permissionState:l,terminalTitleState:c,isSubmittingRef:d,executeBash:u,setInput:m}){const p=ut(()=>({feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setQueuedMessages:e.setQueuedMessages,setStatus:o.setStatus,setInteractionTokens:o.setInteractionTokens,setContextUsage:o.setContextUsage,contextUsage:o.contextUsage,setStaticKey:s.setStaticKey,updateStatus:o.updateStatus,setUpdateStatus:o.setUpdateStatus,billingLink:o.billingLink,setBillingLink:o.setBillingLink,currentModel:r.currentModel,premiumCreditsExhausted:r.premiumCreditsExhausted,setPremiumCreditsExhausted:r.setPremiumCreditsExhausted,setCurrentModel:r.setCurrentModel,setModelNotice:s.setModelNotice,currentProvider:r.currentProvider,setAuthComponentInfo:r.setAuthComponentInfo,shareInfo:o.shareInfo,setShareInfo:o.setShareInfo,setShowShareNotification:o.setShowShareNotification,setUnshareNotificationMessage:o.setUnshareNotificationMessage,setRetryAttempt:o.setRetryAttempt,pinnedStatusRef:o.pinnedStatusRef,setShowTasteConfig:s.setShowTasteConfig,setShowSkillsConfig:s.setShowSkillsConfig,setShowSettingsConfig:s.setShowSettingsConfig,setShowProviderSelector:s.setShowProviderSelector,setShowModelSelector:s.setShowModelSelector,setShowEffortSelector:s.setShowEffortSelector,setShowMemorySelector:s.setShowMemorySelector,setShowAgentsConfig:s.setShowAgentsConfig,setShowMcpManager:s.setShowMcpManager,setShowRewindSelector:s.setShowRewindSelector,setShowTreeSelector:s.setShowTreeSelector,setTreeFilterMode:s.setTreeFilterMode,setTreeBranchSummarySkipPrompt:s.setTreeBranchSummarySkipPrompt,setShowCompactModeSelector:s.setShowCompactModeSelector,setShowContextView:s.setShowContextView,setShowAddDirModal:s.setShowAddDirModal,setShowLoginOverlay:s.setShowLoginOverlay,setShowStatusView:s.setShowStatusView,setShowPlansView:s.setShowPlansView,setPlansTarget:s.setPlansTarget,setShowUsageOverlay:s.setShowUsageOverlay,setShowThemeSelector:s.setShowThemeSelector,setShowLanguageSelector:s.setShowLanguageSelector,setShowRcSelector:s.setShowRcSelector,setShowDesignGuide:s.setShowDesignGuide,setPendingDesignSuggestion:s.setPendingDesignSuggestion,setShowTasteOnboarding:a.setShowTasteOnboarding,setAutoLearnTaste:a.setAutoLearnTaste,setTasteOnboardingEntryId:a.setTasteOnboardingEntryId,sessionId:n.sessionId,setSessionId:n.setSessionId,sessionLoadIdRef:n.sessionLoadIdRef,sessionLoaded:n.sessionLoaded,setSessionLoaded:n.setSessionLoaded,setShowSessionSelector:s.setShowSessionSelector,setPermissionMode:l.setPermissionMode,permissionModeRef:l.permissionModeRef,clearSessionPermissions:l.clearSessionPermissions,setShouldExit:i.setShouldExit,setInput:m,isSubmittingRef:d,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,executeBash:u,setRenamedTerminalTitle:c.setRenamedTerminalTitle}),[e,n,o,r,s,a,i,l,c,d,u,m]),g=pt(p);return g.current=p,{commandCtx:p,onCommand:ht((e,n,o,r)=>handleCommand(e,{...g.current,...r?{origin:r}:{},setFeed:echoFeedToChat({setFeed:g.current.setFeed,origin:r})},n,o),[])}}__name(echoFeedToChat,"echoFeedToChat"),__name(useCommandCtx,"useCommandCtx"),Jt(),hL();var gG=Ys,hG=Js;function useCreditWarning({interactionTokens:e,currentModel:n}){const[o,r]=mt(null),s=pt(null),a=pt(null),i=pt(null),l=ht(async()=>{try{const e=createApiClient({baseUrl:getApiBaseUrl()});s.current??=createCreditWarningState();const n=await checkCreditWarning({client:e,state:s.current});if(s.current=n.state,!n.message)return;r(n.message),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r(null),i.current=null},gG)}catch{}},[]);return gt(()=>{if(0!==e&&!isLocalOnly()&&!isByok({model:n}))return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{l(),a.current=null},hG),()=>{a.current&&clearTimeout(a.current)}},[e,n,l]),gt(()=>()=>{i.current&&clearTimeout(i.current),a.current&&clearTimeout(a.current)},[]),{creditWarning:o}}__name(useCreditWarning,"useCreditWarning"),Jt(),hL();var fG=createNodeRuntime();function useCronWakeup({sessionId:e,onSubmit:n}){const o=pt(n),r=pt(e),s=pt(Promise.resolve());gt(()=>{o.current=n},[n]),gt(()=>{r.current=e},[e]),gt(()=>{const e=subscribeCronFire(e=>{s.current=s.current.catch(()=>{}).then(async()=>{const n="loop"===e.kind||!0===e.loopOwned,s=hO(r.current);if(n&&s&&!s.hasScheduledTask({id:e.taskId}))return;const a=await buildScheduledTaskWakeupSubmission({event:e,runtime:fG});await o.current(a)}),s.current.catch(()=>{})});return()=>{e()}},[])}function useExit(){const[e,n]=mt(!1),[o,r]=mt(null),s=pt(null),a=pt(0),i=pt(null),l=ht(()=>{s.current=null,r(null),i.current&&(clearTimeout(i.current),i.current=null)},[]);return{shouldExit:e,setShouldExit:n,pendingExitKey:o,setPendingExitKey:r,pendingExitKeyRef:s,lastExitKeyTimeRef:a,exitConfirmationTimeoutRef:i,resetPendingExitKey:l}}__name(useCronWakeup,"useCronWakeup"),Jt(),__name(useExit,"useExit"),Jt(),hL(),Jt(),hL();var yG="1"===process.env.CMD_TEST_INJECT_LIVE_ENTRY;function makeInjectedShellEntry(e,n,o,r={}){return{...nf("shell_command",n,{status:o}),id:e,...r}}function buildInjectedLiveEntry(){return yG?makeInjectedShellEntry("cmd-test-injected-live-entry",process.env.CMD_TEST_INJECT_INPUT??"sleep 60","running"):null}function buildInjectedFeed(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_FEED_ITEMS??"0",10);return!Number.isFinite(e)||e<=0?[]:Array.from({length:e},(e,n)=>makeInjectedShellEntry(`cmd-test-feed-${n}`,`echo item ${n}`,"completed",{output:`item ${n}`}))}__name(makeInjectedShellEntry,"makeInjectedShellEntry"),__name(buildInjectedLiveEntry,"buildInjectedLiveEntry"),__name(buildInjectedFeed,"buildInjectedFeed");var vG="1"===process.env.CMD_TEST_INJECT_STREAM,SG="cmd-test-injected-stream-entry";function streamRole(){const e=process.env.CMD_TEST_INJECT_STREAM_ROLE;return"reasoning"===e||"tool"===e||"agent"===e?e:"assistant"}function streamContentKind(){const e=process.env.CMD_TEST_INJECT_STREAM_CONTENT;return"code"===e||"paragraph"===e||"reasoning"===e||"mixed"===e||"huge"===e?e:"table"}function streamTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_STREAM_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:100}function buildHugeStreamContent(){const e=[];e.push("# Huge streaming gauntlet","A very long reply exercising **every** markdown flavor while it streams. Scroll up mid-stream — the position must hold; finished blocks land in the scrollback above.");for(let n=0;n<6;n+=1){e.push(`## Section ${n} — prose, lists and a table`),e.push(...Array.from({length:4},(e,o)=>`Section ${n} paragraph ${o}: the quick brown fox keeps streaming words so this block wraps a couple of rows, with **bold**, *italic*, ***both***, ~~strikethrough~~, \`inline_code(${o})\` and a [link](https://example.com/s${n}/p${o}) mixed in.`)),e.push([`- Section ${n} unordered item one`,`- Section ${n} unordered item two`," - nested child with `code`"," - nested child with **bold**",`- Section ${n} unordered item three`].join("\n"),[`1. Section ${n} ordered first`,`2. Section ${n} ordered second`,`3. Section ${n} ordered third`].join("\n"),`> Section ${n} blockquote: streaming should never mangle a quote.\n> > And a nested quote inside it still reads fine.`);const o=Array.from({length:6},(e,o)=>`| s${n}-row-${o} | huge demo detail ${o} | ${3*o} |`);e.push(["| Key | Detail | N |","| --- | --- | --- |",...o].join("\n"),"---")}e.push("## Task list and headings ladder"),e.push(["- [x] streamed a task that is done","- [ ] a pending task with `code`","- [x] another finished task with **bold**","- [ ] the last pending task"].join("\n"),"### Heading three","#### Heading four","##### Heading five","###### Heading six"),e.push("## Code in several languages"),e.push(["```ts","const total = rows.reduce(sum);","export function streamGauntlet(rows: number[]): number {","\treturn rows.filter(Boolean).length;","}","```"].join("\n"),["```python","def stream_gauntlet(rows):",' """Docstring survives streaming."""'," return [row * 2 for row in rows if row]","```"].join("\n"),["```json","{",' "stream": "gauntlet",',' "blocks": ["table", "code", "list"],',' "huge": true',"}","```"].join("\n"),["```bash","for block in table code list; do",' echo "streaming $block"',"done","```"].join("\n"),["```diff","- const cap = 10;","+ const cap = viewportRows - reserved;","```"].join("\n")),e.push("## Wide table (column fitting / wrap layout)");const n=Array.from({length:10},(e,n)=>`| wide-${n} | alpha ${n} | beta ${n} | gamma ${n} | a longer cell that should wrap gracefully ${n} | ${11*n} |`);e.push(["| Id | Alpha | Beta | Gamma | Long description column | N |","| --- | --- | --- | --- | --- | --- |",...n].join("\n")),e.push("## Huge table (taller than the viewport — the one capped-while-open case)");const o=Array.from({length:40},(e,n)=>`| huge-row-${n} | streaming stress row number ${n} | ${7*n} |`);return e.push(["| Row | Description | N |","| --- | --- | --- |",...o].join("\n")),e.push("## Width edge cases"),e.push("CJK 漢字が流れても幅計算は崩れない、そしてまた漢字。Emoji too: 🚀🔥✨🎉🧪 — double-width glyphs must wrap correctly.","A single extremely long unbroken paragraph follows to force soft wrapping across many physical rows: "+Array.from({length:12},(e,n)=>`clause ${n} keeps the sentence rolling without a newline`).join(", ")+"."),e.push("## The end","Everything above should now sit in your scrollback exactly once.","Huge demo closing paragraph."),e.join("\n\n")}function buildStreamContent(e){return"code"===e?["```ts",...Array.from({length:34},(e,n)=>`const value_${n} = compute(${n});`),"```"].join("\n"):"paragraph"===e?Array.from({length:16},(e,n)=>`Paragraph ${n} adds a little more of the streaming story so the reply keeps growing past the viewport.`).join("\n\n"):"reasoning"===e?Array.from({length:40},(e,n)=>`step ${n}: consider the next detail`).join("\n"):"huge"===e?buildHugeStreamContent():"mixed"===e?`${Array.from({length:3},(e,n)=>`Mixed intro paragraph ${n} with enough words.`).join("\n\n")}\n\n${["| Col | Detail |","| --- | --- |",...Array.from({length:8},(e,n)=>`| row-${n} | mixed detail ${n} |`)].join("\n")}\n\nMixed closing paragraph.`:["| Item | Description | Value |","| --- | --- | --- |",...Array.from({length:20},(e,n)=>`| item-${n} | detail for row number ${n} | ${7*n} |`)].join("\n")}function buildStreamFrames(e){const n=e.split("\n");return n.length>1?n.map((e,o)=>n.slice(0,o+1).join("\n")):Array.from({length:20},(n,o)=>{const r=Math.ceil(e.length*(o+1)/20);return e.slice(0,r)})}function makeStreamRunningEntry(e,n){return"reasoning"===e?df(n,{id:SG,status:"running"}):"tool"===e?{...nf("shell_command",n,{status:"running"}),id:SG}:"agent"===e?{...uf({name:"Task",input:n}),id:SG}:{...tf(n),id:SG,metadata:{status:"running"}}}function makeStreamFinalEntry(e,n){return"reasoning"===e?df(n,{id:SG}):"tool"===e||"agent"===e?{...nf("shell_command",n,{}),id:SG,output:"done"}:{...tf(n),id:SG}}function maybeStartInjectedStream(e){if(!vG)return;const{setFeed:n,setLiveEntries:o,setIsCmdCodeBusy:r}=e,s=streamRole(),a=buildStreamFrames(buildStreamContent(streamContentKind())),i=streamTickMs();r(!0);const l=createBlockCommittingRouter({setFeed:n,setLiveEntries:o});l(makeStreamRunningEntry(s,a[0]??""));let c=0;const d=setInterval(()=>{if(c+=1,c<a.length)return void l(makeStreamRunningEntry(s,a[c]??""));clearInterval(d);const e=a[a.length-1]??"";l(makeStreamFinalEntry(s,e)),r(!1)},i);return()=>clearInterval(d)}__name(streamRole,"streamRole"),__name(streamContentKind,"streamContentKind"),__name(streamTickMs,"streamTickMs"),__name(buildHugeStreamContent,"buildHugeStreamContent"),__name(buildStreamContent,"buildStreamContent"),__name(buildStreamFrames,"buildStreamFrames"),__name(makeStreamRunningEntry,"makeStreamRunningEntry"),__name(makeStreamFinalEntry,"makeStreamFinalEntry"),__name(maybeStartInjectedStream,"maybeStartInjectedStream");var wG="1"===process.env.CMD_TEST_INJECT_TODOS;function todosTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TODOS_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:1500}__name(todosTickMs,"todosTickMs");var kG=(()=>{const e=[{content:"Create initial todo items",active:"Creating initial todo items"},{content:"Update status of a todo",active:"Updating todo status"},{content:"Mark all todos as completed",active:"Marking all todos as completed"}];return Array.from({length:e.length+1},(n,o)=>e.map((e,n)=>({content:e.content,status:n<o?"completed":n===o?"in_progress":"pending",...n===o?{activeForm:e.active}:{},id:String(n+1)})))})();function maybeStartInjectedTodos(e){if(!wG)return;const n=createBlockCommittingRouter({setFeed:e.setFeed,setLiveEntries:e.setLiveEntries});let o=0;const r=setInterval(()=>{const e=kG[o];e?(n({...nf("todo_write",Cf("todo_write",{todos:e}),{}),id:`cmd-test-todo-${o}`,output:JSON.stringify(e)}),o+=1):clearInterval(r)},todosTickMs());return()=>clearInterval(r)}__name(maybeStartInjectedTodos,"maybeStartInjectedTodos");var CG=Number.parseInt(process.env.CMD_TEST_INJECT_TURNS??"0",10);function testTurnChars(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_CHARS??"",10);return Number.isFinite(e)&&e>0?e:1e5}function testTurnTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:20}function makeInjectedTurnEntry(e,n){const o=`turn ${e} `.repeat(Math.ceil(testTurnChars()/`turn ${e} `.length));return makeInjectedShellEntry(`cmd-test-turn-${e}`,n?"echo turns-done":`echo turn ${e}`,"completed",{output:n?"turns-done":o.slice(0,testTurnChars())})}function maybeStartInjectedTurns(e){if(!Number.isFinite(CG)||CG<=0)return;const{setFeed:n}=e;let o=0;const r=setInterval(()=>{const e=o===CG-1,s=makeInjectedTurnEntry(o,e);n(e=>[...e,s]),o+=1,e&&clearInterval(r)},testTurnTickMs());return()=>clearInterval(r)}function useFeed(){const[e,n]=mt(()=>buildInjectedFeed()),o=ht(e=>{n(n=>applyFeedRetention("function"==typeof e?e(n):e))},[]);gt(()=>{trimStaticBuffer()},[e]);const[r,s]=mt(()=>{const e=buildInjectedLiveEntry();return e?[e]:[]}),[a,i]=mt([]),[l,c]=mt(yG),d=pt([]),u=ht(e=>{const n="function"==typeof e?e(d.current):e;d.current=n,i(n)},[]);return gt(()=>maybeStartInjectedTurns({setFeed:o}),[o]),gt(()=>maybeStartInjectedStream({setFeed:o,setLiveEntries:s,setIsCmdCodeBusy:c}),[]),gt(()=>maybeStartInjectedTodos({setFeed:o,setLiveEntries:s}),[]),{feed:e,setFeed:o,liveEntries:r,setLiveEntries:s,queuedMessages:a,setQueuedMessages:u,isCmdCodeBusy:l,setIsCmdCodeBusy:c,queuedMessagesRef:d}}function useKeyboard({showTasteConfig:e,showSkillsConfig:n,showSettingsConfig:o,showProviderSelector:r,showModelSelector:s,showEffortSelector:a,showMemorySelector:i,showMcpManager:l,showRewindSelector:c,showTreeSelector:d,showLoginOverlay:u,showUsageOverlay:m,showAddDirModal:p,showDesignGuide:g,authComponentInfo:h,setShowModelSelector:f,setStaticKey:y,showTasteSkipBanner:v,setShowTasteSkipBanner:S,showZdrNotice:w,setShowZdrNotice:k,modelNotice:C,setModelNotice:b,transcriptMode:T,setTranscriptMode:E,isCmdCodeBusy:P,liveEntries:M,queuedMessagesRef:I,setInput:A,setQueuedMessages:x,setFeed:R,setLiveEntries:L,setIsCmdCodeBusy:O,setRetryAttempt:D,setStatus:N,pendingExitKey:F,setPendingExitKey:_,pendingExitKeyRef:$,lastExitKeyTimeRef:U,exitConfirmationTimeoutRef:B,resetPendingExitKey:j,pendingPermission:W,setPendingPermission:H,pendingQuestion:G,setPendingQuestion:V,setShouldExit:K,sessionId:z,handleToggleAutoAccept:q,handleDoubleEscapeEmpty:Y,respondToPrompt:J,createErrorEntry:Q}){const X=__name(()=>{hO(z)?.cancelLoops().then(e=>{if(0===e)return;const n=1===e?"task":"tasks";R(o=>[...o,Zh(t("loopStoppedScheduledCancelled","Loop stopped · {{v0}} scheduled {{v1}} cancelled",{v0:e,v1:n}),{isGoalNotice:!0,goalNoticeKind:"cleared"})])})},"cancelLoopsAndNotify"),Z=__name(()=>{const e=getSandboxConnection();e?interruptSandboxTurn(e):interruptActiveTurn(),clearCommandGoalIfActive(z),X();const n=M.length>0;if(O(!1),D(null),L([]),N(Gv),!n){const e=Q(Hv);R(n=>[...n,e])}if(I.current.length>0){const e=I.current.filter(e=>!0!==e.isRelayed),n=I.current.filter(e=>!0===e.isRelayed);if(e.length>0){const n=formatQueuedMessagesForRequeue(e);A(e=>mergeRequeuedInput({queuedText:n,currentInput:e}))}x(n),I.current=n}},"handleInterrupt");at((M,I)=>{const x=getKeybindings();if(keybindingMatches(x,"app.permission.cycle",M,I)||""===M||I.meta&&"m"===M)return void q();if(v&&I.escape)return void S(!1);if(w&&I.escape)return void k(!1);if(C&&I.escape)return void b(null);if(isTodosManagerOpen())return void(F&&j());if(e||n||o||r||s||a||i||l||h||c||d||u||m||p||g)return void(F&&j());const R=""===M||I.ctrl&&"c"===M,L=isSandboxMode()&&isSandboxConnecting();if(R){if(P&&!L)return void Z();const e=Date.now(),n=e-U.current;return U.current=e,"ctrl-c"===$.current&&n<2e3?(B.current&&(clearTimeout(B.current),B.current=null),void K(!0)):(A(()=>""),$.current="ctrl-c",_("ctrl-c"),B.current&&clearTimeout(B.current),void(B.current=setTimeout(()=>{$.current=null,_(null),B.current=null},2e3)))}if(keybindingMatches(x,"app.tools.expand",M,I)){if(G?.params.planContent)return;return sN(),E("off"===T?"limited":"off"),void y(e=>e+1)}const O=isCtrlKey({inputChar:M,key:I,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:M,key:I,letter:"y",ctrlCode:25}),D=null!==W&&"function"==typeof W.params?.explain;if("off"!==T&&O&&!D)return sN(),E("limited"===T?"full":"limited"),void y(e=>e+1);if("off"===T&&getSessionTodos().length>0&&keybindingMatches(x,"app.todos.toggle",M,I))return void requestTodosManagerOpen();if(keybindingMatches(x,"app.model.select",M,I)||isAltP(M))return void f(!0);if(!I.escape)return;if("off"!==T)return sN(),E("off"),void y(e=>e+1);if(G)return G.reject(new Error("Question cancelled by user")),V(null),N(t("questionCancelled","Question cancelled")),hardResetForResize(),void y(e=>e+1);if(W)return J({label:"No, and tell Command Code what to do differently",value:"no",description:"Deny and provide feedback",scope:void 0}),W.resolve(!1),H(null),void N(t("permissionDenied","Permission denied"));if(P&&!L)return void Z();const z=L?getSandboxConnection():null;z?interruptSandboxTurn(z):X()})}function useHandlers({resume:e,feedState:n,onboarding:o,uiOverlays:r,exitState:s,pendingOps:a,permissionState:i,statusState:l,authState:c,sessionId:d,loadTasteStatus:u,loadCurrentProvider:m,setInput:p}){const g=ht(()=>{isSandboxMode()?n.setFeed(e=>[...e,Zh(t("permissionsAreBypassedInASandboxSessionTheModeCannotBeChangedHereYet","Permissions are bypassed in a cloud session; the mode cannot be changed here yet."))]):i.setPermissionMode(e=>{const n=cyclePermissionMode({current:e,disableBypass:hO(d)?.isBypassDisabled()??!0}),o=resolvePendingPromptOnModeChange(n,{pendingIsRisky:void 0!==a.pendingPermission?.params?.risk});return o&&a.pendingPermission&&("approve"===o&&i.respondToPrompt(nI),a.pendingPermission.resolve("approve"===o),a.setPendingPermission(null)),hO(d)?.setPermissionMode({mode:n}),n})},[i.setPermissionMode,i.respondToPrompt,a.pendingPermission,a.setPendingPermission,d]),h=ht(()=>{i.setPermissionMode(e=>{const n="bypass"===e?e:"auto-accept";return hO(d)?.setPermissionMode({mode:n}),n})},[i.setPermissionMode,d]),f=ht(()=>{const e=!n.isCmdCodeBusy&&!a.pendingPermission&&!a.pendingQuestion,o=(hO(d)?.listCheckpoints().length??0)>0;e&&o&&r.setShowRewindSelector(!0)},[n.isCmdCodeBusy,a.pendingPermission,a.pendingQuestion,r.setShowRewindSelector,d]),y=ht(n=>{o.setOnboardingComplete(!0),o.setShowTasteOnboarding(!1),o.setAutoLearnTaste(!1),n?.skipped&&r.setShowTasteSkipBanner(!0),e&&r.setShowSessionSelector(!0)},[e,o,r]),v=ht(async()=>{try{if(await initializeCommandProjectSessions(),o.setShowTrustPrompt(!1),e)return console.log(t("noConversationsFoundToResume","No conversations found to resume.")),void s.setShouldExit(!0);o.setProjectTrusted(!0),u(),m()}catch(e){console.error("Failed to initialize project:",e),o.setShowTrustPrompt(!1),s.setShouldExit(!0)}},[e,o,s,u,m]),S=ht(()=>{s.setShouldExit(!0)},[s.setShouldExit]);return useKeyboard({showTasteConfig:r.showTasteConfig,showSkillsConfig:r.showSkillsConfig,showSettingsConfig:r.showSettingsConfig,showProviderSelector:r.showProviderSelector,showModelSelector:r.showModelSelector,showEffortSelector:r.showEffortSelector,showMemorySelector:r.showMemorySelector,showMcpManager:r.showMcpManager,showRewindSelector:r.showRewindSelector,showTreeSelector:r.showTreeSelector,showLoginOverlay:r.showLoginOverlay,showUsageOverlay:r.showUsageOverlay,showAddDirModal:r.showAddDirModal,showDesignGuide:r.showDesignGuide,authComponentInfo:c.authComponentInfo,setShowModelSelector:r.setShowModelSelector,setStaticKey:r.setStaticKey,showTasteSkipBanner:r.showTasteSkipBanner,setShowTasteSkipBanner:r.setShowTasteSkipBanner,showZdrNotice:r.showZdrNotice,setShowZdrNotice:r.setShowZdrNotice,modelNotice:r.modelNotice,setModelNotice:r.setModelNotice,transcriptMode:r.transcriptMode,setTranscriptMode:r.setTranscriptMode,isCmdCodeBusy:n.isCmdCodeBusy,liveEntries:n.liveEntries,queuedMessagesRef:n.queuedMessagesRef,setInput:p,setQueuedMessages:n.setQueuedMessages,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,setIsCmdCodeBusy:n.setIsCmdCodeBusy,setRetryAttempt:l.setRetryAttempt,setStatus:l.setStatus,pendingExitKey:s.pendingExitKey,setPendingExitKey:s.setPendingExitKey,pendingExitKeyRef:s.pendingExitKeyRef,lastExitKeyTimeRef:s.lastExitKeyTimeRef,exitConfirmationTimeoutRef:s.exitConfirmationTimeoutRef,resetPendingExitKey:s.resetPendingExitKey,pendingPermission:a.pendingPermission,setPendingPermission:a.setPendingPermission,pendingQuestion:a.pendingQuestion,setPendingQuestion:a.setPendingQuestion,setShouldExit:s.setShouldExit,sessionId:d,handleToggleAutoAccept:g,handleDoubleEscapeEmpty:f,respondToPrompt:i.respondToPrompt,createErrorEntry:sf}),{handleToggleAutoAccept:g,handleEnableAutoAccept:h,handleDoubleEscapeEmpty:f,handleTasteOnboardingComplete:y,handleTrust:v,handleNoTrust:S}}function runGit2(e){return S(e,{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:15e3,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}function warnAboutPromptTruncation(e){const n=e.trim().length;n<=kA||console.error(It.yellow(`Warning: prompt is ${n} characters; only the first ${kA} are sent.`))}function warnAboutLocalOnlyWork(e){e||console.error(It.yellow("Warning: local changes are not included (the cloud session works from the repo on GitHub)."))}function runSandboxStartPreflight(e){if(e.baseBranch&&!isValidSandboxBranchName(e.baseBranch))throw new Error("Invalid --base branch name.");warnAboutPromptTruncation(e.prompt);const n=validateSandboxGitRepo({run:__name(({command:e})=>runGit2(e),"run")});return warnAboutLocalOnlyWork(n.isClean),{repoUrl:n.repoUrl}}function createSandboxTransport(){const e=createApiClient({baseUrl:getApiBaseUrl(),timeout:3e5});return{post:__name(n=>e.post({endpoint:n.route,body:n.body}),"post"),get:__name(n=>e.get({endpoint:n.route}),"get")}}function deadlineFor(e){return"session/set_model"===e||"session/set_effort"===e?6e5:3e4}__name(testTurnChars,"testTurnChars"),__name(testTurnTickMs,"testTurnTickMs"),__name(makeInjectedTurnEntry,"makeInjectedTurnEntry"),__name(maybeStartInjectedTurns,"maybeStartInjectedTurns"),__name(useFeed,"useFeed"),Jt(),hL(),hL(),Jt(),hL(),__name(useKeyboard,"useKeyboard"),__name(useHandlers,"useHandlers"),Jt(),hL(),Jt(),hL(),Jt(),hL(),__name(runGit2,"runGit"),__name(warnAboutPromptTruncation,"warnAboutPromptTruncation"),__name(warnAboutLocalOnlyWork,"warnAboutLocalOnlyWork"),__name(runSandboxStartPreflight,"runSandboxStartPreflight"),Jt(),hL(),__name(createSandboxTransport,"createSandboxTransport"),__name(deadlineFor,"deadlineFor");var bG="Connecting to the cloud",TG="deadline";function withDeadline(e){return new Promise((n,o)=>{const r=setTimeout(()=>o(new Error(TG)),e.ms);e.promise.then(e=>{clearTimeout(r),n(e)},e=>{clearTimeout(r),o(e)})})}function isDeadline(e){return e instanceof Error&&e.message===TG}async function authHeaders(){const e=await getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env});if(!e)throw new Error(t("notAuthenticated","Not authenticated."));return{authorization:`Bearer ${e}`}}function isNotRunning(e){const n=e?.status;return 409===n}__name(withDeadline,"withDeadline"),__name(isDeadline,"isDeadline"),__name(authHeaders,"authHeaders"),__name(isNotRunning,"isNotRunning");var EG=__name(e=>new Promise(n=>setTimeout(n,e)),"sleep");async function openSandboxConnection(e){const n=createSandboxClient({transport:createSandboxTransport()});e.sessionId||e.onPhase?.("Creating a cloud session");const o=(e.sessionId?{sessionId:e.sessionId}:await startSession2({client:n,model:e.model,effort:e.effort,...e.baseBranch?{baseBranch:e.baseBranch}:{}})).sessionId,r=!e.sessionId,s={model:e.model,effort:e.effort};let a=await n.status({sessionId:o});"rpc"!==a.mode||isTerminalSandboxTaskStatus(a.status)&&!1===a.boxUp?(e.onPhase?.("Starting the cloud session"),await reopen({client:n,sessionId:o,...s})):e.sessionId&&e.onPhase?.(bG);const i=new Set,l=new Set,c=new Set,d=new Set,u=new Map,m=__name(()=>{const e=Date.now()-5e3;for(const[n,o]of u)o.sentAt>e||(o.reject(new Error(t("noAnswerFromTheSandboxEventsWereLost","No answer from the cloud session: events were lost."))),u.delete(n))},"failStalePending");let p=0;const g=`${process.pid}-${Date.now().toString(36)}`;let h=!1,f=0,y=new Set;const v=new Set,S=__name(()=>{f=Date.now(),O=Date.now();for(const e of[...v])e()},"markProcessUp"),w=__name(e=>new Promise(n=>{if(f>=e)return void n();const o=__name(()=>{clearTimeout(r),v.delete(o),n()},"wake"),r=setTimeout(o,2e3);v.add(o)}),"untilProcessUp"),k=__name(e=>{if("hello"===e.method){S();const n=e.params?.features;y=new Set(Array.isArray(n)?n.filter(e=>"string"==typeof e):[])}const n=e.id;if("string"==typeof n&&u.has(n))return u.get(n)?.resolve(e),void u.delete(n);if("string"==typeof e.method)for(const n of l)n(e)},"onRpcFrame"),C=__name(e=>{for(const[n,o]of u)o.reject(new Error(t("noAnswerFromTheSandbox","No answer from the cloud session: {{v0}}.",{v0:e}))),u.delete(n);for(const n of c)n(e)},"failWaiters"),b=__name(e=>{h||(T=null),C(e?t("theSandboxReported","the cloud session reported {{v0}}",{v0:e}):t("theStreamEnded","the stream ended"))},"settleEnd");let T=null,E=0,P=0,M=0;function attach(){M++;const n=streamSandboxTask({sessionId:o,isReattach:!0,...E>0?{lastEventId:E}:{},getBaseUrl:getApiBaseUrl,getAuthHeaders:authHeaders,maxReconnects:8,callbacks:{onAgentEvent:__name(({event:e})=>{for(const n of i)n(e)},"onAgentEvent"),onRpcFrame:__name(({frame:e})=>k(e),"onRpcFrame"),onGap:__name(()=>{m();for(const e of d)e();e.onGap?.()},"onGap"),onStatus:__name(({action:n})=>{O=Date.now(),"running"===n.type&&S(),"failed"===n.type&&(L=n.message,C(n.message)),e.onStatus?.(n)},"onStatus"),onErrorEvent:__name(({message:e})=>{L=e,C(e),S()},"onErrorEvent"),onDisconnected:__name(()=>e.onDisconnected?.(),"onDisconnected")}});return n.done.then(e=>{if(T!==n)return;const o=n.getLastEventId()>E;if(E=n.getLastEventId(),P=o?0:P+1,null===e&&!h&&P<=2)return T=null,void setTimeout(()=>{I()},1e3);b(e)},()=>{T===n&&(E=n.getLastEventId(),b(null))}),n}__name(attach,"attach");const I=__name(async()=>{if(h)return;const e=await n.status({sessionId:o}).catch(()=>null);e&&!1!==e.boxUp?await x().catch(()=>{}):b(null)},"reattachIfUp");let A=null;const x=__name(()=>T?Promise.resolve():(A||(A=(async()=>{a=await n.status({sessionId:o}),isTerminalSandboxTaskStatus(a.status)&&!1===a.boxUp&&(e.onPhase?.("Starting the cloud session"),L=null,await reopen({client:n,sessionId:o,...s}),E=0),T=attach(),await D()})().finally(()=>{A=null})),A),"ensureUp"),R=__name((e,n)=>{"session/set_model"===e&&"string"==typeof n.model&&(s.model=n.model,s.effort=void 0),"session/set_effort"===e&&"string"==typeof n.effort&&(s.effort=n.effort)},"remember");let L=null,O=Date.now();const D=__name(async()=>{const i=Date.now()+9e5;O=Date.now();let l=!1;for(;Date.now()-O<12e4&&Date.now()<i;){if(L)throw new Error(L);const i=`${g}:probe-${++p}`,c=Date.now(),d=new Promise((e,n)=>u.set(i,{resolve:e,reject:n,sentAt:Date.now()}));d.catch(()=>{});try{return await n.input({sessionId:o,frame:probeFrame(i)}),void await withDeadline({promise:d,ms:2e4})}catch(d){if(u.delete(i),!isNotRunning(d)&&!isDeadline(d))throw d;if(await w(c),L)throw new Error(L);if(a=await n.status({sessionId:o}),!1!==a.boxUp){!l&&!r&&Date.now()-O>45e3&&isTerminalSandboxTaskStatus(a.status)&&(l=!0,e.onPhase?.("Restarting the cloud session"),L=null,O=Date.now(),await n.continueTask({sessionId:o,prompt:"",mode:"rpc",restart:!0,...s.model?{model:s.model}:{},...s.effort?{effort:s.effort}:{}}),E=0,T?.detach(),T=attach());continue}if(L||l)throw new Error(L??t("theSandboxStoppedBeforeItsProcessWasReady","The cloud session stopped before it was ready."));l=!0,e.onPhase?.("Starting the cloud session"),await reopen({client:n,sessionId:o,...s}),O=Date.now(),E=0,T?.detach(),T=attach()}}throw new Error(t("sandboxStoppedReportingProgress","The cloud session stopped reporting progress while starting. Try again, or reopen it later."))},"waitReady"),N=__name(async({method:e,params:r})=>{await x();const s=`${g}:${++p}`,a={jsonrpc:"2.0",id:s,method:e,params:r??{}},i=new Promise((e,n)=>u.set(s,{resolve:e,reject:n,sentAt:Date.now()}));i.catch(()=>{});try{await n.input({sessionId:o,frame:a})}catch(e){if(!isNotRunning(e))throw u.delete(s),e;T&&(E=T.getLastEventId()),T?.detach(),T=null;try{await x(),await n.input({sessionId:o,frame:a})}catch(e){throw u.delete(s),e}}const l=setTimeout(()=>{const e=u.get(s);e&&(u.delete(s),e.reject(new Error(t("noAnswerFromTheSandboxItsAgentProcessIsNotResponding","No answer from the cloud session: its agent is not responding."))))},deadlineFor(e)),c=await i.finally(()=>clearTimeout(l));return void 0===c.error&&R(e,r??{}),c},"request");return T=attach(),await D(),{sessionId:o,summary:__name(()=>a,"summary"),request:N,onAgentEvent:__name(e=>(i.add(e),()=>i.delete(e)),"onAgentEvent"),onNotification:__name(e=>(l.add(e),()=>l.delete(e)),"onNotification"),onEnded:__name(e=>(c.add(e),()=>c.delete(e)),"onEnded"),onGap:__name(e=>(d.add(e),()=>d.delete(e)),"onGap"),streamNumber:__name(()=>M,"streamNumber"),supports:__name(e=>y.has(e),"supports"),close:__name(()=>{h=!0,T?.detach()},"close")}}function probeFrame(e){return{jsonrpc:"2.0",id:e,method:"session/state",params:{}}}async function startSession2(e){const n=runSandboxStartPreflight({prompt:"",...e.baseBranch?{baseBranch:e.baseBranch}:{}});return{sessionId:(await e.client.start({repoUrl:n.repoUrl,prompt:"",mode:"rpc",...e.baseBranch?{baseBranch:e.baseBranch}:{},...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{}})).sessionId}}async function reopen(e){const n=__name(()=>e.client.continueTask({sessionId:e.sessionId,prompt:"",mode:"rpc",...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{}}),"attempt");try{await n()}catch(e){if(!isNotRunning(e))throw e;await EG(3e3),await n()}}async function adoptRunningTurn(e){const{connection:n}=e,o=__name(o=>alignModel({connection:n,...o?{state:o}:{},...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{}}),"align"),r=await readState(n);return!0===r?.busy&&r.turnId?(setAdoptedTurn({turnId:r.turnId,afterward:__name(async()=>o((await readState(n))?.session),"afterward"),reload:e.reload}),!0):(await o(r?.session),!1)}async function readState(e){const n=await e.request({method:"session/state"}).catch(()=>null);return n?.result}async function alignModel(e){const{connection:n,state:o,model:r,effort:s}=e;if(o?.model&&r){if(o.model!==r){const e=await n.request({method:"session/set_model",params:{model:r}}).catch(()=>null);if(!e||e.error)return}s&&o.effort!==s&&await n.request({method:"session/set_effort",params:{effort:s}}).catch(()=>null)}}async function loadSandboxFeed(e){const n=createSandboxClient({transport:createSandboxTransport()}),{lines:o}=await n.transcript({sessionId:e.sessionId});return reconstructFeedFromMessages(displayMessagesFromV3Lines(o))}async function rebuildFeedAfterGap(e){let n=null;e.setFeed(e=>(n=e,e));const o=e.load??loadSandboxFeed,r=await o({sessionId:e.sessionId});e.setFeed(e=>e===n?r:e)}function resolveExternalModelChange(e){return"model"!==e.setting||"string"!=typeof e.value||0===e.value.length||e.value===e.currentModel?null:{modelId:e.value}}function raceAnswerAgainstAbort(e,n){return n?n.aborted?Promise.resolve("deny"):new Promise((o,r)=>{const s=__name(()=>o("deny"),"onAbort");n.addEventListener("abort",s,{once:!0}),e.then(e=>{n.removeEventListener("abort",s),o(e)},e=>{n.removeEventListener("abort",s),r(e)})}):e}function buildInteraction({permissionsService:e,permissionModeRef:n,setPendingQuestion:o,setStatus:r}){return{confirmTool:__name(async({toolName:o,input:r,description:s,risk:a,explain:i,signal:l})=>{if(!e)return"allow";if(l?.aborted)return"deny";const c=__name(e=>raceAnswerAgainstAbort(e.then(e=>e.allowed?"allow":"deny"),l),"withInterrupt"),d=buildToolPermissionRequest({toolName:o,input:r,description:s,...void 0!==a?{risk:a}:{},...void 0!==i?{explain:i}:{}});return"shell"===d.kind?c(e.requestShellPermission(d.request)):"generic"===d.kind?c(e.requestGenericPermission(d.request)):c(e.requestPermission(d.request,n.current))},"confirmTool"),askQuestion:__name(async e=>new Promise(n=>{o({params:{questions:e.questions.map(e=>({question:e.question,header:e.header??"",options:e.options.map(e=>({label:e.label,description:e.description??"",...void 0!==e.preview?{preview:e.preview}:{}})),multiSelect:e.multiSelect??!1})),hideCustomInput:e.hideCustomInput,exitPlanMode:e.exitPlanMode,enterPlanMode:e.enterPlanMode,planContent:e.planContent,planFilePath:e.planFilePath,compact:e.compact},resolve:__name(e=>{n({answers:e.answers.map(e=>({questionIndex:e.questionIndex,selectedOptions:[...e.selectedOptions],...void 0!==e.notes?{notes:e.notes}:{},...void 0!==e.preview?{preview:e.preview}:{},...e.images?.length?{images:e.images}:{}})),...e.disposition?{disposition:e.disposition}:{}})},"resolve"),reject:__name(()=>{n({answers:[]})},"reject")}),r(t("waitingForYourAnswer","Waiting for your answer…"))}),"askQuestion")}}function useHarness({sessionId:e,sessionLoaded:n,showSessionSelector:o,projectTrusted:s,permissionsService:a,permissionModeRef:i,setPermissionMode:l,permissionModeExplicit:c,dangerouslySkipPermissions:d,setPendingQuestion:u,setStatus:m,setFeed:p,queuedMessagesRef:g,setQueuedMessages:h,setInput:f,onSessionTitled:y,currentModel:v,setCurrentModel:S,setStaticKey:w,isCmdCodeBusy:k,setConnecting:C,onFatal:b}){const T=pt(v);T.current=v;const E=pt(null),P=pt(!1),M=pt(k);M.current=k;const I=ht(()=>{hardResetForResize(),w?.(e=>e+1)},[w]),A=ht(e=>{T.current=e,S?.(e),I()},[I,S]);gt(()=>{if(k)return;const e=E.current,n=P.current;E.current=null,P.current=!1,(null!==e||n)&&(null===e||e===T.current?n&&I():A(e))},[k,A,I]);const[x,R]=mt(!1),[L,O]=mt(0),D=pt(null),N=__name(()=>{D.current?.(),D.current=null},"releaseRebuildBarrier");gt(()=>onHarnessSessionRebuild(n=>{if(n===e)return new Promise(e=>{D.current?.(),D.current=e,O(e=>e+1)})}),[e]);const F=pt(i.current),_=pt(null);return gt(()=>{if(isSandboxMode()){N();let e=!1;return(async()=>{m?.(t("connectingToTheSandbox2","Connecting to the cloud")),setSandboxConnecting(!0),C?.(!0);const n=getRequestedSandboxSessionId();let o=n,r=!1;const s=await openSandboxConnectionOnce(()=>openSandboxConnection({sessionId:n,...getRequestedSandboxBase()?{baseBranch:getRequestedSandboxBase()??""}:{},...sandboxModelFor(v)?{model:sandboxModelFor(v)}:{},...sandboxEffortFor(v)?{effort:sandboxEffortFor(v)}:{},onPhase:__name(e=>{isSandboxConnecting()&&(r=e===bG,showConnectStep(e))},"onPhase"),onStatus:__name(e=>{"setup_step"!==e.type&&"replayed_setup"!==e.type||(m?.(e.message??t("startingTheSandbox","Starting the cloud session")),e.message&&isSandboxConnecting()&&showConnectStep(e.message)),"running"===e.type&&(m?.(yf()),r&&isSandboxConnecting()&&(clearConnectSteps(),showConnectStep(bG)))},"onStatus"),onGap:__name(()=>{const e=getSandboxConnection()?.sessionId??o;e&&p&&rebuildFeedAfterGap({sessionId:e,setFeed:p}).catch(()=>{})},"onGap")}));if(!e){if(o=s.sessionId,setSandboxConnection(s),g&&h&&p&&f&&wireSteerQueue({connection:s,queuedRef:g,setQueued:h,setFeed:p,setInput:f}),v&&!sandboxModelFor(v)&&p?.(e=>[...e,Zh(t("isACustomModelThisMachineServesTheSandboxRunsItsDefaultModelInstead","{{v0}} is a custom model this machine serves; the cloud session runs its default model instead.",{v0:v}))]),n){showConnectStep("Loading the conversation");const n=await loadSandboxFeed({sessionId:s.sessionId}).catch(()=>null);n&&!e&&p?.(()=>n)}await adoptRunningTurn({connection:s,...sandboxModelFor(v)?{model:sandboxModelFor(v)}:{},...sandboxEffortFor(v)?{effort:sandboxEffortFor(v)}:{},reload:__name(()=>loadSandboxFeed({sessionId:s.sessionId}).then(e=>p?.(()=>e)).catch(()=>{}),"reload")}),m?.(""),clearConnectSteps(),p?.(e=>[...e,Zh(`Connected to cloud (${s.summary().repoUrl.replace("https://github.com/","")}, branch ${s.summary().branch??"?"})\n Session ${s.sessionId}`)]),setSandboxConnecting(!1),C?.(!1),R(!0)}})().catch(n=>{e||(setSandboxConnecting(!1),m?.(""),clearConnectSteps(),C?.(!1),p?.(e=>[...e,sf(t("sandbox","Cloud: {{v0}}",{v0:n instanceof Error?n.message:String(n)}))]),setTimeout(()=>b?.(),400))}),()=>{e=!0}}if(!s||o)return void N();const n=__name(()=>Boolean(c)||i.current!==F.current,"userChoseMode");let S,w,k=!1;return(async()=>{const o=consumeStartupSessionOverrides(),{persist:s}=getStickyStartupSessionOptions(),c=await loadResumeAgentState({sessionId:e,...o.sessionFilePath?{baseDir:r(o.sessionFilePath)}:{}});if(k)return;const f=__name(()=>{const e=g?.current??[];if(0===e.length)return[];const n=e.filter(e=>!0!==e.isRelayed),o=e.filter(e=>!0===e.isRelayed);return 0===n.length?[]:(g&&(g.current=o),h?.(()=>o),p?.(e=>[...e,...n.flatMap(e=>{if(e.isMeta)return[];const n=Xh(e.displayMessage??e.input);return e.ideHint&&(n.metadata={ideHint:e.ideHint}),[n]})]),n.map(e=>{const n=e.ideContext?`${e.ideContext}\n\n${e.input}`:e.input;return e.images&&0!==e.images.length?{input:[...clipboardImagesToUserContent(e.images),{type:"text",text:n}],...e.source?{source:e.source}:{}}:{input:n,...e.source?{source:e.source}:{}}}))},"drainQueuedMessages"),v=await loadCommandModHost(),C=await gO({sessionId:e,baseUrl:getApiBaseUrl(),...n()?{permissionMode:i.current}:{},dangerouslySkipPermissions:d,drainQueuedMessages:f,peekQueuedMessageCount:__name(()=>(g?.current??[]).filter(e=>!0!==e.isRelayed).length,"peekQueuedMessageCount"),interaction:buildInteraction({permissionsService:a,permissionModeRef:i,setPendingQuestion:u,setStatus:m}),requestSlashCommand:__name(({command:n})=>{const o=refuseAgentSlashCommand(n);return o?{status:"unavailable",message:o}:(enqueueAgentSlashCommand({sessionId:e,command:n}),{status:"accepted"})},"requestSlashCommand"),resumeState:c,modHost:v,...void 0!==s?{persist:s}:{},...o.sessionFilePath?{sessionFilePath:o.sessionFilePath}:{},ideBridge:createLocalIdeBridge()}).catch(()=>{});if(N(),k||!C)return;o.name&&C.setSessionName(o.name),C.getPermissionMode()!==i.current&&(n()?C.setPermissionMode({mode:i.current}):(i.current=C.getPermissionMode(),l?.(C.getPermissionMode())));const b=C.getModel(),x=b!==T.current;x&&A(b),x||C.getEffort()===getReasoningEffort(b)||I(),v&&p&&(v.setEntrySink(e=>{p(n=>[...n,Zh(e.join("\n"))])}),w=__name(()=>v.setEntrySink(void 0),"clearModEntrySink")),S=C.events.subscribe(e=>{if("session_titled"===e.type)return void y?.(e.title);if("permission_mode_changed"===e.type)return i.current=e.mode,void l?.(e.mode);if("config_setting_changed"===e.type){if("theme"===e.setting&&"string"==typeof e.value&&isCliTheme(e.value)&&applyTuiTheme(resolveCliTheme(e.value)),"effort"===e.setting)return void(M.current?P.current=!0:I());const n=resolveExternalModelChange({setting:e.setting,value:e.value,currentModel:T.current});return void(n&&(M.current?E.current=n.modelId:A(n.modelId)))}if("subagent_stop"===e.type){if(!p)return;return void p(n=>settleBackgroundAgentRow({entries:n,toolCallId:e.toolCallId,tokensUsed:e.tokensUsed,...e.status?{status:e.status}:{}}))}if("notice"!==e.type||!p)return;const n=tasteNoticeToFeedEntry(e);n?p(e=>[...e,n]):M.current||p(n=>[...n,Zh(e.message,{noticeLevel:e.level})])}),R(!0),_.current!==e&&(_.current=e,C.fireSessionStartHooks({source:consumeNextSessionStartSource()}).then(e=>{if(k||0===e.hooksRun||!p)return;const n=1===e.hooksRun?"":"s",o=[t("ranSessionStartHook","Ran {{v0}} session start hook{{v1}}",{v0:e.hooksRun,v1:n}),...e.systemMessage?e.systemMessage.split("\n"):[]];p(e=>[...e,Zh(o.join("\n"))])}).catch(()=>{}))})(),()=>{k=!0,S?.(),w?.()}},[e,n,o,s,a,i,l,c,d,u,m,S,A,L,I]),{ready:x}}function useLifecycle({exit:e,feedState:n,exitState:o,statusState:r,authState:s,onboarding:a,uiOverlays:i,skipOnboarding:l,sessionId:c,sessionTitleHolder:d}){gt(()=>{o.shouldExit&&(isSandboxMode()&&getSandboxConnection()?.close(),r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),o.exitConfirmationTimeoutRef.current&&clearTimeout(o.exitConfirmationTimeoutRef.current),s.providerNotificationTimer.current&&clearTimeout(s.providerNotificationTimer.current),s.modelNotificationTimer.current&&clearTimeout(s.modelNotificationTimer.current),releaseRemoteLockSync(),d&&(d.loadTitle=()=>loadCommandUserRenamedTitle({sessionId:c}),d.sessionId=c),(async()=>{try{await Promise.allSettled([shutdownActiveRemote(),disconnectAllMcpServers(),yO()])}catch{}try{e()}catch{process.exit(0)}})())},[o.shouldExit,e]),gt(()=>()=>{r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),o.exitConfirmationTimeoutRef.current&&clearTimeout(o.exitConfirmationTimeoutRef.current),s.providerNotificationTimer.current&&clearTimeout(s.providerNotificationTimer.current),s.modelNotificationTimer.current&&clearTimeout(s.modelNotificationTimer.current)},[]),gt(()=>{(async()=>{await loadCustomProviderModels();const e=await checkOAuthSetupRequired({currentProvider:s.currentProvider,isByokModel:isByok({model:s.currentModel}),providerAuthHeaders:providerAuthHeaders});e&&r.setStatus(e)})()},[s.currentProvider,s.currentModel]),gt(()=>{if(!n.isCmdCodeBusy)return void(r.pinnedStatusRef.current=!1);if(null!==r.retryAttempt)return;const e=setInterval(()=>{r.pinnedStatusRef.current||r.setStatus(yf())},Pf);return()=>clearInterval(e)},[n.isCmdCodeBusy,r.retryAttempt]),gt(()=>{l||isSandboxMode()||triggerTasteOnboarding({projectTrusted:a.projectTrusted,onboardingComplete:a.onboardingComplete,isOnboardingMode:a.showTasteOnboarding,tasteOnboardingCheckedRef:a.tasteOnboardingCheckedRef,setIsOnboardingMode:a.setShowTasteOnboarding})},[a.projectTrusted,a.onboardingComplete,a.showTasteOnboarding,l]),gt(()=>{if(a.showTasteOnboarding&&!a.tasteOnboardingEntryId){const e=af();a.setTasteOnboardingEntryId(e.id),n.setFeed(n=>[...n,e])}!a.showTasteOnboarding&&a.tasteOnboardingEntryId&&(n.setFeed(e=>e.filter(e=>e.id!==a.tasteOnboardingEntryId)),a.setTasteOnboardingEntryId(null))},[a.showTasteOnboarding,a.tasteOnboardingEntryId])}async function handleCompactModeSelect({mode:e,setShowCompactModeSelector:n,setStatus:o}){try{await setCompactMode({mode:e}),n(!1),o(buildCompactModeStatusMessage(e))}catch{o(translateUiCopy(ms)),n(!1)}}function handleCompactModeCancel({setShowCompactModeSelector:e}){e(!1)}__name(openSandboxConnection,"openSandboxConnection"),__name(probeFrame,"probeFrame"),__name(startSession2,"startSession"),__name(reopen,"reopen"),Jt(),__name(adoptRunningTurn,"adoptRunningTurn"),__name(readState,"readState"),__name(alignModel,"alignModel"),Jt(),hL(),__name(loadSandboxFeed,"loadSandboxFeed"),__name(rebuildFeedAfterGap,"rebuildFeedAfterGap"),Jt(),__name(resolveExternalModelChange,"resolveExternalModelChange"),Jt(),__name(raceAnswerAgainstAbort,"raceAnswerAgainstAbort"),__name(buildInteraction,"buildInteraction"),__name(useHarness,"useHarness"),Jt(),hL(),__name(useLifecycle,"useLifecycle"),Jt(),hL(),Jt(),hL(),__name(handleCompactModeSelect,"handleCompactModeSelect"),__name(handleCompactModeCancel,"handleCompactModeCancel");var PG=__name(e=>{},"noopBool");function useMainActionCallbacks({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,permissionState:a,setInput:i}){const l=pt({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,permissionState:a,setInput:i});l.current={feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,permissionState:a,setInput:i};const c=ht(e=>{const{feedState:n,sessionState:o,statusState:r,uiOverlays:s,authState:a}=l.current;handleSelectSession({selectedSessionId:e,previousSessionId:o.sessionId,sessionLoadIdRef:o.sessionLoadIdRef,setFeed:n.setFeed,setLiveEntries:n.setLiveEntries,setSessionId:o.setSessionId,setShowSessionSelector:s.setShowSessionSelector,setSessionLoaded:o.setSessionLoaded,setStaticKey:s.setStaticKey,setShareInfo:r.setShareInfo,setCurrentModel:a.setCurrentModel,inTuiResume:!0})},[]),d=ht(({messageId:e,mode:n})=>{const{feedState:o,sessionState:r,statusState:s,uiOverlays:a,setInput:i}=l.current;handleRewindSelect({messageId:e,mode:n,sessionId:r.sessionId,setFeed:o.setFeed,setStatus:s.setStatus,setShowRewindSelector:a.setShowRewindSelector,setStaticKey:a.setStaticKey,setInput:i})},[]),u=ht(()=>{handleRewindCancel({setShowRewindSelector:l.current.uiOverlays.setShowRewindSelector})},[]),m=ht(e=>{const{feedState:n,sessionState:o,uiOverlays:r,setInput:s}=l.current;return handleTreeSelect({...e,sessionId:o.sessionId,setFeed:n.setFeed,setShowTreeSelector:r.setShowTreeSelector,setStaticKey:r.setStaticKey,setInput:s})},[]),p=ht(()=>{handleTreeCancel({setShowTreeSelector:l.current.uiOverlays.setShowTreeSelector})},[]),g=ht(e=>{const{feedState:n,sessionState:o}=l.current;handleTreeLabel({...e,sessionId:o.sessionId,setFeed:n.setFeed})},[]),h=ht(()=>{handleTreeAbortSummary({sessionId:l.current.sessionState.sessionId})},[]),f=ht((e,n)=>{const{feedState:o,statusState:r,uiOverlays:s}=l.current;handleLoginComplete({success:e,message:n,setShowLoginOverlay:s.setShowLoginOverlay,setFeed:o.setFeed,setStatus:r.setStatus})},[]),y=ht(()=>{const{feedState:e,statusState:n,uiOverlays:o}=l.current;handleLoginCancel({setShowLoginOverlay:o.setShowLoginOverlay,setFeed:e.setFeed,setStatus:n.setStatus})},[]),v=__name(e=>{const n=l.current.authState.currentModel;if(dlog("[LaneSwitch] autoSwitchModelForLane",{provider:e,model:n}),laneServesModel({activeLane:e,modelId:n}))return;const o=defaultModelForLane({activeLane:e});dlog("[LaneSwitch] fallback",{fallback:o}),o&&C(o,e)},"autoSwitchModelForLane"),S=ht(e=>{const{authState:n,sessionState:o,statusState:r,uiOverlays:s}=l.current;handleProviderSelect({provider:e,setCurrentProvider:n.setCurrentProvider,setShowProviderSelector:s.setShowProviderSelector,setAuthComponentInfo:n.setAuthComponentInfo,setStatus:r.setStatus,setShowProviderNotification:n.setShowProviderNotification,providerNotificationTimer:n.providerNotificationTimer,setShowModelSelector:s.setShowModelSelector,sessionId:o.sessionId,onActiveModelOrphaned:__name(async()=>{{const e=await w();dlog("[LaneSwitch] orphaned → lane default",{fallback:e}),clearModelOverride(),setSessionModel(e),await persistDefaultModel({model:e});const n=l.current.sessionState.sessionId;n&&await saveCommandSessionMeta({sessionId:n,meta:{model:e}}),l.current.authState.setCurrentModel(e),l.current.uiOverlays.setStaticKey(e=>e+1)}},"onActiveModelOrphaned"),onDiskDefaultOrphaned:__name(async()=>{await persistDefaultModel({model:await w()})},"onDiskDefaultOrphaned")}).then(({switched:n})=>{n&&v(e)})},[]),w=__name(async()=>{const e=l.current.authState.currentProvider??await getConfiguredProvider()??qr.COMMAND;return e===qr.COMMAND?wn:defaultModelForLane({activeLane:e})??wn},"resolveOrphanFallback"),k=ht(()=>{handleProviderCancel({setShowProviderSelector:l.current.uiOverlays.setShowProviderSelector})},[]),C=ht((e,n)=>{const{authState:o,sessionState:r,statusState:s,uiOverlays:a,feedState:i}=l.current;handleModelSelect({modelId:e,provider:n,setCurrentModel:o.setCurrentModel,setShowModelSelector:a.setShowModelSelector,setStatus:s.setStatus,modelNotificationTimer:o.modelNotificationTimer,setShowModelNotification:PG,setCurrentProvider:o.setCurrentProvider,setStaticKey:a.setStaticKey,sessionId:r.sessionId,setFeed:i.setFeed,setContextUsage:s.setContextUsage,setModelNotice:a.setModelNotice})},[]),b=ht(()=>{handleModelCancel({setShowModelSelector:l.current.uiOverlays.setShowModelSelector})},[]),T=ht(e=>{const{statusState:n,uiOverlays:o}=l.current;handleCompactModeSelect({mode:e,setShowCompactModeSelector:o.setShowCompactModeSelector,setStatus:n.setStatus})},[]),E=ht(()=>{handleCompactModeCancel({setShowCompactModeSelector:l.current.uiOverlays.setShowCompactModeSelector})},[]),P=ht(e=>{const{statusState:n,uiOverlays:o}=l.current;handleThemeSelect({theme:e,setShowThemeSelector:o.setShowThemeSelector,setStatus:n.setStatus,setStaticKey:o.setStaticKey})},[]),M=ht(()=>{handleThemeCancel({setShowThemeSelector:l.current.uiOverlays.setShowThemeSelector})},[]),I=ht(e=>{const{statusState:n,uiOverlays:o}=l.current;handleLanguageSelect({locale:e,setShowLanguageSelector:o.setShowLanguageSelector,setStatus:n.setStatus})},[]),A=ht(()=>{handleLanguageCancel({setShowLanguageSelector:l.current.uiOverlays.setShowLanguageSelector})},[]),x=ht(e=>{const{feedState:n,uiOverlays:o,sessionState:r,permissionState:s}=l.current;o.setShowRcSelector(!1);const a={setFeed:n.setFeed,setShowRcSelector:o.setShowRcSelector,sessionId:r.sessionId,permissionModeRef:s.permissionModeRef,setPermissionMode:s.setPermissionMode};"stop"!==e.kind?startRemote(a,e.mode,{provider:e.provider,takeover:e.takeover}):stopRemote(a,{clearChat:e.clearChat})},[]),R=ht(()=>{l.current.uiOverlays.setShowRcSelector(!1)},[]),L=ht(()=>{const{authState:e,sessionState:n,statusState:o,uiOverlays:r}=l.current;handleAuthSuccess({authComponentInfo:e.authComponentInfo,setAuthComponentInfo:e.setAuthComponentInfo,setShowProviderSelector:r.setShowProviderSelector,setCurrentProvider:e.setCurrentProvider,setStatus:o.setStatus,setShowProviderNotification:e.setShowProviderNotification,providerNotificationTimer:e.providerNotificationTimer,sessionId:n.sessionId}).then(({switchedProvider:e})=>{e&&v(e)})},[]),O=ht(()=>{handleAuthCancel({setAuthComponentInfo:l.current.authState.setAuthComponentInfo})},[]);return{onSelectSession:c,onRewindSelect:d,onRewindCancel:u,onTreeSelect:m,onTreeCancel:p,onTreeLabel:g,onTreeAbortSummary:h,onLoginComplete:f,onLoginCancel:y,handleProviderSelect:S,handleProviderCancel:k,handleModelSelect:C,handleModelCancel:b,handleCompactModeSelect:T,handleCompactModeCancel:E,handleThemeSelect:P,handleThemeCancel:M,handleLanguageSelect:I,handleLanguageCancel:A,handleRcSelect:x,handleRcCancel:R,handleAuthSuccess:L,handleAuthCancel:O}}function useMonitorOutputWakeup({onSubmit:e}){const n=pt(e);gt(()=>{n.current=e},[e]),gt(()=>{const e=subscribeMonitorCheck(e=>{n.current(buildMonitorWakeupSubmission(e))});return()=>{e()}},[])}function useOnboarding(){const[e,n]=mt(!1),[o,r]=mt(!1),[s,a]=mt(!0),[i,l]=mt(!1),[c,d]=mt(!1),[u,m]=mt(null),[p,g]=mt(!1);return{showTrustPrompt:e,setShowTrustPrompt:n,projectTrusted:o,setProjectTrusted:r,checkingProject:s,setCheckingProject:a,showTasteOnboarding:i,setShowTasteOnboarding:l,onboardingComplete:c,setOnboardingComplete:d,tasteOnboardingEntryId:u,setTasteOnboardingEntryId:m,autoLearnTaste:p,setAutoLearnTaste:g,tasteOnboardingCheckedRef:pt(!1)}}function usePendingOps(){const[e,n]=mt(null),[o,r]=mt(null);return{pendingPermission:e,setPendingPermission:n,pendingQuestion:o,setPendingQuestion:r}}function resolvePermissionSettingsPath(e){return n.join(e.projectRoot,".commandcode",e.local?"settings.local.json":"settings.json")}__name(useMainActionCallbacks,"useMainActionCallbacks"),Jt(),hL(),__name(useMonitorOutputWakeup,"useMonitorOutputWakeup"),Jt(),__name(useOnboarding,"useOnboarding"),Jt(),__name(usePendingOps,"usePendingOps"),Jt(),hL(),Jt(),hL(),__name(resolvePermissionSettingsPath,"resolvePermissionSettingsPath");var MG=__name((e={})=>{const{projectRoot:n,local:o=!1,onGenericPermissionRequest:r,onPermissionRequest:s,onPermissionResponse:a,onShellPermissionRequest:i}=e,l=n||process.cwd(),c=pt({onGenericPermissionRequest:r,onPermissionRequest:s,onPermissionResponse:a,onShellPermissionRequest:i}),[d,u]=mt(null),m=pt(null),[p,g]=mt(null),[h,f]=mt(!1);return gt(()=>{c.current={onGenericPermissionRequest:r,onPermissionRequest:s,onPermissionResponse:a,onShellPermissionRequest:i}},[r,s,a,i]),gt(()=>{const e=resolvePermissionSettingsPath({projectRoot:l,local:o}),n=createPermissionsService(l,{configPath:e});return m.current=createPermissionPromptBridge({service:n,onFileRequest:__name(e=>{g(e),f(!0),c.current.onPermissionRequest?.(e)},"onFileRequest"),onShellRequest:__name(e=>{g(e),f(!0),c.current.onShellPermissionRequest?.(e)},"onShellRequest"),onGenericRequest:__name(e=>{g(e),f(!0),c.current.onGenericPermissionRequest?.(e)},"onGenericRequest")}),u(n),()=>{n.removeAllListeners(),m.current=null}},[o,l]),{requestPermission:ht(async e=>{if(!d)return{allowed:!0};const n=await d.requestPermission(e);return c.current.onPermissionResponse?.(n),n},[d]),requestShellPermission:ht(async e=>{if(!d)return{allowed:!0};const n=await d.requestShellPermission(e);return c.current.onPermissionResponse?.(n),n},[d]),requestGenericPermission:ht(async e=>{if(!d)return{allowed:!0};const n=await d.requestGenericPermission(e);return c.current.onPermissionResponse?.(n),n},[d]),respondToPrompt:ht(e=>{m.current?.respond(e)&&(g(null),f(!1))},[]),clearSessionPermissions:ht(()=>{d?.clearSessionPermissions()},[d]),clearProjectPermissions:ht(()=>{d?.clearProjectPermissions()},[d]),setAutoApprove:ht((e,n)=>{d?.setAutoApprove(e,n)},[d]),setEnabled:ht(e=>{d?.setEnabled(e)},[d]),currentRequest:p,isPrompting:h,service:d}},"usePermissions");function usePermissionMode({initialPermissionMode:e,local:n=!1,dangerouslySkipPermissions:o=!1,setPendingPermission:r,setStatus:s}){const[a,i]=mt(()=>e||(o?"bypass":"default")),l=pt(a);gt(()=>{l.current=a},[a]);const{requestShellPermission:c,service:d,respondToPrompt:u,clearSessionPermissions:m,setEnabled:p}=MG({projectRoot:process.cwd(),local:n,onPermissionRequest:__name(e=>{r({toolName:getFileActionToolName(e.action),params:e,resolve:__name(e=>{},"resolve")}),s(t("waitingForFileEditPermission","Waiting for file edit permission..."))},"onPermissionRequest"),onShellPermissionRequest:__name(e=>{r({toolName:"shell_command",params:e,resolve:__name(e=>{},"resolve")}),s(t("waitingForShellCommandPermission","Waiting for shell command permission..."))},"onShellPermissionRequest"),onGenericPermissionRequest:__name(e=>{r({toolName:e.toolName,params:e,resolve:__name(e=>{},"resolve")}),s(t("waitingForToolPermission","Waiting for tool permission..."))},"onGenericPermissionRequest"),onPermissionResponse:__name(e=>{e.allowed?s(t("permissionGranted","Permission granted")):s(t("permissionDenied","Permission denied"))},"onPermissionResponse")});return gt(()=>{d&&applyAutoAcceptMode({enabled:a,service:d})},[a,d]),{permissionMode:a,setPermissionMode:i,permissionModeRef:l,permissionsService:d,respondToPrompt:u,clearSessionPermissions:m,dangerouslySkipPermissions:o}}function useQueuedMessageFlush({isCmdCodeBusy:e,queuedMessages:n,queuedMessagesRef:o,setQueuedMessages:r,isSubmittingRef:s,onSubmit:a}){const i=pt(a);gt(()=>{i.current=a},[a]);const l=n.some(e=>!e.sentToSandbox);gt(()=>{if(!l||e)return;const n=setInterval(()=>{if(s.current)return;const e=o.current.find(e=>!e.sentToSandbox);e&&(r(e=>{const n=e.findIndex(e=>!e.sentToSandbox);return-1===n?e:[...e.slice(0,n),...e.slice(n+1)]}),i.current({role:"user",input:e.input,...void 0!==e.displayMessage?{displayMessage:e.displayMessage}:{},...void 0!==e.isAutomated?{isAutomated:e.isAutomated}:{},...void 0!==e.isMeta?{isMeta:e.isMeta}:{},...void 0!==e.source?{source:e.source}:{},...void 0!==e.isRelayed?{isRelayed:e.isRelayed}:{},...void 0!==e.hiddenMessages?{hiddenMessages:e.hiddenMessages}:{},...void 0!==e.ideContext?{ideContext:e.ideContext}:{},...void 0!==e.ideHint?{ideHint:e.ideHint}:{},...e.images&&e.images.length>0?{images:e.images.map(e=>({...e}))}:{}}))},250);return()=>clearInterval(n)},[l,e,s,o,r])}__name(usePermissionMode,"usePermissionMode"),Jt(),__name(useQueuedMessageFlush,"useQueuedMessageFlush"),Jt(),hL(),Jt(),hL();var IG=__name(()=>({shell_command:t("runACommand","Run a command"),kill_shell:t("killARunningProcess","Kill a running process"),edit_file:t("editAFile","Edit a file"),write_file:t("writeAFile","Write a file"),read_file:t("readAFile","Read a file"),read_directory:t("listADirectory","List a directory"),web_fetch:t("fetchAUrl","Fetch a URL"),web_search:t("searchTheWeb","Search the web")}),"ACTION_LABELS");function actionLabel(e){return IG()[e]??kS[e]??e}__name(actionLabel,"actionLabel");var AG=__name(e=>e.length>500?`${e.slice(0,500)}…`:e,"clip"),xG=__name(e=>"string"==typeof e&&""!==e.trim()?e:void 0,"asText");function isRedundantDescription(e,n){return!!e.startsWith("Execute shell command:")||void 0!==n&&(e===n||e.includes(n))}__name(isRedundantDescription,"isRedundantDescription");var RG=__name(e=>"object"==typeof e&&null!==e?e:{},"fieldsOf"),LG=__name(e=>{const n=RG(e).risk;if(void 0===n)return{flagged:!1};const o=xG(RG(n).detail);return void 0===o?{flagged:!0}:{flagged:!0,detail:o}},"riskOf");function describePrompt(e){const n=RG(e.params),o=xG(n.command)??xG(n.filePath),r=xG(n.description),s=r&&isRedundantDescription(r,o)?void 0:r,a=LG(e.params);return[t("approve2","⏸ **Approve?**"),"",actionLabel(e.toolName),...o?["",`\`\`\`\n${AG(o)}\n\`\`\``]:[],...s?[s]:[],...a.flagged?["",`⚠️ ${a.detail??"flagged as risky"}`]:[]].join("\n")}__name(describePrompt,"describePrompt"),Jt();var OG=__name((e,n)=>e.length>n?`${e.slice(0,n-1)}…`:e,"clip");function buildQuestionMessage(e){const{question:n}=e,o=[e.position?t("of2","❓ **{{v0}}** ({{v1}} of {{v2}})",{v0:n.header??"Question",v1:e.position.index,v2:e.position.total}):`❓ **${n.header??"Question"}**`,"",n.question,""],r=[];return n.options.forEach((n,s)=>{const a=s+1;o.push(n.description?`${a}. ${n.label}: ${OG(n.description,120)}`:`${a}. ${n.label}`),r.push({text:`${a}. ${OG(n.label,40)}`,data:encodeQuestionCallback({id:e.id,questionIndex:e.questionIndex,optionIndex:s})})}),n.multiSelect&&o.push("",t("pickOneHereOrAnswerAtTheTerminalForSeveral","Pick one here, or answer at the terminal for several.")),{text:o.join("\n"),buttons:r.map(e=>[e])}}function planStreamTarget(e){return e?.isOpen()&&e.hasEvents()?"follow":"replace"}function planRemoteMessage(e){const n=planStreamTarget(e);return"follow"===n?{target:n,note:t("queuedItGoesInAfterTheAnswerAbove","⏳ Queued. It goes in after the answer above.")}:{target:n}}__name(buildQuestionMessage,"buildQuestionMessage"),Jt(),__name(planStreamTarget,"planStreamTarget"),__name(planRemoteMessage,"planRemoteMessage"),Jt(),hL();var DG=__name((e,n)=>e.length>n?`${e.slice(0,n-1)}…`:e,"clip");function summarizeToolCall(e){const n=Sf(e.toolName);let o="";try{o=Cf(e.toolName,e.input)}catch{o=""}return{header:o?`${n} [${DG(o.replace(/\s+/g," ").trim(),90)}]`:n}}__name(summarizeToolCall,"summarizeToolCall");var NG=__name(e=>"object"==typeof e&&null!==e,"isRecord");function textOfType(e,n){if(!Array.isArray(e))return[];const o=[];for(const r of e)NG(r)&&r.type===n&&"string"==typeof r.value&&o.push(r.value);return o}__name(textOfType,"textOfType");var FG=__name(e=>textOfType(e,"text").join("\n"),"resultText"),_G=__name(e=>textOfType(e,"error-text").join("\n").split("\n").map(e=>e.trimEnd()).filter(e=>""!==e),"errorText"),$G=__name(e=>t("line2","{{v0}} line{{v1}}",{v0:e,v1:1===e?"":"s"}),"countLabel");function summarizeToolResult(e){const n=_G(e.result);if(n.length>0)return{header:"",lines:n.map(e=>DG(e,100))};const o=FG(e.result).split("\n").map(e=>e.trimEnd()).filter(e=>""!==e);return 0===o.length?{header:""}:{header:"",suffix:$G(o.length)}}__name(summarizeToolResult,"summarizeToolResult");var UG=__name(e=>({describeTool:actionLabel,summarizeCall:summarizeToolCall,summarizeResult:summarizeToolResult,..."Discord"===e?{formatStatus:kU}:{}}),"replyStreamOptions"),BG=__name(e=>e.length>300?`${e.slice(0,300)}…`:e,"clipEcho"),jG={label:"No",value:"no",description:"Deny this action",scope:void 0};async function requestModelSwitch(e){const n=XL(e.modelId),o=await getBillingContext(),r=checkModelAccess({model:{id:e.modelId,name:n},planId:o.planId,purchasedCredits:o.purchasedCredits,freeCredits:o.freeCredits});return r.allowed?(enqueueAgentSlashCommand({sessionId:e.sessionId,command:`/model ${e.modelId}`,source:"remote"}),{switched:!0,message:t("switchingTo","Switching to {{v0}}.",{v0:n})}):{switched:!1,message:r.errorMessage??t("isNotOnYourPlan","{{v0}} is not on your plan.",{v0:n})}}function describeSession(){const e=getActiveRemote(),n=e?`${modeLabel(e.mode)} — ${modeBehaviour(e.mode)}`:t("notConnected2","not connected");return("Discord"===e?.platform?bU:eB)({info:sessionInfo(),mode:n})}async function applyRemoteValue(e){if("model"===e.name){const n=GL(e.value);return n?(await requestModelSwitch({sessionId:e.sessionId,modelId:n})).message:t("unknownModelSendModelForTheList",'Unknown model "{{v0}}". Send /model for the list.',{v0:e.value})}const n=Qj(e.name),o=n?.reject?.(e.value);return o||(enqueueAgentSlashCommand({sessionId:e.sessionId,command:`/${e.name} ${e.value}`.trim(),source:"remote"}),t("setTo","Set {{v0}} to {{v1}}.",{v0:e.name,v1:e.value}))}async function runRemoteCommand({command:e,chatId:n,sessionId:o,bridge:r}){if("stop"===e.kind)return interruptActiveTurn(),void r.sendNote(n,t("interrupted2","Interrupted."));if("help"===e.kind)return void r.sendNote(n,buildRemoteHelp());if("status"===e.kind)return void r.sendNote(n,describeSession());const s=Qj(e.name);if(s){if(""===e.argument){const e=await s.menu();return Zj(s.name)||enqueueAgentSlashCommand({sessionId:o,command:`/${s.name}`,source:"remote"}),void r.sendChoices({chatId:n,text:e.text,buttons:e.buttons})}r.sendNote(n,await applyRemoteValue({sessionId:o,name:s.name,value:e.argument}))}else r.sendNote(n,t("doesnTWorkFromTheChatSendHelpForWhatDoesOrSendItWithoutTheSlashToMakeItAPrompt","/{{v0}} doesn't work from the chat. Send /help for what does, or send it without the slash to make it a prompt.",{v0:e.name}))}function answerPermission(e,n,o){const r=e.prompts.get(o.id);if(!r||r!==e.livePermission)return e.prompts.delete(o.id),n.acknowledge(t("thatPromptIsNoLongerWaiting","That prompt is no longer waiting.")),void n.dismiss();e.prompts.delete(o.id),e.respondToPrompt(o.allow?nI:jG),r.resolve(o.allow),e.clearPendingPermission(),n.acknowledge(o.allow?t("approved2","Approved"):t("denied","Denied")),n.dismiss()}function answerQuestion(e,n,o){const r=e.questions.get(o.id),s=r?.pending.params.questions[o.questionIndex],a=s?.options[o.optionIndex];if(!r||!a||r.pending!==e.liveQuestion)return e.questions.delete(o.id),n.acknowledge(t("thatQuestionIsAlreadyAnswered","That question is already answered.")),void n.dismiss();r.answers.set(o.questionIndex,a.label),n.acknowledge(a.label),n.dismiss();const i=r.pending.params.questions.length-r.answers.size;i>0?e.bridge.sendNote(n.chatId,t("notedLeft","Noted: {{v0}}. {{v1}} left.",{v0:a.label,v1:i})):(e.questions.delete(o.id),e.resolveQuestionBatch(r),e.bridge.sendNote(n.chatId,t("answered","Answered: {{v0}}",{v0:a.label})))}async function answerValue(e,n,o){const r=await applyRemoteValue({sessionId:e.sessionId,name:o.command,value:o.value}).catch(e=>t("thatFailed","That failed: {{v0}}",{v0:oU(e)}));await n.acknowledge(r),n.dismiss(),e.bridge.sendNote(n.chatId,r)}function handleChoice(e,n){const o=parsePermissionCallback(n.data);if(o)return void answerPermission(e,n,o);const r=parseQuestionCallback(n.data);if(r)return void answerQuestion(e,n,r);const s=parseValueCallback(n.data);if(!s||!Qj(s.command))return n.acknowledge(t("thatMenuIsOutOfDate","That menu is out of date.")),void n.dismiss();answerValue(e,n,s)}function useRemoteBridge({sessionId:e,harnessReady:n,onSubmit:o,pendingPermission:r,setPendingPermission:s,respondToPrompt:a,pendingQuestion:i,setPendingQuestion:l,setPermissionMode:c,dangerouslySkipPermissions:d}){const u=pt(o),m=pt(a),p=pt(s),g=pt(l),h=pt(c),f=pt(null),y=pt(null),v=pt([]),S=pt(null),w=pt(null),k=pt(null),C=pt(new Map),b=pt(0),T=pt(null),E=pt(new Map),P=pt(0);u.current=o,m.current=a,p.current=s,g.current=l,h.current=c,S.current=r,w.current=i;const M=pt(()=>{});M.current=e=>{const{params:n}=e.pending,o=n.questions.map((n,o)=>({questionIndex:o,selectedOptions:[e.answers.get(o)??""]})),r=resolvePlanModeAnswerTransition({answer:o[0]?.selectedOptions[0]??"",exitPlanMode:n.exitPlanMode,enterPlanMode:n.enterPlanMode,dangerouslySkipPermissions:d});r&&h.current(r),e.pending.resolve({answers:o}),g.current(null)};const I=__name((e,n)=>{const o=getActiveRemote();if(!o)return;const r=f.current;if("follow"===planStreamTarget(r))return n?(y.current=e,void r?.retarget(o.bridge.openReply(e))):void v.current.push(e);y.current=e,r?.abandon(),f.current=createReplyStream(o.bridge.openReply(e),UG(o.platform))},"openStream");gt(()=>{const n=[subscribeRemoteMessage(n=>{const o=getActiveRemote();if(!o)return;const r=parseRemoteCommand(n.text);if(r)return void runRemoteCommand({command:r,chatId:n.chatId,sessionId:e,bridge:o.bridge}).catch(e=>{o.bridge.sendNote(n.chatId,t("thatCommandFailed","That command failed: {{v0}}",{v0:oU(e)}))});const s=planRemoteMessage(f.current);s.note&&o.bridge.sendNote(n.chatId,s.note),I(n.chatId,!1),u.current(buildRemoteSubmission(n))}),subscribeRemoteChoice(n=>{const o=getActiveRemote();o&&handleChoice({sessionId:e,bridge:o.bridge,prompts:C.current,questions:E.current,livePermission:S.current,liveQuestion:w.current,respondToPrompt:m.current,clearPendingPermission:__name(()=>p.current(null),"clearPendingPermission"),resolveQuestionBatch:M.current},n)}),subscribeRemoteStopped(()=>{f.current?.abandon(),f.current=null,y.current=null,v.current=[],C.current.clear(),E.current.clear(),k.current=null,T.current=null}),subscribeLocalPrompt(({text:e})=>{const n=getActiveRemote();if(!n)return;const o=n.bridge.ownerChatId;void 0!==o&&(n.bridge.sendNote(o,`💻 ${BG(e)}`),I(o,!0))})];return()=>{for(const e of n)e()}},[e]),gt(()=>{const n=hO(e);if(n)return n.events.subscribe(e=>{if("run_start"===e.type&&null===f.current){const e=v.current.shift();void 0!==e&&I(e,!1)}const n=f.current;n&&(n.onEvent(e),n.isOpen()||(f.current=null,y.current=null))})},[e,n]),gt(()=>{if(r||(k.current=null,C.current.clear()),i||(T.current=null,E.current.clear()),!r&&!i)return;const e=getActiveRemote(),n=y.current;if(e&&null!==n&&f.current?.isOpen()){if(r&&k.current!==r){k.current=r;const o=b.current;b.current+=1,C.current.set(o,r),e.bridge.sendChoices({chatId:n,text:describePrompt(r),buttons:[[{text:t("approve3","✅ Approve"),data:encodePermissionCallback({id:o,allow:!0})},{text:t("deny","⛔️ Deny"),data:encodePermissionCallback({id:o,allow:!1})}]]})}if(i&&T.current!==i){T.current=i;const o=P.current;P.current+=1,E.current.set(o,{pending:i,answers:new Map});const r=i.params.questions.length;i.params.questions.forEach((s,a)=>{const i=buildQuestionMessage({id:o,questionIndex:a,question:s,...r>1?{position:{index:a+1,total:r}}:{}});e.bridge.sendChoices({chatId:n,text:i.text,buttons:i.buttons})})}}},[r,i])}function useSession(){const[e,n]=mt(()=>crypto.randomUUID()),[o,r]=mt(!1);return{sessionId:e,setSessionId:n,sessionLoaded:o,setSessionLoaded:r,sessionLoadIdRef:pt(null)}}__name(requestModelSwitch,"requestModelSwitch"),__name(describeSession,"describeSession"),__name(applyRemoteValue,"applyRemoteValue"),__name(runRemoteCommand,"runRemoteCommand"),__name(answerPermission,"answerPermission"),__name(answerQuestion,"answerQuestion"),__name(answerValue,"answerValue"),__name(handleChoice,"handleChoice"),__name(useRemoteBridge,"useRemoteBridge"),Jt(),__name(useSession,"useSession"),Jt(),hL(),Jt(),hL();var WG=__name(()=>createOSC8Link("https://commandcode.ai/docs/hooks",t("docs2","Docs ↗"),!1),"HOOK_DOCS_LINK"),HG=__name(()=>createOSC8Link("https://commandcode.ai/docs/core-concepts/custom-agents",t("docs2","Docs ↗"),!1),"AGENT_DOCS_LINK");function buildStartupWarningEntries(e){const n=[];for(const o of e.fileLevelMessages)n.push({message:o,isFileLevel:!0});if(e.summaryLine&&n.push({message:e.summaryLine,isFileLevel:!1}),0===n.length)return[];const o=n[n.length-1];return o.message=`${o.message} ${e.docsLink}`,n.map(n=>n.isFileLevel?Zh(n.message,e.fileLevelMetadata):Zh(n.message))}function buildHookStartupEntries(e){const n=buildHookStartupMessages(e),o=n.find(e=>!e.isHookWarning);return buildStartupWarningEntries({fileLevelMessages:n.filter(e=>e.isHookWarning).map(e=>e.message),summaryLine:o?.message??null,docsLink:WG(),fileLevelMetadata:{isHookWarning:!0}})}function buildAgentStartupEntries(e){return buildStartupWarningEntries({fileLevelMessages:[],summaryLine:summarizeAgentConfigWarnings(e),docsLink:HG()})}async function submitInitialPrompt({initialPrompt:e,onCommand:n,submitAsUserMessage:o}){const r=e.trim();r.startsWith("/")&&n&&"handled"===(await n(r)).status||await o()}function useStartup({resume:e,resumeSessionId:n,continueLatest:o,trust:r,initialPrompt:s,stdout:a,feedState:i,sessionState:l,statusState:c,authState:d,onboarding:u,uiOverlays:m,permissionState:p,harnessReady:g,isSubmittingRef:h,initialPromptSubmittedRef:f,historyManagerRef:y,executeBash:v,setInput:S,onCommand:w}){const k=ht(async()=>{try{const e=!isSandboxMode()&&await isTasteLearningEnabled();c.setTasteLearningOn(e),e&&await initTasteDir({runtime:createNodeRuntime()})}catch{}},[c.setTasteLearningOn]),C=ht(async()=>{const e=await getConfiguredProvider();d.setCurrentProvider(e)},[d.setCurrentProvider]),b=ht(()=>{},[]),T=ht(e=>{handleSelectSession({selectedSessionId:e,sessionLoadIdRef:l.sessionLoadIdRef,setFeed:i.setFeed,setLiveEntries:i.setLiveEntries,setSessionId:l.setSessionId,setShowSessionSelector:m.setShowSessionSelector,setSessionLoaded:l.setSessionLoaded,setStaticKey:m.setStaticKey,setShareInfo:c.setShareInfo,setCurrentModel:d.setCurrentModel})},[l,i,m,c,d.setCurrentModel]),E=ht(async()=>{const r=await resolveStartupSessionTarget({continueLatest:o,resumeSessionId:n,resume:e,listSessions:listCommandSessions});"load"!==r.kind?"open-picker"===r.kind&&m.setShowSessionSelector(!0):T(r.sessionId)},[o,n,e,T,m]);gt(()=>{(async()=>{if(isSandboxMode())return u.setProjectTrusted(!0),u.setCheckingProject(!1),k(),C(),void loadCustomProviderModels();const e=await resolveStartupTrust({trust:r,isProjectInitialized:isCommandProjectSessionInitialized,isDirectoryEmpty:__name(()=>isDirectoryEmpty({runtime:createNodeRuntime(),path:process.cwd()}),"isDirectoryEmpty")});if("prompt-trust"===e.kind)return u.setShowTrustPrompt(!0),void u.setCheckingProject(!1);e.initializeFirst&&await initializeCommandProjectSessions(),u.setProjectTrusted(!0),u.setCheckingProject(!1),k(),C(),loadCustomProviderModels(),b(),e.continueOrResume&&await E()})()},[e,o,r]);const P=pt(!1);gt(()=>{P.current||u.projectTrusted&&0!==getCommandZdrPausedFeatures().length&&(P.current=!0,m.setShowZdrNotice(!0))},[u.projectTrusted,m.setShowZdrNotice]);const M=pt(null);gt(()=>{u.projectTrusted&&d.currentModel!==M.current&&(M.current=d.currentModel,m.setModelNotice(getModelNotice(d.currentModel)??null))},[u.projectTrusted,d.currentModel,m.setModelNotice]);const I=pt(null);gt(()=>{if(!g||!u.projectTrusted)return;const e=l.sessionId;if(I.current===e)return;const n=hO(e);if(!n)return;I.current=e;const o=buildHookStartupEntries(n.hookSettingsWarnings);0!==o.length&&i.setFeed(e=>[...e,...o])},[g,u.projectTrusted,l.sessionId,i.setFeed]);const A=pt(null);gt(()=>{if(!g||!u.projectTrusted)return;const e=l.sessionId;if(A.current===e)return;const n=hO(e);if(!n)return;A.current=e;const o=buildAgentStartupEntries(n.agentConfigWarnings);0!==o.length&&i.setFeed(e=>[...e,...o])},[g,u.projectTrusted,l.sessionId,i.setFeed]),gt(()=>{if(!u.projectTrusted)return;const e=createCommandHistoryManager();return y.current=e,e.init(),()=>{e.cleanup()}},[u.projectTrusted,y]),gt(()=>{if(!a)return;const e=createResizeHandler({getColumns:__name(()=>a.columns??0,"getColumns"),bumpStaticKey:__name(()=>m.setStaticKey(e=>e+1),"bumpStaticKey")});return a.prependListener("resize",e),()=>{a.off("resize",e)}},[a,m.setStaticKey]);const[x,R]=mt(!1);gt(()=>{!s||hasAdoptedTurn()||x||!u.projectTrusted||u.checkingProject||!g||m.showSessionSelector||f.current||(f.current=!0,submitInitialPrompt({initialPrompt:s,onCommand:w,submitAsUserMessage:__name(async()=>{await handleSubmit({role:"user",input:s,feed:i.feed,setFeed:i.setFeed,setLiveEntries:i.setLiveEntries,isCmdCodeBusy:i.isCmdCodeBusy,setIsCmdCodeBusy:i.setIsCmdCodeBusy,setQueuedMessages:i.setQueuedMessages,setStatus:c.setStatus,setInteractionTokens:c.setInteractionTokens,updateStatus:c.updateStatus,setUpdateStatus:c.setUpdateStatus,billingLink:c.billingLink,setBillingLink:c.setBillingLink,currentModel:d.currentModel,currentProvider:d.currentProvider,premiumCreditsExhausted:d.premiumCreditsExhausted,setPremiumCreditsExhausted:d.setPremiumCreditsExhausted,setCurrentModel:d.setCurrentModel,sessionId:l.sessionId,isSubmittingRef:h,setInput:S,setStaticKey:m.setStaticKey,executeBash:v})},"submitAsUserMessage")}))},[s,u.projectTrusted,u.checkingProject,m.showSessionSelector,g,l.sessionId,d.currentProvider,w,x]);const L=pt(null);L.current={feed:i.feed,setFeed:i.setFeed,setLiveEntries:i.setLiveEntries,isCmdCodeBusy:i.isCmdCodeBusy,setIsCmdCodeBusy:i.setIsCmdCodeBusy,setQueuedMessages:i.setQueuedMessages,setStatus:c.setStatus,setInteractionTokens:c.setInteractionTokens,updateStatus:c.updateStatus,setUpdateStatus:c.setUpdateStatus,billingLink:c.billingLink,setBillingLink:c.setBillingLink,currentModel:d.currentModel,currentProvider:d.currentProvider,premiumCreditsExhausted:d.premiumCreditsExhausted,setPremiumCreditsExhausted:d.setPremiumCreditsExhausted,setCurrentModel:d.setCurrentModel,sessionId:l.sessionId,isSubmittingRef:h,setInput:S,setStaticKey:m.setStaticKey,executeBash:v,role:"",input:""};const O=pt(!1);gt(()=>{g&&!O.current&&hasAdoptedTurn()&&(O.current=!0,R(!0),handleSubmit({...L.current,role:"user",input:E_,suppressUserEcho:!0,isAutomated:!0}).finally(()=>{takeAdoptedTurn(),R(!1)}))},[g]);const D=ht(async({role:e,input:n,images:o,imageTokenPaths:r,ideContext:s,ideHint:a,displayMessage:i,isAutomated:l,isMeta:c,source:d,isRelayed:u,hiddenMessages:p})=>{m.setShowTasteSkipBanner(!1),m.setShowZdrNotice(!1),m.setModelNotice(null),l||"bash"===e||emitLocalPrompt({text:i??n}),await handleSubmit({...L.current,role:e,input:n,images:o,imageTokenPaths:r,ideContext:s,ideHint:a,displayMessage:i,isAutomated:l,isMeta:c,source:d,isRelayed:u,hiddenMessages:p})},[m.setShowTasteSkipBanner,m.setShowZdrNotice,m.setModelNotice]);return{loadTasteStatus:k,loadCurrentProvider:C,initializeMcpInBackground:b,onSubmit:D}}function useStatus(e){const[n,o]=mt(t("ready","Ready...")),r=pt(!1),[s,a]=mt(""),i=pt(null),[l,c]=mt(null),d=pt(l),[u,m]=mt(null),[p,g]=mt(!1),[h,f]=mt(""),[y,v]=mt(null),[S,w]=mt(0),[k,C]=mt(null),[b,T]=mt(null),[E,P]=mt(e??null);gt(()=>{d.current=l},[l]),gt(()=>{if(!E)return;const e=setTimeout(()=>{P(null)},3e4);return()=>clearTimeout(e)},[E]);const M=__name(e=>{i.current&&clearTimeout(i.current),a(e),i.current=setTimeout(()=>{a(""),i.current=null},5e3)},"showHintMessage");return{status:n,setStatus:o,pinnedStatusRef:r,hintMessage:s,setHintMessage:a,hintTimerRef:i,shareInfo:l,setShareInfo:c,shareInfoRef:d,billingLink:u,setBillingLink:m,showShareNotification:p,setShowShareNotification:g,unshareNotificationMessage:h,setUnshareNotificationMessage:f,retryAttempt:y,setRetryAttempt:v,interactionTokens:S,setInteractionTokens:w,contextUsage:k,setContextUsage:C,tasteLearningOn:b,setTasteLearningOn:T,updateStatus:E,setUpdateStatus:P,showHintMessage:M}}function useTerminalTitle({sessionId:e,isCmdCodeBusy:n,modelLabel:o=null}){const r=pt(process.cwd()),s=pt(e),a=pt(null),i=pt(o);i.current=o;const l=ht(e=>{a.current=e,setTerminalTitle(formatSessionTabTitle({sessionTitle:e,projectDir:r.current,modelLabel:i.current}))},[]),c=ht(e=>{(async()=>{const n=await loadCommandSessionMeta({sessionId:e});s.current===e&&n?.title&&n.title!==a.current&&l(n.title)})()},[l]);gt(()=>{s.current=e,l(null),c(e)},[e,l,c]);const d=pt(!0);gt(()=>{d.current?d.current=!1:l(a.current)},[o,l]);const u=pt(n);gt(()=>{const o=u.current;u.current=n,n!==o&&reassertTerminalTitle(),!n&&o&&(a.current||c(e))},[n,e,c]),gt(()=>{if(!process.stderr.isTTY)return;const e=setInterval(reassertTerminalTitle,5e3);return()=>{clearInterval(e)}},[]);const m=ht(e=>{l(e)},[l]);return{setRenamedTerminalTitle:m,applyGeneratedTitle:m}}function useUiOverlays(){const[e,n]=mt(!1),[o,r]=mt(!1),[s,a]=mt(!1),[i,l]=mt(!1),[c,d]=mt(!1),[u,m]=mt(!1),[p,g]=mt(!1),[h,f]=mt(!1),[y,v]=mt(!1),[S,w]=mt(!1),[k,C]=mt(!1),[b,T]=mt(!1),[E,P]=mt(!1),[M,I]=mt(!1),[A,x]=mt("default"),[R,L]=mt(!1),[O,D]=mt(!1),[N,F]=mt(!1),[_,$]=mt(!1),[U,B]=mt(!1),[j,W]=mt(!1),[H,G]=mt(null),[V,K]=mt(!1),[z,q]=mt(!1),[Y,J]=mt(!1),[Q,X]=mt(!1),[Z,ee]=mt(!1),[te,ne]=mt(!1),[oe,re]=mt(null),[se,ae]=mt(0),[ie,le]=mt(!1),[ce,de]=mt(!1),[ue,me]=mt(null),[pe,ge]=mt("off"),he="off"!==pe,fe=ht(e=>{hardResetForResize(),ae(e=>e+1),e(!1)},[]);return{showFileList:e,setShowFileList:n,showAgentsConfig:o,setShowAgentsConfig:r,showTasteConfig:s,setShowTasteConfig:a,showSkillsConfig:i,setShowSkillsConfig:l,showSettingsConfig:c,setShowSettingsConfig:d,showProviderSelector:u,setShowProviderSelector:m,showModelSelector:p,setShowModelSelector:g,showEffortSelector:h,setShowEffortSelector:f,showMemorySelector:y,setShowMemorySelector:v,showMcpManager:S,setShowMcpManager:w,showSessionSelector:k,setShowSessionSelector:C,showAddDirModal:b,setShowAddDirModal:T,showRewindSelector:E,setShowRewindSelector:P,showTreeSelector:M,setShowTreeSelector:I,treeFilterMode:A,setTreeFilterMode:x,treeBranchSummarySkipPrompt:R,setTreeBranchSummarySkipPrompt:L,showLoginOverlay:O,setShowLoginOverlay:D,showCompactModeSelector:N,setShowCompactModeSelector:F,showContextView:_,setShowContextView:$,showStatusView:U,setShowStatusView:B,showPlansView:j,setShowPlansView:W,plansTarget:H,setPlansTarget:G,planBreadcrumbPending:V,setPlanBreadcrumbPending:K,showUsageOverlay:z,setShowUsageOverlay:q,showThemeSelector:Y,setShowThemeSelector:J,showLanguageSelector:Q,setShowLanguageSelector:X,showRcSelector:Z,setShowRcSelector:ee,staticKey:se,setStaticKey:ae,closeFullScreenOverlay:fe,showTasteSkipBanner:ie,setShowTasteSkipBanner:le,showZdrNotice:ce,setShowZdrNotice:de,modelNotice:ue,setModelNotice:me,transcriptMode:pe,setTranscriptMode:ge,expandedToolOutput:he,showDesignGuide:te,setShowDesignGuide:ne,pendingDesignSuggestion:oe,setPendingDesignSuggestion:re}}__name(buildStartupWarningEntries,"buildStartupWarningEntries"),__name(buildHookStartupEntries,"buildHookStartupEntries"),__name(buildAgentStartupEntries,"buildAgentStartupEntries"),__name(submitInitialPrompt,"submitInitialPrompt"),__name(useStartup,"useStartup"),Jt(),__name(useStatus,"useStatus"),Jt(),hL(),__name(useTerminalTitle,"useTerminalTitle"),Jt(),__name(useUiOverlays,"useUiOverlays");var GG=__name(({resume:e=!1,resumeSessionId:n,continue:o=!1,trust:r=!1,dangerouslySkipPermissions:s=!1,updateStatus:a,updateFailedInfo:i,initialPrompt:l,skipOnboarding:c=!1,initialPermissionMode:d,local:u=!1,sessionTitleHolder:m})=>{const{t:p}=xt(),{exit:g}=it(),{stdout:h}=rt();usePasteRouter(),gt(()=>{isLocalOnly()||prefetchBillingContext()},[]);const[f,y]=mt(""),[v,S]=mt(""),[w,k]=mt(!1),C=pt(!1),b=pt(!1),T=pt(null);gt(()=>{let e=!0;return loadUserConfig().then(n=>{e&&k(!1!==n.showTasteLearningInFeed)}).catch(()=>{e&&k(!0)}),()=>{e=!1}},[]);const E=useUiOverlays(),P=useFeed(),M=useSession(),I=useStatus(a),A=useAuth(),x=usePendingOps(),R=useOnboarding(),L=useExit(),{executeBash:O,executionState:D}=QH(),N=usePermissionMode({initialPermissionMode:d,local:u,dangerouslySkipPermissions:s,setPendingPermission:x.setPendingPermission,setStatus:I.setStatus}),F=ut(()=>getModelShortName({modelId:A.currentModel,findModelById:findModelById}),[A.currentModel]),_=useTerminalTitle({sessionId:M.sessionId,isCmdCodeBusy:P.isCmdCodeBusy,modelLabel:F}),{ready:$}=useHarness({sessionId:M.sessionId,sessionLoaded:M.sessionLoaded,showSessionSelector:E.showSessionSelector,projectTrusted:R.projectTrusted,setConnecting:P.setIsCmdCodeBusy,onFatal:__name(()=>{process.exitCode=1,L.setShouldExit(!0)},"onFatal"),permissionsService:N.permissionsService,permissionModeRef:N.permissionModeRef,setPermissionMode:N.setPermissionMode,permissionModeExplicit:Boolean(d)||s,dangerouslySkipPermissions:N.dangerouslySkipPermissions,setPendingQuestion:x.setPendingQuestion,setStatus:I.setStatus,setFeed:P.setFeed,queuedMessagesRef:P.queuedMessagesRef,setQueuedMessages:P.setQueuedMessages,setInput:y,onSessionTitled:_.applyGeneratedTitle,currentModel:A.currentModel,setCurrentModel:A.setCurrentModel,setStaticKey:E.setStaticKey,isCmdCodeBusy:P.isCmdCodeBusy}),{onCommand:U}=useCommandCtx({feedState:P,sessionState:M,statusState:I,authState:A,uiOverlays:E,onboarding:R,exitState:L,permissionState:N,terminalTitleState:_,isSubmittingRef:C,executeBash:O,setInput:y});useAgentSlashCommandQueue({sessionId:M.sessionId,isCmdCodeBusy:P.isCmdCodeBusy,onCommand:U}),gt(()=>{E.planBreadcrumbPending&&!P.isCmdCodeBusy&&(E.setPlanBreadcrumbPending(!1),P.setFeed(e=>[...e,rf(p("planSavedRunPlansToReviewAnnotateOrExecuteItAnytime","Plan saved — run /plans to review, annotate, or execute it anytime."))]))},[E.planBreadcrumbPending,E.setPlanBreadcrumbPending,P.isCmdCodeBusy,P.setFeed]);const{loadTasteStatus:B,loadCurrentProvider:j,onSubmit:W}=useStartup({resume:e,resumeSessionId:n,continueLatest:o,trust:r,initialPrompt:l,stdout:h,feedState:P,sessionState:M,statusState:I,authState:A,onboarding:R,uiOverlays:E,permissionState:N,harnessReady:$,isSubmittingRef:C,initialPromptSubmittedRef:b,historyManagerRef:T,executeBash:O,setInput:y,onCommand:U});useMonitorOutputWakeup({onSubmit:W}),useCronWakeup({sessionId:M.sessionId,onSubmit:W}),useRemoteBridge({sessionId:M.sessionId,harnessReady:$,onSubmit:W,pendingPermission:x.pendingPermission,setPendingPermission:x.setPendingPermission,respondToPrompt:N.respondToPrompt,pendingQuestion:x.pendingQuestion,setPendingQuestion:x.setPendingQuestion,setPermissionMode:N.setPermissionMode,dangerouslySkipPermissions:N.dangerouslySkipPermissions}),useQueuedMessageFlush({isCmdCodeBusy:P.isCmdCodeBusy,queuedMessages:P.queuedMessages,queuedMessagesRef:P.queuedMessagesRef,setQueuedMessages:P.setQueuedMessages,isSubmittingRef:C,onSubmit:W}),useLifecycle({exit:g,feedState:P,exitState:L,statusState:I,authState:A,onboarding:R,uiOverlays:E,skipOnboarding:c,sessionId:M.sessionId,sessionTitleHolder:m});const{handleToggleAutoAccept:H,handleEnableAutoAccept:G,handleDoubleEscapeEmpty:V,handleTasteOnboardingComplete:K,handleTrust:z,handleNoTrust:q}=useHandlers({resume:e,feedState:P,onboarding:R,uiOverlays:E,exitState:L,pendingOps:x,permissionState:N,statusState:I,authState:A,sessionId:M.sessionId,loadTasteStatus:B,loadCurrentProvider:j,setInput:__name(e=>y(e),"setInput")}),Y=useMainActionCallbacks({feedState:P,sessionState:M,statusState:I,authState:A,uiOverlays:E,permissionState:N,setInput:y}),{creditWarning:J}=useCreditWarning({interactionTokens:I.interactionTokens,currentModel:A.currentModel});return renderView({feedState:P,sessionState:M,statusState:I,authState:A,uiOverlays:E,onboarding:R,exitState:L,pendingOps:x,permissionState:N,historyManagerRef:T,executionState:D,actionCallbacks:Y,onSubmit:W,onCommand:U,input:f,setInput:y,fileSearchQuery:v,setFileSearchQuery:S,updateFailedInfo:i,creditWarning:J,handleTrust:z,handleNoTrust:q,handleToggleAutoAccept:H,handleEnableAutoAccept:G,handleDoubleEscapeEmpty:V,handleTasteOnboardingComplete:K,loadTasteStatus:B,showTasteLearningInFeed:w,setShowTasteLearningInFeed:k})},"InteractiveCLI");function renderView({feedState:e,sessionState:n,statusState:o,authState:r,uiOverlays:s,onboarding:a,exitState:i,pendingOps:l,permissionState:c,historyManagerRef:d,executionState:u,actionCallbacks:m,onSubmit:p,onCommand:g,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:v,updateFailedInfo:S,creditWarning:w,handleTrust:k,handleNoTrust:C,handleToggleAutoAccept:b,handleEnableAutoAccept:T,handleDoubleEscapeEmpty:E,handleTasteOnboardingComplete:P,loadTasteStatus:M,showTasteLearningInFeed:I,setShowTasteLearningInFeed:A}){if(i.shouldExit)return null;if(a.checkingProject)return null;if(a.showTrustPrompt)return ct.createElement(JH,{staticKey:s.staticKey,onTrust:k,onExit:C});if(s.showSessionSelector)return ct.createElement(qH,{onSelectSession:m.onSelectSession,onClose:()=>s.closeFullScreenOverlay(s.setShowSessionSelector),currentSessionId:n.sessionId});if(!a.projectTrusted)return null;const x=s.pendingDesignSuggestion?ct.createElement(O$,{suggestion:s.pendingDesignSuggestion,onSelect:e=>{g(`/design ${e}`)},onClose:()=>s.setPendingDesignSuggestion(null)}):null,R=l.pendingQuestion?.params.exitPlanMode?l.pendingQuestion:null,L=l.pendingQuestion&&!R?ct.createElement(QuestionView,{pendingQuestion:l.pendingQuestion,permissionMode:c.permissionMode,setPermissionMode:c.setPermissionMode,dangerouslySkipPermissions:c.dangerouslySkipPermissions,setPendingQuestion:l.setPendingQuestion,setStatus:o.setStatus,setStaticKey:s.setStaticKey}):null,O=l.pendingPermission?ct.createElement(b$,{pendingPermission:l.pendingPermission,permissionMode:c.permissionMode,setPendingPermission:l.setPendingPermission,setStatus:o.setStatus,respondToPrompt:c.respondToPrompt,showHintMessage:o.showHintMessage,handleEnableAutoAccept:T}):null,{closeFullScreenOverlay:D}=s;if(R){const e=__name(e=>{const n=resolvePlanModeAnswerTransition({answer:e,exitPlanMode:!0,dangerouslySkipPermissions:c.dangerouslySkipPermissions});n&&c.setPermissionMode(n),R.resolve({answers:[{questionIndex:0,selectedOptions:[e]}]}),l.setPendingQuestion(null),hardResetForResize(),s.setStaticKey(e=>e+1)},"resolveApproval");return ct.createElement(PlanApprovalView,{staticKey:s.staticKey,planContent:R.params.planContent,planFilePath:R.params.planFilePath,onAutoAccept:n=>{e("Yes, auto-accept edits"),n&&p({role:"user",input:n})},onCancel:()=>{e("Cancel"),s.setPlanBreadcrumbPending(!0)},onSendFeedback:n=>{e("Cancel"),p({role:"user",input:n})}})}if(s.showTasteConfig)return ct.createElement(TasteConfigView,{staticKey:s.staticKey,onClose:()=>D(s.setShowTasteConfig),loadTasteStatus:M});if(s.showSkillsConfig)return ct.createElement(SkillsConfigView,{staticKey:s.staticKey,onClose:()=>D(s.setShowSkillsConfig)});if(s.showSettingsConfig)return ct.createElement(SettingsConfigView,{staticKey:s.staticKey,onClose:()=>D(s.setShowSettingsConfig),loadTasteStatus:M,onShowTasteLearningInFeedChange:A,reloadHarnessConfig:async()=>{await(hO(n.sessionId)?.reloadConfig())}});if(s.showUsageOverlay)return ct.createElement(UsageView,{staticKey:s.staticKey,onClose:()=>D(s.setShowUsageOverlay)});if(s.showContextView)return ct.createElement(ContextConfigView,{staticKey:s.staticKey,sessionId:n.sessionId,onClose:()=>D(s.setShowContextView),setInput:f});if(s.showStatusView)return ct.createElement(StatusConfigView,{staticKey:s.staticKey,sessionId:n.sessionId,onClose:()=>D(s.setShowStatusView),setInput:f});if(s.showPlansView){const e=__name(e=>{s.setPlansTarget(null),D(s.setShowPlansView),p({role:"user",input:e})},"submitFromPlans");return ct.createElement(PlansView,{staticKey:s.staticKey,sessionId:n.sessionId,target:s.plansTarget,onClose:()=>{s.setPlansTarget(null),D(s.setShowPlansView)},onSubmitFeedback:e,onExecute:o=>{const r=hO(n.sessionId);"plan"===c.permissionModeRef.current?(c.permissionModeRef.current="auto-accept",c.setPermissionMode("auto-accept"),r?.setPermissionMode({mode:"auto-accept",viaPlanApproval:!0})):r?.notePlanApproved(),e(o)}})}return ct.createElement(fH,{feed:e.feed,liveEntries:e.liveEntries,queuedMessages:e.queuedMessages,isCmdCodeBusy:e.isCmdCodeBusy,staticKey:s.staticKey,setStaticKey:s.setStaticKey,transcriptMode:s.transcriptMode,tasteOnboardingEntryId:a.tasteOnboardingEntryId,autoLearnTaste:a.autoLearnTaste,showTasteSkipBanner:s.showTasteSkipBanner,showTasteLearningInFeed:I,showZdrNotice:s.showZdrNotice,modelNotice:s.modelNotice,retryAttempt:o.retryAttempt,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:v,showFileList:s.showFileList,setShowFileList:s.setShowFileList,showProviderSelector:s.showProviderSelector,showModelSelector:s.showModelSelector,showEffortSelector:s.showEffortSelector,showMemorySelector:s.showMemorySelector,showMcpManager:s.showMcpManager,showAgentsConfig:s.showAgentsConfig,showRewindSelector:s.showRewindSelector,showTreeSelector:s.showTreeSelector,treeFilterMode:s.treeFilterMode,treeBranchSummarySkipPrompt:s.treeBranchSummarySkipPrompt,showLoginOverlay:s.showLoginOverlay,showUsageOverlay:s.showUsageOverlay,setShowUsageOverlay:s.setShowUsageOverlay,showAddDirModal:s.showAddDirModal,showCompactModeSelector:s.showCompactModeSelector,showThemeSelector:s.showThemeSelector,showLanguageSelector:s.showLanguageSelector,showRcSelector:s.showRcSelector,authComponentInfo:r.authComponentInfo,status:o.status,currentProvider:r.currentProvider,currentModel:r.currentModel,showProviderNotification:r.showProviderNotification,shareInfo:o.shareInfo,showShareNotification:o.showShareNotification,unshareNotificationMessage:o.unshareNotificationMessage,updateStatus:o.updateStatus,updateFailedInfo:S,creditWarning:w,permissionMode:c.permissionMode,hintMessage:o.hintMessage,pendingExitKey:i.pendingExitKey,interactionTokens:o.interactionTokens,contextUsage:o.contextUsage,tasteLearningOn:o.tasteLearningOn,historyManagerRef:d,executionState:u,sessionId:n.sessionId,onSubmit:p,onCommand:g,onToggleAutoAccept:b,onResetPendingExitKey:i.resetPendingExitKey,onDoubleEscapeEmpty:E,onTasteOnboardingComplete:P,permissionPanel:O,questionPanel:L,designSuggestionPanel:x,onRewindSelect:m.onRewindSelect,onRewindCancel:m.onRewindCancel,onTreeSelect:m.onTreeSelect,onTreeCancel:m.onTreeCancel,onTreeLabel:m.onTreeLabel,onTreeAbortSummary:m.onTreeAbortSummary,onLoginComplete:m.onLoginComplete,onLoginCancel:m.onLoginCancel,setShowProviderSelector:s.setShowProviderSelector,setShowModelSelector:s.setShowModelSelector,setShowEffortSelector:s.setShowEffortSelector,setShowMemorySelector:s.setShowMemorySelector,setShowMcpManager:s.setShowMcpManager,setShowAgentsConfig:s.setShowAgentsConfig,setShowRewindSelector:s.setShowRewindSelector,setShowTreeSelector:s.setShowTreeSelector,setShowLoginOverlay:s.setShowLoginOverlay,setShowAddDirModal:s.setShowAddDirModal,handleProviderSelect:m.handleProviderSelect,handleProviderCancel:m.handleProviderCancel,handleModelSelect:m.handleModelSelect,handleModelCancel:m.handleModelCancel,handleCompactModeSelect:m.handleCompactModeSelect,handleCompactModeCancel:m.handleCompactModeCancel,handleThemeSelect:m.handleThemeSelect,handleThemeCancel:m.handleThemeCancel,handleLanguageSelect:m.handleLanguageSelect,handleLanguageCancel:m.handleLanguageCancel,handleRcSelect:m.handleRcSelect,handleRcCancel:m.handleRcCancel,handleAuthSuccess:m.handleAuthSuccess,handleAuthCancel:m.handleAuthCancel,showDesignGuide:s.showDesignGuide,setShowDesignGuide:s.setShowDesignGuide})}function needsLanguageOnboarding(e){return!e.skipOnboarding&&!e.sandbox&&!isLocale(e.language)}function LanguageOnboarding({required:e,ready:n=!0,children:o}){const{t:r}=xt(),[s,a]=mt(!e),[i,l]=mt(!1),[c,d]=mt(null),u=pt(!1),m=__name(async e=>{if(!u.current){u.current=!0,l(!0),d(null);try{await changeUiLanguage(e),a(!0)}catch(e){d(r("couldNotSaveLanguage","Could not save language: {{reason}}. Report issues at https://cond.dev/issue",{reason:e instanceof Error?e.message:String(e)}))}finally{u.current=!1,l(!1)}}},"selectLanguage");return n?s?o:ct.createElement(tt,{flexDirection:"column"},ct.createElement(fj,{onboarding:!0,disabled:i,onSelect:e=>{m(e)},onCancel:()=>{u.current||a(!0)}}),c&&ct.createElement(nt,{color:XO.RED},c)):null}__name(renderView,"renderView"),Jt(),__name(needsLanguageOnboarding,"needsLanguageOnboarding"),__name(LanguageOnboarding,"LanguageOnboarding");var VG=St.hex(XO.DIM),KG=__name((e,n)=>{const o=Z_(),r=Ee([e]),s=n?`cd ${Ee([n])} && ${o} --resume ${r}`:`${o} --resume ${r}`;return`${VG(translateUiCopy("Resume this session with:"))}\n${VG(s)}\n`},"formatResumeHint"),zG=__name(e=>e?{isValid:!0}:{isValid:!1,errorMessage:[t("errorInteractiveModeRequiresATtyTerminal","Error: Interactive mode requires a TTY terminal."),t("pleaseRunThisCommandDirectlyInYourTerminalNotThroughAPipeOrRedirect","Please run this command directly in your terminal, not through a pipe or redirect.")].join("\n")},"validateTtyEnvironment"),qG=__name(e=>Boolean(e.resume||e.continue),"shouldValidateSessions"),YG=__name(({isInitialized:e,sessionCount:n})=>e&&0===n?{canProceed:!1,exitCode:0,message:t("noConversationsFoundToResume","No conversations found to resume.")}:{canProceed:!0},"validateSessionAvailability"),JG=__name(e=>e.permissionMode?e.permissionMode:e.plan?"plan":void 0,"resolveInitialPermissionMode"),QG=__name(({options:e,resumeSessionId:n,sessionTitleHolder:o})=>{const r=JG(e);return{resume:"boolean"==typeof e.resume?e.resume:void 0,resumeSessionId:n,continue:e.continue,trust:e.trust,dangerouslySkipPermissions:e.dangerouslySkipPermissions,initialPrompt:e.initialPrompt,skipOnboarding:e.skipOnboarding,initialPermissionMode:r,local:e.local,sessionTitleHolder:o}},"buildInteractiveCLIProps"),XG=__name(e=>({stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,kittyKeyboard:e}),"getInkRenderOptions"),ZG=!1,eV=__name(()=>{enableBracketedPasteMode(),process.on("exit",()=>{disableBracketedPasteMode(),!ZG&&isKittyKeyboardActive()&&popKittyKeyboardProtocol()})},"setupBracketedPasteMode"),tV=__name(()=>{eV()},"initializeTerminal"),nV=__name(()=>{process.on("SIGINT",()=>{})},"swallowSigintDuringShutdown"),oV=__name(async e=>{const{resumeSessionId:n,useContinue:o}=e,r=o?(await listCommandSessions())[0]?.id:void 0,s=n??r;if(!s)return console.error(t("forkSessionIgnoredNoSessionToForkUseWithResumeIdNameOrContinue","--fork-session ignored: no session to fork (use with --resume <id|name> or --continue).")),null;try{const{newId:e}=await forkCommandSessionFiles({sourceId:s});return e}catch(e){const n=e instanceof Error?e.message:String(e);return console.error(t("forkSessionFailedResumingTheOriginalSession","--fork-session failed: {{v0}}. Resuming the original session.",{v0:n})),null}},"forkSourceAtColdStart"),rV=__name(async(e={})=>{const n=zG(process.stdin.isTTY);let o,s;if(n.isValid||(console.error(n.errorMessage),process.exit(1)),tV(),"string"==typeof e.resume){const n=e.resume.trim();await isCommandProjectSessionInitialized()||(console.error(t("projectNotInitializedRunCmdToStartAConversationFirst","Project not initialized. Run cmd to start a conversation first.")),process.exit(1));const r=await resolveCommandSessionRef({sessionRef:n});"not-found"===r.status&&(console.error(buildSessionRefNotFoundMessage(n)),process.exit(1)),o=r.sessionId}if("string"==typeof e.session&&!o){const n=getCommandSessionRuntime(),i=await listAllSessionsV3({runtime:n}),l=getProjectSessionDir({env:n.env(),cwd:n.cwd()}),c=resolveSessionRefFlag({ref:e.session,isExistingFile:__name(e=>L(e),"isExistingFile"),listSessionIds:__name(()=>i.map(e=>e.id),"listSessionIds")});"not-found"===c.kind&&(console.error(t("sessionIsNeitherAnExistingJsonlTranscriptNorAKnownSessionIdPrefix",'--session "{{v0}}" is neither an existing .jsonl transcript nor a known session-id prefix.',{v0:e.session})),process.exit(1)),"ambiguous"===c.kind&&(console.error(t("sessionIsAmbiguousMatches",'--session "{{v0}}" is ambiguous — matches: {{v1}}',{v0:e.session,v1:c.candidates.join(", ")})),process.exit(1));const u="path"===c.kind?a(c.path):a(i.find(e=>e.id===c.sessionId)?.path??"");o=d(u,".jsonl"),r(u)!==l&&(s=u)}if(qG(e)&&!o){const e=await isCommandProjectSessionInitialized(),n=e?await listCommandSessions():[],o=YG({isInitialized:e,sessionCount:n.length});o.canProceed||(console.log(o.message),process.exit(o.exitCode))}if(e.forkSession){const n=await oV({resumeSessionId:o,useContinue:Boolean(e.continue)});n&&(o=n,e.continue=!1)}await applyStartupTheme();const i=await resolveKittyKeyboard();startEarlyInputCapture(),setStartupSessionOptions({...!1===e.session?{persist:!1}:{},...s?{sessionFilePath:s}:{},...e.name?{name:e.name}:{}});const l={},c=QG({options:e,resumeSessionId:o,sessionTitleHolder:l}),u=XG(i),m=needsLanguageOnboarding({language:(await cs()).language,skipOnboarding:e.skipOnboarding,sandbox:isSandboxMode()}),p=__name(e=>ct.createElement(Rt,{i18n:getI18n()},m?ct.createElement(LanguageOnboarding,{required:!0,ready:e},ct.createElement(GG,{...c})):ct.createElement(GG,{...c})),"renderCli"),g=st(p(!m),u);registerInkControl({clear:g.clear,stdout:process.stdout,instance:await resolveInkInstance(process.stdout)}),m&&g.rerender(p(!0)),await g.waitUntilExit(),ZG=!0,clearTerminalTitle(),nV();const h=consumePendingReload();h&&await handlePendingReload(h);const f=await(l.loadTitle?.())??null,y=Boolean(f);let v;const S=getAutoCreatedWorktree();if(S){const e=worktreeHasWork(S.worktreePath,S.baseSha);let n="auto";if(e||y){const o=worktreeChangeCount(S.worktreePath),r=e?o>0?t("youHaveUncommittedFileTheseWillBeLostIfYouRemoveTheWorktree","You have {{v0}} uncommitted file{{v1}}. These will be lost if you remove the worktree.",{v0:o,v1:1===o?"":"s"}):t("thisWorktreeHasCommitsThatAreNotOnYourMainBranchTheyWillBeLostIfYouRemoveIt","This worktree has commits that are not on your main branch. They will be lost if you remove it."):null;n=await promptWorktreeExit({worktreePath:S.worktreePath,warning:r})}const o=finalizeAutoCreatedWorktree(n);if(o.worktreePath){const e=VG(createOSC8Link(fileUrl(o.worktreePath),tildeHome(o.worktreePath),!1));if(o.removed){const o="auto"===n?t("removedEmptyWorktree","Removed empty worktree"):t("removedWorktree2","Removed worktree");process.stdout.write(`${VG(o)}\n${e}\n\n`)}else if(o.kept){v=o.worktreePath;const n=o.reason&&"kept"!==o.reason?` (${o.reason})`:"";process.stdout.write(`${VG(`Kept worktree${n}`)}\n${e}\n\n`)}}}if(isSandboxMode()){const e=getSandboxConnection()?.sessionId??getRequestedSandboxSessionId();return void(e&&process.stdout.write(`${VG("Reopen it with:")}\n${VG(`${Z_()} --cloud ${e}`)}\n`))}const w=l.sessionId;if(w&&await commandSessionExists(w)){const e=f?sanitizeTitleForOutput(f):"";process.stdout.write(KG(e||w,v))}},"interactiveMode");function modelAndEffort(e){const n=sandboxModelFor(e??getConfiguredModel()),o=sandboxEffortFor(n);return{...n?{model:n}:{},...o?{effort:o}:{}}}function openCommand2(e){return`${Z_()} --cloud ${e}`}async function startWithTask(e){const n=runSandboxStartPreflight({prompt:e.task,...e.baseBranch?{baseBranch:e.baseBranch}:{}});return(await e.client.start({repoUrl:n.repoUrl,prompt:e.task,mode:"rpc",...e.baseBranch?{baseBranch:e.baseBranch}:{},...modelAndEffort(e.model)})).sessionId}function refusal(e){const n=e.error;return n?n.message??"refused":null}async function sendToLiveBox(e){const n=await openSandboxConnection({sessionId:e.sessionId,...modelAndEffort(e.model)});try{const o=void 0!==e.model||!0===e.effortGiven?modelAndEffort(e.model):{};if(e.model&&o.model){const e=refusal(await n.request({method:"session/set_model",params:{model:o.model}}));if(e)throw new Error(`The cloud session kept its model: ${e}.`)}if(o.effort){const e=refusal(await n.request({method:"session/set_effort",params:{effort:o.effort}}));if(e)throw new Error(`The cloud session kept its effort: ${e}.`)}const r=refusal(await n.request({method:"turn/start",params:{input:e.task,headless:!0}}));if(r)throw new Error(`The cloud session did not take the task: ${r}.`)}finally{n.close()}}async function sendFollowUp(e){const{client:n,sessionId:o,task:r}=e,s=await n.status({sessionId:o});if("running"===s.status)throw new Error(`A task is already running in ${o.slice(0,8)}\nConnect: ${openCommand2(o)}`);!1===s.boxUp||"rpc"!==s.mode?await n.continueTask({sessionId:o,prompt:r,mode:"rpc",...modelAndEffort(e.model)}):await sendToLiveBox({sessionId:o,task:r,...e.model?{model:e.model}:{},...e.effortGiven?{effortGiven:!0}:{}})}async function runSandboxPrint(e){warnAboutPromptTruncation(e.task);const n=truncateSandboxPrompt(e.task);if(!n)throw new Error('Give the task: cmd -p --cloud "task", or cmd -p --cloud <id> "task" for a follow-up.');if(e.sessionId&&e.baseBranch)throw new Error("--base applies to a new session only; a follow-up stays on its branch.");const o=createSandboxClient({transport:createSandboxTransport()}),r=e.sessionId?(await sendFollowUp({client:o,sessionId:e.sessionId,task:n,...e.model?{model:e.model}:{},...e.effortGiven?{effortGiven:!0}:{}}),e.sessionId):await startWithTask({client:o,task:n,...e.baseBranch?{baseBranch:e.baseBranch}:{},...e.model?{model:e.model}:{}});process.stdout.write(`${r}\n`),process.stderr.write(It.dim(`${e.sessionId?"Sent to the cloud session":"Cloud session started"}\nConnect: ${openCommand2(r)}\n`))}Jt(),hL(),__name(modelAndEffort,"modelAndEffort"),__name(openCommand2,"openCommand"),__name(startWithTask,"startWithTask"),__name(refusal,"refusal"),__name(sendToLiveBox,"sendToLiveBox"),__name(sendFollowUp,"sendFollowUp"),__name(runSandboxPrint,"runSandboxPrint"),Jt(),hL(),Jt();function isAgentMetrics(e){if("object"!=typeof e||null===e)return!1;const n=e;return"string"==typeof n.name&&"number"==typeof n.turns&&"object"==typeof n.toolCalls&&null!==n.toolCalls&&"number"==typeof n.toolErrors&&"number"==typeof n.tokens&&"number"==typeof n.durationMs}function extractAgentMetrics(e){const n=e.indexOf("\x3c!-- BENCHMARK_AGENT_METRICS:");if(-1===n)return{cleanContent:e,metrics:null};const o=n+29,r=e.indexOf(" --\x3e",o);if(-1===r)return{cleanContent:e,metrics:null};try{const s=e.substring(o,r),a=JSON.parse(s);return isAgentMetrics(a)?{cleanContent:e.substring(0,n).trimEnd()+e.substring(r+4),metrics:a}:{cleanContent:e,metrics:null}}catch{return{cleanContent:e,metrics:null}}}__name(isAgentMetrics,"isAgentMetrics"),__name(extractAgentMetrics,"extractAgentMetrics");var sV=__name(e=>({turnNumber:e,apiDurationMs:0,toolCalls:[],toolDurationMs:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0}),"newTurn");function createBenchmarkCollector(e){const n=e.now??Date.now,o=e.writeFile??((e,n)=>{x.writeFileSync(e,n)}),r=n(),s=[],a=[],i=new Map,l=new Map;let c,d=!1;const u=__name(e=>{let n=e;for(;;){const{cleanContent:e,metrics:o}=extractAgentMetrics(n);if(!o)return;a.push(o),n=e}},"collectAgentMetrics"),m=__name(()=>{const e=s[s.length-1];if(e)return e;const n=sV(s.length+1);return s.push(n),n},"currentTurn"),p=__name(e=>{const o=m(),r=i.get(e.toolCallId);void 0!==r&&(o.toolDurationMs+=n()-r,i.delete(e.toolCallId));const s=l.get(e.toolCallId);s?s.isError=e.isError||s.isError:o.toolCalls.push({name:e.toolName,isError:e.isError})},"finishToolCall"),g=__name(e=>{if("turn_start"!==e.type)if("model_request_start"!==e.type){if("model_request_end"===e.type){const o=m();return void 0!==c&&(o.apiDurationMs+=n()-c,c=void 0),o.inputTokens+=e.usage.inputTokens,o.outputTokens+=e.usage.outputTokens,o.cacheReadTokens+=e.usage.cacheReadTokens,void(o.cacheCreationTokens+=e.usage.cacheWriteTokens)}if("tool_running"===e.type){const o={name:e.toolName,isError:!1};return i.set(e.toolCallId,n()),l.set(e.toolCallId,o),void m().toolCalls.push(o)}if("tool_completed"!==e.type)"tool_errored"!==e.type&&"tool_denied"!==e.type&&"tool_hook_blocked"!==e.type?"run_end"!==e.type||(d=d||"max_turns"===e.result.stopReason):p({toolCallId:e.toolCallId,toolName:e.toolName,isError:!0});else{p({toolCallId:e.toolCallId,toolName:e.toolName,isError:!1});for(const n of e.result)"text"===n.type&&u(n.text)}}else c=n();else s.push(sV(e.turnNumber))},"onEvent"),h=__name(()=>{const e={};let o=0,i=0,l=0,c=0;for(const n of s){for(const r of n.toolCalls)o++,e[r.name]=(e[r.name]??0)+1,r.isError&&i++;l+=n.inputTokens,c+=n.outputTokens}return{wallTimeMs:n()-r,turns:s.length,turnDetails:s.map(e=>({turnNumber:e.turnNumber,apiDurationMs:e.apiDurationMs,toolCalls:e.toolCalls.map(e=>({name:e.name,isError:e.isError})),toolDurationMs:e.toolDurationMs,inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheReadTokens:e.cacheReadTokens,cacheCreationTokens:e.cacheCreationTokens})),toolCalls:{total:o,byType:e,errors:i},tokens:{input:l,output:c},maxTurnsReached:d,agents:[...a]}},"snapshot"),f=__name(()=>{try{o(e.outputPath,JSON.stringify(h(),null,2))}catch{}},"write");return{onEvent:g,snapshot:h,write:f}}__name(createBenchmarkCollector,"createBenchmarkCollector");var aV=null,iV=!1;function resolveLaunchPermissionMode(e){return e.permissionMode?e.permissionMode:e.plan?"plan":e.dangerouslySkipPermissions?"bypass":void 0}function getAuthKey4(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function readStdin(){return new Promise((e,n)=>{let o="";const r=setTimeout(()=>{n(new Error("Timeout reading from stdin"))},3e4);process.stdin.setEncoding("utf8"),process.stdin.on("data",e=>{o+=e}),process.stdin.on("end",()=>{clearTimeout(r),e(o)}),process.stdin.on("error",e=>{clearTimeout(r),n(e)}),process.stdin.resume()})}function writeOutput(e,n){return!n||e.destroyed?Promise.resolve():new Promise((o,r)=>{e.write(n,e=>{e?r(e):o()})})}function setupSignalHandlers(){if(iV)return;iV=!0;const e=__name(e=>{aV?.abort(),process.stderr.write(`\n${e}\n`),exitAfterModHostTeardown(YE.INTERRUPTED)},"handleTermination");process.on("SIGINT",()=>e("Interrupted.")),process.on("SIGTERM",()=>e("Terminated."))}async function printMode(e={}){trackCommand({command:"print"}),setupSignalHandlers(),aV=new AbortController;const n=e.benchmarkOutput?createBenchmarkCollector({outputPath:e.benchmarkOutput}):null,o=resolveToolEnable({flags:e,env:process.env}),r=toolEnableWarning(o);r&&process.stderr.write(`${r}\n`);const s=await runPrintMode({options:e,stdinIsTTY:Boolean(process.stdin.isTTY),readStdin:readStdin,isAuthenticated:__name(async()=>null!==await getAuthKey4(),"isAuthenticated"),createHarness:__name(async({sessionId:n,entrypoint:r,headless:s,maxTurns:a,mods:i,resumeState:l,sessionFilePath:c})=>{const d=await createHarnessSession({sessionId:n,baseUrl:getApiBaseUrl(),entrypoint:r,headless:s,maxTurns:a,mods:i,dangerouslySkipPermissions:e.dangerouslySkipPermissions,permissionMode:resolveLaunchPermissionMode(e),...o.forceEnabledTools?{forceEnabledTools:o.forceEnabledTools}:{},modHost:await loadCommandModHost({projectMods:Boolean(e.dangerouslySkipPermissions)}),resumeState:l,persist:e.persist,sessionFilePath:c,ideBridge:createLocalIdeBridge()});return e.name&&d.setSessionName(e.name),d},"createHarness"),emit:__name(e=>{"session"===e.type&&process.stderr.write(`session: ${e.sessionId}\n`)},"emit"),writeStdout:__name(e=>{process.stdout.write(e)},"writeStdout"),...n?{runQuery:__name(e=>runHarnessQuery({...e,onEvent:__name(o=>{e.onEvent?.(o),n.onEvent(o)},"onEvent")}),"runQuery")}:{}});n?.write(),await Promise.all([writeOutput(process.stdout,s.stdoutText),writeOutput(process.stderr,s.stderrText)]),exitAfterModHostTeardown(s.exitCode)}function resolveLaunchPermissionMode2(e){return e.permissionMode?e.permissionMode:e.plan?"plan":e.dangerouslySkipPermissions?"bypass":void 0}async function isAuthenticated(){return null!==await getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function rpcMode(e={}){let n;trackCommand({command:"rpc"}),setCliSurface("rpc"),await isAuthenticated()||(process.stderr.write(cP),process.exit(YE.AUTH_ERROR)),e.model&&setModelOverride(e.model);try{n=await resolvePrintSession(e)}catch(e){const n=e instanceof Error?e.message:String(e);process.stderr.write(`Error: ${n}\n`),process.exit(YE.ERROR)}n.warning&&process.stderr.write(`${n.warning}\n`);const o={sessionId:n.sessionId,priorMessages:n.priorMessages,...n.sessionFilePath?{sessionFilePath:n.sessionFilePath}:{}},r=await resolvePrintResumeState(o);await runRpcMode({sessionId:n.sessionId,resume:void 0!==r,catalog:{startingModel:__name(()=>startingModel({sessionId:n.sessionId,resume:void 0!==r}),"startingModel"),providerForModel:providerForModel,selectableModels:selectableModelIds,effortLevels:effortLevels},loadResumeState:__name(()=>resolvePrintResumeState(o),"loadResumeState"),...!1===e.persist?{saveSessionModel:__name(async()=>{},"saveSessionModel")}:{},stdin:process.stdin,writeLine:__name(e=>{process.stdout.write(`${e}\n`)},"writeLine"),dangerouslySkipPermissions:e.dangerouslySkipPermissions,createHarness:__name(async({sessionId:o,mods:r,drainQueuedMessages:s,peekQueuedMessageCount:a,provider:i,resumeState:l,permissionMode:c,modelLaneSnapshot:d})=>{const u=await createHarnessSession({sessionId:o,baseUrl:getApiBaseUrl(),provider:i,...d?{modelLaneSnapshot:d}:{},entrypoint:resolvePrintHarnessEntrypoint(n.entrypoint),headless:!0,mods:r,drainQueuedMessages:s,peekQueuedMessageCount:a,dangerouslySkipPermissions:e.dangerouslySkipPermissions,permissionMode:c??resolveLaunchPermissionMode2(e),modHost:await loadCommandModHost({projectMods:Boolean(e.dangerouslySkipPermissions)}),...l?{resumeState:l}:{},persist:e.persist,...n.sessionFilePath?{sessionFilePath:n.sessionFilePath}:{},ideBridge:createLocalIdeBridge()});return e.name&&u.setSessionName(e.name),u},"createHarness")}),await new Promise(e=>{process.stdout.write("",()=>e())}),exitAfterModHostTeardown(YE.SUCCESS)}__name(resolveLaunchPermissionMode,"resolveLaunchPermissionMode"),__name(getAuthKey4,"getAuthKey"),__name(readStdin,"readStdin"),__name(writeOutput,"writeOutput"),__name(setupSignalHandlers,"setupSignalHandlers"),__name(printMode,"printMode"),Jt(),hL(),__name(resolveLaunchPermissionMode2,"resolveLaunchPermissionMode"),__name(isAuthenticated,"isAuthenticated"),__name(rpcMode,"rpcMode"),Jt(),hL();var lV=getPackageJson(import.meta.url),cV="string"==typeof lV.version&&lV.version.trim()?lV.version:"unknown";function createSystemOneTransport(){const e=T();return createNodeTransport({baseUrl:getApiBaseUrl(),headers:__name(()=>resolveCommandAuthHeaders({sessionId:e,cliVersion:cV}),"headers")})}function readStdinText(){return new Promise((e,n)=>{let o="";const r=setTimeout(()=>{n(new Error("timeout reading from stdin"))},3e4);r.unref?.(),process.stdin.setEncoding("utf8"),process.stdin.on("data",e=>{o+=e}),process.stdin.on("end",()=>{clearTimeout(r),e(o)}),process.stdin.on("error",e=>{clearTimeout(r),n(e)}),process.stdin.resume()})}function systemOneUsageHint(e){return`Run it headlessly: cmd -p '{"state": "...", "questions": {"<name>": {"type": "noul", "instructions": "..."}}}' -m ${e}`}async function runSystemOnePrint(e){const n=e.now??Date.now,o=n(),r="json"===e.outputFormat,s=__name((s,a,i=`Error: ${s}\n`)=>r?{exitCode:a,stderrText:i,stdoutText:`${safeJsonStringify({type:"result",subtype:"error",model:e.model,durationMs:n()-o,error:s})}\n`}:{exitCode:a,stderrText:i},"fail");let a=e.query;if(void 0===a||""===a.trim()){if(e.stdinIsTTY)return s(`no request given. ${systemOneUsageHint(e.model)}, or pipe the JSON on stdin`,YE.ERROR);try{a=await e.readStdin()}catch(e){return s(`could not read stdin: ${e instanceof Error?e.message:String(e)}`,YE.ERROR)}}const i=parseSystemOneQuery(a);if(!i.ok)return s(i.error,YE.ERROR);const l=await runSystemOne({transport:e.transport,model:e.model,request:i.request,...e.signal?{signal:e.signal}:{}});if(!l.ok&&"bad-response"===l.kind)return s(l.error,YE.SERVER_ERROR);if(!l.ok){const e=classifyPrintModeError(l.error);return s(e.stderrText.replace(/^\s*Error: /,"").trim(),e.exitCode,e.stderrText)}const{response:c}=l;if(!r){const n={model:c.model??e.model,answers:c.answers,usage:c.usage??{}};return{exitCode:YE.SUCCESS,stdoutText:`${JSON.stringify(n,null,2)}\n`}}const d=safeJsonStringify({type:"result",subtype:"success",model:c.model??e.model,answers:c.answers,usage:c.usage??{},durationMs:n()-o});return{exitCode:YE.SUCCESS,stdoutText:`${d}\n`}}async function ensureAuthenticated(){return ensureCommandAuthenticated({runLogin:__name(async()=>{await runLogin()},"runLogin"),getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),onAuthFailed:__name(()=>{console.error(`${vt.cross} Authentication failed. Please try again with: ${getBinaryCommand()} login`)},"onAuthFailed"),onLoginError:__name(e=>{console.error(`${vt.cross} Login failed: ${getErrorMessage(e)}`),console.error(`Please try again with: ${getBinaryCommand()} login`)},"onLoginError"),onCheckError:__name(e=>{console.error("Error checking authentication:",e)},"onCheckError")})}function suggestModel(e){return suggestModelInput({input:e,models:[...getAllModelOptions(),...customModelListOptions()]})}function formatModelList(e={}){return formatModelListText({color:e.color,defaultModel:wn,groups:[...getModelGroupsInOrder(),...customModelListGroups()]})}function formatSystemOneModelNote(){const e=["Decision models (headless only)"],n=isJevFree()?"free through September 24, 2026":"$0.042 per 1M input tokens, everything else free";for(const o of BM)e.push(`${o} typed questions in, probabilities out, ${n} — ${systemOneUsageHint(o)}`);return e.join("\n")}async function printModelList(){await loadCustomProviderModels();const e=Boolean(process.stdout.isTTY)&&void 0===process.env.NO_COLOR;process.stdout.write(`${formatModelList({color:e})}\n`),process.stdout.write(`\n${formatSystemOneModelNote()}\n`);const n=getCustomProviderWarningsSync();n.length>0&&process.stderr.write(`\nproviders.json needs attention — ${1===n.length?"one entry":"some entries"} did not load as written:\n${n.map(e=>` ${e}`).join("\n")}\n`)}async function resolveModelFlagOrExit({model:e}){const n=await resolveSelectableModel(e);if(n){if(n.warning&&process.stderr.write(`Note: ${n.warning}\n`),!n.providerId){const e=customProvidersDeclaring(n.modelId);e.length>0&&process.stderr.write(`Note: "${n.modelId}" routes via Command Code; your providers.json also declares it — use ${e.map(e=>`"${e}/${n.modelId}"`).join(" or ")} to route there instead.\n`)}return{modelId:n.modelId,...void 0!==n.providerId?{providerId:n.providerId}:{}}}const o=suggestModel(e),r=o?` Did you mean "${o}"?`:"";process.stderr.write(`Error: unknown model "${e}".${r}\nRun "${getBinaryCommand()} --list-models" to see all available models\n`),process.exit(1)}__name(createSystemOneTransport,"createSystemOneTransport"),__name(readStdinText,"readStdinText"),__name(systemOneUsageHint,"systemOneUsageHint"),__name(runSystemOnePrint,"runSystemOnePrint"),Jt(),hL(),__name(ensureAuthenticated,"ensureAuthenticated"),Jt(),hL(),__name(suggestModel,"suggestModel"),__name(formatModelList,"formatModelList"),__name(formatSystemOneModelNote,"formatSystemOneModelNote"),__name(printModelList,"printModelList"),__name(resolveModelFlagOrExit,"resolveModelFlagOrExit"),Jt(),hL();var dV=!1;function getAuthKey5(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function setupTelemetry(){initTelemetry()&&(startSession(),registerStartupTask(trackSystemInfo()),trackCliSessionExistsEvent(),registerCleanupHandlers())}function trackSystemInfo(){return trackTelemetryIdentity({client:createApiClient({baseUrl:getApiBaseUrl()}),platform:G.platform(),arch:G.arch()})}function registerCleanupHandlers(){process.on("beforeExit",async()=>{await shutdownTelemetry()}),process.on("exit",()=>{shutdownTelemetrySync(),releaseRemoteLockSync()}),process.on("SIGINT",handleShutdownSignal),process.on("SIGTERM",handleShutdownSignal)}async function disconnectMcpServers(){try{await Promise.allSettled([disconnectAllMcpServers(),yO()])}catch{}}function handleShutdownSignal(){dV||(dV=!0,abandonPendingCommandSpan(),Promise.allSettled([shutdownActiveRemote(),disconnectMcpServers(),disposeCommandModHost(),shutdownTelemetry()]).finally(()=>{process.exit(0)}))}async function shutdownAndExit(e=0){dV=!0,abandonPendingCommandSpan();try{await Promise.allSettled([shutdownActiveRemote(),disconnectMcpServers(),disposeCommandModHost(),shutdownTelemetry(No)])}finally{process.exit(e)}}async function trackCliSessionExistsEvent(){try{if(!await getAuthKey5())return;const e=getSessionId();if(!e)return;const n=getPackageJson(import.meta.url).version||"unknown",o=G.platform(),r=G.arch(),s=isTTY()?"interactive":"non-interactive";await trackLifecycleEvent({eventType:"cli_session_exists",metadata:{sessionId:e,cliVersion:n,mode:s,os:`${o}-${r}`},isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog})}catch{}}__name(getAuthKey5,"getAuthKey"),__name(setupTelemetry,"setupTelemetry"),__name(trackSystemInfo,"trackSystemInfo"),__name(registerCleanupHandlers,"registerCleanupHandlers"),__name(disconnectMcpServers,"disconnectMcpServers"),__name(handleShutdownSignal,"handleShutdownSignal"),__name(shutdownAndExit,"shutdownAndExit"),__name(trackCliSessionExistsEvent,"trackCliSessionExistsEvent");var uV=__name(async()=>{await ensureAuthenticated()||process.exit(1)},"requireAuth");function sandboxRequested(e){return void 0!==e.cloud&&!1!==e.cloud}function sandboxValue(e){return"string"==typeof e.cloud?e.cloud.trim():""}async function requireSandboxBypassAllowed(){isBypassPermissionsDisabled(await loadCommandCodeConfig({runtime:getCommandConfigRuntime()}))&&(process.stderr.write("Cloud sessions run without permission prompts, which your settings disable (permissions.disableBypass).\n"),process.exit(1))}async function interactiveModeAction(e,n){if(trackCommand({command:"interactive"}),n.listModels)return void await printModelList();if(n.addDir&&n.addDir.length>0)for(const e of n.addDir)Av.addDirectory(e);n.mod&&n.mod.length>0&&setModPathsOverride(n.mod),n.modOption&&n.modOption.length>0&&setModOptionsOverride(n.modOption);const o=(n.skill??[]).map(e=>a(e)),r=!1!==n.skills;if(setSkillLoadOverrides({extraPaths:o,discovery:r}),void 0!==n.worktree&&!1!==n.worktree){const e=void 0!==n.print||!0===n.rpc;e||Boolean(n.trust||n.dangerouslySkipPermissions)||await isCommandProjectSessionInitialized()||(console.error(`Worktree error: this directory isn't trusted yet. Run \`${getInvokedCommandName()}\` here once to trust it, then retry with --worktree.`),process.exit(1));const o=enterWorktreeFromFlag(n.worktree,{quiet:e,track:!e});o.ok||(console.error(`Worktree error: ${o.error}`),process.exit(1)),await initializeCommandProjectSessions()}const s=n.model?resolveSystemOneModel(n.model):void 0;if(s){void 0===n.print&&(process.stderr.write(`Error: ${s} is a decision model (TypeSafe System One): it answers typed questions with probabilities, not chat, so it has no interactive mode. ${systemOneUsageHint(s)}\n`),process.exit(1)),await uV(),trackCommand({command:"print"});const o=await runSystemOnePrint({model:s,query:extractPrintModeQuery({print:n.print,prompt:e}),outputFormat:n.outputFormat,stdinIsTTY:Boolean(process.stdin.isTTY),readStdin:readStdinText,transport:createSystemOneTransport()});o.stderrText&&process.stderr.write(o.stderrText),o.stdoutText&&process.stdout.write(o.stdoutText),await shutdownAndExit(o.exitCode)}const i=n.model?await resolveModelFlagOrExit({model:n.model}):void 0,l=i?.modelId,c=n,d=__name(e=>{process.stderr.write(`${e.message}\n`),e.ok||process.exit(1)},"applySettingResult");for(const e of $_){const n=c[e.key];"string"==typeof n&&d(await e.apply(n,{model:l}))}const u=c.config;if(Array.isArray(u))for(const e of u)"string"==typeof e&&d(await applyConfigSetting(e));if((n.dangerouslySkipPermissions||"bypass"===n.permissionMode)&&isBypassPermissionsDisabled(await loadCommandCodeConfig({runtime:getCommandConfigRuntime()}))&&(process.stderr.write("Bypass permissions are disabled by settings (permissions.disableBypass); continuing with normal permission prompts.\n"),n.dangerouslySkipPermissions=!1,"bypass"===n.permissionMode&&(n.permissionMode=void 0)),n.rpc)return void await rpcMode({dangerouslySkipPermissions:n.dangerouslySkipPermissions,plan:n.plan,permissionMode:n.permissionMode,model:l,resume:n.resume,continue:n.continue,..."string"==typeof n.session?{session:n.session}:{},forkSession:n.forkSession,name:n.name,persist:!1!==n.session&&void 0});if(n.base&&!sandboxRequested(n)&&(process.stderr.write("--base works with --cloud: cmd --cloud --base <branch>\n"),process.exit(1)),void 0!==n.print&&sandboxRequested(n)){await requireSandboxBypassAllowed(),await uV();const o=sandboxValue(n),r=IL.test(o)?o:null,s=extractPrintModeQuery({print:n.print,prompt:e});return void await runSandboxPrint({sessionId:r,task:r?s:o||s,...n.base?{baseBranch:n.base}:{},...l?{model:l}:{},..."string"==typeof c.effort?{effortGiven:!0}:{}}).catch(e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exit(1)})}if(void 0!==n.print){const o=extractPrintModeQuery({print:n.print,prompt:e});return void await printMode({query:o,dangerouslySkipPermissions:n.dangerouslySkipPermissions,plan:n.plan,permissionMode:n.permissionMode,maxTurns:n.maxTurns,verbose:n.verbose,toolsAll:n.toolsAll,toolsEnable:n.toolsEnable,outputFormat:n.outputFormat,model:l,benchmarkOutput:n.benchmarkOutput,name:n.name,resume:n.resume,continue:n.continue,forkSession:n.forkSession,session:"string"==typeof n.session?n.session:void 0,persist:!1!==n.session&&void 0})}l&&setModelOverride(l,i?.providerId),setGoalMaxTurnsOverride(n.maxTurns);const m=parseInteractivePromptArgument((sandboxRequested(n)&&!IL.test(sandboxValue(n))?sandboxValue(n):"")||e);await uV();const p=buildInteractiveRuntimeOptions(n),g=resolveInteractiveLaunchConfig({options:n,runtimeOptions:p,initialPrompt:m});if(setOriginalInvocation({trust:p.trust,dangerouslySkipPermissions:p.dangerouslySkipPermissions,skipOnboarding:p.skipOnboarding,maxTurns:n.maxTurns,skillPaths:o,skillDiscovery:r}),await installKeybindingsFromConfig({runtime:getCommandConfigRuntime()}),sandboxRequested(n)){const e=sandboxValue(n),o=IL.test(e)?e:null;return o&&n.base&&(process.stderr.write("--base applies to a new session only; a reopened one stays on its branch.\n"),process.exit(1)),await requireSandboxBypassAllowed(),enableSandboxMode({sessionId:o,...n.base?{baseBranch:n.base}:{}}),await rV({...g,dangerouslySkipPermissions:!0}),void await shutdownAndExit(Number(process.exitCode??0))}await rV(g),await shutdownAndExit(0)}__name(sandboxRequested,"sandboxRequested"),__name(sandboxValue,"sandboxValue"),__name(requireSandboxBypassAllowed,"requireSandboxBypassAllowed"),__name(interactiveModeAction,"interactiveModeAction"),Jt(),hL(),Jt(),hL();var mV={connected:St.green("✔"),installed:St.green("✔"),up_to_date:St.green("✔"),needs_reload:St.yellow("◌"),failed:St.red("✖"),not_in_ide:St.yellow("◌")};function formatSetupResult(e){const{prefix:n,ide:o,suffix:r}=getIDESetupStatusHeadline(e.status,e.ide),s=`${n}${o??""}${r}`;return["",`${mV[e.status]} ${s}`,...(e.details??[]).map(e=>St.dim(` ${e}`)),""]}__name(formatSetupResult,"formatSetupResult"),globalThis.COMMAND_CODE_CWD=process.cwd();var pV=__name(()=>process.cwd(),"getCwd"),gV=__name(()=>process.argv.slice(2),"getArgs"),hV=__name(()=>{const e=pV(),n=gV(),o=getCliStartupEnvironment(n);dlog(`[Startup] cwd: ${e}`),dlog(`[Startup] args: ${n.join(" ")}`),dlog(`[Startup] env: ${o}`),dlog(`[Startup] traceId: ${getTraceId()??"unavailable"}`)},"logStartupInfo");function getAuthKey6(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function preRun(){hV();const e=resolveCliStartupPlan({args:gV()});if(e.shouldRunIdeSetup){const e=await runIdeSetup({host:XH,moduleUrl:import.meta.url});formatSetupResult(e).forEach(e=>console.log(e)),process.exit("failed"===e.status?1:0)}e.shouldRunAutoUpdate&&runCliStartupPendingUpdates({plan:e,host:lG}),await migrateDeprecatedModel(),await getAuthKey6()&&detectAndTrackFirstInstall({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),getCliVersion:__name(()=>getPackageJson(import.meta.url).version??"unknown","getCliVersion"),log:dlog}).catch(()=>{}),e.shouldRunAutoUpdate&&runCliStartupUpdateCheck({plan:e,host:lG}),scheduleCliStartupIdeAutoInstall({host:XH,moduleUrl:import.meta.url})}__name(getAuthKey6,"getAuthKey"),__name(preRun,"preRun"),Jt(),hL();var fV=Object.fromEntries(Object.entries(yC).map(([e,n])=>[n,e])),yV=new Set(ZL.map(e=>e.id));function formatProviderModule(e){return yV.has(e)?`@byokkit/cmd-provider-${e}`:e}async function buildProviderLoginRows(e={}){const n=e.hasCredential??hasProviderCredential,o=e.modules??(await loadInstalledProviderModules()).modules,r=e.moduleSources??{},s=[];for(const e of o){const o=Boolean(e.auth?.methods.length),a=fV[e.id]??e.id;s.push({provider:e.id,name:e.displayName??e.id,module:r[e.id]??formatProviderModule(e.id),description:e.transport.kind,authenticated:!!o&&await n({provider:a}),canAuthenticate:o,installed:!0})}const a=new Set(s.map(e=>e.provider));for(const e of ZL){if(a.has(e.id))continue;if(!1===e.discoverable)continue;const o=fV[e.id]??e.id;s.push({provider:e.id,name:e.displayName,module:e.package,description:"gateway",authenticated:await n({provider:o}),canAuthenticate:!0,installed:!1})}return s}function formatProviderLoginRows(e){const n=getBinaryCommand(),o=[It.bold("Providers available for login/logout"),""];for(const r of e){const e=r.authenticated?It.green("logged in"):It.dim("not logged in"),s=r.installed?"":It.dim(" (not installed, installs on first login)");o.push(It.cyan(r.provider)),o.push(` Name: ${r.name}`),o.push(` Module: ${r.module}${s}`),o.push(` Type: ${r.description}`),r.canAuthenticate?(o.push(` Status: ${e}`),o.push(` Login: ${n} login ${r.provider}`),o.push(` Logout: ${n} logout ${r.provider}`),o.push("")):(o.push(` Status: ${It.dim("no login")}`),o.push(""))}return o.join("\n")}async function providersAction(e){const n=await loadInstalledProviderModules(),o=await buildProviderLoginRows({modules:n.modules,moduleSources:n.sources});if(e.json)console.log(JSON.stringify({providers:o,errors:n.errors}));else if(console.log(formatProviderLoginRows(o)),n.errors.length>0){console.log(It.yellow("Provider load errors"));for(const e of n.errors)console.log(`${It.yellow(e.id)}: ${e.error}`)}}__name(formatProviderModule,"formatProviderModule"),__name(buildProviderLoginRows,"buildProviderLoginRows"),__name(formatProviderLoginRows,"formatProviderLoginRows"),__name(providersAction,"providersAction");var vV=new Ve("providers").description("List providers available for login/logout").option("--json","Output providers as JSON for automation").action(providersAction);function assertSessionId(e){IL.test(e)||(console.error(It.red(`Invalid session id: ${e}`)),console.error(It.dim(`Find it with: ${getBinaryCommand()} cloud list`)),process.exit(1))}function client(){return createSandboxClient({transport:createSandboxTransport()})}function printTaskSummary(e){console.error(`${It.dim("Status:")} ${e.status}`),e.prUrl&&console.error(`PR: ${It.cyan(e.prUrl)}`),e.error&&console.error(It.red(e.error)),console.error(It.dim(`Open it with: ${getBinaryCommand()} --cloud ${e.sessionId}`))}async function statusSandboxTask(e){assertSessionId(e),printTaskSummary(await client().status({sessionId:e}))}async function stopSandboxTask(e){assertSessionId(e);const{status:n}=await client().cancel({sessionId:e});"cancelled"===n?console.error(It.yellow("Session stopped.")):console.error(It.yellow(`Session already ${n.replace("_"," ")}.`))}async function listSandboxTasks(){const{sessions:e}=await client().list();if(0!==e.length){console.log(It.dim(`${"SESSION".padEnd(38)}${"STATUS".padEnd(12)}${"AGE".padEnd(12)}REPO`));for(const n of e){const e=n.repoUrl.replace(/^https:\/\/github\.com\//,""),o=formatRelativeTimeShort({timestamp:n.createdAt});console.log(`${n.sessionId.padEnd(38)}${n.status.padEnd(12)}${o.padEnd(12)}${It.dim(e)}`)}}else console.error("No cloud sessions yet.")}function run3(e){e().catch(e=>{const n=e instanceof Error?e.message:"Unknown error";console.error(It.red(n)),process.exit(1)})}function createSandboxCommand(){const e=new Ve("cloud").description("Manage your cloud sessions").action(()=>{console.log(["Work in the cloud:"," cmd --cloud open a new session (the TUI)"," cmd --cloud <id> reopen a session",' cmd --cloud "message" open a new session with a first message',' cmd -p --cloud "task" run one task, print the session id',' cmd -p --cloud <id> "task" send a follow-up task',"Manage sessions:"," cmd cloud list | status <id> | stop <id>"].join("\n"))});return e.command("list").description("List your cloud sessions").action(()=>run3(listSandboxTasks)),e.command("status").description("Show a session summary").argument("<sessionId>").action(e=>run3(()=>statusSandboxTask(e))),e.command("stop").description("Stop a running session").argument("<sessionId>").action(e=>run3(()=>stopSandboxTask(e))),e}Jt(),Jt(),hL(),__name(assertSessionId,"assertSessionId"),__name(client,"client"),__name(printTaskSummary,"printTaskSummary"),__name(statusSandboxTask,"statusSandboxTask"),__name(stopSandboxTask,"stopSandboxTask"),__name(listSandboxTasks,"listSandboxTasks"),__name(run3,"run"),__name(createSandboxCommand,"createSandboxCommand"),Jt(),Jt(),hL();var SV=[`${It.dim("Usage:")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("<owner/repo>")}`,"",`${It.dim("Examples:")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/my-skills")} ${It.dim("# single-skill repo")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/skills/path/to/skill")} ${It.dim("# specific path in repo")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/multi-skills -s my-skill")} ${It.dim("# pick one from multi-skill repo")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/repo@branch")} ${It.dim("# specific branch")}`,` ${It.cyan(`${getBinaryCommand()} skills add`)} ${It.white("acme/repo --global")} ${It.dim("# install to ~/.commandcode/skills/")}`],wV=__name((e,n)=>`${It.green(vt.tick)} Installed ${It.cyan(e)} ${It.dim(`${vt.arrowRight} ${n}/`)}`,"formatInstalled"),kV=__name(e=>`${It.red(vt.cross)} ${e}`,"formatError");async function cleanupAndExit(e,n){await removeSkillInstallTempDir(e),process.exit(n)}function validateRepoFormat(e){const n=validateSkillInstallRepoInput(e);n.valid||(console.error(kV(n.message)),console.log(""),n.message.startsWith("Invalid repository")&&(console.log(`Expected format: ${It.cyan("owner/repo")} or ${It.cyan("owner/repo/path")}`),console.log("")),SV.forEach(e=>console.log(e)),process.exit(1))}async function addAction2(e,n){const o=process.stdout.isTTY&&process.stdin.isTTY,r=n.global?"~/.commandcode/skills":".commandcode/skills";let s;validateRepoFormat(e);const a=Dt({text:`Fetching ${It.cyan(e)}...`,color:"cyan"});try{let i=[];a.start();const l=await discoverCommandSkills(e,{keepTempDir:!0}),{skills:c,tempDir:d}=l;s=d,a.stop();const u=planSkillInstallSelection({skills:c,requestedSkillName:n.skill,interactive:o,repoInput:e});if("empty"===u.kind&&(console.error(kV(`No skills found in ${It.cyan(e)}`)),console.log(It.dim("The repository must contain at least one SKILL.md file.")),await cleanupAndExit(s,1)),"missing-requested-skill"===u.kind)return console.error(kV(`Skill "${u.requestedSkillName}" not found in ${It.cyan(u.repoInput)}`)),console.log(""),console.log(It.dim("Available skills:")),u.availableSkillNames.forEach(e=>console.log(` ${It.cyan(e)}`)),void await cleanupAndExit(s,1);if("prompt"===u.kind){const n=await Qe({message:`Select skills to install from ${e}`,options:[...u.options],required:!0});"symbol"==typeof n&&(console.log(It.dim("Cancelled")),await cleanupAndExit(s,0)),i=resolvePromptedSkillSelection({skills:c,selectedNames:n})}let m;"selected"===u.kind&&(i=u.skills);const p=await installSelectedCommandSkills({repoInput:e,skills:i,global:n.global,force:n.force,cachedTempDir:s,onSkillStart:__name(e=>{m=Dt({text:`Installing ${It.cyan(e.name)}...`,color:"cyan"}),m.start()},"onSkillStart"),onSkillInstalled:__name(e=>{m?.stop(),console.log(wV(e.name,r))},"onSkillInstalled"),onSkillFailed:__name(({skillName:e,message:n})=>{m?.stop(),console.error(kV(`Failed to install "${e}"`)),console.log(It.dim(` ${n}`))},"onSkillFailed")});await cleanupAndExit(s,p.exitCode)}catch(e){a.stop();const n=e instanceof Error?e.message:String(e);console.error(kV(n)),await cleanupAndExit(s,1)}}__name(cleanupAndExit,"cleanupAndExit"),__name(validateRepoFormat,"validateRepoFormat"),__name(addAction2,"addAction");var CV=new Ve("add").description("Install a skill from a GitHub repository").argument("<repo>","GitHub repository (owner/repo or owner/repo/path)").option("-g, --global","Install to global skills (~/.commandcode/skills/)").option("-f, --force","Overwrite if skill already exists").option("-s, --skill <name>","Specific skill name to install from repo").addHelpText("after",`\n${SV.join("\n")}`).configureOutput({outputError:__name((e,n)=>{e.includes("missing required argument")?(console.error(kV("No repository specified.")),console.log(""),SV.forEach(e=>console.log(e))):n(e)},"outputError")}).action(addAction2);Jt(),hL();var bV=__name((e,n)=>{const o=n.length>60?n.substring(0,57)+"...":n;return` ${It.cyan(e)} ${It.dim(`· ${o}`)}`},"formatSkillLine"),TV=__name((e,n)=>`${It.bold(It.white(e))} ${It.dim(`(${n})`)}`,"formatSectionHeader"),EV=__name(e=>{if(0!==e.warningCount){console.log(""),console.log(`${It.bold(It.yellow("Skipped"))} ${It.dim(`(${e.warningCount})`)}`);for(const n of e.warningGroups){console.log(""),console.log(` ${It.bold(n.category)} ${It.dim(`(${n.items.length})`)}`);for(const e of n.items)console.log(` ${It.bold(skillIdentifier(e.path))}`),console.log(` ${It.dim(e.reason)}`)}}},"printWarnings"),PV=__name(e=>{const n=["",It.dim("No skills installed."),"",It.dim("Looking in:")];for(const o of e.lookupPaths)n.push(It.dim(` ${o.path} ${It.white(`(${o.label})`)}`));return n.push("",`Install a skill: ${It.cyan(e.installCommand)} ${It.dim(e.installPlaceholder)}`,""),n},"formatEmptyHint"),MV=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),IV=__name(e=>{e&&(console.log(""),console.log(It.dim(e.replace("--debug",It.cyan("--debug")))))},"printDebugHint");async function listAction2(){const e="true"===process.env.DEBUG;try{const{global:n,project:o,bundled:r,warnings:s}=await listCommandSkills(),a=planSkillListView({global:n,project:o,bundled:r,warnings:s,showWarnings:e});if(a.empty){const n=await buildSkillListEmptyHint({runtime:getCommandSkillRuntime(),binCommand:`${getBinaryCommand()}`});MV(PV(n));for(const e of a.sections)console.log(TV(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(bV(e.name,e.description))}),console.log("");e&&(EV({warningCount:a.warningCount,warningGroups:a.warningGroups}),a.warningCount>0&&console.log("")),e||(IV(a.debugHint),console.log("")),process.exit(0)}console.log(""),console.log(heading({text:"Skills",sub:It.dim(`${a.userInstalledTotal} installed`)}));for(const e of a.sections)console.log(""),console.log(TV(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(bV(e.name,e.description))});e&&EV({warningCount:a.warningCount,warningGroups:a.warningGroups}),e||IV(a.debugHint),console.log(""),process.exit(0)}catch(e){const n=e instanceof Error?e.message:"Unknown error";console.error(`${It.red(vt.cross)} Failed to list skills: ${n}`),process.exit(1)}}__name(listAction2,"listAction");var AV=new Ve("list").description("List all installed skills. Run with -d/--debug to also see why any skills were skipped.").action(listAction2);Jt(),hL();var xV=__name((e,n)=>`${It.green(vt.tick)} Removed ${It.cyan(e)} from ${n} skills`,"formatRemoved"),RV=__name(e=>`${It.red(vt.cross)} ${e}`,"formatError"),LV=__name((e,n)=>{let o=e;for(const e of n)o=o.replace(e,It.cyan(e));return It.dim(o)},"formatHint");function validateSkillNameEarly(e){const n=validateSkillRemoveName(e);return n.valid?null:n.message}async function removeAction2(e,n){try{const o=process.stdout.isTTY&&process.stdin.isTTY,r=n.global?"global":"project",s=validateSkillNameEarly(e);if(s&&(console.error(RV(s)),console.log(LV(getSkillListCommandHint({binCommand:`${getBinaryCommand()}`}),[`${getBinaryCommand()} skills list`])),process.exit(1)),!n.yes&&o){const n=await Xe({message:`Remove ${It.cyan(e)} from ${r} skills?`});"symbol"!=typeof n&&n||(console.log(It.dim("Cancelled")),process.exit(0))}await removeCommandSkill({skillName:e,global:n.global}),console.log(xV(e,r)),process.exit(0)}catch(o){const r=o instanceof Error?o.message:"Failed to remove skill",s=planSkillRemoveError({skillName:e,global:n.global,errorMessage:r,binCommand:`${getBinaryCommand()}`});if(console.error(RV(s.message)),"not-found"===s.kind)for(const n of s.hints)console.log(LV(n,[`${getBinaryCommand()} skills remove ${e} --global`,`${getBinaryCommand()} skills list`]));process.exit(1)}}__name(validateSkillNameEarly,"validateSkillNameEarly"),__name(removeAction2,"removeAction");var OV=new Ve("remove").description("Remove an installed skill").argument("<skill-name>","Name of the skill to remove").option("-g, --global","Remove from global skills (~/.commandcode/skills/)").option("-y, --yes","Skip confirmation prompt").action(removeAction2),DV=new Ve("skills").description("Manage skills from GitHub repositories").addCommand(CV).addCommand(OV).addCommand(AV);Jt(),hL(),Jt(),hL(),Jt(),Jt(),hL();var NV=[vt.bullet,vt.squareSmallFilled,vt.lozenge,vt.star,vt.triangleRight,vt.triangleUp];Jt(),hL(),Jt();var FV=[/MallocStackLogging: can't turn off malloc stack logging because it was not enabled/i];function shouldIgnoreChunk(e){return FV.some(n=>n.test(e))}function chunkToString(e){return"string"==typeof e?e:Buffer.isBuffer(e)?e.toString("utf-8"):""}async function withFilteredStderrNoise(e){const n=process.stderr.write.bind(process.stderr);process.stderr.write=(e,...o)=>{const r=chunkToString(e);return!(!r||!shouldIgnoreChunk(r))||("function"==typeof o[0]?n(e,o[0]):n(e,o[0],o[1]))};try{return await e()}finally{process.stderr.write=n}}__name(shouldIgnoreChunk,"shouldIgnoreChunk"),__name(chunkToString,"chunkToString"),__name(withFilteredStderrNoise,"withFilteredStderrNoise"),Jt(),hL(),Jt(),Jt();var _V=__name(({summary:e,elapsedSeconds:o})=>{const{t:r}=xt();if(!e)return null;const s=n.relative(process.cwd(),e.storage),a=e.learningCount>0;return ct.createElement(tt,{flexDirection:"column",marginLeft:3},ct.createElement(tt,{marginBottom:1,flexDirection:"row"},ct.createElement(nt,{color:XO.DIM},VD),ct.createElement(tt,{marginLeft:2},ct.createElement(nt,{color:eD.TEXT},a?r("learned2","Learned {{v0}} {{v1}}",{v0:e.learningCount,v1:1===e.learningCount?"preference":"preferences"}):r("tasteProfileInitialized","Taste profile initialized"),o?r("in2"," in {{v0}} {{v1}}",{v0:o,v1:1===o?"second":"seconds"}):""))),ct.createElement(tt,{flexDirection:"column",marginLeft:1},ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},vt.pointerSmall," ",r("tasteStoredIn","Taste stored in")," "),ct.createElement(_D,{url:fileUrl(e.storage),text:s||".commandcode/taste/taste.md",color:XO.CYAN})),ct.createElement(tt,null,ct.createElement(nt,{color:XO.DIM},vt.pointerSmall," ",r("shareYourCodingTaste","Share your coding taste:")," ",ct.createElement(nt,{color:XO.CYAN},"npx taste push --all")))),ct.createElement(tt,{marginTop:1,marginLeft:1},ct.createElement(nt,{color:XO.DIM},a?r("commandCodeAutomaticallyUsesUpdatesTasteFilesAsYouCode","Command Code automatically uses & updates taste files as you code."):r("commandCodeWillLearnYourPreferencesAsYouCode","Command Code will learn your preferences as you code."))))},"RepoLearnCompletionSummary");Jt();var $V=__name(({message:e})=>ct.createElement(jF,null,e),"RepoLearnErrorPanel");Jt();var UV=__name(({done:e,error:n})=>{const{t:o}=xt();return n?ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("press","Press")," ",ct.createElement(qN,null,"Esc")," ",o("toExit","to exit"))):e?ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("press","Press")," ",ct.createElement(qN,null,"Enter")," ",o("toContinue","to continue"))):ct.createElement(tt,{marginTop:1},ct.createElement(zN,null,o("escToCancel2","Esc to cancel")))},"RepoLearnFooter");Jt(),hL();var BV=__name(({insights:e,insightCount:n})=>{const{t:o}=xt();return 0===e.length?null:ct.createElement(tt,{flexDirection:"column",marginTop:1,marginLeft:4},ct.createElement(nt,{color:XO.CYAN},n>0?o("recentSignalsLearned","Recent signals · {{v0}} {{v1}} learned",{v0:n,v1:1===n?"preference":"preferences"}):o("recentSignals","Recent signals")),e.map((e,n)=>ct.createElement(nt,{key:`${n}-${e}`,color:XO.DIM},NV[n%NV.length]," ",truncateRepoLearnPanelText(e,14))))},"RepoLearnRollingInsights");Jt(),hL();var jV=__name(({status:e})=>"active"===e?ct.createElement(tt,null,ct.createElement(nt,{color:XO.YELLOW},ct.createElement(Et,{type:"dots"})),ct.createElement(nt,null," ")):"complete"===e?ct.createElement(nt,{color:rD.BG},vt.square," "):ct.createElement(nt,{color:XO.DIM},vt.circle," "),"StepStatusIndicator");function getStepLabelColor(e,n){return"complete"===e?XO.WHITE:n?XO.YELLOW:XO.DIM}__name(getStepLabelColor,"getStepLabelColor");var WV=__name(({steps:e,currentMessage:n})=>ct.createElement(tt,{flexDirection:"column",marginTop:1},e.map(e=>{const o="active"===e.status;return ct.createElement(tt,{key:e.id,flexDirection:"column",marginBottom:0,marginLeft:3},ct.createElement(tt,null,ct.createElement(tt,{marginRight:1},ct.createElement(jV,{status:e.status})),ct.createElement(nt,{bold:o,color:getStepLabelColor(e.status,o)},translateUiCopy(e.label))),o&&n?ct.createElement(tt,{marginLeft:3},ct.createElement(nt,{color:XO.DIM},truncateRepoLearnPanelText(n))):null)})),"RepoLearnStepList");Jt();var HV=__name(({isComplete:e,hasError:n})=>{const{t:o}=xt();return n?ct.createElement(nt,{color:XO.DIM},o("learningInterrupted","learning interrupted")):e?ct.createElement(nt,{color:eD.TEXT},o("learnedYourCodingTaste","learned your coding taste")):ct.createElement(BD,null)},"TastePillStatus"),GV=__name(({isComplete:e,hasError:n})=>ct.createElement(tt,{flexDirection:"column",marginTop:1,marginBottom:0},ct.createElement(YD,null),ct.createElement(tt,{marginTop:0},ct.createElement(nt,{color:XO.DIM},VD),ct.createElement(tt,{marginLeft:2},ct.createElement(HV,{isComplete:e,hasError:n})))),"RepoLearnTastePill");Jt();var VV=__name(({text:e,repoName:n})=>{const{t:o}=xt(),r=useTerminalWidth(),s=ut(()=>AN(r),[r]);return ct.createElement(tt,{flexDirection:"column"},ct.createElement(tt,{flexDirection:"column",marginBottom:1},ct.createElement(CD,null,s.trimEnd())),e?ct.createElement(nt,{color:XO.WHITE},e):ct.createElement(ct.Fragment,null,ct.createElement(nt,{color:XO.WHITE},o("learningYourCodingTasteFrom","Learning your coding taste from")," ",ct.createElement(nt,{bold:!0,color:XO.CYAN},n??o("repository","repository"))),ct.createElement(nt,{color:XO.DIM},o("thisMayTakeAFewMinutesDependingOnRepositorySize","This may take a few minutes depending on repository size"))))},"RepoLearnHeader");function useRepoLearnState(e){const n=e??kx,[o,r]=mt(()=>createRepoLearnProjection({stepOrder:n})),s=pt(null),[a,i]=mt(null),l=ht(()=>{s.current=Date.now()},[]),c=ht(e=>{r(n=>({...n,showLogin:e}))},[]);return gt(()=>{const e=__name(()=>{r(createRepoLearnProjection({stepOrder:n})),s.current=null,i(null)},"handleReset"),o=__name(e=>{r(n=>reduceRepoLearnEvent({state:n,event:e}))},"handleEvent"),a=__name(()=>{r(e=>completeRepoLearnProjection({state:e})),s.current&&i(Math.round((Date.now()-s.current)/1e3))},"handleComplete");return qp.on("reset",e),qp.on("new-event",o),qp.on("learning-complete",a),()=>{qp.off("reset",e),qp.off("new-event",o),qp.off("learning-complete",a)}},[n]),{steps:o.steps,currentMessage:o.currentMessage,insights:o.insights,insightCount:o.insightCount,summary:o.summary,done:o.done,error:o.error,showLogin:o.showLogin,setShowLogin:c,elapsedSeconds:a,markStarted:l}}function StatusPanel({error:e,done:n,summary:o,elapsedSeconds:r,insights:s,insightCount:a}){return e?ct.createElement($V,{message:e}):n?ct.createElement(_V,{summary:o,elapsedSeconds:r}):ct.createElement(BV,{insights:s,insightCount:a})}function RepoLearnProgressApp({runTask:e,onExit:n,stepOrder:o,headerText:r,repoName:s}){const{t:a}=xt(),i=useRepoLearnState(o),l=pt(!1);return gt(()=>{l.current||(l.current=!0,i.markStarted(),e().catch(()=>{}))},[e,i.markStarted]),at((e,o)=>{if(i.showLogin)return;const r=o.escape||""===e,s=o.return||"\n"===e||"\r"===e;r?n({published:!1,cancelled:!0}):(i.done||i.error)&&s&&n({published:!1,cancelled:!!i.error})}),i.showLogin?ct.createElement(tt,{flexDirection:"column"},ct.createElement(VV,{text:r,repoName:s}),ct.createElement(yj,{onComplete:(e,n)=>{i.setShowLogin(!1),e?qp.resolveAuth():qp.rejectAuth(n)},onCancel:()=>{i.setShowLogin(!1),qp.rejectAuth(a("loginCancelled","Login cancelled")),n({published:!1,cancelled:!0})}})):ct.createElement(tt,{flexDirection:"column"},ct.createElement(VV,{text:r,repoName:s}),ct.createElement(GV,{isComplete:i.done&&!i.error,hasError:Boolean(i.error)}),ct.createElement(WV,{steps:i.steps,currentMessage:i.currentMessage}),ct.createElement(StatusPanel,{error:i.error,done:i.done,summary:i.summary,elapsedSeconds:i.elapsedSeconds,insights:i.insights,insightCount:i.insightCount}),ct.createElement(UV,{done:i.done,error:i.error}))}async function runRepoLearnProgress(e){return await applyStartupTheme(),withFilteredStderrNoise(()=>renderProgressUI(e))}function renderProgressUI(e){return new Promise((n,o)=>{qp.reset();const r=new AbortController;let s,a,i=!1,l=!1;const c=__name(async()=>{try{s=await e.runTask(r.signal)}catch(e){r.signal.aborted||(a=e,qp.addEvent({type:"error",message:toRepoLearnErrorMessage(e)}),qp.markLearningComplete())}},"handleRunTask"),d=__name(({published:e,cancelled:c})=>{l||(l=!0,i=e,r.abort(),u.unmount(),qp.reset(),a?o(a):n({result:s,published:i,cancelled:c}))},"handleExit"),u=st(ct.createElement(RepoLearnProgressApp,{stepOrder:e.stepOrder,headerText:e.headerText,repoName:e.repoName,runTask:c,onExit:d}));u.waitUntilExit().catch(e=>{qp.reset(),o(e)})})}function getAuthKey7(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function logLearnSummary(e){const{summary:n}=e;console.log(St.cyan("\n ─── Results ───\n")),console.log(` Source: ${n.sourceName}`),console.log(` Signals: ${n.signalCount} extracted`),console.log(` Context: ${n.contextLength} chars compiled`),console.log(` Taste dir: ${n.tasteDir}`),console.log("")}Jt(),hL(),__name(useRepoLearnState,"useRepoLearnState"),__name(StatusPanel,"StatusPanel"),__name(RepoLearnProgressApp,"RepoLearnProgressApp"),__name(runRepoLearnProgress,"runRepoLearnProgress"),__name(renderProgressUI,"renderProgressUI"),__name(getAuthKey7,"getAuthKey"),__name(logLearnSummary,"logLearnSummary");var KV=__name(e=>n=>{const o=parseInt(n,10);if(isNaN(o)||o<1)throw new Error(`${e} must be a positive integer`);return o},"parsePositiveInt");function createLearnCommand(){return new Ve("learn").description("Learn coding taste from repository change history").argument("[source]","Local path, GitHub URL, or owner/repo (defaults to current directory)").option("--max-commits <number>","Maximum commits to analyze",KV("--max-commits"),200).addOption(new Ke("--max-signals <number>","Maximum diff signals to extract").default(50).argParser(KV("--max-signals")).hideHelp()).option("--branch <name>","Branch to analyze (defaults to main/master)").action(async(e,n)=>{try{await learnTaste({source:e??".",maxCommits:n.maxCommits??200,maxSignals:n.maxSignals??50,branch:n.branch})}catch(e){const n=e instanceof Error?e.message:String(e);console.error(`Error: ${n}`),process.exit(1)}})}async function learnTaste(e){const n=createNodeRuntime(),o=await isLocalTasteSource({runtime:n,source:e.source}),r=isTTY(),s=await resolveDisplayName({runtime:n,source:e.source}),a=!await getAuthKey7();if(a&&!r)return console.log(""),console.log(" Login required to learn taste."),console.log(""),console.log(` Run: ${getBinaryCommand()} login`),console.log(` Then: npx taste learn ${e.source}`),void console.log("");let i;const l=__name(()=>{i?.().finally(()=>process.exit(130))},"sigintHandler");process.once("SIGINT",l);let c=!1;try{const l=__name(async r=>{const{summary:s,resolved:l}=await runLearnPipeline({runtime:n,reporter:qp,runLearn:__name(e=>runTasteLearningAgent({...e,createSession:createHarnessSession}),"runLearn"),source:e.source,maxCommits:e.maxCommits,maxSignals:e.maxSignals,branch:e.branch,isLocalSource:o,needsAuth:a,signal:r});return i=l?.cleanup,s},"runTask");if(r){const e=o?void 0:[...Cx];({cancelled:c}=await runRepoLearnProgress({runTask:l,repoName:s,stepOrder:e}))}else logLearnSummary({summary:await l((new AbortController).signal)})}finally{process.off("SIGINT",l),i&&await i()}r&&!c||process.exit(0),sN(),await rV({skipOnboarding:!0}),await shutdownAndExit(0)}__name(createLearnCommand,"createLearnCommand"),__name(learnTaste,"learnTaste"),Jt(),hL(),Jt(),hL();var zV=St.bgGreen.black.bold(" TASTE ");function shortenPath(e){const n=process.env.HOME??process.env.USERPROFILE??"";return n&&e.startsWith(n)?`~${e.slice(n.length)}`:e}function exitWithError(e){console.error(`${St.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`),process.exit(1)}function formatUsageLine(e){const n=e.match(/^(\s*(?:Usage:|or:)?\s*)(cmd)(\s+.+?)(\s+\(.*\))?$/);return n?`${St.dim(n[1])}${St.green(n[2])}${St.white(n[3]??"")}${n[4]?St.dim(n[4]):""}`:St.dim(e)}function exitWithUsage({message:e,usage:n}){console.error(`${St.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`);for(const e of n)console.error(formatUsageLine(e));process.exit(1)}function exitWithTasteCliValidation(e){e.valid||(e.usage&&exitWithUsage({message:e.message,usage:e.usage}),exitWithError(e.message))}__name(shortenPath,"shortenPath"),__name(exitWithError,"exitWithError"),__name(formatUsageLine,"formatUsageLine"),__name(exitWithUsage,"exitWithUsage"),__name(exitWithTasteCliValidation,"exitWithTasteCliValidation");var qV=__name((e,n)=>n,"linkFallback");function getPackageLink({owner:e,packageName:n}){const o=buildPackageUrl({owner:e,packageName:n});return _t(`commandcode.ai/${e}/${n}`,o,{fallback:qV})}function getProfileLink(e){const n=buildProfileUrl2(e);return _t(`commandcode.ai/${e}`,n,{fallback:qV})}function wrapLine(e,n=0){const o=(process.stdout.columns||80)-n;return $t(e,o,{trim:!1})}function logMergeReviewTip(){console.log(St.yellow("\nTip: Review merged learnings to ensure no conflicting rules."))}function handleResultErrors(e){for(const n of e){const e=normalizeTasteResultError(n);console.error(`${St.red("Error:")} ${e}`)}process.exit(1)}async function flushAndExit(e){await Promise.race([shutdownTelemetry(),new Promise(e=>setTimeout(e,500))]).catch(()=>{}),process.exit(e)}function withErrorHandler(e){return async(...n)=>{try{await e(...n),await flushAndExit(0)}catch(e){const n=e instanceof Error?e.message:String(e);console.error(St.red(`Error: ${n}`)),await flushAndExit(1)}}}function formatSingleIssue(e,n){const o=[`${e.line?St.dim(` Line ${e.line}: `):" "}${n(e.message)}`];return e.suggestion&&o.push(St.dim(` → ${e.suggestion}`)),o}function formatIssueGroup(e,n,o){return 0===e.length?[]:[o,...e.flatMap(e=>formatSingleIssue(e,n)),""]}function formatValidationIssues(e){const{result:n,verbose:o=!0}=e;if(0===n.issues.length){const e=n.summary.charAt(0),o=n.summary.substring(2);return`${St.green(e)} ${St.dim(o)}`}if(!o)return n.summary;const r=n.issues.filter(e=>"error"===e.severity),s=n.issues.filter(e=>"warning"===e.severity);return[r.length>0?St.red(n.summary):St.yellow(n.summary),"",...formatIssueGroup(r,St.red,St.bold(St.red("Errors:"))),...formatIssueGroup(s,St.yellow,St.bold(St.yellow("Warnings:")))].join("\n").trim()}__name(getPackageLink,"getPackageLink"),__name(getProfileLink,"getProfileLink"),__name(wrapLine,"wrapLine"),__name(logMergeReviewTip,"logMergeReviewTip"),__name(handleResultErrors,"handleResultErrors"),__name(flushAndExit,"flushAndExit"),__name(withErrorHandler,"withErrorHandler"),Jt(),__name(formatSingleIssue,"formatSingleIssue"),__name(formatIssueGroup,"formatIssueGroup"),__name(formatValidationIssues,"formatValidationIssues");var YV=createTasteLintService({runtime:createNodeRuntime(),formatValidationIssues:formatValidationIssues});function createLintCommand(){return new Ve("lint").argument("[package]","Taste package name").option("-g, --global","Validate taste packages from global storage (~/.commandcode)").option("--all","Validate all taste packages").description(`Validate taste package format ${St.dim("(structure, style, etc.)")}`).action(withErrorHandler(async(e,n)=>runLint({packageName:e,options:n})))}function validateLintOptions({packageName:e,options:n}){exitWithTasteCliValidation(validateTasteLintCliOptions({packageName:e,options:n}))}function logLintResults(e){for(const n of e.filesLinted)console.log(n.formatted);e.filesLinted.length>1&&logLintSummary(e),e.success||process.exit(1)}function logLintSummary({filesLinted:e,totalErrors:n,totalWarnings:o}){if(console.log(""),0===n&&0===o)return void console.log(`${St.green(vt.tick)} All ${St.green(e.length)} taste files are valid`);const r=[];n>0&&r.push(St.red(`${n} error${n>1?"s":""}`)),o>0&&r.push(St.yellow(`${o} warning${o>1?"s":""}`)),console.log(`Summary: ${r.join(", ")} across ${e.length} files`)}async function runLint({packageName:e,options:n}){console.log(""),validateLintOptions({packageName:e,options:n});const o=await YV.lint({packages:e?[e]:[],target:n.global?"local-global":"local-project"});if(o.errors.length>0){for(const e of o.errors)console.error(St.red(`Error: ${e.error}`));process.exit(1)}logLintResults(o)}__name(createLintCommand,"createLintCommand"),__name(validateLintOptions,"validateLintOptions"),__name(logLintResults,"logLintResults"),__name(logLintSummary,"logLintSummary"),__name(runLint,"runLint"),Jt(),hL();var JV={};__export(JV,{downloadPackage:()=>downloadPackage,downloadRemotePackage:()=>downloadRemotePackage,getAllPackages:()=>getAllPackages,getPackage:()=>getPackage,listPackages:()=>listPackages,writePackage:()=>writePackage,writePackages:()=>writePackages}),Jt(),hL();var QV=createNodeRuntime();function getAuthKey8(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function requireAuthKey(){const e=await getAuthKey8();if(!e)throw new Error(`No API key found. Please authenticate with: ${getBinaryCommand()} login`);return e}function storage(){return createTasteRemoteStorage({transport:createNodeTransport({baseUrl:getApiBaseUrl()}),requireAuthKey:requireAuthKey,getAuthKey:getAuthKey8,getAuthenticatedEntity:__name(()=>getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})}),"getAuthenticatedEntity"),trackError:__name(({error:e,label:n,heading:o,context:r})=>trackError({error:sanitizeErrorForTelemetry({error:e,label:n}),context:{component:Rs.TASTE_REMOTE_STORAGE,heading:o,...r??{}}}),"trackError"),onWarn:__name(e=>console.warn(e),"onWarn"),logDebug:__name(e=>dlog(e),"logDebug")})}function getAllPackages(){return storage().getAllPackages()}function getPackage(e){return storage().getPackage(e)}function downloadPackage(e){return storage().downloadPackage(e)}function downloadRemotePackage(e){return storage().downloadRemotePackage(e)}function writePackage(e){return storage().writePackage(e)}async function writePackages(e){const{packages:n,projectName:o,owner:r,isPublic:s,overwrite:a}=e,{rootContent:i,categoryContents:l}=e.files??await readProjectUploadFiles({runtime:QV,packages:n});return storage().writePackages({projectName:o,owner:r,isPublic:s,overwrite:a,rootContent:i,categoryContents:l,packageCount:n.length})}function listPackages(){return storage().listPackages()}__name(getAuthKey8,"getAuthKey"),__name(requireAuthKey,"requireAuthKey"),__name(storage,"storage"),__name(getAllPackages,"getAllPackages"),__name(getPackage,"getPackage"),__name(downloadPackage,"downloadPackage"),__name(downloadRemotePackage,"downloadRemotePackage"),__name(writePackage,"writePackage"),__name(writePackages,"writePackages"),__name(listPackages,"listPackages");var XV=createNodeRuntime(),ZV=createTasteLocalStorage({runtime:XV,target:"local-project"}),eK=createTasteLocalStorage({runtime:XV,target:"local-global"});function list(e){return createTasteListService({runtime:XV,localProject:ZV,localGlobal:eK,remote:JV}).list(e)}function getUserName(){return getCommandAuthUserName({runtime:getCommandConfigRuntime(),path:getAuthFile()})}function createListCommand(){return new Ve("list").alias("ls").option("-g, --global","List global packages").addOption(new Ke("-l, --local","Use local server").hideHelp()).option("--remote","List remote packages").addOption(new Ke("--staging","Use staging environment").hideHelp()).description(`List available packages ${St.dim("(project, global, or remote)")}`).action(withErrorHandler(async e=>runList({options:e})))}function formatPackageLine(e){return` ${St.white(e.name)}${e.publicBadge?St.green(e.publicBadge):""}${e.starsBadge?St.yellow(e.starsBadge):""}${e.downloadsBadge?St.gray(e.downloadsBadge):""}${e.padding}${St.dim.gray(e.statsLabel)}`}function validateListOptions(e){exitWithTasteCliValidation(validateTasteListCliOptions(e))}async function fetchPackages({options:e}){const n=resolveTasteListStorage(e),o=e.remote?Dt(`Fetching ${n.name} packages`).start():null,r=await list({location:n.location});return o?.stop(),{packages:r,storage:n}}async function getStorageLabel({options:e,fallback:n}){if(!e.remote)return n;const o=await getUserName();return o?getProfileLink(o):n}function printPackageTable({packages:e,subtitle:n}){console.log(`\n${zV} Packages`),console.log(`${St.gray("⎿")} ${St.dim(n)}\n`);const o=projectTasteListView({packages:e,symbols:{star:vt.star,arrowDown:vt.arrowDown}});for(const e of o.rows)console.log(formatPackageLine(e));console.log(St.dim(`\n${o.totalLabel}\n`))}async function runList({options:e}){console.log(""),validateListOptions(e);const{packages:n,storage:o}=await fetchPackages({options:e});0!==n.length?printPackageTable({packages:n,subtitle:await getStorageLabel({options:e,fallback:o.subtitle})}):console.log(St.yellow(`No taste packages found in ${o.name}`))}__name(list,"list"),__name(getUserName,"getUserName"),__name(createListCommand,"createListCommand"),__name(formatPackageLine,"formatPackageLine"),__name(validateListOptions,"validateListOptions"),__name(fetchPackages,"fetchPackages"),__name(getStorageLabel,"getStorageLabel"),__name(printPackageTable,"printPackageTable"),__name(runList,"runList"),Jt(),hL(),Jt(),hL();var tK=createNodeRuntime(),nK=createTasteLocalStorage({runtime:tK,target:"local-project"}),oK=createTasteLocalStorage({runtime:tK,target:"local-global"});async function open7(e){try{const n=await createTasteOpenService({runtime:tK,localProject:nK,localGlobal:oK,remote:JV}).resolveOpen(e);return n.success?(await Ft([{file:n.filePath,line:n.lineNumber}]),n):n}catch(e){return classifyTasteOpenError({error:e,platform:Ie.platform})}}function createOpenCommand(){return new Ve("open").argument("[package]","Taste package name, or owner/package to open in browser").option("-g, --global","Open taste package from global storage (~/.commandcode)").description(`Open a taste package in your editor ${St.dim("(use owner/package to open in browser)")}`).action(withErrorHandler(async(e,n)=>runOpen({packageName:e,options:n})))}function validateOpenOptions(e){exitWithTasteCliValidation(validateTasteOpenCliOptions(e))}async function runOpen({packageName:e,options:n}){console.log(""),validateOpenOptions(e);const o=parseOwnerPackage(e);o?await openInBrowser(o):await openInEditor2({packageName:e,options:n})}async function openInBrowser(e){const n=`https://commandcode.ai/${e.owner}/${e.packageName}`;await Ot(n);const o=getPackageLink({owner:e.owner,packageName:e.packageName});console.log(`${St.green(vt.tick)} Opened ${o} in browser`)}async function openInEditor2({packageName:e,options:n}){const o=resolveTasteOpenTarget(n),r=await open7({package:e,target:o});r.success||exitWithError(r.error??"Unknown error"),console.log(`${St.green(vt.tick)} Opened ${St.green(`'${e}'`)} taste package from ${n.global?"global":"project"}`)}__name(open7,"open"),__name(createOpenCommand,"createOpenCommand"),__name(validateOpenOptions,"validateOpenOptions"),__name(runOpen,"runOpen"),__name(openInBrowser,"openInBrowser"),__name(openInEditor2,"openInEditor"),Jt(),hL(),Jt(),hL(),Jt();var rK=null,sK=!1;function setActiveSpinner(e){rK=e}function stopActiveSpinner(e){rK&&(rK.stop(e),rK=null)}function setPrompted(e){sK=e}function wasPrompted(){return sK}function logResult(e){if(wasPrompted())return qe.outro(e),void setPrompted(!1);console.log(e)}function buildPullMessage(e){const{summary:n,sourceName:o}=e,r=wasPrompted()?"":`${vt.tick} `,s=n.detailPath?St.dim(`\n ${shortenPath(n.detailPath)}`):"";return"single-replaced"===n.variant?`${St.green(r)}Replaced ${St.green(`'${n.packageName}'`)} taste package in project`+s:"single-merged"===n.variant?`${St.green(r)}Pulled ${St.green(`'${n.packageName}'`)} taste package from ${o} ${St.gray(`(${n.mergeParts.join(", ")})`)}`+s:`${St.green(r)}Pulled ${St.green(`'${n.packageName}'`)} taste package from ${o}`+s}function logPullSummary(e){const{breakdown:n,sourceName:o}=e,r=[];if(n.succeeded.length>0&&r.push(wrapLine(`${St.green("Pulled")} (${n.succeeded.length}) ${n.succeeded.join(", ")}`,wasPrompted()?4:0)),n.overwritten.length>0&&r.push(wrapLine(`${St.yellow("Overwritten")} (${n.overwritten.length}) ${n.overwritten.join(", ")}`,wasPrompted()?4:0)),n.skipped.length>0&&r.push(wrapLine(`${St.dim("Skipped")} (${n.skipped.length}) ${St.dim(n.skipped.join(", "))}`,wasPrompted()?4:0)),wasPrompted())return r.length>0&&qe.log.message(r.join("\n")),qe.outro(`${n.totalLabel} from ${o}`),void setPrompted(!1);console.log(`${St.green(vt.tick)} ${n.totalLabel} from ${o}`),r.length>0&&console.log(r.join("\n"))}function logPullSuccess(e){const{result:n,sourceName:o,options:r}=e,s=projectTastePullSummary({result:n,options:r});if("multi"===s.variant)return logPullSummary({breakdown:s.breakdown,sourceName:o}),void(s.showTip&&logMergeReviewTip());"single-skipped"!==s.variant?"none"!==s.variant&&(logResult(buildPullMessage({summary:s,sourceName:o})),s.showTip&&logMergeReviewTip()):logResult(St.yellow(s.message))}function beginPrompt(e,n){stopActiveSpinner(),qe.intro(St.dim(e)),n&&qe.log.message(St.dim(n)),setPrompted(!0)}function handleCancel(e){qe.isCancel(e)&&(qe.cancel("Operation cancelled"),process.exit(0))}function startStrategySpinner(e){if("skip"===e){const e=qe.spinner();return e.start("Skipping"),void e.stop("Skipped")}const n="merge"===e?"Merging":"Overwriting",o="merge"===e?"Merged":"Overwritten",r=qe.spinner();r.start(n),setActiveSpinner({stop:__name(e=>r.stop(e??o),"stop"),cancel:__name(e=>r.cancel(e),"cancel"),error:__name(e=>r.error(e),"error")})}async function runConflictPrompt(e){if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(e.existsMessage),setPrompted(!0),qe.log.warn(e.nonInteractive.warning),e.nonInteractive.strategy;if(beginPrompt(`${e.title.prefix}${St.green(e.title.emphasis)}${e.title.suffix}`,e.existsMessage),qe.log.message(`${e.context.firstLine}\n${e.context.secondLine}${e.context.secondLineNote?` ${St.dim(e.context.secondLineNote)}`:""}`),e.reviewLink){const n=_t(e.reviewLink.text,e.reviewLink.url,{fallback:__name((e,n)=>n,"fallback")});qe.log.info(`${e.reviewLink.prefix}${St.cyan(n)} ${St.dim(e.reviewLink.note)}`)}const n=await qe.select({message:e.selectMessage,options:e.options.map(e=>({value:e.value,label:e.label,hint:e.hint})),initialValue:e.initialValue});handleCancel(n);const o=n;return startStrategySpinner(o),o}async function promptMergeStrategy(e){const{packageName:n,owner:o,localPkg:r,remoteLearningsCount:s}=e;return runConflictPrompt(buildTastePullConflictPrompt({packageName:n,owner:o,localLearningsCount:r.learnings.length,remoteLearningsCount:s}))}async function promptGlobalPushStrategy(e){const{packageName:n,localLearningsCount:o,globalPkg:r}=e;return runConflictPrompt(buildTasteGlobalPushConflictPrompt({packageName:n,localLearningsCount:o,globalLearningsCount:r.learnings.length}))}async function promptGlobalPullStrategy(e){const{packageName:n,localPkg:o,globalLearningsCount:r}=e;return runConflictPrompt(buildTasteGlobalPullConflictPrompt({packageName:n,localLearningsCount:o.learnings.length,globalLearningsCount:r}))}async function promptTypeMismatchStrategy(e){const{packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}=e;return runConflictPrompt(buildTasteTypeMismatchConflictPrompt({packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}))}async function promptSameTypeStrategy(e){const{packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}=e;return runConflictPrompt(buildTasteSameTypeConflictPrompt({packageName:n,owner:o,localLearningsCount:r,remoteLearningsCount:s}))}__name(setActiveSpinner,"setActiveSpinner"),__name(stopActiveSpinner,"stopActiveSpinner"),__name(setPrompted,"setPrompted"),__name(wasPrompted,"wasPrompted"),__name(logResult,"logResult"),__name(buildPullMessage,"buildPullMessage"),__name(logPullSummary,"logPullSummary"),__name(logPullSuccess,"logPullSuccess"),Jt(),hL(),Jt(),hL(),__name(beginPrompt,"beginPrompt"),__name(handleCancel,"handleCancel"),__name(startStrategySpinner,"startStrategySpinner"),__name(runConflictPrompt,"runConflictPrompt"),__name(promptMergeStrategy,"promptMergeStrategy"),__name(promptGlobalPushStrategy,"promptGlobalPushStrategy"),__name(promptGlobalPullStrategy,"promptGlobalPullStrategy"),__name(promptTypeMismatchStrategy,"promptTypeMismatchStrategy"),__name(promptSameTypeStrategy,"promptSameTypeStrategy");var aK=createNodeRuntime(),iK=createTasteLocalStorage({runtime:aK,target:"local-project"}),lK=createTasteLocalStorage({runtime:aK,target:"local-global"});function service(){return createTastePullService({localProject:iK,localGlobal:lK,remote:JV,getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:aK,...e}),"getDestinationPath"),promptGlobalPullStrategy:promptGlobalPullStrategy,promptMergeStrategy:promptMergeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function pull(e){return service().pull(e)}function pullRemote(e){return service().pullRemote(e)}function createPullCommand(){return new Ve("pull").argument("[package]","Taste package name, or owner/package to pull from remote").option("-g, --global","Pull taste package from global storage (~/.commandcode)").addOption(new Ke("--local","Use local server").hideHelp()).option("--remote","Pull taste package from commandcode.ai remote").option("--all","Pull all taste packages from global").option("--overwrite","Replace local package without prompting").option("--skip","Keep local package, skip conflicting pull").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ke("--staging","Use staging environment").hideHelp()).description(`Pull taste packages from remote or global into the project ${St.dim("(prompts on conflicts)")}`).action(withErrorHandler(async(e,n)=>{setPrompted(!1);const o=resolveRemoteDefault(n),{result:r,owner:s}=await runPull({packageName:e,options:o});r.success||handleResultErrors(r.errors),logPullSuccess({result:r,sourceName:o.remote?s??"remote":"global",options:o})}))}async function runPull(e){const{packageName:n,options:o}=e;console.log("");const r=planTastePullCommand({packageName:n,options:o});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-single"===r.route.type?pullRemoteSingle({options:r.options,route:r.route}):pullGlobal({options:r.options,route:r.route})}async function pullRemoteSingle(e){setActiveSpinner(Dt("Pulling taste package").start());const n=await pullRemote({owner:e.route.owner,packageName:e.route.packageName,overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:n,owner:e.route.owner}}async function pullGlobal(e){setActiveSpinner(Dt("Pulling taste package").start());const n=await pull({packages:[...e.route.packages],source:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:n}}function logResult2(e){if(wasPrompted())return qe.outro(e),void setPrompted(!1);console.log(e)}function formatAllLocation(n){return"taste-dir"===n.kind?shortenPath(e.dirname(e.dirname(n.filePath))):n.filePath}function formatDetailPath(e){return e?St.dim(`\n ${shortenPath(e)}`):""}function renderPushSummary(e){const n=wasPrompted()?"":`${vt.tick} `;if("none"!==e.variant)if("all-skipped"!==e.variant)if("all-pushed-remote"!==e.variant){if("all-replaced"===e.variant){const o=e.replacedLabel?` ${St.gray(`(${e.replacedLabel})`)}`:"";return void logResult2(`${St.green(n)}Replaced ${e.packageCountLabel} in ${formatAllLocation(e.location)}${o}`)}if("all-pushed"!==e.variant){if("all-merged"===e.variant){const o=e.mergeParts.length>0?` ${St.gray(`(${e.mergeParts.join(", ")})`)}`:"";return void logResult2(`${St.green(n)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}${o}`)}"single-replaced"!==e.variant?"single-merged"!==e.variant?"single-pushed"!==e.variant?"multi"!==e.variant||logResult2(wrapLine(`${St.green(n)}Pushed ${St.green(e.count)} taste packages ${St.green(`(${e.packages.join(", ")})`)} to ${e.targetName}`)):logResult2(`${St.green(n)}Pushed ${St.green(`'${e.packageName}'`)} taste package to ${e.locationLabel}`+formatDetailPath(e.detailPath)):logResult2(`${St.green(n)}Pushed ${St.green(`'${e.packageName}'`)} taste package to ${e.locationLabel} ${St.gray(`(${e.mergeParts.join(", ")})`)}`+formatDetailPath(e.detailPath)):logResult2(`${St.green(n)}Replaced ${St.green(`'${e.packageName}'`)} taste package in ${e.locationLabel}`+formatDetailPath(e.detailPath))}else logResult2(`${St.green(n)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}`)}else logResult2(`${St.green(n)}Pushed ${e.packageCountLabel} to remote`);else logResult2(`${St.green(n)}Skipped ${e.packageCountLabel}`)}function logPushUrls(e){for(const n of collectTastePushRemoteLinks(e))console.log(St.gray(` ${getPackageLink(n)}`))}function logConflictSummary(e){const n=projectTastePushOutcome(e.result),o=[];n.succeeded.length>0&&o.push(wrapLine(`${St.green("Merged")} (${n.succeeded.length}) ${n.succeeded.join(", ")}`,4)),n.overwritten.length>0&&o.push(wrapLine(`${St.yellow("Overwritten")} (${n.overwritten.length}) ${n.overwritten.join(", ")}`,4)),n.skipped.length>0&&o.push(wrapLine(`${St.dim("Skipped")} (${n.skipped.length}) ${St.dim(n.skipped.join(", "))}`,4)),o.length>0&&qe.log.message(o.join("\n")),qe.outro(n.totalLabel)}function logPushBreakdown(e){const n=projectTastePushOutcome(e);if(0===n.skipped.length&&0===n.overwritten.length)return;const o=[];n.succeeded.length>0&&o.push(wrapLine(`${St.green("Pushed")} (${n.succeeded.length}) ${n.succeeded.join(", ")}`)),n.overwritten.length>0&&o.push(wrapLine(`${St.yellow("Overwritten")} (${n.overwritten.length}) ${n.overwritten.join(", ")}`)),n.skipped.length>0&&o.push(wrapLine(`${St.dim("Skipped")} (${n.skipped.length}) ${St.dim(n.skipped.join(", "))}`)),o.length>0&&console.log(o.join("\n"))}function logPushSuccess(e){const{result:n,options:o}=e;if(wasPrompted())return setPrompted(!1),logConflictSummary({result:n}),void logPushUrls({result:n,options:o});const r=projectTastePushSummary({result:n,options:o});renderPushSummary(r),o.all&&logPushBreakdown(n),logPushUrls({result:n,options:o}),r.showTip&&logMergeReviewTip()}__name(service,"service"),__name(pull,"pull"),__name(pullRemote,"pullRemote"),__name(createPullCommand,"createPullCommand"),__name(runPull,"runPull"),__name(pullRemoteSingle,"pullRemoteSingle"),__name(pullGlobal,"pullGlobal"),Jt(),hL(),Jt(),hL(),__name(logResult2,"logResult"),__name(formatAllLocation,"formatAllLocation"),__name(formatDetailPath,"formatDetailPath"),__name(renderPushSummary,"renderPushSummary"),__name(logPushUrls,"logPushUrls"),__name(logConflictSummary,"logConflictSummary"),__name(logPushBreakdown,"logPushBreakdown"),__name(logPushSuccess,"logPushSuccess"),Jt(),hL();var cK=createNodeRuntime(),dK=createTasteLocalStorage({runtime:cK,target:"local-project"}),uK=createTasteLocalStorage({runtime:cK,target:"local-global"});async function getUserOwner(){try{const e=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});if(e.success&&e.user?.userName)return e.user.userName}catch{}}function service2(){return createTastePushService({localProject:dK,localGlobal:uK,remote:JV,getUserOwner:getUserOwner,getProjectName:__name(()=>e.basename(process.cwd()),"getProjectName"),getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:cK,...e}),"getDestinationPath"),promptGlobalPushStrategy:promptGlobalPushStrategy,promptTypeMismatchStrategy:promptTypeMismatchStrategy,promptSameTypeStrategy:promptSameTypeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function push(e){return service2().push(e)}function pushRemote(e){return service2().pushRemote(e)}async function promptOwnerSelection(e){const{userName:n,orgs:o}=e;if(0===o.length)return n;const{options:r,initialValue:s}=buildTasteOwnerSelectOptions({userName:n,orgs:o}),a=await qe.select({message:"Owner",options:[...r],initialValue:s});return qe.isCancel(a)&&(qe.cancel("Operation cancelled"),process.exit(0)),a}__name(getUserOwner,"getUserOwner"),__name(service2,"service"),__name(push,"push"),__name(pushRemote,"pushRemote"),Jt(),hL(),__name(promptOwnerSelection,"promptOwnerSelection");var mK=createNodeRuntime(),pK=createTasteLocalStorage({runtime:mK,target:"local-project"});function loadUserNamespaces(){return fetchUserNamespaces({client:createApiClient({baseUrl:getApiBaseUrl()})})}function createPushCommand(){return new Ve("push").description(`Push taste packages to remote ${St.dim("(commandcode.ai)")} or global ${St.dim("(~/.commandcode)")}`).argument("[package]","Taste package name to push (omit with --all)").option("--all","Push all taste packages to remote").option("--remote","Push to commandcode.ai remote (default)").option("-g, --global","Push to local global storage (~/.commandcode)").addOption(new Ke("--local","Use local server").hideHelp()).option("--public","Make package publicly discoverable on commandcode.ai").option("--private","Make package private (not publicly discoverable)").option("--owner <owner>","Push under a specific owner or organization").option("--overwrite","Replace existing package without prompting").option("--skip","Keep existing package, skip conflicting push").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ke("--staging","Push to staging environment").hideHelp()).action(withErrorHandler(async(e,n)=>{setPrompted(!1);const o=resolveRemoteDefault(n),r=await runPush({packageName:e,options:o});r.success||handleResultErrors(r.errors),logPushSuccess({result:r,options:o})}))}async function validateOwnerAccess(e){const n=await checkTastePushOwnerAccess({owner:e,loadNamespaces:loadUserNamespaces});"unavailable"!==n.type?"denied"===n.type&&exitWithError(`No push access to '${e}'. Available: ${n.availableOwners.join(", ")}`):dlog(`[Auth] validateOwnerAccess: namespace service unavailable, skipping — ${n.error instanceof Error?n.error.message:String(n.error)}`)}async function resolveOwnerForPush(e){let n;return resolveTastePushOwner({ownerPlan:e,validateOwnerAccess:validateOwnerAccess,hasLocalPackage:__name(async e=>(await pK.getAllPackages()).some(n=>n.category===e),"hasLocalPackage"),loadNamespaces:loadUserNamespaces,prompt:{onPromptStart:__name(({packageName:e})=>{qe.intro(St.dim(`pushing ${e}`)),setPrompted(!0),n=qe.spinner(),n.start("Resolving")},"onPromptStart"),onPackageMissing:__name(({packageName:e})=>{n?.error("Failed"),qe.outro(St.red(`Taste package '${e}' not found in project`)),process.exit(1)},"onPackageMissing"),onNamespacesLoaded:__name(({willPrompt:e})=>{n?.stop(e?"Select owner to push to":"")},"onNamespacesLoaded"),selectOwner:promptOwnerSelection}})}async function runPush(e){const{packageName:n,options:o}=e;console.log("");const r=planTastePushCommand({packageName:n,options:o});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-all"===r.route.type?pushRemoteAll({options:r.options,route:r.route}):"remote-single"===r.route.type?pushRemoteSingle({options:r.options,route:r.route}):pushGlobal({options:r.options,route:r.route})}async function pushRemoteAll(n){n.route.owner&&await validateOwnerAccess(n.route.owner);const o=formatTastePackageCount((await pK.getAllPackages()).length),r=e.basename(process.cwd()),s=resolveTasteStrategyLabel({strategy:n.route.strategy,isRemote:!0});console.log(St.dim(` Pushing ${o} to ${r} (remote)${s}`)),console.log(""),setActiveSpinner(Dt("Pushing taste packages").start());const a=await push({packages:[],target:"remote-project",overwrite:n.options.overwrite,isPublic:n.route.isPublic,strategy:n.route.strategy,owner:n.route.owner});return stopActiveSpinner(),a}async function pushRemoteSingle(e){const{owner:n,packageName:o}=await resolveOwnerForPush(e.route.ownerPlan);startPushSpinner({owner:n,pkgName:o});const r=await pushRemote({owner:n,packageName:o,overwrite:e.options.overwrite,isPublic:e.route.isPublic,strategy:e.route.strategy});return stopActiveSpinner(`Pushed to ${n}/${o}`),r}function startPushSpinner(e){const{owner:n,pkgName:o}=e;if(wasPrompted()){const e=qe.spinner();return e.start(`Pushing to ${n}/${o}`),void setActiveSpinner(e)}setActiveSpinner(Dt("Pushing taste package").start())}async function pushGlobal(e){const n=await pK.getAllPackages(),o=formatTastePackageCount(e.route.packages.length>0?e.route.packages.length:n.length),r=shortenPath(getTastePathForRuntime({runtime:mK,target:"local-global"})),s=resolveTasteStrategyLabel({strategy:e.route.strategy});console.log(St.dim(` Pushing ${o} to ${r}${s}`)),console.log(""),setActiveSpinner(Dt("Pushing taste packages").start());const a=await push({packages:[...e.route.packages],target:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),a}function scopeOf(e){return e.user?"global":"project"}function whereFor(e){return"project"===e?" for this project":" for all your projects"}async function applyTasteLearning(e){await setTasteLearning({tasteLearning:e.enabled,scope:e.scope,..."project"===e.scope?{projectPath:process.cwd()}:{}})}function reportEnabled(e){console.log(`${St.green(vt.tick)} Taste learning is on${whereFor(e)}. New preferences are saved and reused across sessions.`)}function reportDisabled(e){const n=getBinaryCommand();console.log(`${St.green(vt.tick)} Taste learning is off${whereFor(e)}. Turn it back on with ${St.cyan(`${n} taste enable`)}.`)}function createEnableCommand(){return new Ve("enable").option("-u, --user","Apply at the user level (all your projects)").description("Turn on taste learning (save preferences across sessions)").action(withErrorHandler(async e=>{const n=scopeOf(e);await applyTasteLearning({enabled:!0,scope:n}),console.log(""),reportEnabled(n)}))}function createDisableCommand(){return new Ve("disable").option("-u, --user","Apply at the user level (all your projects)").description("Turn off taste learning (stop saving preferences)").action(withErrorHandler(async e=>{const n=scopeOf(e);await applyTasteLearning({enabled:!1,scope:n}),console.log(""),reportDisabled(n)}))}function createTasteCommand(){const e=new Ve("taste");return e.description("Manage taste learning packages").allowUnknownOption().allowExcessArguments(),e.addCommand(createEnableCommand()),e.addCommand(createDisableCommand()),e.addCommand(createPushCommand()),e.addCommand(createPullCommand()),e.addCommand(createListCommand()),e.addCommand(createLintCommand()),e.addCommand(createOpenCommand()),isExperimentalEnabled()&&e.addCommand(createLearnCommand()),e}__name(loadUserNamespaces,"loadUserNamespaces"),__name(createPushCommand,"createPushCommand"),__name(validateOwnerAccess,"validateOwnerAccess"),__name(resolveOwnerForPush,"resolveOwnerForPush"),__name(runPush,"runPush"),__name(pushRemoteAll,"pushRemoteAll"),__name(pushRemoteSingle,"pushRemoteSingle"),__name(startPushSpinner,"startPushSpinner"),__name(pushGlobal,"pushGlobal"),Jt(),hL(),__name(scopeOf,"scopeOf"),__name(whereFor,"whereFor"),__name(applyTasteLearning,"applyTasteLearning"),__name(reportEnabled,"reportEnabled"),__name(reportDisabled,"reportDisabled"),__name(createEnableCommand,"createEnableCommand"),__name(createDisableCommand,"createDisableCommand"),__name(createTasteCommand,"createTasteCommand"),Jt(),hL();var gK=`${getBinaryCommand()}`;function formatVersion(e,n,o=!1){const r=o?It.bold(It.green(n)):It.white(n);return`${It.dim(e)} ${r}`}function showVersionDetails(e){for(const n of e.versionLines)console.log(formatVersion(n.label,n.version,n.highlight));console.log("");for(const n of e.detailLines)console.log(n.replace(`${gK} update`,It.bold(It.green(`${gK} update`))))}function showUpdateSuccessHint(e){for(const n of e.detailLines)console.log(It.dim(n.replace(gK,It.cyan(gK))))}function showManualUpdateHint(e){const[n,o]=e.manualUpdateLines;n&&console.log(It.dim(n)),o&&console.log(It.cyan(o))}function showCheckFailure(e){for(const n of e.detailLines)console.log(It.dim(n))}function renderUpdateEvent(e,n){if("type"in e)"updating"===e.type&&(n.text=e.text.replace("→",vt.arrowRight));else{if("check-failed"===e.kind)return n.fail(e.outcome.spinnerMessage),void showCheckFailure(e.outcome);if("up-to-date"!==e.kind)return"update-available"===e.kind?(n.stop(),console.log(""),console.log(`${It.green(vt.tick)} ${e.outcome.heading}`),void showVersionDetails(e.outcome)):"update-failed"===e.kind?(n.fail(e.outcome.spinnerMessage),void showManualUpdateHint(e.outcome)):"updated"===e.kind?(n.succeed(e.outcome.spinnerMessage),void showUpdateSuccessHint(e.outcome)):void 0;n.succeed(e.outcome.spinnerMessage)}}async function updateAction2(e){const n=Dt("Checking for updates...").start(),o=await runCliUpdateCommand({checkOnly:e.checkOnly,host:lG,copy:{binCommand:gK,updateCommand:"npm i -g command-code"},emit:__name(e=>renderUpdateEvent(e,n),"emit")});if("update-failed"===o.kind){const{failureReason:e}=o.outcome.telemetry;trackError({error:sanitizeErrorForTelemetry({error:new Error(e?`Update failed: ${e}`:"Update failed"),label:"cli_update_failed"}),context:{component:Rs.UPDATE_COMMAND,heading:o.outcome.telemetry.heading,"update.current_version":o.outcome.telemetry.currentVersion,"update.target_version":o.outcome.telemetry.targetVersion,...e&&{"update.failure_reason":e}}}),await shutdownTelemetry(),process.exit(1)}}__name(formatVersion,"formatVersion"),__name(showVersionDetails,"showVersionDetails"),__name(showUpdateSuccessHint,"showUpdateSuccessHint"),__name(showManualUpdateHint,"showManualUpdateHint"),__name(showCheckFailure,"showCheckFailure"),__name(renderUpdateEvent,"renderUpdateEvent"),__name(updateAction2,"updateAction");var hK=new Ve("update").description("Update Command Code to the latest version").option("--check-only","Check for updates without installing").allowUnknownOption().allowExcessArguments().action(updateAction2);function getAuthKey9(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}Jt(),hL(),__name(getAuthKey9,"getAuthKey");var fK=__name((e,n)=>`${vt.info} ${e}: ${It.cyan(n)}`,"formatInfoLine"),yK=__name(e=>It.bold(`${e}:`),"formatSectionHeader"),vK=__name(e=>It.red(e),"formatError"),SK=__name(e=>e instanceof Error?e.message:"Unknown error","formatErrorMessage"),wK=__name((e,n)=>["",yK(e),...n.map(e=>fK(e.label,e.value))],"buildSection"),kK=__name(e=>wK("User Information",projectWhoamiUserRows(e)),"buildUserOutput"),CK=__name(e=>wK("Organization",projectWhoamiOrgRows(e)),"buildOrgOutput"),bK=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),TK=__name((e,n)=>{bK(kK(e)),n&&bK(CK(n)),console.log("")},"displayUserInfo");async function whoamiAction(){const e=Dt("Fetching user information...").start();try{hasCommandApiKey(await getAuthKey9())||(e.fail(vK(ws)),process.exit(1));const n=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});isAuthenticatedEntityLoaded(n)||(e.fail(vK(ks)),process.exit(1)),e.succeed("User information loaded"),TK(n.user,n.org)}catch(n){e.fail(vK(`Error: ${SK(n)}`)),process.exit(1)}}__name(whoamiAction,"whoamiAction");var EK=new Ve("whoami").description("Display current user information").allowUnknownOption().allowExcessArguments().action(whoamiAction);handleUnhandledErrors(),setVscodeIpcLogger(dlog),setupTelemetry(),registerBundledRipgrep(),setImmediate(()=>{const e=getTelemetryEnv();recordCliFingerprintInBackground({getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),baseUrl:getApiBaseUrl(),cliEnvironment:normalizeCliEnvironment(e),cliVersion:getPackageJson(import.meta.url).version??"unknown",cmdZdr:"1"===process.env.CMD_ZDR})}),await preRun();var PK=createProgram();PK.action(interactiveModeAction),PK.addCommand(MF),PK.addCommand(_F),PK.addCommand(EK),PK.addCommand(hK),PK.addCommand(PF),PK.addCommand(EF),PK.addCommand(createTasteCommand()),PK.addCommand(createMcpCommand()),PK.addCommand(d_),PK.addCommand(wF),PK.addCommand(pF),PK.addCommand(SF),PK.addCommand(vV),PK.addCommand(DV),PK.addCommand(C_),PK.addCommand(createAcpCommand()),PK.addCommand(createSandboxCommand()),addRootModeOptions(PK),setupCommanderHooks(PK),PK.parse();