SYMBOL INDEX (15223 symbols across 1804 files) FILE: extract-sources.js function extractSources (line 5) | async function extractSources() { FILE: package/sdk-tools.d.ts type ToolInputSchemas (line 11) | type ToolInputSchemas = type ToolOutputSchemas (line 34) | type ToolOutputSchemas = type AgentOutput (line 55) | type AgentOutput = type FileReadOutput (line 107) | type FileReadOutput = type ListMcpResourcesOutput (line 231) | type ListMcpResourcesOutput = { type McpOutput (line 256) | type McpOutput = string; type AgentInput (line 258) | interface AgentInput { type BashInput (line 296) | interface BashInput { type TaskOutputInput (line 328) | interface TaskOutputInput { type ExitPlanModeInput (line 342) | interface ExitPlanModeInput { type FileEditInput (line 358) | interface FileEditInput { type FileReadInput (line 376) | interface FileReadInput { type FileWriteInput (line 394) | interface FileWriteInput { type GlobInput (line 404) | interface GlobInput { type GrepInput (line 414) | interface GrepInput { type TaskStopInput (line 472) | interface TaskStopInput { type ListMcpResourcesInput (line 482) | interface ListMcpResourcesInput { type McpInput (line 488) | interface McpInput { type NotebookEditInput (line 491) | interface NotebookEditInput { type ReadMcpResourceInput (line 513) | interface ReadMcpResourceInput { type TodoWriteInput (line 523) | interface TodoWriteInput { type WebFetchInput (line 533) | interface WebFetchInput { type WebSearchInput (line 543) | interface WebSearchInput { type AskUserQuestionInput (line 557) | interface AskUserQuestionInput { type ConfigInput (line 2134) | interface ConfigInput { type EnterWorktreeInput (line 2144) | interface EnterWorktreeInput { type ExitWorktreeInput (line 2150) | interface ExitWorktreeInput { type BashOutput (line 2160) | interface BashOutput { type ExitPlanModeOutput (line 2218) | interface ExitPlanModeOutput { type FileEditOutput (line 2245) | interface FileEditOutput { type FileWriteOutput (line 2293) | interface FileWriteOutput { type GlobOutput (line 2333) | interface GlobOutput { type GrepOutput (line 2351) | interface GrepOutput { type TaskStopOutput (line 2361) | interface TaskStopOutput { type NotebookEditOutput (line 2379) | interface NotebookEditOutput { type ReadMcpResourceOutput (line 2417) | interface ReadMcpResourceOutput { type TodoWriteOutput (line 2437) | interface TodoWriteOutput { type WebFetchOutput (line 2456) | interface WebFetchOutput { type WebSearchOutput (line 2482) | interface WebSearchOutput { type AskUserQuestionOutput (line 2517) | interface AskUserQuestionOutput { type ConfigOutput (line 2696) | interface ConfigOutput { type EnterWorktreeOutput (line 2705) | interface EnterWorktreeOutput { type ExitWorktreeOutput (line 2710) | interface ExitWorktreeOutput { FILE: restored-src/src/QueryEngine.ts type QueryEngineConfig (line 130) | type QueryEngineConfig = { class QueryEngine (line 184) | class QueryEngine { method constructor (line 200) | constructor(config: QueryEngineConfig) { method submitMessage (line 209) | async *submitMessage( method interrupt (line 1158) | interrupt(): void { method getMessages (line 1162) | getMessages(): readonly Message[] { method getReadFileState (line 1166) | getReadFileState(): FileStateCache { method getSessionId (line 1170) | getSessionId(): string { method setModel (line 1174) | setModel(model: string): void { FILE: restored-src/src/Task.ts type TaskType (line 6) | type TaskType = type TaskStatus (line 15) | type TaskStatus = function isTerminalTaskStatus (line 27) | function isTerminalTaskStatus(status: TaskStatus): boolean { type TaskHandle (line 31) | type TaskHandle = { type SetAppState (line 36) | type SetAppState = (f: (prev: AppState) => AppState) => void type TaskContext (line 38) | type TaskContext = { type TaskStateBase (line 45) | type TaskStateBase = { type LocalShellSpawnInput (line 59) | type LocalShellSpawnInput = { type Task (line 72) | type Task = { constant TASK_ID_PREFIXES (line 79) | const TASK_ID_PREFIXES: Record = { function getTaskIdPrefix (line 90) | function getTaskIdPrefix(type: TaskType): string { constant TASK_ID_ALPHABET (line 96) | const TASK_ID_ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz' function generateTaskId (line 98) | function generateTaskId(type: TaskType): string { function createTaskStateBase (line 108) | function createTaskStateBase( FILE: restored-src/src/Tool.ts type ToolInputJSONSchema (line 15) | type ToolInputJSONSchema = { type QueryChainTracking (line 90) | type QueryChainTracking = { type ValidationResult (line 95) | type ValidationResult = type SetToolJSXFn (line 103) | type SetToolJSXFn = ( type ToolPermissionContext (line 123) | type ToolPermissionContext = DeepImmutable<{ type CompactProgressEvent (line 150) | type CompactProgressEvent = type ToolUseContext (line 158) | type ToolUseContext = { type Progress (line 305) | type Progress = ToolProgressData | HookProgress type ToolProgress (line 307) | type ToolProgress

= { function filterToolProgressMessages (line 312) | function filterToolProgressMessages( type ToolResult (line 321) | type ToolResult = { type ToolCallProgress (line 338) | type ToolCallProgress

= ( type AnyObject (line 343) | type AnyObject = z.ZodType<{ [key: string]: unknown }> function toolMatchesName (line 348) | function toolMatchesName( function findToolByName (line 358) | function findToolByName(tools: Tools, name: string): Tool | undefined { type Tool (line 362) | type Tool< type Tools (line 701) | type Tools = readonly Tool[] type DefaultableToolKeys (line 707) | type DefaultableToolKeys = type ToolDef (line 721) | type ToolDef< type BuiltTool (line 735) | type BuiltTool = Omit & { constant TOOL_DEFAULTS (line 757) | const TOOL_DEFAULTS = { type ToolDefaults (line 774) | type ToolDefaults = typeof TOOL_DEFAULTS type AnyToolDef (line 781) | type AnyToolDef = ToolDef function buildTool (line 783) | function buildTool(def: D): BuiltTool { FILE: restored-src/src/assistant/sessionHistory.ts constant HISTORY_PAGE_SIZE (line 7) | const HISTORY_PAGE_SIZE = 100 type HistoryPage (line 9) | type HistoryPage = { type SessionEventsResponse (line 18) | type SessionEventsResponse = { type HistoryAuthCtx (line 25) | type HistoryAuthCtx = { function createHistoryAuthCtx (line 31) | async function createHistoryAuthCtx( function fetchPage (line 45) | async function fetchPage( function fetchLatestEvents (line 73) | async function fetchLatestEvents( function fetchOlderEvents (line 81) | async function fetchOlderEvents( FILE: restored-src/src/bootstrap/state.ts type RegisteredHookMatcher (line 27) | type RegisteredHookMatcher = HookCallbackMatcher | PluginHookMatcher type ChannelEntry (line 37) | type ChannelEntry = type AttributedCounter (line 41) | type AttributedCounter = { type State (line 45) | type State = { function getInitialState (line 260) | function getInitialState(): State { constant STATE (line 429) | const STATE: State = getInitialState() function getSessionId (line 431) | function getSessionId(): SessionId { function regenerateSessionId (line 435) | function regenerateSessionId( function getParentSessionId (line 452) | function getParentSessionId(): SessionId | undefined { function switchSession (line 468) | function switchSession( function getSessionProjectDir (line 496) | function getSessionProjectDir(): string | null { function getOriginalCwd (line 500) | function getOriginalCwd(): string { function getProjectRoot (line 511) | function getProjectRoot(): string { function setOriginalCwd (line 515) | function setOriginalCwd(cwd: string): void { function setProjectRoot (line 523) | function setProjectRoot(cwd: string): void { function getCwdState (line 527) | function getCwdState(): string { function setCwdState (line 531) | function setCwdState(cwd: string): void { function getDirectConnectServerUrl (line 535) | function getDirectConnectServerUrl(): string | undefined { function setDirectConnectServerUrl (line 539) | function setDirectConnectServerUrl(url: string): void { function addToTotalDurationState (line 543) | function addToTotalDurationState( function resetTotalDurationStateAndCost_FOR_TESTS_ONLY (line 551) | function resetTotalDurationStateAndCost_FOR_TESTS_ONLY(): void { function addToTotalCostState (line 557) | function addToTotalCostState( function getTotalCostUSD (line 566) | function getTotalCostUSD(): number { function getTotalAPIDuration (line 570) | function getTotalAPIDuration(): number { function getTotalDuration (line 574) | function getTotalDuration(): number { function getTotalAPIDurationWithoutRetries (line 578) | function getTotalAPIDurationWithoutRetries(): number { function getTotalToolDuration (line 582) | function getTotalToolDuration(): number { function addToToolDuration (line 586) | function addToToolDuration(duration: number): void { function getTurnHookDurationMs (line 592) | function getTurnHookDurationMs(): number { function addToTurnHookDuration (line 596) | function addToTurnHookDuration(duration: number): void { function resetTurnHookDuration (line 601) | function resetTurnHookDuration(): void { function getTurnHookCount (line 606) | function getTurnHookCount(): number { function getTurnToolDurationMs (line 610) | function getTurnToolDurationMs(): number { function resetTurnToolDuration (line 614) | function resetTurnToolDuration(): void { function getTurnToolCount (line 619) | function getTurnToolCount(): number { function getTurnClassifierDurationMs (line 623) | function getTurnClassifierDurationMs(): number { function addToTurnClassifierDuration (line 627) | function addToTurnClassifierDuration(duration: number): void { function resetTurnClassifierDuration (line 632) | function resetTurnClassifierDuration(): void { function getTurnClassifierCount (line 637) | function getTurnClassifierCount(): number { function getStatsStore (line 641) | function getStatsStore(): { function setStatsStore (line 647) | function setStatsStore( function updateLastInteractionTime (line 667) | function updateLastInteractionTime(immediate?: boolean): void { function flushInteractionTime (line 680) | function flushInteractionTime(): void { function flushInteractionTime_inner (line 686) | function flushInteractionTime_inner(): void { function addToTotalLinesChanged (line 691) | function addToTotalLinesChanged(added: number, removed: number): void { function getTotalLinesAdded (line 696) | function getTotalLinesAdded(): number { function getTotalLinesRemoved (line 700) | function getTotalLinesRemoved(): number { function getTotalInputTokens (line 704) | function getTotalInputTokens(): number { function getTotalOutputTokens (line 708) | function getTotalOutputTokens(): number { function getTotalCacheReadInputTokens (line 712) | function getTotalCacheReadInputTokens(): number { function getTotalCacheCreationInputTokens (line 716) | function getTotalCacheCreationInputTokens(): number { function getTotalWebSearchRequests (line 720) | function getTotalWebSearchRequests(): number { function getTurnOutputTokens (line 726) | function getTurnOutputTokens(): number { function getCurrentTurnTokenBudget (line 729) | function getCurrentTurnTokenBudget(): number | null { function snapshotOutputTokensForTurn (line 733) | function snapshotOutputTokensForTurn(budget: number | null): void { function getBudgetContinuationCount (line 738) | function getBudgetContinuationCount(): number { function incrementBudgetContinuationCount (line 741) | function incrementBudgetContinuationCount(): void { function setHasUnknownModelCost (line 745) | function setHasUnknownModelCost(): void { function hasUnknownModelCost (line 749) | function hasUnknownModelCost(): boolean { function getLastMainRequestId (line 753) | function getLastMainRequestId(): string | undefined { function setLastMainRequestId (line 757) | function setLastMainRequestId(requestId: string): void { function getLastApiCompletionTimestamp (line 761) | function getLastApiCompletionTimestamp(): number | null { function setLastApiCompletionTimestamp (line 765) | function setLastApiCompletionTimestamp(timestamp: number): void { function markPostCompaction (line 771) | function markPostCompaction(): void { function consumePostCompaction (line 777) | function consumePostCompaction(): boolean { function getLastInteractionTime (line 783) | function getLastInteractionTime(): number { constant SCROLL_DRAIN_IDLE_MS (line 794) | const SCROLL_DRAIN_IDLE_MS = 150 function markScrollActivity (line 798) | function markScrollActivity(): void { function getIsScrollDraining (line 811) | function getIsScrollDraining(): boolean { function waitForScrollIdle (line 818) | async function waitForScrollIdle(): Promise { function getModelUsage (line 826) | function getModelUsage(): { [modelName: string]: ModelUsage } { function getUsageForModel (line 830) | function getUsageForModel(model: string): ModelUsage | undefined { function getMainLoopModelOverride (line 838) | function getMainLoopModelOverride(): ModelSetting | undefined { function getInitialMainLoopModel (line 842) | function getInitialMainLoopModel(): ModelSetting { function setMainLoopModelOverride (line 846) | function setMainLoopModelOverride( function setInitialMainLoopModel (line 852) | function setInitialMainLoopModel(model: ModelSetting): void { function getSdkBetas (line 856) | function getSdkBetas(): string[] | undefined { function setSdkBetas (line 860) | function setSdkBetas(betas: string[] | undefined): void { function resetCostState (line 864) | function resetCostState(): void { function setCostStateForRestore (line 881) | function setCostStateForRestore({ function resetStateForTests (line 919) | function resetStateForTests(): void { function getModelStrings (line 933) | function getModelStrings(): ModelStrings | null { function setModelStrings (line 938) | function setModelStrings(modelStrings: ModelStrings): void { function resetModelStringsForTestingOnly (line 944) | function resetModelStringsForTestingOnly() { function setMeter (line 948) | function setMeter( function getMeter (line 989) | function getMeter(): Meter | null { function getSessionCounter (line 993) | function getSessionCounter(): AttributedCounter | null { function getLocCounter (line 997) | function getLocCounter(): AttributedCounter | null { function getPrCounter (line 1001) | function getPrCounter(): AttributedCounter | null { function getCommitCounter (line 1005) | function getCommitCounter(): AttributedCounter | null { function getCostCounter (line 1009) | function getCostCounter(): AttributedCounter | null { function getTokenCounter (line 1013) | function getTokenCounter(): AttributedCounter | null { function getCodeEditToolDecisionCounter (line 1017) | function getCodeEditToolDecisionCounter(): AttributedCounter | null { function getActiveTimeCounter (line 1021) | function getActiveTimeCounter(): AttributedCounter | null { function getLoggerProvider (line 1025) | function getLoggerProvider(): LoggerProvider | null { function setLoggerProvider (line 1029) | function setLoggerProvider(provider: LoggerProvider | null): void { function getEventLogger (line 1033) | function getEventLogger(): ReturnType | null { function setEventLogger (line 1037) | function setEventLogger( function getMeterProvider (line 1043) | function getMeterProvider(): MeterProvider | null { function setMeterProvider (line 1047) | function setMeterProvider(provider: MeterProvider | null): void { function getTracerProvider (line 1050) | function getTracerProvider(): BasicTracerProvider | null { function setTracerProvider (line 1053) | function setTracerProvider(provider: BasicTracerProvider | null): void { function getIsNonInteractiveSession (line 1057) | function getIsNonInteractiveSession(): boolean { function getIsInteractive (line 1061) | function getIsInteractive(): boolean { function setIsInteractive (line 1065) | function setIsInteractive(value: boolean): void { function getClientType (line 1069) | function getClientType(): string { function setClientType (line 1073) | function setClientType(type: string): void { function getSdkAgentProgressSummariesEnabled (line 1077) | function getSdkAgentProgressSummariesEnabled(): boolean { function setSdkAgentProgressSummariesEnabled (line 1081) | function setSdkAgentProgressSummariesEnabled(value: boolean): void { function getKairosActive (line 1085) | function getKairosActive(): boolean { function setKairosActive (line 1089) | function setKairosActive(value: boolean): void { function getStrictToolResultPairing (line 1093) | function getStrictToolResultPairing(): boolean { function setStrictToolResultPairing (line 1097) | function setStrictToolResultPairing(value: boolean): void { function getUserMsgOptIn (line 1104) | function getUserMsgOptIn(): boolean { function setUserMsgOptIn (line 1108) | function setUserMsgOptIn(value: boolean): void { function getSessionSource (line 1112) | function getSessionSource(): string | undefined { function setSessionSource (line 1116) | function setSessionSource(source: string): void { function getQuestionPreviewFormat (line 1120) | function getQuestionPreviewFormat(): 'markdown' | 'html' | undefined { function setQuestionPreviewFormat (line 1124) | function setQuestionPreviewFormat(format: 'markdown' | 'html'): void { function getAgentColorMap (line 1128) | function getAgentColorMap(): Map { function getFlagSettingsPath (line 1132) | function getFlagSettingsPath(): string | undefined { function setFlagSettingsPath (line 1136) | function setFlagSettingsPath(path: string | undefined): void { function getFlagSettingsInline (line 1140) | function getFlagSettingsInline(): Record | null { function setFlagSettingsInline (line 1144) | function setFlagSettingsInline( function getSessionIngressToken (line 1150) | function getSessionIngressToken(): string | null | undefined { function setSessionIngressToken (line 1154) | function setSessionIngressToken(token: string | null): void { function getOauthTokenFromFd (line 1158) | function getOauthTokenFromFd(): string | null | undefined { function setOauthTokenFromFd (line 1162) | function setOauthTokenFromFd(token: string | null): void { function getApiKeyFromFd (line 1166) | function getApiKeyFromFd(): string | null | undefined { function setApiKeyFromFd (line 1170) | function setApiKeyFromFd(key: string | null): void { function setLastAPIRequest (line 1174) | function setLastAPIRequest( function getLastAPIRequest (line 1180) | function getLastAPIRequest(): Omit< function setLastAPIRequestMessages (line 1187) | function setLastAPIRequestMessages( function getLastAPIRequestMessages (line 1193) | function getLastAPIRequestMessages(): function setLastClassifierRequests (line 1199) | function setLastClassifierRequests(requests: unknown[] | null): void { function getLastClassifierRequests (line 1203) | function getLastClassifierRequests(): unknown[] | null { function setCachedClaudeMdContent (line 1207) | function setCachedClaudeMdContent(content: string | null): void { function getCachedClaudeMdContent (line 1211) | function getCachedClaudeMdContent(): string | null { function addToInMemoryErrorLog (line 1215) | function addToInMemoryErrorLog(errorInfo: { function getAllowedSettingSources (line 1226) | function getAllowedSettingSources(): SettingSource[] { function setAllowedSettingSources (line 1230) | function setAllowedSettingSources(sources: SettingSource[]): void { function preferThirdPartyAuthentication (line 1234) | function preferThirdPartyAuthentication(): boolean { function setInlinePlugins (line 1239) | function setInlinePlugins(plugins: Array): void { function getInlinePlugins (line 1243) | function getInlinePlugins(): Array { function setChromeFlagOverride (line 1247) | function setChromeFlagOverride(value: boolean | undefined): void { function getChromeFlagOverride (line 1251) | function getChromeFlagOverride(): boolean | undefined { function setUseCoworkPlugins (line 1255) | function setUseCoworkPlugins(value: boolean): void { function getUseCoworkPlugins (line 1260) | function getUseCoworkPlugins(): boolean { function setSessionBypassPermissionsMode (line 1264) | function setSessionBypassPermissionsMode(enabled: boolean): void { function getSessionBypassPermissionsMode (line 1268) | function getSessionBypassPermissionsMode(): boolean { function setScheduledTasksEnabled (line 1272) | function setScheduledTasksEnabled(enabled: boolean): void { function getScheduledTasksEnabled (line 1276) | function getScheduledTasksEnabled(): boolean { type SessionCronTask (line 1280) | type SessionCronTask = { function getSessionCronTasks (line 1294) | function getSessionCronTasks(): SessionCronTask[] { function addSessionCronTask (line 1298) | function addSessionCronTask(task: SessionCronTask): void { function removeSessionCronTasks (line 1307) | function removeSessionCronTasks(ids: readonly string[]): number { function setSessionTrustAccepted (line 1317) | function setSessionTrustAccepted(accepted: boolean): void { function getSessionTrustAccepted (line 1321) | function getSessionTrustAccepted(): boolean { function setSessionPersistenceDisabled (line 1325) | function setSessionPersistenceDisabled(disabled: boolean): void { function isSessionPersistenceDisabled (line 1329) | function isSessionPersistenceDisabled(): boolean { function hasExitedPlanModeInSession (line 1333) | function hasExitedPlanModeInSession(): boolean { function setHasExitedPlanMode (line 1337) | function setHasExitedPlanMode(value: boolean): void { function needsPlanModeExitAttachment (line 1341) | function needsPlanModeExitAttachment(): boolean { function setNeedsPlanModeExitAttachment (line 1345) | function setNeedsPlanModeExitAttachment(value: boolean): void { function handlePlanModeTransition (line 1349) | function handlePlanModeTransition( function needsAutoModeExitAttachment (line 1365) | function needsAutoModeExitAttachment(): boolean { function setNeedsAutoModeExitAttachment (line 1369) | function setNeedsAutoModeExitAttachment(value: boolean): void { function handleAutoModeTransition (line 1373) | function handleAutoModeTransition( function hasShownLspRecommendationThisSession (line 1402) | function hasShownLspRecommendationThisSession(): boolean { function setLspRecommendationShownThisSession (line 1406) | function setLspRecommendationShownThisSession(value: boolean): void { function setInitJsonSchema (line 1411) | function setInitJsonSchema(schema: Record): void { function getInitJsonSchema (line 1415) | function getInitJsonSchema(): Record | null { function registerHookCallbacks (line 1419) | function registerHookCallbacks( function getRegisteredHooks (line 1436) | function getRegisteredHooks(): Partial< function clearRegisteredHooks (line 1442) | function clearRegisteredHooks(): void { function clearRegisteredPluginHooks (line 1446) | function clearRegisteredPluginHooks(): void { function resetSdkInitState (line 1463) | function resetSdkInitState(): void { function getPlanSlugCache (line 1468) | function getPlanSlugCache(): Map { function getSessionCreatedTeams (line 1472) | function getSessionCreatedTeams(): Set { function setTeleportedSessionInfo (line 1477) | function setTeleportedSessionInfo(info: { function getTeleportedSessionInfo (line 1487) | function getTeleportedSessionInfo(): { function markFirstTeleportMessageLogged (line 1495) | function markFirstTeleportMessageLogged(): void { type InvokedSkillInfo (line 1502) | type InvokedSkillInfo = { function addInvokedSkill (line 1510) | function addInvokedSkill( function getInvokedSkills (line 1526) | function getInvokedSkills(): Map { function getInvokedSkillsForAgent (line 1530) | function getInvokedSkillsForAgent( function clearInvokedSkills (line 1543) | function clearInvokedSkills( function clearInvokedSkillsForAgent (line 1557) | function clearInvokedSkillsForAgent(agentId: string): void { constant MAX_SLOW_OPERATIONS (line 1566) | const MAX_SLOW_OPERATIONS = 10 constant SLOW_OPERATION_TTL_MS (line 1567) | const SLOW_OPERATION_TTL_MS = 10000 function addSlowOperation (line 1569) | function addSlowOperation(operation: string, durationMs: number): void { constant EMPTY_SLOW_OPERATIONS (line 1589) | const EMPTY_SLOW_OPERATIONS: ReadonlyArray<{ function getSlowOperations (line 1595) | function getSlowOperations(): ReadonlyArray<{ function getMainThreadAgentType (line 1623) | function getMainThreadAgentType(): string | undefined { function setMainThreadAgentType (line 1627) | function setMainThreadAgentType(agentType: string | undefined): void { function getIsRemoteMode (line 1631) | function getIsRemoteMode(): boolean { function setIsRemoteMode (line 1635) | function setIsRemoteMode(value: boolean): void { function getSystemPromptSectionCache (line 1641) | function getSystemPromptSectionCache(): Map { function setSystemPromptSectionCacheEntry (line 1645) | function setSystemPromptSectionCacheEntry( function clearSystemPromptSectionState (line 1652) | function clearSystemPromptSectionState(): void { function getLastEmittedDate (line 1658) | function getLastEmittedDate(): string | null { function setLastEmittedDate (line 1662) | function setLastEmittedDate(date: string | null): void { function getAdditionalDirectoriesForClaudeMd (line 1666) | function getAdditionalDirectoriesForClaudeMd(): string[] { function setAdditionalDirectoriesForClaudeMd (line 1670) | function setAdditionalDirectoriesForClaudeMd( function getAllowedChannels (line 1676) | function getAllowedChannels(): ChannelEntry[] { function setAllowedChannels (line 1680) | function setAllowedChannels(entries: ChannelEntry[]): void { function getHasDevChannels (line 1684) | function getHasDevChannels(): boolean { function setHasDevChannels (line 1688) | function setHasDevChannels(value: boolean): void { function getPromptCache1hAllowlist (line 1692) | function getPromptCache1hAllowlist(): string[] | null { function setPromptCache1hAllowlist (line 1696) | function setPromptCache1hAllowlist(allowlist: string[] | null): void { function getPromptCache1hEligible (line 1700) | function getPromptCache1hEligible(): boolean | null { function setPromptCache1hEligible (line 1704) | function setPromptCache1hEligible(eligible: boolean | null): void { function getAfkModeHeaderLatched (line 1708) | function getAfkModeHeaderLatched(): boolean | null { function setAfkModeHeaderLatched (line 1712) | function setAfkModeHeaderLatched(v: boolean): void { function getFastModeHeaderLatched (line 1716) | function getFastModeHeaderLatched(): boolean | null { function setFastModeHeaderLatched (line 1720) | function setFastModeHeaderLatched(v: boolean): void { function getCacheEditingHeaderLatched (line 1724) | function getCacheEditingHeaderLatched(): boolean | null { function setCacheEditingHeaderLatched (line 1728) | function setCacheEditingHeaderLatched(v: boolean): void { function getThinkingClearLatched (line 1732) | function getThinkingClearLatched(): boolean | null { function setThinkingClearLatched (line 1736) | function setThinkingClearLatched(v: boolean): void { function clearBetaHeaderLatches (line 1744) | function clearBetaHeaderLatches(): void { function getPromptId (line 1751) | function getPromptId(): string | null { function setPromptId (line 1755) | function setPromptId(id: string | null): void { FILE: restored-src/src/bridge/bridgeApi.ts type BridgeApiDeps (line 12) | type BridgeApiDeps = { constant BETA_HEADER (line 38) | const BETA_HEADER = 'environments-2025-11-01' constant SAFE_ID_PATTERN (line 41) | const SAFE_ID_PATTERN = /^[a-zA-Z0-9_-]+$/ function validateBridgeId (line 48) | function validateBridgeId(id: string, label: string): string { class BridgeFatalError (line 56) | class BridgeFatalError extends Error { method constructor (line 60) | constructor(message: string, status: number, errorType?: string) { function createBridgeApiClient (line 68) | function createBridgeApiClient(deps: BridgeApiDeps): BridgeApiClient { function handleErrorStatus (line 454) | function handleErrorStatus( function isExpiredErrorType (line 503) | function isExpiredErrorType(errorType: string | undefined): boolean { function isSuppressible403 (line 516) | function isSuppressible403(err: BridgeFatalError): boolean { function extractErrorTypeFromData (line 526) | function extractErrorTypeFromData(data: unknown): string | undefined { FILE: restored-src/src/bridge/bridgeConfig.ts function getBridgeTokenOverride (line 18) | function getBridgeTokenOverride(): string | undefined { function getBridgeBaseUrlOverride (line 27) | function getBridgeBaseUrlOverride(): string | undefined { function getBridgeAccessToken (line 38) | function getBridgeAccessToken(): string | undefined { function getBridgeBaseUrl (line 46) | function getBridgeBaseUrl(): string { FILE: restored-src/src/bridge/bridgeDebug.ts type BridgeFault (line 22) | type BridgeFault = { type BridgeDebugHandle (line 38) | type BridgeDebugHandle = { function registerBridgeDebugHandle (line 57) | function registerBridgeDebugHandle(h: BridgeDebugHandle): void { function clearBridgeDebugHandle (line 61) | function clearBridgeDebugHandle(): void { function getBridgeDebugHandle (line 66) | function getBridgeDebugHandle(): BridgeDebugHandle | null { function injectBridgeFault (line 70) | function injectBridgeFault(fault: BridgeFault): void { function wrapApiForFaultInjection (line 84) | function wrapApiForFaultInjection( FILE: restored-src/src/bridge/bridgeEnabled.ts function isBridgeEnabled (line 28) | function isBridgeEnabled(): boolean { function isBridgeEnabledBlocking (line 50) | async function isBridgeEnabledBlocking(): Promise { function getBridgeDisabledReason (line 70) | async function getBridgeDisabledReason(): Promise { function isClaudeAISubscriber (line 94) | function isClaudeAISubscriber(): boolean { function hasProfileScope (line 101) | function hasProfileScope(): boolean { function getOauthAccountInfo (line 108) | function getOauthAccountInfo(): ReturnType< function isEnvLessBridgeEnabled (line 126) | function isEnvLessBridgeEnabled(): boolean { function isCseShimEnabled (line 141) | function isCseShimEnabled(): boolean { function checkBridgeMinVersion (line 160) | function checkBridgeMinVersion(): string | null { function getCcrAutoConnectDefault (line 185) | function getCcrAutoConnectDefault(): boolean { function isCcrMirrorEnabled (line 197) | function isCcrMirrorEnabled(): boolean { FILE: restored-src/src/bridge/bridgeMain.ts type BackoffConfig (line 59) | type BackoffConfig = { constant DEFAULT_BACKOFF (line 72) | const DEFAULT_BACKOFF: BackoffConfig = { constant STATUS_UPDATE_INTERVAL_MS (line 82) | const STATUS_UPDATE_INTERVAL_MS = 1_000 constant SPAWN_SESSIONS_DEFAULT (line 83) | const SPAWN_SESSIONS_DEFAULT = 32 function isMultiSessionSpawnEnabled (line 96) | async function isMultiSessionSpawnEnabled(): Promise { function pollSleepDetectionThresholdMs (line 107) | function pollSleepDetectionThresholdMs(backoff: BackoffConfig): number { function spawnScriptArgs (line 119) | function spawnScriptArgs(): string[] { function safeSpawn (line 127) | function safeSpawn( function runBridgeLoop (line 141) | async function runBridgeLoop( constant CONNECTION_ERROR_CODES (line 1582) | const CONNECTION_ERROR_CODES = new Set([ function isConnectionError (line 1590) | function isConnectionError(err: unknown): boolean { function isServerError (line 1604) | function isServerError(err: unknown): boolean { function addJitter (line 1615) | function addJitter(ms: number): number { function formatDelay (line 1619) | function formatDelay(ms: number): string { function stopWorkWithRetry (line 1627) | async function stopWorkWithRetry( function onSessionTimeout (line 1678) | function onSessionTimeout( type ParsedArgs (line 1699) | type ParsedArgs = { constant SPAWN_FLAG_VALUES (line 1720) | const SPAWN_FLAG_VALUES = ['session', 'same-dir', 'worktree'] as const function parseSpawnValue (line 1722) | function parseSpawnValue(raw: string | undefined): SpawnMode | string { function parseCapacityValue (line 1729) | function parseCapacityValue(raw: string | undefined): number | string { function parseArgs (line 1737) | function parseArgs(args: string[]): ParsedArgs { function printHelp (line 1889) | async function printHelp(): Promise { constant TITLE_MAX_LEN (line 1953) | const TITLE_MAX_LEN = 80 function deriveSessionTitle (line 1956) | function deriveSessionTitle(text: string): string { function fetchSessionTitle (line 1971) | async function fetchSessionTitle( function bridgeMain (line 1980) | async function bridgeMain(args: string[]): Promise { class BridgeHeadlessPermanentError (line 2778) | class BridgeHeadlessPermanentError extends Error { method constructor (line 2779) | constructor(message: string) { type HeadlessBridgeOpts (line 2785) | type HeadlessBridgeOpts = { function runBridgeHeadless (line 2810) | async function runBridgeHeadless( function createHeadlessBridgeLogger (line 2968) | function createHeadlessBridgeLogger(log: (s: string) => void): BridgeLog... FILE: restored-src/src/bridge/bridgeMessaging.ts function isSDKMessage (line 36) | function isSDKMessage(value: unknown): value is SDKMessage { function isSDKControlResponse (line 46) | function isSDKControlResponse( function isSDKControlRequest (line 59) | function isSDKControlRequest( function isEligibleBridgeMessage (line 77) | function isEligibleBridgeMessage(m: Message): boolean { function extractTitleText (line 103) | function extractTitleText(m: Message): string | undefined { function handleIngressMessage (line 132) | function handleIngressMessage( type ServerControlRequestHandlers (line 212) | type ServerControlRequestHandlers = { constant OUTBOUND_ONLY_ERROR (line 231) | const OUTBOUND_ONLY_ERROR = function handleServerControlRequest (line 243) | function handleServerControlRequest( function makeResultMessage (line 399) | function makeResultMessage(sessionId: string): SDKResultSuccess { class BoundedUUIDSet (line 429) | class BoundedUUIDSet { method constructor (line 435) | constructor(capacity: number) { method add (line 440) | add(uuid: string): void { method has (line 452) | has(uuid: string): boolean { method clear (line 456) | clear(): void { FILE: restored-src/src/bridge/bridgePermissionCallbacks.ts type BridgePermissionResponse (line 3) | type BridgePermissionResponse = { type BridgePermissionCallbacks (line 10) | type BridgePermissionCallbacks = { function isBridgePermissionResponse (line 32) | function isBridgePermissionResponse( FILE: restored-src/src/bridge/bridgePointer.ts constant MAX_WORKTREE_FANOUT (line 19) | const MAX_WORKTREE_FANOUT = 50 constant BRIDGE_POINTER_TTL_MS (line 40) | const BRIDGE_POINTER_TTL_MS = 4 * 60 * 60 * 1000 type BridgePointer (line 50) | type BridgePointer = z.infer> function getBridgePointerPath (line 52) | function getBridgePointerPath(dir: string): string { function writeBridgePointer (line 62) | async function writeBridgePointer( function readBridgePointer (line 83) | async function readBridgePointer( function readBridgePointerAcrossWorktrees (line 129) | async function readBridgePointerAcrossWorktrees( function clearBridgePointer (line 190) | async function clearBridgePointer(dir: string): Promise { function safeJsonParse (line 204) | function safeJsonParse(raw: string): unknown { FILE: restored-src/src/bridge/bridgeStatusUtil.ts type StatusState (line 10) | type StatusState = constant TOOL_DISPLAY_EXPIRY_MS (line 18) | const TOOL_DISPLAY_EXPIRY_MS = 30_000 constant SHIMMER_INTERVAL_MS (line 21) | const SHIMMER_INTERVAL_MS = 150 function timestamp (line 23) | function timestamp(): string { function abbreviateActivity (line 34) | function abbreviateActivity(summary: string): string { function buildBridgeConnectUrl (line 39) | function buildBridgeConnectUrl( function buildBridgeSessionUrl (line 52) | function buildBridgeSessionUrl( function computeGlimmerIndex (line 61) | function computeGlimmerIndex( function computeShimmerSegments (line 79) | function computeShimmerSegments( type BridgeStatusInfo (line 114) | type BridgeStatusInfo = { function getBridgeStatus (line 124) | function getBridgeStatus({ function buildIdleFooterText (line 144) | function buildIdleFooterText(url: string): string { function buildActiveFooterText (line 149) | function buildActiveFooterText(url: string): string { constant FAILED_FOOTER_TEXT (line 154) | const FAILED_FOOTER_TEXT = 'Something went wrong, please try again' function wrapWithOsc8Link (line 161) | function wrapWithOsc8Link(text: string, url: string): string { FILE: restored-src/src/bridge/bridgeUI.ts constant QR_OPTIONS (line 30) | const QR_OPTIONS = { function generateQr (line 37) | async function generateQr(url: string): Promise { function createBridgeLogger (line 42) | function createBridgeLogger(options: { FILE: restored-src/src/bridge/capacityWake.ts type CapacitySignal (line 11) | type CapacitySignal = { signal: AbortSignal; cleanup: () => void } type CapacityWake (line 13) | type CapacityWake = { function createCapacityWake (line 28) | function createCapacityWake(outerSignal: AbortSignal): CapacityWake { FILE: restored-src/src/bridge/codeSessionApi.ts constant ANTHROPIC_VERSION (line 16) | const ANTHROPIC_VERSION = '2023-06-01' function oauthHeaders (line 18) | function oauthHeaders(accessToken: string): Record { function createCodeSession (line 26) | async function createCodeSession( type RemoteCredentials (line 86) | type RemoteCredentials = { function fetchRemoteCredentials (line 93) | async function fetchRemoteCredentials( FILE: restored-src/src/bridge/createSession.ts type GitSource (line 7) | type GitSource = { type GitOutcome (line 13) | type GitOutcome = { type SessionEvent (line 20) | type SessionEvent = { function createBridgeSession (line 34) | async function createBridgeSession({ function getBridgeSession (line 190) | async function getBridgeSession( function archiveBridgeSession (line 263) | async function archiveBridgeSession( function updateBridgeSessionTitle (line 327) | async function updateBridgeSessionTitle( FILE: restored-src/src/bridge/debugUtils.ts constant DEBUG_MSG_LIMIT (line 9) | const DEBUG_MSG_LIMIT = 2000 constant SECRET_FIELD_NAMES (line 11) | const SECRET_FIELD_NAMES = [ constant SECRET_PATTERN (line 19) | const SECRET_PATTERN = new RegExp( constant REDACT_MIN_LENGTH (line 24) | const REDACT_MIN_LENGTH = 16 function redactSecrets (line 26) | function redactSecrets(s: string): string { function debugTruncate (line 37) | function debugTruncate(s: string): string { function debugBody (line 46) | function debugBody(data: unknown): string { function describeAxiosError (line 60) | function describeAxiosError(err: unknown): string { function extractHttpStatus (line 88) | function extractHttpStatus(err: unknown): number | undefined { function extractErrorDetail (line 106) | function extractErrorDetail(data: unknown): string | undefined { function logBridgeSkip (line 128) | function logBridgeSkip( FILE: restored-src/src/bridge/envLessBridgeConfig.ts type EnvLessBridgeConfig (line 7) | type EnvLessBridgeConfig = { constant DEFAULT_ENV_LESS_BRIDGE_CONFIG (line 44) | const DEFAULT_ENV_LESS_BRIDGE_CONFIG: EnvLessBridgeConfig = { function getEnvLessBridgeConfig (line 130) | async function getEnvLessBridgeConfig(): Promise { function checkEnvLessBridgeMinVersion (line 147) | async function checkEnvLessBridgeMinVersion(): Promise { function shouldShowAppUpgradeMessage (line 161) | async function shouldShowAppUpgradeMessage(): Promise { FILE: restored-src/src/bridge/flushGate.ts class FlushGate (line 16) | class FlushGate { method active (line 20) | get active(): boolean { method pendingCount (line 24) | get pendingCount(): number { method start (line 29) | start(): void { method end (line 37) | end(): T[] { method enqueue (line 46) | enqueue(...items: T[]): boolean { method drop (line 56) | drop(): number { method deactivate (line 68) | deactivate(): void { FILE: restored-src/src/bridge/inboundAttachments.ts constant DOWNLOAD_TIMEOUT_MS (line 25) | const DOWNLOAD_TIMEOUT_MS = 30_000 function debug (line 27) | function debug(msg: string): void { type InboundAttachment (line 39) | type InboundAttachment = z.infer> function extractInboundAttachments (line 42) | function extractInboundAttachments(msg: unknown): InboundAttachment[] { function sanitizeFileName (line 55) | function sanitizeFileName(name: string): string { function uploadsDir (line 60) | function uploadsDir(): string { function resolveOne (line 68) | async function resolveOne(att: InboundAttachment): Promise { type EnvLessBridgeParams (line 89) | type EnvLessBridgeParams = { function initEnvLessBridgeCore (line 140) | async function initEnvLessBridgeCore( function withRetry (line 892) | async function withRetry( function fetchRemoteCredentials (line 931) | async function fetchRemoteCredentials( type ArchiveStatus (line 950) | type ArchiveStatus = number | 'timeout' | 'error' | 'no_token' type ArchiveTelemetryStatus (line 956) | type ArchiveTelemetryStatus = function archiveSession (line 963) | async function archiveSession( FILE: restored-src/src/bridge/replBridge.ts type ReplBridgeHandle (line 70) | type ReplBridgeHandle = { type BridgeState (line 83) | type BridgeState = 'ready' | 'connected' | 'reconnecting' | 'failed' type BridgeCoreParams (line 91) | type BridgeCoreParams = { type BridgeCoreHandle (line 228) | type BridgeCoreHandle = ReplBridgeHandle & { constant POLL_ERROR_INITIAL_DELAY_MS (line 244) | const POLL_ERROR_INITIAL_DELAY_MS = 2_000 constant POLL_ERROR_MAX_DELAY_MS (line 245) | const POLL_ERROR_MAX_DELAY_MS = 60_000 constant POLL_ERROR_GIVE_UP_MS (line 246) | const POLL_ERROR_GIVE_UP_MS = 15 * 60 * 1000 function initBridgeCore (line 260) | async function initBridgeCore( function startWorkPollLoop (line 1851) | async function startWorkPollLoop({ FILE: restored-src/src/bridge/replBridgeHandle.ts function setReplBridgeHandle (line 18) | function setReplBridgeHandle(h: ReplBridgeHandle | null): void { function getReplBridgeHandle (line 25) | function getReplBridgeHandle(): ReplBridgeHandle | null { function getSelfBridgeCompatId (line 33) | function getSelfBridgeCompatId(): string | undefined { FILE: restored-src/src/bridge/replBridgeTransport.ts type ReplBridgeTransport (line 23) | type ReplBridgeTransport = { function createV1ReplTransport (line 78) | function createV1ReplTransport( function createV2ReplTransport (line 119) | async function createV2ReplTransport(opts: { FILE: restored-src/src/bridge/sessionIdCompat.ts function setCseShimGate (line 21) | function setCseShimGate(gate: () => boolean): void { function toCompatSessionId (line 38) | function toCompatSessionId(id: string): string { function toInfraSessionId (line 54) | function toInfraSessionId(id: string): string { FILE: restored-src/src/bridge/sessionRunner.ts constant MAX_ACTIVITIES (line 16) | const MAX_ACTIVITIES = 10 constant MAX_STDERR_LINES (line 17) | const MAX_STDERR_LINES = 10 function safeFilenameId (line 24) | function safeFilenameId(id: string): string { type PermissionRequest (line 33) | type PermissionRequest = { type SessionSpawnerDeps (line 45) | type SessionSpawnerDeps = { constant TOOL_VERBS (line 70) | const TOOL_VERBS: Record = { function toolSummary (line 91) | function toolSummary(name: string, input: Record): stri... function extractActivities (line 107) | function extractActivities( function extractUserMessageText (line 207) | function extractUserMessageText( function inputPreview (line 237) | function inputPreview(input: Record): string { function createSessionSpawner (line 248) | function createSessionSpawner(deps: SessionSpawnerDeps): SessionSpawner { FILE: restored-src/src/bridge/trustedDevice.ts constant TRUSTED_DEVICE_GATE (line 33) | const TRUSTED_DEVICE_GATE = 'tengu_sessions_elevated_auth_enforcement' function isGateEnabled (line 35) | function isGateEnabled(): boolean { function getTrustedDeviceToken (line 54) | function getTrustedDeviceToken(): string | undefined { function clearTrustedDeviceTokenCache (line 61) | function clearTrustedDeviceTokenCache(): void { function clearTrustedDeviceToken (line 72) | function clearTrustedDeviceToken(): void { function enrollTrustedDevice (line 98) | async function enrollTrustedDevice(): Promise { FILE: restored-src/src/bridge/types.ts constant DEFAULT_SESSION_TIMEOUT_MS (line 2) | const DEFAULT_SESSION_TIMEOUT_MS = 24 * 60 * 60 * 1000 constant BRIDGE_LOGIN_INSTRUCTION (line 5) | const BRIDGE_LOGIN_INSTRUCTION = constant BRIDGE_LOGIN_ERROR (line 9) | const BRIDGE_LOGIN_ERROR = constant REMOTE_CONTROL_DISCONNECTED_MSG (line 14) | const REMOTE_CONTROL_DISCONNECTED_MSG = 'Remote Control disconnected.' type WorkData (line 18) | type WorkData = { type WorkResponse (line 23) | type WorkResponse = { type WorkSecret (line 33) | type WorkSecret = { type SessionDoneStatus (line 53) | type SessionDoneStatus = 'completed' | 'failed' | 'interrupted' type SessionActivityType (line 55) | type SessionActivityType = 'tool_start' | 'text' | 'result' | 'error' type SessionActivity (line 57) | type SessionActivity = { type SpawnMode (line 69) | type SpawnMode = 'single-session' | 'worktree' | 'same-dir' type BridgeWorkerType (line 79) | type BridgeWorkerType = 'claude_code' | 'claude_code_assistant' type BridgeConfig (line 81) | type BridgeConfig = { type PermissionResponseEvent (line 124) | type PermissionResponseEvent = { type BridgeApiClient (line 133) | type BridgeApiClient = { type SessionHandle (line 178) | type SessionHandle = { type SessionSpawnOpts (line 192) | type SessionSpawnOpts = { type SessionSpawner (line 209) | type SessionSpawner = { type BridgeLogger (line 213) | type BridgeLogger = { FILE: restored-src/src/bridge/workSecret.ts function decodeWorkSecret (line 6) | function decodeWorkSecret(secret: string): WorkSecret { function buildSdkUrl (line 41) | function buildSdkUrl(apiBaseUrl: string, sessionId: string): string { function sameSessionId (line 62) | function sameSessionId(a: string, b: string): boolean { function buildCCRv2SdkUrl (line 81) | function buildCCRv2SdkUrl( function registerWorker (line 97) | async function registerWorker( FILE: restored-src/src/buddy/CompanionSprite.tsx constant TICK_MS (line 16) | const TICK_MS = 500; constant BUBBLE_SHOW (line 17) | const BUBBLE_SHOW = 20; constant FADE_WINDOW (line 18) | const FADE_WINDOW = 6; constant PET_BURST_MS (line 19) | const PET_BURST_MS = 2500; constant IDLE_SEQUENCE (line 23) | const IDLE_SEQUENCE = [0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0]; constant PET_HEARTS (line 27) | const PET_HEARTS = [` ${H} ${H} `, ` ${H} ${H} ${H} `, ` ${H... function wrap (line 28) | function wrap(text: string, width: number): string[] { function SpeechBubble (line 43) | function SpeechBubble(t0) { constant MIN_COLS_FOR_FULL_SPRITE (line 152) | const MIN_COLS_FOR_FULL_SPRITE = 100; constant SPRITE_BODY_WIDTH (line 153) | const SPRITE_BODY_WIDTH = 12; constant NAME_ROW_PAD (line 154) | const NAME_ROW_PAD = 2; constant SPRITE_PADDING_X (line 155) | const SPRITE_PADDING_X = 2; constant BUBBLE_WIDTH (line 156) | const BUBBLE_WIDTH = 36; constant NARROW_QUIP_CAP (line 157) | const NARROW_QUIP_CAP = 24; function spriteColWidth (line 158) | function spriteColWidth(nameWidth: number): number { function companionReservedColumns (line 167) | function companionReservedColumns(terminalColumns: number, speaking: boo... function CompanionSprite (line 176) | function CompanionSprite(): React.ReactNode { function CompanionFloatingBubble (line 296) | function CompanionFloatingBubble() { function _temp3 (line 359) | function _temp3(set) { function _temp2 (line 362) | function _temp2(s_0) { function _temp (line 368) | function _temp(s) { FILE: restored-src/src/buddy/companion.ts function mulberry32 (line 16) | function mulberry32(seed: number): () => number { function hashString (line 27) | function hashString(s: string): number { function pick (line 39) | function pick(rng: () => number, arr: readonly T[]): T { function rollRarity (line 43) | function rollRarity(rng: () => number): Rarity { constant RARITY_FLOOR (line 53) | const RARITY_FLOOR: Record = { function rollStats (line 62) | function rollStats( constant SALT (line 84) | const SALT = 'friend-2026-401' type Roll (line 86) | type Roll = { function rollFrom (line 91) | function rollFrom(rng: () => number): Roll { function roll (line 107) | function roll(userId: string): Roll { function rollWithSeed (line 115) | function rollWithSeed(seed: string): Roll { function companionUserId (line 119) | function companionUserId(): string { function getCompanion (line 127) | function getCompanion(): Companion | undefined { FILE: restored-src/src/buddy/prompt.ts function companionIntroText (line 7) | function companionIntroText(name: string, species: string): string { function getCompanionIntroAttachment (line 15) | function getCompanionIntroAttachment( FILE: restored-src/src/buddy/sprites.ts constant BODIES (line 26) | const BODIES: Record = { constant HAT_LINES (line 443) | const HAT_LINES: Record = { function renderSprite (line 454) | function renderSprite(bones: CompanionBones, frame = 0): string[] { function spriteFrameCount (line 471) | function spriteFrameCount(species: Species): number { function renderFace (line 475) | function renderFace(bones: CompanionBones): string { FILE: restored-src/src/buddy/types.ts constant RARITIES (line 1) | const RARITIES = [ type Rarity (line 8) | type Rarity = (typeof RARITIES)[number] constant SPECIES (line 54) | const SPECIES = [ type Species (line 74) | type Species = (typeof SPECIES)[number] // biome-ignore format: keep com... constant EYES (line 76) | const EYES = ['·', '✦', '×', '◉', '@', '°'] as const type Eye (line 77) | type Eye = (typeof EYES)[number] constant HATS (line 79) | const HATS = [ type Hat (line 89) | type Hat = (typeof HATS)[number] constant STAT_NAMES (line 91) | const STAT_NAMES = [ type StatName (line 98) | type StatName = (typeof STAT_NAMES)[number] type CompanionBones (line 101) | type CompanionBones = { type CompanionSoul (line 111) | type CompanionSoul = { type Companion (line 116) | type Companion = CompanionBones & type StoredCompanion (line 124) | type StoredCompanion = CompanionSoul & { hatchedAt: number } constant RARITY_WEIGHTS (line 126) | const RARITY_WEIGHTS = { constant RARITY_STARS (line 134) | const RARITY_STARS = { constant RARITY_COLORS (line 142) | const RARITY_COLORS = { FILE: restored-src/src/buddy/useBuddyNotification.tsx function isBuddyTeaserWindow (line 12) | function isBuddyTeaserWindow(): boolean { function isBuddyLive (line 17) | function isBuddyLive(): boolean { function RainbowText (line 22) | function RainbowText(t0) { function _temp (line 40) | function _temp(ch, i) { function useBuddyNotification (line 43) | function useBuddyNotification() { function findBuddyTriggerPositions (line 79) | function findBuddyTriggerPositions(text: string): Array<{ FILE: restored-src/src/cli/exit.ts function cliError (line 19) | function cliError(msg?: string): never { function cliOk (line 27) | function cliOk(msg?: string): never { FILE: restored-src/src/cli/handlers/agents.ts function formatAgent (line 20) | function formatAgent(agent: ResolvedAgent): string { function agentsHandler (line 32) | async function agentsHandler(): Promise { FILE: restored-src/src/cli/handlers/auth.ts function installOAuthTokens (line 50) | async function installOAuthTokens(tokens: OAuthTokens): Promise { function authLogin (line 112) | async function authLogin({ function authStatus (line 232) | async function authStatus(opts: { function authLogout (line 321) | async function authLogout(): Promise { FILE: restored-src/src/cli/handlers/autoMode.ts function writeRules (line 20) | function writeRules(rules: AutoModeRules): void { function autoModeDefaultsHandler (line 24) | function autoModeDefaultsHandler(): void { function autoModeConfigHandler (line 35) | function autoModeConfigHandler(): void { constant CRITIQUE_SYSTEM_PROMPT (line 49) | const CRITIQUE_SYSTEM_PROMPT = function autoModeCritiqueHandler (line 73) | async function autoModeCritiqueHandler(options: { function formatRulesForCritique (line 151) | function formatRulesForCritique( FILE: restored-src/src/cli/handlers/mcp.tsx function checkMcpServerHealth (line 26) | async function checkMcpServerHealth(name: string, server: ScopedMcpServe... function mcpServeHandler (line 42) | async function mcpServeHandler({ function mcpRemoveHandler (line 74) | async function mcpRemoveHandler(name: string, options: { function mcpListHandler (line 144) | async function mcpListHandler(): Promise { function mcpGetHandler (line 193) | async function mcpGetHandler(name: string): Promise { function mcpAddJsonHandler (line 286) | async function mcpAddJsonHandler(name: string, json: string, options: { function mcpAddFromDesktopHandler (line 317) | async function mcpAddFromDesktopHandler(options: { function mcpResetChoicesHandler (line 352) | async function mcpResetChoicesHandler(): Promise { FILE: restored-src/src/cli/handlers/plugins.ts function handleMarketplaceError (line 68) | function handleMarketplaceError(error: unknown, action: string): never { function printValidationResult (line 73) | function printValidationResult(result: ValidationResult): void { function pluginValidateHandler (line 101) | async function pluginValidateHandler( function pluginListHandler (line 157) | async function pluginListHandler(options: { function marketplaceAddHandler (line 447) | async function marketplaceAddHandler( function marketplaceListHandler (line 527) | async function marketplaceListHandler(options: { function marketplaceRemoveHandler (line 595) | async function marketplaceRemoveHandler( function marketplaceUpdateHandler (line 616) | async function marketplaceUpdateHandler( function pluginInstallHandler (line 668) | async function pluginInstallHandler( function pluginUninstallHandler (line 704) | async function pluginUninstallHandler( function pluginEnableHandler (line 740) | async function pluginEnableHandler( function pluginDisableHandler (line 782) | async function pluginDisableHandler( function pluginUpdateHandler (line 846) | async function pluginUpdateHandler( FILE: restored-src/src/cli/handlers/util.tsx function setupTokenHandler (line 20) | async function setupTokenHandler(root: Root): Promise { function DoctorWithPlugins (line 56) | function DoctorWithPlugins(t0) { function doctorHandler (line 72) | async function doctorHandler(root: Root): Promise { function installHandler (line 90) | async function installHandler(target: string | undefined, options: { FILE: restored-src/src/cli/ndjsonSafeStringify.ts constant JS_LINE_TERMINATORS (line 16) | const JS_LINE_TERMINATORS = /\u2028|\u2029/g function escapeJsLineTerminators (line 18) | function escapeJsLineTerminators(json: string): string { function ndjsonSafeStringify (line 30) | function ndjsonSafeStringify(value: unknown): string { FILE: restored-src/src/cli/print.ts constant SHUTDOWN_TEAM_PROMPT (line 379) | const SHUTDOWN_TEAM_PROMPT = ` constant MAX_RECEIVED_UUIDS (line 394) | const MAX_RECEIVED_UUIDS = 10_000 function trackReceivedMessageUuid (line 398) | function trackReceivedMessageUuid(uuid: UUID): boolean { type PromptValue (line 417) | type PromptValue = string | ContentBlockParam[] function toBlocks (line 419) | function toBlocks(v: PromptValue): ContentBlockParam[] { function joinPromptValues (line 428) | function joinPromptValues(values: PromptValue[]): PromptValue { function canBatchWith (line 443) | function canBatchWith( function runHeadless (line 455) | async function runHeadless( function runHeadlessStreaming (line 976) | function runHeadlessStreaming( function createCanUseToolWithPermissionPrompt (line 4149) | function createCanUseToolWithPermissionPrompt( function getCanUseToolFn (line 4267) | function getCanUseToolFn( function handleInitializeRequest (line 4336) | async function handleInitializeRequest( function handleRewindFiles (line 4520) | async function handleRewindFiles( function handleSetPermissionMode (line 4568) | function handleSetPermissionMode( function handleChannelEnable (line 4662) | function handleChannelEnable( function reregisterChannelHandlerAfterReconnect (line 4786) | function reregisterChannelHandlerAfterReconnect( function emitLoadError (line 4841) | function emitLoadError( function removeInterruptedMessage (line 4875) | function removeInterruptedMessage( type LoadInitialMessagesResult (line 4887) | type LoadInitialMessagesResult = { function loadInitialMessages (line 4893) | async function loadInitialMessages( function getStructuredIO (line 5199) | function getStructuredIO( function handleOrphanedPermissionResponse (line 5241) | async function handleOrphanedPermissionResponse({ type DynamicMcpState (line 5306) | type DynamicMcpState = { function toScopedConfig (line 5316) | function toScopedConfig( type SdkMcpState (line 5328) | type SdkMcpState = { type McpSetServersResult (line 5337) | type McpSetServersResult = { function handleMcpSetServers (line 5353) | async function handleMcpSetServers( function reconcileMcpServers (line 5450) | async function reconcileMcpServers( FILE: restored-src/src/cli/remoteIO.ts class RemoteIO (line 35) | class RemoteIO extends StructuredIO { method constructor (line 44) | constructor( method flushInternalEvents (line 217) | override flushInternalEvents(): Promise { method internalEventsPending (line 221) | override get internalEventsPending(): number { method write (line 231) | async write(message: StdoutMessage): Promise { method close (line 247) | close(): void { FILE: restored-src/src/cli/structuredIO.ts constant SANDBOX_NETWORK_ACCESS_TOOL_NAME (line 62) | const SANDBOX_NETWORK_ACCESS_TOOL_NAME = 'SandboxNetworkAccess' function serializeDecisionReason (line 64) | function serializeDecisionReason( function buildRequiresActionDetails (line 93) | function buildRequiresActionDetails( type PendingRequest (line 119) | type PendingRequest = { constant MAX_RESOLVED_TOOL_USE_IDS (line 133) | const MAX_RESOLVED_TOOL_USE_IDS = 1000 class StructuredIO (line 135) | class StructuredIO { method constructor (line 164) | constructor( method trackResolvedToolUseId (line 176) | private trackResolvedToolUseId(request: SDKControlRequest): void { method flushInternalEvents (line 190) | flushInternalEvents(): Promise { method internalEventsPending (line 195) | get internalEventsPending(): number { method prependUserMessage (line 204) | prependUserMessage(content: string): void { method read (line 215) | private async *read() { method getPendingPermissionRequests (line 263) | getPendingPermissionRequests() { method setUnexpectedResponseCallback (line 269) | setUnexpectedResponseCallback( method injectControlResponse (line 283) | injectControlResponse(response: SDKControlResponse): void { method setOnControlRequestSent (line 316) | setOnControlRequestSent( method setOnControlRequestResolved (line 327) | setOnControlRequestResolved( method processLine (line 333) | private async processLine( method write (line 465) | async write(message: StdoutMessage): Promise { method sendRequest (line 469) | private async sendRequest( method createCanUseTool (line 533) | createCanUseTool( method createHookCallback (line 661) | createHookCallback(callbackId: string, timeout?: number): HookCallback { method handleElicitation (line 694) | async handleElicitation( method createSandboxAskCallback (line 731) | createSandboxAskCallback(): (hostPattern: { method sendMcpMessage (line 758) | async sendMcpMessage( function exitWithMessage (line 776) | function exitWithMessage(message: string): never { function executePermissionRequestHooksForSDK (line 787) | async function executePermissionRequestHooksForSDK( FILE: restored-src/src/cli/transports/HybridTransport.ts constant BATCH_FLUSH_INTERVAL_MS (line 12) | const BATCH_FLUSH_INTERVAL_MS = 100 constant POST_TIMEOUT_MS (line 15) | const POST_TIMEOUT_MS = 15_000 constant CLOSE_GRACE_MS (line 22) | const CLOSE_GRACE_MS = 3000 class HybridTransport (line 54) | class HybridTransport extends WebSocketTransport { method constructor (line 63) | constructor( method write (line 117) | override async write(message: StdoutMessage): Promise { method writeBatch (line 135) | async writeBatch(messages: StdoutMessage[]): Promise { method droppedBatchCount (line 141) | get droppedBatchCount(): number { method flush (line 149) | flush(): Promise { method takeStreamEvents (line 155) | private takeStreamEvents(): StdoutMessage[] { method flushStreamEvents (line 166) | private flushStreamEvents(): void { method close (line 171) | override close(): void { method postOnce (line 202) | private async postOnce(events: StdoutMessage[]): Promise { function convertWsUrlToPostUrl (line 269) | function convertWsUrlToPostUrl(wsUrl: URL): string { FILE: restored-src/src/cli/transports/SSETransport.ts constant RECONNECT_BASE_DELAY_MS (line 16) | const RECONNECT_BASE_DELAY_MS = 1000 constant RECONNECT_MAX_DELAY_MS (line 17) | const RECONNECT_MAX_DELAY_MS = 30_000 constant RECONNECT_GIVE_UP_MS (line 19) | const RECONNECT_GIVE_UP_MS = 600_000 constant LIVENESS_TIMEOUT_MS (line 21) | const LIVENESS_TIMEOUT_MS = 45_000 constant PERMANENT_HTTP_CODES (line 27) | const PERMANENT_HTTP_CODES = new Set([401, 403, 404]) constant POST_MAX_RETRIES (line 30) | const POST_MAX_RETRIES = 10 constant POST_BASE_DELAY_MS (line 31) | const POST_BASE_DELAY_MS = 500 constant POST_MAX_DELAY_MS (line 32) | const POST_MAX_DELAY_MS = 8000 constant STREAM_DECODE_OPTS (line 35) | const STREAM_DECODE_OPTS: TextDecodeOptions = { stream: true } function alwaysValidStatus (line 38) | function alwaysValidStatus(): boolean { type SSEFrame (line 46) | type SSEFrame = { function parseSSEFrames (line 58) | function parseSSEFrames(buffer: string): { type SSETransportState (line 122) | type SSETransportState = type StreamClientEvent (line 136) | type StreamClientEvent = { class SSETransport (line 162) | class SSETransport implements Transport { method constructor (line 190) | constructor( method getLastSequenceNum (line 227) | getLastSequenceNum(): number { method connect (line 231) | async connect(): Promise { method readStream (line 339) | private async readStream(body: ReadableStream): Promise { method isConnectedStatus (line 659) | isConnectedStatus(): boolean { method isClosedStatus (line 663) | isClosedStatus(): boolean { method setOnData (line 667) | setOnData(callback: (data: string) => void): void { method setOnClose (line 671) | setOnClose(callback: (closeCode?: number) => void): void { method setOnEvent (line 675) | setOnEvent(callback: (event: StreamClientEvent) => void): void { method close (line 679) | close(): void { function convertSSEUrlToPostUrl (line 704) | function convertSSEUrlToPostUrl(sseUrl: URL): string { FILE: restored-src/src/cli/transports/SerialBatchEventUploader.ts class RetryableError (line 26) | class RetryableError extends Error { method constructor (line 27) | constructor( type SerialBatchEventUploaderConfig (line 35) | type SerialBatchEventUploaderConfig = { class SerialBatchEventUploader (line 64) | class SerialBatchEventUploader { method constructor (line 75) | constructor(config: SerialBatchEventUploaderConfig) { method droppedBatchCount (line 84) | get droppedBatchCount(): number { method pendingCount (line 92) | get pendingCount(): number { method enqueue (line 101) | async enqueue(events: T | T[]): Promise { method flush (line 125) | flush(): Promise { method close (line 139) | close(): void { method drain (line 156) | private async drain(): Promise { method takeBatch (line 213) | private takeBatch(): T[] { method retryDelay (line 235) | private retryDelay(failures: number, retryAfterMs?: number): number { method releaseBackpressure (line 255) | private releaseBackpressure(): void { method sleep (line 261) | private sleep(ms: number): Promise { FILE: restored-src/src/cli/transports/WebSocketTransport.ts constant KEEP_ALIVE_FRAME (line 20) | const KEEP_ALIVE_FRAME = '{"type":"keep_alive"}\n' constant DEFAULT_MAX_BUFFER_SIZE (line 22) | const DEFAULT_MAX_BUFFER_SIZE = 1000 constant DEFAULT_BASE_RECONNECT_DELAY (line 23) | const DEFAULT_BASE_RECONNECT_DELAY = 1000 constant DEFAULT_MAX_RECONNECT_DELAY (line 24) | const DEFAULT_MAX_RECONNECT_DELAY = 30000 constant DEFAULT_RECONNECT_GIVE_UP_MS (line 26) | const DEFAULT_RECONNECT_GIVE_UP_MS = 600_000 constant DEFAULT_PING_INTERVAL (line 27) | const DEFAULT_PING_INTERVAL = 10000 constant DEFAULT_KEEPALIVE_INTERVAL (line 28) | const DEFAULT_KEEPALIVE_INTERVAL = 300_000 // 5 minutes constant SLEEP_DETECTION_THRESHOLD_MS (line 36) | const SLEEP_DETECTION_THRESHOLD_MS = DEFAULT_MAX_RECONNECT_DELAY * 2 // 60s constant PERMANENT_CLOSE_CODES (line 42) | const PERMANENT_CLOSE_CODES = new Set([ type WebSocketTransportOptions (line 48) | type WebSocketTransportOptions = { type WebSocketTransportState (line 60) | type WebSocketTransportState = type WebSocketLike (line 68) | type WebSocketLike = { class WebSocketTransport (line 74) | class WebSocketTransport implements Transport { method constructor (line 119) | constructor( method connect (line 135) | public async connect(): Promise { method handleOpenEvent (line 296) | private handleOpenEvent(): void { method sendLine (line 331) | protected sendLine(line: string): boolean { method removeWsListeners (line 360) | private removeWsListeners(ws: WebSocketLike): void { method doDisconnect (line 380) | protected doDisconnect(): void { method handleConnectionError (line 397) | private handleConnectionError(closeCode?: number): void { method close (line 556) | close(): void { method replayBufferedMessages (line 574) | private replayBufferedMessages(lastId: string): void { method isConnectedStatus (line 636) | isConnectedStatus(): boolean { method isClosedStatus (line 640) | isClosedStatus(): boolean { method setOnData (line 644) | setOnData(callback: (data: string) => void): void { method setOnConnect (line 648) | setOnConnect(callback: () => void): void { method setOnClose (line 652) | setOnClose(callback: (closeCode?: number) => void): void { method getStateLabel (line 656) | getStateLabel(): string { method write (line 660) | async write(message: StdoutMessage): Promise { method getControlMessageDetailLabel (line 683) | private getControlMessageDetailLabel(message: StdoutMessage): string { method startPingInterval (line 697) | private startPingInterval(): void { method stopPingInterval (line 760) | private stopPingInterval(): void { method startKeepaliveInterval (line 767) | private startKeepaliveInterval(): void { method stopKeepaliveInterval (line 794) | private stopKeepaliveInterval(): void { FILE: restored-src/src/cli/transports/WorkerStateUploader.ts type WorkerStateUploaderConfig (line 19) | type WorkerStateUploaderConfig = { class WorkerStateUploader (line 29) | class WorkerStateUploader { method constructor (line 35) | constructor(config: WorkerStateUploaderConfig) { method enqueue (line 43) | enqueue(patch: Record): void { method close (line 49) | close(): void { method drain (line 54) | private async drain(): Promise { method sendWithRetry (line 70) | private async sendWithRetry(payload: Record): Promise... method retryDelay (line 88) | private retryDelay(failures: number): number { function coalescePatches (line 106) | function coalescePatches( FILE: restored-src/src/cli/transports/ccrClient.ts constant DEFAULT_HEARTBEAT_INTERVAL_MS (line 33) | const DEFAULT_HEARTBEAT_INTERVAL_MS = 20_000 constant STREAM_EVENT_FLUSH_INTERVAL_MS (line 42) | const STREAM_EVENT_FLUSH_INTERVAL_MS = 100 function alwaysValidStatus (line 45) | function alwaysValidStatus(): boolean { type CCRInitFailReason (line 49) | type CCRInitFailReason = class CCRInitError (line 55) | class CCRInitError extends Error { method constructor (line 56) | constructor(readonly reason: CCRInitFailReason) { constant MAX_CONSECUTIVE_AUTH_FAILURES (line 68) | const MAX_CONSECUTIVE_AUTH_FAILURES = 10 type EventPayload (line 70) | type EventPayload = { type ClientEvent (line 76) | type ClientEvent = { type CoalescedStreamEvent (line 86) | type CoalescedStreamEvent = { type StreamAccumulatorState (line 104) | type StreamAccumulatorState = { function createStreamAccumulator (line 116) | function createStreamAccumulator(): StreamAccumulatorState { function scopeKey (line 120) | function scopeKey(m: { function accumulateStreamEvents (line 141) | function accumulateStreamEvents( function clearStreamAccumulatorForMessage (line 210) | function clearStreamAccumulatorForMessage( type RequestResult (line 225) | type RequestResult = { ok: true } | { ok: false; retryAfterMs?: number } type WorkerEvent (line 227) | type WorkerEvent = { type InternalEvent (line 233) | type InternalEvent = { type ListInternalEventsResponse (line 243) | type ListInternalEventsResponse = { type WorkerStateResponse (line 248) | type WorkerStateResponse = { class CCRClient (line 262) | class CCRClient { method constructor (line 310) | constructor( method initialize (line 459) | async initialize(epoch?: number): Promise | nu... method getWorkerState (line 530) | private async getWorkerState(): Promise<{ method request (line 556) | private async request( method reportState (line 645) | reportState(state: SessionState, details?: RequiresActionDetails): void { method reportMetadata (line 661) | reportMetadata(metadata: Record): void { method handleEpochMismatch (line 669) | private handleEpochMismatch(): never { method startHeartbeat (line 678) | private startHeartbeat(): void { method stopHeartbeat (line 698) | private stopHeartbeat(): void { method sendHeartbeat (line 706) | private async sendHeartbeat(): Promise { method writeEvent (line 735) | async writeEvent(message: StdoutMessage): Promise { method toClientEvent (line 754) | private toClientEvent(message: StdoutMessage): ClientEvent { method flushStreamEventBuffer (line 771) | private async flushStreamEventBuffer(): Promise { method writeInternalEvent (line 793) | async writeInternalEvent( method flushInternalEvents (line 820) | flushInternalEvents(): Promise { method flush (line 831) | async flush(): Promise { method readInternalEvents (line 842) | async readInternalEvents(): Promise { method readSubagentInternalEvents (line 852) | async readSubagentInternalEvents(): Promise { method paginatedGet (line 864) | private async paginatedGet( method getWithRetry (line 905) | private async getWithRetry( method reportDelivery (line 964) | reportDelivery( method getWorkerEpoch (line 972) | getWorkerEpoch(): number { method internalEventsPending (line 977) | get internalEventsPending(): number { method close (line 982) | close(): void { FILE: restored-src/src/cli/transports/transportUtils.ts function getTransportForUrl (line 16) | function getTransportForUrl( FILE: restored-src/src/cli/update.ts function update (line 30) | async function update() { FILE: restored-src/src/commands.ts method getPromptForCommand (line 197) | async getPromptForCommand(args, context) { constant INTERNAL_ONLY_COMMANDS (line 225) | const INTERNAL_ONLY_COMMANDS = [ constant COMMANDS (line 258) | const COMMANDS = memoize((): Command[] => [ function getSkills (line 353) | async function getSkills(cwd: string): Promise<{ function meetsAvailabilityRequirement (line 417) | function meetsAvailabilityRequirement(cmd: Command): boolean { function getCommands (line 476) | async function getCommands(cwd: string): Promise { function clearCommandMemoizationCaches (line 523) | function clearCommandMemoizationCaches(): void { function clearCommandsCache (line 534) | function clearCommandsCache(): void { function getMcpSkillCommands (line 547) | function getMcpSkillCommands( constant REMOTE_SAFE_COMMANDS (line 619) | const REMOTE_SAFE_COMMANDS: Set = new Set([ constant BRIDGE_SAFE_COMMANDS (line 651) | const BRIDGE_SAFE_COMMANDS: Set = new Set( function isBridgeSafeCommand (line 672) | function isBridgeSafeCommand(cmd: Command): boolean { function filterCommandsForRemoteMode (line 684) | function filterCommandsForRemoteMode(commands: Command[]): Command[] { function findCommand (line 688) | function findCommand( function hasCommand (line 700) | function hasCommand(commandName: string, commands: Command[]): boolean { function getCommand (line 704) | function getCommand(commandName: string, commands: Command[]): Command { function formatDescriptionWithSource (line 728) | function formatDescriptionWithSource(cmd: Command): string { FILE: restored-src/src/commands/add-dir/add-dir.tsx function AddDirError (line 15) | function AddDirError(t0) { function call (line 65) | async function call(onDone: LocalJSXCommandOnDone, context: LocalJSXComm... FILE: restored-src/src/commands/add-dir/validation.ts type AddDirectoryResult (line 12) | type AddDirectoryResult = function validateDirectoryForWorkspace (line 31) | async function validateDirectoryForWorkspace( function addDirHelpMessage (line 95) | function addDirHelpMessage(result: AddDirectoryResult): string { FILE: restored-src/src/commands/advisor.ts method isHidden (line 102) | get isHidden() { FILE: restored-src/src/commands/agents/agents.tsx function call (line 6) | async function call(onDone: LocalJSXCommandOnDone, context: ToolUseConte... FILE: restored-src/src/commands/branch/branch.ts type TranscriptEntry (line 26) | type TranscriptEntry = TranscriptMessage & { function deriveFirstPrompt (line 38) | function deriveFirstPrompt( function createFork (line 61) | async function createFork(customTitle?: string): Promise<{ function getUniqueForkName (line 179) | async function getUniqueForkName(baseName: string): Promise { function call (line 222) | async function call( FILE: restored-src/src/commands/bridge-kick.ts constant USAGE (line 40) | const USAGE = `/bridge-kick FILE: restored-src/src/commands/bridge/bridge.tsx type Props (line 21) | type Props = { function BridgeToggle (line 38) | function BridgeToggle(t0) { function _temp3 (line 146) | function _temp3(s_1) { function _temp2 (line 149) | function _temp2(s_0) { function _temp (line 152) | function _temp(s) { function BridgeDisconnectDialog (line 155) | function BridgeDisconnectDialog(t0) { function _temp10 (line 432) | function _temp10(line, i_1) { function _temp1 (line 435) | function _temp1(l) { function _temp0 (line 438) | function _temp0(i_0) { function _temp9 (line 441) | function _temp9(i) { function _temp8 (line 444) | function _temp8(prev_0) { function _temp7 (line 447) | function _temp7(prev) { function _temp6 (line 458) | function _temp6(s_1) { function _temp5 (line 461) | function _temp5(s_0) { function _temp4 (line 464) | function _temp4(s) { function checkBridgePrerequisites (line 467) | async function checkBridgePrerequisites(): Promise { function call (line 505) | async function call(onDone: LocalJSXCommandOnDone, _context: ToolUseCont... FILE: restored-src/src/commands/bridge/index.ts function isEnabled (line 5) | function isEnabled(): boolean { method isHidden (line 19) | get isHidden() { FILE: restored-src/src/commands/brief.ts type BriefConfig (line 27) | type BriefConfig = z.infer> constant DEFAULT_BRIEF_CONFIG (line 29) | const DEFAULT_BRIEF_CONFIG: BriefConfig = { function getBriefConfig (line 38) | function getBriefConfig(): BriefConfig { method call (line 60) | async call( FILE: restored-src/src/commands/btw/btw.tsx type BtwComponentProps (line 26) | type BtwComponentProps = { constant CHROME_ROWS (line 33) | const CHROME_ROWS = 5; constant OUTER_CHROME_ROWS (line 34) | const OUTER_CHROME_ROWS = 6; constant SCROLL_LINES (line 35) | const SCROLL_LINES = 3; function BtwSideQuestion (line 36) | function BtwSideQuestion(t0) { function _temp (line 198) | function _temp(f) { function stripInProgressAssistantMessage (line 201) | function stripInProgressAssistantMessage(messages: Message[]): Message[] { function buildCacheSafeParams (line 208) | async function buildCacheSafeParams(context: ProcessUserInputContext): P... function call (line 229) | async function call(onDone: LocalJSXCommandOnDone, context: ProcessUserI... FILE: restored-src/src/commands/chrome/chrome.tsx constant CHROME_EXTENSION_URL (line 14) | const CHROME_EXTENSION_URL = 'https://claude.ai/chrome'; constant CHROME_PERMISSIONS_URL (line 15) | const CHROME_PERMISSIONS_URL = 'https://clau.de/chrome/permissions'; constant CHROME_RECONNECT_URL (line 16) | const CHROME_RECONNECT_URL = 'https://clau.de/chrome/reconnect'; type MenuAction (line 17) | type MenuAction = 'install-extension' | 'reconnect' | 'manage-permission... type Props (line 18) | type Props = { function ClaudeInChromeMenu (line 25) | function ClaudeInChromeMenu(t0) { function _temp5 (line 263) | function _temp5(k) { function _temp4 (line 266) | function _temp4(k_0) { function _temp3 (line 269) | function _temp3(k_1) { function _temp2 (line 272) | function _temp2(c) { function _temp (line 275) | function _temp(s) { FILE: restored-src/src/commands/clear/caches.ts function clearSessionCaches (line 47) | function clearSessionCaches( FILE: restored-src/src/commands/clear/conversation.ts function clearConversation (line 49) | async function clearConversation({ FILE: restored-src/src/commands/color/color.ts constant RESET_ALIASES (line 18) | const RESET_ALIASES = ['default', 'reset', 'none', 'gray', 'grey'] as const function call (line 20) | async function call( FILE: restored-src/src/commands/commit-push-pr.ts constant ALLOWED_TOOLS (line 10) | const ALLOWED_TOOLS = [ function getPromptContent (line 26) | function getPromptContent( method contentLength (line 113) | get contentLength() { method getPromptForCommand (line 119) | async getPromptForCommand(args, context) { FILE: restored-src/src/commands/commit.ts constant ALLOWED_TOOLS (line 6) | const ALLOWED_TOOLS = [ function getPromptContent (line 12) | function getPromptContent(): string { method getPromptForCommand (line 65) | async getPromptForCommand(_args, context) { FILE: restored-src/src/commands/compact/compact.ts function compactViaReactive (line 139) | async function compactViaReactive( function buildDisplayText (line 230) | function buildDisplayText( function getCacheSharingParams (line 250) | async function getCacheSharingParams( FILE: restored-src/src/commands/context/context-noninteractive.ts type CollectContextDataInput (line 22) | type CollectContextDataInput = { function collectContextData (line 34) | async function collectContextData( function call (line 79) | async function call( function formatContextAsMarkdownTable (line 90) | function formatContextAsMarkdownTable(data: ContextData): string { FILE: restored-src/src/commands/context/context.tsx function toApiView (line 18) | function toApiView(messages: Message[]): Message[] { function call (line 30) | async function call(onDone: LocalJSXCommandOnDone, context: LocalJSXComm... FILE: restored-src/src/commands/context/index.ts method isHidden (line 17) | get isHidden() { method isEnabled (line 20) | isEnabled() { FILE: restored-src/src/commands/copy/copy.tsx constant COPY_DIR (line 23) | const COPY_DIR = join(tmpdir(), 'claude'); constant RESPONSE_FILENAME (line 24) | const RESPONSE_FILENAME = 'response.md'; constant MAX_LOOKBACK (line 25) | const MAX_LOOKBACK = 20; type CodeBlock (line 26) | type CodeBlock = { function extractCodeBlocks (line 30) | function extractCodeBlocks(markdown: string): CodeBlock[] { function collectRecentAssistantTexts (line 50) | function collectRecentAssistantTexts(messages: Message[]): string[] { function fileExtension (line 62) | function fileExtension(lang: string | undefined): string { function writeToFile (line 73) | async function writeToFile(text: string, filename: string): Promise { FILE: restored-src/src/commands/extra-usage/extra-usage-noninteractive.ts function call (line 3) | async function call(): Promise<{ type: 'text'; value: string }> { FILE: restored-src/src/commands/extra-usage/extra-usage.tsx function call (line 6) | async function call(onDone: LocalJSXCommandOnDone, context: LocalJSXComm... FILE: restored-src/src/commands/extra-usage/index.ts function isExtraUsageAllowed (line 6) | function isExtraUsageAllowed(): boolean { method isHidden (line 27) | get isHidden() { FILE: restored-src/src/commands/fast/fast.tsx function applyFastMode (line 16) | function applyFastMode(enable: boolean, setAppState: (f: (prev: AppState... function FastModePicker (line 41) | function FastModePicker(t0) { function _temp4 (line 211) | function _temp4(prev_0) { function _temp3 (line 214) | function _temp3(prev) { function _temp2 (line 220) | function _temp2(s_0) { function _temp (line 223) | function _temp(s) { function handleFastModeShortcut (line 226) | async function handleFastModeShortcut(enable: boolean, getAppState: () =... function call (line 248) | async function call(onDone: LocalJSXCommandOnDone, context: LocalJSXComm... FILE: restored-src/src/commands/fast/index.ts method description (line 11) | get description() { method isHidden (line 16) | get isHidden() { method immediate (line 20) | get immediate() { FILE: restored-src/src/commands/feedback/feedback.tsx function renderFeedbackComponent (line 8) | function renderFeedbackComponent(onDone: (result?: string, options?: { function call (line 21) | async function call(onDone: LocalJSXCommandOnDone, context: LocalJSXComm... FILE: restored-src/src/commands/files/files.ts function call (line 7) | async function call( FILE: restored-src/src/commands/heapdump/heapdump.ts function call (line 3) | async function call(): Promise<{ type: 'text'; value: string }> { FILE: restored-src/src/commands/ide/ide.tsx type IDEScreenProps (line 18) | type IDEScreenProps = { function IDEScreen (line 25) | function IDEScreen(t0) { function _temp3 (line 198) | function _temp3(ide_3, index) { function _temp2 (line 201) | function _temp2(ide_2) { function _temp (line 204) | function _temp(acc, ide_0) { function findCurrentIDE (line 208) | async function findCurrentIDE(availableIDEs: DetectedIDEInfo[], dynamicM... type IDEOpenSelectionProps (line 220) | type IDEOpenSelectionProps = { function IDEOpenSelection (line 227) | function IDEOpenSelection(t0) { function _temp4 (line 310) | function _temp4(ide_0) { function RunningIDESelector (line 316) | function RunningIDESelector(t0) { function _temp5 (line 389) | function _temp5(ide) { function InstallOnMount (line 395) | function InstallOnMount(t0) { function call (line 419) | async function call(onDone: (result?: string, options?: { constant IDE_CONNECTION_TIMEOUT_MS (line 507) | const IDE_CONNECTION_TIMEOUT_MS = 35000; type IDECommandFlowProps (line 508) | type IDECommandFlowProps = { function IDECommandFlow (line 518) | function IDECommandFlow({ function formatWorkspaceFolders (line 612) | function formatWorkspaceFolders(folders: string[], maxLength: number = 1... FILE: restored-src/src/commands/init-verifiers.ts method getPromptForCommand (line 11) | async getPromptForCommand() { FILE: restored-src/src/commands/init.ts constant OLD_INIT_PROMPT (line 6) | const OLD_INIT_PROMPT = `Please analyze this codebase and create a CLAUD... constant NEW_INIT_PROMPT (line 28) | const NEW_INIT_PROMPT = `Set up a minimal CLAUDE.md (and optionally skil... method description (line 229) | get description() { method getPromptForCommand (line 239) | async getPromptForCommand() { FILE: restored-src/src/commands/insights.ts function getAnalysisModel (line 41) | function getAnalysisModel(): string { function getInsightsModel (line 46) | function getInsightsModel(): string { type RemoteHostInfo (line 54) | type RemoteHostInfo = { type SessionMeta (line 228) | type SessionMeta = { type SessionFacets (line 260) | type SessionFacets = { type AggregatedData (line 275) | type AggregatedData = { constant EXTENSION_TO_LANGUAGE (line 332) | const EXTENSION_TO_LANGUAGE: Record = { constant LABEL_MAP (line 352) | const LABEL_MAP: Record = { function getDataDir (line 420) | function getDataDir(): string { function getFacetsDir (line 423) | function getFacetsDir(): string { function getSessionMetaDir (line 426) | function getSessionMetaDir(): string { constant FACET_EXTRACTION_PROMPT (line 430) | const FACET_EXTRACTION_PROMPT = `Analyze this Claude Code session and ex... function getLanguageFromPath (line 462) | function getLanguageFromPath(filePath: string): string | null { function extractToolStats (line 467) | function extractToolStats(log: LogOption): { function hasValidDates (line 730) | function hasValidDates(log: LogOption): boolean { function logToSessionMeta (line 737) | function logToSessionMeta(log: LogOption): SessionMeta { function deduplicateSessionBranches (line 812) | function deduplicateSessionBranches( function formatTranscriptForFacets (line 831) | function formatTranscriptForFacets(log: LogOption): string { constant SUMMARIZE_CHUNK_PROMPT (line 870) | const SUMMARIZE_CHUNK_PROMPT = `Summarize this portion of a Claude Code ... function summarizeTranscriptChunk (line 881) | async function summarizeTranscriptChunk(chunk: string): Promise { function formatTranscriptWithSummarization (line 906) | async function formatTranscriptWithSummarization( function loadCachedFacets (line 941) | async function loadCachedFacets( function saveFacets (line 963) | async function saveFacets(facets: SessionFacets): Promise { function loadCachedSessionMeta (line 976) | async function loadCachedSessionMeta( function saveSessionMeta (line 988) | async function saveSessionMeta(meta: SessionMeta): Promise { function extractFacetsFromAPI (line 1001) | async function extractFacetsFromAPI( function detectMultiClauding (line 1062) | function detectMultiClauding( function aggregateData (line 1145) | function aggregateData( type InsightSection (line 1329) | type InsightSection = { constant INSIGHT_SECTIONS (line 1336) | const INSIGHT_SECTIONS: InsightSection[] = [ type InsightResults (line 1497) | type InsightResults = { function generateSectionInsight (line 1572) | async function generateSectionInsight( function generateParallelInsights (line 1612) | async function generateParallelInsights( function escapeHtmlWithBold (line 1801) | function escapeHtmlWithBold(text: string): string { constant SATISFACTION_ORDER (line 1807) | const SATISFACTION_ORDER = [ constant OUTCOME_ORDER (line 1816) | const OUTCOME_ORDER = [ function generateBarChart (line 1824) | function generateBarChart( function generateResponseTimeHistogram (line 1863) | function generateResponseTimeHistogram(times: number[]): string { function generateTimeOfDayChart (line 1902) | function generateTimeOfDayChart(messageHours: number[]): string { function getHourCountsJson (line 1939) | function getHourCountsJson(messageHours: number[]): string { function generateHtmlReport (line 1947) | function generateHtmlReport( type InsightsExport (line 2655) | type InsightsExport = { function buildExportData (line 2679) | function buildExportData( type LiteSessionInfo (line 2743) | type LiteSessionInfo = { function scanAllSessions (line 2755) | async function scanAllSessions(): Promise { function generateUsageReport (line 2796) | async function generateUsageReport(options?: { function safeEntries (line 3025) | function safeEntries( function safeKeys (line 3031) | function safeKeys(obj: Record | undefined | null): stri... method getPromptForCommand (line 3046) | async getPromptForCommand(args) { function isValidSessionFacets (line 3184) | function isValidSessionFacets(obj: unknown): obj is SessionFacets { FILE: restored-src/src/commands/install-github-app/ApiKeyStep.tsx type ApiKeyStepProps (line 7) | interface ApiKeyStepProps { function ApiKeyStep (line 18) | function ApiKeyStep(t0) { FILE: restored-src/src/commands/install-github-app/CheckExistingSecretStep.tsx type CheckExistingSecretStepProps (line 7) | interface CheckExistingSecretStepProps { function CheckExistingSecretStep (line 14) | function CheckExistingSecretStep(t0) { FILE: restored-src/src/commands/install-github-app/CheckGitHubStep.tsx function CheckGitHubStep (line 4) | function CheckGitHubStep() { FILE: restored-src/src/commands/install-github-app/ChooseRepoStep.tsx type ChooseRepoStepProps (line 7) | interface ChooseRepoStepProps { function ChooseRepoStep (line 15) | function ChooseRepoStep(t0) { FILE: restored-src/src/commands/install-github-app/CreatingStep.tsx type CreatingStepProps (line 5) | interface CreatingStepProps { function CreatingStep (line 13) | function CreatingStep(t0) { FILE: restored-src/src/commands/install-github-app/ErrorStep.tsx type ErrorStepProps (line 5) | interface ErrorStepProps { function ErrorStep (line 10) | function ErrorStep(t0) { function _temp (line 82) | function _temp(instruction, index) { FILE: restored-src/src/commands/install-github-app/ExistingWorkflowStep.tsx type ExistingWorkflowStepProps (line 5) | interface ExistingWorkflowStepProps { function ExistingWorkflowStep (line 9) | function ExistingWorkflowStep(t0) { FILE: restored-src/src/commands/install-github-app/InstallAppStep.tsx type InstallAppStepProps (line 7) | interface InstallAppStepProps { function InstallAppStep (line 11) | function InstallAppStep(t0) { FILE: restored-src/src/commands/install-github-app/OAuthFlowStep.tsx type OAuthFlowStepProps (line 13) | interface OAuthFlowStepProps { type OAuthStatus (line 17) | type OAuthStatus = { constant PASTE_HERE_MSG (line 35) | const PASTE_HERE_MSG = 'Paste code here if prompted > '; function OAuthFlowStep (line 36) | function OAuthFlowStep({ FILE: restored-src/src/commands/install-github-app/SuccessStep.tsx type SuccessStepProps (line 4) | type SuccessStepProps = { function SuccessStep (line 10) | function SuccessStep(t0) { FILE: restored-src/src/commands/install-github-app/WarningsStep.tsx type WarningsStepProps (line 8) | interface WarningsStepProps { function WarningsStep (line 12) | function WarningsStep(t0) { function _temp2 (line 67) | function _temp2(warning, index) { function _temp (line 70) | function _temp(instruction, i) { FILE: restored-src/src/commands/install-github-app/install-github-app.tsx constant INITIAL_STATE (line 28) | const INITIAL_STATE: State = { function InstallGitHubApp (line 46) | function InstallGitHubApp(props: { function call (line 584) | async function call(onDone: LocalJSXCommandOnDone): Promise { FILE: restored-src/src/commands/install.tsx type InstallProps (line 14) | interface InstallProps { type InstallState (line 21) | type InstallState = { function getInstallationPath (line 42) | function getInstallationPath(): string { function SetupNotes (line 53) | function SetupNotes(t0) { function _temp (line 86) | function _temp(message, index) { function Install (line 89) | function Install({ method call (line 284) | async call(onDone: (result: string, options?: { FILE: restored-src/src/commands/keybindings/keybindings.ts function call (line 11) | async function call(): Promise<{ type: 'text'; value: string }> { FILE: restored-src/src/commands/login/login.tsx function call (line 19) | async function call(onDone: LocalJSXCommandOnDone, context: LocalJSXComm... function Login (line 60) | function Login(props) { function _temp (line 101) | function _temp(exitState) { FILE: restored-src/src/commands/logout/logout.tsx function performLogout (line 16) | async function performLogout({ function clearAuthRelatedCaches (line 51) | async function clearAuthRelatedCaches(): Promise { function call (line 72) | async function call(): Promise { FILE: restored-src/src/commands/mcp/addCommand.ts function registerMcpAddCommand (line 33) | function registerMcpAddCommand(mcp: Command): void { FILE: restored-src/src/commands/mcp/mcp.tsx function MCPToggle (line 12) | function MCPToggle(t0) { function _temp2 (line 57) | function _temp2(c) { function _temp (line 60) | function _temp(s) { function call (line 63) | async function call(onDone: LocalJSXCommandOnDone, _context: unknown, ar... FILE: restored-src/src/commands/mcp/xaaIdpCommand.ts function registerMcpXaaIdpCommand (line 24) | function registerMcpXaaIdpCommand(mcp: Command): void { FILE: restored-src/src/commands/memory/memory.tsx function MemoryCommand (line 14) | function MemoryCommand({ FILE: restored-src/src/commands/mobile/mobile.tsx type Platform (line 10) | type Platform = 'ios' | 'android'; type Props (line 11) | type Props = { constant PLATFORMS (line 14) | const PLATFORMS: Record { FILE: restored-src/src/commands/passes/index.ts method description (line 10) | get description() { method isHidden (line 17) | get isHidden() { FILE: restored-src/src/commands/passes/passes.tsx function call (line 7) | async function call(onDone: LocalJSXCommandOnDone): Promise { function getSkillDirNames (line 160) | async function getSkillDirNames(dirPath: string): Promise { function PluginComponentsDisplay (line 194) | function PluginComponentsDisplay({ function checkIfLocalPlugin (line 376) | async function checkIfLocalPlugin(pluginName: string, marketplaceName: s... function filterManagedDisabledPlugins (line 391) | function filterManagedDisabledPlugins(plugins: LoadedPlugin[]): LoadedPl... function ManagePlugins (line 397) | function ManagePlugins({ FILE: restored-src/src/commands/plugin/PluginErrors.tsx function formatErrorMessage (line 2) | function formatErrorMessage(error: PluginError): string { function getErrorGuidance (line 61) | function getErrorGuidance(error: PluginError): string | null { FILE: restored-src/src/commands/plugin/PluginOptionsDialog.tsx function buildFinalValues (line 24) | function buildFinalValues(fields: string[], collected: Record = { function usePagination (line 48) | function usePagination({ FILE: restored-src/src/commands/pr_comments/index.ts method getPromptWhileMarketplaceIsPrivate (line 9) | async getPromptWhileMarketplaceIsPrivate(args) { FILE: restored-src/src/commands/privacy-settings/privacy-settings.tsx constant FALLBACK_MESSAGE (line 6) | const FALLBACK_MESSAGE = 'Review and manage your privacy settings at htt... function call (line 7) | async function call(onDone: LocalJSXCommandOnDone): Promise): string { function call (line 19) | async function call(): Promise { FILE: restored-src/src/commands/reload-plugins/reload-plugins.ts function n (line 59) | function n(count: number, noun: string): string { FILE: restored-src/src/commands/remote-env/index.ts method isHidden (line 11) | get isHidden() { FILE: restored-src/src/commands/remote-env/remote-env.tsx function call (line 4) | async function call(onDone: LocalJSXCommandOnDone): Promise { function createDefaultEnvironment (line 119) | async function createDefaultEnvironment(): Promise { function isSignedIn (line 171) | async function isSignedIn(): Promise { function getCodeWebUrl (line 180) | function getCodeWebUrl(): string { FILE: restored-src/src/commands/remote-setup/index.ts method isHidden (line 14) | get isHidden() { FILE: restored-src/src/commands/remote-setup/remote-setup.tsx type CheckResult (line 13) | type CheckResult = { function checkLoginState (line 23) | async function checkLoginState(): Promise { function errorMessage (line 62) | function errorMessage(err: ImportTokenError, codeUrl: string): string { type Step (line 74) | type Step = { function Web (line 82) | function Web({ function call (line 184) | async function call(onDone: LocalJSXCommandOnDone): Promise = { function isVSCodeRemoteSSH (line 39) | function isVSCodeRemoteSSH(): boolean { function getNativeCSIuTerminalDisplayName (line 47) | function getNativeCSIuTerminalDisplayName(): string | null { function formatPathLink (line 65) | function formatPathLink(filePath: string): string { function shouldOfferTerminalSetup (line 73) | function shouldOfferTerminalSetup(): boolean { function setupTerminal (line 79) | async function setupTerminal(theme: ThemeName): Promise { function isShiftEnterKeyBindingInstalled (line 127) | function isShiftEnterKeyBindingInstalled(): boolean { function hasUsedBackslashReturn (line 130) | function hasUsedBackslashReturn(): boolean { function markBackslashReturnUsed (line 133) | function markBackslashReturnUsed(): void { function call (line 142) | async function call(onDone: LocalJSXCommandOnDone, context: ToolUseConte... type VSCodeKeybinding (line 186) | type VSCodeKeybinding = { function installBindingsForVSCodeTerminal (line 194) | async function installBindingsForVSCodeTerminal(editor: 'VSCode' | 'Curs... function enableOptionAsMetaForProfile (line 270) | async function enableOptionAsMetaForProfile(profileName: string): Promis... function disableAudioBellForProfile (line 289) | async function disableAudioBellForProfile(profileName: string): Promise<... function enableOptionAsMetaForTerminal (line 310) | async function enableOptionAsMetaForTerminal(theme: ThemeName): Promise<... function installBindingsForAlacritty (line 373) | async function installBindingsForAlacritty(theme: ThemeName): Promise { FILE: restored-src/src/commands/theme/theme.tsx type Props (line 8) | type Props = { function ThemePickerCommand (line 13) | function ThemePickerCommand(t0) { FILE: restored-src/src/commands/thinkback-play/thinkback-play.ts constant INTERNAL_MARKETPLACE_NAME (line 7) | const INTERNAL_MARKETPLACE_NAME = 'claude-code-marketplace' constant SKILL_NAME (line 8) | const SKILL_NAME = 'thinkback' function getPluginId (line 10) | function getPluginId(): string { function call (line 18) | async function call(): Promise { FILE: restored-src/src/commands/thinkback/thinkback.tsx constant INTERNAL_MARKETPLACE_NAME (line 28) | const INTERNAL_MARKETPLACE_NAME = 'claude-code-marketplace'; constant INTERNAL_MARKETPLACE_REPO (line 29) | const INTERNAL_MARKETPLACE_REPO = 'anthropics/claude-code-marketplace'; constant OFFICIAL_MARKETPLACE_REPO (line 30) | const OFFICIAL_MARKETPLACE_REPO = 'anthropics/claude-plugins-official'; function getMarketplaceName (line 31) | function getMarketplaceName(): string { function getMarketplaceRepo (line 34) | function getMarketplaceRepo(): string { function getPluginId (line 37) | function getPluginId(): string { constant SKILL_NAME (line 40) | const SKILL_NAME = 'thinkback'; function getThinkbackSkillDir (line 45) | async function getThinkbackSkillDir(): Promise { function playAnimation (line 59) | async function playAnimation(skillDir: string): Promise<{ type InstallState (line 138) | type InstallState = { function ThinkbackInstaller (line 152) | function ThinkbackInstaller({ type MenuAction (line 269) | type MenuAction = 'play' | 'edit' | 'fix' | 'regenerate'; type GenerativeAction (line 270) | type GenerativeAction = Exclude; function ThinkbackMenu (line 271) | function ThinkbackMenu(t0) { constant EDIT_PROMPT (line 384) | const EDIT_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill ... constant FIX_PROMPT (line 385) | const FIX_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill w... constant REGENERATE_PROMPT (line 386) | const REGENERATE_PROMPT = 'Use the Skill tool to invoke the "thinkback" ... function ThinkbackFlow (line 387) | function ThinkbackFlow(t0) { function call (line 548) | async function call(onDone: (result?: string, options?: { FILE: restored-src/src/commands/ultraplan.tsx constant ULTRAPLAN_TIMEOUT_MS (line 24) | const ULTRAPLAN_TIMEOUT_MS = 30 * 60 * 1000; constant CCR_TERMS_URL (line 25) | const CCR_TERMS_URL = 'https://code.claude.com/docs/en/claude-code-on-th... function getUltraplanModel (line 32) | function getUltraplanModel(): string { constant DEFAULT_INSTRUCTIONS (line 48) | const DEFAULT_INSTRUCTIONS: string = (typeof _rawPrompt === 'string' ? _... constant ULTRAPLAN_INSTRUCTIONS (line 56) | const ULTRAPLAN_INSTRUCTIONS: string = "external" === 'ant' && process.e... function buildUltraplanPrompt (line 63) | function buildUltraplanPrompt(blurb: string, seedPlan?: string): string { function startDetachedPoll (line 74) | function startDetachedPoll(taskId: string, sessionId: string, url: strin... function buildLaunchMessage (line 185) | function buildLaunchMessage(disconnectedBridge?: boolean): string { function buildSessionReadyMessage (line 189) | function buildSessionReadyMessage(url: string): string { function buildAlreadyActiveMessage (line 192) | function buildAlreadyActiveMessage(url: string | undefined): string { function stopUltraplan (line 203) | async function stopUltraplan(taskId: string, sessionId: string, setAppSt... function launchUltraplan (line 234) | async function launchUltraplan(opts: { function launchDetached (line 294) | async function launchDetached(opts: { FILE: restored-src/src/commands/upgrade/upgrade.tsx function call (line 9) | async function call(onDone: LocalJSXCommandOnDone, context: LocalJSXComm... FILE: restored-src/src/commands/voice/index.ts method isHidden (line 13) | get isHidden() { FILE: restored-src/src/commands/voice/voice.ts constant LANG_HINT_MAX_SHOWS (line 14) | const LANG_HINT_MAX_SHOWS = 2 FILE: restored-src/src/components/AgentProgressLine.tsx type Props (line 6) | type Props = { function AgentProgressLine (line 23) | function AgentProgressLine(t0) { FILE: restored-src/src/components/App.tsx type Props (line 8) | type Props = { function App (line 19) | function App(t0) { FILE: restored-src/src/components/ApproveApiKey.tsx type Props (line 7) | type Props = { function ApproveApiKey (line 11) | function ApproveApiKey(t0) { FILE: restored-src/src/components/AutoModeOptInDialog.tsx constant AUTO_MODE_DESCRIPTION (line 10) | const AUTO_MODE_DESCRIPTION = "Auto mode lets Claude handle permission p... type Props (line 11) | type Props = { function AutoModeOptInDialog (line 17) | function AutoModeOptInDialog(t0) { function _temp (line 139) | function _temp() { FILE: restored-src/src/components/AutoUpdater.tsx type Props (line 15) | type Props = { function AutoUpdater (line 23) | function AutoUpdater({ FILE: restored-src/src/components/AutoUpdaterWrapper.tsx type Props (line 11) | type Props = { function AutoUpdaterWrapper (line 19) | function AutoUpdaterWrapper(t0) { FILE: restored-src/src/components/AwsAuthStatusBox.tsx constant URL_RE (line 5) | const URL_RE = /https?:\/\/\S+/; function AwsAuthStatusBox (line 6) | function AwsAuthStatusBox() { function _temp (line 71) | function _temp(line, index) { FILE: restored-src/src/components/BaseTextInput.tsx type BaseTextInputComponentProps (line 10) | type BaseTextInputComponentProps = BaseTextInputProps & { function BaseTextInput (line 22) | function BaseTextInput(t0) { FILE: restored-src/src/components/BashModeProgress.tsx type Props (line 8) | type Props = { function BashModeProgress (line 13) | function BashModeProgress(t0) { FILE: restored-src/src/components/BridgeDialog.tsx type Props (line 17) | type Props = { function BridgeDialog (line 20) | function BridgeDialog(t0) { function _temp14 (line 343) | function _temp14(line, i) { function _temp13 (line 346) | function _temp13(l) { function _temp12 (line 349) | function _temp12(prev_0) { function _temp11 (line 358) | function _temp11(current) { function _temp10 (line 367) | function _temp10(prev) { function _temp1 (line 370) | function _temp1() {} function _temp0 (line 371) | function _temp0(s_8) { function _temp9 (line 374) | function _temp9(s_7) { function _temp8 (line 377) | function _temp8(s_6) { function _temp7 (line 380) | function _temp7(s_5) { function _temp6 (line 383) | function _temp6(s_4) { function _temp5 (line 386) | function _temp5(s_3) { function _temp4 (line 389) | function _temp4(s_2) { function _temp3 (line 392) | function _temp3(s_1) { function _temp2 (line 395) | function _temp2(s_0) { function _temp (line 398) | function _temp(s) { FILE: restored-src/src/components/BypassPermissionsModeDialog.tsx type Props (line 9) | type Props = { function BypassPermissionsModeDialog (line 12) | function BypassPermissionsModeDialog(t0) { function _temp2 (line 81) | function _temp2() { function _temp (line 84) | function _temp() { FILE: restored-src/src/components/ChannelDowngradeDialog.tsx type ChannelDowngradeChoice (line 6) | type ChannelDowngradeChoice = 'downgrade' | 'stay' | 'cancel'; type Props (line 7) | type Props = { function ChannelDowngradeDialog (line 16) | function ChannelDowngradeDialog(t0) { FILE: restored-src/src/components/ClaudeCodeHint/PluginHintMenu.tsx type Props (line 5) | type Props = { constant AUTO_DISMISS_MS (line 12) | const AUTO_DISMISS_MS = 30_000; function PluginHintMenu (line 13) | function PluginHintMenu({ FILE: restored-src/src/components/ClaudeInChromeOnboarding.tsx constant CHROME_EXTENSION_URL (line 9) | const CHROME_EXTENSION_URL = 'https://claude.ai/chrome'; constant CHROME_PERMISSIONS_URL (line 10) | const CHROME_PERMISSIONS_URL = 'https://clau.de/chrome/permissions'; type Props (line 11) | type Props = { function ClaudeInChromeOnboarding (line 14) | function ClaudeInChromeOnboarding(t0) { function _temp (line 115) | function _temp(current) { FILE: restored-src/src/components/ClaudeMdExternalIncludesDialog.tsx type Props (line 9) | type Props = { function ClaudeMdExternalIncludesDialog (line 14) | function ClaudeMdExternalIncludesDialog(t0) { function _temp4 (line 117) | function _temp4(include, i) { function _temp3 (line 120) | function _temp3(current_0) { function _temp2 (line 127) | function _temp2(current) { function _temp (line 134) | function _temp() { FILE: restored-src/src/components/ClickableImageRef.tsx type Props (line 9) | type Props = { function ClickableImageRef (line 23) | function ClickableImageRef(t0) { FILE: restored-src/src/components/CompactSummary.tsx type Props (line 10) | type Props = { function CompactSummary (line 14) | function CompactSummary(t0) { FILE: restored-src/src/components/ConfigurableShortcutHint.tsx type Props (line 6) | type Props = { function ConfigurableShortcutHint (line 33) | function ConfigurableShortcutHint(t0) { FILE: restored-src/src/components/ConsoleOAuthFlow.tsx type Props (line 20) | type Props = { type OAuthStatus (line 26) | type OAuthStatus = { constant PASTE_HERE_MSG (line 53) | const PASTE_HERE_MSG = 'Paste code here if prompted > '; function ConsoleOAuthFlow (line 54) | function ConsoleOAuthFlow({ type OAuthStatusMessageProps (line 332) | type OAuthStatusMessageProps = { function OAuthStatusMessage (line 347) | function OAuthStatusMessage(t0) { FILE: restored-src/src/components/ContextSuggestions.tsx type Props (line 8) | type Props = { function ContextSuggestions (line 11) | function ContextSuggestions(t0) { function _temp (line 44) | function _temp(suggestion, i) { FILE: restored-src/src/components/ContextVisualization.tsx constant RESERVED_CATEGORY_NAME (line 12) | const RESERVED_CATEGORY_NAME = 'Autocompact buffer'; function CollapseStatus (line 21) | function CollapseStatus() { constant SOURCE_DISPLAY_ORDER (line 74) | const SOURCE_DISPLAY_ORDER = ['Project', 'User', 'Managed', 'Plugin', 'B... function groupBySource (line 77) | function groupBySource = { function SelectMulti (line 58) | function SelectMulti(t0) { function _temp (line 212) | function _temp() {} FILE: restored-src/src/components/CustomSelect/option-map.ts type OptionMapItem (line 4) | type OptionMapItem = { class OptionMap (line 13) | class OptionMap extends Map> { method constructor (line 17) | constructor(options: OptionWithDescription[]) { FILE: restored-src/src/components/CustomSelect/select-input-option.tsx type Props (line 15) | type Props = { function SelectInputOption (line 78) | function SelectInputOption(t0) { function _temp (line 485) | function _temp(c) { FILE: restored-src/src/components/CustomSelect/select-option.tsx type SelectOptionProps (line 4) | type SelectOptionProps = { function SelectOption (line 41) | function SelectOption(t0) { FILE: restored-src/src/components/CustomSelect/select.tsx function getTextContent (line 16) | function getTextContent(node: ReactNode): string { type BaseOption (line 28) | type BaseOption = { type OptionWithDescription (line 35) | type OptionWithDescription = (BaseOption & { type SelectProps (line 70) | type SelectProps = { function Select (line 192) | function Select(t0) { function _temp9 (line 629) | function _temp9(c_3) { function _temp8 (line 632) | function _temp8(opt_0) { function _temp7 (line 635) | function _temp7(opt) { function _temp6 (line 638) | function _temp6(c_2) { function _temp5 (line 641) | function _temp5(c_1) { function _temp4 (line 644) | function _temp4() { function _temp3 (line 649) | function _temp3() { function _temp2 (line 654) | function _temp2(c) { function _temp (line 657) | function _temp(c_0) { function TwoColumnRow (line 660) | function TwoColumnRow(t0) { FILE: restored-src/src/components/CustomSelect/use-multi-select-state.ts type UseMultiSelectStateProps (line 14) | type UseMultiSelectStateProps = { type MultiSelectState (line 96) | type MultiSelectState = { function useMultiSelectState (line 153) | function useMultiSelectState({ FILE: restored-src/src/components/CustomSelect/use-select-input.ts type UseSelectProps (line 13) | type UseSelectProps = { FILE: restored-src/src/components/CustomSelect/use-select-navigation.ts type State (line 13) | type State = { type Action (line 40) | type Action = type SetFocusAction (line 48) | type SetFocusAction = { type FocusNextOptionAction (line 53) | type FocusNextOptionAction = { type FocusPreviousOptionAction (line 57) | type FocusPreviousOptionAction = { type FocusNextPageAction (line 61) | type FocusNextPageAction = { type FocusPreviousPageAction (line 65) | type FocusPreviousPageAction = { type ResetAction (line 69) | type ResetAction = { type UseSelectNavigationProps (line 332) | type UseSelectNavigationProps = { type SelectNavigation (line 361) | type SelectNavigation = { function useSelectNavigation (line 505) | function useSelectNavigation({ FILE: restored-src/src/components/CustomSelect/use-select-state.ts type UseSelectStateProps (line 5) | type UseSelectStateProps = { type SelectState (line 44) | type SelectState = { function useSelectState (line 127) | function useSelectState({ FILE: restored-src/src/components/DesktopHandoff.tsx constant DESKTOP_DOCS_URL (line 12) | const DESKTOP_DOCS_URL = 'https://clau.de/desktop'; function getDownloadUrl (line 13) | function getDownloadUrl(): string { type DesktopHandoffState (line 21) | type DesktopHandoffState = 'checking' | 'prompt-download' | 'flushing' |... type Props (line 22) | type Props = { function DesktopHandoff (line 27) | function DesktopHandoff(t0) { function _temp2 (line 186) | async function _temp2(onDone_0) { function _temp (line 192) | function _temp() {} FILE: restored-src/src/components/DesktopUpsell/DesktopUpsellStartup.tsx type DesktopUpsellConfig (line 11) | type DesktopUpsellConfig = { constant DESKTOP_UPSELL_DEFAULT (line 15) | const DESKTOP_UPSELL_DEFAULT: DesktopUpsellConfig = { function getDesktopUpsellConfig (line 19) | function getDesktopUpsellConfig(): DesktopUpsellConfig { function isSupportedPlatform (line 22) | function isSupportedPlatform(): boolean { function shouldShowDesktopUpsellStartup (line 25) | function shouldShowDesktopUpsellStartup(): boolean { type DesktopUpsellSelection (line 33) | type DesktopUpsellSelection = 'try' | 'not-now' | 'never'; type Props (line 34) | type Props = { function DesktopUpsellStartup (line 37) | function DesktopUpsellStartup(t0) { function _temp2 (line 147) | function _temp2(prev_0) { function _temp (line 156) | function _temp() { FILE: restored-src/src/components/DevBar.tsx function shouldShowDevBar (line 8) | function shouldShowDevBar(): boolean { function DevBar (line 11) | function DevBar() { function _temp (line 46) | function _temp(op) { FILE: restored-src/src/components/DevChannelsDialog.tsx type Props (line 8) | type Props = { function DevChannelsDialog (line 12) | function DevChannelsDialog(t0) { function _temp2 (line 99) | function _temp2(c) { function _temp (line 102) | function _temp() { FILE: restored-src/src/components/DiagnosticsDisplay.tsx type DiagnosticsAttachment (line 10) | type DiagnosticsAttachment = Extract { function Feedback (line 154) | function Feedback({ function createGitHubIssueUrl (line 393) | function createGitHubIssueUrl(feedbackId: string, title: string, descrip... function generateTitle (line 447) | async function generateTitle(description: string, abortSignal: AbortSign... function createFallbackTitle (line 475) | function createFallbackTitle(description: string): string { function sanitizeAndLogError (line 502) | function sanitizeAndLogError(err: unknown): void { function submitFeedback (line 518) | async function submitFeedback(data: FeedbackData, signal?: AbortSignal):... FILE: restored-src/src/components/FeedbackSurvey/FeedbackSurvey.tsx type Props (line 10) | type Props = { function FeedbackSurvey (line 20) | function FeedbackSurvey(t0) { type ThanksProps (line 104) | type ThanksProps = { function FeedbackSurveyThanks (line 111) | function FeedbackSurveyThanks(t0) { FILE: restored-src/src/components/FeedbackSurvey/FeedbackSurveyView.tsx type Props (line 6) | type Props = { constant RESPONSE_INPUTS (line 12) | const RESPONSE_INPUTS = ['0', '1', '2', '3'] as const; type ResponseInput (line 13) | type ResponseInput = (typeof RESPONSE_INPUTS)[number]; constant DEFAULT_MESSAGE (line 21) | const DEFAULT_MESSAGE = 'How is Claude doing this session? (optional)'; function FeedbackSurveyView (line 22) | function FeedbackSurveyView(t0) { FILE: restored-src/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx type TranscriptShareResponse (line 6) | type TranscriptShareResponse = 'yes' | 'no' | 'dont_ask_again'; type Props (line 7) | type Props = { constant RESPONSE_INPUTS (line 12) | const RESPONSE_INPUTS = ['1', '2', '3'] as const; type ResponseInput (line 13) | type ResponseInput = (typeof RESPONSE_INPUTS)[number]; function TranscriptSharePrompt (line 20) | function TranscriptSharePrompt(t0) { FILE: restored-src/src/components/FeedbackSurvey/submitTranscriptShare.ts type TranscriptShareResult (line 18) | type TranscriptShareResult = { type TranscriptShareTrigger (line 23) | type TranscriptShareTrigger = function submitTranscriptShare (line 29) | async function submitTranscriptShare( FILE: restored-src/src/components/FeedbackSurvey/useDebouncedDigitInput.ts constant DEFAULT_DEBOUNCE_MS (line 8) | const DEFAULT_DEBOUNCE_MS = 400 function useDebouncedDigitInput (line 18) | function useDebouncedDigitInput({ FILE: restored-src/src/components/FeedbackSurvey/useFeedbackSurvey.tsx type FeedbackSurveyConfig (line 17) | type FeedbackSurveyConfig = { type TranscriptAskConfig (line 27) | type TranscriptAskConfig = { constant DEFAULT_FEEDBACK_SURVEY_CONFIG (line 30) | const DEFAULT_FEEDBACK_SURVEY_CONFIG: FeedbackSurveyConfig = { constant DEFAULT_TRANSCRIPT_ASK_CONFIG (line 40) | const DEFAULT_TRANSCRIPT_ASK_CONFIG: TranscriptAskConfig = { function useFeedbackSurvey (line 43) | function useFeedbackSurvey(messages: Message[], isLoading: boolean, subm... FILE: restored-src/src/components/FeedbackSurvey/useMemorySurvey.tsx constant HIDE_THANKS_AFTER_MS (line 18) | const HIDE_THANKS_AFTER_MS = 3000; constant MEMORY_SURVEY_GATE (line 19) | const MEMORY_SURVEY_GATE = 'tengu_dunwich_bell'; constant MEMORY_SURVEY_EVENT (line 20) | const MEMORY_SURVEY_EVENT = 'tengu_memory_survey_event'; constant SURVEY_PROBABILITY (line 21) | const SURVEY_PROBABILITY = 0.2; constant TRANSCRIPT_SHARE_TRIGGER (line 22) | const TRANSCRIPT_SHARE_TRIGGER = 'memory_survey'; constant MEMORY_WORD_RE (line 23) | const MEMORY_WORD_RE = /\bmemor(?:y|ies)\b/i; function hasMemoryFileRead (line 24) | function hasMemoryFileRead(messages: Message[]): boolean { function useMemorySurvey (line 47) | function useMemorySurvey(messages: Message[], isLoading: boolean, hasAct... FILE: restored-src/src/components/FeedbackSurvey/usePostCompactSurvey.tsx constant HIDE_THANKS_AFTER_MS (line 13) | const HIDE_THANKS_AFTER_MS = 3000; constant POST_COMPACT_SURVEY_GATE (line 14) | const POST_COMPACT_SURVEY_GATE = 'tengu_post_compact_survey'; constant SURVEY_PROBABILITY (line 15) | const SURVEY_PROBABILITY = 0.2; function hasMessageAfterBoundary (line 17) | function hasMessageAfterBoundary(messages: Message[], boundaryUuid: stri... function usePostCompactSurvey (line 32) | function usePostCompactSurvey(messages, isLoading, t0, t1) { function _temp4 (line 172) | function _temp4(msg_0) { function _temp3 (line 175) | function _temp3(msg) { function _temp2 (line 178) | function _temp2(appearanceId_0, selected) { function _temp (line 193) | function _temp(appearanceId) { FILE: restored-src/src/components/FeedbackSurvey/useSurveyState.tsx type SurveyState (line 5) | type SurveyState = 'closed' | 'open' | 'thanks' | 'transcript_prompt' | ... type UseSurveyStateOptions (line 6) | type UseSurveyStateOptions = { function useSurveyState (line 14) | function useSurveyState({ FILE: restored-src/src/components/FileEditToolDiff.tsx type Props (line 14) | type Props = { type DiffData (line 18) | type DiffData = { function FileEditToolDiff (line 23) | function FileEditToolDiff(props) { function DiffBody (line 53) | function DiffBody(t0) { function DiffFrame (line 81) | function DiffFrame(t0) { function loadDiffData (line 106) | async function loadDiffData(file_path: string, edits: FileEdit[]): Promi... function diffToolInputsOnly (line 161) | function diffToolInputsOnly(filePath: string, edits: FileEdit[]): DiffDa... function normalizeEdit (line 172) | function normalizeEdit(fileContent: string, edit: FileEdit): FileEdit { FILE: restored-src/src/components/FileEditToolUpdatedMessage.tsx type Props (line 9) | type Props = { function FileEditToolUpdatedMessage (line 18) | function FileEditToolUpdatedMessage(t0) { function _temp4 (line 112) | function _temp4(acc_0, hunk_0) { function _temp3 (line 115) | function _temp3(__0) { function _temp2 (line 118) | function _temp2(acc, hunk) { function _temp (line 121) | function _temp(_) { FILE: restored-src/src/components/FileEditToolUseRejectedMessage.tsx constant MAX_LINES_TO_RENDER (line 11) | const MAX_LINES_TO_RENDER = 10; type Props (line 12) | type Props = { function FileEditToolUseRejectedMessage (line 24) | function FileEditToolUseRejectedMessage(t0) { FILE: restored-src/src/components/FilePathLink.tsx type Props (line 5) | type Props = { function FilePathLink (line 17) | function FilePathLink(t0) { FILE: restored-src/src/components/FullscreenLayout.tsx constant MODAL_TRANSCRIPT_PEEK (line 20) | const MODAL_TRANSCRIPT_PEEK = 2; type Props (line 31) | type Props = { function useUnseenDivider (line 86) | function useUnseenDivider(messageCount: number): { function countUnseenAssistantTurns (line 200) | function countUnseenAssistantTurns(messages: readonly Message[], divider... function assistantHasVisibleText (line 217) | function assistantHasVisibleText(m: Message): boolean { type UnseenDivider (line 224) | type UnseenDivider = { function computeUnseenDivider (line 239) | function computeUnseenDivider(messages: readonly Message[], dividerIndex... function FullscreenLayout (line 270) | function FullscreenLayout(t0) { function _temp3 (line 468) | function _temp3() { function _temp2 (line 481) | function _temp2(url) { function _temp (line 490) | function _temp() {} function NewMessagesPill (line 491) | function NewMessagesPill(t0) { function StickyPromptHeader (line 551) | function StickyPromptHeader(t0) { function SuggestionsOverlay (line 599) | function SuggestionsOverlay() { function DialogOverlay (line 621) | function DialogOverlay() { FILE: restored-src/src/components/GlobalSearchDialog.tsx type Props (line 18) | type Props = { type Match (line 22) | type Match = { constant VISIBLE_RESULTS (line 27) | const VISIBLE_RESULTS = 12; constant DEBOUNCE_MS (line 28) | const DEBOUNCE_MS = 100; constant PREVIEW_CONTEXT_LINES (line 29) | const PREVIEW_CONTEXT_LINES = 4; constant MAX_MATCHES_PER_FILE (line 31) | const MAX_MATCHES_PER_FILE = 10; constant MAX_TOTAL_MATCHES (line 32) | const MAX_TOTAL_MATCHES = 500; function GlobalSearchDialog (line 38) | function GlobalSearchDialog(t0) { function _temp4 (line 265) | function _temp4(query_0, controller_1, setMatches_0, setTruncated_0, set... function _temp3 (line 313) | function _temp3(m_2) { function _temp2 (line 316) | function _temp2() {} function _temp (line 317) | function _temp(m) { function matchKey (line 320) | function matchKey(m: Match): string { function parseRipgrepLine (line 331) | function parseRipgrepLine(line: string): Match | null { FILE: restored-src/src/components/HelpV2/Commands.tsx type Props (line 9) | type Props = { function Commands (line 17) | function Commands(t0) { function _temp (line 79) | function _temp(a, b) { FILE: restored-src/src/components/HelpV2/General.tsx function General (line 5) | function General() { FILE: restored-src/src/components/HelpV2/HelpV2.tsx type Props (line 14) | type Props = { function HelpV2 (line 20) | function HelpV2(t0) { FILE: restored-src/src/components/HighlightedCode.tsx type Props (line 11) | type Props = { constant DEFAULT_WIDTH (line 17) | const DEFAULT_WIDTH = 80; function CodeLine (line 137) | function CodeLine(t0) { FILE: restored-src/src/components/HighlightedCode/Fallback.tsx type Props (line 9) | type Props = { constant HL_CACHE_MAX (line 19) | const HL_CACHE_MAX = 500; function cachedHighlight (line 21) | function cachedHighlight(hl: NonNullable = { constant APPLE_EYES (line 67) | const APPLE_EYES: Record = { function Clawd (line 73) | function Clawd(t0) { function AppleTerminalClawd (line 183) | function AppleTerminalClawd(t0) { FILE: restored-src/src/components/LogoV2/CondensedLogo.tsx function CondensedLogo (line 19) | function CondensedLogo() { function _temp2 (line 155) | function _temp2(s_0) { function _temp (line 158) | function _temp(s) { FILE: restored-src/src/components/LogoV2/EmergencyTip.tsx constant CONFIG_NAME (line 6) | const CONFIG_NAME = 'tengu-top-of-feed-tip'; function EmergencyTip (line 7) | function EmergencyTip(): React.ReactNode { type TipOfFeed (line 42) | type TipOfFeed = { constant DEFAULT_TIP (line 46) | const DEFAULT_TIP: TipOfFeed = { function getTipOfFeed (line 55) | function getTipOfFeed(): TipOfFeed { FILE: restored-src/src/components/LogoV2/Feed.tsx type FeedLine (line 6) | type FeedLine = { type FeedConfig (line 10) | type FeedConfig = { type FeedProps (line 20) | type FeedProps = { function calculateFeedWidth (line 24) | function calculateFeedWidth(config: FeedConfig): number { function Feed (line 51) | function Feed(t0) { function _temp (line 109) | function _temp(line) { FILE: restored-src/src/components/LogoV2/FeedColumn.tsx type FeedColumnProps (line 7) | type FeedColumnProps = { function FeedColumn (line 11) | function FeedColumn(t0) { function _temp (line 56) | function _temp(feed) { FILE: restored-src/src/components/LogoV2/GuestPassesUpsell.tsx function resetIfPassesRefreshed (line 8) | function resetIfPassesRefreshed(): void { function shouldShowGuestPassesUpsell (line 22) | function shouldShowGuestPassesUpsell(): boolean { function useShowGuestPassesUpsell (line 36) | function useShowGuestPassesUpsell() { function _temp (line 40) | function _temp() { function incrementGuestPassesSeenCount (line 43) | function incrementGuestPassesSeenCount(): void { function GuestPassesUpsell (line 58) | function GuestPassesUpsell() { FILE: restored-src/src/components/LogoV2/LogoV2.tsx constant LEFT_PANEL_MAX_WIDTH (line 46) | const LEFT_PANEL_MAX_WIDTH = 50; function LogoV2 (line 47) | function LogoV2() { function _temp3 (line 528) | function _temp3(current) { function _temp2 (line 537) | function _temp2(s_0) { function _temp (line 540) | function _temp(s) { FILE: restored-src/src/components/LogoV2/Opus1mMergeNotice.tsx constant MAX_SHOW_COUNT (line 9) | const MAX_SHOW_COUNT = 6; function shouldShowOpus1mMergeNotice (line 10) | function shouldShowOpus1mMergeNotice(): boolean { function Opus1mMergeNotice (line 13) | function Opus1mMergeNotice() { FILE: restored-src/src/components/LogoV2/OverageCreditUpsell.tsx constant MAX_IMPRESSIONS (line 10) | const MAX_IMPRESSIONS = 3; function isEligibleForOverageCreditGrant (line 27) | function isEligibleForOverageCreditGrant(): boolean { function shouldShowOverageCreditUpsell (line 32) | function shouldShowOverageCreditUpsell(): boolean { function maybeRefreshOverageCreditCache (line 44) | function maybeRefreshOverageCreditCache(): void { function useShowOverageCreditUpsell (line 48) | function useShowOverageCreditUpsell() { function _temp (line 52) | function _temp() { function incrementOverageCreditUpsellSeenCount (line 56) | function incrementOverageCreditUpsellSeenCount(): void { function getUsageText (line 71) | function getUsageText(amount: string): string { constant FEED_SUBTITLE (line 77) | const FEED_SUBTITLE = 'On us. Works on third-party apps · /extra-usage'; function getFeedTitle (line 78) | function getFeedTitle(amount: string): string { type Props (line 81) | type Props = { function OverageCreditUpsell (line 85) | function OverageCreditUpsell(t0) { function createOverageCreditFeed (line 153) | function createOverageCreditFeed(): FeedConfig { FILE: restored-src/src/components/LogoV2/VoiceModeNotice.tsx constant MAX_SHOW_COUNT (line 11) | const MAX_SHOW_COUNT = 3; function VoiceModeNotice (line 12) | function VoiceModeNotice() { function VoiceModeNoticeInner (line 23) | function VoiceModeNoticeInner() { function _temp (line 65) | function _temp() { FILE: restored-src/src/components/LogoV2/WelcomeV2.tsx constant WELCOME_V2_WIDTH (line 5) | const WELCOME_V2_WIDTH = 58; function WelcomeV2 (line 6) | function WelcomeV2() { type AppleTerminalWelcomeV2Props (line 199) | type AppleTerminalWelcomeV2Props = { function AppleTerminalWelcomeV2 (line 203) | function AppleTerminalWelcomeV2(t0) { FILE: restored-src/src/components/LogoV2/feedConfigs.tsx function createRecentActivityFeed (line 11) | function createRecentActivityFeed(activities: LogOption[]): FeedConfig { function createWhatsNewFeed (line 27) | function createWhatsNewFeed(releaseNotes: string[]): FeedConfig { function createProjectOnboardingFeed (line 50) | function createProjectOnboardingFeed(steps: Step[]): FeedConfig { function createGuestPassesFeed (line 74) | function createGuestPassesFeed(): FeedConfig { FILE: restored-src/src/components/LspRecommendation/LspRecommendationMenu.tsx type Props (line 5) | type Props = { constant AUTO_DISMISS_MS (line 11) | const AUTO_DISMISS_MS = 30_000; function LspRecommendationMenu (line 12) | function LspRecommendationMenu({ FILE: restored-src/src/components/MCPServerApprovalDialog.tsx type Props (line 8) | type Props = { function MCPServerApprovalDialog (line 12) | function MCPServerApprovalDialog(t0) { FILE: restored-src/src/components/MCPServerDesktopImportDialog.tsx type Props (line 14) | type Props = { function MCPServerDesktopImportDialog (line 19) | function MCPServerDesktopImportDialog(t0) { FILE: restored-src/src/components/MCPServerDialogCopy.tsx function MCPServerDialogCopy (line 4) | function MCPServerDialogCopy() { FILE: restored-src/src/components/MCPServerMultiselectDialog.tsx type Props (line 13) | type Props = { function MCPServerMultiselectDialog (line 17) | function MCPServerMultiselectDialog(t0) { function _temp (line 127) | function _temp(server_0) { FILE: restored-src/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx type Props (line 10) | type Props = { function ManagedSettingsSecurityDialog (line 15) | function ManagedSettingsSecurityDialog(t0) { function _temp (line 146) | function _temp(item, index) { FILE: restored-src/src/components/ManagedSettingsSecurityDialog/utils.ts type DangerousShellSetting (line 8) | type DangerousShellSetting = (typeof DANGEROUS_SHELL_SETTINGS)[number] type DangerousSettings (line 10) | type DangerousSettings = { function extractDangerousSettings (line 24) | function extractDangerousSettings( function hasDangerousSettings (line 75) | function hasDangerousSettings(dangerous: DangerousSettings): boolean { function hasDangerousSettingsChanged (line 87) | function hasDangerousSettingsChanged( function formatDangerousSettingsList (line 123) | function formatDangerousSettingsList( FILE: restored-src/src/components/Markdown.tsx type Props (line 11) | type Props = { constant TOKEN_CACHE_MAX (line 22) | const TOKEN_CACHE_MAX = 500; constant MD_SYNTAX_RE (line 31) | const MD_SYNTAX_RE = /[#*`|[>\-_~]|\n\n|^\d+\. |\n\d+\. /; function hasMarkdownSyntax (line 32) | function hasMarkdownSyntax(s: string): boolean { function cachedLexer (line 37) | function cachedLexer(content: string): Token[] { function Markdown (line 78) | function Markdown(props) { function MarkdownWithHighlight (line 102) | function MarkdownWithHighlight(props) { function MarkdownBody (line 123) | function MarkdownBody(t0) { type StreamingProps (line 172) | type StreamingProps = { function StreamingMarkdown (line 186) | function StreamingMarkdown({ FILE: restored-src/src/components/MarkdownTable.tsx constant SAFETY_MARGIN (line 15) | const SAFETY_MARGIN = 4; constant MIN_COLUMN_WIDTH (line 18) | const MIN_COLUMN_WIDTH = 3; constant MAX_ROW_LINES (line 25) | const MAX_ROW_LINES = 4; constant ANSI_BOLD_START (line 28) | const ANSI_BOLD_START = '\x1b[1m'; constant ANSI_BOLD_END (line 29) | const ANSI_BOLD_END = '\x1b[22m'; type Props (line 30) | type Props = { function wrapText (line 44) | function wrapText(text: string, width: number, options?: { function MarkdownTable (line 72) | function MarkdownTable({ FILE: restored-src/src/components/MemoryUsageIndicator.tsx function MemoryUsageIndicator (line 5) | function MemoryUsageIndicator(): React.ReactNode { FILE: restored-src/src/components/Message.tsx type Props (line 32) | type Props = { function MessageImpl (line 58) | function MessageImpl(t0) { function UserMessage (line 356) | function UserMessage(t0) { function AssistantMessageBlock (line 433) | function AssistantMessageBlock(t0) { function hasThinkingContent (line 591) | function hasThinkingContent(m: { function areMessagePropsEqual (line 604) | function areMessagePropsEqual(prev: Props, next: Props): boolean { FILE: restored-src/src/components/MessageModel.tsx type Props (line 6) | type Props = { function MessageModel (line 10) | function MessageModel(t0) { function _temp (line 40) | function _temp(c) { FILE: restored-src/src/components/MessageResponse.tsx type Props (line 6) | type Props = { function MessageResponse (line 10) | function MessageResponse(t0) { function MessageResponseProvider (line 63) | function MessageResponseProvider(t0) { FILE: restored-src/src/components/MessageRow.tsx type Props (line 15) | type Props = { function hasContentAfterIndex (line 50) | function hasContentAfterIndex(messages: RenderableMessage[], index: numb... function MessageRowImpl (line 93) | function MessageRowImpl(t0) { function _temp (line 293) | function _temp(c) { function isMessageStreaming (line 296) | function isMessageStreaming(msg: RenderableMessage, streamingToolUseIDs:... function allToolsResolved (line 315) | function allToolsResolved(msg: RenderableMessage, resolvedToolUseIDs: Se... function areMessageRowPropsEqual (line 342) | function areMessageRowPropsEqual(prev: Props, next: Props): boolean { FILE: restored-src/src/components/MessageSelector.tsx function isTextBlock (line 19) | function isTextBlock(block: ContentBlockParam): block is TextBlockParam { type RestoreOption (line 31) | type RestoreOption = 'both' | 'conversation' | 'code' | 'summarize' | 's... function isSummarizeOption (line 32) | function isSummarizeOption(option: RestoreOption | null): option is 'sum... type Props (line 35) | type Props = { constant MAX_VISIBLE_MESSAGES (line 45) | const MAX_VISIBLE_MESSAGES = 7; function MessageSelector (line 46) | function MessageSelector({ function getRestoreOptionConversationText (line 402) | function getRestoreOptionConversationText(option: RestoreOption): string { function RestoreOptionDescription (line 416) | function RestoreOptionDescription(t0) { function RestoreCodeConfirmation (line 461) | function RestoreCodeConfirmation(t0) { function DiffStatsText (line 544) | function DiffStatsText(t0) { function UserMessageOption (line 579) | function UserMessageOption(t0) { function computeDiffStatsBetweenMessages (line 722) | function computeDiffStatsBetweenMessages(messages: Message[], fromMessag... function selectableUserMessagesFilter (line 767) | function selectableUserMessagesFilter(message: Message): message is User... function messagesAfterAreOnlySynthetic (line 799) | function messagesAfterAreOnlySynthetic(messages: Message[], fromIndex: n... FILE: restored-src/src/components/MessageTimestamp.tsx type Props (line 6) | type Props = { function MessageTimestamp (line 10) | function MessageTimestamp(t0) { function _temp (line 60) | function _temp(c) { FILE: restored-src/src/components/Messages.tsx constant BRIEF_TOOL_NAME (line 81) | const BRIEF_TOOL_NAME: string | null = feature('KAIROS') || feature('KAI... constant SEND_USER_FILE_TOOL_NAME (line 82) | const SEND_USER_FILE_TOOL_NAME: string | null = feature('KAIROS') ? (req... function filterForBriefTool (line 93) | function filterForBriefTool(a: Set, b: Set): boolean { function shouldRenderStatically (line 779) | function shouldRenderStatically(message: RenderableMessage, streamingToo... FILE: restored-src/src/components/ModelPicker.tsx type Props (line 21) | type Props = { constant NO_PREFERENCE (line 38) | const NO_PREFERENCE = '__NO_PREFERENCE__'; function ModelPicker (line 39) | function ModelPicker(t0) { function _temp4 (line 388) | function _temp4() {} function _temp3 (line 389) | function _temp3(opt_0) { function _temp2 (line 395) | function _temp2(s_0) { function _temp (line 398) | function _temp(s) { function resolveOptionModel (line 401) | function resolveOptionModel(value?: string): string | undefined { function EffortLevelIndicator (line 405) | function EffortLevelIndicator(t0) { function cycleEffortLevel (line 431) | function cycleEffortLevel(current: EffortLevel, direction: 'left' | 'rig... function getDefaultEffortLevelForOption (line 443) | function getDefaultEffortLevelForOption(value?: string): EffortLevel { FILE: restored-src/src/components/NativeAutoUpdater.tsx function getErrorType (line 19) | function getErrorType(errorMessage: string): string { type Props (line 43) | type Props = { function NativeAutoUpdater (line 51) | function NativeAutoUpdater({ FILE: restored-src/src/components/NotebookEditToolUseRejectedMessage.tsx type Props (line 8) | type Props = { function NotebookEditToolUseRejectedMessage (line 16) | function NotebookEditToolUseRejectedMessage(t0) { FILE: restored-src/src/components/OffscreenFreeze.tsx type Props (line 5) | type Props = { function OffscreenFreeze (line 23) | function OffscreenFreeze({ FILE: restored-src/src/components/Onboarding.tsx type StepId (line 22) | type StepId = 'preflight' | 'theme' | 'oauth' | 'api-key' | 'security' |... type OnboardingStep (line 23) | interface OnboardingStep { type Props (line 27) | type Props = { function Onboarding (line 30) | function Onboarding({ function SkippableStep (line 214) | function SkippableStep(t0) { FILE: restored-src/src/components/OutputStylePicker.tsx constant DEFAULT_OUTPUT_STYLE_LABEL (line 11) | const DEFAULT_OUTPUT_STYLE_LABEL = 'Default'; constant DEFAULT_OUTPUT_STYLE_DESCRIPTION (line 12) | const DEFAULT_OUTPUT_STYLE_DESCRIPTION = 'Claude completes coding tasks ... function mapConfigsToOptions (line 13) | function mapConfigsToOptions(styles: { type OutputStylePickerProps (line 22) | type OutputStylePickerProps = { function OutputStylePicker (line 28) | function OutputStylePicker(t0) { FILE: restored-src/src/components/PackageManagerAutoUpdater.tsx type Props (line 12) | type Props = { function PackageManagerAutoUpdater (line 20) | function PackageManagerAutoUpdater(t0) { FILE: restored-src/src/components/Passes/Passes.tsx type PassStatus (line 16) | type PassStatus = { type Props (line 20) | type Props = { function Passes (line 25) | function Passes({ FILE: restored-src/src/components/PrBadge.tsx type Props (line 5) | type Props = { function PrBadge (line 11) | function PrBadge(t0) { function getPrStatusColor (line 83) | function getPrStatusColor(state?: PrReviewState): 'success' | 'error' | ... FILE: restored-src/src/components/PressEnterToContinue.tsx function PressEnterToContinue (line 4) | function PressEnterToContinue() { FILE: restored-src/src/components/PromptInput/HistorySearchInput.tsx type Props (line 6) | type Props = { function HistorySearchInput (line 11) | function HistorySearchInput(t0) { function _temp (line 49) | function _temp() {} FILE: restored-src/src/components/PromptInput/IssueFlagBanner.tsx function IssueFlagBanner (line 9) | function IssueFlagBanner() { FILE: restored-src/src/components/PromptInput/Notifications.tsx constant FOOTER_TEMPORARY_STATUS_TIMEOUT (line 40) | const FOOTER_TEMPORARY_STATUS_TIMEOUT = 5000; type Props (line 41) | type Props = { function Notifications (line 55) | function Notifications(t0) { function _temp2 (line 210) | function _temp2() { function _temp (line 213) | function _temp(s) { function NotificationContent (line 216) | function NotificationContent({ FILE: restored-src/src/components/PromptInput/PromptInput.tsx type Props (line 124) | type Props = { constant PROMPT_FOOTER_LINES (line 192) | const PROMPT_FOOTER_LINES = 5; constant MIN_INPUT_VIEWPORT_LINES (line 193) | const MIN_INPUT_VIEWPORT_LINES = 3; function PromptInput (line 194) | function PromptInput({ function getInitialPasteId (line 2303) | function getInitialPasteId(messages: Message[]): number { function buildBorderText (line 2328) | function buildBorderText(showFastIcon: boolean, showFastIconHint: boolea... FILE: restored-src/src/components/PromptInput/PromptInputFooter.tsx type Props (line 26) | type Props = { function PromptInputFooter (line 63) | function PromptInputFooter({ type BridgeStatusProps (line 154) | type BridgeStatusProps = { function BridgeStatusIndicator (line 157) | function BridgeStatusIndicator({ FILE: restored-src/src/components/PromptInput/PromptInputFooterLeftSide.tsx constant MAX_VOICE_HINT_SHOWS (line 51) | const MAX_VOICE_HINT_SHOWS = 3; type Props (line 52) | type Props = { function ProactiveCountdown (line 74) | function ProactiveCountdown() { function PromptInputFooterLeftSide (line 127) | function PromptInputFooterLeftSide(t0) { type ModeIndicatorProps (line 226) | type ModeIndicatorProps = { function ModeIndicator (line 237) | function ModeIndicator({ function getSpinnerHintParts (line 484) | function getSpinnerHintParts(isLoading: boolean, escShortcut: string, to... function isPrStatusEnabled (line 514) | function isPrStatusEnabled(): boolean { FILE: restored-src/src/components/PromptInput/PromptInputFooterSuggestions.tsx type SuggestionItem (line 9) | type SuggestionItem = { type SuggestionType (line 17) | type SuggestionType = 'command' | 'file' | 'directory' | 'agent' | 'shel... constant OVERLAY_MAX_ITEMS (line 18) | const OVERLAY_MAX_ITEMS = 5; function getIcon (line 24) | function getIcon(itemId: string): string { function isUnifiedSuggestion (line 34) | function isUnifiedSuggestion(itemId: string): boolean { type Props (line 202) | type Props = { function PromptInputFooterSuggestions (line 213) | function PromptInputFooterSuggestions(t0) { function _temp (line 289) | function _temp(item) { FILE: restored-src/src/components/PromptInput/PromptInputHelpMenu.tsx function formatShortcut (line 13) | function formatShortcut(shortcut: string): string { type Props (line 16) | type Props = { function PromptInputHelpMenu (line 22) | function PromptInputHelpMenu(props) { FILE: restored-src/src/components/PromptInput/PromptInputModeIndicator.tsx type Props (line 10) | type Props = { function getTeammateThemeColor (line 21) | function getTeammateThemeColor(): keyof Theme | undefined { type PromptCharProps (line 34) | type PromptCharProps = { function PromptChar (line 44) | function PromptChar(t0) { function PromptInputModeIndicator (line 63) | function PromptInputModeIndicator(t0) { FILE: restored-src/src/components/PromptInput/PromptInputQueuedCommands.tsx constant EMPTY_SET (line 14) | const EMPTY_SET = new Set(); function isIdleNotification (line 20) | function isIdleNotification(value: string): boolean { constant MAX_VISIBLE_NOTIFICATIONS (line 30) | const MAX_VISIBLE_NOTIFICATIONS = 3; function createOverflowNotificationMessage (line 35) | function createOverflowNotificationMessage(count: number): string { function processQueuedCommands (line 47) | function processQueuedCommands(queuedCommands: QueuedCommand[]): QueuedC... function PromptInputQueuedCommandsImpl (line 71) | function PromptInputQueuedCommandsImpl(): React.ReactNode { FILE: restored-src/src/components/PromptInput/PromptInputStashNotice.tsx type Props (line 5) | type Props = { function PromptInputStashNotice (line 8) | function PromptInputStashNotice(t0) { FILE: restored-src/src/components/PromptInput/SandboxPromptFooterHint.tsx function SandboxPromptFooterHint (line 7) | function SandboxPromptFooterHint() { FILE: restored-src/src/components/PromptInput/ShimmeredInput.tsx type Props (line 6) | type Props = { type LinePart (line 10) | type LinePart = { function HighlightedInput (line 15) | function HighlightedInput(t0) { function _temp (line 140) | function _temp(h) { FILE: restored-src/src/components/PromptInput/VoiceIndicator.tsx type Props (line 7) | type Props = { constant PROCESSING_DIM (line 12) | const PROCESSING_DIM = { constant PROCESSING_BRIGHT (line 17) | const PROCESSING_BRIGHT = { constant PULSE_PERIOD_S (line 22) | const PULSE_PERIOD_S = 2; function VoiceIndicator (line 24) | function VoiceIndicator(props) { function VoiceIndicatorImpl (line 39) | function VoiceIndicatorImpl(t0) { function VoiceWarmupHint (line 78) | function VoiceWarmupHint() { function ProcessingShimmer (line 92) | function ProcessingShimmer() { FILE: restored-src/src/components/PromptInput/inputModes.ts function prependModeCharacterToInput (line 4) | function prependModeCharacterToInput( function getModeFromInput (line 16) | function getModeFromInput(input: string): HistoryMode { function getValueFromInput (line 23) | function getValueFromInput(input: string): string { function isInputModeCharacter (line 31) | function isInputModeCharacter(input: string): boolean { FILE: restored-src/src/components/PromptInput/inputPaste.ts constant TRUNCATION_THRESHOLD (line 4) | const TRUNCATION_THRESHOLD = 10000 // Characters before we truncate constant PREVIEW_LENGTH (line 5) | const PREVIEW_LENGTH = 1000 // Characters to show at start and end type TruncatedMessage (line 7) | type TruncatedMessage = { function maybeTruncateMessageForInput (line 20) | function maybeTruncateMessageForInput( function formatTruncatedTextRef (line 57) | function formatTruncatedTextRef(id: number, numLines: number): string { function maybeTruncateInput (line 61) | function maybeTruncateInput( FILE: restored-src/src/components/PromptInput/useMaybeTruncateInput.ts type Props (line 5) | type Props = { function useMaybeTruncateInput (line 13) | function useMaybeTruncateInput({ FILE: restored-src/src/components/PromptInput/usePromptInputPlaceholder.ts type Props (line 16) | type Props = { constant NUM_TIMES_QUEUE_HINT_SHOWN (line 22) | const NUM_TIMES_QUEUE_HINT_SHOWN = 3 constant MAX_TEAMMATE_NAME_LENGTH (line 23) | const MAX_TEAMMATE_NAME_LENGTH = 20 function usePromptInputPlaceholder (line 25) | function usePromptInputPlaceholder({ FILE: restored-src/src/components/PromptInput/useShowFastIconHint.ts constant HINT_DISPLAY_DURATION_MS (line 3) | const HINT_DISPLAY_DURATION_MS = 5000 function useShowFastIconHint (line 11) | function useShowFastIconHint(showFastIcon: boolean): boolean { FILE: restored-src/src/components/PromptInput/useSwarmBanner.ts type SwarmBannerInfo (line 29) | type SwarmBannerInfo = { function useSwarmBanner (line 44) | function useSwarmBanner(): SwarmBannerInfo { function toThemeColor (line 148) | function toThemeColor( FILE: restored-src/src/components/PromptInput/utils.ts function isVimModeEnabled (line 12) | function isVimModeEnabled(): boolean { function getNewlineInstructions (line 17) | function getNewlineInstructions(): string { function isNonSpacePrintable (line 39) | function isNonSpacePrintable(input: string, key: Key): boolean { FILE: restored-src/src/components/QuickOpenDialog.tsx type Props (line 17) | type Props = { constant VISIBLE_RESULTS (line 21) | const VISIBLE_RESULTS = 8; constant PREVIEW_LINES (line 22) | const PREVIEW_LINES = 20; function QuickOpenDialog (line 28) | function QuickOpenDialog(t0) { function _temp6 (line 226) | function _temp6(q_0) { function _temp5 (line 229) | function _temp5(p_3) { function _temp4 (line 232) | function _temp4(p_0) { function _temp3 (line 235) | function _temp3(p) { function _temp2 (line 238) | function _temp2(i_0) { function _temp (line 241) | function _temp(i) { FILE: restored-src/src/components/RemoteCallout.tsx type RemoteCalloutSelection (line 9) | type RemoteCalloutSelection = 'enable' | 'dismiss'; type Props (line 10) | type Props = { function RemoteCallout (line 13) | function RemoteCallout({ function shouldShowRemoteCallout (line 68) | function shouldShowRemoteCallout(): boolean { FILE: restored-src/src/components/RemoteEnvironmentDialog.tsx constant DIALOG_TITLE (line 20) | const DIALOG_TITLE = 'Select Remote Environment'; constant SETUP_HINT (line 21) | const SETUP_HINT = `Configure environments at: https://claude.ai/code`; type Props (line 22) | type Props = { type LoadingState (line 25) | type LoadingState = 'loading' | 'updating' | null; function RemoteEnvironmentDialog (line 26) | function RemoteEnvironmentDialog(t0) { function EnvironmentLabel (line 193) | function EnvironmentLabel(t0) { function SingleEnvironmentContent (line 225) | function SingleEnvironmentContent(t0) { function MultipleEnvironmentsContent (line 260) | function MultipleEnvironmentsContent(t0) { function _temp (line 334) | function _temp(env) { FILE: restored-src/src/components/ResumeTask.tsx type Props (line 17) | type Props = { type LoadErrorType (line 22) | type LoadErrorType = 'network' | 'auth' | 'api' | 'other'; constant UPDATED_STRING (line 23) | const UPDATED_STRING = 'Updated'; constant SPACE_BETWEEN_TABLE_COLUMNS (line 24) | const SPACE_BETWEEN_TABLE_COLUMNS = ' '; function ResumeTask (line 25) | function ResumeTask({ function determineErrorType (line 227) | function determineErrorType(errorMessage: string): LoadErrorType { function renderErrorSpecificGuidance (line 244) | function renderErrorSpecificGuidance(errorType: LoadErrorType): React.Re... FILE: restored-src/src/components/SandboxViolationExpandedView.tsx function formatTime (line 12) | function formatTime(date: Date): string { function SandboxViolationExpandedView (line 20) | function SandboxViolationExpandedView() { function _temp (line 96) | function _temp(v, i) { FILE: restored-src/src/components/ScrollKeybindingHandler.tsx type Props (line 13) | type Props = { constant WHEEL_ACCEL_WINDOW_MS (line 47) | const WHEEL_ACCEL_WINDOW_MS = 40; constant WHEEL_ACCEL_STEP (line 48) | const WHEEL_ACCEL_STEP = 0.3; constant WHEEL_ACCEL_MAX (line 49) | const WHEEL_ACCEL_MAX = 6; constant WHEEL_BOUNCE_GAP_MAX_MS (line 65) | const WHEEL_BOUNCE_GAP_MAX_MS = 200; constant WHEEL_MODE_STEP (line 68) | const WHEEL_MODE_STEP = 15; constant WHEEL_MODE_CAP (line 69) | const WHEEL_MODE_CAP = 15; constant WHEEL_MODE_RAMP (line 76) | const WHEEL_MODE_RAMP = 3; constant WHEEL_MODE_IDLE_DISENGAGE_MS (line 82) | const WHEEL_MODE_IDLE_DISENGAGE_MS = 1500; constant WHEEL_DECAY_HALFLIFE_MS (line 92) | const WHEEL_DECAY_HALFLIFE_MS = 150; constant WHEEL_DECAY_STEP (line 93) | const WHEEL_DECAY_STEP = 5; constant WHEEL_BURST_MS (line 96) | const WHEEL_BURST_MS = 5; constant WHEEL_DECAY_GAP_MS (line 99) | const WHEEL_DECAY_GAP_MS = 80; constant WHEEL_DECAY_CAP_SLOW (line 100) | const WHEEL_DECAY_CAP_SLOW = 3; constant WHEEL_DECAY_CAP_FAST (line 101) | const WHEEL_DECAY_CAP_FAST = 6; constant WHEEL_DECAY_IDLE_MS (line 104) | const WHEEL_DECAY_IDLE_MS = 500; function shouldClearSelectionOnKey (line 115) | function shouldClearSelectionOnKey(key: Key): boolean { function selectionFocusMoveForKey (line 132) | function selectionFocusMoveForKey(key: Key): FocusMove | null { type WheelAccelState (line 142) | type WheelAccelState = { function computeWheelStep (line 176) | function computeWheelStep(state: WheelAccelState, dir: 1 | -1, now: numb... function readScrollSpeedBase (line 305) | function readScrollSpeedBase(): number { function initWheelAccel (line 314) | function initWheelAccel(xtermJs = false, base = 1): WheelAccelState { function initAndLogWheelAccel (line 334) | function initAndLogWheelAccel(): WheelAccelState { constant AUTOSCROLL_LINES (line 344) | const AUTOSCROLL_LINES = 2; constant AUTOSCROLL_INTERVAL_MS (line 345) | const AUTOSCROLL_INTERVAL_MS = 50; constant AUTOSCROLL_MAX_TICKS (line 351) | const AUTOSCROLL_MAX_TICKS = 200; function ScrollKeybindingHandler (line 359) | function ScrollKeybindingHandler({ function useDragToScroll (line 637) | function useDragToScroll(scrollRef: RefObject, s... function dragScrollDirection (line 810) | function dragScrollDirection(sel: SelectionState | null, top: number, bo... function jumpBy (line 834) | function jumpBy(s: ScrollBoxHandle, delta: number): boolean { function scrollDown (line 852) | function scrollDown(s: ScrollBoxHandle, amount: number): boolean { function scrollUp (line 873) | function scrollUp(s: ScrollBoxHandle, amount: number): void { type ModalPagerAction (line 883) | type ModalPagerAction = 'lineUp' | 'lineDown' | 'halfPageUp' | 'halfPage... function modalPagerAction (line 900) | function modalPagerAction(input: string, key: Pick { method constructor (line 12) | constructor(props: Props) { method getDerivedStateFromError (line 17) | static getDerivedStateFromError(): State { method render (line 21) | render(): React.ReactNode { FILE: restored-src/src/components/SessionBackgroundHint.tsx type Props (line 14) | type Props = { function SessionBackgroundHint (line 27) | function SessionBackgroundHint(t0) { function _temp2 (line 101) | function _temp2(c) { function _temp (line 107) | function _temp() {} FILE: restored-src/src/components/SessionPreview.tsx type Props (line 15) | type Props = { function SessionPreview (line 20) | function SessionPreview(t0) { FILE: restored-src/src/components/Settings/Config.tsx type Props (line 51) | type Props = { type SettingBase (line 60) | type SettingBase = { type Setting (line 68) | type Setting = (SettingBase & { type SubMenu (line 84) | type SubMenu = 'Theme' | 'Model' | 'TeammateModel' | 'ExternalIncludes' ... function Config (line 85) | function Config({ function teammateModelDisplayString (line 1738) | function teammateModelDisplayString(value: string | null | undefined): s... constant THEME_LABELS (line 1745) | const THEME_LABELS: Record = { function NotifChannelLabel (line 1754) | function NotifChannelLabel(t0) { FILE: restored-src/src/components/Settings/Settings.tsx type Props (line 15) | type Props = { function Settings (line 22) | function Settings(t0) { function _temp2 (line 131) | function _temp2() { function _temp (line 134) | function _temp() { FILE: restored-src/src/components/Settings/Status.tsx type Props (line 15) | type Props = { function buildPrimarySection (line 19) | function buildPrimarySection(): Property[] { function buildSecondarySection (line 37) | function buildSecondarySection({ function buildDiagnostics (line 54) | async function buildDiagnostics(): Promise { function PropertyValue (line 57) | function PropertyValue(t0) { function Status (line 102) | function Status(t0) { function _temp4 (line 188) | function _temp4(properties, i) { function _temp3 (line 191) | function _temp3(t0, j) { function _temp2 (line 198) | function _temp2(s_0) { function _temp (line 201) | function _temp(s) { function Diagnostics (line 204) | function Diagnostics(t0) { function _temp5 (line 238) | function _temp5(diagnostic, i) { FILE: restored-src/src/components/Settings/Usage.tsx type LimitBarProps (line 18) | type LimitBarProps = { function LimitBar (line 25) | function LimitBar(t0) { function Usage (line 174) | function Usage(): React.ReactNode { type ExtraUsageSectionProps (line 266) | type ExtraUsageSectionProps = { constant EXTRA_USAGE_SECTION_TITLE (line 270) | const EXTRA_USAGE_SECTION_TITLE = 'Extra usage'; function ExtraUsageSection (line 271) | function ExtraUsageSection(t0) { FILE: restored-src/src/components/ShowInIDEPrompt.tsx type Props (line 10) | type Props = { function ShowInIDEPrompt (line 25) | function ShowInIDEPrompt(t0) { FILE: restored-src/src/components/SkillImprovementSurvey.tsx type Props (line 9) | type Props = { function SkillImprovementSurvey (line 17) | function SkillImprovementSurvey(t0) { type ViewProps (line 47) | type ViewProps = { constant VALID_INPUTS (line 56) | const VALID_INPUTS = ['0', '1'] as const; function isValidInput (line 57) | function isValidInput(input: string): boolean { function SkillImprovementSurveyView (line 60) | function SkillImprovementSurveyView(t0) { function _temp (line 149) | function _temp(u, i) { FILE: restored-src/src/components/Spinner.tsx constant DEFAULT_CHARACTERS (line 40) | const DEFAULT_CHARACTERS = getDefaultCharacters(); constant SPINNER_FRAMES (line 41) | const SPINNER_FRAMES = [...DEFAULT_CHARACTERS, ...[...DEFAULT_CHARACTERS... type Props (line 42) | type Props = { function SpinnerWithVerb (line 62) | function SpinnerWithVerb(props: Props): React.ReactNode { function SpinnerWithVerbInner (line 82) | function SpinnerWithVerbInner({ type BriefSpinnerProps (line 312) | type BriefSpinnerProps = { function BriefSpinner (line 316) | function BriefSpinner(t0) { function _temp6 (line 442) | function _temp6(s_0) { function _temp5 (line 445) | function _temp5(s) { function _temp4 (line 448) | function _temp4() { function BriefIdleStatus (line 451) | function BriefIdleStatus() { function _temp8 (line 501) | function _temp8(s_0) { function _temp7 (line 504) | function _temp7(s) { function Spinner (line 507) | function Spinner() { function findNextPendingTask (line 551) | function findNextPendingTask(tasks: Task[] | undefined): Task | undefined { FILE: restored-src/src/components/Spinner/FlashingChar.tsx type Props (line 6) | type Props = { function FlashingChar (line 12) | function FlashingChar(t0) { FILE: restored-src/src/components/Spinner/GlimmerMessage.tsx type Props (line 9) | type Props = { constant ERROR_RED (line 18) | const ERROR_RED = { function GlimmerMessage (line 23) | function GlimmerMessage(t0) { FILE: restored-src/src/components/Spinner/ShimmerChar.tsx type Props (line 5) | type Props = { function ShimmerChar (line 12) | function ShimmerChar(t0) { FILE: restored-src/src/components/Spinner/SpinnerAnimationRow.tsx constant SEP_WIDTH (line 17) | const SEP_WIDTH = stringWidth(' · '); constant THINKING_BARE_WIDTH (line 18) | const THINKING_BARE_WIDTH = stringWidth('thinking'); constant SHOW_TOKENS_AFTER_MS (line 19) | const SHOW_TOKENS_AFTER_MS = 30_000; constant THINKING_INACTIVE (line 24) | const THINKING_INACTIVE = { constant THINKING_INACTIVE_SHIMMER (line 29) | const THINKING_INACTIVE_SHIMMER = { constant THINKING_DELAY_MS (line 34) | const THINKING_DELAY_MS = 3000; constant THINKING_GLOW_PERIOD_S (line 35) | const THINKING_GLOW_PERIOD_S = 2; type SpinnerAnimationRowProps (line 36) | type SpinnerAnimationRowProps = { function SpinnerAnimationRow (line 81) | function SpinnerAnimationRow({ function SpinnerModeGlyph (line 232) | function SpinnerModeGlyph(t0) { FILE: restored-src/src/components/Spinner/SpinnerGlyph.tsx constant DEFAULT_CHARACTERS (line 6) | const DEFAULT_CHARACTERS = getDefaultCharacters(); constant SPINNER_FRAMES (line 7) | const SPINNER_FRAMES = [...DEFAULT_CHARACTERS, ...[...DEFAULT_CHARACTERS... constant REDUCED_MOTION_DOT (line 8) | const REDUCED_MOTION_DOT = '●'; constant REDUCED_MOTION_CYCLE_MS (line 9) | const REDUCED_MOTION_CYCLE_MS = 2000; constant ERROR_RED (line 10) | const ERROR_RED = { type Props (line 15) | type Props = { function SpinnerGlyph (line 22) | function SpinnerGlyph(t0) { FILE: restored-src/src/components/Spinner/TeammateSpinnerLine.tsx type Props (line 16) | type Props = { function getMessagePreview (line 29) | function getMessagePreview(messages: InProcessTeammateTaskState['message... function TeammateSpinnerLine (line 72) | function TeammateSpinnerLine({ FILE: restored-src/src/components/Spinner/TeammateSpinnerTree.tsx type Props (line 10) | type Props = { function TeammateSpinnerTree (line 21) | function TeammateSpinnerTree(t0) { function _temp3 (line 203) | function _temp3(s_1) { function _temp2 (line 206) | function _temp2(s_0) { function _temp (line 209) | function _temp(s) { function HideRow (line 212) | function HideRow(t0) { FILE: restored-src/src/components/Spinner/teammateSelectHint.ts constant TEAMMATE_SELECT_HINT (line 1) | const TEAMMATE_SELECT_HINT = 'shift + ↑/↓ to select' FILE: restored-src/src/components/Spinner/useShimmerAnimation.ts function useShimmerAnimation (line 6) | function useShimmerAnimation( FILE: restored-src/src/components/Spinner/useStalledAnimation.ts function useStalledAnimation (line 6) | function useStalledAnimation( FILE: restored-src/src/components/Spinner/utils.ts function getDefaultCharacters (line 4) | function getDefaultCharacters(): string[] { function interpolateColor (line 14) | function interpolateColor( function toRGBColor (line 27) | function toRGBColor(color: RGBColorType): RGBColorString { function hueToRgb (line 32) | function hueToRgb(hue: number): RGBColorType { constant RGB_CACHE (line 68) | const RGB_CACHE = new Map() function parseRGB (line 70) | function parseRGB(colorStr: string): RGBColorType | null { FILE: restored-src/src/components/Stats.tsx function formatPeakDay (line 27) | function formatPeakDay(dateStr: string): string { type Props (line 34) | type Props = { type StatsResult (line 39) | type StatsResult = { constant DATE_RANGE_LABELS (line 48) | const DATE_RANGE_LABELS: Record = { constant DATE_RANGE_ORDER (line 53) | const DATE_RANGE_ORDER: StatsDateRange[] = ['all', '7d', '30d']; function getNextDateRange (line 54) | function getNextDateRange(current: StatsDateRange): StatsDateRange { function createAllTimeStatsPromise (line 63) | function createAllTimeStatsPromise(): Promise { function Stats (line 82) | function Stats(t0) { type StatsContentProps (line 112) | type StatsContentProps = { function StatsContent (line 121) | function StatsContent(t0) { function _temp (line 312) | function _temp(prev_0) { function DateRangeSelector (line 315) | function DateRangeSelector(t0) { function OverviewTab (line 356) | function OverviewTab({ constant BOOK_COMPARISONS (line 582) | const BOOK_COMPARISONS = [{ constant TIME_COMPARISONS (line 657) | const TIME_COMPARISONS = [{ function generateFunFactoid (line 688) | function generateFunFactoid(stats: ClaudeCodeStats, totalTokens: number)... function ModelsTab (line 716) | function ModelsTab(t0) { function _temp1 (line 816) | function _temp1(item, i) { function _temp0 (line 819) | function _temp0(t0) { function _temp9 (line 823) | function _temp9(sum, t0) { function _temp8 (line 827) | function _temp8(prev_0) { function _temp7 (line 830) | function _temp7(t0, t1) { type ModelEntryProps (line 835) | type ModelEntryProps = { function ModelEntry (line 844) | function ModelEntry(t0) { type ChartLegend (line 931) | type ChartLegend = { type ChartOutput (line 935) | type ChartOutput = { function generateTokenChart (line 940) | function generateTokenChart(dailyTokens: DailyModelTokens[], models: str... function generateXAxisLabels (line 1019) | function generateXAxisLabels(data: DailyModelTokens[], _chartWidth: numb... function handleScreenshot (line 1059) | async function handleScreenshot(stats: ClaudeCodeStats, activeTab: 'Over... function renderStatsToAnsi (line 1068) | function renderStatsToAnsi(stats: ClaudeCodeStats, activeTab: 'Overview'... function renderOverviewToAnsi (line 1095) | function renderOverviewToAnsi(stats: ClaudeCodeStats): string[] { function renderModelsToAnsi (line 1191) | function renderModelsToAnsi(stats: ClaudeCodeStats): string[] { FILE: restored-src/src/components/StatusLine.tsx function statusLineShouldDisplay (line 30) | function statusLineShouldDisplay(settings: ReadonlySettings): boolean { function buildStatusLineCommandInput (line 36) | function buildStatusLineCommandInput(permissionMode: PermissionMode, exc... type Props (line 128) | type Props = { function getLastAssistantMessageId (line 135) | function getLastAssistantMessageId(messages: Message[]): string | null { function StatusLineInner (line 138) | function StatusLineInner({ FILE: restored-src/src/components/StatusNotices.tsx type Props (line 9) | type Props = { function StatusNotices (line 18) | function StatusNotices(t0) { FILE: restored-src/src/components/StructuredDiff.tsx type Props (line 11) | type Props = { type CachedRender (line 32) | type CachedRender = { constant RENDER_CACHE (line 41) | const RENDER_CACHE = new WeakMap = new ... function TeleportError (line 21) | function TeleportError(t0) { function _temp (line 175) | function _temp() { function getTeleportErrors (line 178) | async function getTeleportErrors(): Promise> { FILE: restored-src/src/components/TeleportProgress.tsx type Props (line 9) | type Props = { constant SPINNER_FRAMES (line 13) | const SPINNER_FRAMES = ['◐', '◓', '◑', '◒']; constant STEPS (line 14) | const STEPS: { function TeleportProgress (line 30) | function TeleportProgress(t0) { function teleportWithProgress (line 118) | async function teleportWithProgress(root: Root, sessionId: string): Prom... FILE: restored-src/src/components/TeleportRepoMismatchDialog.tsx type Props (line 9) | type Props = { function TeleportRepoMismatchDialog (line 15) | function TeleportRepoMismatchDialog(t0) { function _temp (line 98) | function _temp(path) { FILE: restored-src/src/components/TeleportResumeWrapper.tsx type TeleportResumeWrapperProps (line 11) | interface TeleportResumeWrapperProps { function TeleportResumeWrapper (line 23) | function TeleportResumeWrapper(t0) { FILE: restored-src/src/components/TeleportStash.tsx type TeleportStashProps (line 10) | type TeleportStashProps = { function TeleportStash (line 14) | function TeleportStash({ FILE: restored-src/src/components/TextInput.tsx constant BARS (line 16) | const BARS = ' \u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588'; constant CURSOR_WAVEFORM_WIDTH (line 19) | const CURSOR_WAVEFORM_WIDTH = 1; constant SMOOTH (line 23) | const SMOOTH = 0.7; constant LEVEL_BOOST (line 28) | const LEVEL_BOOST = 1.8; constant SILENCE_THRESHOLD (line 33) | const SILENCE_THRESHOLD = 0.15; type Props (line 34) | type Props = BaseTextInputProps & { function TextInput (line 37) | function TextInput(props: Props): React.ReactNode { FILE: restored-src/src/components/ThemePicker.tsx type ThemePickerProps (line 19) | type ThemePickerProps = { function ThemePicker (line 30) | function ThemePicker(t0) { function _temp2 (line 329) | function _temp2() {} function _temp (line 330) | function _temp(s) { FILE: restored-src/src/components/ThinkingToggle.tsx type Props (line 12) | type Props = { function ThinkingToggle (line 18) | function ThinkingToggle(t0) { function _temp (line 152) | function _temp() {} FILE: restored-src/src/components/TokenWarning.tsx type Props (line 10) | type Props = { function CollapseLabel (line 21) | function CollapseLabel(t0) { function TokenWarning (line 87) | function TokenWarning(t0) { FILE: restored-src/src/components/ToolUseLoader.tsx type Props (line 6) | type Props = { function ToolUseLoader (line 11) | function ToolUseLoader(t0) { FILE: restored-src/src/components/TrustDialog/TrustDialog.tsx type Props (line 19) | type Props = { function TrustDialog (line 23) | function TrustDialog(t0) { function _temp7 (line 266) | function _temp7() { function _temp6 (line 269) | function _temp6() { function _temp5 (line 272) | function _temp5(current) { function _temp4 (line 278) | function _temp4(command_0) { function _temp3 (line 281) | function _temp3(tool_0) { function _temp2 (line 284) | function _temp2(command) { function _temp (line 287) | function _temp(tool) { FILE: restored-src/src/components/TrustDialog/utils.ts function hasHooks (line 8) | function hasHooks(settings: SettingsJson | null): boolean { function getHooksSources (line 29) | function getHooksSources(): string[] { function hasBashPermission (line 45) | function hasBashPermission(rules: PermissionRule[]): boolean { function getBashPermissionSources (line 58) | function getBashPermissionSources(): string[] { function formatListWithAnd (line 79) | function formatListWithAnd(items: string[], limit?: number): string { function hasOtelHeadersHelper (line 109) | function hasOtelHeadersHelper(settings: SettingsJson | null): boolean { function getOtelHeadersHelperSources (line 117) | function getOtelHeadersHelperSources(): string[] { function hasApiKeyHelper (line 136) | function hasApiKeyHelper(settings: SettingsJson | null): boolean { function getApiKeyHelperSources (line 144) | function getApiKeyHelperSources(): string[] { function hasAwsCommands (line 163) | function hasAwsCommands(settings: SettingsJson | null): boolean { function getAwsCommandsSources (line 171) | function getAwsCommandsSources(): string[] { function hasGcpCommands (line 190) | function hasGcpCommands(settings: SettingsJson | null): boolean { function getGcpCommandsSources (line 198) | function getGcpCommandsSources(): string[] { function hasDangerousEnvVars (line 218) | function hasDangerousEnvVars(settings: SettingsJson | null): boolean { function getDangerousEnvVarsSources (line 231) | function getDangerousEnvVarsSources(): string[] { FILE: restored-src/src/components/ValidationErrorsList.tsx function buildNestedTree (line 12) | function buildNestedTree(errors: ValidationError[]): TreeNode { function ValidationErrorsList (line 62) | function ValidationErrorsList(t0) { function _temp3 (line 128) | function _temp3(pair, index) { function _temp2 (line 131) | function _temp2(a, b) { function _temp (line 140) | function _temp(acc, error) { FILE: restored-src/src/components/VimTextInput.tsx type Props (line 10) | type Props = VimTextInputProps & { function VimTextInput (line 13) | function VimTextInput(props) { function _temp (line 137) | function _temp(text) { FILE: restored-src/src/components/VirtualMessageList.tsx constant HEADROOM (line 15) | const HEADROOM = 3; function defaultExtractSearchText (line 25) | function defaultExtractSearchText(msg: RenderableMessage): string { type StickyPrompt (line 32) | type StickyPrompt = { constant STICKY_TEXT_CAP (line 43) | const STICKY_TEXT_CAP = 500; type JumpHandle (line 48) | type JumpHandle = { type Props (line 69) | type Props = { function stickyPromptText (line 133) | function stickyPromptText(msg: RenderableMessage): string | null { function computeStickyPromptText (line 145) | function computeStickyPromptText(msg: RenderableMessage): string | null { type VirtualItemProps (line 170) | type VirtualItemProps = { function VirtualItem (line 197) | function VirtualItem(t0) { function VirtualMessageList (line 289) | function VirtualMessageList({ function StickyTracker (line 892) | function StickyTracker({ FILE: restored-src/src/components/WorkflowMultiselectDialog.tsx type WorkflowOption (line 11) | type WorkflowOption = { type Props (line 15) | type Props = { constant WORKFLOWS (line 19) | const WORKFLOWS: WorkflowOption[] = [{ function renderInputGuide (line 26) | function renderInputGuide(exitState: ExitState): React.ReactNode { function WorkflowMultiselectDialog (line 37) | function WorkflowMultiselectDialog(t0) { function _temp (line 122) | function _temp(workflow) { FILE: restored-src/src/components/WorktreeExitDialog.tsx function recordWorktreeExit (line 17) | function recordWorktreeExit(): void { type Props (line 23) | type Props = { function WorktreeExitDialog (line 29) | function WorktreeExitDialog({ FILE: restored-src/src/components/agents/AgentDetail.tsx type Props (line 15) | type Props = { function AgentDetail (line 21) | function AgentDetail(t0) { FILE: restored-src/src/components/agents/AgentEditor.tsx type Props (line 18) | type Props = { type EditMode (line 24) | type EditMode = 'menu' | 'edit-tools' | 'edit-color' | 'edit-model'; type SaveChanges (line 25) | type SaveChanges = { function AgentEditor (line 30) | function AgentEditor({ FILE: restored-src/src/components/agents/AgentNavigationFooter.tsx type Props (line 5) | type Props = { function AgentNavigationFooter (line 8) | function AgentNavigationFooter(t0) { FILE: restored-src/src/components/agents/AgentsList.tsx type Props (line 14) | type Props = { function AgentsList (line 22) | function AgentsList(t0) { function _temp1 (line 404) | function _temp1(a_9) { function _temp0 (line 407) | function _temp0(a_8) { function _temp9 (line 410) | function _temp9(g_0) { function _temp8 (line 413) | function _temp8(a_6) { function _temp7 (line 416) | function _temp7(a_5) { function _temp6 (line 419) | function _temp6(a_4) { function _temp5 (line 422) | function _temp5(a_3) { function _temp4 (line 425) | function _temp4(a_2) { function _temp3 (line 428) | function _temp3(g) { function _temp2 (line 431) | function _temp2(a) { function _temp (line 434) | function _temp(agent) { FILE: restored-src/src/components/agents/AgentsMenu.tsx type Props (line 25) | type Props = { function AgentsMenu (line 31) | function AgentsMenu(t0) { function _temp0 (line 770) | function _temp0(a_5) { function _temp9 (line 773) | function _temp9(a_4) { function _temp8 (line 776) | function _temp8(a_3) { function _temp7 (line 779) | function _temp7(a_2) { function _temp6 (line 782) | function _temp6(a_1) { function _temp5 (line 785) | function _temp5(a_0) { function _temp4 (line 788) | function _temp4(a) { function _temp3 (line 791) | function _temp3(s_1) { function _temp2 (line 794) | function _temp2(s_0) { function _temp (line 797) | function _temp(s) { FILE: restored-src/src/components/agents/ColorPicker.tsx type ColorOption (line 8) | type ColorOption = AgentColorName | 'automatic'; constant COLOR_OPTIONS (line 9) | const COLOR_OPTIONS: ColorOption[] = ['automatic', ...AGENT_COLORS]; type Props (line 10) | type Props = { function ColorPicker (line 15) | function ColorPicker(t0) { function _temp2 (line 106) | function _temp2(prev_0) { function _temp (line 109) | function _temp(prev) { FILE: restored-src/src/components/agents/ModelSelector.tsx type ModelSelectorProps (line 6) | interface ModelSelectorProps { function ModelSelector (line 11) | function ModelSelector(t0) { FILE: restored-src/src/components/agents/ToolSelector.tsx type Props (line 31) | type Props = { type ToolBucket (line 37) | type ToolBucket = { type ToolBuckets (line 42) | type ToolBuckets = { function getToolBuckets (line 49) | function getToolBuckets(): ToolBuckets { function getMcpServerBuckets (line 77) | function getMcpServerBuckets(tools: Tools): Array<{ function ToolSelector (line 97) | function ToolSelector(t0) { function _temp8 (line 542) | function _temp8() {} function _temp7 (line 543) | function _temp7(t_10) { function _temp6 (line 546) | function _temp6() {} function _temp5 (line 547) | function _temp5(t_7) { function _temp4 (line 550) | function _temp4(t_6) { function _temp3 (line 553) | function _temp3(t_4) { function _temp2 (line 556) | function _temp2(t_0) { function _temp (line 559) | function _temp(t) { FILE: restored-src/src/components/agents/agentFileUtils.ts function formatAgentAsMarkdown (line 20) | function formatAgentAsMarkdown( function getAgentDirectoryPath (line 60) | function getAgentDirectoryPath(location: SettingSource): string { function getRelativeAgentDirectoryPath (line 79) | function getRelativeAgentDirectoryPath(location: SettingSource): string { function getNewAgentFilePath (line 92) | function getNewAgentFilePath(agent: { function getActualAgentFilePath (line 104) | function getActualAgentFilePath(agent: AgentDefinition): string { function getNewRelativeAgentFilePath (line 121) | function getNewRelativeAgentFilePath(agent: { function getActualRelativeAgentFilePath (line 135) | function getActualRelativeAgentFilePath(agent: AgentDefinition): string { function ensureAgentDirectoryExists (line 154) | async function ensureAgentDirectoryExists( function saveAgentToFile (line 166) | async function saveAgentToFile( function updateAgentFile (line 208) | async function updateAgentFile( function deleteAgentFromFile (line 241) | async function deleteAgentFromFile( function writeFileAndFlush (line 260) | async function writeFileAndFlush( FILE: restored-src/src/components/agents/generateAgent.ts type GeneratedAgent (line 20) | type GeneratedAgent = { constant AGENT_CREATION_SYSTEM_PROMPT (line 26) | const AGENT_CREATION_SYSTEM_PROMPT = `You are an elite AI agent architec... constant AGENT_MEMORY_INSTRUCTIONS (line 100) | const AGENT_MEMORY_INSTRUCTIONS = ` function generateAgent (line 122) | async function generateAgent( FILE: restored-src/src/components/agents/new-agent-creation/CreateAgentWizard.tsx type Props (line 20) | type Props = { function CreateAgentWizard (line 26) | function CreateAgentWizard(t0) { function _temp (line 96) | function _temp() {} FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx function ColorStep (line 13) | function ColorStep() { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx type Props (line 20) | type Props = { function ConfirmStep (line 27) | function ConfirmStep(t0) { function _temp3 (line 357) | function _temp3(err, i_0) { function _temp2 (line 360) | function _temp2(warning, i) { function _temp (line 363) | function _temp(toolNames) { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx type Props (line 13) | type Props = { function ConfirmStepWrapper (line 18) | function ConfirmStepWrapper({ FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx function DescriptionStep (line 13) | function DescriptionStep() { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx function GenerateStep (line 16) | function GenerateStep(): ReactNode { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx function LocationStep (line 12) | function LocationStep() { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx type MemoryOption (line 14) | type MemoryOption = { function MemoryStep (line 18) | function MemoryStep() { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx function MethodStep (line 11) | function MethodStep() { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx function ModelStep (line 10) | function ModelStep() { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx function PromptStep (line 13) | function PromptStep() { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx type Props (line 11) | type Props = { function ToolsStep (line 14) | function ToolsStep(t0) { FILE: restored-src/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx type Props (line 14) | type Props = { function TypeStep (line 17) | function TypeStep(_props) { FILE: restored-src/src/components/agents/types.ts constant AGENT_PATHS (line 4) | const AGENT_PATHS = { type WithPreviousMode (line 10) | type WithPreviousMode = { previousMode: ModeState } type WithAgent (line 11) | type WithAgent = { agent: AgentDefinition } type ModeState (line 14) | type ModeState = type AgentValidationResult (line 23) | type AgentValidationResult = { FILE: restored-src/src/components/agents/utils.ts function getAgentSourceDisplayName (line 5) | function getAgentSourceDisplayName( FILE: restored-src/src/components/agents/validateAgent.ts type AgentValidationResult (line 9) | type AgentValidationResult = { function validateAgentType (line 15) | function validateAgentType(agentType: string): string | null { function validateAgent (line 35) | function validateAgent( FILE: restored-src/src/components/design-system/Byline.tsx type Props (line 4) | type Props = { function Byline (line 37) | function Byline(t0) { function _temp (line 74) | function _temp(child, index) { FILE: restored-src/src/components/design-system/Dialog.tsx type DialogProps (line 11) | type DialogProps = { function Dialog (line 30) | function Dialog(t0) { FILE: restored-src/src/components/design-system/Divider.tsx type DividerProps (line 7) | type DividerProps = { function Divider (line 66) | function Divider(t0) { FILE: restored-src/src/components/design-system/FuzzyPicker.tsx type PickerAction (line 14) | type PickerAction = { type Props (line 19) | type Props = { constant DEFAULT_VISIBLE (line 63) | const DEFAULT_VISIBLE = 8; constant CHROME_ROWS (line 66) | const CHROME_ROWS = 10; constant MIN_VISIBLE (line 67) | const MIN_VISIBLE = 2; function FuzzyPicker (line 68) | function FuzzyPicker({ type ListProps (line 218) | type ListProps = Pick, 'visibleCount' | 'direction' | 'getKe... function List (line 225) | function List(t0) { function firstWord (line 308) | function firstWord(s: string): string { FILE: restored-src/src/components/design-system/KeyboardShortcutHint.tsx type Props (line 4) | type Props = { function KeyboardShortcutHint (line 38) | function KeyboardShortcutHint(t0) { FILE: restored-src/src/components/design-system/ListItem.tsx type ListItemProps (line 7) | type ListItemProps = { function ListItem (line 104) | function ListItem(t0) { FILE: restored-src/src/components/design-system/LoadingState.tsx type LoadingStateProps (line 5) | type LoadingStateProps = { function LoadingState (line 48) | function LoadingState(t0) { FILE: restored-src/src/components/design-system/Pane.tsx type PaneProps (line 7) | type PaneProps = { function Pane (line 33) | function Pane(t0) { FILE: restored-src/src/components/design-system/ProgressBar.tsx type Props (line 5) | type Props = { constant BLOCKS (line 26) | const BLOCKS = [' ', '▏', '▎', '▍', '▌', '▋', '▊', '▉', '█']; function ProgressBar (line 27) | function ProgressBar(t0) { FILE: restored-src/src/components/design-system/Ratchet.tsx type Props (line 6) | type Props = { function Ratchet (line 10) | function Ratchet(t0) { FILE: restored-src/src/components/design-system/StatusIcon.tsx type Status (line 5) | type Status = 'success' | 'error' | 'warning' | 'info' | 'pending' | 'lo... type Props (line 6) | type Props = { constant STATUS_CONFIG (line 24) | const STATUS_CONFIG: Record = Extract = { function toolCallOf (line 122) | function toolCallOf(msg: NavigableMessage): { type MessageActionCaps (line 142) | type MessageActionCaps = { function action (line 148) | function action(a: { constant MESSAGE_ACTIONS (line 158) | const MESSAGE_ACTIONS = [action({ function isApplicable (line 188) | function isApplicable(a: (typeof MESSAGE_ACTIONS)[number], c: MessageAct... type MessageActionsState (line 192) | type MessageActionsState = { type MessageActionsNav (line 198) | type MessageActionsNav = { function useSelectedMessageBg (line 212) | function useSelectedMessageBg() { function useMessageActions (line 217) | function useMessageActions(cursor: MessageActionsState | null, setCursor... function MessageActionsKeybindings (line 274) | function MessageActionsKeybindings(t0) { function MessageActionsBar (line 296) | function MessageActionsBar(t0) { function stripSystemReminders (line 399) | function stripSystemReminders(text: string): string { function copyTextOf (line 409) | function copyTextOf(msg: NavigableMessage): string { function toolResultText (line 442) | function toolResultText(r: NormalizedUserMessage): string { FILE: restored-src/src/components/messages/AdvisorMessage.tsx type Props (line 11) | type Props = { function AdvisorMessage (line 20) | function AdvisorMessage(t0) { FILE: restored-src/src/components/messages/AssistantRedactedThinkingMessage.tsx type Props (line 4) | type Props = { function AssistantRedactedThinkingMessage (line 7) | function AssistantRedactedThinkingMessage(t0) { FILE: restored-src/src/components/messages/AssistantTextMessage.tsx constant MAX_API_ERROR_CHARS (line 19) | const MAX_API_ERROR_CHARS = 1000; type Props (line 20) | type Props = { function InvalidApiKeyMessage (line 28) | function InvalidApiKeyMessage() { function AssistantTextMessage (line 47) | function AssistantTextMessage(t0) { FILE: restored-src/src/components/messages/AssistantThinkingMessage.tsx type Props (line 7) | type Props = { function AssistantThinkingMessage (line 19) | function AssistantThinkingMessage(t0) { FILE: restored-src/src/components/messages/AssistantToolUseMessage.tsx type Props (line 21) | type Props = { function AssistantToolUseMessage (line 35) | function AssistantToolUseMessage(t0) { function _temp3 (line 295) | function _temp3(state_1) { function _temp2 (line 298) | function _temp2(state_0) { function _temp (line 301) | function _temp(state) { function renderToolUseMessage (line 304) | function renderToolUseMessage(tool: Tool, input: unknown, { function renderToolUseProgressMessage (line 328) | function renderToolUseProgressMessage(tool: Tool, tools: Tools, lookups:... function renderToolUseQueuedMessage (line 360) | function renderToolUseQueuedMessage(tool: Tool): React.ReactNode { FILE: restored-src/src/components/messages/AttachmentMessage.tsx type Props (line 30) | type Props = { function AttachmentMessage (line 36) | function AttachmentMessage({ type TaskStatusAttachment (line 358) | type TaskStatusAttachment = Extract]*... constant USER_ATTR_RE (line 16) | const USER_ATTR_RE = /\buser="([^"]+)"/; function displayServerName (line 21) | function displayServerName(name: string): string { constant TRUNCATE_AT (line 25) | const TRUNCATE_AT = 60; function UserChannelMessage (line 26) | function UserChannelMessage(t0) { FILE: restored-src/src/components/messages/UserCommandMessage.tsx type Props (line 8) | type Props = { function UserCommandMessage (line 12) | function UserCommandMessage(t0) { FILE: restored-src/src/components/messages/UserImageMessage.tsx type Props (line 9) | type Props = { function UserImageMessage (line 20) | function UserImageMessage(t0) { FILE: restored-src/src/components/messages/UserLocalCommandOutputMessage.tsx type Props (line 9) | type Props = { function UserLocalCommandOutputMessage (line 12) | function UserLocalCommandOutputMessage(t0) { function IndentedContent (line 55) | function IndentedContent(t0) { function CloudLaunchContent (line 88) | function CloudLaunchContent(t0) { FILE: restored-src/src/components/messages/UserMemoryInputMessage.tsx function getSavingMessage (line 8) | function getSavingMessage(): string { type Props (line 11) | type Props = { function UserMemoryInputMessage (line 15) | function UserMemoryInputMessage(t0) { FILE: restored-src/src/components/messages/UserPlanMessage.tsx type Props (line 5) | type Props = { function UserPlanMessage (line 9) | function UserPlanMessage(t0) { FILE: restored-src/src/components/messages/UserPromptMessage.tsx type Props (line 13) | type Props = { constant MAX_DISPLAY_CHARS (line 28) | const MAX_DISPLAY_CHARS = 10_000; constant TRUNCATE_HEAD_CHARS (line 29) | const TRUNCATE_HEAD_CHARS = 2_500; constant TRUNCATE_TAIL_CHARS (line 30) | const TRUNCATE_TAIL_CHARS = 2_500; function UserPromptMessage (line 31) | function UserPromptMessage({ FILE: restored-src/src/components/messages/UserResourceUpdateMessage.tsx type Props (line 6) | type Props = { type ParsedUpdate (line 10) | type ParsedUpdate = { function parseUpdates (line 19) | function parseUpdates(text: string): ParsedUpdate[] { function formatUri (line 48) | function formatUri(uri: string): string { function UserResourceUpdateMessage (line 61) | function UserResourceUpdateMessage(t0) { function _temp (line 118) | function _temp(update, i) { FILE: restored-src/src/components/messages/UserTeammateMessage.tsx type Props (line 14) | type Props = { type ParsedMessage (line 19) | type ParsedMessage = { constant TEAMMATE_MSG_REGEX (line 25) | const TEAMMATE_MSG_REGEX = new RegExp(`<${TEAMMATE_MESSAGE_TAG}\\s+teamm... function parseTeammateMessages (line 32) | function parseTeammateMessages(text: string): ParsedMessage[] { function getDisplayName (line 49) | function getDisplayName(teammateId: string): string { function UserTeammateMessage (line 55) | function UserTeammateMessage({ type TeammateMessageContentProps (line 143) | type TeammateMessageContentProps = { function TeammateMessageContent (line 150) | function TeammateMessageContent(t0) { FILE: restored-src/src/components/messages/UserTextMessage.tsx type Props (line 21) | type Props = { function UserTextMessage (line 29) | function UserTextMessage(t0) { FILE: restored-src/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx type Props (line 6) | type Props = { function RejectedPlanMessage (line 9) | function RejectedPlanMessage(t0) { FILE: restored-src/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.tsx function RejectedToolUseMessage (line 5) | function RejectedToolUseMessage() { FILE: restored-src/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx function UserToolCanceledMessage (line 5) | function UserToolCanceledMessage() { FILE: restored-src/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx type Props (line 15) | type Props = { function UserToolErrorMessage (line 23) | function UserToolErrorMessage(t0) { FILE: restored-src/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx type Props (line 9) | type Props = { function UserToolRejectMessage (line 21) | function UserToolRejectMessage(t0) { FILE: restored-src/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx type Props (line 12) | type Props = { function UserToolResultMessage (line 23) | function UserToolResultMessage(t0) { FILE: restored-src/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx type Props (line 13) | type Props = { function UserToolSuccessMessage (line 25) | function UserToolSuccessMessage({ FILE: restored-src/src/components/messages/UserToolResultMessage/utils.tsx function useGetToolFromMessages (line 6) | function useGetToolFromMessages(toolUseID, tools, lookups) { FILE: restored-src/src/components/messages/nullRenderingAttachments.ts constant NULL_RENDERING_TYPES (line 14) | const NULL_RENDERING_TYPES = [ type NullRenderingAttachmentType (line 51) | type NullRenderingAttachmentType = (typeof NULL_RENDERING_TYPES)[number] constant NULL_RENDERING_ATTACHMENT_TYPES (line 53) | const NULL_RENDERING_ATTACHMENT_TYPES: ReadonlySet = function isNullRenderingAttachment (line 63) | function isNullRenderingAttachment( FILE: restored-src/src/components/messages/teamMemCollapsed.tsx function checkHasTeamMemOps (line 11) | function checkHasTeamMemOps(message: CollapsedReadSearchGroup): boolean { function TeamMemCountParts (line 20) | function TeamMemCountParts(t0) { FILE: restored-src/src/components/messages/teamMemSaved.ts function teamMemSavedPart (line 10) | function teamMemSavedPart( FILE: restored-src/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx constant MIN_CONTENT_HEIGHT (line 26) | const MIN_CONTENT_HEIGHT = 12; constant MIN_CONTENT_WIDTH (line 27) | const MIN_CONTENT_WIDTH = 40; constant CONTENT_CHROME_OVERHEAD (line 29) | const CONTENT_CHROME_OVERHEAD = 15; function AskUserQuestionPermissionRequest (line 30) | function AskUserQuestionPermissionRequest(props) { function AskUserQuestionWithHighlight (line 54) | function AskUserQuestionWithHighlight(props) { function AskUserQuestionPermissionRequestBody (line 75) | function AskUserQuestionPermissionRequestBody(t0) { function _temp6 (line 612) | function _temp6(c_1) { function _temp5 (line 615) | function _temp5(c_0) { function _temp4 (line 618) | function _temp4(s) { function _temp3 (line 621) | function _temp3(c) { function _temp2 (line 624) | function _temp2(contents) { function _temp (line 627) | function _temp(opt) { function convertImagesToBlocks (line 630) | async function convertImagesToBlocks(images: PastedContent[]): Promise; function FileEditPermissionRequest (line 28) | function FileEditPermissionRequest(props) { function _temp (line 179) | function _temp(input) { FILE: restored-src/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx type FilePermissionDialogProps (line 20) | type FilePermissionDialogProps = { function FilePermissionDialog (line 48) | function FilePermissionDialog({ FILE: restored-src/src/components/permissions/FilePermissionDialog/ideDiffConfig.ts type FileEdit (line 3) | interface FileEdit { type IDEDiffConfig (line 9) | interface IDEDiffConfig { type IDEDiffChangeInput (line 15) | interface IDEDiffChangeInput { type IDEDiffSupport (line 20) | interface IDEDiffSupport { function createSingleEditDiffConfig (line 25) | function createSingleEditDiffConfig( FILE: restored-src/src/components/permissions/FilePermissionDialog/permissionOptions.tsx function isInClaudeFolder (line 15) | function isInClaudeFolder(filePath: string): boolean { function isInGlobalClaudeFolder (line 34) | function isInGlobalClaudeFolder(filePath: string): boolean { type PermissionOption (line 41) | type PermissionOption = { type PermissionOptionWithLabel (line 49) | type PermissionOptionWithLabel = OptionWithDescription & { type FileOperationType (line 52) | type FileOperationType = 'read' | 'write' | 'create'; function getFilePermissionOptions (line 53) | function getFilePermissionOptions({ FILE: restored-src/src/components/permissions/FilePermissionDialog/useFilePermissionDialog.ts type ToolInput (line 23) | interface ToolInput { type UseFilePermissionDialogProps (line 27) | type UseFilePermissionDialogProps = { type UseFilePermissionDialogResult (line 38) | type UseFilePermissionDialogResult = { function useFilePermissionDialog (line 53) | function useFilePermissionDialog({ FILE: restored-src/src/components/permissions/FilePermissionDialog/usePermissionHandler.ts function logPermissionEvent (line 25) | function logPermissionEvent( type PermissionHandlerParams (line 44) | type PermissionHandlerParams = { type PermissionHandlerOptions (line 56) | type PermissionHandlerOptions = { function handleAcceptOnce (line 63) | function handleAcceptOnce( function handleAcceptSession (line 87) | function handleAcceptSession( function handleReject (line 141) | function handleReject( constant PERMISSION_HANDLERS (line 178) | const PERMISSION_HANDLERS: Record< FILE: restored-src/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx type FileWriteToolInput (line 14) | type FileWriteToolInput = z.infer; function FileWritePermissionRequest (line 38) | function FileWritePermissionRequest(props) { function _temp (line 158) | function _temp(input) { FILE: restored-src/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx type Props (line 10) | type Props = { function FileWriteToolDiff (line 16) | function FileWriteToolDiff(t0) { function _temp (line 86) | function _temp(i) { FILE: restored-src/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx function pathFromToolUse (line 8) | function pathFromToolUse(toolUseConfirm: ToolUseConfirm): string | null { function FilesystemPermissionRequest (line 19) | function FilesystemPermissionRequest(t0) { function _temp (line 112) | function _temp(input) { FILE: restored-src/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx type NotebookEditInput (line 11) | type NotebookEditInput = z.infer; function NotebookEditPermissionRequest (line 12) | function NotebookEditPermissionRequest(props) { function _temp (line 154) | function _temp(input) { FILE: restored-src/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx type Props (line 15) | type Props = { type InnerProps (line 24) | type InnerProps = { function NotebookEditToolDiff (line 34) | function NotebookEditToolDiff(props) { function _temp2 (line 58) | function _temp2() { function _temp (line 61) | function _temp(content) { function NotebookEditToolDiffInner (line 64) | function NotebookEditToolDiffInner(t0) { function _temp3 (line 232) | function _temp3(i) { FILE: restored-src/src/components/permissions/PermissionDecisionDebugInfo.tsx type PermissionDecisionInfoItemProps (line 17) | type PermissionDecisionInfoItemProps = { function decisionReasonDisplayString (line 21) | function decisionReasonDisplayString(decisionReason: PermissionDecisionR... function PermissionDecisionInfoItem (line 49) | function PermissionDecisionInfoItem(t0) { function SuggestedRules (line 108) | function SuggestedRules(t0) { function _temp (line 183) | function _temp(rule) { type Props (line 186) | type Props = { function extractDirectories (line 192) | function extractDirectories(updates: PermissionUpdate[] | undefined): st... function extractMode (line 205) | function extractMode(updates: PermissionUpdate[] | undefined): Permissio... function SuggestionDisplay (line 210) | function SuggestionDisplay(t0) { function _temp3 (line 336) | function _temp3(dir, index_0) { function _temp2 (line 339) | function _temp2(rule, index) { function PermissionDecisionDebugInfo (line 342) | function PermissionDecisionDebugInfo(t0) { function _temp5 (line 454) | function _temp5(u_1, i) { function _temp4 (line 457) | function _temp4(s) { FILE: restored-src/src/components/permissions/PermissionDialog.tsx type Props (line 7) | type Props = { function PermissionDialog (line 17) | function PermissionDialog(t0) { FILE: restored-src/src/components/permissions/PermissionExplanation.tsx constant LOADING_MESSAGE (line 10) | const LOADING_MESSAGE = 'Loading explanation…'; function ShimmerLoadingText (line 11) | function ShimmerLoadingText() { function getRiskColor (line 41) | function getRiskColor(riskLevel: RiskLevel): 'success' | 'warning' | 'er... function getRiskLabel (line 51) | function getRiskLabel(riskLevel: RiskLevel): string { type PermissionExplanationProps (line 61) | type PermissionExplanationProps = { type ExplainerState (line 67) | type ExplainerState = { function createExplanationPromise (line 77) | function createExplanationPromise(props: PermissionExplanationProps): Pr... function usePermissionExplainerUI (line 92) | function usePermissionExplainerUI(props) { function _temp (line 153) | function _temp(v) { function ExplanationResult (line 156) | function ExplanationResult(t0) { function PermissionExplainerContent (line 246) | function PermissionExplainerContent(t0) { FILE: restored-src/src/components/permissions/PermissionPrompt.tsx type FeedbackType (line 9) | type FeedbackType = 'accept' | 'reject'; type PermissionPromptOption (line 10) | type PermissionPromptOption = { type ToolAnalyticsContext (line 19) | type ToolAnalyticsContext = { type PermissionPromptProps (line 23) | type PermissionPromptProps = { constant DEFAULT_PLACEHOLDERS (line 30) | const DEFAULT_PLACEHOLDERS: Record = { function PermissionPrompt (line 45) | function PermissionPrompt(t0) { function _temp (line 327) | function _temp(prev) { FILE: restored-src/src/components/permissions/PermissionRequest.tsx function permissionComponentForTool (line 47) | function permissionComponentForTool(tool: Tool): React.ComponentType = { type ToolUseConfirm (line 103) | type ToolUseConfirm = { function getNotificationMessage (line 128) | function getNotificationMessage(toolUseConfirm: ToolUseConfirm): string { function PermissionRequest (line 146) | function PermissionRequest(t0) { FILE: restored-src/src/components/permissions/PermissionRequestTitle.tsx type Props (line 6) | type Props = { function PermissionRequestTitle (line 12) | function PermissionRequestTitle(t0) { FILE: restored-src/src/components/permissions/PermissionRuleExplanation.tsx type PermissionRuleExplanationProps (line 11) | type PermissionRuleExplanationProps = { type DecisionReasonStrings (line 15) | type DecisionReasonStrings = { function stringsForDecisionReason (line 21) | function stringsForDecisionReason(reason: PermissionDecisionReason | und... function PermissionRuleExplanation (line 68) | function PermissionRuleExplanation(t0) { function _temp (line 118) | function _temp(s) { FILE: restored-src/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx function PowerShellPermissionRequest (line 22) | function PowerShellPermissionRequest(props: PermissionRequestProps): Rea... FILE: restored-src/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx type PowerShellToolUseOption (line 6) | type PowerShellToolUseOption = 'yes' | 'yes-apply-suggestions' | 'yes-pr... function powershellToolUseOptions (line 7) | function powershellToolUseOptions({ FILE: restored-src/src/components/permissions/SandboxPermissionRequest.tsx type SandboxPermissionRequestProps (line 8) | type SandboxPermissionRequestProps = { function SandboxPermissionRequest (line 15) | function SandboxPermissionRequest(t0) { FILE: restored-src/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx type SedEditPermissionRequestProps (line 14) | type SedEditPermissionRequestProps = PermissionRequestProps & { type FileReadResult (line 17) | type FileReadResult = { function SedEditPermissionRequest (line 21) | function SedEditPermissionRequest(t0) { function _temp (line 70) | function _temp(e) { function SedEditPermissionRequestInner (line 79) | function SedEditPermissionRequestInner(t0) { FILE: restored-src/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx type SkillOptionValue (line 17) | type SkillOptionValue = 'yes' | 'yes-exact' | 'yes-prefix' | 'no'; function SkillPermissionRequest (line 18) | function SkillPermissionRequest(props) { function _temp (line 361) | function _temp(input) { FILE: restored-src/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx function inputToPermissionRuleContent (line 12) | function inputToPermissionRuleContent(input: { function WebFetchPermissionRequest (line 29) | function WebFetchPermissionRequest(t0) { FILE: restored-src/src/components/permissions/WorkerBadge.tsx type WorkerBadgeProps (line 6) | type WorkerBadgeProps = { function WorkerBadge (line 15) | function WorkerBadge(t0) { FILE: restored-src/src/components/permissions/WorkerPendingPermission.tsx type Props (line 7) | type Props = { function WorkerPendingPermission (line 16) | function WorkerPendingPermission(t0) { FILE: restored-src/src/components/permissions/hooks.ts type UnaryEvent (line 26) | type UnaryEvent = { function permissionResultToLog (line 31) | function permissionResultToLog(permissionResult: PermissionResult): stri... function decisionReasonToString (line 61) | function decisionReasonToString( function usePermissionRequestLogging (line 101) | function usePermissionRequestLogging( FILE: restored-src/src/components/permissions/rules/AddPermissionRules.tsx function optionForPermissionSaveDestination (line 18) | function optionForPermissionSaveDestination(saveDestination: EditableSet... type Props (line 40) | type Props = { function AddPermissionRules (line 48) | function AddPermissionRules(t0) { function _temp (line 177) | function _temp(ruleValue_0) { FILE: restored-src/src/components/permissions/rules/AddWorkspaceDirectory.tsx type Props (line 19) | type Props = { type RememberDirectoryOption (line 25) | type RememberDirectoryOption = 'yes-session' | 'yes-remember' | 'no'; constant REMEMBER_DIRECTORY_OPTIONS (line 26) | const REMEMBER_DIRECTORY_OPTIONS: Array<{ function PermissionDescription (line 39) | function PermissionDescription() { function DirectoryDisplay (line 50) | function DirectoryDisplay(t0) { function DirectoryInput (line 80) | function DirectoryInput(t0) { function _temp (line 136) | function _temp() {} function AddWorkspaceDirectory (line 137) | function AddWorkspaceDirectory(t0) { function _temp2 (line 337) | function _temp2(exitState) { FILE: restored-src/src/components/permissions/rules/PermissionRuleDescription.tsx type RuleSubtitleProps (line 6) | type RuleSubtitleProps = { function PermissionRuleDescription (line 9) | function PermissionRuleDescription(t0) { FILE: restored-src/src/components/permissions/rules/PermissionRuleInput.tsx type PermissionRuleInputProps (line 14) | type PermissionRuleInputProps = { function PermissionRuleInput (line 19) | function PermissionRuleInput(t0) { FILE: restored-src/src/components/permissions/rules/PermissionRuleList.tsx type TabType (line 33) | type TabType = 'recent' | 'allow' | 'ask' | 'deny' | 'workspace'; type RuleSourceTextProps (line 34) | type RuleSourceTextProps = { function RuleSourceText (line 37) | function RuleSourceText(t0) { function getRuleBehaviorLabel (line 63) | function getRuleBehaviorLabel(ruleBehavior: PermissionBehavior): string { function RuleDetails (line 75) | function RuleDetails(t0) { type RulesTabContentProps (line 255) | type RulesTabContentProps = { function RulesTabContent (line 268) | function RulesTabContent(props) { function PermissionRulesTab (line 364) | function PermissionRulesTab(t0) { type Props (line 464) | type Props = { function PermissionRuleList (line 473) | function PermissionRuleList(t0) { function _temp6 (line 1161) | function _temp6(opt_0) { function _temp5 (line 1164) | function _temp5(opt) { function _temp4 (line 1167) | function _temp4(d_1) { function _temp3 (line 1170) | function _temp3(d_0) { function _temp2 (line 1173) | function _temp2(d) { function _temp (line 1176) | function _temp(s) { FILE: restored-src/src/components/permissions/rules/RecentDenialsTab.tsx type Props (line 10) | type Props = { function RecentDenialsTab (line 19) | function RecentDenialsTab(t0) { function _temp3 (line 198) | function _temp3() { function _temp2 (line 201) | function _temp2() { function _temp (line 204) | function _temp() { FILE: restored-src/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx type Props (line 9) | type Props = { function RemoveWorkspaceDirectory (line 16) | function RemoveWorkspaceDirectory(t0) { FILE: restored-src/src/components/permissions/rules/WorkspaceTab.tsx type Props (line 11) | type Props = { type DirectoryItem (line 20) | type DirectoryItem = { function WorkspaceTab (line 25) | function WorkspaceTab(t0) { function _temp2 (line 137) | function _temp2(dir) { function _temp (line 143) | function _temp(path) { FILE: restored-src/src/components/permissions/shellPermissionHelpers.tsx function commandListDisplay (line 7) | function commandListDisplay(commands: string[]): ReactNode { function commandListDisplayTruncated (line 24) | function commandListDisplayTruncated(commands: string[]): ReactNode { function formatPathList (line 32) | function formatPathList(paths: string[]): ReactNode { function generateShellSuggestionsLabel (line 65) | function generateShellSuggestionsLabel(suggestions: PermissionUpdate[], ... FILE: restored-src/src/components/permissions/useShellPermissionFeedback.ts function useShellPermissionFeedback (line 16) | function useShellPermissionFeedback({ FILE: restored-src/src/components/permissions/utils.ts function logUnaryPermissionEvent (line 5) | function logUnaryPermissionEvent( FILE: restored-src/src/components/sandbox/SandboxConfigTab.tsx function SandboxConfigTab (line 5) | function SandboxConfigTab() { function _temp (line 42) | function _temp(w, i) { FILE: restored-src/src/components/sandbox/SandboxDependenciesTab.tsx type Props (line 6) | type Props = { function SandboxDependenciesTab (line 9) | function SandboxDependenciesTab(t0) { function _temp5 (line 105) | function _temp5(err) { function _temp4 (line 108) | function _temp4(e_2) { function _temp3 (line 111) | function _temp3(e_1) { function _temp2 (line 114) | function _temp2(e_0) { function _temp (line 117) | function _temp(e) { FILE: restored-src/src/components/sandbox/SandboxDoctorSection.tsx function SandboxDoctorSection (line 5) | function SandboxDoctorSection() { function _temp2 (line 40) | function _temp2(w, i_0) { function _temp (line 43) | function _temp(e, i) { FILE: restored-src/src/components/sandbox/SandboxOverridesTab.tsx type Props (line 8) | type Props = { type OverrideMode (line 13) | type OverrideMode = 'open' | 'closed'; function SandboxOverridesTab (line 14) | function SandboxOverridesTab(t0) { function OverridesSelect (line 63) | function OverridesSelect(t0) { FILE: restored-src/src/components/sandbox/SandboxSettings.tsx type Props (line 15) | type Props = { type SandboxMode (line 21) | type SandboxMode = 'auto-allow' | 'regular' | 'disabled'; function SandboxSettings (line 22) | function SandboxSettings(t0) { function SandboxModeTab (line 222) | function SandboxModeTab(t0) { FILE: restored-src/src/components/shell/ExpandShellOutputContext.tsx function ExpandShellOutputProvider (line 13) | function ExpandShellOutputProvider(t0) { function useExpandShellOutput (line 33) | function useExpandShellOutput() { FILE: restored-src/src/components/shell/OutputLine.tsx function tryFormatJson (line 12) | function tryFormatJson(line: string): string { constant MAX_JSON_FORMAT_LENGTH (line 32) | const MAX_JSON_FORMAT_LENGTH = 10_000; function tryJsonFormatContent (line 33) | function tryJsonFormatContent(content: string): string { constant URL_IN_JSON (line 43) | const URL_IN_JSON = /https?:\/\/[^\s"'<>\\]+/g; function linkifyUrlsInText (line 44) | function linkifyUrlsInText(content: string): string { function OutputLine (line 47) | function OutputLine(t0) { function stripUnderlineAnsi (line 113) | function stripUnderlineAnsi(content: string): string { FILE: restored-src/src/components/shell/ShellProgressMessage.tsx type Props (line 9) | type Props = { function ShellProgressMessage (line 19) | function ShellProgressMessage(t0) { function _temp (line 147) | function _temp(line) { FILE: restored-src/src/components/shell/ShellTimeDisplay.tsx type Props (line 5) | type Props = { function ShellTimeDisplay (line 9) | function ShellTimeDisplay(t0) { FILE: restored-src/src/components/skills/SkillsMenu.tsx type SkillCommand (line 16) | type SkillCommand = CommandBase & PromptCommand; type SkillSource (line 17) | type SkillSource = SettingSource | 'plugin' | 'mcp'; type Props (line 18) | type Props = { function getSourceTitle (line 24) | function getSourceTitle(source: SkillSource): string { function getSourceSubtitle (line 33) | function getSourceSubtitle(source: SkillSource, skills: SkillCommand[]):... function SkillsMenu (line 47) | function SkillsMenu(t0) { function _temp3 (line 225) | function _temp3(skill_0) { function _temp2 (line 231) | function _temp2(a, b) { function _temp (line 234) | function _temp(cmd) { FILE: restored-src/src/components/tasks/AsyncAgentDetailDialog.tsx type Props (line 19) | type Props = { function AsyncAgentDetailDialog (line 25) | function AsyncAgentDetailDialog(t0) { FILE: restored-src/src/components/tasks/BackgroundTask.tsx type Props (line 13) | type Props = { function BackgroundTask (line 17) | function BackgroundTask(t0) { FILE: restored-src/src/components/tasks/BackgroundTaskStatus.tsx type Props (line 18) | type Props = { function BackgroundTaskStatus (line 25) | function BackgroundTaskStatus(t0) { function _temp1 (line 235) | function _temp1(pill_0, i_0) { function _temp0 (line 239) | function _temp0(pill, i) { function _temp9 (line 245) | function _temp9(a_0, b_0) { function _temp8 (line 251) | function _temp8(t_2) { function _temp7 (line 259) | function _temp7(a, b) { function _temp6 (line 262) | function _temp6(t_1) { function _temp5 (line 265) | function _temp5(t_0) { function _temp4 (line 268) | function _temp4(s_1) { function _temp3 (line 271) | function _temp3(t) { function _temp2 (line 274) | function _temp2(s_0) { function _temp (line 277) | function _temp(s) { type AgentPillProps (line 280) | type AgentPillProps = { function AgentPill (line 288) | function AgentPill(t0) { function SummaryPill (line 378) | function SummaryPill(t0) { function getAgentThemeColor (line 422) | function getAgentThemeColor(colorName: string | undefined): keyof Theme ... FILE: restored-src/src/components/tasks/BackgroundTasksDialog.tsx type ViewState (line 43) | type ViewState = { type Props (line 49) | type Props = { type ListItem (line 56) | type ListItem = { function getSelectableBackgroundTasks (line 123) | function getSelectableBackgroundTasks(tasks: Record |... function BackgroundTasksDialog (line 127) | function BackgroundTasksDialog({ function toListItem (line 492) | function toListItem(task: BackgroundTaskState): ListItem { function Item (line 552) | function Item(t0) { function TeammateTaskGroups (line 612) | function TeammateTaskGroups(t0) { function _temp2 (line 646) | function _temp2(i_0) { function _temp (line 649) | function _temp(i) { FILE: restored-src/src/components/tasks/DreamDetailDialog.tsx type Props (line 13) | type Props = { constant VISIBLE_TURNS (line 21) | const VISIBLE_TURNS = 6; function DreamDetailDialog (line 22) | function DreamDetailDialog(t0) { function _temp2 (line 245) | function _temp2(turn, i) { function _temp (line 248) | function _temp(t) { FILE: restored-src/src/components/tasks/InProcessTeammateDetailDialog.tsx type Props (line 18) | type Props = { function InProcessTeammateDetailDialog (line 25) | function InProcessTeammateDetailDialog(t0) { FILE: restored-src/src/components/tasks/RemoteSessionDetailDialog.tsx type Props (line 30) | type Props = { function formatToolUseSummary (line 44) | function formatToolUseSummary(name: string, input: unknown): string { constant PHASE_LABEL (line 73) | const PHASE_LABEL = { constant AGENT_VERB (line 77) | const AGENT_VERB = { function UltraplanSessionDetail (line 81) | function UltraplanSessionDetail(t0) { constant STAGES (line 412) | const STAGES = ['finding', 'verifying', 'synthesizing'] as const; constant STAGE_LABELS (line 413) | const STAGE_LABELS: Record<(typeof STAGES)[number], string> = { function StagePipeline (line 424) | function StagePipeline(t0) { function reviewCountsLine (line 493) | function reviewCountsLine(session: DeepImmutable):... type MenuAction (line 507) | type MenuAction = 'open' | 'stop' | 'back' | 'dismiss'; function ReviewSessionDetail (line 508) | function ReviewSessionDetail(t0) { function _temp (line 775) | function _temp(exitState) { function RemoteSessionDetailDialog (line 778) | function RemoteSessionDetailDialog({ FILE: restored-src/src/components/tasks/RemoteSessionProgress.tsx constant TICK_MS (line 10) | const TICK_MS = 80; type ReviewStage (line 11) | type ReviewStage = NonNullable):... function ShellDetailDialog (line 49) | function ShellDetailDialog(t0) { function _temp (line 297) | function _temp(setOutputPromise_0, shell_0) { type ShellOutputContentProps (line 300) | type ShellOutputContentProps = { function ShellOutputContent (line 304) | function ShellOutputContent(t0) { function _temp2 (line 401) | function _temp2(line_0, i_1) { FILE: restored-src/src/components/tasks/ShellProgress.tsx type TaskStatusTextProps (line 8) | type TaskStatusTextProps = { function TaskStatusText (line 13) | function TaskStatusText(t0) { function ShellProgress (line 34) | function ShellProgress(t0) { FILE: restored-src/src/components/tasks/renderToolActivity.tsx function renderToolActivity (line 7) | function renderToolActivity(activity: ToolActivity, tools: Tools, theme:... FILE: restored-src/src/components/tasks/taskStatusUtils.tsx function isTerminalStatus (line 16) | function isTerminalStatus(status: TaskStatus): boolean { function getTaskStatusIcon (line 23) | function getTaskStatusIcon(status: TaskStatus, options?: { function getTaskStatusColor (line 50) | function getTaskStatusColor(status: TaskStatus, options?: { function describeTeammateActivity (line 77) | function describeTeammateActivity(t: DeepImmutable = { type FlattenedNode (line 15) | type FlattenedNode = { type TreeSelectProps (line 22) | type TreeSelectProps = { function TreeSelect (line 110) | function TreeSelect(t0) { function _temp2 (line 391) | function _temp2(_depth) { function _temp (line 394) | function _temp(isExpanded_0) { FILE: restored-src/src/components/wizard/WizardDialogLayout.tsx type Props (line 7) | type Props = { function WizardDialogLayout (line 14) | function WizardDialogLayout(t0) { FILE: restored-src/src/components/wizard/WizardNavigationFooter.tsx type Props (line 7) | type Props = { function WizardNavigationFooter (line 10) | function WizardNavigationFooter({ FILE: restored-src/src/components/wizard/WizardProvider.tsx function WizardProvider (line 9) | function WizardProvider(t0) { function _temp3 (line 204) | function _temp3(prev_2) { function _temp2 (line 207) | function _temp2(prev_1) { function _temp (line 210) | function _temp(prev_0) { FILE: restored-src/src/components/wizard/useWizard.ts function useWizard (line 5) | function useWizard< FILE: restored-src/src/constants/apiLimits.ts constant API_IMAGE_MAX_BASE64_SIZE (line 22) | const API_IMAGE_MAX_BASE64_SIZE = 5 * 1024 * 1024 // 5 MB constant IMAGE_TARGET_RAW_SIZE (line 29) | const IMAGE_TARGET_RAW_SIZE = (API_IMAGE_MAX_BASE64_SIZE * 3) / 4 // 3.7... constant IMAGE_MAX_WIDTH (line 42) | const IMAGE_MAX_WIDTH = 2000 constant IMAGE_MAX_HEIGHT (line 43) | const IMAGE_MAX_HEIGHT = 2000 constant PDF_TARGET_RAW_SIZE (line 54) | const PDF_TARGET_RAW_SIZE = 20 * 1024 * 1024 // 20 MB constant API_PDF_MAX_PAGES (line 59) | const API_PDF_MAX_PAGES = 100 constant PDF_EXTRACT_SIZE_THRESHOLD (line 66) | const PDF_EXTRACT_SIZE_THRESHOLD = 3 * 1024 * 1024 // 3 MB constant PDF_MAX_EXTRACT_SIZE (line 72) | const PDF_MAX_EXTRACT_SIZE = 100 * 1024 * 1024 // 100 MB constant PDF_MAX_PAGES_PER_READ (line 77) | const PDF_MAX_PAGES_PER_READ = 20 constant PDF_AT_MENTION_INLINE_THRESHOLD (line 83) | const PDF_AT_MENTION_INLINE_THRESHOLD = 10 constant API_MAX_MEDIA_PER_REQUEST (line 94) | const API_MAX_MEDIA_PER_REQUEST = 100 FILE: restored-src/src/constants/betas.ts constant CLAUDE_CODE_20250219_BETA_HEADER (line 3) | const CLAUDE_CODE_20250219_BETA_HEADER = 'claude-code-20250219' constant INTERLEAVED_THINKING_BETA_HEADER (line 4) | const INTERLEAVED_THINKING_BETA_HEADER = constant CONTEXT_1M_BETA_HEADER (line 6) | const CONTEXT_1M_BETA_HEADER = 'context-1m-2025-08-07' constant CONTEXT_MANAGEMENT_BETA_HEADER (line 7) | const CONTEXT_MANAGEMENT_BETA_HEADER = 'context-management-2025-06-27' constant STRUCTURED_OUTPUTS_BETA_HEADER (line 8) | const STRUCTURED_OUTPUTS_BETA_HEADER = 'structured-outputs-2025-12-15' constant WEB_SEARCH_BETA_HEADER (line 9) | const WEB_SEARCH_BETA_HEADER = 'web-search-2025-03-05' constant TOOL_SEARCH_BETA_HEADER_1P (line 13) | const TOOL_SEARCH_BETA_HEADER_1P = 'advanced-tool-use-2025-11-20' constant TOOL_SEARCH_BETA_HEADER_3P (line 14) | const TOOL_SEARCH_BETA_HEADER_3P = 'tool-search-tool-2025-10-19' constant EFFORT_BETA_HEADER (line 15) | const EFFORT_BETA_HEADER = 'effort-2025-11-24' constant TASK_BUDGETS_BETA_HEADER (line 16) | const TASK_BUDGETS_BETA_HEADER = 'task-budgets-2026-03-13' constant PROMPT_CACHING_SCOPE_BETA_HEADER (line 17) | const PROMPT_CACHING_SCOPE_BETA_HEADER = constant FAST_MODE_BETA_HEADER (line 19) | const FAST_MODE_BETA_HEADER = 'fast-mode-2026-02-01' constant REDACT_THINKING_BETA_HEADER (line 20) | const REDACT_THINKING_BETA_HEADER = 'redact-thinking-2026-02-12' constant TOKEN_EFFICIENT_TOOLS_BETA_HEADER (line 21) | const TOKEN_EFFICIENT_TOOLS_BETA_HEADER = constant SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER (line 23) | const SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER = feature('CONNECTOR_TEXT') constant AFK_MODE_BETA_HEADER (line 26) | const AFK_MODE_BETA_HEADER = feature('TRANSCRIPT_CLASSIFIER') constant CLI_INTERNAL_BETA_HEADER (line 29) | const CLI_INTERNAL_BETA_HEADER = constant ADVISOR_BETA_HEADER (line 31) | const ADVISOR_BETA_HEADER = 'advisor-tool-2026-03-01' constant BEDROCK_EXTRA_PARAMS_HEADERS (line 38) | const BEDROCK_EXTRA_PARAMS_HEADERS = new Set([ constant VERTEX_COUNT_TOKENS_ALLOWED_BETAS (line 48) | const VERTEX_COUNT_TOKENS_ALLOWED_BETAS = new Set([ FILE: restored-src/src/constants/common.ts function getLocalISODate (line 4) | function getLocalISODate(): string { function getLocalMonthYear (line 28) | function getLocalMonthYear(): string { FILE: restored-src/src/constants/cyberRiskInstruction.ts constant CYBER_RISK_INSTRUCTION (line 24) | const CYBER_RISK_INSTRUCTION = `IMPORTANT: Assist with authorized securi... FILE: restored-src/src/constants/errorIds.ts constant E_TOOL_USE_SUMMARY_GENERATION_FAILED (line 15) | const E_TOOL_USE_SUMMARY_GENERATION_FAILED = 344 FILE: restored-src/src/constants/figures.ts constant BLACK_CIRCLE (line 4) | const BLACK_CIRCLE = env.platform === 'darwin' ? '⏺' : '●' constant BULLET_OPERATOR (line 5) | const BULLET_OPERATOR = '∙' constant TEARDROP_ASTERISK (line 6) | const TEARDROP_ASTERISK = '✻' constant UP_ARROW (line 7) | const UP_ARROW = '\u2191' // ↑ - used for opus 1m merge notice constant DOWN_ARROW (line 8) | const DOWN_ARROW = '\u2193' // ↓ - used for scroll hint constant LIGHTNING_BOLT (line 9) | const LIGHTNING_BOLT = '↯' // \u21af - used for fast mode indicator constant EFFORT_LOW (line 10) | const EFFORT_LOW = '○' // \u25cb - effort level: low constant EFFORT_MEDIUM (line 11) | const EFFORT_MEDIUM = '◐' // \u25d0 - effort level: medium constant EFFORT_HIGH (line 12) | const EFFORT_HIGH = '●' // \u25cf - effort level: high constant EFFORT_MAX (line 13) | const EFFORT_MAX = '◉' // \u25c9 - effort level: max (Opus 4.6 only) constant PLAY_ICON (line 16) | const PLAY_ICON = '\u25b6' // ▶ constant PAUSE_ICON (line 17) | const PAUSE_ICON = '\u23f8' // ⏸ constant REFRESH_ARROW (line 20) | const REFRESH_ARROW = '\u21bb' // ↻ - used for resource update indicator constant CHANNEL_ARROW (line 21) | const CHANNEL_ARROW = '\u2190' // ← - inbound channel message indicator constant INJECTED_ARROW (line 22) | const INJECTED_ARROW = '\u2192' // → - cross-session injected message in... constant FORK_GLYPH (line 23) | const FORK_GLYPH = '\u2442' // ⑂ - fork directive indicator constant DIAMOND_OPEN (line 26) | const DIAMOND_OPEN = '\u25c7' // ◇ - running constant DIAMOND_FILLED (line 27) | const DIAMOND_FILLED = '\u25c6' // ◆ - completed/failed constant REFERENCE_MARK (line 28) | const REFERENCE_MARK = '\u203b' // ※ - komejirushi, away-summary recap m... constant FLAG_ICON (line 31) | const FLAG_ICON = '\u2691' // ⚑ - used for issue flag banner constant BLOCKQUOTE_BAR (line 34) | const BLOCKQUOTE_BAR = '\u258e' // ▎ - left one-quarter block, used as b... constant HEAVY_HORIZONTAL (line 35) | const HEAVY_HORIZONTAL = '\u2501' // ━ - heavy box-drawing horizontal constant BRIDGE_SPINNER_FRAMES (line 38) | const BRIDGE_SPINNER_FRAMES = [ constant BRIDGE_READY_INDICATOR (line 44) | const BRIDGE_READY_INDICATOR = '\u00b7\u2714\ufe0e\u00b7' constant BRIDGE_FAILED_INDICATOR (line 45) | const BRIDGE_FAILED_INDICATOR = '\u00d7' FILE: restored-src/src/constants/files.ts constant BINARY_EXTENSIONS (line 5) | const BINARY_EXTENSIONS = new Set([ function hasBinaryExtension (line 117) | function hasBinaryExtension(filePath: string): boolean { constant BINARY_CHECK_SIZE (line 125) | const BINARY_CHECK_SIZE = 8192 function isBinaryContent (line 131) | function isBinaryContent(buffer: Buffer): boolean { FILE: restored-src/src/constants/github-app.ts constant PR_TITLE (line 1) | const PR_TITLE = 'Add Claude Code GitHub Workflow' constant GITHUB_ACTION_SETUP_DOCS_URL (line 3) | const GITHUB_ACTION_SETUP_DOCS_URL = constant WORKFLOW_CONTENT (line 6) | const WORKFLOW_CONTENT = `name: Claude Code constant PR_BODY (line 58) | const PR_BODY = `## 🤖 Installing Claude Code GitHub App constant CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT (line 100) | const CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT = `name: Claude Code Review FILE: restored-src/src/constants/keys.ts function getGrowthBookClientKey (line 5) | function getGrowthBookClientKey(): string { FILE: restored-src/src/constants/messages.ts constant NO_CONTENT_MESSAGE (line 1) | const NO_CONTENT_MESSAGE = '(no content)' FILE: restored-src/src/constants/oauth.ts type OauthConfigType (line 4) | type OauthConfigType = 'prod' | 'staging' | 'local' function getOauthConfigType (line 6) | function getOauthConfigType(): OauthConfigType { function fileSuffixForOauthConfig (line 18) | function fileSuffixForOauthConfig(): string { constant CLAUDE_AI_INFERENCE_SCOPE (line 33) | const CLAUDE_AI_INFERENCE_SCOPE = 'user:inference' as const constant CLAUDE_AI_PROFILE_SCOPE (line 34) | const CLAUDE_AI_PROFILE_SCOPE = 'user:profile' as const constant CONSOLE_SCOPE (line 35) | const CONSOLE_SCOPE = 'org:create_api_key' as const constant OAUTH_BETA_HEADER (line 36) | const OAUTH_BETA_HEADER = 'oauth-2025-04-20' as const constant CONSOLE_OAUTH_SCOPES (line 39) | const CONSOLE_OAUTH_SCOPES = [ constant CLAUDE_AI_OAUTH_SCOPES (line 45) | const CLAUDE_AI_OAUTH_SCOPES = [ constant ALL_OAUTH_SCOPES (line 56) | const ALL_OAUTH_SCOPES = Array.from( type OauthConfig (line 60) | type OauthConfig = { constant PROD_OAUTH_CONFIG (line 84) | const PROD_OAUTH_CONFIG = { constant MCP_CLIENT_METADATA_URL (line 113) | const MCP_CLIENT_METADATA_URL = constant STAGING_OAUTH_CONFIG (line 118) | const STAGING_OAUTH_CONFIG = function getLocalOauthConfig (line 148) | function getLocalOauthConfig(): OauthConfig { constant ALLOWED_OAUTH_BASE_URLS (line 179) | const ALLOWED_OAUTH_BASE_URLS = [ function getOauthConfig (line 186) | function getOauthConfig(): OauthConfig { FILE: restored-src/src/constants/outputStyles.ts type OutputStyleConfig (line 11) | type OutputStyleConfig = { type OutputStyles (line 25) | type OutputStyles = { constant EXPLANATORY_FEATURE_PROMPT (line 30) | const EXPLANATORY_FEATURE_PROMPT = ` constant DEFAULT_OUTPUT_STYLE_NAME (line 39) | const DEFAULT_OUTPUT_STYLE_NAME = 'default' constant OUTPUT_STYLE_CONFIG (line 41) | const OUTPUT_STYLE_CONFIG: OutputStyles = { function clearAllOutputStylesCache (line 177) | function clearAllOutputStylesCache(): void { function getOutputStyleConfig (line 181) | async function getOutputStyleConfig(): Promise { function hasCustomOutputStyle (line 213) | function hasCustomOutputStyle(): boolean { FILE: restored-src/src/constants/product.ts constant PRODUCT_URL (line 1) | const PRODUCT_URL = 'https://claude.com/claude-code' constant CLAUDE_AI_BASE_URL (line 4) | const CLAUDE_AI_BASE_URL = 'https://claude.ai' constant CLAUDE_AI_STAGING_BASE_URL (line 5) | const CLAUDE_AI_STAGING_BASE_URL = 'https://claude-ai.staging.ant.dev' constant CLAUDE_AI_LOCAL_BASE_URL (line 6) | const CLAUDE_AI_LOCAL_BASE_URL = 'http://localhost:4000' function isRemoteSessionStaging (line 12) | function isRemoteSessionStaging( function isRemoteSessionLocal (line 26) | function isRemoteSessionLocal( function getClaudeAiBaseUrl (line 39) | function getClaudeAiBaseUrl( function getRemoteSessionUrl (line 65) | function getRemoteSessionUrl( FILE: restored-src/src/constants/prompts.ts constant BRIEF_PROACTIVE_SECTION (line 76) | const BRIEF_PROACTIVE_SECTION: string | null = constant DISCOVER_SKILLS_TOOL_NAME (line 86) | const DISCOVER_SKILLS_TOOL_NAME: string | null = feature( constant CLAUDE_CODE_DOCS_MAP_URL (line 102) | const CLAUDE_CODE_DOCS_MAP_URL = constant SYSTEM_PROMPT_DYNAMIC_BOUNDARY (line 114) | const SYSTEM_PROMPT_DYNAMIC_BOUNDARY = constant FRONTIER_MODEL_NAME (line 118) | const FRONTIER_MODEL_NAME = 'Claude Opus 4.6' constant CLAUDE_4_5_OR_4_6_MODEL_IDS (line 121) | const CLAUDE_4_5_OR_4_6_MODEL_IDS = { function getHooksSection (line 127) | function getHooksSection(): string { function getSystemRemindersSection (line 131) | function getSystemRemindersSection(): string { function getAntModelOverrideSection (line 136) | function getAntModelOverrideSection(): string | null { function getLanguageSection (line 142) | function getLanguageSection( function getOutputStyleSection (line 151) | function getOutputStyleSection( function getMcpInstructionsSection (line 160) | function getMcpInstructionsSection( function prependBullets (line 167) | function prependBullets(items: Array): string[] { function getSimpleIntroSection (line 175) | function getSimpleIntroSection( function getSimpleSystemSection (line 186) | function getSimpleSystemSection(): string { function getSimpleDoingTasksSection (line 199) | function getSimpleDoingTasksSection(): string { function getActionsSection (line 255) | function getActionsSection(): string { function getUsingYourToolsSection (line 269) | function getUsingYourToolsSection(enabledTools: Set): string { function getAgentToolSection (line 316) | function getAgentToolSection(): string { function getDiscoverSkillsGuidance (line 333) | function getDiscoverSkillsGuidance(): string | null { function getSessionSpecificGuidanceSection (line 352) | function getSessionSpecificGuidanceSection( function getOutputEfficiencySection (line 403) | function getOutputEfficiencySection(): string { function getSimpleToneAndStyleSection (line 430) | function getSimpleToneAndStyleSection(): string { function getSystemPrompt (line 444) | async function getSystemPrompt( function getMcpInstructions (line 579) | function getMcpInstructions(mcpClients: MCPServerConnection[]): string |... function computeEnvInfo (line 606) | async function computeEnvInfo( function computeSimpleEnvInfo (line 651) | async function computeSimpleEnvInfo( function getKnowledgeCutoff (line 713) | function getKnowledgeCutoff(modelId: string): string | null { function getShellInfoLine (line 732) | function getShellInfoLine(): string { function getUnameSR (line 745) | function getUnameSR(): string { constant DEFAULT_AGENT_PROMPT (line 758) | const DEFAULT_AGENT_PROMPT = `You are an agent for Claude Code, Anthropi... function enhanceSystemPromptWithEnvDetails (line 760) | async function enhanceSystemPromptWithEnvDetails( function getScratchpadInstructions (line 797) | function getScratchpadInstructions(): string | null { function getFunctionResultClearingSection (line 821) | function getFunctionResultClearingSection(model: string): string | null { constant SUMMARIZE_TOOL_RESULTS_SECTION (line 841) | const SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, ... function getBriefSection (line 843) | function getBriefSection(): string | null { function getProactiveSection (line 860) | function getProactiveSection(): string | null { FILE: restored-src/src/constants/spinnerVerbs.ts function getSpinnerVerbs (line 3) | function getSpinnerVerbs(): string[] { constant SPINNER_VERBS (line 16) | const SPINNER_VERBS = [ FILE: restored-src/src/constants/system.ts constant DEFAULT_PREFIX (line 10) | const DEFAULT_PREFIX = `You are Claude Code, Anthropic's official CLI fo... constant AGENT_SDK_CLAUDE_CODE_PRESET_PREFIX (line 11) | const AGENT_SDK_CLAUDE_CODE_PRESET_PREFIX = `You are Claude Code, Anthro... constant AGENT_SDK_PREFIX (line 12) | const AGENT_SDK_PREFIX = `You are a Claude agent, built on Anthropic's C... constant CLI_SYSPROMPT_PREFIX_VALUES (line 14) | const CLI_SYSPROMPT_PREFIX_VALUES = [ type CLISyspromptPrefix (line 20) | type CLISyspromptPrefix = (typeof CLI_SYSPROMPT_PREFIX_VALUES)[number] constant CLI_SYSPROMPT_PREFIXES (line 26) | const CLI_SYSPROMPT_PREFIXES: ReadonlySet = new Set( function getCLISyspromptPrefix (line 30) | function getCLISyspromptPrefix(options?: { function isAttributionHeaderEnabled (line 52) | function isAttributionHeaderEnabled(): boolean { function getAttributionHeader (line 73) | function getAttributionHeader(fingerprint: string): string { FILE: restored-src/src/constants/systemPromptSections.ts type ComputeFn (line 8) | type ComputeFn = () => string | null | Promise type SystemPromptSection (line 10) | type SystemPromptSection = { function systemPromptSection (line 20) | function systemPromptSection( function DANGEROUS_uncachedSystemPromptSection (line 32) | function DANGEROUS_uncachedSystemPromptSection( function resolveSystemPromptSections (line 43) | async function resolveSystemPromptSections( function clearSystemPromptSections (line 65) | function clearSystemPromptSections(): void { FILE: restored-src/src/constants/toolLimits.ts constant DEFAULT_MAX_RESULT_SIZE_CHARS (line 13) | const DEFAULT_MAX_RESULT_SIZE_CHARS = 50_000 constant MAX_TOOL_RESULT_TOKENS (line 22) | const MAX_TOOL_RESULT_TOKENS = 100_000 constant BYTES_PER_TOKEN (line 28) | const BYTES_PER_TOKEN = 4 constant MAX_TOOL_RESULT_BYTES (line 33) | const MAX_TOOL_RESULT_BYTES = MAX_TOOL_RESULT_TOKENS * BYTES_PER_TOKEN constant MAX_TOOL_RESULTS_PER_MESSAGE_CHARS (line 49) | const MAX_TOOL_RESULTS_PER_MESSAGE_CHARS = 200_000 constant TOOL_SUMMARY_MAX_LENGTH (line 56) | const TOOL_SUMMARY_MAX_LENGTH = 50 FILE: restored-src/src/constants/tools.ts constant ALL_AGENT_DISALLOWED_TOOLS (line 36) | const ALL_AGENT_DISALLOWED_TOOLS = new Set([ constant CUSTOM_AGENT_DISALLOWED_TOOLS (line 48) | const CUSTOM_AGENT_DISALLOWED_TOOLS = new Set([ constant ASYNC_AGENT_ALLOWED_TOOLS (line 55) | const ASYNC_AGENT_ALLOWED_TOOLS = new Set([ constant IN_PROCESS_TEAMMATE_ALLOWED_TOOLS (line 77) | const IN_PROCESS_TEAMMATE_ALLOWED_TOOLS = new Set([ constant COORDINATOR_MODE_ALLOWED_TOOLS (line 107) | const COORDINATOR_MODE_ALLOWED_TOOLS = new Set([ FILE: restored-src/src/constants/turnCompletionVerbs.ts constant TURN_COMPLETION_VERBS (line 3) | const TURN_COMPLETION_VERBS = [ FILE: restored-src/src/constants/xml.ts constant COMMAND_NAME_TAG (line 2) | const COMMAND_NAME_TAG = 'command-name' constant COMMAND_MESSAGE_TAG (line 3) | const COMMAND_MESSAGE_TAG = 'command-message' constant COMMAND_ARGS_TAG (line 4) | const COMMAND_ARGS_TAG = 'command-args' constant BASH_INPUT_TAG (line 8) | const BASH_INPUT_TAG = 'bash-input' constant BASH_STDOUT_TAG (line 9) | const BASH_STDOUT_TAG = 'bash-stdout' constant BASH_STDERR_TAG (line 10) | const BASH_STDERR_TAG = 'bash-stderr' constant LOCAL_COMMAND_STDOUT_TAG (line 11) | const LOCAL_COMMAND_STDOUT_TAG = 'local-command-stdout' constant LOCAL_COMMAND_STDERR_TAG (line 12) | const LOCAL_COMMAND_STDERR_TAG = 'local-command-stderr' constant LOCAL_COMMAND_CAVEAT_TAG (line 13) | const LOCAL_COMMAND_CAVEAT_TAG = 'local-command-caveat' constant TERMINAL_OUTPUT_TAGS (line 16) | const TERMINAL_OUTPUT_TAGS = [ constant TICK_TAG (line 25) | const TICK_TAG = 'tick' constant TASK_NOTIFICATION_TAG (line 28) | const TASK_NOTIFICATION_TAG = 'task-notification' constant TASK_ID_TAG (line 29) | const TASK_ID_TAG = 'task-id' constant TOOL_USE_ID_TAG (line 30) | const TOOL_USE_ID_TAG = 'tool-use-id' constant TASK_TYPE_TAG (line 31) | const TASK_TYPE_TAG = 'task-type' constant OUTPUT_FILE_TAG (line 32) | const OUTPUT_FILE_TAG = 'output-file' constant STATUS_TAG (line 33) | const STATUS_TAG = 'status' constant SUMMARY_TAG (line 34) | const SUMMARY_TAG = 'summary' constant REASON_TAG (line 35) | const REASON_TAG = 'reason' constant WORKTREE_TAG (line 36) | const WORKTREE_TAG = 'worktree' constant WORKTREE_PATH_TAG (line 37) | const WORKTREE_PATH_TAG = 'worktreePath' constant WORKTREE_BRANCH_TAG (line 38) | const WORKTREE_BRANCH_TAG = 'worktreeBranch' constant ULTRAPLAN_TAG (line 41) | const ULTRAPLAN_TAG = 'ultraplan' constant REMOTE_REVIEW_TAG (line 45) | const REMOTE_REVIEW_TAG = 'remote-review' constant REMOTE_REVIEW_PROGRESS_TAG (line 49) | const REMOTE_REVIEW_PROGRESS_TAG = 'remote-review-progress' constant TEAMMATE_MESSAGE_TAG (line 52) | const TEAMMATE_MESSAGE_TAG = 'teammate-message' constant CHANNEL_MESSAGE_TAG (line 55) | const CHANNEL_MESSAGE_TAG = 'channel-message' constant CHANNEL_TAG (line 56) | const CHANNEL_TAG = 'channel' constant CROSS_SESSION_MESSAGE_TAG (line 59) | const CROSS_SESSION_MESSAGE_TAG = 'cross-session-message' constant FORK_BOILERPLATE_TAG (line 63) | const FORK_BOILERPLATE_TAG = 'fork-boilerplate' constant FORK_DIRECTIVE_PREFIX (line 66) | const FORK_DIRECTIVE_PREFIX = 'Your directive: ' constant COMMON_HELP_ARGS (line 69) | const COMMON_HELP_ARGS = ['help', '-h', '--help'] constant COMMON_INFO_ARGS (line 72) | const COMMON_INFO_ARGS = [ FILE: restored-src/src/context.ts constant MAX_STATUS_CHARS (line 20) | const MAX_STATUS_CHARS = 2000 function getSystemPromptInjection (line 25) | function getSystemPromptInjection(): string | null { function setSystemPromptInjection (line 29) | function setSystemPromptInjection(value: string | null): void { FILE: restored-src/src/context/QueuedMessageContext.tsx type QueuedMessageContextValue (line 4) | type QueuedMessageContextValue = { function useQueuedMessage (line 11) | function useQueuedMessage() { constant PADDING_X (line 14) | const PADDING_X = 2; type Props (line 15) | type Props = { function QueuedMessageProvider (line 20) | function QueuedMessageProvider(t0) { FILE: restored-src/src/context/fpsMetrics.tsx type FpsMetricsGetter (line 4) | type FpsMetricsGetter = () => FpsMetrics | undefined; type Props (line 6) | type Props = { function FpsMetricsProvider (line 10) | function FpsMetricsProvider(t0) { function useFpsMetrics (line 27) | function useFpsMetrics() { FILE: restored-src/src/context/mailbox.tsx type Props (line 5) | type Props = { function MailboxProvider (line 8) | function MailboxProvider(t0) { function useMailbox (line 31) | function useMailbox() { FILE: restored-src/src/context/modalContext.tsx type ModalCtx (line 22) | type ModalCtx = { function useIsInsideModal (line 28) | function useIsInsideModal() { function useModalOrTerminalSize (line 38) | function useModalOrTerminalSize(fallback) { function useModalScrollRef (line 55) | function useModalScrollRef() { FILE: restored-src/src/context/notifications.tsx type Priority (line 5) | type Priority = 'low' | 'medium' | 'high' | 'immediate'; type BaseNotification (line 6) | type BaseNotification = { type TextNotification (line 24) | type TextNotification = BaseNotification & { type JSXNotification (line 28) | type JSXNotification = BaseNotification & { type AddNotificationFn (line 31) | type AddNotificationFn = (content: Notification) => void; type RemoveNotificationFn (line 32) | type RemoveNotificationFn = (key: string) => void; type Notification (line 33) | type Notification = TextNotification | JSXNotification; constant DEFAULT_TIMEOUT_MS (line 34) | const DEFAULT_TIMEOUT_MS = 8000; function useNotifications (line 38) | function useNotifications(): { constant PRIORITIES (line 230) | const PRIORITIES: Record = { function getNext (line 236) | function getNext(queue: Notification[]): Notification | undefined { FILE: restored-src/src/context/overlayContext.tsx constant NON_MODAL_OVERLAYS (line 21) | const NON_MODAL_OVERLAYS = new Set(['autocomplete']); function useRegisterOverlay (line 38) | function useRegisterOverlay(id, t0) { function _temp (line 119) | function _temp() { function useIsOverlayActive (line 122) | function useIsOverlayActive() { function _temp2 (line 137) | function _temp2(s) { function useIsModalOverlayActive (line 140) | function useIsModalOverlayActive() { function _temp3 (line 143) | function _temp3(s) { FILE: restored-src/src/context/promptOverlayContext.tsx type PromptOverlayData (line 24) | type PromptOverlayData = { type Setter (line 29) | type Setter = (d: T | null) => void; function PromptOverlayProvider (line 34) | function PromptOverlayProvider(t0) { function usePromptOverlay (line 61) | function usePromptOverlay() { function usePromptOverlayDialog (line 64) | function usePromptOverlayDialog() { function useSetPromptOverlay (line 72) | function useSetPromptOverlay(data) { function useSetPromptOverlayDialog (line 101) | function useSetPromptOverlayDialog(node) { FILE: restored-src/src/context/stats.tsx type StatsStore (line 4) | type StatsStore = { function percentile (line 11) | function percentile(sorted: number[], p: number): number { constant RESERVOIR_SIZE (line 20) | const RESERVOIR_SIZE = 1024; type Histogram (line 21) | type Histogram = { function createStatsStore (line 28) | function createStatsStore(): StatsStore { type Props (line 100) | type Props = { function StatsProvider (line 104) | function StatsProvider(t0) { function useStats (line 157) | function useStats() { function useCounter (line 164) | function useCounter(name) { function useGauge (line 178) | function useGauge(name) { function useTimer (line 192) | function useTimer(name) { function useSet (line 206) | function useSet(name) { FILE: restored-src/src/context/voice.tsx type VoiceState (line 4) | type VoiceState = { constant DEFAULT_STATE (line 11) | const DEFAULT_STATE: VoiceState = { type VoiceStore (line 18) | type VoiceStore = Store; type Props (line 20) | type Props = { function VoiceProvider (line 23) | function VoiceProvider(t0) { function _temp (line 40) | function _temp() { function useVoiceStore (line 43) | function useVoiceStore() { function useVoiceState (line 55) | function useVoiceState(selector) { function useSetVoiceState (line 76) | function useSetVoiceState() { function useGetVoiceState (line 85) | function useGetVoiceState() { FILE: restored-src/src/coordinator/coordinatorMode.ts function isScratchpadGateEnabled (line 25) | function isScratchpadGateEnabled(): boolean { constant INTERNAL_WORKER_TOOLS (line 29) | const INTERNAL_WORKER_TOOLS = new Set([ function isCoordinatorMode (line 36) | function isCoordinatorMode(): boolean { function matchSessionMode (line 49) | function matchSessionMode( function getCoordinatorUserContext (line 80) | function getCoordinatorUserContext( function getCoordinatorSystemPrompt (line 111) | function getCoordinatorSystemPrompt(): string { FILE: restored-src/src/cost-tracker.ts type StoredCostState (line 71) | type StoredCostState = { function getStoredSessionCosts (line 87) | function getStoredSessionCosts( function restoreCostStateForSession (line 130) | function restoreCostStateForSession(sessionId: string): boolean { function saveCurrentSessionCosts (line 143) | function saveCurrentSessionCosts(fpsMetrics?: FpsMetrics): void { function formatCost (line 177) | function formatCost(cost: number, maxDecimalPlaces: number = 4): string { function formatModelUsage (line 181) | function formatModelUsage(): string { function formatTotalCost (line 228) | function formatTotalCost(): string { function round (line 246) | function round(number: number, precision: number): number { function addToTotalModelUsage (line 250) | function addToTotalModelUsage( function addToTotalSessionCost (line 278) | function addToTotalSessionCost( FILE: restored-src/src/costHook.ts function useCostSummary (line 6) | function useCostSummary( FILE: restored-src/src/dialogLaunchers.tsx type ResumeConversationProps (line 23) | type ResumeConversationProps = React.ComponentProps( type CreateSdkMcpServerOptions (line 90) | type CreateSdkMcpServerOptions = { function createSdkMcpServer (line 103) | function createSdkMcpServer( class AbortError (line 109) | class AbortError extends Error {} function query (line 120) | function query(): Query { function unstable_v2_createSession (line 129) | function unstable_v2_createSession( function unstable_v2_resumeSession (line 140) | function unstable_v2_resumeSession( function unstable_v2_prompt (line 160) | async function unstable_v2_prompt( function getSessionMessages (line 178) | async function getSessionMessages( function listSessions (line 204) | async function listSessions( function getSessionInfo (line 219) | async function getSessionInfo( function renameSession (line 232) | async function renameSession( function tagSession (line 246) | async function tagSession( function forkSession (line 268) | async function forkSession( type CronTask (line 283) | type CronTask = { type CronJitterConfig (line 298) | type CronJitterConfig = { type ScheduledTaskEvent (line 311) | type ScheduledTaskEvent = type ScheduledTasksHandle (line 319) | type ScheduledTasksHandle = { function watchScheduledTasks (line 350) | function watchScheduledTasks(_opts: { function buildMissedTaskNotification (line 363) | function buildMissedTaskNotification(_missed: CronTask[]): string { type InboundPrompt (line 371) | type InboundPrompt = { type ConnectRemoteControlOptions (line 380) | type ConnectRemoteControlOptions = { type RemoteControlHandle (line 398) | type RemoteControlHandle = { function connectRemoteControl (line 439) | async function connectRemoteControl( FILE: restored-src/src/entrypoints/cli.tsx function main (line 33) | async function main(): Promise { FILE: restored-src/src/entrypoints/init.ts function initializeTelemetryAfterTrust (line 247) | function initializeTelemetryAfterTrust(): void { function doInitializeTelemetry (line 288) | async function doInitializeTelemetry(): Promise { function setMeterState (line 305) | async function setMeterState(): Promise { FILE: restored-src/src/entrypoints/mcp.ts type ToolInput (line 30) | type ToolInput = Tool['inputSchema'] type ToolOutput (line 31) | type ToolOutput = Tool['outputSchema'] constant MCP_COMMANDS (line 33) | const MCP_COMMANDS: Command[] = [review] function startMCPServer (line 35) | async function startMCPServer( FILE: restored-src/src/entrypoints/sandboxTypes.ts type SandboxSettings (line 147) | type SandboxSettings = z.infer> type SandboxNetworkConfig (line 148) | type SandboxNetworkConfig = NonNullable< type SandboxFilesystemConfig (line 151) | type SandboxFilesystemConfig = NonNullable< type SandboxIgnoreViolations (line 154) | type SandboxIgnoreViolations = NonNullable< FILE: restored-src/src/entrypoints/sdk/coreSchemas.ts constant HOOK_EVENTS (line 355) | const HOOK_EVENTS = [ constant CONFIG_CHANGE_SOURCES (line 662) | const CONFIG_CHANGE_SOURCES = [ constant INSTRUCTIONS_LOAD_REASONS (line 680) | const INSTRUCTIONS_LOAD_REASONS = [ constant INSTRUCTIONS_MEMORY_TYPES (line 688) | const INSTRUCTIONS_MEMORY_TYPES = [ constant EXIT_REASONS (line 747) | const EXIT_REASONS = [ FILE: restored-src/src/entrypoints/sdk/coreTypes.ts constant HOOK_EVENTS (line 25) | const HOOK_EVENTS = [ constant EXIT_REASONS (line 55) | const EXIT_REASONS = [ FILE: restored-src/src/history.ts constant MAX_HISTORY_ITEMS (line 19) | const MAX_HISTORY_ITEMS = 100 constant MAX_PASTED_CONTENT_LENGTH (line 20) | const MAX_PASTED_CONTENT_LENGTH = 1024 type StoredPastedContent (line 25) | type StoredPastedContent = { function getPastedTextRefNumLines (line 47) | function getPastedTextRefNumLines(text: string): number { function formatPastedTextRef (line 51) | function formatPastedTextRef(id: number, numLines: number): string { function formatImageRef (line 58) | function formatImageRef(id: number): string { function parseReferences (line 62) | function parseReferences( function expandPastedTextRefs (line 81) | function expandPastedTextRefs( function deserializeLogEntry (line 102) | function deserializeLogEntry(line: string): LogEntry { type TimestampedHistoryEntry (line 151) | type TimestampedHistoryEntry = { type LogEntry (line 219) | type LogEntry = { function resolveStoredPastedContent (line 230) | async function resolveStoredPastedContent( function logEntryToHistoryEntry (line 265) | async function logEntryToHistoryEntry(entry: LogEntry): Promise { function flushPromptHistory (line 329) | async function flushPromptHistory(retries: number): Promise { function addToPromptHistory (line 355) | async function addToPromptHistory( function addToHistory (line 411) | function addToHistory(command: HistoryEntry | string): void { function clearPendingHistoryEntries (line 436) | function clearPendingHistoryEntries(): void { function removeLastFromHistory (line 453) | function removeLastFromHistory(): void { FILE: restored-src/src/hooks/fileSuggestions.ts function getFileIndex (line 36) | function getFileIndex(): FileIndex { function clearFileSuggestionCaches (line 84) | function clearFileSuggestionCaches(): void { function pathListSignature (line 111) | function pathListSignature(paths: string[]): string { function getGitIndexMtime (line 138) | function getGitIndexMtime(): number | null { function normalizeGitPaths (line 152) | function normalizeGitPaths( function mergeUntrackedIntoNormalizedCache (line 169) | async function mergeUntrackedIntoNormalizedCache( function loadRipgrepIgnorePatterns (line 202) | async function loadRipgrepIgnorePatterns( function getFilesUsingGit (line 248) | async function getFilesUsingGit( function getDirectoryNames (line 393) | function getDirectoryNames(files: string[]): string[] { function getDirectoryNamesAsync (line 403) | async function getDirectoryNamesAsync( function collectDirectoryNames (line 420) | function collectDirectoryNames( function getClaudeConfigFiles (line 445) | async function getClaudeConfigFiles(cwd: string): Promise { function getProjectFiles (line 459) | async function getProjectFiles( function getPathsForSuggestions (line 523) | async function getPathsForSuggestions(): Promise { function findCommonPrefix (line 575) | function findCommonPrefix(a: string, b: string): string { function findLongestCommonPrefix (line 587) | function findLongestCommonPrefix(suggestions: SuggestionItem[]): string { function createFileSuggestionItem (line 603) | function createFileSuggestionItem( constant MAX_SUGGESTIONS (line 617) | const MAX_SUGGESTIONS = 15 function findMatchingFiles (line 618) | function findMatchingFiles( constant REFRESH_THROTTLE_MS (line 635) | const REFRESH_THROTTLE_MS = 5_000 function startBackgroundCacheRefresh (line 636) | function startBackgroundCacheRefresh(): void { function getTopLevelPaths (line 692) | async function getTopLevelPaths(): Promise { function generateFileSuggestions (line 715) | async function generateFileSuggestions( function applyFileSuggestion (line 789) | function applyFileSuggestion( FILE: restored-src/src/hooks/notifs/useAutoModeUnavailableNotification.ts function useAutoModeUnavailableNotification (line 19) | function useAutoModeUnavailableNotification(): void { FILE: restored-src/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx constant MAX_SHOW_COUNT (line 8) | const MAX_SHOW_COUNT = 3; function useCanSwitchToExistingSubscription (line 13) | function useCanSwitchToExistingSubscription() { function _temp2 (line 21) | async function _temp2() { function _temp (line 37) | function _temp(current) { function getExistingClaudeSubscription (line 43) | async function getExistingClaudeSubscription(): Promise<'Max' | 'Pro' | ... FILE: restored-src/src/hooks/notifs/useDeprecationWarningNotification.tsx function useDeprecationWarningNotification (line 6) | function useDeprecationWarningNotification(model) { FILE: restored-src/src/hooks/notifs/useFastModeNotification.tsx constant COOLDOWN_STARTED_KEY (line 8) | const COOLDOWN_STARTED_KEY = 'fast-mode-cooldown-started'; constant COOLDOWN_EXPIRED_KEY (line 9) | const COOLDOWN_EXPIRED_KEY = 'fast-mode-cooldown-expired'; constant ORG_CHANGED_KEY (line 10) | const ORG_CHANGED_KEY = 'fast-mode-org-changed'; constant OVERAGE_REJECTED_KEY (line 11) | const OVERAGE_REJECTED_KEY = 'fast-mode-overage-rejected'; function useFastModeNotification (line 12) | function useFastModeNotification() { function _temp3 (line 139) | function _temp3(prev_0) { function _temp2 (line 145) | function _temp2(prev) { function _temp (line 151) | function _temp(s) { function getCooldownMessage (line 154) | function getCooldownMessage(reason: CooldownReason, resetIn: string): st... FILE: restored-src/src/hooks/notifs/useIDEStatusIndicator.tsx constant MAX_IDE_HINT_SHOW_COUNT (line 11) | const MAX_IDE_HINT_SHOW_COUNT = 5; type Props (line 12) | type Props = { function useIDEStatusIndicator (line 17) | function useIDEStatusIndicator(t0) { function _temp2 (line 166) | function _temp2(hasShownHintRef_0, addNotification_0) { function _temp (line 180) | function _temp(current) { FILE: restored-src/src/hooks/notifs/useInstallMessages.tsx function useInstallMessages (line 3) | function useInstallMessages() { function _temp2 (line 6) | async function _temp2() { function _temp (line 10) | function _temp(message, index) { FILE: restored-src/src/hooks/notifs/useLspInitializationNotification.tsx constant LSP_POLL_INTERVAL_MS (line 11) | const LSP_POLL_INTERVAL_MS = 5000; function useLspInitializationNotification (line 22) | function useLspInitializationNotification() { function _temp2 (line 134) | function _temp2(e) { function _temp (line 140) | function _temp() { FILE: restored-src/src/hooks/notifs/useMcpConnectivityStatus.tsx type Props (line 9) | type Props = { constant EMPTY_MCP_CLIENTS (line 12) | const EMPTY_MCP_CLIENTS: MCPServerConnection[] = []; function useMcpConnectivityStatus (line 13) | function useMcpConnectivityStatus(t0) { function _temp4 (line 76) | function _temp4(client_2) { function _temp3 (line 79) | function _temp3(client_1) { function _temp2 (line 82) | function _temp2(client_0) { function _temp (line 85) | function _temp(client) { FILE: restored-src/src/hooks/notifs/useModelMigrationNotifications.tsx constant MIGRATIONS (line 9) | const MIGRATIONS: ((c: GlobalConfig) => Notification | undefined)[] = [ function useModelMigrationNotifications (line 35) | function useModelMigrationNotifications() { function _temp (line 38) | function _temp() { function recent (line 49) | function recent(ts: number | undefined): boolean { FILE: restored-src/src/hooks/notifs/useNpmDeprecationNotification.tsx constant NPM_DEPRECATION_MESSAGE (line 5) | const NPM_DEPRECATION_MESSAGE = 'Claude Code has switched from npm to na... function useNpmDeprecationNotification (line 6) | function useNpmDeprecationNotification() { function _temp (line 9) | async function _temp() { FILE: restored-src/src/hooks/notifs/usePluginAutoupdateNotification.tsx function usePluginAutoupdateNotification (line 14) | function usePluginAutoupdateNotification() { function _temp (line 79) | function _temp(id) { FILE: restored-src/src/hooks/notifs/usePluginInstallationStatus.tsx function usePluginInstallationStatus (line 10) | function usePluginInstallationStatus() { function _temp3 (line 119) | function _temp3(p) { function _temp2 (line 122) | function _temp2(m) { function _temp (line 125) | function _temp(s) { FILE: restored-src/src/hooks/notifs/useRateLimitWarningNotification.tsx function useRateLimitWarningNotification (line 11) | function useRateLimitWarningNotification(model) { FILE: restored-src/src/hooks/notifs/useSettingsErrors.tsx constant SETTINGS_ERRORS_NOTIFICATION_KEY (line 8) | const SETTINGS_ERRORS_NOTIFICATION_KEY = 'settings-errors'; function useSettingsErrors (line 9) | function useSettingsErrors() { function _temp (line 63) | function _temp() { FILE: restored-src/src/hooks/notifs/useStartupNotification.ts type Result (line 9) | type Result = Notification | Notification[] | null function useStartupNotification (line 19) | function useStartupNotification( FILE: restored-src/src/hooks/notifs/useTeammateShutdownNotification.ts function parseCount (line 10) | function parseCount(notif: Notification): number { function foldSpawn (line 18) | function foldSpawn(acc: Notification, _incoming: Notification): Notifica... function makeSpawnNotif (line 22) | function makeSpawnNotif(count: number): Notification { function foldShutdown (line 32) | function foldShutdown( function makeShutdownNotif (line 39) | function makeShutdownNotif(count: number): Notification { function useTeammateLifecycleNotification (line 54) | function useTeammateLifecycleNotification(): void { FILE: restored-src/src/hooks/renderPlaceholder.ts type PlaceholderRendererProps (line 3) | type PlaceholderRendererProps = { function renderPlaceholder (line 13) | function renderPlaceholder({ FILE: restored-src/src/hooks/toolPermission/PermissionContext.ts type PermissionApprovalSource (line 45) | type PermissionApprovalSource = type PermissionRejectionSource (line 50) | type PermissionRejectionSource = type PermissionQueueOps (line 57) | type PermissionQueueOps = { type ResolveOnce (line 63) | type ResolveOnce = { function createResolveOnce (line 75) | function createResolveOnce(resolve: (value: T) => void): ResolveOnce<... function createPermissionContext (line 96) | function createPermissionContext( type PermissionContext (line 350) | type PermissionContext = ReturnType function createPermissionQueueOps (line 357) | function createPermissionQueueOps( FILE: restored-src/src/hooks/toolPermission/handlers/coordinatorHandler.ts type CoordinatorPermissionParams (line 8) | type CoordinatorPermissionParams = { function handleCoordinatorPermission (line 26) | async function handleCoordinatorPermission( FILE: restored-src/src/hooks/toolPermission/handlers/interactiveHandler.ts type InteractivePermissionParams (line 34) | type InteractivePermissionParams = { function handleInteractivePermission (line 57) | function handleInteractivePermission( FILE: restored-src/src/hooks/toolPermission/handlers/swarmWorkerHandler.ts type SwarmWorkerPermissionParams (line 18) | type SwarmWorkerPermissionParams = { function handleSwarmWorkerPermission (line 40) | async function handleSwarmWorkerPermission( FILE: restored-src/src/hooks/toolPermission/permissionLogging.ts type PermissionLogContext (line 20) | type PermissionLogContext = { type PermissionDecisionArgs (line 29) | type PermissionDecisionArgs = constant CODE_EDITING_TOOLS (line 33) | const CODE_EDITING_TOOLS = ['Edit', 'Write', 'NotebookEdit'] function isCodeEditingTool (line 35) | function isCodeEditingTool(toolName: string): boolean { function buildCodeEditToolAttributes (line 41) | async function buildCodeEditToolAttributes( function sourceToString (line 68) | function sourceToString( function baseMetadata (line 91) | function baseMetadata( function logApprovalEvent (line 107) | function logApprovalEvent( function logRejectionEvent (line 152) | function logRejectionEvent( function logPermissionDecision (line 181) | function logPermissionDecision( FILE: restored-src/src/hooks/unifiedSuggestions.ts type FileSuggestionSource (line 12) | type FileSuggestionSource = { type McpResourceSuggestionSource (line 21) | type McpResourceSuggestionSource = { type AgentSuggestionSource (line 30) | type AgentSuggestionSource = { type SuggestionSource (line 38) | type SuggestionSource = function createSuggestionFromSource (line 46) | function createSuggestionFromSource(source: SuggestionSource): Suggestio... constant MAX_UNIFIED_SUGGESTIONS (line 70) | const MAX_UNIFIED_SUGGESTIONS = 15 constant DESCRIPTION_MAX_LENGTH (line 71) | const DESCRIPTION_MAX_LENGTH = 60 function truncateDescription (line 73) | function truncateDescription(description: string): string { function generateAgentSuggestions (line 77) | function generateAgentSuggestions( function generateUnifiedSuggestions (line 111) | async function generateUnifiedSuggestions( FILE: restored-src/src/hooks/useAfterFirstRender.ts function useAfterFirstRender (line 4) | function useAfterFirstRender(): void { FILE: restored-src/src/hooks/useApiKeyVerification.ts type VerificationStatus (line 11) | type VerificationStatus = type ApiKeyVerificationResult (line 18) | type ApiKeyVerificationResult = { function useApiKeyVerification (line 24) | function useApiKeyVerification(): ApiKeyVerificationResult { FILE: restored-src/src/hooks/useArrowKeyHistory.tsx type HistoryMode (line 10) | type HistoryMode = PromptInputMode; constant HISTORY_CHUNK_SIZE (line 13) | const HISTORY_CHUNK_SIZE = 10; function loadHistoryEntries (line 20) | async function loadHistoryEntries(minCount: number, modeFilter?: History... function useArrowKeyHistory (line 63) | function useArrowKeyHistory(onSetInput: (value: string, mode: HistoryMod... FILE: restored-src/src/hooks/useAssistantHistory.ts type Props (line 22) | type Props = { type Result (line 32) | type Result = { constant PREFETCH_THRESHOLD_ROWS (line 38) | const PREFETCH_THRESHOLD_ROWS = 40 constant MAX_FILL_PAGES (line 42) | const MAX_FILL_PAGES = 10 constant SENTINEL_LOADING (line 44) | const SENTINEL_LOADING = 'loading older messages…' constant SENTINEL_LOADING_FAILED (line 45) | const SENTINEL_LOADING_FAILED = constant SENTINEL_START (line 47) | const SENTINEL_START = 'start of session' function pageToMessages (line 50) | function pageToMessages(page: HistoryPage): Message[] { function useAssistantHistory (line 72) | function useAssistantHistory({ FILE: restored-src/src/hooks/useAwaySummary.ts constant BLUR_DELAY_MS (line 12) | const BLUR_DELAY_MS = 5 * 60_000 type SetMessages (line 14) | type SetMessages = (updater: (prev: Message[]) => Message[]) => void function hasSummarySinceLastUserTurn (line 16) | function hasSummarySinceLastUserTurn(messages: readonly Message[]): bool... function useAwaySummary (line 32) | function useAwaySummary( FILE: restored-src/src/hooks/useBackgroundTaskNavigation.ts function stepTeammateSelection (line 26) | function stepTeammateSelection( function useBackgroundTaskNavigation (line 67) | function useBackgroundTaskNavigation(options?: { FILE: restored-src/src/hooks/useBlink.ts constant BLINK_INTERVAL_MS (line 3) | const BLINK_INTERVAL_MS = 600 function useBlink (line 22) | function useBlink( FILE: restored-src/src/hooks/useCanUseTool.tsx type CanUseToolFn (line 27) | type CanUseToolFn = Record function useCopyOnSelect (line 26) | function useCopyOnSelect( function useSelectionBgColor (line 93) | function useSelectionBgColor(selection: Selection): void { FILE: restored-src/src/hooks/useDeferredHookMessages.ts function useDeferredHookMessages (line 12) | function useDeferredHookMessages( FILE: restored-src/src/hooks/useDiffData.ts constant MAX_LINES_PER_FILE (line 10) | const MAX_LINES_PER_FILE = 400 type DiffFile (line 12) | type DiffFile = { type DiffData (line 23) | type DiffData = { function useDiffData (line 34) | function useDiffData(): DiffData { FILE: restored-src/src/hooks/useDiffInIDE.ts type Props (line 32) | type Props = { function useDiffInIDE (line 46) | function useDiffInIDE({ function computeEditsFromContents (line 170) | function computeEditsFromContents( function showDiffInIDE (line 216) | async function showDiffInIDE( function closeTabInIDE (line 329) | async function closeTabInIDE( function isClosedMessage (line 346) | function isClosedMessage(data: unknown): data is { text: 'TAB_CLOSED' } { function isRejectedMessage (line 358) | function isRejectedMessage(data: unknown): data is { text: 'DIFF_REJECTE... function isSaveMessage (line 370) | function isSaveMessage( FILE: restored-src/src/hooks/useDirectConnect.ts type UseDirectConnectResult (line 24) | type UseDirectConnectResult = { type UseDirectConnectProps (line 31) | type UseDirectConnectProps = { function useDirectConnect (line 39) | function useDirectConnect({ FILE: restored-src/src/hooks/useDoublePress.ts constant DOUBLE_PRESS_TIMEOUT_MS (line 6) | const DOUBLE_PRESS_TIMEOUT_MS = 800 function useDoublePress (line 8) | function useDoublePress( FILE: restored-src/src/hooks/useDynamicConfig.ts function useDynamicConfig (line 8) | function useDynamicConfig(configName: string, defaultValue: T): T { FILE: restored-src/src/hooks/useElapsedTime.ts function useElapsedTime (line 17) | function useElapsedTime( FILE: restored-src/src/hooks/useExitOnCtrlCD.ts type ExitState (line 6) | type ExitState = { type KeybindingOptions (line 11) | type KeybindingOptions = { type UseKeybindingsHook (line 16) | type UseKeybindingsHook = ( function useExitOnCtrlCD (line 45) | function useExitOnCtrlCD( FILE: restored-src/src/hooks/useExitOnCtrlCDWithKeybindings.ts function useExitOnCtrlCDWithKeybindings (line 18) | function useExitOnCtrlCDWithKeybindings( FILE: restored-src/src/hooks/useFileHistorySnapshotInit.ts function useFileHistorySnapshotInit (line 9) | function useFileHistorySnapshotInit( FILE: restored-src/src/hooks/useGlobalKeybindings.tsx type Props (line 17) | type Props = { function GlobalKeybindingHandlers (line 36) | function GlobalKeybindingHandlers({ FILE: restored-src/src/hooks/useHistorySearch.ts function useHistorySearch (line 15) | function useHistorySearch( FILE: restored-src/src/hooks/useIDEIntegration.tsx type UseIDEIntegrationProps (line 8) | type UseIDEIntegrationProps = { function useIDEIntegration (line 15) | function useIDEIntegration(t0) { FILE: restored-src/src/hooks/useIdeAtMentioned.ts type IDEAtMentioned (line 10) | type IDEAtMentioned = { constant NOTIFICATION_METHOD (line 16) | const NOTIFICATION_METHOD = 'at_mentioned' function useIdeAtMentioned (line 33) | function useIdeAtMentioned( FILE: restored-src/src/hooks/useIdeConnectionStatus.ts type IdeStatus (line 4) | type IdeStatus = 'connected' | 'disconnected' | 'pending' | null type IdeConnectionResult (line 6) | type IdeConnectionResult = { function useIdeConnectionStatus (line 11) | function useIdeConnectionStatus( FILE: restored-src/src/hooks/useIdeLogging.ts function useIdeLogging (line 18) | function useIdeLogging(mcpClients: MCPServerConnection[]): void { FILE: restored-src/src/hooks/useIdeSelection.ts type SelectionPoint (line 10) | type SelectionPoint = { type SelectionData (line 15) | type SelectionData = { type IDESelection (line 24) | type IDESelection = { function useIdeSelection (line 59) | function useIdeSelection( FILE: restored-src/src/hooks/useInboxPoller.ts function getAgentNameToPoll (line 81) | function getAgentNameToPoll(appState: AppState): string | undefined { constant INBOX_POLL_INTERVAL_MS (line 107) | const INBOX_POLL_INTERVAL_MS = 1000 type Props (line 109) | type Props = { function useInboxPoller (line 126) | function useInboxPoller({ FILE: restored-src/src/hooks/useInputBuffer.ts type BufferEntry (line 4) | type BufferEntry = { type UseInputBufferProps (line 11) | type UseInputBufferProps = { type UseInputBufferResult (line 16) | type UseInputBufferResult = { function useInputBuffer (line 27) | function useInputBuffer({ FILE: restored-src/src/hooks/useIssueFlagBanner.ts constant EXTERNAL_COMMAND_PATTERNS (line 6) | const EXTERNAL_COMMAND_PATTERNS = [ constant FRICTION_PATTERNS (line 27) | const FRICTION_PATTERNS = [ function isSessionContainerCompatible (line 45) | function isSessionContainerCompatible(messages: Message[]): boolean { function hasFrictionSignal (line 74) | function hasFrictionSignal(messages: Message[]): boolean { constant MIN_SUBMIT_COUNT (line 89) | const MIN_SUBMIT_COUNT = 3 constant COOLDOWN_MS (line 90) | const COOLDOWN_MS = 30 * 60 * 1000 function useIssueFlagBanner (line 92) | function useIssueFlagBanner( FILE: restored-src/src/hooks/useLogMessages.ts function useLogMessages (line 19) | function useLogMessages(messages: Message[], ignore: boolean = false) { FILE: restored-src/src/hooks/useLspPluginRecommendation.tsx constant TIMEOUT_THRESHOLD_MS (line 29) | const TIMEOUT_THRESHOLD_MS = 28_000; type LspRecommendationState (line 30) | type LspRecommendationState = { type UseLspPluginRecommendationResult (line 37) | type UseLspPluginRecommendationResult = { function useLspPluginRecommendation (line 41) | function useLspPluginRecommendation() { function _temp2 (line 182) | function _temp2(current) { function _temp (line 191) | function _temp(s) { FILE: restored-src/src/hooks/useMailboxBridge.ts type Props (line 4) | type Props = { function useMailboxBridge (line 9) | function useMailboxBridge({ isLoading, onSubmitMessage }: Props): void { FILE: restored-src/src/hooks/useMainLoopModel.ts function useMainLoopModel (line 13) | function useMainLoopModel(): ModelName { FILE: restored-src/src/hooks/useManagePlugins.ts function useManagePlugins (line 37) | function useManagePlugins({ FILE: restored-src/src/hooks/useMemoryUsage.ts type MemoryUsageStatus (line 4) | type MemoryUsageStatus = 'normal' | 'high' | 'critical' type MemoryUsageInfo (line 6) | type MemoryUsageInfo = { constant HIGH_MEMORY_THRESHOLD (line 11) | const HIGH_MEMORY_THRESHOLD = 1.5 * 1024 * 1024 * 1024 // 1.5GB in bytes constant CRITICAL_MEMORY_THRESHOLD (line 12) | const CRITICAL_MEMORY_THRESHOLD = 2.5 * 1024 * 1024 * 1024 // 2.5GB in b... function useMemoryUsage (line 18) | function useMemoryUsage(): MemoryUsageInfo | null { FILE: restored-src/src/hooks/useMergedClients.ts function mergeClients (line 5) | function mergeClients( function useMergedClients (line 15) | function useMergedClients( FILE: restored-src/src/hooks/useMergedCommands.ts function useMergedCommands (line 5) | function useMergedCommands( FILE: restored-src/src/hooks/useMergedTools.ts function useMergedTools (line 20) | function useMergedTools( FILE: restored-src/src/hooks/useMinDisplayTime.ts function useMinDisplayTime (line 10) | function useMinDisplayTime(value: T, minMs: number): T { FILE: restored-src/src/hooks/useNotifyAfterTimeout.ts constant DEFAULT_INTERACTION_THRESHOLD_MS (line 9) | const DEFAULT_INTERACTION_THRESHOLD_MS = 6000 function getTimeSinceLastInteraction (line 11) | function getTimeSinceLastInteraction(): number { function hasRecentInteraction (line 15) | function hasRecentInteraction(threshold: number): boolean { function shouldNotify (line 19) | function shouldNotify(threshold: number): boolean { function useNotifyAfterTimeout (line 38) | function useNotifyAfterTimeout( FILE: restored-src/src/hooks/useOfficialMarketplaceNotification.tsx function useOfficialMarketplaceNotification (line 12) | function useOfficialMarketplaceNotification() { function _temp (line 15) | async function _temp() { FILE: restored-src/src/hooks/usePasteHandler.ts constant CLIPBOARD_CHECK_DEBOUNCE_MS (line 15) | const CLIPBOARD_CHECK_DEBOUNCE_MS = 50 constant PASTE_COMPLETION_TIMEOUT_MS (line 16) | const PASTE_COMPLETION_TIMEOUT_MS = 100 type PasteHandlerProps (line 18) | type PasteHandlerProps = { function usePasteHandler (line 30) | function usePasteHandler({ FILE: restored-src/src/hooks/usePluginRecommendationBase.tsx type AddNotification (line 15) | type AddNotification = ReturnType['addNotificat... type PluginData (line 16) | type PluginData = NonNullable>>; function usePluginRecommendationBase (line 24) | function usePluginRecommendationBase() { function installPluginAndNotify (line 80) | async function installPluginAndNotify(pluginId: string, pluginName: stri... FILE: restored-src/src/hooks/usePrStatus.ts constant POLL_INTERVAL_MS (line 5) | const POLL_INTERVAL_MS = 60_000 constant SLOW_GH_THRESHOLD_MS (line 6) | const SLOW_GH_THRESHOLD_MS = 4_000 constant IDLE_STOP_MS (line 7) | const IDLE_STOP_MS = 60 * 60_000 // stop polling after 60 min idle type PrStatusState (line 9) | type PrStatusState = { constant INITIAL_STATE (line 16) | const INITIAL_STATE: PrStatusState = { function usePrStatus (line 35) | function usePrStatus(isLoading: boolean, enabled = true): PrStatusState { FILE: restored-src/src/hooks/usePromptSuggestion.ts type Props (line 10) | type Props = { function usePromptSuggestion (line 15) | function usePromptSuggestion({ FILE: restored-src/src/hooks/usePromptsFromClaudeInChrome.tsx function usePromptsFromClaudeInChrome (line 31) | function usePromptsFromClaudeInChrome(mcpClients, toolPermissionMode) { function _temp (line 67) | function _temp() {} function findChromeClient (line 68) | function findChromeClient(clients: MCPServerConnection[]): ConnectedMCPS... FILE: restored-src/src/hooks/useQueueProcessor.ts type UseQueueProcessorParams (line 10) | type UseQueueProcessorParams = { function useQueueProcessor (line 28) | function useQueueProcessor({ FILE: restored-src/src/hooks/useRemoteSession.ts constant RESPONSE_TIMEOUT_MS (line 37) | const RESPONSE_TIMEOUT_MS = 60000 // 60 seconds constant COMPACTION_TIMEOUT_MS (line 41) | const COMPACTION_TIMEOUT_MS = 180000 // 3 minutes type UseRemoteSessionProps (line 43) | type UseRemoteSessionProps = { type UseRemoteSessionResult (line 57) | type UseRemoteSessionResult = { function useRemoteSession (line 76) | function useRemoteSession({ FILE: restored-src/src/hooks/useReplBridge.tsx constant BRIDGE_FAILURE_DISMISS_MS (line 29) | const BRIDGE_FAILURE_DISMISS_MS = 10_000; constant MAX_CONSECUTIVE_INIT_FAILURES (line 40) | const MAX_CONSECUTIVE_INIT_FAILURES = 3; function useReplBridge (line 53) | function useReplBridge(messages: Message[], setMessages: (action: React.... FILE: restored-src/src/hooks/useSSHSession.ts type UseSSHSessionResult (line 33) | type UseSSHSessionResult = { type UseSSHSessionProps (line 40) | type UseSSHSessionProps = { function useSSHSession (line 48) | function useSSHSession({ FILE: restored-src/src/hooks/useScheduledTasks.ts type Props (line 18) | type Props = { function useScheduledTasks (line 40) | function useScheduledTasks({ function formatCronFireTime (line 129) | function formatCronFireTime(d: Date): string { FILE: restored-src/src/hooks/useSearchInput.ts type UseSearchInputOptions (line 17) | type UseSearchInputOptions = { type UseSearchInputReturn (line 35) | type UseSearchInputReturn = { function isKillKey (line 42) | function isKillKey(e: KeyboardEvent): boolean { function isYankKey (line 52) | function isYankKey(e: KeyboardEvent): boolean { constant UNHANDLED_SPECIAL_KEYS (line 63) | const UNHANDLED_SPECIAL_KEYS = new Set([ function useSearchInput (line 84) | function useSearchInput({ FILE: restored-src/src/hooks/useSessionBackgrounding.ts type UseSessionBackgroundingProps (line 14) | type UseSessionBackgroundingProps = { type UseSessionBackgroundingResult (line 22) | type UseSessionBackgroundingResult = { function useSessionBackgrounding (line 27) | function useSessionBackgrounding({ FILE: restored-src/src/hooks/useSettings.ts type ReadonlySettings (line 7) | type ReadonlySettings = AppState['settings'] function useSettings (line 15) | function useSettings(): ReadonlySettings { FILE: restored-src/src/hooks/useSettingsChange.ts function useSettingsChange (line 7) | function useSettingsChange( FILE: restored-src/src/hooks/useSkillImprovementSurvey.ts type SkillImprovementSuggestion (line 14) | type SkillImprovementSuggestion = { type SetMessages (line 19) | type SetMessages = (fn: (prev: Message[]) => Message[]) => void function useSkillImprovementSurvey (line 21) | function useSkillImprovementSurvey(setMessages: SetMessages): { FILE: restored-src/src/hooks/useSkillsChange.ts function useSkillsChange (line 24) | function useSkillsChange( FILE: restored-src/src/hooks/useSwarmInitialization.ts type SetAppState (line 20) | type SetAppState = (f: (prevState: AppState) => AppState) => void function useSwarmInitialization (line 30) | function useSwarmInitialization( FILE: restored-src/src/hooks/useSwarmPermissionPoller.ts constant POLL_INTERVAL_MS (line 28) | const POLL_INTERVAL_MS = 500 function parsePermissionUpdates (line 35) | function parsePermissionUpdates(raw: unknown): PermissionUpdate[] { type PermissionResponseCallback (line 58) | type PermissionResponseCallback = { type PendingCallbackRegistry (line 73) | type PendingCallbackRegistry = Map function registerPermissionCallback (line 82) | function registerPermissionCallback( function unregisterPermissionCallback (line 94) | function unregisterPermissionCallback(requestId: string): void { function hasPermissionCallback (line 104) | function hasPermissionCallback(requestId: string): boolean { function clearAllPendingCallbacks (line 113) | function clearAllPendingCallbacks(): void { function processMailboxPermissionResponse (line 124) | function processMailboxPermissionResponse(params: { type SandboxPermissionResponseCallback (line 165) | type SandboxPermissionResponseCallback = { function registerSandboxPermissionCallback (line 179) | function registerSandboxPermissionCallback( function hasSandboxPermissionCallback (line 191) | function hasSandboxPermissionCallback(requestId: string): boolean { function processSandboxPermissionResponse (line 201) | function processSandboxPermissionResponse(params: { function processResponse (line 231) | function processResponse(response: PermissionResponse): boolean { function useSwarmPermissionPoller (line 268) | function useSwarmPermissionPoller(): void { FILE: restored-src/src/hooks/useTaskListWatcher.ts constant DEBOUNCE_MS (line 14) | const DEBOUNCE_MS = 1000 type Props (line 16) | type Props = { function useTaskListWatcher (line 34) | function useTaskListWatcher({ function findAvailableTask (line 197) | function findAvailableTask(tasks: Task[]): Task | undefined { function formatTaskAsPrompt (line 213) | function formatTaskAsPrompt(task: Task): string { FILE: restored-src/src/hooks/useTasksV2.ts constant HIDE_DELAY_MS (line 16) | const HIDE_DELAY_MS = 5000 constant DEBOUNCE_MS (line 17) | const DEBOUNCE_MS = 50 constant FALLBACK_POLL_MS (line 18) | const FALLBACK_POLL_MS = 5000 // Fallback in case fs.watch misses events class TasksV2Store (line 29) | class TasksV2Store { method #notify (line 81) | #notify(): void { method #rewatch (line 90) | #rewatch(dir: string): void { method #onHideTimerFired (line 154) | #onHideTimerFired(scheduledForTaskListId: string): void { method #clearHideTimer (line 174) | #clearHideTimer(): void { method #stop (line 186) | #stop(): void { function getStore (line 202) | function getStore(): TasksV2Store { function useTasksV2 (line 218) | function useTasksV2(): Task[] | undefined { function useTasksV2WithCollapseEffect (line 236) | function useTasksV2WithCollapseEffect(): Task[] | undefined { FILE: restored-src/src/hooks/useTeammateViewAutoExit.ts function useTeammateViewAutoExit (line 11) | function useTeammateViewAutoExit(): void { FILE: restored-src/src/hooks/useTeleportResume.tsx type TeleportResumeError (line 9) | type TeleportResumeError = { type TeleportSource (line 14) | type TeleportSource = 'cliArg' | 'localCommand'; function useTeleportResume (line 15) | function useTeleportResume(source) { FILE: restored-src/src/hooks/useTerminalSize.ts function useTerminalSize (line 7) | function useTerminalSize(): TerminalSize { FILE: restored-src/src/hooks/useTextInput.ts type MaybeCursor (line 27) | type MaybeCursor = void | Cursor type InputHandler (line 28) | type InputHandler = (input: string) => MaybeCursor type InputMapper (line 29) | type InputMapper = (input: string) => MaybeCursor function mapInput (line 31) | function mapInput(input_map: Array<[string, InputHandler]>): InputMapper { type UseTextInputProps (line 38) | type UseTextInputProps = { function useTextInput (line 73) | function useTextInput({ FILE: restored-src/src/hooks/useTimeout.ts function useTimeout (line 3) | function useTimeout(delay: number, resetTrigger?: number): boolean { FILE: restored-src/src/hooks/useTurnDiffs.ts type TurnFileDiff (line 7) | type TurnFileDiff = { type TurnDiff (line 15) | type TurnDiff = { type FileEditResult (line 27) | type FileEditResult = FileEditOutput | FileWriteOutput type TurnDiffCache (line 29) | type TurnDiffCache = { function isFileEditResult (line 36) | function isFileEditResult(result: unknown): result is FileEditResult { function isFileWriteOutput (line 49) | function isFileWriteOutput(result: FileEditResult): result is FileWriteO... function countHunkLines (line 55) | function countHunkLines(hunks: StructuredPatchHunk[]): { function getUserPromptPreview (line 70) | function getUserPromptPreview(message: Message): string { function computeTurnStats (line 79) | function computeTurnStats(turn: TurnDiff): void { function useTurnDiffs (line 100) | function useTurnDiffs(messages: Message[]): TurnDiff[] { FILE: restored-src/src/hooks/useTypeahead.tsx constant AT_TOKEN_HEAD_RE (line 37) | const AT_TOKEN_HEAD_RE = /^@[\p{L}\p{N}\p{M}_\-./\\()[\]~:]*/u; constant PATH_CHAR_HEAD_RE (line 38) | const PATH_CHAR_HEAD_RE = /^[\p{L}\p{N}\p{M}_\-./\\()[\]~:]+/u; constant TOKEN_WITH_AT_RE (line 39) | const TOKEN_WITH_AT_RE = /(@[\p{L}\p{N}\p{M}_\-./\\()[\]~:]*|[\p{L}\p{N}... constant TOKEN_WITHOUT_AT_RE (line 40) | const TOKEN_WITHOUT_AT_RE = /[\p{L}\p{N}\p{M}_\-./\\()[\]~:]+$/u; constant HAS_AT_SYMBOL_RE (line 41) | const HAS_AT_SYMBOL_RE = /(^|\s)@([\p{L}\p{N}\p{M}_\-./\\()[\]~:]*|"[^"]... constant HASH_CHANNEL_RE (line 42) | const HASH_CHANNEL_RE = /(^|\s)#([a-z0-9][a-z0-9_-]*)$/; function isPathMetadata (line 45) | function isPathMetadata(metadata: unknown): metadata is { function getPreservedSelection (line 52) | function getPreservedSelection(prevSuggestions: SuggestionItem[], prevSe... function buildResumeInputFromSuggestion (line 75) | function buildResumeInputFromSuggestion(suggestion: SuggestionItem): str... type Props (line 81) | type Props = { type UseTypeaheadResult (line 108) | type UseTypeaheadResult = { function extractSearchToken (line 123) | function extractSearchToken(completionToken: { function formatReplacementValue (line 148) | function formatReplacementValue(options: { function applyShellSuggestion (line 178) | function applyShellSuggestion(suggestion: SuggestionItem, input: string,... constant DM_MEMBER_RE (line 196) | const DM_MEMBER_RE = /(^|\s)@[\w-]*$/; function applyTriggerSuggestion (line 197) | function applyTriggerSuggestion(suggestion: SuggestionItem, input: strin... function generateBashSuggestions (line 211) | async function generateBashSuggestions(input: string, cursorOffset: numb... function applyDirectorySuggestion (line 237) | function applyDirectorySuggestion(input: string, suggestionId: string, t... function extractCompletionToken (line 261) | function extractCompletionToken(text: string, cursorPos: number, include... function extractCommandNameAndArgs (line 326) | function extractCommandNameAndArgs(value: string): { function hasCommandWithArguments (line 343) | function hasCommandWithArguments(isAtEndWithWhitespace: boolean, value: ... function useTypeahead (line 353) | function useTypeahead({ FILE: restored-src/src/hooks/useUpdateNotification.ts function getSemverPart (line 4) | function getSemverPart(version: string): string { function shouldShowUpdateNotification (line 8) | function shouldShowUpdateNotification( function useUpdateNotification (line 16) | function useUpdateNotification( FILE: restored-src/src/hooks/useVimInput.ts type UseVimInputProps (line 28) | type UseVimInputProps = Omit & { function useVimInput (line 34) | function useVimInput(props: UseVimInputProps): VimInputState { FILE: restored-src/src/hooks/useVirtualScroll.ts constant DEFAULT_ESTIMATE (line 19) | const DEFAULT_ESTIMATE = 3 constant OVERSCAN_ROWS (line 24) | const OVERSCAN_ROWS = 80 constant COLD_START_COUNT (line 26) | const COLD_START_COUNT = 30 constant SCROLL_QUANTUM (line 37) | const SCROLL_QUANTUM = OVERSCAN_ROWS >> 1 constant PESSIMISTIC_HEIGHT (line 45) | const PESSIMISTIC_HEIGHT = 1 constant MAX_MOUNTED_ITEMS (line 47) | const MAX_MOUNTED_ITEMS = 300 constant SLIDE_STEP (line 57) | const SLIDE_STEP = 25 type VirtualScrollResult (line 61) | type VirtualScrollResult = { function useVirtualScroll (line 142) | function useVirtualScroll( FILE: restored-src/src/hooks/useVoice.ts constant DEFAULT_STT_LANGUAGE (line 32) | const DEFAULT_STT_LANGUAGE = 'en' constant LANGUAGE_NAME_TO_CODE (line 42) | const LANGUAGE_NAME_TO_CODE: Record = { constant SUPPORTED_LANGUAGE_CODES (line 93) | const SUPPORTED_LANGUAGE_CODES = new Set([ function normalizeLanguageForSTT (line 121) | function normalizeLanguageForSTT(language: string | undefined): { type VoiceModule (line 140) | type VoiceModule = typeof import('../services/voice.js') type VoiceState (line 143) | type VoiceState = 'idle' | 'recording' | 'processing' type UseVoiceOptions (line 145) | type UseVoiceOptions = { type UseVoiceReturn (line 152) | type UseVoiceReturn = { constant RELEASE_TIMEOUT_MS (line 160) | const RELEASE_TIMEOUT_MS = 200 constant REPEAT_FALLBACK_MS (line 171) | const REPEAT_FALLBACK_MS = 600 constant FIRST_PRESS_FALLBACK_MS (line 172) | const FIRST_PRESS_FALLBACK_MS = 2000 constant FOCUS_SILENCE_TIMEOUT_MS (line 177) | const FOCUS_SILENCE_TIMEOUT_MS = 5_000 constant AUDIO_LEVEL_BARS (line 180) | const AUDIO_LEVEL_BARS = 16 function computeLevel (line 185) | function computeLevel(chunk: Buffer): number { function useVoice (line 199) | function useVoice({ FILE: restored-src/src/hooks/useVoiceEnabled.ts function useVoiceEnabled (line 19) | function useVoiceEnabled(): boolean { FILE: restored-src/src/hooks/useVoiceIntegration.tsx constant RAPID_KEY_GAP_MS (line 39) | const RAPID_KEY_GAP_MS = 120; constant MODIFIER_FIRST_PRESS_FALLBACK_MS (line 46) | const MODIFIER_FIRST_PRESS_FALLBACK_MS = 2000; constant HOLD_THRESHOLD (line 51) | const HOLD_THRESHOLD = 5; constant WARMUP_THRESHOLD (line 54) | const WARMUP_THRESHOLD = 2; function matchesKeyboardEvent (line 61) | function matchesKeyboardEvent(e: KeyboardEvent, target: ParsedKeystroke)... constant DEFAULT_VOICE_KEYSTROKE (line 79) | const DEFAULT_VOICE_KEYSTROKE: ParsedKeystroke = { type InsertTextHandle (line 87) | type InsertTextHandle = { type UseVoiceIntegrationArgs (line 92) | type UseVoiceIntegrationArgs = { type InterimRange (line 97) | type InterimRange = { type StripOpts (line 101) | type StripOpts = { type UseVoiceIntegrationResult (line 110) | type UseVoiceIntegrationResult = { function useVoiceIntegration (line 118) | function useVoiceIntegration({ function useVoiceKeybindingHandler (line 373) | function useVoiceKeybindingHandler({ function VoiceKeybindingHandler (line 673) | function VoiceKeybindingHandler(props) { FILE: restored-src/src/ink.ts function withTheme (line 14) | function withTheme(node: ReactNode): ReactNode { function render (line 18) | async function render( function createRoot (line 25) | async function createRoot(options?: RenderOptions): Promise { FILE: restored-src/src/ink/Ansi.tsx type Props (line 7) | type Props = { type SpanProps (line 12) | type SpanProps = { type Span (line 110) | type Span = { function parseToSpans (line 118) | function parseToSpans(input: string): Span[] { function textStyleToSpanProps (line 158) | function textStyleToSpanProps(style: TextStyle): SpanProps { constant NAMED_COLOR_MAP (line 174) | const NAMED_COLOR_MAP: Record = { function colorToString (line 196) | function colorToString(color: TermioColor): Color | undefined { function propsEqual (line 212) | function propsEqual(a: SpanProps, b: SpanProps): boolean { function hasAnyProps (line 215) | function hasAnyProps(props: SpanProps): boolean { function hasAnyTextProps (line 218) | function hasAnyTextProps(props: SpanProps): boolean { type BaseTextStyleProps (line 223) | type BaseTextStyleProps = { function StyledText (line 233) | function StyledText(t0) { FILE: restored-src/src/ink/bidi.ts type ClusteredChar (line 19) | type ClusteredChar = { function needsBidi (line 29) | function needsBidi(): boolean { function getBidi (line 39) | function getBidi() { function reorderBidi (line 53) | function reorderBidi(characters: ClusteredChar[]): ClusteredChar[] { function reverseRange (line 107) | function reverseRange(arr: T[], start: number, end: number): void { function reverseRangeNumbers (line 117) | function reverseRangeNumbers(arr: number[], start: number, end: number):... function hasRTLCharacters (line 131) | function hasRTLCharacters(text: string): boolean { FILE: restored-src/src/ink/clearTerminal.ts constant CURSOR_HOME_WINDOWS (line 14) | const CURSOR_HOME_WINDOWS = csi(0, 'f') function isWindowsTerminal (line 16) | function isWindowsTerminal(): boolean { function isMintty (line 20) | function isMintty(): boolean { function isModernWindowsTerminal (line 32) | function isModernWindowsTerminal(): boolean { function getClearTerminalSequence (line 59) | function getClearTerminalSequence(): string { FILE: restored-src/src/ink/colorize.ts function boostChalkLevelForXtermJs (line 20) | function boostChalkLevelForXtermJs(): boolean { function clampChalkLevelForTmux (line 47) | function clampChalkLevelForTmux(): boolean { constant CHALK_BOOSTED_FOR_XTERMJS (line 61) | const CHALK_BOOSTED_FOR_XTERMJS = boostChalkLevelForXtermJs() constant CHALK_CLAMPED_FOR_TMUX (line 62) | const CHALK_CLAMPED_FOR_TMUX = clampChalkLevelForTmux() type ColorType (line 64) | type ColorType = 'foreground' | 'background' constant RGB_REGEX (line 66) | const RGB_REGEX = /^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/ constant ANSI_REGEX (line 67) | const ANSI_REGEX = /^ansi256\(\s?(\d+)\s?\)$/ function applyTextStyles (line 176) | function applyTextStyles(text: string, styles: TextStyles): string { function applyColor (line 226) | function applyColor(text: string, color: Color | undefined): string { FILE: restored-src/src/ink/components/AlternateScreen.tsx type Props (line 8) | type Props = PropsWithChildren<{ function AlternateScreen (line 33) | function AlternateScreen(t0) { FILE: restored-src/src/ink/components/App.tsx constant SUPPORTS_SUSPEND (line 28) | const SUPPORTS_SUSPEND = process.platform !== 'win32'; constant STDIN_RESUME_GAP_MS (line 35) | const STDIN_RESUME_GAP_MS = 5000; type Props (line 36) | type Props = { constant MULTI_CLICK_TIMEOUT_MS (line 92) | const MULTI_CLICK_TIMEOUT_MS = 500; constant MULTI_CLICK_DISTANCE (line 93) | const MULTI_CLICK_DISTANCE = 1; type State (line 94) | type State = { class App (line 101) | class App extends PureComponent { method getDerivedStateFromError (line 103) | static getDerivedStateFromError(error: Error) { method isRawModeSupported (line 151) | isRawModeSupported(): boolean { method render (line 154) | override render() { method componentDidMount (line 181) | override componentDidMount() { method componentWillUnmount (line 187) | override componentWillUnmount() { method componentDidCatch (line 206) | override componentDidCatch(error: Error) { function processKeysInBatch (line 444) | function processKeysInBatch(app: App, items: ParsedInput[], _unused1: un... function handleMouseEvent (line 515) | function handleMouseEvent(app: App, m: ParsedMouse): void { FILE: restored-src/src/ink/components/AppContext.ts type Props (line 3) | type Props = { method exit (line 15) | exit() {} FILE: restored-src/src/ink/components/Box.tsx type Props (line 11) | type Props = Except & { function Box (line 51) | function Box(t0) { FILE: restored-src/src/ink/components/Button.tsx type ButtonState (line 10) | type ButtonState = { type Props (line 15) | type Props = Except & { function Button (line 39) | function Button(t0) { function _temp (line 187) | function _temp(setter) { FILE: restored-src/src/ink/components/ClockContext.tsx type Clock (line 5) | type Clock = { function createClock (line 10) | function createClock(tickIntervalMs: number): Clock { constant BLURRED_TICK_INTERVAL_MS (line 70) | const BLURRED_TICK_INTERVAL_MS = FRAME_INTERVAL_MS * 2; function ClockProvider (line 75) | function ClockProvider(t0) { function _temp (line 109) | function _temp() { FILE: restored-src/src/ink/components/CursorDeclarationContext.ts type CursorDeclaration (line 4) | type CursorDeclaration = { type CursorDeclarationSetter (line 23) | type CursorDeclarationSetter = ( FILE: restored-src/src/ink/components/ErrorOverview.tsx function getStackUtils (line 16) | function getStackUtils(): StackUtils { type Props (line 25) | type Props = { function ErrorOverview (line 28) | function ErrorOverview({ FILE: restored-src/src/ink/components/Link.tsx type Props (line 6) | type Props = { function Link (line 11) | function Link(t0) { FILE: restored-src/src/ink/components/Newline.tsx type Props (line 3) | type Props = { function Newline (line 15) | function Newline(t0) { FILE: restored-src/src/ink/components/NoSelect.tsx type Props (line 4) | type Props = Omit & { function NoSelect (line 35) | function NoSelect(t0) { FILE: restored-src/src/ink/components/RawAnsi.tsx type Props (line 3) | type Props = { function RawAnsi (line 28) | function RawAnsi(t0) { FILE: restored-src/src/ink/components/ScrollBox.tsx type ScrollBoxHandle (line 10) | type ScrollBoxHandle = { type ScrollBoxProps (line 63) | type ScrollBoxProps = Except = T extends { type DOMNodeAttribute (line 108) | type DOMNodeAttribute = boolean | string | number function collectRemovedRects (line 225) | function collectRemovedRects( function stylesEqual (line 291) | function stylesEqual(a: Styles, b: Styles): boolean { function shallowEqual (line 295) | function shallowEqual( function isDOMElement (line 439) | function isDOMElement(node: DOMElement | TextNode): node is DOMElement { function findOwnerChainAtRow (line 465) | function findOwnerChainAtRow(root: DOMElement, y: number): string[] { FILE: restored-src/src/ink/events/click-event.ts class ClickEvent (line 10) | class ClickEvent extends Event { method constructor (line 32) | constructor(col: number, row: number, cellIsBlank: boolean) { FILE: restored-src/src/ink/events/dispatcher.ts type DispatchListener (line 13) | type DispatchListener = { function getHandler (line 19) | function getHandler( function collectListeners (line 46) | function collectListeners( function processDispatchQueue (line 87) | function processDispatchQueue( function getEventPriority (line 122) | function getEventPriority(eventType: string): number { type DiscreteUpdates (line 142) | type DiscreteUpdates = ( class Dispatcher (line 161) | class Dispatcher { method resolveEventPriority (line 171) | resolveEventPriority(): number { method dispatch (line 185) | dispatch(target: EventTarget, event: TerminalEvent): boolean { method dispatchDiscrete (line 207) | dispatchDiscrete(target: EventTarget, event: TerminalEvent): boolean { method dispatchContinuous (line 224) | dispatchContinuous(target: EventTarget, event: TerminalEvent): boolean { FILE: restored-src/src/ink/events/emitter.ts class EventEmitter (line 6) | class EventEmitter extends NodeEventEmitter { method constructor (line 7) | constructor() { method emit (line 15) | override emit(type: string | symbol, ...args: unknown[]): boolean { FILE: restored-src/src/ink/events/event-handlers.ts type KeyboardEventHandler (line 7) | type KeyboardEventHandler = (event: KeyboardEvent) => void type FocusEventHandler (line 8) | type FocusEventHandler = (event: FocusEvent) => void type PasteEventHandler (line 9) | type PasteEventHandler = (event: PasteEvent) => void type ResizeEventHandler (line 10) | type ResizeEventHandler = (event: ResizeEvent) => void type ClickEventHandler (line 11) | type ClickEventHandler = (event: ClickEvent) => void type HoverEventHandler (line 12) | type HoverEventHandler = () => void type EventHandlerProps (line 21) | type EventHandlerProps = { constant HANDLER_FOR_EVENT (line 44) | const HANDLER_FOR_EVENT: Record< constant EVENT_HANDLER_PROPS (line 60) | const EVENT_HANDLER_PROPS = new Set([ FILE: restored-src/src/ink/events/event.ts class Event (line 1) | class Event { method didStopImmediatePropagation (line 4) | didStopImmediatePropagation(): boolean { method stopImmediatePropagation (line 8) | stopImmediatePropagation(): void { FILE: restored-src/src/ink/events/focus-event.ts class FocusEvent (line 11) | class FocusEvent extends TerminalEvent { method constructor (line 14) | constructor( FILE: restored-src/src/ink/events/input-event.ts type Key (line 4) | type Key = { function parseKey (line 27) | function parseKey(keypress: ParsedKey): [Key, string] { class InputEvent (line 192) | class InputEvent extends Event { method constructor (line 197) | constructor(keypress: ParsedKey) { FILE: restored-src/src/ink/events/keyboard-event.ts class KeyboardEvent (line 12) | class KeyboardEvent extends TerminalEvent { method constructor (line 20) | constructor(parsedKey: ParsedKey) { function keyFromParsed (line 32) | function keyFromParsed(parsed: ParsedKey): string { FILE: restored-src/src/ink/events/terminal-event.ts type EventPhase (line 3) | type EventPhase = 'none' | 'capturing' | 'at_target' | 'bubbling' type TerminalEventInit (line 5) | type TerminalEventInit = { class TerminalEvent (line 19) | class TerminalEvent extends Event { method constructor (line 31) | constructor(type: string, init?: TerminalEventInit) { method target (line 39) | get target(): EventTarget | null { method currentTarget (line 43) | get currentTarget(): EventTarget | null { method eventPhase (line 47) | get eventPhase(): EventPhase { method defaultPrevented (line 51) | get defaultPrevented(): boolean { method stopPropagation (line 55) | stopPropagation(): void { method stopImmediatePropagation (line 59) | override stopImmediatePropagation(): void { method preventDefault (line 64) | preventDefault(): void { method _setTarget (line 73) | _setTarget(target: EventTarget): void { method _setCurrentTarget (line 78) | _setCurrentTarget(target: EventTarget | null): void { method _setEventPhase (line 83) | _setEventPhase(phase: EventPhase): void { method _isPropagationStopped (line 88) | _isPropagationStopped(): boolean { method _isImmediatePropagationStopped (line 93) | _isImmediatePropagationStopped(): boolean { method _prepareForTarget (line 101) | _prepareForTarget(_target: EventTarget): void {} type EventTarget (line 104) | type EventTarget = { FILE: restored-src/src/ink/events/terminal-focus-event.ts type TerminalFocusEventType (line 3) | type TerminalFocusEventType = 'terminalfocus' | 'terminalblur' class TerminalFocusEvent (line 12) | class TerminalFocusEvent extends Event { method constructor (line 15) | constructor(type: TerminalFocusEventType) { FILE: restored-src/src/ink/focus.ts constant MAX_FOCUS_STACK (line 4) | const MAX_FOCUS_STACK = 32 class FocusManager (line 15) | class FocusManager { method constructor (line 21) | constructor( method focus (line 27) | focus(node: DOMElement): void { method blur (line 44) | blur(): void { method handleNodeRemoved (line 57) | handleNodeRemoved(node: DOMElement, root: DOMElement): void { method handleAutoFocus (line 84) | handleAutoFocus(node: DOMElement): void { method handleClickFocus (line 88) | handleClickFocus(node: DOMElement): void { method enable (line 94) | enable(): void { method disable (line 98) | disable(): void { method focusNext (line 102) | focusNext(root: DOMElement): void { method focusPrevious (line 106) | focusPrevious(root: DOMElement): void { method moveFocus (line 110) | private moveFocus(direction: 1 | -1, root: DOMElement): void { function collectTabbable (line 134) | function collectTabbable(root: DOMElement): DOMElement[] { function walkTree (line 140) | function walkTree(node: DOMElement, result: DOMElement[]): void { function isInTree (line 153) | function isInTree(node: DOMElement, root: DOMElement): boolean { function getRootNode (line 166) | function getRootNode(node: DOMElement): DOMElement { function getFocusManager (line 179) | function getFocusManager(node: DOMElement): FocusManager { FILE: restored-src/src/ink/frame.ts type Frame (line 12) | type Frame = { function emptyFrame (line 22) | function emptyFrame( type FlickerReason (line 36) | type FlickerReason = 'resize' | 'offscreen' | 'clear' type FrameEvent (line 38) | type FrameEvent = { type Patch (line 73) | type Patch = type Diff (line 94) | type Diff = Patch[] function shouldClearScreen (line 105) | function shouldClearScreen( FILE: restored-src/src/ink/hit-test.ts function hitTest (line 18) | function hitTest( function dispatchClick (line 49) | function dispatchClick( function dispatchHover (line 102) | function dispatchHover( FILE: restored-src/src/ink/hooks/use-animation-frame.ts function useAnimationFrame (line 30) | function useAnimationFrame( FILE: restored-src/src/ink/hooks/use-declared-cursor.ts function useDeclaredCursor (line 25) | function useDeclaredCursor({ FILE: restored-src/src/ink/hooks/use-input.ts type Handler (line 6) | type Handler = (input: string, key: Key, event: InputEvent) => void type Options (line 8) | type Options = { FILE: restored-src/src/ink/hooks/use-interval.ts function useAnimationTimer (line 13) | function useAnimationTimer(intervalMs: number): number { function useInterval (line 43) | function useInterval( FILE: restored-src/src/ink/hooks/use-search-highlight.ts function useSearchHighlight (line 18) | function useSearchHighlight(): { FILE: restored-src/src/ink/hooks/use-selection.ts function useSelection (line 14) | function useSelection(): { function useHasSelection (line 97) | function useHasSelection(): boolean { FILE: restored-src/src/ink/hooks/use-tab-status.ts type TabStatusKind (line 11) | type TabStatusKind = 'idle' | 'busy' | 'waiting' constant TAB_STATUS_PRESETS (line 21) | const TAB_STATUS_PRESETS: Record< function useTabStatus (line 53) | function useTabStatus(kind: TabStatusKind | null): void { FILE: restored-src/src/ink/hooks/use-terminal-focus.ts function useTerminalFocus (line 13) | function useTerminalFocus(): boolean { FILE: restored-src/src/ink/hooks/use-terminal-title.ts function useTerminalTitle (line 17) | function useTerminalTitle(title: string | null): void { FILE: restored-src/src/ink/hooks/use-terminal-viewport.ts type ViewportEntry (line 5) | type ViewportEntry = { function useTerminalViewport (line 29) | function useTerminalViewport(): [ FILE: restored-src/src/ink/ink.tsx constant ALT_SCREEN_ANCHOR_CURSOR (line 45) | const ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({ constant CURSOR_HOME_PATCH (line 50) | const CURSOR_HOME_PATCH = Object.freeze({ constant ERASE_THEN_HOME_PATCH (line 54) | const ERASE_THEN_HOME_PATCH = Object.freeze({ function makeAltScreenParkPatch (line 61) | function makeAltScreenParkPatch(terminalRows: number) { type Options (line 67) | type Options = { class Ink (line 76) | class Ink { method constructor (line 180) | constructor(private readonly options: Options) { method enterAlternateScreen (line 357) | enterAlternateScreen(): void { method exitAlternateScreen (line 392) | exitAlternateScreen(): void { method onRender (line 420) | onRender() { method pause (line 790) | pause(): void { method resume (line 797) | resume(): void { method repaint (line 807) | repaint(): void { method forceRedraw (line 825) | forceRedraw(): void { method invalidatePrevFrame (line 850) | invalidatePrevFrame(): void { method setAltScreenActive (line 861) | setAltScreenActive(active: boolean, mouseTracking = false): void { method isAltScreenActive (line 871) | get isAltScreenActive(): boolean { method detachForShutdown (line 932) | detachForShutdown(): void { method drainStdin (line 953) | drainStdin(): void { method reenterAltScreen (line 964) | private reenterAltScreen(): void { method resetFramesForAltScreen (line 984) | private resetFramesForAltScreen(): void { method copySelectionNoClear (line 1016) | copySelectionNoClear(): string { method copySelection (line 1033) | copySelection(): string { method clearTextSelection (line 1042) | clearTextSelection(): void { method setSearchHighlight (line 1055) | setSearchHighlight(query: string): void { method scanElementSubtree (line 1071) | scanElementSubtree(el: dom.DOMElement): MatchPosition[] { method setSearchPositions (line 1108) | setSearchPositions(state: { method setSelectionBgColor (line 1131) | setSelectionBgColor(color: string): void { method captureScrolledRows (line 1157) | captureScrolledRows(firstRow: number, lastRow: number, side: 'above' |... method shiftSelectionForScroll (line 1168) | shiftSelectionForScroll(dRow: number, minRow: number, maxRow: number):... method moveSelectionFocus (line 1188) | moveSelectionFocus(move: FocusMove): void { method hasTextSelection (line 1236) | hasTextSelection(): boolean { method subscribeToSelectionChange (line 1244) | subscribeToSelectionChange(cb: () => void): () => void { method notifySelectionChange (line 1248) | private notifySelectionChange(): void { method dispatchClick (line 1260) | dispatchClick(col: number, row: number): boolean { method dispatchHover (line 1265) | dispatchHover(col: number, row: number): void { method dispatchKeyboardEvent (line 1269) | dispatchKeyboardEvent(parsedKey: ParsedKey): void { method getHyperlinkAt (line 1293) | getHyperlinkAt(col: number, row: number): string | undefined { method openHyperlink (line 1317) | openHyperlink(url: string): void { method handleMultiClick (line 1328) | handleMultiClick(col: number, row: number, count: 2 | 3): void { method handleSelectionDrag (line 1348) | handleSelectionDrag(col: number, row: number): void { method suspendStdin (line 1366) | suspendStdin(): void { method resumeStdin (line 1396) | resumeStdin(): void { method writeRaw (line 1433) | private writeRaw(data: string): void { method render (line 1442) | render(node: ReactNode): void { method unmount (line 1455) | unmount(error?: Error | number | null): void { method waitUntilExit (line 1534) | async waitUntilExit(): Promise { method resetLineCount (line 1541) | resetLineCount(): void { method resetPools (line 1561) | resetPools(): void { method patchConsole (line 1571) | patchConsole(): () => void { method patchStderr (line 1604) | private patchStderr(): () => void { function drainStdin (line 1664) | function drainStdin(stdin: NodeJS.ReadStream = process.stdin): void { constant CONSOLE_STDOUT_METHODS (line 1721) | const CONSOLE_STDOUT_METHODS = ['log', 'info', 'debug', 'dir', 'dirxml',... constant CONSOLE_STDERR_METHODS (line 1722) | const CONSOLE_STDERR_METHODS = ['warn', 'error', 'trace'] as const; FILE: restored-src/src/ink/layout/engine.ts function createLayoutNode (line 4) | function createLayoutNode(): LayoutNode { FILE: restored-src/src/ink/layout/geometry.ts type Point (line 1) | type Point = { type Size (line 6) | type Size = { type Rectangle (line 11) | type Rectangle = Point & Size type Edges (line 14) | type Edges = { function edges (line 30) | function edges(a: number, b?: number, c?: number, d?: number): Edges { function addEdges (line 41) | function addEdges(a: Edges, b: Edges): Edges { constant ZERO_EDGES (line 51) | const ZERO_EDGES: Edges = { top: 0, right: 0, bottom: 0, left: 0 } function resolveEdges (line 54) | function resolveEdges(partial?: Partial): Edges { function unionRect (line 63) | function unionRect(a: Rectangle, b: Rectangle): Rectangle { function clampRect (line 71) | function clampRect(rect: Rectangle, size: Size): Rectangle { function withinBounds (line 84) | function withinBounds(size: Size, point: Point): boolean { function clamp (line 93) | function clamp(value: number, min?: number, max?: number): number { FILE: restored-src/src/ink/layout/node.ts type LayoutEdge (line 15) | type LayoutEdge = (typeof LayoutEdge)[keyof typeof LayoutEdge] type LayoutGutter (line 22) | type LayoutGutter = (typeof LayoutGutter)[keyof typeof LayoutGutter] type LayoutDisplay (line 28) | type LayoutDisplay = (typeof LayoutDisplay)[keyof typeof LayoutDisplay] type LayoutFlexDirection (line 36) | type LayoutFlexDirection = type LayoutAlign (line 46) | type LayoutAlign = (typeof LayoutAlign)[keyof typeof LayoutAlign] type LayoutJustify (line 56) | type LayoutJustify = (typeof LayoutJustify)[keyof typeof LayoutJustify] type LayoutWrap (line 63) | type LayoutWrap = (typeof LayoutWrap)[keyof typeof LayoutWrap] type LayoutPositionType (line 69) | type LayoutPositionType = type LayoutOverflow (line 77) | type LayoutOverflow = type LayoutMeasureFunc (line 80) | type LayoutMeasureFunc = ( type LayoutMeasureMode (line 90) | type LayoutMeasureMode = type LayoutNode (line 93) | type LayoutNode = { FILE: restored-src/src/ink/layout/yoga.ts constant EDGE_MAP (line 33) | const EDGE_MAP: Record = { constant GUTTER_MAP (line 45) | const GUTTER_MAP: Record = { class YogaLayoutNode (line 54) | class YogaLayoutNode implements LayoutNode { method constructor (line 57) | constructor(yoga: YogaNode) { method insertChild (line 63) | insertChild(child: LayoutNode, index: number): void { method removeChild (line 67) | removeChild(child: LayoutNode): void { method getChildCount (line 71) | getChildCount(): number { method getParent (line 75) | getParent(): LayoutNode | null { method calculateLayout (line 82) | calculateLayout(width?: number, _height?: number): void { method setMeasureFunc (line 86) | setMeasureFunc(fn: LayoutMeasureFunc): void { method unsetMeasureFunc (line 98) | unsetMeasureFunc(): void { method markDirty (line 102) | markDirty(): void { method getComputedLeft (line 108) | getComputedLeft(): number { method getComputedTop (line 112) | getComputedTop(): number { method getComputedWidth (line 116) | getComputedWidth(): number { method getComputedHeight (line 120) | getComputedHeight(): number { method getComputedBorder (line 124) | getComputedBorder(edge: LayoutEdge): number { method getComputedPadding (line 128) | getComputedPadding(edge: LayoutEdge): number { method setWidth (line 134) | setWidth(value: number): void { method setWidthPercent (line 137) | setWidthPercent(value: number): void { method setWidthAuto (line 140) | setWidthAuto(): void { method setHeight (line 143) | setHeight(value: number): void { method setHeightPercent (line 146) | setHeightPercent(value: number): void { method setHeightAuto (line 149) | setHeightAuto(): void { method setMinWidth (line 152) | setMinWidth(value: number): void { method setMinWidthPercent (line 155) | setMinWidthPercent(value: number): void { method setMinHeight (line 158) | setMinHeight(value: number): void { method setMinHeightPercent (line 161) | setMinHeightPercent(value: number): void { method setMaxWidth (line 164) | setMaxWidth(value: number): void { method setMaxWidthPercent (line 167) | setMaxWidthPercent(value: number): void { method setMaxHeight (line 170) | setMaxHeight(value: number): void { method setMaxHeightPercent (line 173) | setMaxHeightPercent(value: number): void { method setFlexDirection (line 177) | setFlexDirection(dir: LayoutFlexDirection): void { method setFlexGrow (line 187) | setFlexGrow(value: number): void { method setFlexShrink (line 190) | setFlexShrink(value: number): void { method setFlexBasis (line 193) | setFlexBasis(value: number): void { method setFlexBasisPercent (line 196) | setFlexBasisPercent(value: number): void { method setFlexWrap (line 200) | setFlexWrap(wrap: LayoutWrap): void { method setAlignItems (line 209) | setAlignItems(align: LayoutAlign): void { method setAlignSelf (line 220) | setAlignSelf(align: LayoutAlign): void { method setJustifyContent (line 231) | setJustifyContent(justify: LayoutJustify): void { method setDisplay (line 243) | setDisplay(display: LayoutDisplay): void { method getDisplay (line 247) | getDisplay(): LayoutDisplay { method setPositionType (line 253) | setPositionType(type: LayoutPositionType): void { method setPosition (line 259) | setPosition(edge: LayoutEdge, value: number): void { method setPositionPercent (line 263) | setPositionPercent(edge: LayoutEdge, value: number): void { method setOverflow (line 267) | setOverflow(overflow: LayoutOverflow): void { method setMargin (line 276) | setMargin(edge: LayoutEdge, value: number): void { method setPadding (line 279) | setPadding(edge: LayoutEdge, value: number): void { method setBorder (line 282) | setBorder(edge: LayoutEdge, value: number): void { method setGap (line 285) | setGap(gutter: LayoutGutter, value: number): void { method free (line 291) | free(): void { method freeRecursive (line 294) | freeRecursive(): void { function createYogaLayoutNode (line 306) | function createYogaLayoutNode(): LayoutNode { FILE: restored-src/src/ink/line-width-cache.ts constant MAX_CACHE_SIZE (line 8) | const MAX_CACHE_SIZE = 4096 function lineWidth (line 10) | function lineWidth(line: string): number { FILE: restored-src/src/ink/log-update.ts type State (line 31) | type State = { type Options (line 35) | type Options = { constant CARRIAGE_RETURN (line 40) | const CARRIAGE_RETURN = { type: 'carriageReturn' } as const constant NEWLINE (line 41) | const NEWLINE = { type: 'stdout', content: '\n' } as const class LogUpdate (line 43) | class LogUpdate { method constructor (line 46) | constructor(private readonly options: Options) { method renderPreviousOutput_DEPRECATED (line 52) | renderPreviousOutput_DEPRECATED(prevFrame: Frame): Diff { method reset (line 61) | reset(): void { method renderFullFrame (line 65) | private renderFullFrame(frame: Frame): Diff { method getRenderOpsForDone (line 114) | private getRenderOpsForDone(prev: Frame): Diff { method render (line 123) | render( function transitionHyperlink (line 470) | function transitionHyperlink( function transitionStyle (line 482) | function transitionStyle( function readLine (line 495) | function readLine(screen: Screen, y: number): string { function fullResetSequence_CAUSES_FLICKER (line 503) | function fullResetSequence_CAUSES_FLICKER( function renderFrame (line 515) | function renderFrame( function renderFrameSlice (line 527) | function renderFrameSlice( type Delta (line 625) | type Delta = { dx: number; dy: number } function writeCellWithStyleStr (line 638) | function writeCellWithStyleStr( function moveCursorTo (line 693) | function moveCursorTo(screen: VirtualScreen, targetX: number, targetY: n... function needsWidthCompensation (line 733) | function needsWidthCompensation(char: string): boolean { class VirtualScreen (line 752) | class VirtualScreen { method constructor (line 758) | constructor( method txn (line 765) | txn(fn: (prev: Point) => [patches: Diff, next: Delta]): void { FILE: restored-src/src/ink/measure-element.ts type Output (line 3) | type Output = { FILE: restored-src/src/ink/measure-text.ts type Output (line 3) | type Output = { function measureText (line 11) | function measureText(text: string, maxWidth: number): Output { FILE: restored-src/src/ink/node-cache.ts type CachedLayout (line 10) | type CachedLayout = { function addPendingClear (line 34) | function addPendingClear( function consumeAbsoluteRemovedFlag (line 50) | function consumeAbsoluteRemovedFlag(): boolean { FILE: restored-src/src/ink/optimizer.ts function optimize (line 16) | function optimize(diff: Diff): Diff { FILE: restored-src/src/ink/output.ts type ClusteredChar (line 38) | type ClusteredChar = { type Options (line 51) | type Options = { type Operation (line 62) | type Operation = type WriteOperation (line 71) | type WriteOperation = { type ClipOperation (line 86) | type ClipOperation = { type Clip (line 91) | type Clip = { function intersectClip (line 104) | function intersectClip(parent: Clip | undefined, child: Clip): Clip { function maxDefined (line 114) | function maxDefined( function minDefined (line 123) | function minDefined( type UnclipOperation (line 132) | type UnclipOperation = { type BlitOperation (line 136) | type BlitOperation = { type ShiftOperation (line 145) | type ShiftOperation = { type ClearOperation (line 152) | type ClearOperation = { type NoSelectOperation (line 165) | type NoSelectOperation = { class Output (line 170) | class Output { method constructor (line 180) | constructor(options: Options) { method reset (line 198) | reset(width: number, height: number, screen: Screen): void { method blit (line 210) | blit(src: Screen, x: number, y: number, width: number, height: number)... method shift (line 219) | shift(top: number, bottom: number, n: number): void { method clear (line 227) | clear(region: Rectangle, fromAbsolute?: boolean): void { method noSelect (line 237) | noSelect(region: Rectangle): void { method write (line 241) | write(x: number, y: number, text: string, softWrap?: boolean[]): void { method clip (line 255) | clip(clip: Clip) { method unclip (line 262) | unclip() { method get (line 268) | get(): Screen { function stylesEqual (line 534) | function stylesEqual(a: AnsiCode[], b: AnsiCode[]): boolean { function styledCharsWithGraphemeClustering (line 553) | function styledCharsWithGraphemeClustering( function flushBuffer (line 586) | function flushBuffer( function writeLineToScreen (line 633) | function writeLineToScreen( FILE: restored-src/src/ink/parse-keypress.ts constant META_KEY_CODE_RE (line 12) | const META_KEY_CODE_RE = /^(?:\x1b)([a-zA-Z0-9])$/ constant FN_KEY_RE (line 15) | const FN_KEY_RE = constant CSI_U_RE (line 23) | const CSI_U_RE = /^\x1b\[(\d+)(?:;(\d+))?u/ constant MODIFY_OTHER_KEYS_RE (line 31) | const MODIFY_OTHER_KEYS_RE = /^\x1b\[27;(\d+);(\d+)~/ constant DECRPM_RE (line 36) | const DECRPM_RE = /^\x1b\[\?(\d+);(\d+)\$y$/ constant DA1_RE (line 39) | const DA1_RE = /^\x1b\[\?([\d;]*)c$/ constant DA2_RE (line 42) | const DA2_RE = /^\x1b\[>([\d;]*)c$/ constant KITTY_FLAGS_RE (line 46) | const KITTY_FLAGS_RE = /^\x1b\[\?(\d+)u$/ constant CURSOR_POSITION_RE (line 51) | const CURSOR_POSITION_RE = /^\x1b\[\?(\d+);(\d+)R$/ constant OSC_RESPONSE_RE (line 54) | const OSC_RESPONSE_RE = /^\x1b\](\d+);(.*?)(?:\x07|\x1b\\)$/s constant XTVERSION_RE (line 60) | const XTVERSION_RE = /^\x1bP>\|(.*?)(?:\x07|\x1b\\)$/s constant SGR_MOUSE_RE (line 65) | const SGR_MOUSE_RE = /^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/ function createPasteKey (line 67) | function createPasteKey(content: string): ParsedKey { constant DECRPM_STATUS (line 84) | const DECRPM_STATUS = { type TerminalResponse (line 96) | type TerminalResponse = function parseTerminalResponse (line 122) | function parseTerminalResponse(s: string): TerminalResponse | null { function splitNumericParams (line 177) | function splitNumericParams(params: string): number[] { type KeyParseState (line 182) | type KeyParseState = { constant INITIAL_STATE (line 190) | const INITIAL_STATE: KeyParseState = { function inputToString (line 196) | function inputToString(input: Buffer | string): string { function parseMultipleKeypresses (line 213) | function parseMultipleKeypresses( function decodeModifier (line 465) | function decodeModifier(modifier: number): { function keycodeToName (line 487) | function keycodeToName(keycode: number): string | undefined { type ParsedKey (line 543) | type ParsedKey = { type ParsedResponse (line 561) | type ParsedResponse = { type ParsedMouse (line 571) | type ParsedMouse = { type ParsedInput (line 587) | type ParsedInput = ParsedKey | ParsedMouse | ParsedResponse function parseMouseEvent (line 594) | function parseMouseEvent(s: string): ParsedMouse | null { function parseKeypress (line 611) | function parseKeypress(s: string = ''): ParsedKey { function createNavKey (line 787) | function createNavKey(s: string, name: string, ctrl: boolean): ParsedKey { FILE: restored-src/src/ink/reconciler.ts type AnyObject (line 60) | type AnyObject = Record type Props (line 108) | type Props = Record type HostContext (line 110) | type HostContext = { function setEventHandler (line 114) | function setEventHandler(node: DOMElement, key: string, value: unknown):... function applyProp (line 121) | function applyProp(node: DOMElement, key: string, value: unknown): void { type FiberLike (line 152) | type FiberLike = { function getOwnerChain (line 158) | function getOwnerChain(fiber: unknown): string[] { function isDebugRepaintsEnabled (line 180) | function isDebugRepaintsEnabled(): boolean { constant COMMIT_LOG (line 191) | const COMMIT_LOG = process.env.CLAUDE_CODE_COMMIT_LOG function recordYogaMs (line 205) | function recordYogaMs(ms: number): void { function getLastYogaMs (line 208) | function getLastYogaMs(): number { function markCommitStart (line 211) | function markCommitStart(): void { function getLastCommitMs (line 214) | function getLastCommitMs(): number { function resetProfileCounters (line 217) | function resetProfileCounters(): void { method resetAfterCommit (line 247) | resetAfterCommit(rootNode) { method getChildHostContext (line 316) | getChildHostContext( method createInstance (line 331) | createInstance( method createTextInstance (line 360) | createTextInstance( method resetTextContent (line 373) | resetTextContent() {} method hideTextInstance (line 374) | hideTextInstance(node) { method unhideTextInstance (line 377) | unhideTextInstance(node, text) { method hideInstance (line 381) | hideInstance(node) { method unhideInstance (line 386) | unhideInstance(node) { method finalizeInitialChildren (line 394) | finalizeInitialChildren( method commitMount (line 401) | commitMount(node: DOMElement): void { method beforeActiveInstanceBlur (line 412) | beforeActiveInstanceBlur() {} method afterActiveInstanceBlur (line 413) | afterActiveInstanceBlur() {} method detachDeletedInstance (line 414) | detachDeletedInstance() {} method prepareScopeUpdate (line 416) | prepareScopeUpdate() {} method removeChildFromContainer (line 420) | removeChildFromContainer(node: DOMElement, removeNode: DOMElement): void { method commitUpdate (line 426) | commitUpdate( method commitTextUpdate (line 460) | commitTextUpdate(node: TextNode, _oldText: string, newText: string): void { method removeChild (line 463) | removeChild(node, removeNode) { method maySuspendCommit (line 472) | maySuspendCommit(): boolean { method preloadInstance (line 475) | preloadInstance(): boolean { method startSuspendingCommit (line 478) | startSuspendingCommit(): void {} method suspendInstance (line 479) | suspendInstance(): void {} method waitForCommitToBeReady (line 480) | waitForCommitToBeReady(): null { method setCurrentUpdatePriority (line 488) | setCurrentUpdatePriority(newPriority: number): void { method resolveUpdatePriority (line 491) | resolveUpdatePriority(): number { method resetFormInstance (line 494) | resetFormInstance(): void {} method requestPostPaintCallback (line 495) | requestPostPaintCallback(): void {} method shouldAttemptEagerTransition (line 496) | shouldAttemptEagerTransition(): boolean { method trackSchedulerEvent (line 499) | trackSchedulerEvent(): void {} method resolveEventType (line 500) | resolveEventType(): string | null { method resolveEventTimeStamp (line 503) | resolveEventTimeStamp(): number { FILE: restored-src/src/ink/render-border.ts type BorderTextOptions (line 9) | type BorderTextOptions = { constant CUSTOM_BORDER_STYLES (line 16) | const CUSTOM_BORDER_STYLES = { type BorderStyle (line 30) | type BorderStyle = function embedTextInBorder (line 35) | function embedTextInBorder( function styleBorderLine (line 70) | function styleBorderLine( FILE: restored-src/src/ink/render-node-to-output.ts function isXtermJsHost (line 23) | function isXtermJsHost(): boolean { function resetLayoutShifted (line 36) | function resetLayoutShifted(): void { function didLayoutShift (line 40) | function didLayoutShift(): boolean { type ScrollHint (line 49) | type ScrollHint = { top: number; bottom: number; delta: number } function resetScrollHint (line 60) | function resetScrollHint(): void { function getScrollHint (line 66) | function getScrollHint(): ScrollHint | null { function resetScrollDrainNode (line 77) | function resetScrollDrainNode(): void { function getScrollDrainNode (line 81) | function getScrollDrainNode(): DOMElement | null { type FollowScroll (line 93) | type FollowScroll = { function consumeFollowScroll (line 100) | function consumeFollowScroll(): FollowScroll | null { constant SCROLL_MIN_PER_FRAME (line 110) | const SCROLL_MIN_PER_FRAME = 4 constant SCROLL_INSTANT_THRESHOLD (line 117) | const SCROLL_INSTANT_THRESHOLD = 5 // ≤ this: drain all at once constant SCROLL_HIGH_PENDING (line 118) | const SCROLL_HIGH_PENDING = 12 // threshold for HIGH step constant SCROLL_STEP_MED (line 119) | const SCROLL_STEP_MED = 2 // pending (INSTANT, HIGH): catch-up constant SCROLL_STEP_HIGH (line 120) | const SCROLL_STEP_HIGH = 3 // pending ≥ HIGH: fast flick constant SCROLL_MAX_PENDING (line 121) | const SCROLL_MAX_PENDING = 30 // snap excess beyond this function drainAdaptive (line 124) | function drainAdaptive( function drainProportional (line 161) | function drainProportional( constant OSC (line 181) | const OSC = '\u001B]' constant BEL (line 182) | const BEL = '\u0007' function wrapWithOsc8Link (line 184) | function wrapWithOsc8Link(text: string, url: string): string { function buildCharToSegmentMap (line 192) | function buildCharToSegmentMap(segments: StyledSegment[]): number[] { function applyStylesToWrappedText (line 211) | function applyStylesToWrappedText( function wrapWithSoftWrap (line 335) | function wrapWithSoftWrap( function applyPaddingToText (line 365) | function applyPaddingToText( function renderNodeToOutput (line 387) | function renderNodeToOutput( function renderChildren (line 1257) | function renderChildren( function clipsBothAxes (line 1296) | function clipsBothAxes(node: DOMElement): boolean { function siblingSharesY (line 1309) | function siblingSharesY(node: DOMElement, yogaNode: LayoutNode): boolean { function blitEscapingAbsoluteDescendants (line 1337) | function blitEscapingAbsoluteDescendants( function renderScrolledChildren (line 1377) | function renderScrolledChildren( function dropSubtreeCache (line 1450) | function dropSubtreeCache(node: DOMElement): void { FILE: restored-src/src/ink/render-to-screen.ts type MatchPosition (line 26) | type MatchPosition = { constant LOG_EVERY (line 46) | const LOG_EVERY = 20 function renderToScreen (line 59) | function renderToScreen( function scanPositions (line 149) | function scanPositions(screen: Screen, query: string): MatchPosition[] { function applyPositionedHighlight (line 212) | function applyPositionedHighlight( FILE: restored-src/src/ink/renderer.ts type RenderOptions (line 15) | type RenderOptions = { type Renderer (line 29) | type Renderer = (options: RenderOptions) => Frame function createRenderer (line 31) | function createRenderer( FILE: restored-src/src/ink/root.ts type RenderOptions (line 8) | type RenderOptions = { type Instance (line 46) | type Instance = { type Root (line 67) | type Root = { method unmount (line 99) | unmount() { function createRoot (line 129) | async function createRoot({ FILE: restored-src/src/ink/screen.ts class CharPool (line 21) | class CharPool { method intern (line 29) | intern(char: string): number { method get (line 50) | get(index: number): string { class HyperlinkPool (line 57) | class HyperlinkPool { method intern (line 61) | intern(hyperlink: string | undefined): number { method get (line 72) | get(id: number): string | undefined { constant INVERSE_CODE (line 80) | const INVERSE_CODE: AnsiCode = { constant BOLD_CODE (line 87) | const BOLD_CODE: AnsiCode = { constant UNDERLINE_CODE (line 97) | const UNDERLINE_CODE: AnsiCode = { constant YELLOW_FG_CODE (line 106) | const YELLOW_FG_CODE: AnsiCode = { class StylePool (line 112) | class StylePool { method constructor (line 118) | constructor() { method intern (line 129) | intern(styles: AnsiCode[]): number { method get (line 144) | get(id: number): AnsiCode[] { method transition (line 153) | transition(fromId: number, toId: number): string { method withInverse (line 170) | withInverse(baseId: number): number { method withCurrentMatch (line 190) | withCurrentMatch(baseId: number): number { method setSelectionBg (line 239) | setSelectionBg(bg: AnsiCode | null): void { method withSelectionBg (line 244) | withSelectionBg(baseId: number): number { constant VISIBLE_ON_SPACE (line 263) | const VISIBLE_ON_SPACE = new Set([ function hasVisibleSpaceEffect (line 271) | function hasVisibleSpaceEffect(styles: AnsiCode[]): boolean { type CellWidth (line 289) | const enum CellWidth { type Hyperlink (line 302) | type Hyperlink = string | undefined type Cell (line 308) | type Cell = { constant EMPTY_CHAR_INDEX (line 317) | const EMPTY_CHAR_INDEX = 0 // ' ' (space) constant SPACER_CHAR_INDEX (line 318) | const SPACER_CHAR_INDEX = 1 // '' (empty string for spacer cells) function initCharAscii (line 325) | function initCharAscii(): Int32Array { constant STYLE_SHIFT (line 336) | const STYLE_SHIFT = 17 constant HYPERLINK_SHIFT (line 337) | const HYPERLINK_SHIFT = 2 constant HYPERLINK_MASK (line 338) | const HYPERLINK_MASK = 0x7fff // 15 bits constant WIDTH_MASK (line 339) | const WIDTH_MASK = 3 // 2 bits function packWord1 (line 342) | function packWord1( constant EMPTY_CELL_VALUE (line 353) | const EMPTY_CELL_VALUE = 0n type Screen (line 366) | type Screen = Size & { function isEmptyCellByIndex (line 417) | function isEmptyCellByIndex(screen: Screen, index: number): boolean { function isEmptyCellAt (line 424) | function isEmptyCellAt(screen: Screen, x: number, y: number): boolean { function isCellEmpty (line 432) | function isCellEmpty(screen: Screen, cell: Cell): boolean { function internHyperlink (line 445) | function internHyperlink(screen: Screen, hyperlink: Hyperlink): number { function createScreen (line 451) | function createScreen( function resetScreen (line 501) | function resetScreen( function migrateScreenPools (line 554) | function migrateScreenPools( function cellAt (line 593) | function cellAt(screen: Screen, x: number, y: number): Cell | undefined { function cellAtIndex (line 602) | function cellAtIndex(screen: Screen, index: number): Cell { function visibleCellAtIndex (line 624) | function visibleCellAtIndex( function cellAtCI (line 656) | function cellAtCI(screen: Screen, ci: number, out: Cell): void { function charInCellAt (line 666) | function charInCellAt( function setCellAt (line 693) | function setCellAt( function setCellStyleId (line 817) | function setCellStyleId( function internCharString (line 845) | function internCharString(screen: Screen, char: string): number { function blitRegion (line 858) | function blitRegion( function clearRegion (line 959) | function clearRegion( function shiftRows (line 1057) | function shiftRows( constant OSC8_REGEX (line 1095) | const OSC8_REGEX = new RegExp(`^${ESC}\\]8${SEP}${SEP}([^${BEL}]*)${BEL}$`) constant OSC8_PREFIX (line 1097) | const OSC8_PREFIX = `${ESC}]8${SEP}` function extractHyperlinkFromStyles (line 1099) | function extractHyperlinkFromStyles( function filterOutHyperlinkStyles (line 1113) | function filterOutHyperlinkStyles(styles: AnsiCode[]): AnsiCode[] { function diff (line 1126) | function diff( type DiffCallback (line 1142) | type DiffCallback = ( function diffEach (line 1156) | function diffEach( function findNextDiff (line 1213) | function findNextDiff( function diffRowBoth (line 1230) | function diffRowBoth( function diffRowRemoved (line 1263) | function diffRowRemoved( function diffRowAdded (line 1283) | function diffRowAdded( function diffSameWidth (line 1305) | function diffSameWidth( function diffDifferentWidth (line 1378) | function diffDifferentWidth( function markNoSelectRegion (line 1471) | function markNoSelectRegion( FILE: restored-src/src/ink/searchHighlight.ts function applySearchHighlight (line 27) | function applySearchHighlight( FILE: restored-src/src/ink/selection.ts type Point (line 17) | type Point = { col: number; row: number } type SelectionState (line 19) | type SelectionState = { function createSelectionState (line 65) | function createSelectionState(): SelectionState { function startSelection (line 79) | function startSelection( function updateSelection (line 100) | function updateSelection( function finishSelection (line 116) | function finishSelection(s: SelectionState): void { function clearSelection (line 122) | function clearSelection(s: SelectionState): void { constant WORD_CHAR (line 142) | const WORD_CHAR = /[\p{L}\p{N}_/.\-+~\\]/u function charClass (line 151) | function charClass(c: string): 0 | 1 | 2 { function wordBoundsAt (line 162) | function wordBoundsAt( function comparePoints (line 227) | function comparePoints(a: Point, b: Point): number { function selectWordAt (line 240) | function selectWordAt( constant URL_BOUNDARY (line 259) | const URL_BOUNDARY = new Set([...'<>"\'` ']) function isUrlChar (line 260) | function isUrlChar(c: string): boolean { function findPlainTextUrlAt (line 272) | function findPlainTextUrlAt( function selectLineAt (line 368) | function selectLineAt( function extendSelection (line 389) | function extendSelection( type FocusMove (line 425) | type FocusMove = function moveFocus (line 442) | function moveFocus(s: SelectionState, col: number, row: number): void { function shiftSelection (line 470) | function shiftSelection( function shiftAnchor (line 573) | function shiftAnchor( function shiftSelectionForFollow (line 625) | function shiftSelectionForFollow( function hasSelection (line 676) | function hasSelection(s: SelectionState): boolean { function selectionBounds (line 684) | function selectionBounds(s: SelectionState): { function isCellSelected (line 698) | function isCellSelected( function extractRowText (line 716) | function extractRowText( function joinRows (line 750) | function joinRows( function getSelectedText (line 773) | function getSelectedText(s: SelectionState, screen: Screen): string { function captureScrolledRows (line 813) | function captureScrolledRows( function applySelectionOverlay (line 893) | function applySelectionOverlay( FILE: restored-src/src/ink/squash-text-nodes.ts type StyledSegment (line 8) | type StyledSegment = { function squashTextNodesToSegments (line 18) | function squashTextNodesToSegments( function squashTextNodes (line 69) | function squashTextNodes(node: DOMElement): string { FILE: restored-src/src/ink/stringWidth.ts constant EMOJI_REGEX (line 6) | const EMOJI_REGEX = emojiRegex() function stringWidthJavaScript (line 20) | function stringWidthJavaScript(str: string): number { function needsSegmentation (line 92) | function needsSegmentation(str: string): boolean { function getEmojiWidth (line 106) | function getEmojiWidth(grapheme: string): number { function isZeroWidth (line 129) | function isZeroWidth(codePoint: number): boolean { constant BUN_STRING_WIDTH_OPTS (line 218) | const BUN_STRING_WIDTH_OPTS = { ambiguousIsNarrow: true } as const FILE: restored-src/src/ink/styles.ts type RGBColor (line 15) | type RGBColor = `rgb(${number},${number},${number})` type HexColor (line 16) | type HexColor = `#${string}` type Ansi256Color (line 17) | type Ansi256Color = `ansi256(${number})` type AnsiColor (line 18) | type AnsiColor = type Color (line 37) | type Color = RGBColor | HexColor | Ansi256Color | AnsiColor type TextStyles (line 44) | type TextStyles = { type Styles (line 55) | type Styles = { function applyPositionEdge (line 420) | function applyPositionEdge( FILE: restored-src/src/ink/supports-hyperlinks.ts constant ADDITIONAL_HYPERLINK_TERMINALS (line 5) | const ADDITIONAL_HYPERLINK_TERMINALS = [ type EnvLike (line 14) | type EnvLike = Record type SupportsHyperlinksOptions (line 16) | type SupportsHyperlinksOptions = { function supportsHyperlinks (line 26) | function supportsHyperlinks( FILE: restored-src/src/ink/tabstops.ts constant DEFAULT_TAB_INTERVAL (line 7) | const DEFAULT_TAB_INTERVAL = 8 function expandTabs (line 9) | function expandTabs( FILE: restored-src/src/ink/terminal-focus-state.ts type TerminalFocusState (line 6) | type TerminalFocusState = 'focused' | 'blurred' | 'unknown' function setTerminalFocused (line 12) | function setTerminalFocused(v: boolean): void { function getTerminalFocused (line 26) | function getTerminalFocused(): boolean { function getTerminalFocusState (line 30) | function getTerminalFocusState(): TerminalFocusState { function subscribeTerminalFocus (line 35) | function subscribeTerminalFocus(cb: () => void): () => void { function resetTerminalFocusState (line 42) | function resetTerminalFocusState(): void { FILE: restored-src/src/ink/terminal-querier.ts type TerminalQuery (line 30) | type TerminalQuery = { type DecrpmResponse (line 37) | type DecrpmResponse = Extract type Da1Response (line 38) | type Da1Response = Extract type Da2Response (line 39) | type Da2Response = Extract type KittyResponse (line 40) | type KittyResponse = Extract type CursorPosResponse (line 41) | type CursorPosResponse = Extract type XtversionResponse (line 43) | type XtversionResponse = Extract function decrqm (line 49) | function decrqm(mode: number): TerminalQuery { function da1 (line 59) | function da1(): TerminalQuery { function da2 (line 67) | function da2(): TerminalQuery { function kittyKeyboard (line 76) | function kittyKeyboard(): TerminalQuery { function cursorPosition (line 87) | function cursorPosition(): TerminalQuery { function oscColor (line 96) | function oscColor(code: number): TerminalQuery { function xtversion (line 108) | function xtversion(): TerminalQuery { constant SENTINEL (line 118) | const SENTINEL = csi('c') type Pending (line 120) | type Pending = class TerminalQuerier (line 128) | class TerminalQuerier { method constructor (line 136) | constructor(private stdout: NodeJS.WriteStream) {} method send (line 148) | send( method flush (line 170) | flush(): Promise { method onResponse (line 195) | onResponse(r: TerminalResponse): void { FILE: restored-src/src/ink/terminal.ts type Progress (line 11) | type Progress = { function isProgressReportingAvailable (line 25) | function isProgressReportingAvailable(): boolean { function isSynchronizedOutputSupported (line 70) | function isSynchronizedOutputSupported(): boolean { function setXtversionName (line 134) | function setXtversionName(name: string): void { function isXtermJs (line 143) | function isXtermJs(): boolean { constant EXTENDED_KEYS_TERMINALS (line 156) | const EXTENDED_KEYS_TERMINALS = [ function supportsExtendedKeys (line 167) | function supportsExtendedKeys(): boolean { function hasCursorUpViewportYankBug (line 177) | function hasCursorUpViewportYankBug(): boolean { constant SYNC_OUTPUT_SUPPORTED (line 183) | const SYNC_OUTPUT_SUPPORTED = isSynchronizedOutputSupported() type Terminal (line 185) | type Terminal = { function writeDiffToTerminal (line 190) | function writeDiffToTerminal( FILE: restored-src/src/ink/termio/ansi.ts constant ESC (line 47) | const ESC = '\x1b' constant BEL (line 48) | const BEL = '\x07' constant SEP (line 49) | const SEP = ';' constant ESC_TYPE (line 54) | const ESC_TYPE = { function isC0 (line 65) | function isC0(byte: number): boolean { function isEscFinal (line 73) | function isEscFinal(byte: number): boolean { FILE: restored-src/src/ink/termio/csi.ts constant CSI_PREFIX (line 9) | const CSI_PREFIX = ESC + String.fromCharCode(ESC_TYPE.CSI) constant CSI_RANGE (line 14) | const CSI_RANGE = { function isCSIParam (line 24) | function isCSIParam(byte: number): boolean { function isCSIIntermediate (line 29) | function isCSIIntermediate(byte: number): boolean { function isCSIFinal (line 36) | function isCSIFinal(byte: number): boolean { function csi (line 45) | function csi(...args: (string | number)[]): string { constant CSI (line 56) | const CSI = { constant ERASE_DISPLAY (line 104) | const ERASE_DISPLAY = ['toEnd', 'toStart', 'all', 'scrollback'] as const constant ERASE_LINE_REGION (line 109) | const ERASE_LINE_REGION = ['toEnd', 'toStart', 'all'] as const type CursorStyle (line 114) | type CursorStyle = 'block' | 'underline' | 'bar' constant CURSOR_STYLES (line 116) | const CURSOR_STYLES: Array<{ style: CursorStyle; blinking: boolean }> = [ function cursorUp (line 129) | function cursorUp(n = 1): string { function cursorDown (line 134) | function cursorDown(n = 1): string { function cursorForward (line 139) | function cursorForward(n = 1): string { function cursorBack (line 144) | function cursorBack(n = 1): string { function cursorTo (line 149) | function cursorTo(col: number): string { constant CURSOR_LEFT (line 154) | const CURSOR_LEFT = csi('G') function cursorPosition (line 157) | function cursorPosition(row: number, col: number): string { constant CURSOR_HOME (line 162) | const CURSOR_HOME = csi('H') function cursorMove (line 169) | function cursorMove(x: number, y: number): string { constant CURSOR_SAVE (line 189) | const CURSOR_SAVE = csi('s') constant CURSOR_RESTORE (line 192) | const CURSOR_RESTORE = csi('u') function eraseToEndOfLine (line 197) | function eraseToEndOfLine(): string { function eraseToStartOfLine (line 202) | function eraseToStartOfLine(): string { function eraseLine (line 207) | function eraseLine(): string { constant ERASE_LINE (line 212) | const ERASE_LINE = csi(2, 'K') function eraseToEndOfScreen (line 215) | function eraseToEndOfScreen(): string { function eraseToStartOfScreen (line 220) | function eraseToStartOfScreen(): string { function eraseScreen (line 225) | function eraseScreen(): string { constant ERASE_SCREEN (line 230) | const ERASE_SCREEN = csi(2, 'J') constant ERASE_SCROLLBACK (line 233) | const ERASE_SCROLLBACK = csi(3, 'J') function eraseLines (line 239) | function eraseLines(n: number): string { function scrollUp (line 255) | function scrollUp(n = 1): string { function scrollDown (line 260) | function scrollDown(n = 1): string { function setScrollRegion (line 265) | function setScrollRegion(top: number, bottom: number): string { constant RESET_SCROLL_REGION (line 270) | const RESET_SCROLL_REGION = csi('r') constant PASTE_START (line 277) | const PASTE_START = csi('200~') constant PASTE_END (line 280) | const PASTE_END = csi('201~') constant FOCUS_IN (line 287) | const FOCUS_IN = csi('I') constant FOCUS_OUT (line 290) | const FOCUS_OUT = csi('O') constant ENABLE_KITTY_KEYBOARD (line 301) | const ENABLE_KITTY_KEYBOARD = csi('>1u') constant DISABLE_KITTY_KEYBOARD (line 307) | const DISABLE_KITTY_KEYBOARD = csi('4;2m') constant DISABLE_MODIFY_OTHER_KEYS (line 319) | const DISABLE_MODIFY_OTHER_KEYS = csi('>4m') FILE: restored-src/src/ink/termio/dec.ts constant DEC (line 13) | const DEC = { function decset (line 27) | function decset(mode: number): string { function decreset (line 32) | function decreset(mode: number): string { constant BSU (line 37) | const BSU = decset(DEC.SYNCHRONIZED_UPDATE) constant ESU (line 38) | const ESU = decreset(DEC.SYNCHRONIZED_UPDATE) constant EBP (line 39) | const EBP = decset(DEC.BRACKETED_PASTE) constant DBP (line 40) | const DBP = decreset(DEC.BRACKETED_PASTE) constant EFE (line 41) | const EFE = decset(DEC.FOCUS_EVENTS) constant DFE (line 42) | const DFE = decreset(DEC.FOCUS_EVENTS) constant SHOW_CURSOR (line 43) | const SHOW_CURSOR = decset(DEC.CURSOR_VISIBLE) constant HIDE_CURSOR (line 44) | const HIDE_CURSOR = decreset(DEC.CURSOR_VISIBLE) constant ENTER_ALT_SCREEN (line 45) | const ENTER_ALT_SCREEN = decset(DEC.ALT_SCREEN_CLEAR) constant EXIT_ALT_SCREEN (line 46) | const EXIT_ALT_SCREEN = decreset(DEC.ALT_SCREEN_CLEAR) constant ENABLE_MOUSE_TRACKING (line 51) | const ENABLE_MOUSE_TRACKING = constant DISABLE_MOUSE_TRACKING (line 56) | const DISABLE_MOUSE_TRACKING = FILE: restored-src/src/ink/termio/esc.ts function parseEsc (line 14) | function parseEsc(chars: string): Action | null { FILE: restored-src/src/ink/termio/osc.ts constant OSC_PREFIX (line 11) | const OSC_PREFIX = ESC + String.fromCharCode(ESC_TYPE.OSC) function osc (line 18) | function osc(...parts: (string | number)[]): string { function wrapForMultiplexer (line 35) | function wrapForMultiplexer(sequence: string): string { type ClipboardPath (line 62) | type ClipboardPath = 'native' | 'tmux-buffer' | 'osc52' function getClipboardPath (line 64) | function getClipboardPath(): ClipboardPath { function tmuxPassthrough (line 78) | function tmuxPassthrough(payload: string): string { function tmuxLoadBuffer (line 90) | async function tmuxLoadBuffer(text: string): Promise { function setClipboard (line 138) | async function setClipboard(text: string): Promise { function copyNative (line 171) | function copyNative(text: string): void { function _resetLinuxCopyCache (line 222) | function _resetLinuxCopyCache(): void { constant OSC (line 229) | const OSC = { function parseOSC (line 256) | function parseOSC(content: string): Action | null { function parseOscColor (line 317) | function parseOscColor(spec: string): Color | null { function parseTabStatus (line 349) | function parseTabStatus(data: string): TabStatusAction { function link (line 403) | function link(url: string, params?: Record): string { function osc8Id (line 412) | function osc8Id(url: string): string { constant LINK_END (line 420) | const LINK_END = osc(OSC.HYPERLINK, '', '') constant ITERM2 (line 425) | const ITERM2 = { constant PROGRESS (line 432) | const PROGRESS = { constant CLEAR_ITERM2_PROGRESS (line 444) | const CLEAR_ITERM2_PROGRESS = `${OSC_PREFIX}${OSC.ITERM2};${ITERM2.PROGR... constant CLEAR_TERMINAL_TITLE (line 450) | const CLEAR_TERMINAL_TITLE = `${OSC_PREFIX}${OSC.SET_TITLE_AND_ICON};${B... constant CLEAR_TAB_STATUS (line 453) | const CLEAR_TAB_STATUS = osc( function supportsTabStatus (line 467) | function supportsTabStatus(): boolean { function tabStatus (line 476) | function tabStatus(fields: TabStatusAction): string { FILE: restored-src/src/ink/termio/parser.ts function isEmoji (line 29) | function isEmoji(codePoint: number): boolean { function isEastAsianWide (line 39) | function isEastAsianWide(codePoint: number): boolean { function hasMultipleCodepoints (line 54) | function hasMultipleCodepoints(str: string): boolean { function graphemeWidth (line 63) | function graphemeWidth(grapheme: string): 1 | 2 { function parseCSIParams (line 81) | function parseCSIParams(paramStr: string): number[] { function parseCSI (line 87) | function parseCSI(rawSequence: string): Action | null { function identifySequence (line 245) | function identifySequence( class Parser (line 272) | class Parser { method reset (line 279) | reset(): void { method feed (line 287) | feed(input: string): Action[] { method processToken (line 299) | private processToken(token: Token): Action[] { method processText (line 309) | private processText(text: string): Action[] { method processSequence (line 339) | private processSequence(seq: string): Action[] { FILE: restored-src/src/ink/termio/sgr.ts constant NAMED_COLORS (line 11) | const NAMED_COLORS: NamedColor[] = [ constant UNDERLINE_STYLES (line 30) | const UNDERLINE_STYLES: UnderlineStyle[] = [ type Param (line 39) | type Param = { value: number | null; subparams: number[]; colon: boolean } function parseParams (line 41) | function parseParams(str: string): Param[] { function parseExtendedColor (line 79) | function parseExtendedColor( function applySGR (line 127) | function applySGR(paramStr: string, style: TextStyle): TextStyle { FILE: restored-src/src/ink/termio/tokenize.ts type Token (line 12) | type Token = type State (line 16) | type State = type Tokenizer (line 26) | type Tokenizer = { type TokenizerOptions (line 37) | type TokenizerOptions = { function createTokenizer (line 57) | function createTokenizer(options?: TokenizerOptions): Tokenizer { type InternalState (line 94) | type InternalState = { function tokenize (line 99) | function tokenize( FILE: restored-src/src/ink/termio/types.ts type NamedColor (line 13) | type NamedColor = type Color (line 32) | type Color = type UnderlineStyle (line 43) | type UnderlineStyle = type TextStyle (line 52) | type TextStyle = { function defaultStyle (line 68) | function defaultStyle(): TextStyle { function stylesEqual (line 86) | function stylesEqual(a: TextStyle, b: TextStyle): boolean { function colorsEqual (line 104) | function colorsEqual(a: Color, b: Color): boolean { type CursorDirection (line 126) | type CursorDirection = 'up' | 'down' | 'forward' | 'back' type CursorAction (line 128) | type CursorAction = type EraseAction (line 149) | type EraseAction = type ScrollAction (line 158) | type ScrollAction = type ModeAction (line 167) | type ModeAction = type LinkAction (line 177) | type LinkAction = type TitleAction (line 185) | type TitleAction = type TabStatusAction (line 200) | type TabStatusAction = { type TextSegment (line 211) | type TextSegment = { type Grapheme (line 218) | type Grapheme = { type Action (line 224) | type Action = FILE: restored-src/src/ink/useTerminalNotification.ts type WriteRaw (line 6) | type WriteRaw = (data: string) => void type TerminalNotification (line 12) | type TerminalNotification = { function useTerminalNotification (line 25) | function useTerminalNotification(): TerminalNotification { FILE: restored-src/src/ink/warn.ts function ifNotInteger (line 3) | function ifNotInteger(value: number | undefined, name: string): void { FILE: restored-src/src/ink/widest-line.ts function widestLine (line 3) | function widestLine(string: string): number { FILE: restored-src/src/ink/wrap-text.ts constant ELLIPSIS (line 6) | const ELLIPSIS = '…' function sliceFit (line 10) | function sliceFit(text: string, start: number, end: number): string { function truncate (line 15) | function truncate( function wrapText (line 40) | function wrapText( FILE: restored-src/src/ink/wrapAnsi.ts type WrapAnsiOptions (line 3) | type WrapAnsiOptions = { FILE: restored-src/src/interactiveHelpers.tsx function completeOnboarding (line 32) | function completeOnboarding(): void { function showDialog (line 39) | function showDialog(root: Root, renderer: (done: (result: T) =... function exitWithError (line 52) | async function exitWithError(root: Root, message: string, beforeExit?: (... function exitWithMessage (line 65) | async function exitWithMessage(root: Root, message: string, options?: { function showSetupDialog (line 86) | function showSetupDialog(root: Root, renderer: (done: (result:... function renderAndRun (line 98) | async function renderAndRun(root: Root, element: React.ReactNode): Promi... function showSetupScreens (line 104) | async function showSetupScreens(root: Root, permissionMode: PermissionMo... function getRenderContext (line 299) | function getRenderContext(exitOnCtrlC: boolean): { FILE: restored-src/src/keybindings/KeybindingContext.tsx type HandlerRegistration (line 8) | type HandlerRegistration = { type KeybindingContextValue (line 13) | type KeybindingContextValue = { type ProviderProps (line 45) | type ProviderProps = { function KeybindingProvider (line 59) | function KeybindingProvider(t0) { function _temp (line 183) | function _temp() {} function useKeybindingContext (line 184) | function useKeybindingContext() { function useOptionalKeybindingContext (line 196) | function useOptionalKeybindingContext() { function useRegisterKeybindingContext (line 215) | function useRegisterKeybindingContext(context, t0) { FILE: restored-src/src/keybindings/KeybindingProviderSetup.tsx constant CHORD_TIMEOUT_MS (line 30) | const CHORD_TIMEOUT_MS = 1000; type Props (line 31) | type Props = { function useKeybindingWarnings (line 59) | function useKeybindingWarnings(warnings, isReload) { function _temp2 (line 113) | function _temp2(w_0) { function _temp (line 116) | function _temp(w) { function KeybindingSetup (line 119) | function KeybindingSetup({ type HandlerRegistration (line 221) | type HandlerRegistration = { function ChordInterceptor (line 226) | function ChordInterceptor(t0) { FILE: restored-src/src/keybindings/defaultBindings.ts constant IMAGE_PASTE_KEY (line 15) | const IMAGE_PASTE_KEY = getPlatform() === 'windows' ? 'alt+v' : 'ctrl+v' constant SUPPORTS_TERMINAL_VT_MODE (line 21) | const SUPPORTS_TERMINAL_VT_MODE = constant MODE_CYCLE_KEY (line 30) | const MODE_CYCLE_KEY = SUPPORTS_TERMINAL_VT_MODE ? 'shift+tab' : 'meta+m' constant DEFAULT_BINDINGS (line 32) | const DEFAULT_BINDINGS: KeybindingBlock[] = [ FILE: restored-src/src/keybindings/loadUserBindings.ts function isKeybindingCustomizationEnabled (line 41) | function isKeybindingCustomizationEnabled(): boolean { constant FILE_STABILITY_THRESHOLD_MS (line 51) | const FILE_STABILITY_THRESHOLD_MS = 500 constant FILE_STABILITY_POLL_INTERVAL_MS (line 56) | const FILE_STABILITY_POLL_INTERVAL_MS = 200 type KeybindingsLoadResult (line 61) | type KeybindingsLoadResult = { function logCustomBindingsLoadedOncePerDay (line 83) | function logCustomBindingsLoadedOncePerDay(userBindingCount: number): vo... function isKeybindingBlock (line 95) | function isKeybindingBlock(obj: unknown): obj is KeybindingBlock { function isKeybindingBlockArray (line 108) | function isKeybindingBlockArray(arr: unknown): arr is KeybindingBlock[] { function getKeybindingsPath (line 115) | function getKeybindingsPath(): string { function getDefaultParsedBindings (line 122) | function getDefaultParsedBindings(): ParsedBinding[] { function loadKeybindings (line 133) | async function loadKeybindings(): Promise { function loadKeybindingsSync (line 243) | function loadKeybindingsSync(): ParsedBinding[] { function loadKeybindingsSyncWithWarnings (line 259) | function loadKeybindingsSyncWithWarnings(): KeybindingsLoadResult { function initializeKeybindingWatcher (line 353) | async function initializeKeybindingWatcher(): Promise { function disposeKeybindingWatcher (line 409) | function disposeKeybindingWatcher(): void { function handleChange (line 424) | async function handleChange(path: string): Promise { function handleDelete (line 439) | function handleDelete(path: string): void { function getCachedKeybindingWarnings (line 454) | function getCachedKeybindingWarnings(): KeybindingWarning[] { function resetKeybindingLoaderForTesting (line 461) | function resetKeybindingLoaderForTesting(): void { FILE: restored-src/src/keybindings/match.ts type InkModifiers (line 9) | type InkModifiers = Pick function getInkModifiers (line 15) | function getInkModifiers(key: Key): InkModifiers { function getKeyName (line 29) | function getKeyName(input: string, key: Key): string | null { function modifiersMatch (line 60) | function modifiersMatch( function matchesKeystroke (line 86) | function matchesKeystroke( function matchesBinding (line 111) | function matchesBinding( FILE: restored-src/src/keybindings/parser.ts function parseKeystroke (line 13) | function parseKeystroke(input: string): ParsedKeystroke { function parseChord (line 80) | function parseChord(input: string): Chord { function keystrokeToString (line 89) | function keystrokeToString(ks: ParsedKeystroke): string { function keyToDisplayName (line 105) | function keyToDisplayName(key: string): string { function chordToString (line 143) | function chordToString(chord: Chord): string { type DisplayPlatform (line 151) | type DisplayPlatform = 'macos' | 'windows' | 'linux' | 'wsl' | 'unknown' function keystrokeToDisplayString (line 157) | function keystrokeToDisplayString( function chordToDisplayString (line 181) | function chordToDisplayString( function parseBindings (line 191) | function parseBindings(blocks: KeybindingBlock[]): ParsedBinding[] { FILE: restored-src/src/keybindings/reservedShortcuts.ts type ReservedShortcut (line 7) | type ReservedShortcut = { constant NON_REBINDABLE (line 16) | const NON_REBINDABLE: ReservedShortcut[] = [ constant TERMINAL_RESERVED (line 43) | const TERMINAL_RESERVED: ReservedShortcut[] = [ constant MACOS_RESERVED (line 59) | const MACOS_RESERVED: ReservedShortcut[] = [ function getReservedShortcuts (line 73) | function getReservedShortcuts(): ReservedShortcut[] { function normalizeKeyForComparison (line 91) | function normalizeKeyForComparison(key: string): string { function normalizeStep (line 95) | function normalizeStep(step: string): string { FILE: restored-src/src/keybindings/resolver.ts type ResolveResult (line 10) | type ResolveResult = type ChordResolveResult (line 15) | type ChordResolveResult = function resolveKey (line 32) | function resolveKey( function getBindingDisplayText (line 67) | function getBindingDisplayText( function buildKeystroke (line 82) | function buildKeystroke(input: string, key: Key): ParsedKeystroke | null { function keystrokesEqual (line 107) | function keystrokesEqual( function chordPrefixMatches (line 123) | function chordPrefixMatches( function chordExactlyMatches (line 140) | function chordExactlyMatches( function resolveKeyWithChordState (line 166) | function resolveKeyWithChordState( FILE: restored-src/src/keybindings/schema.ts constant KEYBINDING_CONTEXTS (line 12) | const KEYBINDING_CONTEXTS = [ constant KEYBINDING_CONTEXT_DESCRIPTIONS (line 37) | const KEYBINDING_CONTEXT_DESCRIPTIONS: Record< constant KEYBINDING_ACTIONS (line 64) | const KEYBINDING_ACTIONS = [ type KeybindingsSchemaType (line 234) | type KeybindingsSchemaType = z.infer< FILE: restored-src/src/keybindings/shortcutFormat.ts constant LOGGED_FALLBACKS (line 19) | const LOGGED_FALLBACKS = new Set() function getShortcutDisplay (line 38) | function getShortcutDisplay( FILE: restored-src/src/keybindings/template.ts function filterReservedShortcuts (line 18) | function filterReservedShortcuts(blocks: KeybindingBlock[]): KeybindingB... function generateKeybindingsTemplate (line 40) | function generateKeybindingsTemplate(): string { FILE: restored-src/src/keybindings/useKeybinding.ts type Options (line 7) | type Options = { function useKeybinding (line 33) | function useKeybinding( function useKeybindings (line 113) | function useKeybindings( FILE: restored-src/src/keybindings/useShortcutDisplay.ts function useShortcutDisplay (line 29) | function useShortcutDisplay( FILE: restored-src/src/keybindings/validate.ts type KeybindingWarningType (line 16) | type KeybindingWarningType = type KeybindingWarning (line 26) | type KeybindingWarning = { function isKeybindingBlock (line 39) | function isKeybindingBlock(obj: unknown): obj is KeybindingBlock { function isKeybindingBlockArray (line 52) | function isKeybindingBlockArray(arr: unknown): arr is KeybindingBlock[] { constant VALID_CONTEXTS (line 60) | const VALID_CONTEXTS: KeybindingContextName[] = [ function isValidContext (line 84) | function isValidContext(value: string): value is KeybindingContextName { function validateKeystroke (line 91) | function validateKeystroke(keystroke: string): KeybindingWarning | null { function validateBlock (line 130) | function validateBlock( function checkDuplicateKeysInJson (line 258) | function checkDuplicateKeysInJson( function validateUserConfig (line 312) | function validateUserConfig(userBlocks: unknown): KeybindingWarning[] { function checkDuplicates (line 336) | function checkDuplicates( function checkReservedShortcuts (line 373) | function checkReservedShortcuts( function getUserBindingsForValidation (line 405) | function getUserBindingsForValidation( function validateBindings (line 425) | function validateBindings( function formatWarning (line 456) | function formatWarning(warning: KeybindingWarning): string { function formatWarnings (line 470) | function formatWarnings(warnings: KeybindingWarning[]): string { FILE: restored-src/src/main.tsx function logManagedSettings (line 216) | function logManagedSettings(): void { function isBeingDebugged (line 232) | function isBeingDebugged() { function logSessionTelemetry (line 279) | function logSessionTelemetry(): void { function getCertEnvVarTelemetry (line 291) | function getCertEnvVarTelemetry(): Record { function logStartupTelemetry (line 307) | async function logStartupTelemetry(): Promise { constant CURRENT_MIGRATION_VERSION (line 325) | const CURRENT_MIGRATION_VERSION = 11; function runMigrations (line 326) | function runMigrations(): void { function prefetchSystemContextIfSafe (line 360) | function prefetchSystemContextIfSafe(): void { function startDeferredPrefetches (line 388) | function startDeferredPrefetches(): void { function loadSettingsFromFlag (line 432) | function loadSettingsFromFlag(settingsFile: string): void { function loadSettingSourcesFromFlag (line 484) | function loadSettingSourcesFromFlag(settingSourcesArg: string): void { function eagerLoadSettings (line 502) | function eagerLoadSettings(): void { function initializeEntrypoint (line 517) | function initializeEntrypoint(isNonInteractive: boolean): void { type PendingConnect (line 543) | type PendingConnect = { type PendingAssistantChat (line 555) | type PendingAssistantChat = { type PendingSSH (line 567) | type PendingSSH = { function main (line 585) | async function main() { function getInputPrompt (line 857) | async function getInputPrompt(prompt: string, inputFormat: 'text' | 'str... function run (line 884) | async function run(): Promise { function logTenguInit (line 4514) | async function logTenguInit({ function maybeActivateProactive (line 4611) | function maybeActivateProactive(options: unknown): void { function maybeActivateBrief (line 4622) | function maybeActivateBrief(options: unknown): void { function resetCursor (line 4653) | function resetCursor() { type TeammateOptions (line 4657) | type TeammateOptions = { function extractTeammateOptions (line 4667) | function extractTeammateOptions(options: unknown): TeammateOptions { FILE: restored-src/src/memdir/findRelevantMemories.ts type RelevantMemory (line 13) | type RelevantMemory = { constant SELECT_MEMORIES_SYSTEM_PROMPT (line 18) | const SELECT_MEMORIES_SYSTEM_PROMPT = `You are selecting memories that w... function findRelevantMemories (line 39) | async function findRelevantMemories( function selectRelevantMemories (line 77) | async function selectRelevantMemories( FILE: restored-src/src/memdir/memdir.ts constant ENTRYPOINT_NAME (line 34) | const ENTRYPOINT_NAME = 'MEMORY.md' constant MAX_ENTRYPOINT_LINES (line 35) | const MAX_ENTRYPOINT_LINES = 200 constant MAX_ENTRYPOINT_BYTES (line 38) | const MAX_ENTRYPOINT_BYTES = 25_000 constant AUTO_MEM_DISPLAY_NAME (line 39) | const AUTO_MEM_DISPLAY_NAME = 'auto memory' type EntrypointTruncation (line 41) | type EntrypointTruncation = { function truncateEntrypointContent (line 57) | function truncateEntrypointContent(raw: string): EntrypointTruncation { constant DIR_EXISTS_GUIDANCE (line 116) | const DIR_EXISTS_GUIDANCE = constant DIRS_EXIST_GUIDANCE (line 118) | const DIRS_EXIST_GUIDANCE = function ensureMemoryDirExists (line 129) | async function ensureMemoryDirExists(memoryDir: string): Promise { function logMemoryDirCounts (line 153) | function logMemoryDirCounts( function buildMemoryLines (line 199) | function buildMemoryLines( function buildMemoryPrompt (line 272) | function buildMemoryPrompt(params: { function buildAssistantDailyLogPrompt (line 327) | function buildAssistantDailyLogPrompt(skipIndex = false): string { function buildSearchingPastContextSection (line 375) | function buildSearchingPastContextSection(autoMemDir: string): string[] { function loadMemoryPrompt (line 419) | async function loadMemoryPrompt(): Promise { FILE: restored-src/src/memdir/memoryAge.ts function memoryAgeDays (line 6) | function memoryAgeDays(mtimeMs: number): number { function memoryAge (line 15) | function memoryAge(mtimeMs: number): string { function memoryFreshnessText (line 33) | function memoryFreshnessText(mtimeMs: number): string { function memoryFreshnessNote (line 49) | function memoryFreshnessNote(mtimeMs: number): string { FILE: restored-src/src/memdir/memoryScan.ts type MemoryHeader (line 13) | type MemoryHeader = { constant MAX_MEMORY_FILES (line 21) | const MAX_MEMORY_FILES = 200 constant FRONTMATTER_MAX_LINES (line 22) | const FRONTMATTER_MAX_LINES = 30 function scanMemoryFiles (line 35) | async function scanMemoryFiles( function formatMemoryManifest (line 84) | function formatMemoryManifest(memories: MemoryHeader[]): string { FILE: restored-src/src/memdir/memoryTypes.ts constant MEMORY_TYPES (line 14) | const MEMORY_TYPES = [ type MemoryType (line 21) | type MemoryType = (typeof MEMORY_TYPES)[number] function parseMemoryType (line 28) | function parseMemoryType(raw: unknown): MemoryType | undefined { constant TYPES_SECTION_COMBINED (line 37) | const TYPES_SECTION_COMBINED: readonly string[] = [ constant TYPES_SECTION_INDIVIDUAL (line 113) | const TYPES_SECTION_INDIVIDUAL: readonly string[] = [ constant WHAT_NOT_TO_SAVE_SECTION (line 183) | const WHAT_NOT_TO_SAVE_SECTION: readonly string[] = [ constant MEMORY_DRIFT_CAVEAT (line 201) | const MEMORY_DRIFT_CAVEAT = constant WHEN_TO_ACCESS_SECTION (line 216) | const WHEN_TO_ACCESS_SECTION: readonly string[] = [ constant TRUSTING_RECALL_SECTION (line 240) | const TRUSTING_RECALL_SECTION: readonly string[] = [ constant MEMORY_FRONTMATTER_EXAMPLE (line 261) | const MEMORY_FRONTMATTER_EXAMPLE: readonly string[] = [ FILE: restored-src/src/memdir/paths.ts function isAutoMemoryEnabled (line 30) | function isAutoMemoryEnabled(): boolean { function isExtractModeActive (line 69) | function isExtractModeActive(): boolean { function getMemoryBaseDir (line 85) | function getMemoryBaseDir(): string { constant AUTO_MEM_DIRNAME (line 92) | const AUTO_MEM_DIRNAME = 'memory' constant AUTO_MEM_ENTRYPOINT_NAME (line 93) | const AUTO_MEM_ENTRYPOINT_NAME = 'MEMORY.md' function validateMemoryPath (line 109) | function validateMemoryPath( function getAutoMemPathOverride (line 161) | function getAutoMemPathOverride(): string | undefined { function getAutoMemPathSetting (line 179) | function getAutoMemPathSetting(): string | undefined { function hasAutoMemPathOverride (line 194) | function hasAutoMemPathOverride(): boolean { function getAutoMemBase (line 203) | function getAutoMemBase(): string { function getAutoMemDailyLogPath (line 246) | function getAutoMemDailyLogPath(date: Date = new Date()): string { function getAutoMemEntrypoint (line 257) | function getAutoMemEntrypoint(): string { function isAutoMemPath (line 274) | function isAutoMemPath(absolutePath: string): boolean { FILE: restored-src/src/memdir/teamMemPaths.ts class PathTraversalError (line 10) | class PathTraversalError extends Error { method constructor (line 11) | constructor(message: string) { function sanitizePathKey (line 22) | function sanitizePathKey(key: string): string { function isTeamMemoryEnabled (line 73) | function isTeamMemoryEnabled(): boolean { function getTeamMemPath (line 84) | function getTeamMemPath(): string { function getTeamMemEntrypoint (line 92) | function getTeamMemEntrypoint(): string { function realpathDeepestExisting (line 109) | async function realpathDeepestExisting(absolutePath: string): Promise { function isTeamMemFile (line 290) | function isTeamMemFile(filePath: string): boolean { FILE: restored-src/src/memdir/teamMemPrompts.ts function buildCombinedMemoryPrompt (line 22) | function buildCombinedMemoryPrompt( FILE: restored-src/src/migrations/migrateAutoUpdatesToSettings.ts function migrateAutoUpdatesToSettings (line 13) | function migrateAutoUpdatesToSettings(): void { FILE: restored-src/src/migrations/migrateBypassPermissionsAcceptedToSettings.ts function migrateBypassPermissionsAcceptedToSettings (line 14) | function migrateBypassPermissionsAcceptedToSettings(): void { FILE: restored-src/src/migrations/migrateEnableAllProjectMcpServersToSettings.ts function migrateEnableAllProjectMcpServersToSettings (line 17) | function migrateEnableAllProjectMcpServersToSettings(): void { FILE: restored-src/src/migrations/migrateFennecToOpus.ts function migrateFennecToOpus (line 18) | function migrateFennecToOpus(): void { FILE: restored-src/src/migrations/migrateLegacyOpusToCurrent.ts function migrateLegacyOpusToCurrent (line 29) | function migrateLegacyOpusToCurrent(): void { FILE: restored-src/src/migrations/migrateOpusToOpus1m.ts function migrateOpusToOpus1m (line 24) | function migrateOpusToOpus1m(): void { FILE: restored-src/src/migrations/migrateReplBridgeEnabledToRemoteControlAtStartup.ts function migrateReplBridgeEnabledToRemoteControlAtStartup (line 10) | function migrateReplBridgeEnabledToRemoteControlAtStartup(): void { FILE: restored-src/src/migrations/migrateSonnet1mToSonnet45.ts function migrateSonnet1mToSonnet45 (line 25) | function migrateSonnet1mToSonnet45(): void { FILE: restored-src/src/migrations/migrateSonnet45ToSonnet46.ts function migrateSonnet45ToSonnet46 (line 29) | function migrateSonnet45ToSonnet46(): void { FILE: restored-src/src/migrations/resetAutoModeOptInForDefaultOffer.ts function resetAutoModeOptInForDefaultOffer (line 25) | function resetAutoModeOptInForDefaultOffer(): void { FILE: restored-src/src/migrations/resetProToOpusDefault.ts function resetProToOpusDefault (line 7) | function resetProToOpusDefault(): void { FILE: restored-src/src/moreright/useMoreRight.tsx type M (line 8) | type M = any; function useMoreRight (line 9) | function useMoreRight(_args: { FILE: restored-src/src/native-ts/color-diff/index.ts type HLJSApi (line 33) | type HLJSApi = typeof hljsNamespace function hljs (line 35) | function hljs(): HLJSApi { type Hunk (line 52) | type Hunk = { type SyntaxTheme (line 60) | type SyntaxTheme = { type NativeModule (line 65) | type NativeModule = { type Color (line 75) | type Color = { r: number; g: number; b: number; a: number } type Style (line 76) | type Style = { foreground: Color; background: Color } type Block (line 77) | type Block = [Style, string] type ColorMode (line 78) | type ColorMode = 'truecolor' | 'color256' | 'ansi' constant RESET (line 80) | const RESET = '\x1b[0m' constant DIM (line 81) | const DIM = '\x1b[2m' constant UNDIM (line 82) | const UNDIM = '\x1b[22m' function rgb (line 84) | function rgb(r: number, g: number, b: number): Color { function ansiIdx (line 88) | function ansiIdx(index: number): Color { constant DEFAULT_BG (line 93) | const DEFAULT_BG: Color = { r: 0, g: 0, b: 0, a: 1 } function detectColorMode (line 95) | function detectColorMode(theme: string): ColorMode { constant CUBE_LEVELS (line 104) | const CUBE_LEVELS = [0, 95, 135, 175, 215, 255] function ansi256FromRgb (line 105) | function ansi256FromRgb(r: number, g: number, b: number): number { function colorToEscape (line 129) | function colorToEscape(c: Color, fg: boolean, mode: ColorMode): string { function asTerminalEscaped (line 147) | function asTerminalEscaped( type Marker (line 168) | type Marker = '+' | '-' | ' ' type Theme (line 170) | type Theme = { function defaultSyntaxThemeName (line 182) | function defaultSyntaxThemeName(themeName: string): string { constant MONOKAI_SCOPES (line 190) | const MONOKAI_SCOPES: Record = { constant GITHUB_SCOPES (line 218) | const GITHUB_SCOPES: Record = { constant STORAGE_KEYWORDS (line 248) | const STORAGE_KEYWORDS = new Set([ constant ANSI_SCOPES (line 267) | const ANSI_SCOPES: Record = { function buildTheme (line 282) | function buildTheme(themeName: string, mode: ColorMode): Theme { function defaultStyle (line 364) | function defaultStyle(theme: Theme): Style { function lineBackground (line 368) | function lineBackground(marker: Marker, theme: Theme): Color { function wordBackground (line 379) | function wordBackground(marker: Marker, theme: Theme): Color { function decorationColor (line 390) | function decorationColor(marker: Marker, theme: Theme): Color { type HljsNode (line 406) | type HljsNode = { constant FILENAME_LANGS (line 414) | const FILENAME_LANGS: Record = { function detectLanguage (line 422) | function detectLanguage( function scopeColor (line 453) | function scopeColor( function flattenHljs (line 469) | function flattenHljs( function hasRootNode (line 491) | function hasRootNode(emitter: unknown): emitter is { rootNode: HljsNode } { function highlightLine (line 504) | function highlightLine( type Range (line 544) | type Range = { start: number; end: number } constant CHANGE_THRESHOLD (line 546) | const CHANGE_THRESHOLD = 0.4 function tokenize (line 550) | function tokenize(text: string): string[] { function findAdjacentPairs (line 576) | function findAdjacentPairs(markers: Marker[]): [number, number][] { function wordDiffStrings (line 604) | function wordDiffStrings(oldStr: string, newStr: string): [Range[], Rang... type Highlight (line 642) | type Highlight = { function removeNewlines (line 648) | function removeNewlines(h: Highlight): void { function charWidth (line 659) | function charWidth(ch: string): number { function wrapText (line 663) | function wrapText(h: Highlight, width: number, theme: Theme): void { function addLineNumber (line 726) | function addLineNumber( function addMarker (line 747) | function addMarker(h: Highlight, theme: Theme): void { function dimContent (line 758) | function dimContent(h: Highlight): void { function applyBackground (line 768) | function applyBackground(h: Highlight, theme: Theme, ranges: Range[]): v... function intoLines (line 819) | function intoLines( function maxLineNumber (line 832) | function maxLineNumber(hunk: Hunk): number { function parseMarker (line 838) | function parseMarker(s: string): Marker { class ColorDiff (line 842) | class ColorDiff { method constructor (line 848) | constructor( method render (line 860) | render(themeName: string, width: number, dim: boolean): string[] | null { class ColorFile (line 935) | class ColorFile { method constructor (line 939) | constructor(code: string, filePath: string) { method render (line 944) | render(themeName: string, width: number, dim: boolean): string[] | null { function getSyntaxTheme (line 970) | function getSyntaxTheme(themeName: string): SyntaxTheme { function getNativeModule (line 982) | function getNativeModule(): NativeModule | null { FILE: restored-src/src/native-ts/file-index/index.ts type SearchResult (line 18) | type SearchResult = { constant SCORE_MATCH (line 24) | const SCORE_MATCH = 16 constant BONUS_BOUNDARY (line 25) | const BONUS_BOUNDARY = 8 constant BONUS_CAMEL (line 26) | const BONUS_CAMEL = 6 constant BONUS_CONSECUTIVE (line 27) | const BONUS_CONSECUTIVE = 4 constant BONUS_FIRST_CHAR (line 28) | const BONUS_FIRST_CHAR = 8 constant PENALTY_GAP_START (line 29) | const PENALTY_GAP_START = 3 constant PENALTY_GAP_EXTENSION (line 30) | const PENALTY_GAP_EXTENSION = 1 constant TOP_LEVEL_CACHE_LIMIT (line 32) | const TOP_LEVEL_CACHE_LIMIT = 100 constant MAX_QUERY_LEN (line 33) | const MAX_QUERY_LEN = 64 constant CHUNK_MS (line 38) | const CHUNK_MS = 4 class FileIndex (line 43) | class FileIndex { method loadFromFileList (line 58) | loadFromFileList(fileList: string[]): void { method loadFromFileListAsync (line 83) | loadFromFileListAsync(fileList: string[]): { method buildAsync (line 95) | private async buildAsync( method buildIndex (line 135) | private buildIndex(paths: string[]): void { method resetArrays (line 143) | private resetArrays(paths: string[]): void { method indexPath (line 156) | private indexPath(i: number): void { method search (line 173) | search(query: string, limit: number): SearchResult[] { function scoreBonusAt (line 297) | function scoreBonusAt(path: string, pos: number, first: boolean): number { function isBoundary (line 305) | function isBoundary(code: number): boolean { function isLower (line 317) | function isLower(code: number): boolean { function isUpper (line 321) | function isUpper(code: number): boolean { function yieldToEventLoop (line 325) | function yieldToEventLoop(): Promise { function computeTopLevelEntries (line 336) | function computeTopLevelEntries( FILE: restored-src/src/native-ts/yoga-layout/enums.ts type Align (line 18) | type Align = (typeof Align)[keyof typeof Align] type BoxSizing (line 24) | type BoxSizing = (typeof BoxSizing)[keyof typeof BoxSizing] type Dimension (line 30) | type Dimension = (typeof Dimension)[keyof typeof Dimension] type Direction (line 37) | type Direction = (typeof Direction)[keyof typeof Direction] type Display (line 44) | type Display = (typeof Display)[keyof typeof Display] type Edge (line 57) | type Edge = (typeof Edge)[keyof typeof Edge] type Errata (line 67) | type Errata = (typeof Errata)[keyof typeof Errata] type ExperimentalFeature (line 72) | type ExperimentalFeature = type FlexDirection (line 81) | type FlexDirection = (typeof FlexDirection)[keyof typeof FlexDirection] type Gutter (line 88) | type Gutter = (typeof Gutter)[keyof typeof Gutter] type Justify (line 98) | type Justify = (typeof Justify)[keyof typeof Justify] type MeasureMode (line 105) | type MeasureMode = (typeof MeasureMode)[keyof typeof MeasureMode] type Overflow (line 112) | type Overflow = (typeof Overflow)[keyof typeof Overflow] type PositionType (line 119) | type PositionType = (typeof PositionType)[keyof typeof PositionType] type Unit (line 127) | type Unit = (typeof Unit)[keyof typeof Unit] type Wrap (line 134) | type Wrap = (typeof Wrap)[keyof typeof Wrap] FILE: restored-src/src/native-ts/yoga-layout/index.ts type Value (line 82) | type Value = { constant UNDEFINED_VALUE (line 87) | const UNDEFINED_VALUE: Value = { unit: Unit.Undefined, value: NaN } constant AUTO_VALUE (line 88) | const AUTO_VALUE: Value = { unit: Unit.Auto, value: NaN } function pointValue (line 90) | function pointValue(v: number): Value { function percentValue (line 93) | function percentValue(v: number): Value { function resolveValue (line 97) | function resolveValue(v: Value, ownerSize: number): number { function isDefined (line 108) | function isDefined(n: number): boolean { function sameFloat (line 113) | function sameFloat(a: number, b: number): boolean { type Layout (line 120) | type Layout = { type Style (line 134) | type Style = { function defaultStyle (line 167) | function defaultStyle(): Style { constant EDGE_LEFT (line 199) | const EDGE_LEFT = 0 constant EDGE_TOP (line 200) | const EDGE_TOP = 1 constant EDGE_RIGHT (line 201) | const EDGE_RIGHT = 2 constant EDGE_BOTTOM (line 202) | const EDGE_BOTTOM = 3 function resolveEdge (line 204) | function resolveEdge( function resolveEdgeRaw (line 233) | function resolveEdgeRaw(edges: Value[], physicalEdge: number): Value { function isMarginAuto (line 250) | function isMarginAuto(edges: Value[], physicalEdge: number): boolean { function hasAnyAutoEdge (line 256) | function hasAnyAutoEdge(edges: Value[]): boolean { function hasAnyDefinedEdge (line 260) | function hasAnyDefinedEdge(edges: Value[]): boolean { function resolveEdges4Into (line 269) | function resolveEdges4Into( function isRow (line 312) | function isRow(dir: FlexDirection): boolean { function isReverse (line 315) | function isReverse(dir: FlexDirection): boolean { function crossAxis (line 318) | function crossAxis(dir: FlexDirection): FlexDirection { function leadingEdge (line 321) | function leadingEdge(dir: FlexDirection): number { function trailingEdge (line 333) | function trailingEdge(dir: FlexDirection): number { type MeasureFunction (line 349) | type MeasureFunction = ( type Size (line 356) | type Size = { width: number; height: number } type Config (line 361) | type Config = { function createConfig (line 374) | function createConfig(): Config { class Node (line 403) | class Node { method constructor (line 498) | constructor(config?: Config) { method insertChild (line 520) | insertChild(child: Node, index: number): void { method removeChild (line 525) | removeChild(child: Node): void { method getChild (line 533) | getChild(index: number): Node { method getChildCount (line 536) | getChildCount(): number { method getParent (line 539) | getParent(): Node | null { method free (line 545) | free(): void { method freeRecursive (line 553) | freeRecursive(): void { method reset (line 557) | reset(): void { method markDirty (line 577) | markDirty(): void { method isDirty (line 581) | isDirty(): boolean { method hasNewLayout (line 584) | hasNewLayout(): boolean { method markLayoutSeen (line 587) | markLayoutSeen(): void {} method setMeasureFunc (line 591) | setMeasureFunc(fn: MeasureFunction | null): void { method unsetMeasureFunc (line 595) | unsetMeasureFunc(): void { method getComputedLeft (line 602) | getComputedLeft(): number { method getComputedTop (line 605) | getComputedTop(): number { method getComputedWidth (line 608) | getComputedWidth(): number { method getComputedHeight (line 611) | getComputedHeight(): number { method getComputedRight (line 614) | getComputedRight(): number { method getComputedBottom (line 618) | getComputedBottom(): number { method getComputedLayout (line 622) | getComputedLayout(): { method getComputedBorder (line 639) | getComputedBorder(edge: Edge): number { method getComputedPadding (line 642) | getComputedPadding(edge: Edge): number { method getComputedMargin (line 645) | getComputedMargin(edge: Edge): number { method setWidth (line 651) | setWidth(v: number | 'auto' | string | undefined): void { method setWidthPercent (line 655) | setWidthPercent(v: number): void { method setWidthAuto (line 659) | setWidthAuto(): void { method setHeight (line 663) | setHeight(v: number | 'auto' | string | undefined): void { method setHeightPercent (line 667) | setHeightPercent(v: number): void { method setHeightAuto (line 671) | setHeightAuto(): void { method setMinWidth (line 675) | setMinWidth(v: number | string | undefined): void { method setMinWidthPercent (line 679) | setMinWidthPercent(v: number): void { method setMinHeight (line 683) | setMinHeight(v: number | string | undefined): void { method setMinHeightPercent (line 687) | setMinHeightPercent(v: number): void { method setMaxWidth (line 691) | setMaxWidth(v: number | string | undefined): void { method setMaxWidthPercent (line 695) | setMaxWidthPercent(v: number): void { method setMaxHeight (line 699) | setMaxHeight(v: number | string | undefined): void { method setMaxHeightPercent (line 703) | setMaxHeightPercent(v: number): void { method setFlexDirection (line 710) | setFlexDirection(dir: FlexDirection): void { method setFlexGrow (line 714) | setFlexGrow(v: number | undefined): void { method setFlexShrink (line 718) | setFlexShrink(v: number | undefined): void { method setFlex (line 722) | setFlex(v: number | undefined): void { method setFlexBasis (line 739) | setFlexBasis(v: number | 'auto' | string | undefined): void { method setFlexBasisPercent (line 743) | setFlexBasisPercent(v: number): void { method setFlexBasisAuto (line 747) | setFlexBasisAuto(): void { method setFlexWrap (line 751) | setFlexWrap(wrap: Wrap): void { method setAlignItems (line 758) | setAlignItems(a: Align): void { method setAlignSelf (line 762) | setAlignSelf(a: Align): void { method setAlignContent (line 766) | setAlignContent(a: Align): void { method setJustifyContent (line 770) | setJustifyContent(j: Justify): void { method setDisplay (line 777) | setDisplay(d: Display): void { method getDisplay (line 781) | getDisplay(): Display { method setPositionType (line 784) | setPositionType(t: PositionType): void { method setPosition (line 788) | setPosition(edge: Edge, v: number | string | undefined): void { method setPositionPercent (line 793) | setPositionPercent(edge: Edge, v: number): void { method setPositionAuto (line 798) | setPositionAuto(edge: Edge): void { method setOverflow (line 803) | setOverflow(o: Overflow): void { method setDirection (line 807) | setDirection(d: Direction): void { method setBoxSizing (line 811) | setBoxSizing(_: BoxSizing): void { method setMargin (line 817) | setMargin(edge: Edge, v: number | 'auto' | string | undefined): void { method setMarginPercent (line 826) | setMarginPercent(edge: Edge, v: number): void { method setMarginAuto (line 832) | setMarginAuto(edge: Edge): void { method setPadding (line 838) | setPadding(edge: Edge, v: number | string | undefined): void { method setPaddingPercent (line 843) | setPaddingPercent(edge: Edge, v: number): void { method setBorder (line 848) | setBorder(edge: Edge, v: number | undefined): void { method setGap (line 853) | setGap(gutter: Gutter, v: number | string | undefined): void { method setGapPercent (line 857) | setGapPercent(gutter: Gutter, v: number): void { method getFlexDirection (line 864) | getFlexDirection(): FlexDirection { method getJustifyContent (line 867) | getJustifyContent(): Justify { method getAlignItems (line 870) | getAlignItems(): Align { method getAlignSelf (line 873) | getAlignSelf(): Align { method getAlignContent (line 876) | getAlignContent(): Align { method getFlexGrow (line 879) | getFlexGrow(): number { method getFlexShrink (line 882) | getFlexShrink(): number { method getFlexBasis (line 885) | getFlexBasis(): Value { method getFlexWrap (line 888) | getFlexWrap(): Wrap { method getWidth (line 891) | getWidth(): Value { method getHeight (line 894) | getHeight(): Value { method getOverflow (line 897) | getOverflow(): Overflow { method getPositionType (line 900) | getPositionType(): PositionType { method getDirection (line 903) | getDirection(): Direction { method copyStyle (line 909) | copyStyle(_: Node): void {} method setDirtiedFunc (line 910) | setDirtiedFunc(_: unknown): void {} method unsetDirtiedFunc (line 911) | unsetDirtiedFunc(): void {} method setIsReferenceBaseline (line 912) | setIsReferenceBaseline(v: boolean): void { method isReferenceBaseline (line 916) | isReferenceBaseline(): boolean { method setAspectRatio (line 919) | setAspectRatio(_: number | undefined): void {} method getAspectRatio (line 920) | getAspectRatio(): number { method setAlwaysFormsContainingBlock (line 923) | setAlwaysFormsContainingBlock(_: boolean): void {} method calculateLayout (line 927) | calculateLayout( constant DEFAULT_CONFIG (line 966) | const DEFAULT_CONFIG = createConfig() constant CACHE_SLOTS (line 968) | const CACHE_SLOTS = 4 function cacheWrite (line 969) | function cacheWrite( function commitCacheOutputs (line 1022) | function commitCacheOutputs(node: Node, performLayout: boolean): void { function getYogaCounters (line 1044) | function getYogaCounters(): { function layoutNode (line 1058) | function layoutNode( function layoutAbsoluteChild (line 1904) | function layoutAbsoluteChild( function justifyAbsolute (line 2023) | function justifyAbsolute( function alignAbsolute (line 2039) | function alignAbsolute( function computeFlexBasis (line 2059) | function computeFlexBasis( function hasMeasureFuncInSubtree (line 2174) | function hasMeasureFuncInSubtree(node: Node): boolean { function resolveFlexibleLengths (line 2182) | function resolveFlexibleLengths( function isStretchAlign (line 2284) | function isStretchAlign(child: Node): boolean { function resolveChildAlign (line 2294) | function resolveChildAlign(parent: Node, child: Node): Align { function calculateBaseline (line 2304) | function calculateBaseline(node: Node): number { function isBaselineLayout (line 2325) | function isBaselineLayout(node: Node, flowChildren: Node[]): boolean { function childMarginForAxis (line 2334) | function childMarginForAxis( function resolveGap (line 2345) | function resolveGap(style: Style, gutter: Gutter, ownerSize: number): nu... function boundAxis (line 2352) | function boundAxis( function zeroLayoutRecursive (line 2386) | function zeroLayoutRecursive(node: Node): void { function collectLayoutChildren (line 2406) | function collectLayoutChildren(node: Node, flow: Node[], abs: Node[]): v... function roundLayout (line 2435) | function roundLayout( function isWholeNumber (line 2478) | function isWholeNumber(v: number): boolean { function roundValue (line 2483) | function roundValue( function parseDimension (line 2511) | function parseDimension(v: number | string | undefined): Value { function physicalEdge (line 2528) | function physicalEdge(edge: Edge): number { type Yoga (line 2548) | type Yoga = { constant YOGA_INSTANCE (line 2561) | const YOGA_INSTANCE: Yoga = { method destroy (line 2564) | destroy() {} method destroy (line 2570) | destroy() {} function loadYoga (line 2574) | function loadYoga(): Promise { FILE: restored-src/src/outputStyles/loadOutputStylesDir.ts function clearOutputStyleCaches (line 94) | function clearOutputStyleCaches(): void { FILE: restored-src/src/plugins/builtinPlugins.ts constant BUILTIN_PLUGINS (line 21) | const BUILTIN_PLUGINS: Map = new Map() constant BUILTIN_MARKETPLACE_NAME (line 23) | const BUILTIN_MARKETPLACE_NAME = 'builtin' function registerBuiltinPlugin (line 28) | function registerBuiltinPlugin( function isBuiltinPluginId (line 37) | function isBuiltinPluginId(pluginId: string): boolean { function getBuiltinPluginDefinition (line 46) | function getBuiltinPluginDefinition( function getBuiltinPlugins (line 57) | function getBuiltinPlugins(): { function getBuiltinPluginSkillCommands (line 108) | function getBuiltinPluginSkillCommands(): Command[] { function clearBuiltinPlugins (line 126) | function clearBuiltinPlugins(): void { function skillDefinitionToCommand (line 132) | function skillDefinitionToCommand(definition: BundledSkillDefinition): C... FILE: restored-src/src/plugins/bundled/index.ts function initBuiltinPlugins (line 20) | function initBuiltinPlugins(): void { FILE: restored-src/src/projectOnboardingState.ts type Step (line 11) | type Step = { function getSteps (line 19) | function getSteps(): Step[] { function isProjectOnboardingComplete (line 43) | function isProjectOnboardingComplete(): boolean { function maybeMarkProjectOnboardingComplete (line 49) | function maybeMarkProjectOnboardingComplete(): void { function incrementProjectOnboardingSeenCount (line 78) | function incrementProjectOnboardingSeenCount(): void { FILE: restored-src/src/query.ts constant MAX_OUTPUT_TOKENS_RECOVERY_LIMIT (line 164) | const MAX_OUTPUT_TOKENS_RECOVERY_LIMIT = 3 function isWithheldMaxOutputTokens (line 175) | function isWithheldMaxOutputTokens( type QueryParams (line 181) | type QueryParams = { type State (line 204) | type State = { method getToolPermissionContext (line 666) | async getToolPermissionContext() { FILE: restored-src/src/query/config.ts type QueryConfig (line 15) | type QueryConfig = { function buildQueryConfig (line 29) | function buildQueryConfig(): QueryConfig { FILE: restored-src/src/query/deps.ts type QueryDeps (line 21) | type QueryDeps = { function productionDeps (line 33) | function productionDeps(): QueryDeps { FILE: restored-src/src/query/stopHooks.ts type StopHookResult (line 60) | type StopHookResult = { FILE: restored-src/src/query/tokenBudget.ts constant COMPLETION_THRESHOLD (line 3) | const COMPLETION_THRESHOLD = 0.9 constant DIMINISHING_THRESHOLD (line 4) | const DIMINISHING_THRESHOLD = 500 type BudgetTracker (line 6) | type BudgetTracker = { function createBudgetTracker (line 13) | function createBudgetTracker(): BudgetTracker { type ContinueDecision (line 22) | type ContinueDecision = { type StopDecision (line 31) | type StopDecision = { type TokenBudgetDecision (line 43) | type TokenBudgetDecision = ContinueDecision | StopDecision function checkTokenBudget (line 45) | function checkTokenBudget( FILE: restored-src/src/remote/RemoteSessionManager.ts function isSDKMessage (line 22) | function isSDKMessage( type RemotePermissionResponse (line 40) | type RemotePermissionResponse = type RemoteSessionConfig (line 50) | type RemoteSessionConfig = { type RemoteSessionCallbacks (line 64) | type RemoteSessionCallbacks = { class RemoteSessionManager (line 95) | class RemoteSessionManager { method constructor (line 100) | constructor( method connect (line 108) | connect(): void { method handleMessage (line 146) | private handleMessage( method handleControlRequest (line 189) | private handleControlRequest(request: SDKControlRequest): void { method sendMessage (line 219) | async sendMessage( method respondToPermissionRequest (line 247) | respondToPermissionRequest( method isConnected (line 287) | isConnected(): boolean { method cancelSession (line 294) | cancelSession(): void { method getSessionId (line 302) | getSessionId(): string { method disconnect (line 309) | disconnect(): void { method reconnect (line 320) | reconnect(): void { function createRemoteSessionConfig (line 329) | function createRemoteSessionConfig( FILE: restored-src/src/remote/SessionsWebSocket.ts constant RECONNECT_DELAY_MS (line 17) | const RECONNECT_DELAY_MS = 2000 constant MAX_RECONNECT_ATTEMPTS (line 18) | const MAX_RECONNECT_ATTEMPTS = 5 constant PING_INTERVAL_MS (line 19) | const PING_INTERVAL_MS = 30000 constant MAX_SESSION_NOT_FOUND_RETRIES (line 26) | const MAX_SESSION_NOT_FOUND_RETRIES = 3 constant PERMANENT_CLOSE_CODES (line 34) | const PERMANENT_CLOSE_CODES = new Set([ type WebSocketState (line 38) | type WebSocketState = 'connecting' | 'connected' | 'closed' type SessionsMessage (line 40) | type SessionsMessage = function isSessionsMessage (line 46) | function isSessionsMessage(value: unknown): value is SessionsMessage { type SessionsWebSocketCallbacks (line 57) | type SessionsWebSocketCallbacks = { type WebSocketLike (line 68) | type WebSocketLike = { class SessionsWebSocket (line 82) | class SessionsWebSocket { method constructor (line 90) | constructor( method connect (line 100) | async connect(): Promise { method handleMessage (line 210) | private handleMessage(data: string): void { method handleClose (line 234) | private handleClose(closeCode: number): void { method scheduleReconnect (line 290) | private scheduleReconnect(delay: number, label: string): void { method startPingInterval (line 301) | private startPingInterval(): void { method stopPingInterval (line 318) | private stopPingInterval(): void { method sendControlResponse (line 328) | sendControlResponse(response: SDKControlResponse): void { method sendControlRequest (line 341) | sendControlRequest(request: SDKControlRequestInner): void { method isConnected (line 362) | isConnected(): boolean { method close (line 369) | close(): void { method reconnect (line 393) | reconnect(): void { FILE: restored-src/src/remote/remotePermissionBridge.ts function createSyntheticAssistantMessage (line 12) | function createSyntheticAssistantMessage( function createToolStub (line 53) | function createToolStub(toolName: string): Tool { FILE: restored-src/src/remote/sdkMessageAdapter.ts function convertAssistantMessage (line 31) | function convertAssistantMessage(msg: SDKAssistantMessage): AssistantMes... function convertStreamEvent (line 45) | function convertStreamEvent(msg: SDKPartialAssistantMessage): StreamEvent { function convertResultMessage (line 55) | function convertResultMessage(msg: SDKResultMessage): SystemMessage { function convertInitMessage (line 74) | function convertInitMessage(msg: SDKSystemMessage): SystemMessage { function convertStatusMessage (line 88) | function convertStatusMessage(msg: SDKStatusMessage): SystemMessage | nu... function convertToolProgressMessage (line 111) | function convertToolProgressMessage( function convertCompactBoundaryMessage (line 128) | function convertCompactBoundaryMessage( type ConvertedMessage (line 145) | type ConvertedMessage = type ConvertOptions (line 150) | type ConvertOptions = { function convertSDKMessage (line 168) | function convertSDKMessage( function isSessionEndMessage (line 283) | function isSessionEndMessage(msg: SDKMessage): boolean { function isSuccessResult (line 290) | function isSuccessResult(msg: SDKResultMessage): boolean { function getResultText (line 297) | function getResultText(msg: SDKResultMessage): string | null { FILE: restored-src/src/replLauncher.tsx type AppWrapperProps (line 7) | type AppWrapperProps = { function launchRepl (line 12) | async function launchRepl(root: Root, appProps: AppWrapperProps, replPro... FILE: restored-src/src/schemas/hooks.ts function buildHookSchemas (line 31) | function buildHookSchemas() { type HookCommand (line 216) | type HookCommand = z.infer> type BashCommandHook (line 217) | type BashCommandHook = Extract type PromptHook (line 218) | type PromptHook = Extract type AgentHook (line 219) | type AgentHook = Extract type HttpHook (line 220) | type HttpHook = Extract type HookMatcher (line 221) | type HookMatcher = z.infer> type HooksSettings (line 222) | type HooksSettings = Partial> FILE: restored-src/src/screens/Doctor.tsx type Props (line 32) | type Props = { type AgentInfo (line 37) | type AgentInfo = { type VersionLockInfo (line 51) | type VersionLockInfo = { function DistTagsDisplay (line 57) | function DistTagsDisplay(t0) { function Doctor (line 100) | function Doctor(t0) { function _temp18 (line 503) | function _temp18(detail_2, i_8) { function _temp17 (line 506) | function _temp17(detail_1, i_7) { function _temp16 (line 509) | function _temp16(detail_0, i_6) { function _temp15 (line 512) | function _temp15(detail, i_5) { function _temp14 (line 515) | function _temp14(error_0, i_4) { function _temp13 (line 518) | function _temp13(file, i_3) { function _temp12 (line 521) | function _temp12(lock, i_2) { function _temp11 (line 524) | function _temp11(validation, i_1) { function _temp10 (line 527) | function _temp10(warning, i_0) { function _temp1 (line 530) | function _temp1(install, i) { function _temp0 (line 533) | function _temp0(a) { function _temp9 (line 539) | function _temp9(v_0) { function _temp8 (line 542) | function _temp8(v) { function _temp7 (line 550) | function _temp7(error) { function _temp6 (line 553) | function _temp6(diag) { function _temp5 (line 557) | function _temp5() { function _temp4 (line 563) | function _temp4(s_2) { function _temp3 (line 566) | function _temp3(s_1) { function _temp2 (line 569) | function _temp2(s_0) { function _temp (line 572) | function _temp(s) { FILE: restored-src/src/screens/REPL.tsx constant EMPTY_MCP_CLIENTS (line 294) | const EMPTY_MCP_CLIENTS: MCPServerConnection[] = []; constant HISTORY_STUB (line 298) | const HISTORY_STUB = { constant RECENT_SCROLL_REPIN_WINDOW_MS (line 305) | const RECENT_SCROLL_REPIN_WINDOW_MS = 3000; function median (line 311) | function median(values: number[]): number { function TranscriptModeFooter (line 321) | function TranscriptModeFooter(t0) { function TranscriptSearchBar (line 368) | function TranscriptSearchBar({ constant TITLE_ANIMATION_FRAMES (line 473) | const TITLE_ANIMATION_FRAMES = ['⠂', '⠐']; constant TITLE_STATIC_PREFIX (line 474) | const TITLE_STATIC_PREFIX = '✳'; constant TITLE_ANIMATION_INTERVAL_MS (line 475) | const TITLE_ANIMATION_INTERVAL_MS = 960; function AnimatedTerminalTitle (line 484) | function AnimatedTerminalTitle(t0) { function _temp2 (line 520) | function _temp2(setFrame_0) { function _temp (line 523) | function _temp(f) { type Props (line 526) | type Props = { type Screen (line 571) | type Screen = 'prompt' | 'transcript'; function REPL (line 572) | function REPL({ FILE: restored-src/src/screens/ResumeConversation.tsx function parsePrIdentifier (line 36) | function parsePrIdentifier(value: string): number | null { type Props (line 47) | type Props = { function ResumeConversation (line 67) | function ResumeConversation({ function NoConversationsMessage (line 316) | function NoConversationsMessage() { function _temp (line 337) | function _temp() { function CrossProjectMessage (line 340) | function CrossProjectMessage(t0) { function _temp3 (line 392) | function _temp3() { function _temp2 (line 396) | function _temp2() { FILE: restored-src/src/server/createDirectConnectSession.ts class DirectConnectError (line 11) | class DirectConnectError extends Error { method constructor (line 12) | constructor(message: string) { function createDirectConnectSession (line 26) | async function createDirectConnectSession({ FILE: restored-src/src/server/directConnectManager.ts type DirectConnectConfig (line 13) | type DirectConnectConfig = { type DirectConnectCallbacks (line 20) | type DirectConnectCallbacks = { function isStdoutMessage (line 31) | function isStdoutMessage(value: unknown): value is StdoutMessage { class DirectConnectSessionManager (line 40) | class DirectConnectSessionManager { method constructor (line 45) | constructor(config: DirectConnectConfig, callbacks: DirectConnectCallb... method connect (line 50) | connect(): void { method sendMessage (line 125) | sendMessage(content: RemoteMessageContent): boolean { method respondToPermissionRequest (line 144) | respondToPermissionRequest( method sendInterrupt (line 172) | sendInterrupt(): void { method sendErrorResponse (line 188) | private sendErrorResponse(requestId: string, error: string): void { method disconnect (line 203) | disconnect(): void { method isConnected (line 210) | isConnected(): boolean { FILE: restored-src/src/server/types.ts type ServerConfig (line 13) | type ServerConfig = { type SessionState (line 26) | type SessionState = type SessionInfo (line 33) | type SessionInfo = { type SessionIndexEntry (line 46) | type SessionIndexEntry = { type SessionIndex (line 57) | type SessionIndex = Record FILE: restored-src/src/services/AgentSummary/agentSummary.ts constant SUMMARY_INTERVAL_MS (line 26) | const SUMMARY_INTERVAL_MS = 30_000 function buildSummaryPrompt (line 28) | function buildSummaryPrompt(previousSummary: string | null): string { function startAgentSummarization (line 46) | function startAgentSummarization( FILE: restored-src/src/services/MagicDocs/magicDocs.ts constant MAGIC_DOC_HEADER_PATTERN (line 33) | const MAGIC_DOC_HEADER_PATTERN = /^#\s*MAGIC\s+DOC:\s*(.+)$/im constant ITALICS_PATTERN (line 35) | const ITALICS_PATTERN = /^[_*](.+?)[_*]\s*$/m type MagicDocInfo (line 38) | type MagicDocInfo = { function clearTrackedMagicDocs (line 44) | function clearTrackedMagicDocs(): void { function detectMagicDocHeader (line 52) | function detectMagicDocHeader( function registerMagicDoc (line 87) | function registerMagicDoc(filePath: string): void { function getMagicDocsAgent (line 99) | function getMagicDocsAgent(): BuiltInAgentDefinition { function updateMagicDoc (line 114) | async function updateMagicDoc( function initMagicDocs (line 242) | async function initMagicDocs(): Promise { FILE: restored-src/src/services/MagicDocs/prompts.ts function getUpdatePromptTemplate (line 8) | function getUpdatePromptTemplate(): string { function loadMagicDocsPrompt (line 66) | async function loadMagicDocsPrompt(): Promise { function substituteVariables (line 81) | function substituteVariables( function buildMagicDocsUpdatePrompt (line 98) | async function buildMagicDocsUpdatePrompt( FILE: restored-src/src/services/PromptSuggestion/promptSuggestion.ts type PromptVariant (line 31) | type PromptVariant = 'user_intent' | 'stated_intent' function getPromptVariant (line 33) | function getPromptVariant(): PromptVariant { function shouldEnablePromptSuggestion (line 37) | function shouldEnablePromptSuggestion(): boolean { function abortPromptSuggestion (line 96) | function abortPromptSuggestion(): void { function getSuggestionSuppressReason (line 107) | function getSuggestionSuppressReason(appState: AppState): string | null { function tryGenerateSuggestion (line 125) | async function tryGenerateSuggestion( function executePromptSuggestion (line 184) | async function executePromptSuggestion( constant MAX_PARENT_UNCACHED_TOKENS (line 239) | const MAX_PARENT_UNCACHED_TOKENS = 10_000 function getParentCacheSuppressReason (line 241) | function getParentCacheSuppressReason( constant SUGGESTION_PROMPT (line 258) | const SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might... constant SUGGESTION_PROMPTS (line 289) | const SUGGESTION_PROMPTS: Record = { function generateSuggestion (line 294) | async function generateSuggestion( function shouldFilterSuggestion (line 354) | function shouldFilterSuggestion( function logSuggestionOutcome (line 462) | function logSuggestionOutcome( function logSuggestionSuppressed (line 499) | function logSuggestionSuppressed( FILE: restored-src/src/services/PromptSuggestion/speculation.ts constant MAX_SPECULATION_TURNS (line 58) | const MAX_SPECULATION_TURNS = 20 constant MAX_SPECULATION_MESSAGES (line 59) | const MAX_SPECULATION_MESSAGES = 100 constant WRITE_TOOLS (line 61) | const WRITE_TOOLS = new Set(['Edit', 'Write', 'NotebookEdit']) constant SAFE_READ_ONLY_TOOLS (line 62) | const SAFE_READ_ONLY_TOOLS = new Set([ function safeRemoveOverlay (line 72) | function safeRemoveOverlay(overlayPath: string): void { function getOverlayPath (line 80) | function getOverlayPath(id: string): string { function denySpeculation (line 84) | function denySpeculation( function copyOverlayToMain (line 99) | async function copyOverlayToMain( type ActiveSpeculationState (line 119) | type ActiveSpeculationState = Extract< function logSpeculation (line 124) | function logSpeculation( function countToolsInMessages (line 155) | function countToolsInMessages(messages: Message[]): number { function getBoundaryTool (line 166) | function getBoundaryTool( function getBoundaryDetail (line 181) | function getBoundaryDetail( function isUserMessageWithArrayContent (line 197) | function isUserMessageWithArrayContent( function prepareMessagesForInjection (line 203) | function prepareMessagesForInjection(messages: Message[]): Message[] { function createSpeculationFeedbackMessage (line 273) | function createSpeculationFeedbackMessage( function updateActiveSpeculationState (line 310) | function updateActiveSpeculationState( function resetSpeculationState (line 330) | function resetSpeculationState(setAppState: SetAppState): void { function isSpeculationEnabled (line 337) | function isSpeculationEnabled(): boolean { function generatePipelinedSuggestion (line 345) | async function generatePipelinedSuggestion( function startSpeculation (line 402) | async function startSpeculation( function acceptSpeculation (line 717) | async function acceptSpeculation( function abortSpeculation (line 802) | function abortSpeculation(setAppState: SetAppState): void { function handleSpeculationAccept (line 835) | async function handleSpeculationAccept( FILE: restored-src/src/services/SessionMemory/prompts.ts constant MAX_SECTION_LENGTH (line 8) | const MAX_SECTION_LENGTH = 2000 constant MAX_TOTAL_SESSION_MEMORY_TOKENS (line 9) | const MAX_TOTAL_SESSION_MEMORY_TOKENS = 12000 constant DEFAULT_SESSION_MEMORY_TEMPLATE (line 11) | const DEFAULT_SESSION_MEMORY_TEMPLATE = ` function getDefaultUpdatePrompt (line 43) | function getDefaultUpdatePrompt(): string { function loadSessionMemoryTemplate (line 86) | async function loadSessionMemoryTemplate(): Promise { function loadSessionMemoryPrompt (line 111) | async function loadSessionMemoryPrompt(): Promise { function analyzeSectionSizes (line 134) | function analyzeSectionSizes(content: string): Record { function generateSectionReminders (line 164) | function generateSectionReminders( function substituteVariables (line 201) | function substituteVariables( function isSessionMemoryEmpty (line 220) | async function isSessionMemoryEmpty(content: string): Promise { function buildSessionMemoryUpdatePrompt (line 226) | async function buildSessionMemoryUpdatePrompt( function truncateSessionMemoryForCompact (line 256) | function truncateSessionMemoryForCompact(content: string): { function flushSessionSection (line 298) | function flushSessionSection( FILE: restored-src/src/services/SessionMemory/sessionMemory.ts function isSessionMemoryGateEnabled (line 80) | function isSessionMemoryGateEnabled(): boolean { function getSessionMemoryRemoteConfig (line 88) | function getSessionMemoryRemoteConfig(): Partial { function resetLastMemoryMessageUuid (line 104) | function resetLastMemoryMessageUuid(): void { function countToolCallsSince (line 108) | function countToolCallsSince( function shouldExtractMemory (line 134) | function shouldExtractMemory(messages: Message[]): boolean { function setupSessionMemoryFile (line 183) | async function setupSessionMemoryFile( function initSessionMemory (line 357) | function initSessionMemory(): void { type ManualExtractionResult (line 377) | type ManualExtractionResult = { function manuallyExtractSessionMemory (line 387) | async function manuallyExtractSessionMemory( function createMemoryFileCanUseTool (line 460) | function createMemoryFileCanUseTool(memoryPath: string): CanUseToolFn { function updateLastSummarizedMessageIdIfSafe (line 488) | function updateLastSummarizedMessageIdIfSafe(messages: Message[]): void { FILE: restored-src/src/services/SessionMemory/sessionMemoryUtils.ts constant EXTRACTION_WAIT_TIMEOUT_MS (line 12) | const EXTRACTION_WAIT_TIMEOUT_MS = 15000 constant EXTRACTION_STALE_THRESHOLD_MS (line 13) | const EXTRACTION_STALE_THRESHOLD_MS = 60000 // 1 minute type SessionMemoryConfig (line 18) | type SessionMemoryConfig = { constant DEFAULT_SESSION_MEMORY_CONFIG (line 32) | const DEFAULT_SESSION_MEMORY_CONFIG: SessionMemoryConfig = { function getLastSummarizedMessageId (line 58) | function getLastSummarizedMessageId(): string | undefined { function setLastSummarizedMessageId (line 65) | function setLastSummarizedMessageId( function markExtractionStarted (line 74) | function markExtractionStarted(): void { function markExtractionCompleted (line 81) | function markExtractionCompleted(): void { function waitForSessionMemoryExtraction (line 89) | async function waitForSessionMemoryExtraction(): Promise { function getSessionMemoryContent (line 110) | async function getSessionMemoryContent(): Promise { function setSessionMemoryConfig (line 131) | function setSessionMemoryConfig( function getSessionMemoryConfig (line 143) | function getSessionMemoryConfig(): SessionMemoryConfig { function recordExtractionTokenCount (line 151) | function recordExtractionTokenCount(currentTokenCount: number): void { function isSessionMemoryInitialized (line 158) | function isSessionMemoryInitialized(): boolean { function markSessionMemoryInitialized (line 165) | function markSessionMemoryInitialized(): void { function hasMetInitializationThreshold (line 173) | function hasMetInitializationThreshold( function hasMetUpdateThreshold (line 184) | function hasMetUpdateThreshold(currentTokenCount: number): boolean { function getToolCallsBetweenUpdates (line 194) | function getToolCallsBetweenUpdates(): number { function resetSessionMemoryState (line 201) | function resetSessionMemoryState(): void { FILE: restored-src/src/services/analytics/config.ts function isAnalyticsDisabled (line 19) | function isAnalyticsDisabled(): boolean { function isFeedbackSurveyDisabled (line 36) | function isFeedbackSurveyDisabled(): boolean { FILE: restored-src/src/services/analytics/datadog.ts constant DATADOG_LOGS_ENDPOINT (line 12) | const DATADOG_LOGS_ENDPOINT = constant DATADOG_CLIENT_TOKEN (line 14) | const DATADOG_CLIENT_TOKEN = 'pubbbf48e6d78dae54bceaa4acf463299bf' constant DEFAULT_FLUSH_INTERVAL_MS (line 15) | const DEFAULT_FLUSH_INTERVAL_MS = 15000 constant MAX_BATCH_SIZE (line 16) | const MAX_BATCH_SIZE = 100 constant NETWORK_TIMEOUT_MS (line 17) | const NETWORK_TIMEOUT_MS = 5000 constant DATADOG_ALLOWED_EVENTS (line 19) | const DATADOG_ALLOWED_EVENTS = new Set([ constant TAG_FIELDS (line 66) | const TAG_FIELDS = [ function camelToSnakeCase (line 85) | function camelToSnakeCase(str: string): string { type DatadogLog (line 89) | type DatadogLog = { function flushLogs (line 102) | async function flushLogs(): Promise { function scheduleFlush (line 121) | function scheduleFlush(): void { function shutdownDatadog (line 151) | async function shutdownDatadog(): Promise { function trackDatadogEvent (line 160) | async function trackDatadogEvent( constant NUM_USER_BUCKETS (line 281) | const NUM_USER_BUCKETS = 30 function getFlushIntervalMs (line 301) | function getFlushIntervalMs(): number { FILE: restored-src/src/services/analytics/firstPartyEventLogger.ts type EventSamplingConfig (line 32) | type EventSamplingConfig = { constant EVENT_SAMPLING_CONFIG_NAME (line 38) | const EVENT_SAMPLING_CONFIG_NAME = 'tengu_event_sampling_config' function getEventSamplingConfig (line 43) | function getEventSamplingConfig(): EventSamplingConfig { function shouldSampleEvent (line 57) | function shouldSampleEvent(eventName: string): number | null { constant BATCH_CONFIG_NAME (line 87) | const BATCH_CONFIG_NAME = 'tengu_1p_event_batch_config' type BatchConfig (line 88) | type BatchConfig = { function getBatchConfig (line 97) | function getBatchConfig(): BatchConfig { function shutdown1PEventLogging (line 116) | async function shutdown1PEventLogging(): Promise { function is1PEventLoggingEnabled (line 141) | function is1PEventLoggingEnabled(): boolean { function logEventTo1PAsync (line 156) | async function logEventTo1PAsync( function logEventTo1P (line 216) | function logEventTo1P( type GrowthBookExperimentData (line 235) | type GrowthBookExperimentData = { function getEnvironmentForGrowthBook (line 245) | function getEnvironmentForGrowthBook(): string { function logGrowthBookExperimentTo1P (line 255) | function logGrowthBookExperimentTo1P( constant DEFAULT_LOGS_EXPORT_INTERVAL_MS (line 300) | const DEFAULT_LOGS_EXPORT_INTERVAL_MS = 10000 constant DEFAULT_MAX_EXPORT_BATCH_SIZE (line 301) | const DEFAULT_MAX_EXPORT_BATCH_SIZE = 200 constant DEFAULT_MAX_QUEUE_SIZE (line 302) | const DEFAULT_MAX_QUEUE_SIZE = 8192 function initialize1PEventLogging (line 312) | function initialize1PEventLogging(): void { function reinitialize1PEventLoggingIfConfigChanged (line 407) | async function reinitialize1PEventLoggingIfConfigChanged(): Promise { FILE: restored-src/src/services/analytics/firstPartyEventLoggingExporter.ts constant BATCH_UUID (line 38) | const BATCH_UUID = randomUUID() constant FILE_PREFIX (line 41) | const FILE_PREFIX = '1p_failed_events.' function getStorageDir (line 44) | function getStorageDir(): string { type FirstPartyEventLoggingEvent (line 49) | type FirstPartyEventLoggingEvent = { type FirstPartyEventLoggingPayload (line 54) | type FirstPartyEventLoggingPayload = { class FirstPartyEventLoggingExporter (line 73) | class FirstPartyEventLoggingExporter implements LogRecordExporter { method constructor (line 94) | constructor( method getQueuedEventCount (line 142) | async getQueuedEventCount(): Promise { method getCurrentBatchFilePath (line 148) | private getCurrentBatchFilePath(): string { method loadEventsFromFile (line 155) | private async loadEventsFromFile( method loadEventsFromCurrentBatch (line 165) | private async loadEventsFromCurrentBatch(): Promise< method saveEventsToFile (line 171) | private async saveEventsToFile( method appendEventsToFile (line 194) | private async appendEventsToFile( method deleteFile (line 210) | private async deleteFile(filePath: string): Promise { method retryPreviousBatches (line 220) | private async retryPreviousBatches(): Promise { method retryFileInBackground (line 242) | private async retryFileInBackground(filePath: string): Promise { method export (line 277) | async export( method doExport (line 306) | private async doExport( method sendEventsInBatches (line 379) | private async sendEventsInBatches( method queueFailedEvents (line 430) | private async queueFailedEvents( method scheduleBackoffRetry (line 445) | private scheduleBackoffRetry(): void { method retryFailedEvents (line 469) | private async retryFailedEvents(): Promise { method resetBackoff (line 519) | private resetBackoff(): void { method sendBatchWithRetry (line 527) | private async sendBatchWithRetry( method logSuccess (line 617) | private logSuccess( method hrTimeToDate (line 630) | private hrTimeToDate(hrTime: HrTime): Date { method transformLogsToEvents (line 635) | private transformLogsToEvents( method shutdown (line 764) | async shutdown(): Promise { method forceFlush (line 773) | async forceFlush(): Promise { function getAxiosErrorContext (line 781) | function getAxiosErrorContext(error: unknown): string { FILE: restored-src/src/services/analytics/growthbook.ts type GrowthBookUserAttributes (line 32) | type GrowthBookUserAttributes = { type MalformedFeatureDefinition (line 53) | type MalformedFeatureDefinition = { type StoredExperimentData (line 70) | type StoredExperimentData = { type GrowthBookRefreshListener (line 106) | type GrowthBookRefreshListener = () => void | Promise function callSafe (line 110) | function callSafe(listener: GrowthBookRefreshListener): void { function onGrowthBookRefresh (line 139) | function onGrowthBookRefresh( function getEnvOverrides (line 170) | function getEnvOverrides(): Record | null { function hasGrowthBookEnvOverride (line 199) | function hasGrowthBookEnvOverride(feature: string): boolean { function getConfigOverrides (line 211) | function getConfigOverrides(): Record | undefined { function getAllGrowthBookFeatures (line 227) | function getAllGrowthBookFeatures(): Record { function getGrowthBookConfigOverrides (line 234) | function getGrowthBookConfigOverrides(): Record { function setGrowthBookConfigOverride (line 245) | function setGrowthBookConfigOverride( function clearGrowthBookConfigOverrides (line 273) | function clearGrowthBookConfigOverrides(): void { function logExposureForFeature (line 296) | function logExposureForFeature(feature: string): void { function processRemoteEvalPayload (line 327) | async function processRemoteEvalPayload( function syncRemoteEvalToDisk (line 407) | function syncRemoteEvalToDisk(): void { function isGrowthBookEnabled (line 422) | function isGrowthBookEnabled(): boolean { function getApiBaseUrlHost (line 439) | function getApiBaseUrlHost(): string | undefined { function getUserAttributes (line 454) | function getUserAttributes(): GrowthBookUserAttributes { function getFeatureValueInternal (line 670) | async function getFeatureValueInternal( function getFeatureValue_DEPRECATED (line 719) | async function getFeatureValue_DEPRECATED( function getFeatureValue_CACHED_MAY_BE_STALE (line 734) | function getFeatureValue_CACHED_MAY_BE_STALE( function getFeatureValue_CACHED_WITH_REFRESH (line 783) | function getFeatureValue_CACHED_WITH_REFRESH( function checkStatsigFeatureGate_CACHED_MAY_BE_STALE (line 804) | function checkStatsigFeatureGate_CACHED_MAY_BE_STALE( function checkSecurityRestrictionGate (line 851) | async function checkSecurityRestrictionGate( function checkGate_CACHED_OR_BLOCKING (line 904) | async function checkGate_CACHED_OR_BLOCKING( function refreshGrowthBookAfterAuthChange (line 943) | function refreshGrowthBookAfterAuthChange(): void { function resetGrowthBook (line 987) | function resetGrowthBook(): void { constant GROWTHBOOK_REFRESH_INTERVAL_MS (line 1013) | const GROWTHBOOK_REFRESH_INTERVAL_MS = function refreshGrowthBookFeatures (line 1027) | async function refreshGrowthBookFeatures(): Promise { function setupPeriodicGrowthBookRefresh (line 1087) | function setupPeriodicGrowthBookRefresh(): void { function stopPeriodicGrowthBookRefresh (line 1115) | function stopPeriodicGrowthBookRefresh(): void { function getDynamicConfig_BLOCKS_ON_INIT (line 1136) | async function getDynamicConfig_BLOCKS_ON_INIT( function getDynamicConfig_CACHED_MAY_BE_STALE (line 1150) | function getDynamicConfig_CACHED_MAY_BE_STALE( FILE: restored-src/src/services/analytics/index.ts type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS (line 19) | type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS = never type AnalyticsMetadata_I_VERIFIED_THIS_IS_PII_TAGGED (line 33) | type AnalyticsMetadata_I_VERIFIED_THIS_IS_PII_TAGGED = never function stripProtoFields (line 45) | function stripProtoFields( type LogEventMetadata (line 61) | type LogEventMetadata = { [key: string]: boolean | number | undefined } type QueuedEvent (line 63) | type QueuedEvent = { type AnalyticsSink (line 72) | type AnalyticsSink = { function attachAnalyticsSink (line 95) | function attachAnalyticsSink(newSink: AnalyticsSink): void { function logEvent (line 133) | function logEvent( function logEventAsync (line 154) | async function logEventAsync( function _resetForTesting (line 170) | function _resetForTesting(): void { FILE: restored-src/src/services/analytics/metadata.ts type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS (line 57) | type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS = never function sanitizeToolNameForAnalytics (line 70) | function sanitizeToolNameForAnalytics( function isToolDetailsLoggingEnabled (line 86) | function isToolDetailsLoggingEnabled(): boolean { function isAnalyticsToolDetailsLoggingEnabled (line 102) | function isAnalyticsToolDetailsLoggingEnabled( constant BUILTIN_MCP_SERVER_NAMES (line 129) | const BUILTIN_MCP_SERVER_NAMES: ReadonlySet = new Set( function mcpToolDetailsForAnalytics (line 145) | function mcpToolDetailsForAnalytics( function extractMcpToolDetails (line 176) | function extractMcpToolDetails(toolName: string): function extractSkillName (line 215) | function extractSkillName( constant TOOL_INPUT_STRING_TRUNCATE_AT (line 236) | const TOOL_INPUT_STRING_TRUNCATE_AT = 512 constant TOOL_INPUT_STRING_TRUNCATE_TO (line 237) | const TOOL_INPUT_STRING_TRUNCATE_TO = 128 constant TOOL_INPUT_MAX_JSON_CHARS (line 238) | const TOOL_INPUT_MAX_JSON_CHARS = 4 * 1024 constant TOOL_INPUT_MAX_COLLECTION_ITEMS (line 239) | const TOOL_INPUT_MAX_COLLECTION_ITEMS = 20 constant TOOL_INPUT_MAX_DEPTH (line 240) | const TOOL_INPUT_MAX_DEPTH = 2 function truncateToolInputValue (line 242) | function truncateToolInputValue(value: unknown, depth = 0): unknown { function extractToolInputForTelemetry (line 291) | function extractToolInputForTelemetry( constant MAX_FILE_EXTENSION_LENGTH (line 311) | const MAX_FILE_EXTENSION_LENGTH = 10 function getFileExtensionForAnalytics (line 323) | function getFileExtensionForAnalytics( constant FILE_COMMANDS (line 340) | const FILE_COMMANDS = new Set([ constant COMPOUND_OPERATOR_REGEX (line 361) | const COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/ constant WHITESPACE_REGEX (line 364) | const WHITESPACE_REGEX = /\s+/ function getFileExtensionsFromBashCommand (line 372) | function getFileExtensionsFromBashCommand( type EnvContext (line 417) | type EnvContext = { type ProcessMetrics (line 457) | type ProcessMetrics = { type EventMetadata (line 472) | type EventMetadata = { type EnrichMetadataOptions (line 501) | type EnrichMetadataOptions = { function getAgentIdentification (line 514) | function getAgentIdentification(): { function buildProcessMetrics (line 648) | function buildProcessMetrics(): ProcessMetrics | undefined { function getEventMetadata (line 693) | async function getEventMetadata( type FirstPartyEventLoggingCoreMetadata (line 749) | type FirstPartyEventLoggingCoreMetadata = { type FirstPartyEventLoggingMetadata (line 771) | type FirstPartyEventLoggingMetadata = { function to1PEventFormat (line 796) | function to1PEventFormat( FILE: restored-src/src/services/analytics/sink.ts type LogEventMetadata (line 18) | type LogEventMetadata = { [key: string]: boolean | number | undefined } constant DATADOG_GATE_NAME (line 20) | const DATADOG_GATE_NAME = 'tengu_log_datadog_events' function shouldTrackDatadog (line 29) | function shouldTrackDatadog(): boolean { function logEventImpl (line 48) | function logEventImpl(eventName: string, metadata: LogEventMetadata): vo... function logEventAsyncImpl (line 80) | function logEventAsyncImpl( function initializeAnalyticsGates (line 96) | function initializeAnalyticsGates(): void { function initializeAnalyticsSink (line 109) | function initializeAnalyticsSink(): void { FILE: restored-src/src/services/analytics/sinkKillswitch.ts constant SINK_KILLSWITCH_CONFIG_NAME (line 4) | const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric' type SinkName (line 6) | type SinkName = 'datadog' | 'firstParty' function isSinkKilled (line 18) | function isSinkKilled(sink: SinkName): boolean { FILE: restored-src/src/services/api/adminRequests.ts type AdminRequestType (line 5) | type AdminRequestType = 'limit_increase' | 'seat_upgrade' type AdminRequestStatus (line 7) | type AdminRequestStatus = 'pending' | 'approved' | 'dismissed' type AdminRequestSeatUpgradeDetails (line 9) | type AdminRequestSeatUpgradeDetails = { type AdminRequestCreateParams (line 14) | type AdminRequestCreateParams = type AdminRequest (line 24) | type AdminRequest = { function createAdminRequest (line 49) | async function createAdminRequest( function getMyAdminRequests (line 71) | async function getMyAdminRequests( type AdminRequestEligibilityResponse (line 94) | type AdminRequestEligibilityResponse = { function checkAdminRequestEligibility (line 102) | async function checkAdminRequestEligibility( FILE: restored-src/src/services/api/bootstrap.ts type BootstrapResponse (line 40) | type BootstrapResponse = z.infer { function fetchBootstrapData (line 114) | async function fetchBootstrapData(): Promise { FILE: restored-src/src/services/api/claude.ts type JsonValue (line 260) | type JsonValue = string | number | boolean | null | JsonObject | JsonArray type JsonObject (line 261) | type JsonObject = { [key: string]: JsonValue } type JsonArray (line 262) | type JsonArray = JsonValue[] function getExtraBodyParams (line 272) | function getExtraBodyParams(betaHeaders?: string[]): JsonObject { function getPromptCachingEnabled (line 333) | function getPromptCachingEnabled(model: string): boolean { function getCacheControl (line 358) | function getCacheControl({ function should1hCacheTTL (line 393) | function should1hCacheTTL(querySource?: QuerySource): boolean { function configureEffortParams (line 440) | function configureEffortParams( type TaskBudgetParam (line 473) | type TaskBudgetParam = { function configureTaskBudgetParams (line 479) | function configureTaskBudgetParams( function getAPIMetadata (line 503) | function getAPIMetadata() { function verifyApiKey (line 530) | async function verifyApiKey( function userMessageToMessageParam (line 588) | function userMessageToMessageParam( function assistantMessageToMessageParam (line 633) | function assistantMessageToMessageParam( type Options (line 676) | type Options = { function queryModelWithoutStreaming (line 709) | async function queryModelWithoutStreaming({ function shouldDeferLspTool (line 786) | function shouldDeferLspTool(tool: Tool): boolean { function getNonstreamingFallbackTimeoutMs (line 807) | function getNonstreamingFallbackTimeoutMs(): number { function getPreviousRequestIdFromMessages (line 928) | function getPreviousRequestIdFromMessages( function isMedia (line 940) | function isMedia( function isToolResult (line 946) | function isToolResult( function stripExcessMediaItems (line 956) | function stripExcessMediaItems( function releaseStreamResources (line 1519) | function releaseStreamResources(): void { function clearStreamIdleTimers (line 1885) | function clearStreamIdleTimers(): void { function resetStreamIdleTimer (line 1895) | function resetStreamIdleTimer(): void { function cleanupStream (line 2898) | function cleanupStream( function updateUsage (line 2924) | function updateUsage( function accumulateUsage (line 2993) | function accumulateUsage( function isToolResultBlock (line 3040) | function isToolResultBlock( type CachedMCEditsBlock (line 3052) | type CachedMCEditsBlock = { type CachedMCPinnedEdits (line 3057) | type CachedMCPinnedEdits = { function addCacheBreakpoints (line 3063) | function addCacheBreakpoints( function buildSystemPromptBlocks (line 3213) | function buildSystemPromptBlocks( type HaikuOptions (line 3239) | type HaikuOptions = Omit function queryHaiku (line 3241) | async function queryHaiku({ type QueryWithModelOptions (line 3293) | type QueryWithModelOptions = Omit function queryWithModel (line 3300) | async function queryWithModel({ constant MAX_NON_STREAMING_TOKENS (line 3354) | const MAX_NON_STREAMING_TOKENS = 64_000 function adjustParamsForNonStreaming (line 3364) | function adjustParamsForNonStreaming< function isMaxTokensCapEnabled (line 3394) | function isMaxTokensCapEnabled(): boolean { function getMaxOutputTokensForModel (line 3399) | function getMaxOutputTokensForModel(model: string): number { FILE: restored-src/src/services/api/client.ts function createStderrLogger (line 73) | function createStderrLogger(): ClientOptions['logger'] { function getAnthropicClient (line 88) | async function getAnthropicClient({ function configureApiKeyHeaders (line 318) | async function configureApiKeyHeaders( function getCustomHeaders (line 330) | function getCustomHeaders(): Record { constant CLIENT_REQUEST_ID_HEADER (line 356) | const CLIENT_REQUEST_ID_HEADER = 'x-client-request-id' function buildFetch (line 358) | function buildFetch( FILE: restored-src/src/services/api/dumpPrompts.ts function hashString (line 9) | function hashString(str: string): string { constant MAX_CACHED_REQUESTS (line 14) | const MAX_CACHED_REQUESTS = 5 type DumpState (line 17) | type DumpState = { function getLastApiRequests (line 29) | function getLastApiRequests(): Array<{ function clearApiRequestCache (line 36) | function clearApiRequestCache(): void { function clearDumpState (line 40) | function clearDumpState(agentIdOrSessionId: string): void { function clearAllDumpState (line 44) | function clearAllDumpState(): void { function addApiRequestToCache (line 48) | function addApiRequestToCache(requestData: unknown): void { function getDumpPromptsPath (line 59) | function getDumpPromptsPath(agentIdOrSessionId?: string): string { function appendToFile (line 67) | function appendToFile(filePath: string, entries: string[]): void { function initFingerprint (line 74) | function initFingerprint(req: Record): string { function dumpRequest (line 90) | function dumpRequest( function createDumpPromptsFetch (line 146) | function createDumpPromptsFetch( FILE: restored-src/src/services/api/emptyUsage.ts constant EMPTY_USAGE (line 8) | const EMPTY_USAGE: Readonly = { FILE: restored-src/src/services/api/errorUtils.ts constant SSL_ERROR_CODES (line 5) | const SSL_ERROR_CODES = new Set([ type ConnectionErrorDetails (line 31) | type ConnectionErrorDetails = { function extractConnectionErrorDetails (line 42) | function extractConnectionErrorDetails( function getSSLErrorHint (line 94) | function getSSLErrorHint(error: unknown): string | null { function sanitizeMessageHTML (line 107) | function sanitizeMessageHTML(message: string): string { function sanitizeAPIError (line 122) | function sanitizeAPIError(apiError: APIError): string { type NestedAPIError (line 144) | type NestedAPIError = { function hasNestedError (line 151) | function hasNestedError(value: unknown): value is NestedAPIError { function extractNestedErrorMessage (line 169) | function extractNestedErrorMessage(error: APIError): string | null { function formatAPIError (line 200) | function formatAPIError(error: APIError): string { FILE: restored-src/src/services/api/errors.ts constant API_ERROR_MESSAGE_PREFIX (line 54) | const API_ERROR_MESSAGE_PREFIX = 'API Error' function startsWithApiErrorPrefix (line 56) | function startsWithApiErrorPrefix(text: string): boolean { constant PROMPT_TOO_LONG_ERROR_MESSAGE (line 62) | const PROMPT_TOO_LONG_ERROR_MESSAGE = 'Prompt is too long' function isPromptTooLongMessage (line 64) | function isPromptTooLongMessage(msg: AssistantMessage): boolean { function parsePromptTooLongTokenCounts (line 85) | function parsePromptTooLongTokenCounts(rawMessage: string): { function getPromptTooLongTokenGap (line 104) | function getPromptTooLongTokenGap( function isMediaSizeError (line 133) | function isMediaSizeError(raw: string): boolean { function isMediaSizeErrorMessage (line 147) | function isMediaSizeErrorMessage(msg: AssistantMessage): boolean { constant CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE (line 154) | const CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = 'Credit balance is too low' constant INVALID_API_KEY_ERROR_MESSAGE (line 155) | const INVALID_API_KEY_ERROR_MESSAGE = 'Not logged in · Please run /login' constant INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL (line 156) | const INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL = constant ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH (line 158) | const ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH = constant ORG_DISABLED_ERROR_MESSAGE_ENV_KEY (line 160) | const ORG_DISABLED_ERROR_MESSAGE_ENV_KEY = constant TOKEN_REVOKED_ERROR_MESSAGE (line 162) | const TOKEN_REVOKED_ERROR_MESSAGE = constant CCR_AUTH_ERROR_MESSAGE (line 164) | const CCR_AUTH_ERROR_MESSAGE = constant REPEATED_529_ERROR_MESSAGE (line 166) | const REPEATED_529_ERROR_MESSAGE = 'Repeated 529 Overloaded errors' constant CUSTOM_OFF_SWITCH_MESSAGE (line 167) | const CUSTOM_OFF_SWITCH_MESSAGE = constant API_TIMEOUT_ERROR_MESSAGE (line 169) | const API_TIMEOUT_ERROR_MESSAGE = 'Request timed out' function getPdfTooLargeErrorMessage (line 170) | function getPdfTooLargeErrorMessage(): string { function getPdfPasswordProtectedErrorMessage (line 176) | function getPdfPasswordProtectedErrorMessage(): string { function getPdfInvalidErrorMessage (line 181) | function getPdfInvalidErrorMessage(): string { function getImageTooLargeErrorMessage (line 186) | function getImageTooLargeErrorMessage(): string { function getRequestTooLargeErrorMessage (line 191) | function getRequestTooLargeErrorMessage(): string { constant OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE (line 197) | const OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE = function getTokenRevokedErrorMessage (line 200) | function getTokenRevokedErrorMessage(): string { function getOauthOrgNotAllowedErrorMessage (line 206) | function getOauthOrgNotAllowedErrorMessage(): string { function isCCRMode (line 217) | function isCCRMode(): boolean { function logToolUseToolResultMismatch (line 222) | function logToolUseToolResultMismatch( function isValidAPIMessage (line 387) | function isValidAPIMessage(value: unknown): value is BetaMessage { type AmazonError (line 401) | type AmazonError = { function extractUnknownErrorFormat (line 411) | function extractUnknownErrorFormat(value: unknown): string | undefined { function getAssistantMessageFromError (line 425) | function getAssistantMessageFromError( function get3PModelFallbackSuggestion (line 940) | function get3PModelFallbackSuggestion(model: string): string | undefined { function classifyAPIError (line 965) | function classifyAPIError(error: unknown): string { function categorizeRetryableAPIError (line 1163) | function categorizeRetryableAPIError( function getErrorMessageIfRefusal (line 1184) | function getErrorMessageIfRefusal( FILE: restored-src/src/services/api/filesApi.ts constant FILES_API_BETA_HEADER (line 27) | const FILES_API_BETA_HEADER = 'files-api-2025-04-14,oauth-2025-04-20' constant ANTHROPIC_VERSION (line 28) | const ANTHROPIC_VERSION = '2023-06-01' function getDefaultApiBaseUrl (line 32) | function getDefaultApiBaseUrl(): string { function logDebugError (line 40) | function logDebugError(message: string): void { function logDebug (line 44) | function logDebug(message: string): void { type File (line 52) | type File = { type FilesApiConfig (line 60) | type FilesApiConfig = { type DownloadResult (line 72) | type DownloadResult = { constant MAX_RETRIES (line 80) | const MAX_RETRIES = 3 constant BASE_DELAY_MS (line 81) | const BASE_DELAY_MS = 500 constant MAX_FILE_SIZE_BYTES (line 82) | const MAX_FILE_SIZE_BYTES = 500 * 1024 * 1024 // 500MB type RetryResult (line 87) | type RetryResult = { done: true; value: T } | { done: false; error?: ... function retryWithBackoff (line 97) | async function retryWithBackoff( function downloadFile (line 132) | async function downloadFile( function buildDownloadPath (line 187) | function buildDownloadPath( function downloadAndSaveFile (line 219) | async function downloadAndSaveFile( constant DEFAULT_CONCURRENCY (line 270) | const DEFAULT_CONCURRENCY = 5 function parallelWithLimit (line 280) | async function parallelWithLimit( function downloadSessionFiles (line 317) | async function downloadSessionFiles( type UploadResult (line 354) | type UploadResult = function uploadFile (line 378) | async function uploadFile( class UploadNonRetriableError (line 555) | class UploadNonRetriableError extends Error { method constructor (line 556) | constructor(message: string) { function uploadSessionFiles (line 570) | async function uploadSessionFiles( type FileMetadata (line 602) | type FileMetadata = { function listFilesCreatedAfter (line 617) | async function listFilesCreatedAfter( function parseFileSpecs (line 722) | function parseFileSpecs(fileSpecs: string[]): File[] { FILE: restored-src/src/services/api/firstTokenDate.ts function fetchAndStoreClaudeCodeFirstTokenDate (line 12) | async function fetchAndStoreClaudeCodeFirstTokenDate(): Promise { FILE: restored-src/src/services/api/grove.ts constant GROVE_CACHE_EXPIRATION_MS (line 23) | const GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000 type AccountSettings (line 25) | type AccountSettings = { type GroveConfig (line 30) | type GroveConfig = { type ApiResult (line 42) | type ApiResult = { success: true; data: T } | { success: false } function markGroveNoticeViewed (line 90) | async function markGroveNoticeViewed(): Promise { function updateGroveSettings (line 120) | async function updateGroveSettings( function isQualifiedForGrove (line 157) | async function isQualifiedForGrove(): Promise { function fetchAndStoreGroveConfig (line 198) | async function fetchAndStoreGroveConfig(accountId: string): Promise { function calculateShouldShowGrove (line 284) | function calculateShouldShowGrove( function checkGroveForNonInteractive (line 323) | async function checkGroveForNonInteractive(): Promise { FILE: restored-src/src/services/api/logging.ts type GlobalCacheStrategy (line 46) | type GlobalCacheStrategy = 'tool_based' | 'system_prompt' | 'none' function getErrorMessage (line 48) | function getErrorMessage(error: unknown): string { type KnownGateway (line 56) | type KnownGateway = constant GATEWAY_FINGERPRINTS (line 66) | const GATEWAY_FINGERPRINTS: Partial< constant GATEWAY_HOST_SUFFIXES (line 98) | const GATEWAY_HOST_SUFFIXES: Partial> = { function detectGateway (line 107) | function detectGateway({ function getAnthropicEnvMetadata (line 141) | function getAnthropicEnvMetadata() { function getBuildAgeMinutes (line 164) | function getBuildAgeMinutes(): number | undefined { function logAPIQuery (line 171) | function logAPIQuery({ function logAPIError (line 235) | function logAPIError({ function logAPISuccess (line 398) | function logAPISuccess({ function logAPISuccessAndDuration (line 581) | function logAPISuccessAndDuration({ FILE: restored-src/src/services/api/metricsOptOut.ts type MetricsEnabledResponse (line 12) | type MetricsEnabledResponse = { type MetricsStatus (line 16) | type MetricsStatus = { constant CACHE_TTL_MS (line 22) | const CACHE_TTL_MS = 60 * 60 * 1000 constant DISK_CACHE_TTL_MS (line 27) | const DISK_CACHE_TTL_MS = 24 * 60 * 60 * 1000 function _fetchMetricsEnabled (line 33) | async function _fetchMetricsEnabled(): Promise { function _checkMetricsEnabledAPI (line 53) | async function _checkMetricsEnabledAPI(): Promise { function refreshMetricsStatus (line 94) | async function refreshMetricsStatus(): Promise { function checkMetricsEnabled (line 128) | async function checkMetricsEnabled(): Promise { FILE: restored-src/src/services/api/overageCreditGrant.ts type OverageCreditGrantInfo (line 9) | type OverageCreditGrantInfo = { type CachedGrantEntry (line 17) | type CachedGrantEntry = { constant CACHE_TTL_MS (line 22) | const CACHE_TTL_MS = 60 * 60 * 1000 // 1 hour function fetchOverageCreditGrant (line 29) | async function fetchOverageCreditGrant(): Promise { function formatGrantAmount (line 127) | function formatGrantAmount(info: OverageCreditGrantInfo): string | null { FILE: restored-src/src/services/api/promptCacheBreakDetection.ts function getCacheBreakDiffPath (line 19) | function getCacheBreakDiffPath(): string { type PreviousState (line 28) | type PreviousState = { type PendingChanges (line 71) | type PendingChanges = { constant MAX_TRACKED_SOURCES (line 107) | const MAX_TRACKED_SOURCES = 10 constant TRACKED_SOURCE_PREFIXES (line 109) | const TRACKED_SOURCE_PREFIXES = [ constant MIN_CACHE_MISS_TOKENS (line 120) | const MIN_CACHE_MISS_TOKENS = 2_000 constant CACHE_TTL_5MIN_MS (line 125) | const CACHE_TTL_5MIN_MS = 5 * 60 * 1000 constant CACHE_TTL_1HOUR_MS (line 126) | const CACHE_TTL_1HOUR_MS = 60 * 60 * 1000 function isExcludedModel (line 129) | function isExcludedModel(model: string): boolean { function getTrackingKey (line 149) | function getTrackingKey( function stripCacheControl (line 160) | function stripCacheControl( function computeHash (line 170) | function computeHash(data: unknown): number { function sanitizeToolName (line 183) | function sanitizeToolName(name: string): string { function computePerToolHashes (line 187) | function computePerToolHashes( function getSystemCharCount (line 198) | function getSystemCharCount(system: TextBlockParam[]): number { function buildDiffableContent (line 206) | function buildDiffableContent( type PromptStateSnapshot (line 227) | type PromptStateSnapshot = { function recordPromptState (line 247) | function recordPromptState(snapshot: PromptStateSnapshot): void { function checkResponseForCacheBreak (line 437) | async function checkResponseForCacheBreak( function notifyCacheDeletion (line 673) | function notifyCacheDeletion( function notifyCompaction (line 689) | function notifyCompaction( function cleanupAgentTracking (line 700) | function cleanupAgentTracking(agentId: AgentId): void { function resetPromptCacheBreakDetection (line 704) | function resetPromptCacheBreakDetection(): void { function writeCacheBreakDiff (line 708) | async function writeCacheBreakDiff( FILE: restored-src/src/services/api/referral.ts constant CACHE_EXPIRATION_MS (line 21) | const CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000 function fetchReferralEligibility (line 26) | async function fetchReferralEligibility( function fetchReferralRedemptions (line 47) | async function fetchReferralRedemptions( function shouldCheckForPasses (line 71) | function shouldCheckForPasses(): boolean { function checkCachedPassesEligibility (line 83) | function checkCachedPassesEligibility(): { constant CURRENCY_SYMBOLS (line 128) | const CURRENCY_SYMBOLS: Record = { function formatCreditAmount (line 139) | function formatCreditAmount(reward: ReferrerRewardInfo): string { function getCachedReferrerReward (line 150) | function getCachedReferrerReward(): ReferrerRewardInfo | null { function getCachedRemainingPasses (line 162) | function getCachedRemainingPasses(): number | null { function fetchAndStorePassesEligibility (line 174) | async function fetchAndStorePassesEligibility(): Promise { FILE: restored-src/src/services/api/sessionIngress.ts type SessionIngressError (line 15) | interface SessionIngressError { constant MAX_RETRIES (line 25) | const MAX_RETRIES = 10 constant BASE_DELAY_MS (line 26) | const BASE_DELAY_MS = 500 function getOrCreateSequentialAppend (line 42) | function getOrCreateSequentialAppend(sessionId: string) { function appendSessionLogImpl (line 63) | async function appendSessionLogImpl( function appendSessionLog (line 193) | async function appendSessionLog( function getSessionLogs (line 217) | async function getSessionLogs( function getSessionLogsViaOAuth (line 246) | async function getSessionLogsViaOAuth( type TeleportEventsResponse (line 267) | type TeleportEventsResponse = { function getTeleportEvents (line 291) | async function getTeleportEvents( function fetchSessionLogsFromUrl (line 420) | async function fetchSessionLogsFromUrl( function findLastUuid (line 491) | function findLastUuid(logs: Entry[] | null): UUID | undefined { function clearSession (line 502) | function clearSession(sessionId: string): void { function clearAllSessions (line 511) | function clearAllSessions(): void { FILE: restored-src/src/services/api/ultrareviewQuota.ts type UltrareviewQuotaResponse (line 7) | type UltrareviewQuotaResponse = { function fetchUltrareviewQuota (line 19) | async function fetchUltrareviewQuota(): Promise { FILE: restored-src/src/services/api/withRetry.ts constant DEFAULT_MAX_RETRIES (line 52) | const DEFAULT_MAX_RETRIES = 10 constant FLOOR_OUTPUT_TOKENS (line 53) | const FLOOR_OUTPUT_TOKENS = 3000 constant MAX_529_RETRIES (line 54) | const MAX_529_RETRIES = 3 constant BASE_DELAY_MS (line 55) | const BASE_DELAY_MS = 500 constant FOREGROUND_529_RETRY_SOURCES (line 62) | const FOREGROUND_529_RETRY_SOURCES = new Set([ function shouldRetry529 (line 84) | function shouldRetry529(querySource: QuerySource | undefined): boolean { constant PERSISTENT_MAX_BACKOFF_MS (line 96) | const PERSISTENT_MAX_BACKOFF_MS = 5 * 60 * 1000 constant PERSISTENT_RESET_CAP_MS (line 97) | const PERSISTENT_RESET_CAP_MS = 6 * 60 * 60 * 1000 constant HEARTBEAT_INTERVAL_MS (line 98) | const HEARTBEAT_INTERVAL_MS = 30_000 function isPersistentRetryEnabled (line 100) | function isPersistentRetryEnabled(): boolean { function isTransientCapacityError (line 106) | function isTransientCapacityError(error: unknown): boolean { function isStaleConnectionError (line 112) | function isStaleConnectionError(error: unknown): boolean { type RetryContext (line 120) | interface RetryContext { type RetryOptions (line 127) | interface RetryOptions { class CannotRetryError (line 144) | class CannotRetryError extends Error { method constructor (line 145) | constructor( class FallbackTriggeredError (line 160) | class FallbackTriggeredError extends Error { method constructor (line 161) | constructor( function getRetryAfter (line 519) | function getRetryAfter(error: unknown): string | null { function getRetryDelay (line 530) | function getRetryDelay( function parseMaxTokensContextOverflowError (line 550) | function parseMaxTokensContextOverflowError(error: APIError): function isFastModeNotEnabledError (line 600) | function isFastModeNotEnabledError(error: unknown): boolean { function is529Error (line 610) | function is529Error(error: unknown): boolean { function isOAuthTokenRevokedError (line 623) | function isOAuthTokenRevokedError(error: unknown): boolean { function isBedrockAuthError (line 631) | function isBedrockAuthError(error: unknown): boolean { function handleAwsCredentialError (line 650) | function handleAwsCredentialError(error: unknown): boolean { function isGoogleAuthLibraryCredentialError (line 660) | function isGoogleAuthLibraryCredentialError(error: unknown): boolean { function isVertexAuthError (line 670) | function isVertexAuthError(error: unknown): boolean { function handleGcpCredentialError (line 688) | function handleGcpCredentialError(error: unknown): boolean { function shouldRetry (line 696) | function shouldRetry(error: APIError): boolean { function getDefaultMaxRetries (line 789) | function getDefaultMaxRetries(): number { function getMaxRetries (line 795) | function getMaxRetries(options: RetryOptions): number { constant DEFAULT_FAST_MODE_FALLBACK_HOLD_MS (line 799) | const DEFAULT_FAST_MODE_FALLBACK_HOLD_MS = 30 * 60 * 1000 // 30 minutes constant SHORT_RETRY_THRESHOLD_MS (line 800) | const SHORT_RETRY_THRESHOLD_MS = 20 * 1000 // 20 seconds constant MIN_COOLDOWN_MS (line 801) | const MIN_COOLDOWN_MS = 10 * 60 * 1000 // 10 minutes function getRetryAfterMs (line 803) | function getRetryAfterMs(error: APIError): number | null { function getRateLimitResetDelayMs (line 814) | function getRateLimitResetDelayMs(error: APIError): number | null { FILE: restored-src/src/services/autoDream/autoDream.ts constant SESSION_SCAN_INTERVAL_MS (line 56) | const SESSION_SCAN_INTERVAL_MS = 10 * 60 * 1000 type AutoDreamConfig (line 58) | type AutoDreamConfig = { constant DEFAULTS (line 63) | const DEFAULTS: AutoDreamConfig = { function getConfig (line 73) | function getConfig(): AutoDreamConfig { function isGateOpen (line 95) | function isGateOpen(): boolean { function isForced (line 105) | function isForced(): boolean { type AppendSystemMessageFn (line 109) | type AppendSystemMessageFn = NonNullable { function tryAcquireConsolidationLock (line 46) | async function tryAcquireConsolidationLock(): Promise { function rollbackConsolidationLock (line 91) | async function rollbackConsolidationLock( function listSessionsTouchedSince (line 118) | async function listSessionsTouchedSince( function recordConsolidation (line 130) | async function recordConsolidation(): Promise { FILE: restored-src/src/services/autoDream/consolidationPrompt.ts function buildConsolidationPrompt (line 10) | function buildConsolidationPrompt( FILE: restored-src/src/services/awaySummary.ts constant RECENT_MESSAGE_WINDOW (line 16) | const RECENT_MESSAGE_WINDOW = 30 function buildAwaySummaryPrompt (line 18) | function buildAwaySummaryPrompt(memory: string | null): string { function generateAwaySummary (line 29) | async function generateAwaySummary( FILE: restored-src/src/services/claudeAiLimits.ts type QuotaStatus (line 27) | type QuotaStatus = 'allowed' | 'allowed_warning' | 'rejected' type RateLimitType (line 29) | type RateLimitType = type EarlyWarningThreshold (line 38) | type EarlyWarningThreshold = { type EarlyWarningConfig (line 43) | type EarlyWarningConfig = { constant EARLY_WARNING_CONFIGS (line 53) | const EARLY_WARNING_CONFIGS: EarlyWarningConfig[] = [ constant EARLY_WARNING_CLAIM_MAP (line 73) | const EARLY_WARNING_CLAIM_MAP: Record = { constant RATE_LIMIT_DISPLAY_NAMES (line 79) | const RATE_LIMIT_DISPLAY_NAMES: Record = { function getRateLimitDisplayName (line 87) | function getRateLimitDisplayName(type: RateLimitType): string { function computeTimeProgress (line 98) | function computeTimeProgress(resetsAt: number, windowSeconds: number): n... type OverageDisabledReason (line 107) | type OverageDisabledReason = type ClaudeAILimits (line 122) | type ClaudeAILimits = { type RawWindowUtilization (line 150) | type RawWindowUtilization = { type RawUtilization (line 154) | type RawUtilization = { function getRawUtilization (line 160) | function getRawUtilization(): RawUtilization { function extractRawUtilization (line 164) | function extractRawUtilization(headers: globalThis.Headers): RawUtilizat... type StatusChangeListener (line 181) | type StatusChangeListener = (limits: ClaudeAILimits) => void function emitStatusChange (line 184) | function emitStatusChange(limits: ClaudeAILimits) { function makeTestQuery (line 199) | async function makeTestQuery() { function checkQuotaStatus (line 220) | async function checkQuotaStatus(): Promise { function getHeaderBasedEarlyWarning (line 255) | function getHeaderBasedEarlyWarning( function getTimeRelativeEarlyWarning (line 301) | function getTimeRelativeEarlyWarning( function getEarlyWarningFromHeaders (line 347) | function getEarlyWarningFromHeaders( function computeNewLimitsFromHeaders (line 376) | function computeNewLimitsFromHeaders( function cacheExtraUsageDisabledReason (line 441) | function cacheExtraUsageDisabledReason(headers: globalThis.Headers): void { function extractQuotaStatusFromHeaders (line 454) | function extractQuotaStatusFromHeaders( function extractQuotaStatusFromError (line 487) | function extractQuotaStatusFromError(error: APIError): void { FILE: restored-src/src/services/claudeAiLimitsHook.ts function useClaudeAiLimits (line 8) | function useClaudeAiLimits(): ClaudeAILimits { FILE: restored-src/src/services/compact/apiMicrocompact.ts constant DEFAULT_MAX_INPUT_TOKENS (line 16) | const DEFAULT_MAX_INPUT_TOKENS = 180_000 // Typical warning threshold constant DEFAULT_TARGET_INPUT_TOKENS (line 17) | const DEFAULT_TARGET_INPUT_TOKENS = 40_000 // Keep last 40k tokens like ... constant TOOLS_CLEARABLE_RESULTS (line 19) | const TOOLS_CLEARABLE_RESULTS = [ constant TOOLS_CLEARABLE_USES (line 28) | const TOOLS_CLEARABLE_USES = [ type ContextEditStrategy (line 35) | type ContextEditStrategy = type ContextManagementConfig (line 59) | type ContextManagementConfig = { function getAPIContextManagement (line 64) | function getAPIContextManagement(options?: { FILE: restored-src/src/services/compact/autoCompact.ts constant MAX_OUTPUT_TOKENS_FOR_SUMMARY (line 30) | const MAX_OUTPUT_TOKENS_FOR_SUMMARY = 20_000 function getEffectiveContextWindowSize (line 33) | function getEffectiveContextWindowSize(model: string): number { type AutoCompactTrackingState (line 51) | type AutoCompactTrackingState = { constant AUTOCOMPACT_BUFFER_TOKENS (line 62) | const AUTOCOMPACT_BUFFER_TOKENS = 13_000 constant WARNING_THRESHOLD_BUFFER_TOKENS (line 63) | const WARNING_THRESHOLD_BUFFER_TOKENS = 20_000 constant ERROR_THRESHOLD_BUFFER_TOKENS (line 64) | const ERROR_THRESHOLD_BUFFER_TOKENS = 20_000 constant MANUAL_COMPACT_BUFFER_TOKENS (line 65) | const MANUAL_COMPACT_BUFFER_TOKENS = 3_000 constant MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES (line 70) | const MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3 function getAutoCompactThreshold (line 72) | function getAutoCompactThreshold(model: string): number { function calculateTokenWarningState (line 93) | function calculateTokenWarningState( function isAutoCompactEnabled (line 147) | function isAutoCompactEnabled(): boolean { function shouldAutoCompact (line 160) | async function shouldAutoCompact( function autoCompactIfNeeded (line 241) | async function autoCompactIfNeeded( FILE: restored-src/src/services/compact/compact.ts constant POST_COMPACT_MAX_FILES_TO_RESTORE (line 122) | const POST_COMPACT_MAX_FILES_TO_RESTORE = 5 constant POST_COMPACT_TOKEN_BUDGET (line 123) | const POST_COMPACT_TOKEN_BUDGET = 50_000 constant POST_COMPACT_MAX_TOKENS_PER_FILE (line 124) | const POST_COMPACT_MAX_TOKENS_PER_FILE = 5_000 constant POST_COMPACT_MAX_TOKENS_PER_SKILL (line 129) | const POST_COMPACT_MAX_TOKENS_PER_SKILL = 5_000 constant POST_COMPACT_SKILLS_TOKEN_BUDGET (line 130) | const POST_COMPACT_SKILLS_TOKEN_BUDGET = 25_000 constant MAX_COMPACT_STREAMING_RETRIES (line 131) | const MAX_COMPACT_STREAMING_RETRIES = 2 function stripImagesFromMessages (line 145) | function stripImagesFromMessages(messages: Message[]): Message[] { function stripReinjectedAttachments (line 211) | function stripReinjectedAttachments(messages: Message[]): Message[] { constant ERROR_MESSAGE_NOT_ENOUGH_MESSAGES (line 225) | const ERROR_MESSAGE_NOT_ENOUGH_MESSAGES = constant MAX_PTL_RETRIES (line 227) | const MAX_PTL_RETRIES = 3 constant PTL_RETRY_MARKER (line 228) | const PTL_RETRY_MARKER = '[earlier conversation truncated for compaction... function truncateHeadForPTLRetry (line 243) | function truncateHeadForPTLRetry( constant ERROR_MESSAGE_PROMPT_TOO_LONG (line 293) | const ERROR_MESSAGE_PROMPT_TOO_LONG = constant ERROR_MESSAGE_USER_ABORT (line 295) | const ERROR_MESSAGE_USER_ABORT = 'API Error: Request was aborted.' constant ERROR_MESSAGE_INCOMPLETE_RESPONSE (line 296) | const ERROR_MESSAGE_INCOMPLETE_RESPONSE = type CompactionResult (line 299) | interface CompactionResult { type RecompactionInfo (line 317) | type RecompactionInfo = { function buildPostCompactMessages (line 330) | function buildPostCompactMessages(result: CompactionResult): Message[] { function annotateBoundaryWithPreservedSegment (line 349) | function annotateBoundaryWithPreservedSegment( function mergeHookInstructions (line 374) | function mergeHookInstructions( function compactConversation (line 387) | async function compactConversation( function partialCompactConversation (line 772) | async function partialCompactConversation( function addErrorNotificationIfNeeded (line 1108) | function addErrorNotificationIfNeeded( function createCompactCanUseTool (line 1125) | function createCompactCanUseTool(): CanUseToolFn { function streamCompactSummary (line 1136) | async function streamCompactSummary({ function createPostCompactFileAttachments (line 1415) | async function createPostCompactFileAttachments( function createPlanAttachmentIfNeeded (line 1470) | function createPlanAttachmentIfNeeded( function createSkillAttachmentIfNeeded (line 1494) | function createSkillAttachmentIfNeeded( function createPlanModeAttachmentIfNeeded (line 1542) | async function createPlanModeAttachmentIfNeeded( function createAsyncAgentAttachmentsIfNeeded (line 1568) | async function createAsyncAgentAttachmentsIfNeeded( function collectReadToolFilePaths (line 1610) | function collectReadToolFilePaths(messages: Message[]): Set { constant SKILL_TRUNCATION_MARKER (line 1657) | const SKILL_TRUNCATION_MARKER = function truncateToTokens (line 1666) | function truncateToTokens(content: string, maxTokens: number): string { function shouldExcludeFromPostCompactRestore (line 1674) | function shouldExcludeFromPostCompactRestore( FILE: restored-src/src/services/compact/compactWarningHook.ts function useCompactWarningSuppression (line 11) | function useCompactWarningSuppression(): boolean { FILE: restored-src/src/services/compact/compactWarningState.ts function suppressCompactWarning (line 11) | function suppressCompactWarning(): void { function clearCompactWarningSuppression (line 16) | function clearCompactWarningSuppression(): void { FILE: restored-src/src/services/compact/grouping.ts function groupMessagesByApiRound (line 22) | function groupMessagesByApiRound(messages: Message[]): Message[][] { FILE: restored-src/src/services/compact/microCompact.ts constant TIME_BASED_MC_CLEARED_MESSAGE (line 36) | const TIME_BASED_MC_CLEARED_MESSAGE = '[Old tool result content cleared]' constant IMAGE_MAX_TOKEN_SIZE (line 38) | const IMAGE_MAX_TOKEN_SIZE = 2000 constant COMPACTABLE_TOOLS (line 41) | const COMPACTABLE_TOOLS = new Set([ function getCachedMCModule (line 62) | async function getCachedMCModule(): Promise< function ensureCachedMCState (line 71) | function ensureCachedMCState(): import('./cachedMicrocompact.js').Cached... function consumePendingCacheEdits (line 88) | function consumePendingCacheEdits(): function getPinnedCacheEdits (line 100) | function getPinnedCacheEdits(): import('./cachedMicrocompact.js').Pinned... function pinCacheEdits (line 111) | function pinCacheEdits( function markToolsSentToAPIState (line 124) | function markToolsSentToAPIState(): void { function resetMicrocompactState (line 130) | function resetMicrocompactState(): void { function calculateToolResultTokens (line 138) | function calculateToolResultTokens(block: ToolResultBlockParam): number { function estimateMessageTokens (line 164) | function estimateMessageTokens(messages: Message[]): number { type PendingCacheEdits (line 207) | type PendingCacheEdits = { type MicrocompactResult (line 215) | type MicrocompactResult = { function collectCompactableToolIds (line 226) | function collectCompactableToolIds(messages: Message[]): string[] { function isMainThreadSource (line 249) | function isMainThreadSource(querySource: QuerySource | undefined): boole... function microcompactMessages (line 253) | async function microcompactMessages( function cachedMicrocompactPath (line 305) | async function cachedMicrocompactPath( function evaluateTimeBasedTrigger (line 422) | function evaluateTimeBasedTrigger( function maybeTimeBasedMicrocompact (line 446) | function maybeTimeBasedMicrocompact( FILE: restored-src/src/services/compact/postCompactCleanup.ts function runPostCompactCleanup (line 31) | function runPostCompactCleanup(querySource?: QuerySource): void { FILE: restored-src/src/services/compact/prompt.ts constant NO_TOOLS_PREAMBLE (line 19) | const NO_TOOLS_PREAMBLE = `CRITICAL: Respond with TEXT ONLY. Do NOT call... constant DETAILED_ANALYSIS_INSTRUCTION_BASE (line 31) | const DETAILED_ANALYSIS_INSTRUCTION_BASE = `Before providing your final ... constant DETAILED_ANALYSIS_INSTRUCTION_PARTIAL (line 46) | const DETAILED_ANALYSIS_INSTRUCTION_PARTIAL = `Before providing your fin... constant BASE_COMPACT_PROMPT (line 61) | const BASE_COMPACT_PROMPT = `Your task is to create a detailed summary o... constant PARTIAL_COMPACT_PROMPT (line 145) | const PARTIAL_COMPACT_PROMPT = `Your task is to create a detailed summar... constant PARTIAL_COMPACT_UP_TO_PROMPT (line 208) | const PARTIAL_COMPACT_UP_TO_PROMPT = `Your task is to create a detailed ... constant NO_TOOLS_TRAILER (line 269) | const NO_TOOLS_TRAILER = function getPartialCompactPrompt (line 274) | function getPartialCompactPrompt( function getCompactPrompt (line 293) | function getCompactPrompt(customInstructions?: string): string { function formatCompactSummary (line 311) | function formatCompactSummary(summary: string): string { function getCompactUserSummaryMessage (line 337) | function getCompactUserSummaryMessage( FILE: restored-src/src/services/compact/sessionMemoryCompact.ts type SessionMemoryCompactConfig (line 47) | type SessionMemoryCompactConfig = { constant DEFAULT_SM_COMPACT_CONFIG (line 57) | const DEFAULT_SM_COMPACT_CONFIG: SessionMemoryCompactConfig = { function setSessionMemoryCompactConfig (line 74) | function setSessionMemoryCompactConfig( function getSessionMemoryCompactConfig (line 86) | function getSessionMemoryCompactConfig(): SessionMemoryCompactConfig { function resetSessionMemoryCompactConfig (line 93) | function resetSessionMemoryCompactConfig(): void { function initSessionMemoryCompactConfig (line 102) | async function initSessionMemoryCompactConfig(): Promise { function hasTextBlocks (line 135) | function hasTextBlocks(message: Message): boolean { function getToolResultIds (line 155) | function getToolResultIds(message: Message): string[] { function hasToolUseWithIds (line 175) | function hasToolUseWithIds(message: Message, toolUseIds: Set): b... function adjustIndexToPreserveAPIInvariants (line 232) | function adjustIndexToPreserveAPIInvariants( function calculateMessagesToKeepIndex (line 324) | function calculateMessagesToKeepIndex( function shouldUseSessionMemoryCompaction (line 403) | function shouldUseSessionMemoryCompaction(): boolean { function createCompactionResultFromSessionMemory (line 437) | function createCompactionResultFromSessionMemory( function trySessionMemoryCompaction (line 514) | async function trySessionMemoryCompaction( FILE: restored-src/src/services/compact/timeBasedMCConfig.ts type TimeBasedMCConfig (line 18) | type TimeBasedMCConfig = { constant TIME_BASED_MC_CONFIG_DEFAULTS (line 30) | const TIME_BASED_MC_CONFIG_DEFAULTS: TimeBasedMCConfig = { function getTimeBasedMCConfig (line 36) | function getTimeBasedMCConfig(): TimeBasedMCConfig { FILE: restored-src/src/services/diagnosticTracking.ts class DiagnosticsTrackingError (line 10) | class DiagnosticsTrackingError extends ClaudeError {} constant MAX_DIAGNOSTICS_SUMMARY_CHARS (line 12) | const MAX_DIAGNOSTICS_SUMMARY_CHARS = 4000 type Diagnostic (line 14) | interface Diagnostic { type DiagnosticFile (line 25) | interface DiagnosticFile { class DiagnosticTrackingService (line 30) | class DiagnosticTrackingService { method getInstance (line 44) | static getInstance(): DiagnosticTrackingService { method initialize (line 51) | initialize(mcpClient: MCPServerConnection) { method shutdown (line 61) | async shutdown(): Promise { method reset (line 72) | reset() { method normalizeFileUri (line 78) | private normalizeFileUri(fileUri: string): string { method ensureFileOpened (line 103) | async ensureFileOpened(fileUri: string): Promise { method beforeFileEdited (line 135) | async beforeFileEdited(filePath: string): Promise { method getNewDiagnostics (line 188) | async getNewDiagnostics(): Promise { method parseDiagnosticResult (line 285) | private parseDiagnosticResult(result: unknown): DiagnosticFile[] { method areDiagnosticsEqual (line 296) | private areDiagnosticsEqual(a: Diagnostic, b: Diagnostic): boolean { method areDiagnosticArraysEqual (line 309) | private areDiagnosticArraysEqual(a: Diagnostic[], b: Diagnostic[]): bo... method handleQueryStart (line 330) | async handleQueryStart(clients: MCPServerConnection[]): Promise { method formatDiagnosticsSummary (line 352) | static formatDiagnosticsSummary(files: DiagnosticFile[]): string { method getSeveritySymbol (line 385) | static getSeveritySymbol(severity: Diagnostic['severity']): string { FILE: restored-src/src/services/extractMemories/extractMemories.ts function isModelVisibleMessage (line 78) | function isModelVisibleMessage(message: Message): boolean { function countModelVisibleMessagesSince (line 82) | function countModelVisibleMessagesSince( function hasMemoryWritesSince (line 121) | function hasMemoryWritesSince( function denyAutoMemTool (line 154) | function denyAutoMemTool(tool: Tool, reason: string) { function createAutoMemCanUseTool (line 171) | function createAutoMemCanUseTool(memoryDir: string): CanUseToolFn { function getWrittenFilePath (line 232) | function getWrittenFilePath(block: { function extractWrittenPaths (line 251) | function extractWrittenPaths(agentMessages: Message[]): string[] { type AppendSystemMessageFn (line 275) | type AppendSystemMessageFn = ( function initExtractMemories (line 296) | function initExtractMemories(): void { function executeExtractMemories (line 598) | async function executeExtractMemories( function drainPendingExtraction (line 611) | async function drainPendingExtraction( FILE: restored-src/src/services/extractMemories/prompts.ts function opener (line 29) | function opener(newMessageCount: number, existingMemories: string): stri... function buildExtractAutoOnlyPrompt (line 50) | function buildExtractAutoOnlyPrompt( function buildExtractCombinedPrompt (line 101) | function buildExtractCombinedPrompt( FILE: restored-src/src/services/internalLogging.ts function logPermissionContextForAnts (line 71) | async function logPermissionContextForAnts( FILE: restored-src/src/services/lsp/LSPClient.ts type LSPClient (line 21) | type LSPClient = { function createLSPClient (line 51) | function createLSPClient( FILE: restored-src/src/services/lsp/LSPDiagnosticRegistry.ts type PendingLSPDiagnostic (line 12) | type PendingLSPDiagnostic = { constant MAX_DIAGNOSTICS_PER_FILE (line 42) | const MAX_DIAGNOSTICS_PER_FILE = 10 constant MAX_TOTAL_DIAGNOSTICS (line 43) | const MAX_TOTAL_DIAGNOSTICS = 30 constant MAX_DELIVERED_FILES (line 46) | const MAX_DELIVERED_FILES = 500 function registerPendingLSPDiagnostic (line 65) | function registerPendingLSPDiagnostic({ function severityToNumber (line 91) | function severityToNumber(severity: string | undefined): number { function createDiagnosticKey (line 110) | function createDiagnosticKey(diag: { function deduplicateDiagnosticFiles (line 136) | function deduplicateDiagnosticFiles( function checkForLSPDiagnostics (line 193) | function checkForLSPDiagnostics(): Array<{ function clearAllLSPDiagnostics (line 346) | function clearAllLSPDiagnostics(): void { function resetAllLSPDiagnosticState (line 357) | function resetAllLSPDiagnosticState(): void { function clearDeliveredDiagnosticsForFile (line 372) | function clearDeliveredDiagnosticsForFile(fileUri: string): void { function getPendingLSPDiagnosticCount (line 384) | function getPendingLSPDiagnosticCount(): number { FILE: restored-src/src/services/lsp/LSPServerInstance.ts constant LSP_ERROR_CONTENT_MODIFIED (line 17) | const LSP_ERROR_CONTENT_MODIFIED = -32801 constant MAX_RETRIES_FOR_TRANSIENT_ERRORS (line 22) | const MAX_RETRIES_FOR_TRANSIENT_ERRORS = 3 constant RETRY_BASE_DELAY_MS (line 28) | const RETRY_BASE_DELAY_MS = 500 type LSPServerInstance (line 33) | type LSPServerInstance = { function createLSPServerInstance (line 90) | function createLSPServerInstance( function withTimeout (line 499) | function withTimeout( FILE: restored-src/src/services/lsp/LSPServerManager.ts type LSPServerManager (line 16) | type LSPServerManager = { function createLSPServerManager (line 59) | function createLSPServerManager(): LSPServerManager { FILE: restored-src/src/services/lsp/config.ts function getAllLspServers (line 15) | async function getAllLspServers(): Promise<{ FILE: restored-src/src/services/lsp/manager.ts type InitializationState (line 14) | type InitializationState = 'not-started' | 'pending' | 'success' | 'failed' function _resetLspManagerForTesting (line 48) | function _resetLspManagerForTesting(): void { function getLspServerManager (line 63) | function getLspServerManager(): LSPServerManager | undefined { function getInitializationStatus (line 76) | function getInitializationStatus(): function isLspConnected (line 100) | function isLspConnected(): boolean { function waitForInitialization (line 121) | async function waitForInitialization(): Promise { function initializeLspServerManager (line 145) | function initializeLspServerManager(): void { function reinitializeLspServerManager (line 226) | function reinitializeLspServerManager(): void { function shutdownLspServerManager (line 267) | async function shutdownLspServerManager(): Promise { FILE: restored-src/src/services/lsp/passiveFeedback.ts function mapLSPSeverity (line 18) | function mapLSPSeverity( function formatDiagnosticsForAttachment (line 43) | function formatDiagnosticsForAttachment( type HandlerRegistrationResult (line 105) | type HandlerRegistrationResult = { function registerLSPNotificationHandlers (line 125) | function registerLSPNotificationHandlers( FILE: restored-src/src/services/mcp/InProcessTransport.ts class InProcessTransport (line 11) | class InProcessTransport implements Transport { method _setPeer (line 20) | _setPeer(peer: InProcessTransport): void { method start (line 24) | async start(): Promise {} method send (line 26) | async send(message: JSONRPCMessage): Promise { method close (line 37) | async close(): Promise { function createLinkedTransportPair (line 57) | function createLinkedTransportPair(): [Transport, Transport] { FILE: restored-src/src/services/mcp/MCPConnectionManager.tsx type MCPConnectionContextValue (line 7) | interface MCPConnectionContextValue { function useMcpReconnect (line 17) | function useMcpReconnect() { function useMcpToggleEnabled (line 24) | function useMcpToggleEnabled() { type MCPConnectionManagerProps (line 31) | interface MCPConnectionManagerProps { function MCPConnectionManager (line 38) | function MCPConnectionManager(t0) { FILE: restored-src/src/services/mcp/SdkControlTransport.ts type SendMcpMessageCallback (line 45) | type SendMcpMessageCallback = ( class SdkControlClientTransport (line 60) | class SdkControlClientTransport implements Transport { method constructor (line 67) | constructor( method start (line 72) | async start(): Promise {} method send (line 74) | async send(message: JSONRPCMessage): Promise { method close (line 88) | async close(): Promise { class SdkControlServerTransport (line 109) | class SdkControlServerTransport implements Transport { method constructor (line 112) | constructor(private sendMcpMessage: (message: JSONRPCMessage) => void) {} method start (line 118) | async start(): Promise {} method send (line 120) | async send(message: JSONRPCMessage): Promise { method close (line 129) | async close(): Promise { FILE: restored-src/src/services/mcp/auth.ts constant AUTH_REQUEST_TIMEOUT_MS (line 65) | const AUTH_REQUEST_TIMEOUT_MS = 30000 type MCPRefreshFailureReason (line 71) | type MCPRefreshFailureReason = type MCPOAuthFlowErrorReason (line 84) | type MCPOAuthFlowErrorReason = constant MAX_LOCK_RETRIES (line 94) | const MAX_LOCK_RETRIES = 5 constant SENSITIVE_OAUTH_PARAMS (line 100) | const SENSITIVE_OAUTH_PARAMS = [ function redactSensitiveUrlParams (line 112) | function redactSensitiveUrlParams(url: string): string { constant NONSTANDARD_INVALID_GRANT_ALIASES (line 147) | const NONSTANDARD_INVALID_GRANT_ALIASES = new Set([ function normalizeOAuthErrorBody (line 157) | async function normalizeOAuthErrorBody( function createAuthFetch (line 198) | function createAuthFetch(): FetchLike { function fetchAuthServerMetadata (line 256) | async function fetchAuthServerMetadata( class AuthenticationCancelledError (line 313) | class AuthenticationCancelledError extends Error { method constructor (line 314) | constructor() { function getServerKey (line 325) | function getServerKey( function hasMcpDiscoveryButNoToken (line 349) | function hasMcpDiscoveryButNoToken( function revokeToken (line 381) | async function revokeToken({ function revokeServerTokens (line 467) | async function revokeServerTokens( function clearServerTokensFromLocalStorage (line 620) | function clearServerTokensFromLocalStorage( type WWWAuthenticateParams (line 636) | type WWWAuthenticateParams = { type XaaFailureStage (line 641) | type XaaFailureStage = function performMCPXaaAuth (line 664) | async function performMCPXaaAuth( function performMCPOAuthFlow (line 847) | async function performMCPOAuthFlow( function wrapFetchWithStepUpDetection (line 1354) | function wrapFetchWithStepUpDetection( class ClaudeAuthProvider (line 1376) | class ClaudeAuthProvider implements OAuthClientProvider { method constructor (line 1393) | constructor( method redirectUrl (line 1409) | get redirectUrl(): string { method authorizationUrl (line 1413) | get authorizationUrl(): string | undefined { method clientMetadata (line 1417) | get clientMetadata(): OAuthClientMetadata { method clientMetadataUrl (line 1445) | get clientMetadataUrl(): string | undefined { method setMetadata (line 1454) | setMetadata( method markStepUpPending (line 1468) | markStepUpPending(scope: string): void { method state (line 1473) | async state(): Promise { method clientInformation (line 1482) | async clientInformation(): Promise { method saveClientInformation (line 1513) | async saveClientInformation( method tokens (line 1540) | async tokens(): Promise { method saveTokens (line 1704) | async saveTokens(tokens: OAuthTokens): Promise { method xaaRefresh (line 1751) | private async xaaRefresh(): Promise { method redirectToAuthorization (line 1852) | async redirectToAuthorization(authorizationUrl: URL): Promise { method saveCodeVerifier (line 1946) | async saveCodeVerifier(codeVerifier: string): Promise { method codeVerifier (line 1951) | async codeVerifier(): Promise { method invalidateCredentials (line 1960) | async invalidateCredentials( method saveDiscoveryState (line 1997) | async saveDiscoveryState(state: OAuthDiscoveryState): Promise { method discoveryState (line 2037) | async discoveryState(): Promise { method refreshAuthorization (line 2090) | async refreshAuthorization( method _doRefresh (line 2177) | private async _doRefresh( function readClientSecret (line 2362) | async function readClientSecret(): Promise { function saveMcpClientSecret (line 2399) | function saveMcpClientSecret( function clearMcpClientConfig (line 2416) | function clearMcpClientConfig( function getMcpClientConfig (line 2430) | function getMcpClientConfig( function getScopeFromMetadata (line 2445) | function getScopeFromMetadata( FILE: restored-src/src/services/mcp/channelAllowlist.ts type ChannelAllowlistEntry (line 23) | type ChannelAllowlistEntry = { function getChannelAllowlist (line 37) | function getChannelAllowlist(): ChannelAllowlistEntry[] { function isChannelsEnabled (line 51) | function isChannelsEnabled(): boolean { function isChannelAllowlisted (line 67) | function isChannelAllowlisted( FILE: restored-src/src/services/mcp/channelNotification.ts constant CHANNEL_PERMISSION_METHOD (line 62) | const CHANNEL_PERMISSION_METHOD = constant CHANNEL_PERMISSION_REQUEST_METHOD (line 85) | const CHANNEL_PERMISSION_REQUEST_METHOD = type ChannelPermissionRequestParams (line 87) | type ChannelPermissionRequestParams = { constant SAFE_META_KEY (line 104) | const SAFE_META_KEY = /^[a-zA-Z_][a-zA-Z0-9_]*$/ function wrapChannelMessage (line 106) | function wrapChannelMessage( function getEffectiveChannelAllowlist (line 127) | function getEffectiveChannelAllowlist( type ChannelGateResult (line 140) | type ChannelGateResult = function findChannelEntry (line 161) | function findChannelEntry( function gateChannelServer (line 191) | function gateChannelServer( FILE: restored-src/src/services/mcp/channelPermissions.ts function isChannelPermissionRelayEnabled (line 36) | function isChannelPermissionRelayEnabled(): boolean { type ChannelPermissionResponse (line 40) | type ChannelPermissionResponse = { type ChannelPermissionCallbacks (line 46) | type ChannelPermissionCallbacks = { constant PERMISSION_REPLY_RE (line 75) | const PERMISSION_REPLY_RE = /^\s*(y|yes|n|no)\s+([a-km-z]{5})\s*$/i constant ID_ALPHABET (line 78) | const ID_ALPHABET = 'abcdefghijkmnopqrstuvwxyz' constant ID_AVOID_SUBSTRINGS (line 85) | const ID_AVOID_SUBSTRINGS = [ function hashToId (line 112) | function hashToId(input: string): string { function shortRequestId (line 140) | function shortRequestId(toolUseID: string): string { function truncateForPreview (line 160) | function truncateForPreview(input: unknown): string { function filterPermissionRelayClients (line 177) | function filterPermissionRelayClients< function createChannelPermissionCallbacks (line 209) | function createChannelPermissionCallbacks(): ChannelPermissionCallbacks { FILE: restored-src/src/services/mcp/claudeai.ts type ClaudeAIMcpServer (line 16) | type ClaudeAIMcpServer = { type ClaudeAIMcpServersResponse (line 24) | type ClaudeAIMcpServersResponse = { constant FETCH_TIMEOUT_MS (line 30) | const FETCH_TIMEOUT_MS = 5000 constant MCP_SERVERS_BETA_HEADER (line 31) | const MCP_SERVERS_BETA_HEADER = 'mcp-servers-2025-12-04' function clearClaudeAIMcpConfigsCache (line 140) | function clearClaudeAIMcpConfigsCache(): void { function markClaudeAiMcpConnected (line 154) | function markClaudeAiMcpConnected(name: string): void { function hasClaudeAiMcpEverConnected (line 162) | function hasClaudeAiMcpEverConnected(name: string): boolean { FILE: restored-src/src/services/mcp/client.ts class McpAuthError (line 152) | class McpAuthError extends Error { method constructor (line 154) | constructor(serverName: string, message: string) { class McpSessionExpiredError (line 165) | class McpSessionExpiredError extends Error { method constructor (line 166) | constructor(serverName: string) { class McpToolCallError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS (line 177) | class McpToolCallError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS extends ... method constructor (line 178) | constructor( function isMcpSessionExpiredError (line 193) | function isMcpSessionExpiredError(error: Error): boolean { constant DEFAULT_MCP_TOOL_TIMEOUT_MS (line 211) | const DEFAULT_MCP_TOOL_TIMEOUT_MS = 100_000_000 constant MAX_MCP_DESCRIPTION_LENGTH (line 218) | const MAX_MCP_DESCRIPTION_LENGTH = 2048 function getMcpToolTimeoutMs (line 224) | function getMcpToolTimeoutMs(): number { constant MCP_AUTH_CACHE_TTL_MS (line 257) | const MCP_AUTH_CACHE_TTL_MS = 15 * 60 * 1000 // 15 min type McpAuthCacheData (line 259) | type McpAuthCacheData = Record function getMcpAuthCachePath (line 261) | function getMcpAuthCachePath(): string { function getMcpAuthCache (line 271) | function getMcpAuthCache(): Promise { function isMcpAuthCached (line 280) | async function isMcpAuthCached(serverId: string): Promise { function setMcpAuthCacheEntry (line 293) | function setMcpAuthCacheEntry(serverId: string): void { function clearMcpAuthCache (line 311) | function clearMcpAuthCache(): void { function mcpBaseUrlAnalytics (line 323) | function mcpBaseUrlAnalytics(serverRef: ScopedMcpServerConfig): { function handleRemoteAuthFailure (line 340) | function handleRemoteAuthFailure( function createClaudeAiProxyFetch (line 372) | function createClaudeAiProxyFetch(innerFetch: FetchLike): FetchLike { type WsClientLike (line 425) | type WsClientLike = { function createNodeWsClient (line 436) | async function createNodeWsClient( constant IMAGE_MIME_TYPES (line 449) | const IMAGE_MIME_TYPES = new Set([ function getConnectionTimeoutMs (line 456) | function getConnectionTimeoutMs(): number { constant MCP_REQUEST_TIMEOUT_MS (line 463) | const MCP_REQUEST_TIMEOUT_MS = 60000 constant MCP_STREAMABLE_HTTP_ACCEPT (line 471) | const MCP_STREAMABLE_HTTP_ACCEPT = 'application/json, text/event-stream' function wrapFetchWithTimeout (line 492) | function wrapFetchWithTimeout(baseFetch: FetchLike): FetchLike { function getMcpServerConnectionBatchSize (line 552) | function getMcpServerConnectionBatchSize(): number { function getRemoteMcpServerConnectionBatchSize (line 556) | function getRemoteMcpServerConnectionBatchSize(): number { function isLocalMcpServer (line 563) | function isLocalMcpServer(config: ScopedMcpServerConfig): boolean { constant ALLOWED_IDE_TOOLS (line 568) | const ALLOWED_IDE_TOOLS = ['mcp__ide__executeCode', 'mcp__ide__getDiagno... function isIncludedMcpTool (line 569) | function isIncludedMcpTool(tool: Tool): boolean { function getServerCacheKey (line 581) | function getServerCacheKey( function clearServerCache (line 1648) | async function clearServerCache( function ensureConnectedClient (line 1688) | async function ensureConnectedClient( function areMcpConfigsEqual (line 1710) | function areMcpConfigsEqual( constant MCP_FETCH_CACHE_SIZE (line 1726) | const MCP_FETCH_CACHE_SIZE = 20 function mcpToolInputToAutoClassifierInput (line 1733) | function mcpToolInputToAutoClassifierInput( method description (line 1786) | async description() { method prompt (line 1789) | async prompt() { method isConcurrencySafe (line 1795) | isConcurrencySafe() { method isReadOnly (line 1798) | isReadOnly() { method toAutoClassifierInput (line 1801) | toAutoClassifierInput(input) { method isDestructive (line 1804) | isDestructive() { method isOpenWorld (line 1807) | isOpenWorld() { method isSearchOrReadCommand (line 1810) | isSearchOrReadCommand() { method checkPermissions (line 1814) | async checkPermissions() { method call (line 1833) | async call( method userFacingName (line 1972) | userFacingName() { method userFacingName (line 2066) | userFacingName() { method getPromptForCommand (line 2073) | async getPromptForCommand(args: string) { function callIdeRpc (line 2116) | async function callIdeRpc( function reconnectMcpServerImpl (line 2137) | async function reconnectMcpServerImpl( function processBatched (line 2218) | async function processBatched( function getMcpToolsCommandsAndResources (line 2226) | async function getMcpToolsCommandsAndResources( function prefetchAllMcpResources (line 2408) | function prefetchAllMcpResources( function transformResultContent (line 2478) | async function transformResultContent( function persistBlobToTextBlock (line 2598) | async function persistBlobToTextBlock( type MCPResultType (line 2632) | type MCPResultType = 'toolResult' | 'structuredContent' | 'contentArray' type TransformedMCPResult (line 2634) | type TransformedMCPResult = { function inferCompactSchema (line 2644) | function inferCompactSchema(value: unknown, depth = 2): string { function transformMCPResult (line 2662) | async function transformMCPResult( function contentContainsImages (line 2713) | function contentContainsImages(content: MCPToolResult): boolean { function processMCPResult (line 2720) | async function processMCPResult( type MCPToolCallResult (line 2806) | type MCPToolCallResult = { function callMCPToolWithUrlElicitationRetry (line 2813) | async function callMCPToolWithUrlElicitationRetry({ function callMCPTool (line 3029) | async function callMCPTool({ function extractToolUseId (line 3247) | function extractToolUseId(message: AssistantMessage): string | undefined { function setupSdkMcpClients (line 3262) | async function setupSdkMcpClients( FILE: restored-src/src/services/mcp/config.ts function getEnterpriseMcpFilePath (line 62) | function getEnterpriseMcpFilePath(): string { function addScopeToServers (line 69) | function addScopeToServers( function writeMcpjsonFile (line 88) | async function writeMcpjsonFile(config: McpJsonConfig): Promise { function getServerCommandArray (line 137) | function getServerCommandArray(config: McpServerConfig): string[] | null { function commandArraysMatch (line 149) | function commandArraysMatch(a: string[], b: string[]): boolean { function getServerUrl (line 160) | function getServerUrl(config: McpServerConfig): string | null { constant CCR_PROXY_PATH_MARKERS (line 171) | const CCR_PROXY_PATH_MARKERS = [ function unwrapCcrProxyUrl (line 182) | function unwrapCcrProxyUrl(url: string): string { function getMcpServerSignature (line 202) | function getMcpServerSignature(config: McpServerConfig): string | null { function dedupPluginMcpServers (line 223) | function dedupPluginMcpServers( function dedupClaudeAiMcpServers (line 281) | function dedupClaudeAiMcpServers( function urlPatternToRegex (line 320) | function urlPatternToRegex(pattern: string): RegExp { function urlMatchesPattern (line 331) | function urlMatchesPattern(url: string, pattern: string): boolean { function getMcpAllowlistSettings (line 341) | function getMcpAllowlistSettings(): SettingsJson { function getMcpDenylistSettings (line 353) | function getMcpDenylistSettings(): SettingsJson { function isMcpServerDenied (line 364) | function isMcpServerDenied( function isMcpServerAllowedByPolicy (line 417) | function isMcpServerAllowedByPolicy( function filterMcpServersByPolicy (line 536) | function filterMcpServersByPolicy(configs: Record): { function expandEnvVars (line 556) | function expandEnvVars(config: McpServerConfig): { function addMcpConfig (line 625) | async function addMcpConfig( function removeMcpConfig (line 769) | async function removeMcpConfig( function getProjectMcpConfigsFromCwd (line 843) | function getProjectMcpConfigsFromCwd(): { function getMcpConfigsByScope (line 888) | function getMcpConfigsByScope( function getMcpConfigByName (line 1033) | function getMcpConfigByName(name: string): ScopedMcpServerConfig | null { function getClaudeCodeMcpConfigs (line 1071) | async function getClaudeCodeMcpConfigs( function getAllMcpConfigs (line 1258) | async function getAllMcpConfigs(): Promise<{ function parseMcpConfig (line 1297) | function parseMcpConfig(params: { function parseMcpConfigFromFilePath (line 1384) | function parseMcpConfigFromFilePath(params: { function shouldAllowManagedMcpServersOnly (line 1485) | function shouldAllowManagedMcpServersOnly(): boolean { function areMcpConfigsAllowedWithEnterpriseMcpConfig (line 1494) | function areMcpConfigsAllowedWithEnterpriseMcpConfig( constant DEFAULT_DISABLED_BUILTIN (line 1512) | const DEFAULT_DISABLED_BUILTIN = feature('CHICAGO_MCP') function isDefaultDisabledBuiltin (line 1519) | function isDefaultDisabledBuiltin(name: string): boolean { function isMcpServerDisabled (line 1528) | function isMcpServerDisabled(name: string): boolean { function toggleMembership (line 1538) | function toggleMembership( function setMcpServerEnabled (line 1553) | function setMcpServerEnabled(name: string, enabled: boolean): void { FILE: restored-src/src/services/mcp/elicitationHandler.ts type ElicitationWaitingState (line 22) | type ElicitationWaitingState = { type ElicitationRequestEvent (line 29) | type ElicitationRequestEvent = { function getElicitationMode (line 49) | function getElicitationMode(params: ElicitRequestParams): 'form' | 'url' { function findElicitationInQueue (line 54) | function findElicitationInQueue( function registerElicitationHandler (line 68) | function registerElicitationHandler( function runElicitationHooks (line 214) | async function runElicitationHooks( function runElicitationResultHooks (line 264) | async function runElicitationResultHooks( FILE: restored-src/src/services/mcp/envExpansion.ts function expandEnvVarsInString (line 10) | function expandEnvVarsInString(value: string): { FILE: restored-src/src/services/mcp/headersHelper.ts function isMcpServerFromProjectOrLocalSettings (line 20) | function isMcpServerFromProjectOrLocalSettings( function getMcpHeadersFromHelper (line 32) | async function getMcpHeadersFromHelper( function getMcpServerHeaders (line 125) | async function getMcpServerHeaders( FILE: restored-src/src/services/mcp/mcpStringUtils.ts function mcpInfoFromString (line 19) | function mcpInfoFromString(toolString: string): { function getMcpPrefix (line 39) | function getMcpPrefix(serverName: string): string { function buildMcpToolName (line 50) | function buildMcpToolName(serverName: string, toolName: string): string { function getToolNameForPermissionCheck (line 60) | function getToolNameForPermissionCheck(tool: { function getMcpDisplayName (line 75) | function getMcpDisplayName( function extractMcpToolDisplayName (line 88) | function extractMcpToolDisplayName(userFacingName: string): string { FILE: restored-src/src/services/mcp/normalization.ts constant CLAUDEAI_SERVER_PREFIX (line 7) | const CLAUDEAI_SERVER_PREFIX = 'claude.ai ' function normalizeNameForMCP (line 17) | function normalizeNameForMCP(name: string): string { FILE: restored-src/src/services/mcp/oauthPort.ts constant REDIRECT_PORT_RANGE (line 9) | const REDIRECT_PORT_RANGE = constant REDIRECT_PORT_FALLBACK (line 13) | const REDIRECT_PORT_FALLBACK = 3118 function buildRedirectUri (line 21) | function buildRedirectUri( function getMcpOAuthCallbackPort (line 27) | function getMcpOAuthCallbackPort(): number | undefined { function findAvailablePort (line 36) | async function findAvailablePort(): Promise { FILE: restored-src/src/services/mcp/officialRegistry.ts type RegistryServer (line 5) | type RegistryServer = { type RegistryResponse (line 11) | type RegistryResponse = { function normalizeUrl (line 19) | function normalizeUrl(url: string): string | undefined { function prefetchOfficialMcpUrls (line 33) | async function prefetchOfficialMcpUrls(): Promise { function isOfficialMcpUrl (line 66) | function isOfficialMcpUrl(normalizedUrl: string): boolean { function resetOfficialMcpUrlsForTesting (line 70) | function resetOfficialMcpUrlsForTesting(): void { FILE: restored-src/src/services/mcp/types.ts type ConfigScope (line 21) | type ConfigScope = z.infer> type Transport (line 26) | type Transport = z.infer> type McpStdioServerConfig (line 137) | type McpStdioServerConfig = z.infer< type McpSSEServerConfig (line 140) | type McpSSEServerConfig = z.infer< type McpSSEIDEServerConfig (line 143) | type McpSSEIDEServerConfig = z.infer< type McpWebSocketIDEServerConfig (line 146) | type McpWebSocketIDEServerConfig = z.infer< type McpHTTPServerConfig (line 149) | type McpHTTPServerConfig = z.infer< type McpWebSocketServerConfig (line 152) | type McpWebSocketServerConfig = z.infer< type McpSdkServerConfig (line 155) | type McpSdkServerConfig = z.infer< type McpClaudeAIProxyServerConfig (line 158) | type McpClaudeAIProxyServerConfig = z.infer< type McpServerConfig (line 161) | type McpServerConfig = z.infer> type ScopedMcpServerConfig (line 163) | type ScopedMcpServerConfig = McpServerConfig & { type McpJsonConfig (line 177) | type McpJsonConfig = z.infer> type ConnectedMCPServer (line 180) | type ConnectedMCPServer = { type FailedMCPServer (line 194) | type FailedMCPServer = { type NeedsAuthMCPServer (line 201) | type NeedsAuthMCPServer = { type PendingMCPServer (line 207) | type PendingMCPServer = { type DisabledMCPServer (line 215) | type DisabledMCPServer = { type MCPServerConnection (line 221) | type MCPServerConnection = type ServerResource (line 229) | type ServerResource = Resource & { server: string } type SerializedTool (line 232) | interface SerializedTool { type SerializedClient (line 246) | interface SerializedClient { type MCPCliState (line 252) | interface MCPCliState { FILE: restored-src/src/services/mcp/useManageMCPConnections.ts constant MAX_RECONNECT_ATTEMPTS (line 88) | const MAX_RECONNECT_ATTEMPTS = 5 constant INITIAL_BACKOFF_MS (line 89) | const INITIAL_BACKOFF_MS = 1000 constant MAX_BACKOFF_MS (line 90) | const MAX_BACKOFF_MS = 30000 function getErrorKey (line 95) | function getErrorKey(error: PluginError): string { function addErrorsToAppState (line 103) | function addErrorsToAppState( function useManageMCPConnections (line 143) | function useManageMCPConnections( function getTransportDisplayName (line 1131) | function getTransportDisplayName(type: string): string { FILE: restored-src/src/services/mcp/utils.ts function filterToolsByServer (line 39) | function filterToolsByServer(tools: Tool[], serverName: string): Tool[] { function commandBelongsToServer (line 52) | function commandBelongsToServer( function filterCommandsByServer (line 70) | function filterCommandsByServer( function filterMcpPromptsByServer (line 85) | function filterMcpPromptsByServer( function filterResourcesByServer (line 102) | function filterResourcesByServer( function excludeToolsByServer (line 115) | function excludeToolsByServer( function excludeCommandsByServer (line 129) | function excludeCommandsByServer( function excludeResourcesByServer (line 142) | function excludeResourcesByServer( function hashMcpConfig (line 157) | function hashMcpConfig(config: ScopedMcpServerConfig): string { function excludeStalePluginClients (line 185) | function excludeStalePluginClients( function isToolFromMcpServer (line 232) | function isToolFromMcpServer( function isMcpTool (line 245) | function isMcpTool(tool: Tool): boolean { function isMcpCommand (line 254) | function isMcpCommand(command: Command): boolean { function describeMcpConfigFilePath (line 263) | function describeMcpConfigFilePath(scope: ConfigScope): string { function getScopeLabel (line 282) | function getScopeLabel(scope: ConfigScope): string { function ensureConfigScope (line 301) | function ensureConfigScope(scope?: string): ConfigScope { function ensureTransport (line 313) | function ensureTransport(type?: string): 'stdio' | 'sse' | 'http' { function parseHeaders (line 325) | function parseHeaders(headerArray: string[]): Record { function getProjectMcpServerStatus (line 351) | function getProjectMcpServerStatus( function getMcpServerScopeFromToolName (line 413) | function getMcpServerScopeFromToolName( function isStdioConfig (line 439) | function isStdioConfig( function isSSEConfig (line 445) | function isSSEConfig(config: McpServerConfig): config is McpSSEServerCon... function isHTTPConfig (line 449) | function isHTTPConfig(config: McpServerConfig): config is McpHTTPServerC... function isWebSocketConfig (line 453) | function isWebSocketConfig( function extractAgentMcpServers (line 466) | function extractAgentMcpServers( function getLoggingSafeMcpBaseUrl (line 561) | function getLoggingSafeMcpBaseUrl( FILE: restored-src/src/services/mcp/vscodeSdkMcp.ts type AutoModeEnabledState (line 13) | type AutoModeEnabledState = 'enabled' | 'disabled' | 'opt-in' function readAutoModeEnabledState (line 14) | function readAutoModeEnabledState(): AutoModeEnabledState | undefined { function notifyVscodeFileUpdated (line 39) | function notifyVscodeFileUpdated( function setupVscodeSdkMcp (line 64) | function setupVscodeSdkMcp(sdkClients: MCPServerConnection[]): void { FILE: restored-src/src/services/mcp/xaa.ts constant XAA_REQUEST_TIMEOUT_MS (line 29) | const XAA_REQUEST_TIMEOUT_MS = 30000 constant TOKEN_EXCHANGE_GRANT (line 31) | const TOKEN_EXCHANGE_GRANT = 'urn:ietf:params:oauth:grant-type:token-exc... constant JWT_BEARER_GRANT (line 32) | const JWT_BEARER_GRANT = 'urn:ietf:params:oauth:grant-type:jwt-bearer' constant ID_JAG_TOKEN_TYPE (line 33) | const ID_JAG_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:id-jag' constant ID_TOKEN_TYPE (line 34) | const ID_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:id_token' function makeXaaFetch (line 42) | function makeXaaFetch(abortSignal?: AbortSignal): FetchLike { function normalizeUrl (line 61) | function normalizeUrl(url: string): string { class XaaTokenExchangeError (line 77) | class XaaTokenExchangeError extends Error { method constructor (line 79) | constructor(message: string, shouldClearIdToken: boolean) { constant SENSITIVE_TOKEN_RE (line 91) | const SENSITIVE_TOKEN_RE = function redactTokens (line 94) | function redactTokens(raw: unknown): string { type ProtectedResourceMetadata (line 126) | type ProtectedResourceMetadata = { function discoverProtectedResource (line 135) | async function discoverProtectedResource( type AuthorizationServerMetadata (line 167) | type AuthorizationServerMetadata = { function discoverAuthorizationServer (line 178) | async function discoverAuthorizationServer( type JwtAuthGrantResult (line 214) | type JwtAuthGrantResult = { function requestJwtAuthorizationGrant (line 233) | async function requestJwtAuthorizationGrant(opts: { type XaaTokenResult (line 312) | type XaaTokenResult = { type XaaResult (line 320) | type XaaResult = XaaTokenResult & { function exchangeJwtAuthGrant (line 337) | async function exchangeJwtAuthGrant(opts: { type XaaConfig (line 402) | type XaaConfig = { function performCrossAppAccess (line 426) | async function performCrossAppAccess( FILE: restored-src/src/services/mcp/xaaIdpLogin.ts function isXaaEnabled (line 32) | function isXaaEnabled(): boolean { type XaaIdpSettings (line 36) | type XaaIdpSettings = { function getXaaIdpSettings (line 47) | function getXaaIdpSettings(): XaaIdpSettings | undefined { constant IDP_LOGIN_TIMEOUT_MS (line 51) | const IDP_LOGIN_TIMEOUT_MS = 5 * 60 * 1000 constant IDP_REQUEST_TIMEOUT_MS (line 52) | const IDP_REQUEST_TIMEOUT_MS = 30000 constant ID_TOKEN_EXPIRY_BUFFER_S (line 53) | const ID_TOKEN_EXPIRY_BUFFER_S = 60 type IdpLoginOptions (line 55) | type IdpLoginOptions = { function issuerKey (line 84) | function issuerKey(issuer: string): string { function getCachedIdpIdToken (line 99) | function getCachedIdpIdToken(idpIssuer: string): string | undefined { function saveIdpIdToken (line 109) | function saveIdpIdToken( function saveIdpIdTokenFromJwt (line 133) | function saveIdpIdTokenFromJwt( function clearIdpIdToken (line 143) | function clearIdpIdToken(idpIssuer: string): void { function saveIdpClientSecret (line 159) | function saveIdpClientSecret( function getIdpClientSecret (line 177) | function getIdpClientSecret(idpIssuer: string): string | undefined { function clearIdpClientSecret (line 187) | function clearIdpClientSecret(idpIssuer: string): void { function discoverOidc (line 202) | async function discoverOidc( function jwtExp (line 252) | function jwtExp(jwt: string): number | undefined { function waitForCallback (line 272) | function waitForCallback( function acquireIdpIdToken (line 401) | async function acquireIdpIdToken( FILE: restored-src/src/services/mcpServerApproval.tsx function handleMcpjsonServerApprovals (line 15) | async function handleMcpjsonServerApprovals(root: Root): Promise { FILE: restored-src/src/services/mockRateLimits.ts type MockHeaders (line 12) | type MockHeaders = { type MockHeaderKey (line 43) | type MockHeaderKey = type MockScenario (line 60) | type MockScenario = constant DEFAULT_MOCK_SUBSCRIPTION (line 89) | const DEFAULT_MOCK_SUBSCRIPTION: SubscriptionType = 'max' type ExceededLimit (line 92) | type ExceededLimit = { function setMockHeader (line 100) | function setMockHeader( function updateRetryAfter (line 186) | function updateRetryAfter(): void { function updateRepresentativeClaim (line 210) | function updateRepresentativeClaim(): void { function addExceededLimit (line 249) | function addExceededLimit( function setMockEarlyWarning (line 276) | function setMockEarlyWarning( function clearMockEarlyWarning (line 312) | function clearMockEarlyWarning(): void { function setMockRateLimitScenario (line 321) | function setMockRateLimitScenario(scenario: MockScenario): void { function getMockHeaderless429Message (line 602) | function getMockHeaderless429Message(): string | null { function getMockHeaders (line 616) | function getMockHeaders(): MockHeaders | null { function getMockStatus (line 627) | function getMockStatus(): string { function clearMockHeaders (line 678) | function clearMockHeaders(): void { function applyMockHeaders (line 689) | function applyMockHeaders( function shouldProcessMockLimits (line 713) | function shouldProcessMockLimits(): boolean { function getCurrentMockScenario (line 720) | function getCurrentMockScenario(): MockScenario | null { function getScenarioDescription (line 758) | function getScenarioDescription(scenario: MockScenario): string { function setMockSubscriptionType (line 806) | function setMockSubscriptionType( function getMockSubscriptionType (line 816) | function getMockSubscriptionType(): SubscriptionType | null { function shouldUseMockSubscription (line 825) | function shouldUseMockSubscription(): boolean { function setMockBillingAccess (line 834) | function setMockBillingAccess(hasAccess: boolean | null): void { function isMockFastModeRateLimitScenario (line 843) | function isMockFastModeRateLimitScenario(): boolean { function checkMockFastModeRateLimit (line 847) | function checkMockFastModeRateLimit( FILE: restored-src/src/services/notifier.ts type NotificationOptions (line 12) | type NotificationOptions = { function sendNotification (line 18) | async function sendNotification( constant DEFAULT_TITLE (line 38) | const DEFAULT_TITLE = 'Claude Code' function sendToChannel (line 40) | async function sendToChannel( function sendAuto (line 77) | async function sendAuto( function generateKittyId (line 106) | function generateKittyId(): number { function isAppleTerminalBellDisabled (line 110) | async function isAppleTerminalBellDisabled(): Promise { FILE: restored-src/src/services/oauth/auth-code-listener.ts class AuthCodeListener (line 18) | class AuthCodeListener { method constructor (line 27) | constructor(callbackPath: string = '/callback') { method start (line 37) | async start(port?: number): Promise { method getPort (line 54) | getPort(): number { method hasPendingResponse (line 58) | hasPendingResponse(): boolean { method waitForAuthorization (line 62) | async waitForAuthorization( method handleSuccessRedirect (line 80) | handleSuccessRedirect( method handleErrorRedirect (line 111) | handleErrorRedirect(): void { method startLocalListener (line 125) | private startLocalListener(onReady: () => Promise): void { method handleRedirect (line 134) | private handleRedirect(req: IncomingMessage, res: ServerResponse): void { method validateAndRespond (line 152) | private validateAndRespond( method handleError (line 177) | private handleError(err: Error): void { method resolve (line 183) | private resolve(authorizationCode: string): void { method reject (line 191) | private reject(error: Error): void { method close (line 199) | close(): void { FILE: restored-src/src/services/oauth/client.ts function shouldUseClaudeAIAuth (line 38) | function shouldUseClaudeAIAuth(scopes: string[] | undefined): boolean { function parseScopes (line 42) | function parseScopes(scopeString?: string): string[] { function buildAuthUrl (line 46) | function buildAuthUrl({ function exchangeCodeForTokens (line 107) | async function exchangeCodeForTokens( function refreshOAuthToken (line 146) | async function refreshOAuthToken( function fetchAndStoreUserRoles (line 276) | async function fetchAndStoreUserRoles( function createAndStoreApiKey (line 311) | async function createAndStoreApiKey( function isOAuthTokenExpired (line 344) | function isOAuthTokenExpired(expiresAt: number | null): boolean { function fetchProfileInfo (line 355) | async function fetchProfileInfo(accessToken: string): Promise<{ function getOrganizationUUID (line 426) | async function getOrganizationUUID(): Promise { function populateOAuthAccountInfoIfNeeded (line 451) | async function populateOAuthAccountInfoIfNeeded(): Promise { function storeOAuthAccountInfo (line 517) | function storeOAuthAccountInfo({ FILE: restored-src/src/services/oauth/crypto.ts function base64URLEncode (line 3) | function base64URLEncode(buffer: Buffer): string { function generateCodeVerifier (line 11) | function generateCodeVerifier(): string { function generateCodeChallenge (line 15) | function generateCodeChallenge(verifier: string): string { function generateState (line 21) | function generateState(): string { FILE: restored-src/src/services/oauth/getOauthProfile.ts function getOauthProfileFromApiKey (line 7) | async function getOauthProfileFromApiKey(): Promise< function getOauthProfileFromOauthToken (line 37) | async function getOauthProfileFromOauthToken( FILE: restored-src/src/services/oauth/index.ts class OAuthService (line 21) | class OAuthService { method constructor (line 28) | constructor() { method startOAuthFlow (line 32) | async startOAuthFlow( method waitForAuthorizationCode (line 134) | private async waitForAuthorizationCode( method handleManualAuthCodeInput (line 157) | handleManualAuthCodeInput(params: { method formatTokens (line 169) | private formatTokens( method cleanup (line 194) | cleanup(): void { FILE: restored-src/src/services/plugins/PluginInstallationManager.ts type SetAppState (line 25) | type SetAppState = (f: (prevState: AppState) => AppState) => void function updateMarketplaceStatus (line 30) | function updateMarketplaceStatus( function performBackgroundPluginInstallations (line 60) | async function performBackgroundPluginInstallations( FILE: restored-src/src/services/plugins/pluginCliCommands.ts type PluginCliCommand (line 40) | type PluginCliCommand = function handlePluginCommandError (line 53) | function handlePluginCommandError( function installPlugin (line 103) | async function installPlugin( function uninstallPlugin (line 153) | async function uninstallPlugin( function enablePlugin (line 195) | async function enablePlugin( function disablePlugin (line 236) | async function disablePlugin( function disableAllPlugins (line 275) | async function disableAllPlugins(): Promise { function updatePluginCli (line 300) | async function updatePluginCli( FILE: restored-src/src/services/plugins/pluginOperations.ts constant VALID_INSTALLABLE_SCOPES (line 72) | const VALID_INSTALLABLE_SCOPES = ['user', 'project', 'local'] as const type InstallableScope (line 75) | type InstallableScope = (typeof VALID_INSTALLABLE_SCOPES)[number] constant VALID_UPDATE_SCOPES (line 78) | const VALID_UPDATE_SCOPES: readonly PluginScope[] = [ function assertInstallableScope (line 90) | function assertInstallableScope( function isInstallableScope (line 104) | function isInstallableScope( function getProjectPathForScope (line 114) | function getProjectPathForScope(scope: PluginScope): string | undefined { function isPluginEnabledAtProjectScope (line 128) | function isPluginEnabledAtProjectScope(pluginId: string): boolean { type PluginOperationResult (line 141) | type PluginOperationResult = { type PluginUpdateResult (line 154) | type PluginUpdateResult = { function findPluginInSettings (line 180) | function findPluginInSettings(plugin: string): { function findPluginByIdentifier (line 206) | function findPluginByIdentifier( function resolveDelistedPluginId (line 230) | function resolveDelistedPluginId( function getPluginInstallationFromV2 (line 258) | function getPluginInstallationFromV2(pluginId: string): { function installPluginOp (line 321) | async function installPluginOp( function uninstallPluginOp (line 427) | async function uninstallPluginOp( function setPluginEnabledOp (line 573) | async function setPluginEnabledOp( function enablePluginOp (line 756) | async function enablePluginOp( function disablePluginOp (line 770) | async function disablePluginOp( function disableAllPluginsOp (line 782) | async function disableAllPluginsOp(): Promise { function updatePluginOp (line 829) | async function updatePluginOp( function performPluginUpdate (line 896) | async function performPluginUpdate({ FILE: restored-src/src/services/policyLimits/index.ts function isNodeError (line 50) | function isNodeError(e: unknown): e is NodeJS.ErrnoException { constant CACHE_FILENAME (line 55) | const CACHE_FILENAME = 'policy-limits.json' constant FETCH_TIMEOUT_MS (line 56) | const FETCH_TIMEOUT_MS = 10000 // 10 seconds constant DEFAULT_MAX_RETRIES (line 57) | const DEFAULT_MAX_RETRIES = 5 constant POLLING_INTERVAL_MS (line 58) | const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1 hour constant LOADING_PROMISE_TIMEOUT_MS (line 69) | const LOADING_PROMISE_TIMEOUT_MS = 30000 // 30 seconds function _resetPolicyLimitsForTesting (line 79) | function _resetPolicyLimitsForTesting(): void { function initializePolicyLimitsLoadingPromise (line 94) | function initializePolicyLimitsLoadingPromise(): void { function getCachePath (line 119) | function getCachePath(): string { function getPolicyLimitsEndpoint (line 126) | function getPolicyLimitsEndpoint(): string { function sortKeysDeep (line 133) | function sortKeysDeep(obj: unknown): unknown { function computeChecksum (line 152) | function computeChecksum( function isPolicyLimitsEligible (line 167) | function isPolicyLimitsEligible(): boolean { function waitForPolicyLimitsToLoad (line 217) | async function waitForPolicyLimitsToLoad(): Promise { function getAuthHeaders (line 227) | function getAuthHeaders(): { function fetchWithRetry (line 267) | async function fetchWithRetry( function fetchPolicyLimits (line 300) | async function fetchPolicyLimits( function loadCachedRestrictions (line 392) | function loadCachedRestrictions(): PolicyLimitsResponse['restrictions'] ... function saveCachedRestrictions (line 410) | async function saveCachedRestrictions( function fetchAndLoadPolicyLimits (line 432) | async function fetchAndLoadPolicyLimits(): Promise< constant ESSENTIAL_TRAFFIC_DENY_ON_MISS (line 502) | const ESSENTIAL_TRAFFIC_DENY_ON_MISS = new Set(['allow_product_feedback']) function isPolicyAllowed (line 510) | function isPolicyAllowed(policy: string): boolean { function getRestrictionsFromCache (line 531) | function getRestrictionsFromCache(): function loadPolicyLimits (line 556) | async function loadPolicyLimits(): Promise { function refreshPolicyLimits (line 581) | async function refreshPolicyLimits(): Promise { function clearPolicyLimitsCache (line 595) | async function clearPolicyLimitsCache(): Promise { function pollPolicyLimits (line 613) | async function pollPolicyLimits(): Promise { function startBackgroundPolling (line 635) | function startBackgroundPolling(): void { function stopBackgroundPolling (line 658) | function stopBackgroundPolling(): void { FILE: restored-src/src/services/policyLimits/types.ts type PolicyLimitsResponse (line 14) | type PolicyLimitsResponse = z.infer< type PolicyLimitsFetchResult (line 21) | type PolicyLimitsFetchResult = { FILE: restored-src/src/services/preventSleep.ts constant CAFFEINATE_TIMEOUT_SECONDS (line 21) | const CAFFEINATE_TIMEOUT_SECONDS = 300 // 5 minutes constant RESTART_INTERVAL_MS (line 25) | const RESTART_INTERVAL_MS = 4 * 60 * 1000 function startPreventSleep (line 36) | function startPreventSleep(): void { function stopPreventSleep (line 49) | function stopPreventSleep(): void { function forceStopPreventSleep (line 64) | function forceStopPreventSleep(): void { function startRestartInterval (line 70) | function startRestartInterval(): void { function stopRestartInterval (line 94) | function stopRestartInterval(): void { function spawnCaffeinate (line 101) | function spawnCaffeinate(): void { function killCaffeinate (line 153) | function killCaffeinate(): void { FILE: restored-src/src/services/rateLimitMessages.ts constant FEEDBACK_CHANNEL_ANT (line 15) | const FEEDBACK_CHANNEL_ANT = '#briarpatch-cc' constant RATE_LIMIT_ERROR_PREFIXES (line 21) | const RATE_LIMIT_ERROR_PREFIXES = [ function isRateLimitErrorMessage (line 32) | function isRateLimitErrorMessage(text: string): boolean { type RateLimitMessage (line 36) | type RateLimitMessage = { function getRateLimitMessage (line 45) | function getRateLimitMessage( function getRateLimitErrorMessage (line 110) | function getRateLimitErrorMessage( function getRateLimitWarning (line 128) | function getRateLimitWarning( function getLimitReachedText (line 143) | function getLimitReachedText(limits: ClaudeAILimits, model: string): str... function getEarlyWarningText (line 199) | function getEarlyWarningText(limits: ClaudeAILimits): string | null { function getWarningUpsellText (line 261) | function getWarningUpsellText( function getUsingOverageText (line 303) | function getUsingOverageText(limits: ClaudeAILimits): string { function formatLimitReachedText (line 333) | function formatLimitReachedText( FILE: restored-src/src/services/rateLimitMocking.ts function processRateLimitHeaders (line 19) | function processRateLimitHeaders( function shouldProcessRateLimits (line 32) | function shouldProcessRateLimits(isSubscriber: boolean): boolean { function checkMockRateLimitError (line 42) | function checkMockRateLimitError( function isMockRateLimitError (line 137) | function isMockRateLimitError(error: APIError): boolean { FILE: restored-src/src/services/remoteManagedSettings/index.ts constant SETTINGS_TIMEOUT_MS (line 52) | const SETTINGS_TIMEOUT_MS = 10000 // 10 seconds for settings fetch constant DEFAULT_MAX_RETRIES (line 53) | const DEFAULT_MAX_RETRIES = 5 constant POLLING_INTERVAL_MS (line 54) | const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1 hour constant LOADING_PROMISE_TIMEOUT_MS (line 66) | const LOADING_PROMISE_TIMEOUT_MS = 30000 // 30 seconds function initializeRemoteManagedSettingsLoadingPromise (line 77) | function initializeRemoteManagedSettingsLoadingPromise(): void { function getRemoteManagedSettingsEndpoint (line 105) | function getRemoteManagedSettingsEndpoint() { function sortKeysDeep (line 112) | function sortKeysDeep(obj: unknown): unknown { function computeChecksumFromSettings (line 131) | function computeChecksumFromSettings(settings: SettingsJson): string { function isEligibleForRemoteManagedSettings (line 144) | function isEligibleForRemoteManagedSettings(): boolean { function waitForRemoteManagedSettingsToLoad (line 155) | async function waitForRemoteManagedSettingsToLoad(): Promise { function getRemoteSettingsAuthHeaders (line 166) | function getRemoteSettingsAuthHeaders(): { function fetchWithRetry (line 209) | async function fetchWithRetry( function fetchRemoteManagedSettings (line 248) | async function fetchRemoteManagedSettings( function saveSettings (line 367) | async function saveSettings(settings: SettingsJson): Promise { function clearRemoteManagedSettingsCache (line 391) | async function clearRemoteManagedSettingsCache(): Promise { function fetchAndLoadRemoteManagedSettings (line 415) | async function fetchAndLoadRemoteManagedSettings(): Promise { function refreshRemoteManagedSettings (line 562) | async function refreshRemoteManagedSettings(): Promise { function pollRemoteSettings (line 584) | async function pollRemoteSettings(): Promise { function startBackgroundPolling (line 612) | function startBackgroundPolling(): void { function stopBackgroundPolling (line 633) | function stopBackgroundPolling(): void { FILE: restored-src/src/services/remoteManagedSettings/securityCheck.tsx type SecurityCheckResult (line 12) | type SecurityCheckResult = 'approved' | 'rejected' | 'no_check_needed'; function checkManagedSettingsSecurity (line 22) | async function checkManagedSettingsSecurity(cachedSettings: SettingsJson... function handleSecurityCheckResult (line 67) | function handleSecurityCheckResult(result: SecurityCheckResult): boolean { FILE: restored-src/src/services/remoteManagedSettings/syncCache.ts function resetSyncCache (line 27) | function resetSyncCache(): void { function isRemoteManagedSettingsEligible (line 49) | function isRemoteManagedSettingsEligible(): boolean { FILE: restored-src/src/services/remoteManagedSettings/syncCacheState.ts constant SETTINGS_FILENAME (line 32) | const SETTINGS_FILENAME = 'remote-settings.json' function setSessionCache (line 37) | function setSessionCache(value: SettingsJson | null): void { function resetSyncCache (line 41) | function resetSyncCache(): void { function setEligibility (line 46) | function setEligibility(v: boolean): boolean { function getSettingsPath (line 51) | function getSettingsPath(): string { function loadSettings (line 57) | function loadSettings(): SettingsJson | null { function getRemoteManagedSettingsSyncFromCache (line 70) | function getRemoteManagedSettingsSyncFromCache(): SettingsJson | null { FILE: restored-src/src/services/remoteManagedSettings/types.ts type RemoteManagedSettingsResponse (line 18) | type RemoteManagedSettingsResponse = z.infer< type RemoteManagedSettingsFetchResult (line 25) | type RemoteManagedSettingsFetchResult = { FILE: restored-src/src/services/settingsSync/index.ts constant SETTINGS_SYNC_TIMEOUT_MS (line 51) | const SETTINGS_SYNC_TIMEOUT_MS = 10000 // 10 seconds constant DEFAULT_MAX_RETRIES (line 52) | const DEFAULT_MAX_RETRIES = 3 constant MAX_FILE_SIZE_BYTES (line 53) | const MAX_FILE_SIZE_BYTES = 500 * 1024 // 500 KB per file (matches backe... function uploadUserSettingsInBackground (line 60) | async function uploadUserSettingsInBackground(): Promise { function _resetDownloadPromiseForTesting (line 118) | function _resetDownloadPromiseForTesting(): void { function downloadUserSettings (line 129) | function downloadUserSettings(): Promise { function redownloadUserSettings (line 152) | function redownloadUserSettings(): Promise { function doDownloadUserSettings (line 157) | async function doDownloadUserSettings( function isUsingOAuth (line 212) | function isUsingOAuth(): boolean { function getSettingsSyncEndpoint (line 223) | function getSettingsSyncEndpoint(): string { function getSettingsSyncAuthHeaders (line 227) | function getSettingsSyncAuthHeaders(): { function fetchUserSettingsOnce (line 247) | async function fetchUserSettingsOnce(): Promise { function fetchUserSettings (line 315) | async function fetchUserSettings( function uploadUserSettings (line 347) | async function uploadUserSettings( function tryReadFileForSync (line 398) | async function tryReadFileForSync(filePath: string): Promise> type SettingsSyncFetchResult (line 40) | type SettingsSyncFetchResult = { type SettingsSyncUploadResult (line 51) | type SettingsSyncUploadResult = { constant SYNC_KEYS (line 61) | const SYNC_KEYS = { FILE: restored-src/src/services/teamMemorySync/index.ts constant TEAM_MEMORY_SYNC_TIMEOUT_MS (line 71) | const TEAM_MEMORY_SYNC_TIMEOUT_MS = 30_000 constant MAX_FILE_SIZE_BYTES (line 75) | const MAX_FILE_SIZE_BYTES = 250_000 constant MAX_PUT_BODY_BYTES (line 89) | const MAX_PUT_BODY_BYTES = 200_000 constant MAX_RETRIES (line 90) | const MAX_RETRIES = 3 constant MAX_CONFLICT_RETRIES (line 91) | const MAX_CONFLICT_RETRIES = 2 type SyncState (line 100) | type SyncState = { function createSyncState (line 121) | function createSyncState(): SyncState { function hashContent (line 134) | function hashContent(content: string): string { function isErrnoException (line 142) | function isErrnoException(e: unknown): e is NodeJS.ErrnoException { function isUsingOAuth (line 151) | function isUsingOAuth(): boolean { function getTeamMemorySyncEndpoint (line 163) | function getTeamMemorySyncEndpoint(repoSlug: string): string { function getAuthHeaders (line 169) | function getAuthHeaders(): { function fetchTeamMemoryOnce (line 188) | async function fetchTeamMemoryOnce( function fetchTeamMemoryHashes (line 315) | async function fetchTeamMemoryHashes( function fetchTeamMemory (line 387) | async function fetchTeamMemory( function batchDeltaByBytes (line 426) | function batchDeltaByBytes( function uploadTeamMemory (line 462) | async function uploadTeamMemory( function readLocalTeamMemory (line 567) | async function readLocalTeamMemory(maxEntries: number | null): Promise<{ function writeRemoteEntriesToLocal (line 689) | async function writeRemoteEntriesToLocal( function isTeamMemorySyncAvailable (line 762) | function isTeamMemorySyncAvailable(): boolean { function pullTeamMemory (line 770) | async function pullTeamMemory( function pushTeamMemory (line 889) | async function pushTeamMemory( function syncTeamMemory (line 1153) | async function syncTeamMemory(state: SyncState): Promise<{ function logPull (line 1195) | function logPull( function logPush (line 1218) | function logPush( FILE: restored-src/src/services/teamMemorySync/secretScanner.ts type SecretRule (line 23) | type SecretRule = { type SecretMatch (line 32) | type SecretMatch = { constant ANT_KEY_PFX (line 46) | const ANT_KEY_PFX = ['sk', 'ant', 'api'].join('-') constant SECRET_RULES (line 48) | const SECRET_RULES: SecretRule[] = [ function getCompiledRules (line 229) | function getCompiledRules(): Array<{ id: string; re: RegExp }> { function ruleIdToLabel (line 243) | function ruleIdToLabel(ruleId: string): string { function scanForSecrets (line 277) | function scanForSecrets(content: string): SecretMatch[] { function getSecretLabel (line 301) | function getSecretLabel(ruleId: string): string { function redactSecrets (line 312) | function redactSecrets(content: string): string { FILE: restored-src/src/services/teamMemorySync/teamMemSecretGuard.ts function checkTeamMemSecrets (line 15) | function checkTeamMemSecrets( FILE: restored-src/src/services/teamMemorySync/types.ts type TeamMemoryData (line 59) | type TeamMemoryData = z.infer> type SkippedSecretFile (line 66) | type SkippedSecretFile = { type TeamMemorySyncFetchResult (line 77) | type TeamMemorySyncFetchResult = { type TeamMemoryHashesResult (line 94) | type TeamMemoryHashesResult = { type TeamMemorySyncPushResult (line 107) | type TeamMemorySyncPushResult = { type TeamMemorySyncUploadResult (line 129) | type TeamMemorySyncUploadResult = { FILE: restored-src/src/services/teamMemorySync/watcher.ts constant DEBOUNCE_MS (line 35) | const DEBOUNCE_MS = 2000 // Wait 2s after last change before pushing function isPermanentFailure (line 61) | function isPermanentFailure(r: TeamMemorySyncPushResult): boolean { function executePush (line 84) | async function executePush(): Promise { function schedulePush (line 132) | function schedulePush(): void { function startFileWatcher (line 167) | async function startFileWatcher(teamDir: string): Promise { function startTeamMemoryWatcher (line 252) | async function startTeamMemoryWatcher(): Promise { function notifyTeamMemoryWrite (line 314) | async function notifyTeamMemoryWrite(): Promise { function stopTeamMemoryWatcher (line 327) | async function stopTeamMemoryWatcher(): Promise { function _resetWatcherStateForTesting (line 365) | function _resetWatcherStateForTesting(opts?: { function _startFileWatcherForTesting (line 385) | function _startFileWatcherForTesting(dir: string): Promise { FILE: restored-src/src/services/tips/tipHistory.ts function recordTipShown (line 3) | function recordTipShown(tipId: string): void { function getSessionsSinceLastShown (line 12) | function getSessionsSinceLastShown(tipId: string): number { FILE: restored-src/src/services/tips/tipRegistry.ts function isOfficialMarketplaceInstalled (line 60) | async function isOfficialMarketplaceInstalled(): Promise { function isMarketplacePluginRelevant (line 69) | async function isMarketplacePluginRelevant( method isRelevant (line 101) | async isRelevant() { method isRelevant (line 176) | async isRelevant() { method isRelevant (line 191) | async isRelevant() { method isRelevant (line 207) | async isRelevant() { method isRelevant (line 221) | async isRelevant() { method isRelevant (line 260) | async isRelevant() { method isRelevant (line 284) | async isRelevant() { method isRelevant (line 310) | async isRelevant() { method isRelevant (line 343) | async isRelevant() { method isRelevant (line 396) | async isRelevant() { method isRelevant (line 422) | async isRelevant() { method isRelevant (line 432) | async isRelevant() { method isRelevant (line 478) | async isRelevant() { method isRelevant (line 626) | async isRelevant() { function getCustomTips (line 655) | function getCustomTips(): Tip[] { function getRelevantTips (line 668) | async function getRelevantTips(context?: TipContext): Promise { FILE: restored-src/src/services/tips/tipScheduler.ts function selectTipWithLongestTimeSinceShown (line 10) | function selectTipWithLongestTimeSinceShown( function getTipToShowOnSpinner (line 32) | async function getTipToShowOnSpinner( function recordShownTip (line 48) | function recordShownTip(tip: Tip): void { FILE: restored-src/src/services/tokenEstimation.ts constant TOKEN_COUNT_THINKING_BUDGET (line 32) | const TOKEN_COUNT_THINKING_BUDGET = 1024 constant TOKEN_COUNT_MAX_TOKENS (line 33) | const TOKEN_COUNT_MAX_TOKENS = 2048 function hasThinkingBlocks (line 38) | function hasThinkingBlocks( function stripToolSearchFieldsFromMessages (line 66) | function stripToolSearchFieldsFromMessages( function countTokensWithAPI (line 124) | async function countTokensWithAPI( function countMessagesTokensWithAPI (line 140) | async function countMessagesTokensWithAPI( function roughTokenCountEstimation (line 203) | function roughTokenCountEstimation( function bytesPerTokenForFileType (line 215) | function bytesPerTokenForFileType(fileExtension: string): number { function roughTokenCountEstimationForFileType (line 234) | function roughTokenCountEstimationForFileType( function countTokensViaHaikuFallback (line 251) | async function countTokensViaHaikuFallback( function roughTokenCountEstimationForMessages (line 327) | function roughTokenCountEstimationForMessages( function roughTokenCountEstimationForMessage (line 341) | function roughTokenCountEstimationForMessage(message: { function roughTokenCountEstimationForContent (line 371) | function roughTokenCountEstimationForContent( function roughTokenCountEstimationForBlock (line 391) | function roughTokenCountEstimationForBlock( function countTokensWithBedrock (line 437) | async function countTokensWithBedrock({ FILE: restored-src/src/services/toolUseSummary/toolUseSummaryGenerator.ts constant TOOL_USE_SUMMARY_SYSTEM_PROMPT (line 15) | const TOOL_USE_SUMMARY_SYSTEM_PROMPT = `Write a short summary label desc... type ToolInfo (line 26) | type ToolInfo = { type GenerateToolUseSummaryParams (line 32) | type GenerateToolUseSummaryParams = { function generateToolUseSummary (line 45) | async function generateToolUseSummary({ function truncateJson (line 102) | function truncateJson(value: unknown, maxLength: number): string { FILE: restored-src/src/services/tools/StreamingToolExecutor.ts type MessageUpdate (line 14) | type MessageUpdate = { type ToolStatus (line 19) | type ToolStatus = 'queued' | 'executing' | 'completed' | 'yielded' type TrackedTool (line 21) | type TrackedTool = { class StreamingToolExecutor (line 40) | class StreamingToolExecutor { method constructor (line 53) | constructor( method discard (line 69) | discard(): void { method addTool (line 76) | addTool(block: ToolUseBlock, assistantMessage: AssistantMessage): void { method canExecuteTool (line 129) | private canExecuteTool(isConcurrencySafe: boolean): boolean { method processQueue (line 140) | private async processQueue(): Promise { method createSyntheticErrorMessage (line 153) | private createSyntheticErrorMessage( method getAbortReason (line 210) | private getAbortReason( method getToolInterruptBehavior (line 233) | private getToolInterruptBehavior(tool: TrackedTool): 'cancel' | 'block' { method getToolDescription (line 243) | private getToolDescription(tool: TrackedTool): string { method updateInterruptibleState (line 254) | private updateInterruptibleState(): void { method executeTool (line 265) | private async executeTool(tool: TrackedTool): Promise { method getCompletedResults (line 412) | *getCompletedResults(): Generator { method hasPendingProgress (line 445) | private hasPendingProgress(): boolean { method getRemainingResults (line 453) | async *getRemainingResults(): AsyncGenerator { method hasCompletedResults (line 495) | private hasCompletedResults(): boolean { method hasExecutingTools (line 502) | private hasExecutingTools(): boolean { method hasUnfinishedTools (line 509) | private hasUnfinishedTools(): boolean { method getUpdatedContext (line 516) | getUpdatedContext(): ToolUseContext { function markToolUseAsComplete (line 521) | function markToolUseAsComplete( FILE: restored-src/src/services/tools/toolExecution.ts constant HOOK_TIMING_DISPLAY_THRESHOLD_MS (line 134) | const HOOK_TIMING_DISPLAY_THRESHOLD_MS = 500 constant SLOW_PHASE_LOG_THRESHOLD_MS (line 137) | const SLOW_PHASE_LOG_THRESHOLD_MS = 2000 function classifyToolError (line 150) | function classifyToolError(error: unknown): string { function ruleSourceToOTelSource (line 181) | function ruleSourceToOTelSource( function decisionReasonToOTelSource (line 207) | function decisionReasonToOTelSource( function getNextImagePasteId (line 252) | function getNextImagePasteId(messages: Message[]): number { type MessageUpdateLazy (line 264) | type MessageUpdateLazy = { type McpServerType (line 272) | type McpServerType = function findMcpServerConnection (line 283) | function findMcpServerConnection( function getMcpServerType (line 308) | function getMcpServerType( function getMcpServerBaseUrlFromToolName (line 326) | function getMcpServerBaseUrlFromToolName( function streamedCheckPermissionsAndCallTool (line 492) | function streamedCheckPermissionsAndCallTool( function buildSchemaNotSentHint (line 578) | function buildSchemaNotSentHint( function checkPermissionsAndCallTool (line 599) | async function checkPermissionsAndCallTool( FILE: restored-src/src/services/tools/toolHooks.ts type PostToolUseHooksResult (line 35) | type PostToolUseHooksResult = function resolveHookPermissionDecision (line 332) | async function resolveHookPermissionDecision( FILE: restored-src/src/services/tools/toolOrchestration.ts function getMaxToolUseConcurrency (line 8) | function getMaxToolUseConcurrency(): number { type MessageUpdate (line 14) | type MessageUpdate = { type Batch (line 84) | type Batch = { isConcurrencySafe: boolean; blocks: ToolUseBlock[] } function partitionToolCalls (line 91) | function partitionToolCalls( function markToolUseAsComplete (line 179) | function markToolUseAsComplete( FILE: restored-src/src/services/vcr.ts function shouldUseVCR (line 23) | function shouldUseVCR(): boolean { function withFixture (line 39) | async function withFixture( function withVCR (line 88) | async function withVCR( function addCachedCostToTotalSessionCost (line 163) | function addCachedCostToTotalSessionCost( function mapMessages (line 175) | function mapMessages( function mapValuesDeep (line 221) | function mapValuesDeep( function mapAssistantMessage (line 238) | function mapAssistantMessage( function mapMessage (line 278) | function mapMessage( function dehydrateValue (line 291) | function dehydrateValue(s: unknown): unknown { function hydrateValue (line 338) | function hydrateValue(s: unknown): unknown { function withTokenCountVCR (line 382) | async function withTokenCountVCR( FILE: restored-src/src/services/voice.ts type AudioNapi (line 20) | type AudioNapi = typeof import('audio-capture-napi') function loadAudioNapi (line 24) | function loadAudioNapi(): Promise { constant RECORDING_SAMPLE_RATE (line 40) | const RECORDING_SAMPLE_RATE = 16000 constant RECORDING_CHANNELS (line 41) | const RECORDING_CHANNELS = 1 constant SILENCE_DURATION_SECS (line 44) | const SILENCE_DURATION_SECS = '2.0' constant SILENCE_THRESHOLD (line 45) | const SILENCE_THRESHOLD = '3%' function hasCommand (line 49) | function hasCommand(cmd: string): boolean { type ArecordProbeResult (line 72) | type ArecordProbeResult = { ok: boolean; stderr: string } function probeArecord (line 75) | function probeArecord(): Promise { function _resetArecordProbeForTesting (line 120) | function _resetArecordProbeForTesting(): void { function linuxHasAlsaCards (line 130) | function linuxHasAlsaCards(): Promise { function _resetAlsaCardsForTesting (line 141) | function _resetAlsaCardsForTesting(): void { type PackageManagerInfo (line 145) | type PackageManagerInfo = { function detectPackageManager (line 151) | function detectPackageManager(): PackageManagerInfo | null { function checkVoiceDependencies (line 190) | async function checkVoiceDependencies(): Promise<{ type RecordingAvailability (line 231) | type RecordingAvailability = { function requestMicrophonePermission (line 241) | async function requestMicrophonePermission(): Promise { function checkRecordingAvailability (line 259) | async function checkRecordingAvailability(): Promise = { function detectLanguage (line 30) | async function detectLanguage(): Promise { function getFilesForLanguage (line 55) | function getFilesForLanguage( function processContent (line 64) | function processContent(md: string, content: SkillContent): string { function buildInlineReference (line 81) | function buildInlineReference( constant INLINE_READING_GUIDE (line 96) | const INLINE_READING_GUIDE = `## Reference Documentation function buildPrompt (line 132) | function buildPrompt( function registerClaudeApiSkill (line 180) | function registerClaudeApiSkill(): void { FILE: restored-src/src/skills/bundled/claudeApiContent.ts constant SKILL_MODEL_VARS (line 36) | const SKILL_MODEL_VARS = { constant SKILL_PROMPT (line 47) | const SKILL_PROMPT: string = skillPrompt constant SKILL_FILES (line 49) | const SKILL_FILES: Record = { FILE: restored-src/src/skills/bundled/claudeInChrome.ts constant CLAUDE_IN_CHROME_MCP_TOOLS (line 6) | const CLAUDE_IN_CHROME_MCP_TOOLS = BROWSER_TOOLS.map( constant SKILL_ACTIVATION_MESSAGE (line 10) | const SKILL_ACTIVATION_MESSAGE = ` function registerClaudeInChromeSkill (line 16) | function registerClaudeInChromeSkill(): void { FILE: restored-src/src/skills/bundled/debug.ts constant DEFAULT_DEBUG_LINES_READ (line 9) | const DEFAULT_DEBUG_LINES_READ = 20 constant TAIL_READ_BYTES (line 10) | const TAIL_READ_BYTES = 64 * 1024 function registerDebugSkill (line 12) | function registerDebugSkill(): void { FILE: restored-src/src/skills/bundled/index.ts function initBundledSkills (line 24) | function initBundledSkills(): void { FILE: restored-src/src/skills/bundled/keybindings.ts function generateContextsTable (line 20) | function generateContextsTable(): string { function generateActionsTable (line 33) | function generateActionsTable(): string { function inferContextFromAction (line 61) | function inferContextFromAction(action: string): string { function generateReservedShortcuts (line 89) | function generateReservedShortcuts(): string { constant FILE_FORMAT_EXAMPLE (line 114) | const FILE_FORMAT_EXAMPLE: KeybindingsSchemaType = { constant UNBIND_EXAMPLE (line 127) | const UNBIND_EXAMPLE: KeybindingsSchemaType['bindings'][number] = { constant REBIND_EXAMPLE (line 134) | const REBIND_EXAMPLE: KeybindingsSchemaType['bindings'][number] = { constant CHORD_EXAMPLE (line 142) | const CHORD_EXAMPLE: KeybindingsSchemaType['bindings'][number] = { constant SECTION_INTRO (line 149) | const SECTION_INTRO = [ constant SECTION_FILE_FORMAT (line 162) | const SECTION_FILE_FORMAT = [ constant SECTION_KEYSTROKE_SYNTAX (line 172) | const SECTION_KEYSTROKE_SYNTAX = [ constant SECTION_UNBINDING (line 188) | const SECTION_UNBINDING = [ constant SECTION_INTERACTION (line 198) | const SECTION_INTERACTION = [ constant SECTION_COMMON_PATTERNS (line 206) | const SECTION_COMMON_PATTERNS = [ constant SECTION_BEHAVIORAL_RULES (line 221) | const SECTION_BEHAVIORAL_RULES = [ constant SECTION_DOCTOR (line 231) | const SECTION_DOCTOR = [ function registerKeybindingsSkill (line 292) | function registerKeybindingsSkill(): void { function markdownTable (line 332) | function markdownTable(headers: string[], rows: string[][]): string { FILE: restored-src/src/skills/bundled/loop.ts constant DEFAULT_INTERVAL (line 9) | const DEFAULT_INTERVAL = '10m' constant USAGE_MESSAGE (line 11) | const USAGE_MESSAGE = `Usage: /loop [interval] function buildPrompt (line 25) | function buildPrompt(args: string): string { function registerLoopSkill (line 74) | function registerLoopSkill(): void { FILE: restored-src/src/skills/bundled/loremIpsum.ts constant ONE_TOKEN_WORDS (line 5) | const ONE_TOKEN_WORDS = [ function generateLoremIpsum (line 202) | function generateLoremIpsum(targetTokens: number): string { function registerLoremIpsumSkill (line 234) | function registerLoremIpsumSkill(): void { FILE: restored-src/src/skills/bundled/remember.ts function registerRememberSkill (line 4) | function registerRememberSkill(): void { FILE: restored-src/src/skills/bundled/scheduleRemoteAgents.ts constant BASE58 (line 24) | const BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' function taggedIdToUUID (line 35) | function taggedIdToUUID(taggedId: string): string | null { type ConnectorInfo (line 59) | type ConnectorInfo = { function getConnectedClaudeAIConnectors (line 65) | function getConnectedClaudeAIConnectors( function sanitizeConnectorName (line 89) | function sanitizeConnectorName(name: string): string { function formatConnectorsInfo (line 97) | function formatConnectorsInfo(connectors: ConnectorInfo[]): string { constant BASE_QUESTION (line 111) | const BASE_QUESTION = 'What would you like to do with scheduled remote a... function formatSetupNotes (line 118) | function formatSetupNotes(notes: string[]): string { function getCurrentRepoHttpsUrl (line 123) | async function getCurrentRepoHttpsUrl(): Promise { function buildPrompt (line 135) | function buildPrompt(opts: { function registerScheduleRemoteAgentsSkill (line 324) | function registerScheduleRemoteAgentsSkill(): void { FILE: restored-src/src/skills/bundled/simplify.ts constant SIMPLIFY_PROMPT (line 4) | const SIMPLIFY_PROMPT = `# Simplify: Code Review and Cleanup function registerSimplifySkill (line 55) | function registerSimplifySkill(): void { FILE: restored-src/src/skills/bundled/skillify.ts function extractUserMessages (line 6) | function extractUserMessages(messages: Message[]): string[] { constant SKILLIFY_PROMPT (line 22) | const SKILLIFY_PROMPT = `# Skillify {{userDescriptionBlock}} function registerSkillifySkill (line 158) | function registerSkillifySkill(): void { FILE: restored-src/src/skills/bundled/stuck.ts constant STUCK_PROMPT (line 6) | const STUCK_PROMPT = `# /stuck — diagnose frozen/slow Claude Code sessions function registerStuckSkill (line 61) | function registerStuckSkill(): void { FILE: restored-src/src/skills/bundled/updateConfig.ts function generateSettingsSchema (line 10) | function generateSettingsSchema(): string { constant SETTINGS_EXAMPLES_DOCS (line 15) | const SETTINGS_EXAMPLES_DOCS = `## Settings File Locations constant HOOKS_DOCS (line 110) | const HOOKS_DOCS = `## Hooks Configuration constant HOOK_VERIFICATION_FLOW (line 269) | const HOOK_VERIFICATION_FLOW = `## Constructing a Hook (with verification) constant UPDATE_CONFIG_PROMPT (line 307) | const UPDATE_CONFIG_PROMPT = `# Update Config Skill function registerUpdateConfigSkill (line 445) | function registerUpdateConfigSkill(): void { FILE: restored-src/src/skills/bundled/verify.ts constant DESCRIPTION (line 7) | const DESCRIPTION = function registerVerifySkill (line 12) | function registerVerifySkill(): void { FILE: restored-src/src/skills/bundled/verifyContent.ts constant SKILL_MD (line 8) | const SKILL_MD: string = skillMd constant SKILL_FILES (line 10) | const SKILL_FILES: Record = { FILE: restored-src/src/skills/bundledSkills.ts type BundledSkillDefinition (line 15) | type BundledSkillDefinition = { function registerBundledSkill (line 53) | function registerBundledSkill(definition: BundledSkillDefinition): void { function getBundledSkills (line 106) | function getBundledSkills(): Command[] { function clearBundledSkills (line 113) | function clearBundledSkills(): void { function getBundledSkillExtractDir (line 120) | function getBundledSkillExtractDir(skillName: string): string { function extractBundledSkillFiles (line 131) | async function extractBundledSkillFiles( function writeSkillFiles (line 147) | async function writeSkillFiles( constant O_NOFOLLOW (line 176) | const O_NOFOLLOW = fsConstants.O_NOFOLLOW ?? 0 constant SAFE_WRITE_FLAGS (line 178) | const SAFE_WRITE_FLAGS = function safeWriteFile (line 186) | async function safeWriteFile(p: string, content: string): Promise { function resolveSkillFilePath (line 196) | function resolveSkillFilePath(baseDir: string, relPath: string): string { function prependBaseDir (line 208) | function prependBaseDir( FILE: restored-src/src/skills/loadSkillsDir.ts type LoadedFrom (line 67) | type LoadedFrom = function getSkillsPath (line 78) | function getSkillsPath( function estimateSkillFrontmatterTokens (line 100) | function estimateSkillFrontmatterTokens(skill: Command): number { function getFileIdentity (line 118) | async function getFileIdentity(filePath: string): Promise { type SkillWithPath (line 127) | type SkillWithPath = { function parseHooksFromFrontmatter (line 136) | function parseHooksFromFrontmatter( function parseSkillPaths (line 159) | function parseSkillPaths(frontmatter: FrontmatterData): string[] | undef... function parseSkillFrontmatterFields (line 185) | function parseSkillFrontmatterFields( function createSkillCommand (line 270) | function createSkillCommand({ function loadSkillsFromSkillsDir (line 407) | async function loadSkillsFromSkillsDir( function isSkillFile (line 484) | function isSkillFile(filePath: string): boolean { function transformSkillFiles (line 493) | function transformSkillFiles(files: MarkdownFile[]): MarkdownFile[] { function buildNamespace (line 523) | function buildNamespace(targetDir: string, baseDir: string): string { function getSkillCommandName (line 536) | function getSkillCommandName(filePath: string, baseDir: string): string { function getRegularCommandName (line 545) | function getRegularCommandName(filePath: string, baseDir: string): string { function getCommandName (line 554) | function getCommandName(file: MarkdownFile): string { function loadSkillsFromCommandsDir (line 566) | async function loadSkillsFromCommandsDir( function clearSkillCaches (line 806) | function clearSkillCaches() { function onDynamicSkillsLoaded (line 839) | function onDynamicSkillsLoaded(callback: () => void): () => void { function discoverSkillDirsForPaths (line 861) | async function discoverSkillDirsForPaths( function addSkillDirectories (line 923) | async function addSkillDirectories(dirs: string[]): Promise { function getDynamicSkills (line 981) | function getDynamicSkills(): Command[] { function activateConditionalSkillsForPaths (line 997) | function activateConditionalSkillsForPaths( function getConditionalSkillCount (line 1063) | function getConditionalSkillCount(): number { function clearDynamicSkills (line 1070) | function clearDynamicSkills(): void { FILE: restored-src/src/skills/mcpSkillBuilders.ts type MCPSkillBuilders (line 26) | type MCPSkillBuilders = { function registerMCPSkillBuilders (line 33) | function registerMCPSkillBuilders(b: MCPSkillBuilders): void { function getMCPSkillBuilders (line 37) | function getMCPSkillBuilders(): MCPSkillBuilders { FILE: restored-src/src/state/AppState.tsx type Props (line 28) | type Props = { function AppStateProvider (line 37) | function AppStateProvider(t0) { function _temp (line 111) | function _temp(prev) { function useAppStore (line 117) | function useAppStore(): AppStateStore { function useAppState (line 142) | function useAppState(selector) { function useSetAppState (line 170) | function useSetAppState() { function useAppStateStore (line 177) | function useAppStateStore() { function useAppStateMaybeOutsideOfProvider (line 186) | function useAppStateMaybeOutsideOfProvider(selector) { FILE: restored-src/src/state/AppStateStore.ts type CompletionBoundary (line 41) | type CompletionBoundary = type SpeculationResult (line 52) | type SpeculationResult = { type SpeculationState (line 58) | type SpeculationState = constant IDLE_SPECULATION_STATE (line 79) | const IDLE_SPECULATION_STATE: SpeculationState = { status: 'idle' } type FooterItem (line 81) | type FooterItem = type AppState (line 89) | type AppState = DeepImmutable<{ type AppStateStore (line 454) | type AppStateStore = Store function getDefaultAppState (line 456) | function getDefaultAppState(): AppState { FILE: restored-src/src/state/onChangeAppState.ts function externalMetadataToAppState (line 24) | function externalMetadataToAppState( function onChangeAppState (line 43) | function onChangeAppState({ FILE: restored-src/src/state/selectors.ts function getViewedTeammateTask (line 18) | function getViewedTeammateTask( type ActiveAgentForInput (line 46) | type ActiveAgentForInput = function getActiveAgentForInput (line 59) | function getActiveAgentForInput( FILE: restored-src/src/state/store.ts type Listener (line 1) | type Listener = () => void type OnChange (line 2) | type OnChange = (args: { newState: T; oldState: T }) => void type Store (line 4) | type Store = { function createStore (line 10) | function createStore( FILE: restored-src/src/state/teammateViewHelpers.ts constant PANEL_GRACE_MS (line 7) | const PANEL_GRACE_MS = 30_000 function isLocalAgent (line 14) | function isLocalAgent(task: unknown): task is LocalAgentTaskState { function release (line 28) | function release(task: LocalAgentTaskState): LocalAgentTaskState { function enterTeammateView (line 46) | function enterTeammateView( function exitTeammateView (line 88) | function exitTeammateView( function stopOrDismissAgent (line 116) | function stopOrDismissAgent( FILE: restored-src/src/tasks.ts function getAllTasks (line 22) | function getAllTasks(): Task[] { function getTaskByType (line 37) | function getTaskByType(type: TaskType): Task | undefined { FILE: restored-src/src/tasks/DreamTask/DreamTask.ts constant MAX_TURNS (line 12) | const MAX_TURNS = 30 type DreamTurn (line 15) | type DreamTurn = { type DreamPhase (line 23) | type DreamPhase = 'starting' | 'updating' type DreamTaskState (line 25) | type DreamTaskState = TaskStateBase & { function isDreamTask (line 43) | function isDreamTask(task: unknown): task is DreamTaskState { function registerDreamTask (line 52) | function registerDreamTask( function addDreamTurn (line 76) | function addDreamTurn( function completeDreamTask (line 106) | function completeDreamTask( function failDreamTask (line 122) | function failDreamTask(taskId: string, setAppState: SetAppState): void { method kill (line 136) | async kill(taskId, setAppState) { FILE: restored-src/src/tasks/InProcessTeammateTask/InProcessTeammateTask.tsx method kill (line 27) | async kill(taskId, setAppState) { function requestTeammateShutdown (line 35) | function requestTeammateShutdown(taskId: string, setAppState: SetAppStat... function appendTeammateMessage (line 51) | function appendTeammateMessage(taskId: string, message: Message, setAppS... function injectUserMessageToTeammate (line 68) | function injectUserMessageToTeammate(taskId: string, message: string, se... function findTeammateTaskByAgentId (line 92) | function findTeammateTaskByAgentId(agentId: string, tasks: Record)... FILE: restored-src/src/tasks/InProcessTeammateTask/types.ts type TeammateIdentity (line 13) | type TeammateIdentity = { type InProcessTeammateTaskState (line 22) | type InProcessTeammateTaskState = TaskStateBase & { function isInProcessTeammateTask (line 78) | function isInProcessTeammateTask( constant TEAMMATE_MESSAGES_UI_CAP (line 101) | const TEAMMATE_MESSAGES_UI_CAP = 50 function appendCappedMessage (line 108) | function appendCappedMessage( FILE: restored-src/src/tasks/LocalAgentTask/LocalAgentTask.tsx type ToolActivity (line 23) | type ToolActivity = { type AgentProgress (line 33) | type AgentProgress = { constant MAX_RECENT_ACTIVITIES (line 40) | const MAX_RECENT_ACTIVITIES = 5; type ProgressTracker (line 41) | type ProgressTracker = { function createProgressTracker (line 50) | function createProgressTracker(): ProgressTracker { function getTokenCountFromTracker (line 58) | function getTokenCountFromTracker(tracker: ProgressTracker): number { type ActivityDescriptionResolver (line 67) | type ActivityDescriptionResolver = (toolName: string, input: Record AppStat... function enqueueAgentNotification (line 197) | function enqueueAgentNotification({ method kill (line 273) | async kill(taskId, setAppState) { function killAsyncAgent (line 281) | function killAsyncAgent(taskId: string, setAppState: SetAppState): void { function killAllRunningAgentTasks (line 309) | function killAllRunningAgentTasks(tasks: Record, setA... function markAgentsNotified (line 322) | function markAgentsNotified(taskId: string, setAppState: SetAppState): v... function updateAgentProgress (line 339) | function updateAgentProgress(taskId: string, progress: AgentProgress, se... function updateAgentSummary (line 359) | function updateAgentSummary(taskId: string, summary: string, setAppState... function completeAgentTask (line 412) | function completeAgentTask(result: AgentToolResult, setAppState: SetAppS... function failAgentTask (line 437) | function failAgentTask(taskId: string, error: string, setAppState: SetAp... function registerAsyncAgent (line 466) | function registerAsyncAgent({ function registerAgentForeground (line 526) | function registerAgentForeground({ function backgroundAgentTask (line 620) | function backgroundAgentTask(taskId: string, getAppState: () => AppState... function unregisterAgentForeground (line 657) | function unregisterAgentForeground(taskId: string, setAppState: SetAppSt... FILE: restored-src/src/tasks/LocalMainSessionTask.ts type LocalMainSessionTaskState (line 55) | type LocalMainSessionTaskState = LocalAgentTaskState & { constant DEFAULT_MAIN_SESSION_AGENT (line 62) | const DEFAULT_MAIN_SESSION_AGENT: CustomAgentDefinition = { constant TASK_ID_ALPHABET (line 73) | const TASK_ID_ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz' function generateMainSessionTaskId (line 75) | function generateMainSessionTaskId(): string { function registerMainSessionTask (line 94) | function registerMainSessionTask( function completeMainSessionTask (line 168) | function completeMainSessionTask( function enqueueMainSessionNotification (line 224) | function enqueueMainSessionNotification( function foregroundMainSessionTask (line 270) | function foregroundMainSessionTask( function isMainSessionTask (line 307) | function isMainSessionTask( constant MAX_RECENT_ACTIVITIES (line 325) | const MAX_RECENT_ACTIVITIES = 5 type ToolActivity (line 327) | type ToolActivity = { function startBackgroundSession (line 338) | function startBackgroundSession({ FILE: restored-src/src/tasks/LocalShellTask/LocalShellTask.tsx constant BACKGROUND_BASH_SUMMARY_PREFIX (line 23) | const BACKGROUND_BASH_SUMMARY_PREFIX = 'Background command '; constant STALL_CHECK_INTERVAL_MS (line 24) | const STALL_CHECK_INTERVAL_MS = 5_000; constant STALL_THRESHOLD_MS (line 25) | const STALL_THRESHOLD_MS = 45_000; constant STALL_TAIL_BYTES (line 26) | const STALL_TAIL_BYTES = 1024; constant PROMPT_PATTERNS (line 32) | const PROMPT_PATTERNS = [/\(y\/n\)/i, function looksLikePrompt (line 39) | function looksLikePrompt(tail: string): boolean { function startStallWatchdog (line 46) | function startStallWatchdog(taskId: string, description: string, kind: B... function enqueueShellNotification (line 105) | function enqueueShellNotification(taskId: string, description: string, s... method kill (line 176) | async kill(taskId, setAppState) { function spawnShellTask (line 180) | async function spawnShellTask(input: LocalShellSpawnInput & { function registerForeground (line 259) | function registerForeground(input: LocalShellSpawnInput & { function backgroundTask (line 293) | function backgroundTask(taskId: string, getAppState: () => AppState, set... function hasForegroundTasks (line 378) | function hasForegroundTasks(state: AppState): boolean { function backgroundAll (line 390) | function backgroundAll(getAppState: () => AppState, setAppState: SetAppS... function backgroundExistingForegroundTask (line 420) | function backgroundExistingForegroundTask(taskId: string, shellCommand: ... function markTaskNotified (line 481) | function markTaskNotified(taskId: string, setAppState: SetAppState): void { function unregisterForeground (line 491) | function unregisterForeground(taskId: string, setAppState: SetAppState):... function flushAndCleanup (line 515) | async function flushAndCleanup(shellCommand: ShellCommand): Promise { FILE: restored-src/src/tasks/LocalShellTask/guards.ts type BashTaskKind (line 9) | type BashTaskKind = 'bash' | 'monitor' type LocalShellTaskState (line 11) | type LocalShellTaskState = TaskStateBase & { function isLocalShellTask (line 34) | function isLocalShellTask(task: unknown): task is LocalShellTaskState { FILE: restored-src/src/tasks/LocalShellTask/killShellTasks.ts type SetAppStateFn (line 14) | type SetAppStateFn = (updater: (prev: AppState) => AppState) => void function killTask (line 16) | function killTask(taskId: string, setAppState: SetAppStateFn): void { function killShellTasksForAgent (line 53) | function killShellTasksForAgent( FILE: restored-src/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx type RemoteAgentTaskState (line 22) | type RemoteAgentTaskState = TaskStateBase & { constant REMOTE_TASK_TYPES (line 60) | const REMOTE_TASK_TYPES = ['remote-agent', 'ultraplan', 'ultrareview', '... type RemoteTaskType (line 61) | type RemoteTaskType = (typeof REMOTE_TASK_TYPES)[number]; function isRemoteTaskType (line 62) | function isRemoteTaskType(v: string | undefined): v is RemoteTaskType { type AutofixPrRemoteTaskMetadata (line 65) | type AutofixPrRemoteTaskMetadata = { type RemoteTaskMetadata (line 70) | type RemoteTaskMetadata = AutofixPrRemoteTaskMetadata; type RemoteTaskCompletionChecker (line 77) | type RemoteTaskCompletionChecker = (remoteTaskMetadata: RemoteTaskMetada... function registerCompletionChecker (line 84) | function registerCompletionChecker(remoteTaskType: RemoteTaskType, check... function persistRemoteAgentMetadata (line 92) | async function persistRemoteAgentMetadata(meta: RemoteAgentMetadata): Pr... function removeRemoteAgentMetadata (line 105) | async function removeRemoteAgentMetadata(taskId: string): Promise { type RemoteAgentPreconditionResult (line 114) | type RemoteAgentPreconditionResult = { function checkRemoteAgentEligibility (line 124) | async function checkRemoteAgentEligibility({ function formatPreconditionError (line 146) | function formatPreconditionError(error: BackgroundRemoteSessionPrecondit... function enqueueRemoteNotification (line 166) | function enqueueRemoteNotification(taskId: string, title: string, status... function markTaskNotified (line 189) | function markTaskNotified(taskId: string, setAppState: SetAppState): boo... function extractPlanFromLog (line 208) | function extractPlanFromLog(log: SDKMessage[]): string | null { function enqueueUltraplanFailureNotification (line 225) | function enqueueUltraplanFailureNotification(taskId: string, sessionId: ... function extractReviewFromLog (line 254) | function extractReviewFromLog(log: SDKMessage[]): string | null { function extractReviewTagFromLog (line 295) | function extractReviewTagFromLog(log: SDKMessage[]): string | null { function enqueueRemoteReviewNotification (line 327) | function enqueueRemoteReviewNotification(taskId: string, reviewContent: ... function enqueueRemoteReviewFailureNotification (line 347) | function enqueueRemoteReviewFailureNotification(taskId: string, reason: ... function extractTodoListFromLog (line 365) | function extractTodoListFromLog(log: SDKMessage[]): TodoList { function registerRemoteAgentTask (line 386) | function registerRemoteAgentTask(options: { function restoreRemoteAgentTasks (line 477) | async function restoreRemoteAgentTasks(context: TaskContext): Promise; type AgentToolInput (line 132) | type AgentToolInput = z.infer> & { type OutputSchema (line 156) | type OutputSchema = ReturnType; type Output (line 157) | type Output = z.input; type TeammateSpawnedOutput (line 161) | type TeammateSpawnedOutput = { type RemoteLaunchedOutput (line 183) | type RemoteLaunchedOutput = { type InternalOutput (line 191) | type InternalOutput = Output | TeammateSpawnedOutput | RemoteLaunchedOut... type Progress (line 195) | type Progress = AgentToolProgress | ShellProgress; method prompt (line 197) | async prompt({ method description (line 230) | async description() { method inputSchema (line 233) | get inputSchema(): InputSchema { method outputSchema (line 236) | get outputSchema(): OutputSchema { method call (line 239) | async call({ method isReadOnly (line 1264) | isReadOnly() { method toAutoClassifierInput (line 1267) | toAutoClassifierInput(input) { method isConcurrencySafe (line 1273) | isConcurrencySafe() { method getActivityDescription (line 1278) | getActivityDescription(input) { method checkPermissions (line 1281) | async checkPermissions(input, context): Promise { method mapToolResultToToolResultBlockParam (line 1298) | mapToolResultToToolResultBlockParam(data, toolUseID) { function resolveTeamName (line 1388) | function resolveTeamName(input: { FILE: restored-src/src/tools/AgentTool/UI.tsx constant MAX_PROGRESS_MESSAGES_TO_SHOW (line 33) | const MAX_PROGRESS_MESSAGES_TO_SHOW = 3; function hasProgressMessage (line 40) | function hasProgressMessage(data: Progress): data is AgentToolProgress { function getSearchOrReadInfo (line 55) | function getSearchOrReadInfo(progressMessage: ProgressMessage,... type SummaryMessage (line 82) | type SummaryMessage = { type ProcessedMessage (line 90) | type ProcessedMessage = { function processProgressMessages (line 100) | function processProgressMessages(messages: ProgressMessage[], ... constant ESTIMATED_LINES_PER_TOOL (line 181) | const ESTIMATED_LINES_PER_TOOL = 9; constant TERMINAL_BUFFER_LINES (line 182) | const TERMINAL_BUFFER_LINES = 7; type Output (line 183) | type Output = z.input>; function AgentPromptDisplay (line 184) | function AgentPromptDisplay(t0) { function AgentResponseDisplay (line 208) | function AgentResponseDisplay(t0) { function _temp (line 238) | function _temp(block, index) { type VerboseAgentTranscriptProps (line 241) | type VerboseAgentTranscriptProps = { function VerboseAgentTranscript (line 246) | function VerboseAgentTranscript(t0) { function _temp4 (line 299) | function _temp4(pm_1) { function _temp3 (line 309) | function _temp3(pm_0) { function _temp2 (line 312) | function _temp2(pm) { function renderToolResultMessage (line 315) | function renderToolResultMessage(data: Output, progressMessagesForMessag... function renderToolUseMessage (line 411) | function renderToolUseMessage({ function renderToolUseTag (line 423) | function renderToolUseTag(input: Partial<{ constant INITIALIZING_TEXT (line 444) | const INITIALIZING_TEXT = 'Initializing…'; function renderToolUseProgressMessage (line 445) | function renderToolUseProgressMessage(progressMessages: ProgressMessage<... function renderToolUseRejectedMessage (line 571) | function renderToolUseRejectedMessage(_input: { function renderToolUseErrorMessage (line 607) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... function calculateAgentStats (line 627) | function calculateAgentStats(progressMessages: ProgressMessage... function renderGroupedAgentToolUse (line 649) | function renderGroupedAgentToolUse(toolUses: Array<{ function userFacingName (line 760) | function userFacingName(input: Partial<{ function userFacingNameBackgroundColor (line 776) | function userFacingNameBackgroundColor(input: Partial<{ function extractLastToolInfo (line 788) | function extractLastToolInfo(progressMessages: ProgressMessage... function isCustomSubagentType (line 869) | function isCustomSubagentType(subagentType: string | undefined): subagen... FILE: restored-src/src/tools/AgentTool/agentColorManager.ts type AgentColorName (line 4) | type AgentColorName = constant AGENT_COLORS (line 14) | const AGENT_COLORS: readonly AgentColorName[] = [ constant AGENT_COLOR_TO_THEME_COLOR (line 25) | const AGENT_COLOR_TO_THEME_COLOR = { function getAgentColor (line 36) | function getAgentColor(agentType: string): keyof Theme | undefined { function setAgentColor (line 52) | function setAgentColor( FILE: restored-src/src/tools/AgentTool/agentDisplay.ts type AgentSource (line 13) | type AgentSource = SettingSource | 'built-in' | 'plugin' type AgentSourceGroup (line 15) | type AgentSourceGroup = { constant AGENT_SOURCE_GROUPS (line 24) | const AGENT_SOURCE_GROUPS: AgentSourceGroup[] = [ type ResolvedAgent (line 34) | type ResolvedAgent = AgentDefinition & { function resolveAgentOverrides (line 46) | function resolveAgentOverrides( function resolveAgentModelDisplay (line 78) | function resolveAgentModelDisplay( function getOverrideSourceLabel (line 90) | function getOverrideSourceLabel(source: AgentSource): string { function compareAgentsByName (line 97) | function compareAgentsByName( FILE: restored-src/src/tools/AgentTool/agentMemory.ts type AgentMemoryScope (line 13) | type AgentMemoryScope = 'user' | 'project' | 'local' function sanitizeAgentTypeForPath (line 20) | function sanitizeAgentTypeForPath(agentType: string): string { function getLocalAgentMemoryDir (line 29) | function getLocalAgentMemoryDir(dirName: string): string { function getAgentMemoryDir (line 52) | function getAgentMemoryDir( function isAgentMemoryPath (line 68) | function isAgentMemoryPath(absolutePath: string): boolean { function getAgentMemoryEntrypoint (line 109) | function getAgentMemoryEntrypoint( function getMemoryScopeDisplay (line 116) | function getMemoryScopeDisplay( function loadAgentMemoryPrompt (line 138) | function loadAgentMemoryPrompt( FILE: restored-src/src/tools/AgentTool/agentMemorySnapshot.ts constant SNAPSHOT_BASE (line 10) | const SNAPSHOT_BASE = 'agent-memory-snapshots' constant SNAPSHOT_JSON (line 11) | const SNAPSHOT_JSON = 'snapshot.json' constant SYNCED_JSON (line 12) | const SYNCED_JSON = '.snapshot-synced.json' type SyncedMeta (line 25) | type SyncedMeta = z.infer> function getSnapshotDirForAgent (line 31) | function getSnapshotDirForAgent(agentType: string): string { function getSnapshotJsonPath (line 35) | function getSnapshotJsonPath(agentType: string): string { function getSyncedJsonPath (line 39) | function getSyncedJsonPath(agentType: string, scope: AgentMemoryScope): ... function readJsonFile (line 43) | async function readJsonFile( function copySnapshotToLocal (line 56) | async function copySnapshotToLocal( function saveSyncedMeta (line 79) | async function saveSyncedMeta( function checkAgentMemorySnapshot (line 98) | async function checkAgentMemorySnapshot( function initializeFromSnapshot (line 149) | async function initializeFromSnapshot( function replaceFromSnapshot (line 164) | async function replaceFromSnapshot( function markSnapshotSynced (line 191) | async function markSnapshotSynced( FILE: restored-src/src/tools/AgentTool/agentToolUtils.ts type ResolvedAgentTools (line 62) | type ResolvedAgentTools = { function filterToolsForAgent (line 70) | function filterToolsForAgent({ function resolveAgentTools (line 122) | function resolveAgentTools( type AgentToolResult (line 260) | type AgentToolResult = z.input> function countToolUses (line 262) | function countToolUses(messages: MessageType[]): number { function finalizeAgentTool (line 276) | function finalizeAgentTool( function getLastToolUseName (line 363) | function getLastToolUseName(message: MessageType): string | undefined { function emitTaskProgress (line 369) | function emitTaskProgress( function classifyHandoffIfNeeded (line 389) | async function classifyHandoffIfNeeded({ function extractPartialResult (line 488) | function extractPartialResult( type SetAppState (line 502) | type SetAppState = (f: (prev: AppState) => AppState) => void function runAsyncAgentLifecycle (line 508) | async function runAsyncAgentLifecycle({ FILE: restored-src/src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts constant CLAUDE_CODE_DOCS_MAP_URL (line 17) | const CLAUDE_CODE_DOCS_MAP_URL = constant CDP_DOCS_MAP_URL (line 19) | const CDP_DOCS_MAP_URL = 'https://platform.claude.com/llms.txt' constant CLAUDE_CODE_GUIDE_AGENT_TYPE (line 21) | const CLAUDE_CODE_GUIDE_AGENT_TYPE = 'claude-code-guide' function getClaudeCodeGuideBasePrompt (line 23) | function getClaudeCodeGuideBasePrompt(): string { function getFeedbackGuideline (line 89) | function getFeedbackGuideline(): string { constant CLAUDE_CODE_GUIDE_AGENT (line 98) | const CLAUDE_CODE_GUIDE_AGENT: BuiltInAgentDefinition = { method getSystemPrompt (line 121) | getSystemPrompt({ toolUseContext }) { FILE: restored-src/src/tools/AgentTool/built-in/exploreAgent.ts function getExploreSystemPrompt (line 13) | function getExploreSystemPrompt(): string { constant EXPLORE_AGENT_MIN_QUERIES (line 59) | const EXPLORE_AGENT_MIN_QUERIES = 3 constant EXPLORE_WHEN_TO_USE (line 61) | const EXPLORE_WHEN_TO_USE = constant EXPLORE_AGENT (line 64) | const EXPLORE_AGENT: BuiltInAgentDefinition = { FILE: restored-src/src/tools/AgentTool/built-in/generalPurposeAgent.ts constant SHARED_PREFIX (line 3) | const SHARED_PREFIX = `You are an agent for Claude Code, Anthropic's off... constant SHARED_GUIDELINES (line 5) | const SHARED_GUIDELINES = `Your strengths: function getGeneralPurposeSystemPrompt (line 19) | function getGeneralPurposeSystemPrompt(): string { constant GENERAL_PURPOSE_AGENT (line 25) | const GENERAL_PURPOSE_AGENT: BuiltInAgentDefinition = { FILE: restored-src/src/tools/AgentTool/built-in/planAgent.ts function getPlanV2SystemPrompt (line 14) | function getPlanV2SystemPrompt(): string { constant PLAN_AGENT (line 73) | const PLAN_AGENT: BuiltInAgentDefinition = { FILE: restored-src/src/tools/AgentTool/built-in/statuslineSetup.ts constant STATUSLINE_SYSTEM_PROMPT (line 3) | const STATUSLINE_SYSTEM_PROMPT = `You are a status line setup agent for ... constant STATUSLINE_SETUP_AGENT (line 134) | const STATUSLINE_SETUP_AGENT: BuiltInAgentDefinition = { FILE: restored-src/src/tools/AgentTool/built-in/verificationAgent.ts constant VERIFICATION_SYSTEM_PROMPT (line 10) | const VERIFICATION_SYSTEM_PROMPT = `You are a verification specialist. Y... constant VERIFICATION_WHEN_TO_USE (line 131) | const VERIFICATION_WHEN_TO_USE = constant VERIFICATION_AGENT (line 134) | const VERIFICATION_AGENT: BuiltInAgentDefinition = { FILE: restored-src/src/tools/AgentTool/builtInAgents.ts function areExplorePlanAgentsEnabled (line 13) | function areExplorePlanAgentsEnabled(): boolean { function getBuiltInAgents (line 22) | function getBuiltInAgents(): AgentDefinition[] { FILE: restored-src/src/tools/AgentTool/constants.ts constant AGENT_TOOL_NAME (line 1) | const AGENT_TOOL_NAME = 'Agent' constant LEGACY_AGENT_TOOL_NAME (line 3) | const LEGACY_AGENT_TOOL_NAME = 'Task' constant VERIFICATION_AGENT_TYPE (line 4) | const VERIFICATION_AGENT_TYPE = 'verification' constant ONE_SHOT_BUILTIN_AGENT_TYPES (line 9) | const ONE_SHOT_BUILTIN_AGENT_TYPES: ReadonlySet = new Set([ FILE: restored-src/src/tools/AgentTool/forkSubagent.ts function isForkSubagentEnabled (line 32) | function isForkSubagentEnabled(): boolean { constant FORK_SUBAGENT_TYPE (line 42) | const FORK_SUBAGENT_TYPE = 'fork' constant FORK_AGENT (line 60) | const FORK_AGENT = { function isInForkChild (line 78) | function isInForkChild(messages: MessageType[]): boolean { constant FORK_PLACEHOLDER_RESULT (line 93) | const FORK_PLACEHOLDER_RESULT = 'Fork started — processing in background' function buildForkedMessages (line 107) | function buildForkedMessages( function buildChildMessage (line 171) | function buildChildMessage(directive: string): string { function buildWorktreeNotice (line 205) | function buildWorktreeNotice( FILE: restored-src/src/tools/AgentTool/loadAgentsDir.ts type AgentMcpServerSpec (line 58) | type AgentMcpServerSpec = type BaseAgentDefinition (line 106) | type BaseAgentDefinition = { type BuiltInAgentDefinition (line 136) | type BuiltInAgentDefinition = BaseAgentDefinition & { type CustomAgentDefinition (line 146) | type CustomAgentDefinition = BaseAgentDefinition & { type PluginAgentDefinition (line 154) | type PluginAgentDefinition = BaseAgentDefinition & { type AgentDefinition (line 162) | type AgentDefinition = function isBuiltInAgent (line 168) | function isBuiltInAgent( function isCustomAgent (line 174) | function isCustomAgent( function isPluginAgent (line 180) | function isPluginAgent( type AgentDefinitionsResult (line 186) | type AgentDefinitionsResult = { function getActiveAgentsFromList (line 193) | function getActiveAgentsFromList( function hasRequiredMcpServers (line 229) | function hasRequiredMcpServers( function filterAgentsByMcpRequirements (line 250) | function filterAgentsByMcpRequirements( function initializeAgentMemorySnapshots (line 262) | async function initializeAgentMemorySnapshots( function clearAgentDefinitionsCache (line 395) | function clearAgentDefinitionsCache(): void { function getParseError (line 403) | function getParseError(frontmatter: Record): string { function parseHooksFromFrontmatter (line 424) | function parseHooksFromFrontmatter( function parseAgentFromJson (line 445) | function parseAgentFromJson( function parseAgentsFromJson (line 521) | function parseAgentsFromJson( function parseAgentFromMarkdown (line 541) | function parseAgentFromMarkdown( FILE: restored-src/src/tools/AgentTool/prompt.ts function getToolsDescription (line 15) | function getToolsDescription(agent: AgentDefinition): string { function formatAgentLine (line 43) | function formatAgentLine(agent: AgentDefinition): string { function shouldInjectAgentListInMessages (line 59) | function shouldInjectAgentListInMessages(): boolean { function getPrompt (line 66) | async function getPrompt( FILE: restored-src/src/tools/AgentTool/resumeAgent.ts type ResumeAgentResult (line 37) | type ResumeAgentResult = { function resumeAgentBackground (line 42) | async function resumeAgentBackground({ FILE: restored-src/src/tools/AgentTool/runAgent.ts function initializeAgentMcpServers (line 95) | async function initializeAgentMcpServers( type QueryMessage (line 220) | type QueryMessage = function isRecordableMessage (line 231) | function isRecordableMessage( function filterIncompleteToolCalls (line 866) | function filterIncompleteToolCalls(messages: Message[]): Message[] { function getAgentSystemPrompt (line 906) | async function getAgentSystemPrompt( function resolveSkillName (line 945) | function resolveSkillName( FILE: restored-src/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx constant UNIQUENESS_REFINE (line 32) | const UNIQUENESS_REFINE = { type InputSchema (line 68) | type InputSchema = ReturnType; type OutputSchema (line 74) | type OutputSchema = ReturnType; type Question (line 80) | type Question = z.infer>; type QuestionOption (line 81) | type QuestionOption = z.infer>; type Output (line 82) | type Output = z.infer; function AskUserQuestionResultMessage (line 83) | function AskUserQuestionResultMessage(t0) { function _temp (line 105) | function _temp(t0) { method description (line 114) | async description() { method prompt (line 117) | async prompt() { method inputSchema (line 126) | get inputSchema(): InputSchema { method outputSchema (line 129) | get outputSchema(): OutputSchema { method userFacingName (line 132) | userFacingName() { method isEnabled (line 135) | isEnabled() { method isConcurrencySafe (line 146) | isConcurrencySafe() { method isReadOnly (line 149) | isReadOnly() { method toAutoClassifierInput (line 152) | toAutoClassifierInput(input) { method requiresUserInteraction (line 155) | requiresUserInteraction() { method validateInput (line 158) | async validateInput({ method checkPermissions (line 182) | async checkPermissions(input) { method renderToolUseMessage (line 189) | renderToolUseMessage() { method renderToolUseProgressMessage (line 192) | renderToolUseProgressMessage() { method renderToolResultMessage (line 195) | renderToolResultMessage({ method renderToolUseRejectedMessage (line 200) | renderToolUseRejectedMessage() { method renderToolUseErrorMessage (line 206) | renderToolUseErrorMessage() { method call (line 209) | async call({ method mapToolResultToToolResultBlockParam (line 224) | mapToolResultToToolResultBlockParam({ function validateHtmlPreview (line 250) | function validateHtmlPreview(preview: string | undefined): string | null { FILE: restored-src/src/tools/AskUserQuestionTool/prompt.ts constant ASK_USER_QUESTION_TOOL_NAME (line 3) | const ASK_USER_QUESTION_TOOL_NAME = 'AskUserQuestion' constant ASK_USER_QUESTION_TOOL_CHIP_WIDTH (line 5) | const ASK_USER_QUESTION_TOOL_CHIP_WIDTH = 12 constant DESCRIPTION (line 7) | const DESCRIPTION = constant PREVIEW_FEATURE_PROMPT (line 10) | const PREVIEW_FEATURE_PROMPT = { constant ASK_USER_QUESTION_TOOL_PROMPT (line 32) | const ASK_USER_QUESTION_TOOL_PROMPT = `Use this tool when you need to as... FILE: restored-src/src/tools/BashTool/BashTool.tsx constant EOL (line 52) | const EOL = '\n'; constant PROGRESS_THRESHOLD_MS (line 55) | const PROGRESS_THRESHOLD_MS = 2000; constant ASSISTANT_BLOCKING_BUDGET_MS (line 57) | const ASSISTANT_BLOCKING_BUDGET_MS = 15_000; constant BASH_SEARCH_COMMANDS (line 60) | const BASH_SEARCH_COMMANDS = new Set(['find', 'grep', 'rg', 'ag', 'ack',... constant BASH_READ_COMMANDS (line 63) | const BASH_READ_COMMANDS = new Set(['cat', 'head', 'tail', 'less', 'more', constant BASH_LIST_COMMANDS (line 72) | const BASH_LIST_COMMANDS = new Set(['ls', 'tree', 'du']); constant BASH_SEMANTIC_NEUTRAL_COMMANDS (line 77) | const BASH_SEMANTIC_NEUTRAL_COMMANDS = new Set(['echo', 'printf', 'true'... constant BASH_SILENT_COMMANDS (line 81) | const BASH_SILENT_COMMANDS = new Set(['mv', 'cp', 'rm', 'mkdir', 'rmdir'... function isSearchOrReadBashCommand (line 95) | function isSearchOrReadBashCommand(command: string): { function isSilentBashCommand (line 178) | function isSilentBashCommand(command: string): boolean { constant DISALLOWED_AUTO_BACKGROUND_COMMANDS (line 220) | const DISALLOWED_AUTO_BACKGROUND_COMMANDS = ['sleep' // Sleep should run... type InputSchema (line 260) | type InputSchema = ReturnType; type BashToolInput (line 264) | type BashToolInput = z.infer>; constant COMMON_BACKGROUND_COMMANDS (line 265) | const COMMON_BACKGROUND_COMMANDS = ['npm', 'yarn', 'pnpm', 'node', 'pyth... function getCommandTypeForLogging (line 266) | function getCommandTypeForLogging(command: string): AnalyticsMetadata_I_... type OutputSchema (line 295) | type OutputSchema = ReturnType; type Out (line 296) | type Out = z.infer; function isAutobackgroundingAllowed (line 307) | function isAutobackgroundingAllowed(command: string): boolean { function detectBlockedSleepPattern (line 322) | function detectBlockedSleepPattern(command: string): string | null { type SimulatedSedEditResult (line 350) | type SimulatedSedEditResult = { type SimulatedSedEditContext (line 353) | type SimulatedSedEditContext = Pick { method checkPermissions (line 539) | async checkPermissions(input, context): Promise { method extractSearchText (line 549) | extractSearchText({ method mapToolResultToToolResultBlockParam (line 555) | mapToolResultToToolResultBlockParam({ method call (line 624) | async call(input: BashToolInput, toolUseContext, _canUseTool?: CanUseToo... method isResultTruncated (line 822) | isResultTruncated(output: Out): boolean { function createProgressSignal (line 871) | function createProgressSignal(): Promise { method onProgress (line 883) | onProgress(lastLines, allLines, totalLines, totalBytes, isIncomplete) { function spawnBackgroundTask (line 904) | async function spawnBackgroundTask(): Promise { function startBackgrounding (line 924) | function startBackgrounding(eventName: string, backgroundFn?: (shellId: ... FILE: restored-src/src/tools/BashTool/BashToolResultMessage.tsx type Props (line 10) | type Props = { constant SHELL_CWD_RESET_PATTERN (line 18) | const SHELL_CWD_RESET_PATTERN = /(?:^|\n)(Shell cwd was reset to .+)$/; function extractSandboxViolations (line 24) | function extractSandboxViolations(stderr: string): { function extractCwdResetWarning (line 45) | function extractCwdResetWarning(stderr: string): { function BashToolResultMessage (line 66) | function BashToolResultMessage(t0) { FILE: restored-src/src/tools/BashTool/UI.tsx constant MAX_COMMAND_DISPLAY_LINES (line 26) | const MAX_COMMAND_DISPLAY_LINES = 2; constant MAX_COMMAND_DISPLAY_CHARS (line 27) | const MAX_COMMAND_DISPLAY_CHARS = 160; function BackgroundHint (line 31) | function BackgroundHint(t0) { function renderToolUseMessage (line 85) | function renderToolUseMessage(input: Partial, { function renderToolUseProgressMessage (line 131) | function renderToolUseProgressMessage(progressMessagesForMessage: Progre... function renderToolUseQueuedMessage (line 154) | function renderToolUseQueuedMessage(): React.ReactNode { function renderToolResultMessage (line 159) | function renderToolResultMessage(content: Out, progressMessagesForMessag... function renderToolUseErrorMessage (line 174) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... FILE: restored-src/src/tools/BashTool/bashCommandHelpers.ts type CommandIdentityCheckers (line 18) | type CommandIdentityCheckers = { function segmentedCommandPermissionResult (line 23) | async function segmentedCommandPermissionResult( function buildSegmentWithoutRedirections (line 163) | async function buildSegmentWithoutRedirections( function checkCommandOperatorPermissions (line 181) | async function checkCommandOperatorPermissions( function bashToolCheckCommandOperatorPermissions (line 208) | async function bashToolCheckCommandOperatorPermissions( FILE: restored-src/src/tools/BashTool/bashPermissions.ts constant ENV_VAR_ASSIGN_RE (line 93) | const ENV_VAR_ASSIGN_RE = /^[A-Za-z_]\w*=/ constant MAX_SUBCOMMANDS_FOR_SECURITY_CHECK (line 103) | const MAX_SUBCOMMANDS_FOR_SECURITY_CHECK = 50 constant MAX_SUGGESTED_RULES_FOR_COMPOUND (line 110) | const MAX_SUGGESTED_RULES_FOR_COMPOUND = 5 function logClassifierResultForAnts (line 117) | function logClassifierResultForAnts( function getSimpleCommandPrefix (line 161) | function getSimpleCommandPrefix(command: string): string | null { constant BARE_SHELL_PREFIXES (line 196) | const BARE_SHELL_PREFIXES = new Set([ function getFirstWordPrefix (line 243) | function getFirstWordPrefix(command: string): string | null { function suggestionForExactCommand (line 266) | function suggestionForExactCommand(command: string): PermissionUpdate[] { function extractPrefixBeforeHeredoc (line 307) | function extractPrefixBeforeHeredoc(command: string): string | null { function suggestionForPrefix (line 339) | function suggestionForPrefix(prefix: string): PermissionUpdate[] { function matchWildcardPattern (line 353) | function matchWildcardPattern( constant SAFE_ENV_VARS (line 378) | const SAFE_ENV_VARS = new Set([ constant ANT_ONLY_SAFE_ENV_VARS (line 447) | const ANT_ONLY_SAFE_ENV_VARS = new Set([ function stripCommentLines (line 508) | function stripCommentLines(command: string): string { function stripSafeWrappers (line 524) | function stripSafeWrappers(command: string): string { constant TIMEOUT_FLAG_VALUE_RE (line 620) | const TIMEOUT_FLAG_VALUE_RE = /^[A-Za-z0-9_.+-]+$/ function skipTimeoutFlags (line 633) | function skipTimeoutFlags(a: readonly string[]): number { function stripWrappersFromArgv (line 678) | function stripWrappersFromArgv(argv: string[]): string[] { constant BINARY_HIJACK_VARS (line 708) | const BINARY_HIJACK_VARS = /^(LD_|DYLD_|PATH$)/ function stripAllLeadingEnvVars (line 733) | function stripAllLeadingEnvVars( function filterRulesByContentsMatchingInput (line 778) | function filterRulesByContentsMatchingInput( function matchingRulesForInput (line 937) | function matchingRulesForInput( function checkCommandAndSuggestRules (line 1183) | async function checkCommandAndSuggestRules( function checkSandboxAutoAllow (line 1270) | function checkSandboxAutoAllow( function filterCdCwdSubcommands (line 1367) | function filterCdCwdSubcommands( function checkEarlyExitDeny (line 1391) | function checkEarlyExitDeny( function checkSemanticsDeny (line 1431) | function checkSemanticsDeny( function buildPendingClassifierCheck (line 1459) | function buildPendingClassifierCheck( function peekSpeculativeClassifierCheck (line 1491) | function peekSpeculativeClassifierCheck( function startSpeculativeClassifierCheck (line 1497) | function startSpeculativeClassifierCheck( function consumeSpeculativeClassifierCheck (line 1533) | function consumeSpeculativeClassifierCheck( function clearSpeculativeChecks (line 1543) | function clearSpeculativeChecks(): void { function awaitClassifierAutoApproval (line 1555) | async function awaitClassifierAutoApproval( type AsyncClassifierCheckCallbacks (line 1589) | type AsyncClassifierCheckCallbacks = { function executeAsyncClassifierCheck (line 1605) | async function executeAsyncClassifierCheck( function bashToolHasPermission (line 1663) | async function bashToolHasPermission( function isNormalizedGitCommand (line 2567) | function isNormalizedGitCommand(command: string): boolean { function isNormalizedCdCommand (line 2603) | function isNormalizedCdCommand(command: string): boolean { function commandHasAnyCd (line 2617) | function commandHasAnyCd(command: string): boolean { FILE: restored-src/src/tools/BashTool/bashSecurity.ts constant HEREDOC_IN_SUBSTITUTION (line 12) | const HEREDOC_IN_SUBSTITUTION = /\$\(.*<']) function hasBackslashEscapedOperator (line 1631) | function hasBackslashEscapedOperator(command: string): boolean { function validateBackslashEscapedOperators (line 1696) | function validateBackslashEscapedOperators( function isEscapedAtPosition (line 1727) | function isEscapedAtPosition(content: string, pos: number): boolean { function validateBraceExpansion (line 1751) | function validateBraceExpansion(context: ValidationContext): PermissionR... constant UNICODE_WS_RE (line 1899) | const UNICODE_WS_RE = function validateUnicodeWhitespace (line 1902) | function validateUnicodeWhitespace( function validateMidWordHash (line 1919) | function validateMidWordHash(context: ValidationContext): PermissionResu... function validateCommentQuoteDesync (line 1990) | function validateCommentQuoteDesync( function validateQuotedNewline (line 2109) | function validateQuotedNewline(context: ValidationContext): PermissionRe... function validateZshDangerousCommands (line 2186) | function validateZshDangerousCommands( constant CONTROL_CHAR_RE (line 2251) | const CONTROL_CHAR_RE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/ function bashCommandIsSafe_DEPRECATED (line 2257) | function bashCommandIsSafe_DEPRECATED( function bashCommandIsSafeAsync_DEPRECATED (line 2426) | async function bashCommandIsSafeAsync_DEPRECATED( FILE: restored-src/src/tools/BashTool/commandSemantics.ts type CommandSemantic (line 10) | type CommandSemantic = ( constant COMMAND_SEMANTICS (line 31) | const COMMAND_SEMANTICS: Map = new Map([ function getCommandSemantic (line 94) | function getCommandSemantic(command: string): CommandSemantic { function extractBaseCommand (line 104) | function extractBaseCommand(command: string): string { function heuristicallyExtractBaseCommand (line 112) | function heuristicallyExtractBaseCommand(command: string): string { function interpretCommandResult (line 124) | function interpretCommandResult( FILE: restored-src/src/tools/BashTool/commentLabel.ts function extractBashCommentLabel (line 8) | function extractBashCommentLabel(command: string): string | undefined { FILE: restored-src/src/tools/BashTool/destructiveCommandWarning.ts type DestructivePattern (line 7) | type DestructivePattern = { constant DESTRUCTIVE_PATTERNS (line 12) | const DESTRUCTIVE_PATTERNS: DestructivePattern[] = [ function getDestructiveCommandWarning (line 95) | function getDestructiveCommandWarning(command: string): string | null { FILE: restored-src/src/tools/BashTool/modeValidation.ts constant ACCEPT_EDITS_ALLOWED_COMMANDS (line 7) | const ACCEPT_EDITS_ALLOWED_COMMANDS = [ type FilesystemCommand (line 17) | type FilesystemCommand = (typeof ACCEPT_EDITS_ALLOWED_COMMANDS)[number] function isFilesystemCommand (line 19) | function isFilesystemCommand(command: string): command is FilesystemComm... function validateCommandForMode (line 23) | function validateCommandForMode( function checkPermissionMode (line 72) | function checkPermissionMode( function getAutoAllowedCommands (line 111) | function getAutoAllowedCommands( FILE: restored-src/src/tools/BashTool/pathValidation.ts type PathCommand (line 27) | type PathCommand = function checkDangerousRemovalPaths (line 70) | function checkDangerousRemovalPaths( function filterOutFlags (line 126) | function filterOutFlags(args: string[]): string[] { function parsePatternCommand (line 142) | function parsePatternCommand( constant PATH_EXTRACTORS (line 190) | const PATH_EXTRACTORS: Record< constant SUPPORTED_PATH_COMMANDS (line 511) | const SUPPORTED_PATH_COMMANDS = Object.keys(PATH_EXTRACTORS) as PathComm... constant ACTION_VERBS (line 513) | const ACTION_VERBS: Record = { constant COMMAND_OPERATION_TYPE (line 552) | const COMMAND_OPERATION_TYPE: Record = { constant COMMAND_VALIDATOR (line 596) | const COMMAND_VALIDATOR: Partial< function validateCommandPaths (line 603) | function validateCommandPaths( function createPathChecker (line 703) | function createPathChecker( function parseCommandArguments (line 791) | function parseCommandArguments(cmd: string): string[] { function validateSinglePathCommand (line 834) | function validateSinglePathCommand( function validateSinglePathCommandArgv (line 888) | function validateSinglePathCommandArgv( function validateOutputRedirections (line 924) | function validateOutputRedirections( function checkPathConstraints (line 1013) | function checkPathConstraints( function astRedirectsToOutputRedirections (line 1116) | function astRedirectsToOutputRedirections(redirects: Redirect[]): { constant TIMEOUT_FLAG_VALUE_RE (line 1177) | const TIMEOUT_FLAG_VALUE_RE = /^[A-Za-z0-9_.+-]+$/ function skipTimeoutFlags (line 1183) | function skipTimeoutFlags(a: readonly string[]): number { function skipStdbufFlags (line 1225) | function skipStdbufFlags(a: readonly string[]): number { function skipEnvFlags (line 1244) | function skipEnvFlags(a: readonly string[]): number { function stripWrappersFromArgv (line 1263) | function stripWrappersFromArgv(argv: string[]): string[] { FILE: restored-src/src/tools/BashTool/prompt.ts function getDefaultTimeoutMs (line 27) | function getDefaultTimeoutMs(): number { function getMaxTimeoutMs (line 31) | function getMaxTimeoutMs(): number { function getBackgroundUsageNote (line 35) | function getBackgroundUsageNote(): string | null { function getCommitAndPRInstructions (line 42) | function getCommitAndPRInstructions(): string { function dedup (line 167) | function dedup(arr: T[] | undefined): T[] | undefined { function getSimpleSandboxSection (line 172) | function getSimpleSandboxSection(): string { function getSimplePrompt (line 275) | function getSimplePrompt(): string { FILE: restored-src/src/tools/BashTool/readOnlyValidation.ts type CommandConfig (line 35) | type CommandConfig = { constant FD_SAFE_FLAGS (line 55) | const FD_SAFE_FLAGS: Record = { constant COMMAND_ALLOWLIST (line 128) | const COMMAND_ALLOWLIST: Record = { constant ANT_ONLY_COMMAND_ALLOWLIST (line 1141) | const ANT_ONLY_COMMAND_ALLOWLIST: Record = { function getCommandAllowlist (line 1201) | function getCommandAllowlist(): Record { constant SAFE_TARGET_COMMANDS_FOR_XARGS (line 1232) | const SAFE_TARGET_COMMANDS_FOR_XARGS = [ function isCommandSafeViaFlagParsing (line 1246) | function isCommandSafeViaFlagParsing(command: string): boolean { function makeRegexForSafeCommand (line 1422) | function makeRegexForSafeCommand(command: string): RegExp { constant READONLY_COMMANDS (line 1432) | const READONLY_COMMANDS = [ constant READONLY_COMMAND_REGEXES (line 1509) | const READONLY_COMMAND_REGEXES = new Set([ function containsUnquotedExpansion (line 1600) | function containsUnquotedExpansion(command: string): boolean { function isCommandReadOnly (line 1678) | function isCommandReadOnly(command: string): boolean { function commandHasAnyGit (line 1760) | function commandHasAnyGit(command: string): boolean { constant GIT_INTERNAL_PATTERNS (line 1771) | const GIT_INTERNAL_PATTERNS = [ function isGitInternalPath (line 1781) | function isGitInternalPath(path: string): boolean { constant NON_CREATING_WRITE_COMMANDS (line 1788) | const NON_CREATING_WRITE_COMMANDS = new Set(['rm', 'rmdir', 'sed']) function extractWritePathsFromSubcommand (line 1795) | function extractWritePathsFromSubcommand(subcommand: string): string[] { function commandWritesToGitInternalPaths (line 1840) | function commandWritesToGitInternalPaths(command: string): boolean { function checkReadOnlyConstraints (line 1876) | function checkReadOnlyConstraints( FILE: restored-src/src/tools/BashTool/sedEditParser.ts constant BACKSLASH_PLACEHOLDER (line 10) | const BACKSLASH_PLACEHOLDER = '\x00BACKSLASH\x00' constant PLUS_PLACEHOLDER (line 11) | const PLUS_PLACEHOLDER = '\x00PLUS\x00' constant QUESTION_PLACEHOLDER (line 12) | const QUESTION_PLACEHOLDER = '\x00QUESTION\x00' constant PIPE_PLACEHOLDER (line 13) | const PIPE_PLACEHOLDER = '\x00PIPE\x00' constant LPAREN_PLACEHOLDER (line 14) | const LPAREN_PLACEHOLDER = '\x00LPAREN\x00' constant RPAREN_PLACEHOLDER (line 15) | const RPAREN_PLACEHOLDER = '\x00RPAREN\x00' constant BACKSLASH_PLACEHOLDER_RE (line 16) | const BACKSLASH_PLACEHOLDER_RE = new RegExp(BACKSLASH_PLACEHOLDER, 'g') constant PLUS_PLACEHOLDER_RE (line 17) | const PLUS_PLACEHOLDER_RE = new RegExp(PLUS_PLACEHOLDER, 'g') constant QUESTION_PLACEHOLDER_RE (line 18) | const QUESTION_PLACEHOLDER_RE = new RegExp(QUESTION_PLACEHOLDER, 'g') constant PIPE_PLACEHOLDER_RE (line 19) | const PIPE_PLACEHOLDER_RE = new RegExp(PIPE_PLACEHOLDER, 'g') constant LPAREN_PLACEHOLDER_RE (line 20) | const LPAREN_PLACEHOLDER_RE = new RegExp(LPAREN_PLACEHOLDER, 'g') constant RPAREN_PLACEHOLDER_RE (line 21) | const RPAREN_PLACEHOLDER_RE = new RegExp(RPAREN_PLACEHOLDER, 'g') type SedEditInfo (line 23) | type SedEditInfo = { function isSedInPlaceEdit (line 40) | function isSedInPlaceEdit(command: string): boolean { function parseSedEditCommand (line 49) | function parseSedEditCommand(command: string): SedEditInfo | null { function applySedSubstitution (line 244) | function applySedSubstitution( FILE: restored-src/src/tools/BashTool/sedValidation.ts function validateFlagsAgainstAllowlist (line 13) | function validateFlagsAgainstAllowlist( function isLinePrintingCommand (line 44) | function isLinePrintingCommand( function isPrintCommand (line 128) | function isPrintCommand(cmd: string): boolean { function isSubstitutionCommand (line 142) | function isSubstitutionCommand( function sedCommandIsAllowedByAllowlist (line 247) | function sedCommandIsAllowedByAllowlist( function hasFileArgs (line 307) | function hasFileArgs(command: string): boolean { function extractSedExpressions (line 388) | function extractSedExpressions(command: string): string[] { function containsDangerousOperations (line 473) | function containsDangerousOperations(expression: string): boolean { function checkSedConstraints (line 644) | function checkSedConstraints( FILE: restored-src/src/tools/BashTool/shouldUseSandbox.ts type SandboxInput (line 13) | type SandboxInput = { function containsExcludedCommand (line 21) | function containsExcludedCommand(command: string): boolean { function shouldUseSandbox (line 130) | function shouldUseSandbox(input: Partial): boolean { FILE: restored-src/src/tools/BashTool/toolName.ts constant BASH_TOOL_NAME (line 2) | const BASH_TOOL_NAME = 'Bash' FILE: restored-src/src/tools/BashTool/utils.ts function stripEmptyLines (line 22) | function stripEmptyLines(content: string): string { function isImageOutput (line 49) | function isImageOutput(content: string): boolean { constant DATA_URI_RE (line 53) | const DATA_URI_RE = /^data:([^;]+);base64,(.+)$/ function parseDataUri (line 59) | function parseDataUri( function buildImageToolResult (line 71) | function buildImageToolResult( constant MAX_IMAGE_FILE_SIZE (line 96) | const MAX_IMAGE_FILE_SIZE = 20 * 1024 * 1024 function resizeShellImageOutput (line 110) | async function resizeShellImageOutput( function formatOutput (line 133) | function formatOutput(content: string): { function resetCwdIfOutsideProject (line 170) | function resetCwdIfOutsideProject( function createContentSummary (line 198) | function createContentSummary(content: ContentBlockParam[]): string { FILE: restored-src/src/tools/BriefTool/BriefTool.ts type InputSchema (line 38) | type InputSchema = ReturnType type OutputSchema (line 64) | type OutputSchema = ReturnType type Output (line 65) | type Output = z.infer constant KAIROS_BRIEF_REFRESH_MS (line 67) | const KAIROS_BRIEF_REFRESH_MS = 5 * 60 * 1000 function isBriefEntitled (line 88) | function isBriefEntitled(): boolean { function isBriefEnabled (line 126) | function isBriefEnabled(): boolean { method userFacingName (line 142) | userFacingName() { method inputSchema (line 145) | get inputSchema(): InputSchema { method outputSchema (line 148) | get outputSchema(): OutputSchema { method isEnabled (line 151) | isEnabled() { method isConcurrencySafe (line 154) | isConcurrencySafe() { method isReadOnly (line 157) | isReadOnly() { method toAutoClassifierInput (line 160) | toAutoClassifierInput(input) { method validateInput (line 163) | async validateInput({ attachments }, _context): Promise { method description (line 169) | async description() { method prompt (line 172) | async prompt() { method mapToolResultToToolResultBlockParam (line 175) | mapToolResultToToolResultBlockParam(output, toolUseID) { method call (line 186) | async call({ message, attachments, status }, context) { FILE: restored-src/src/tools/BriefTool/UI.tsx function renderToolUseMessage (line 12) | function renderToolUseMessage(): React.ReactNode { function renderToolResultMessage (line 15) | function renderToolResultMessage(output: Output, _progressMessages: Prog... type AttachmentListProps (line 69) | type AttachmentListProps = { function AttachmentList (line 72) | function AttachmentList(t0) { function _temp (line 98) | function _temp(att) { FILE: restored-src/src/tools/BriefTool/attachments.ts type ResolvedAttachment (line 19) | type ResolvedAttachment = { function validateAttachmentPaths (line 26) | async function validateAttachmentPaths( function resolveAttachments (line 63) | async function resolveAttachments( FILE: restored-src/src/tools/BriefTool/prompt.ts constant BRIEF_TOOL_NAME (line 1) | const BRIEF_TOOL_NAME = 'SendUserMessage' constant LEGACY_BRIEF_TOOL_NAME (line 2) | const LEGACY_BRIEF_TOOL_NAME = 'Brief' constant DESCRIPTION (line 4) | const DESCRIPTION = 'Send a message to the user' constant BRIEF_TOOL_PROMPT (line 6) | const BRIEF_TOOL_PROMPT = `Send a message the user will read. Text outsi... constant BRIEF_PROACTIVE_SECTION (line 12) | const BRIEF_PROACTIVE_SECTION = `## Talking to the user FILE: restored-src/src/tools/BriefTool/upload.ts constant MAX_UPLOAD_BYTES (line 32) | const MAX_UPLOAD_BYTES = 30 * 1024 * 1024 constant UPLOAD_TIMEOUT_MS (line 34) | const UPLOAD_TIMEOUT_MS = 30_000 constant MIME_BY_EXT (line 43) | const MIME_BY_EXT: Record = { function guessMimeType (line 51) | function guessMimeType(filename: string): string { function debug (line 56) | function debug(msg: string): void { function getBridgeBaseUrl (line 69) | function getBridgeBaseUrl(): string { type BriefUploadContext (line 83) | type BriefUploadContext = { function uploadBriefAttachment (line 92) | async function uploadBriefAttachment( FILE: restored-src/src/tools/ConfigTool/ConfigTool.ts type InputSchema (line 49) | type InputSchema = ReturnType type OutputSchema (line 62) | type OutputSchema = ReturnType type Input (line 64) | type Input = z.infer type Output (line 65) | type Output = z.infer method description (line 71) | async description() { method prompt (line 74) | async prompt() { method inputSchema (line 77) | get inputSchema(): InputSchema { method outputSchema (line 80) | get outputSchema(): OutputSchema { method userFacingName (line 83) | userFacingName() { method isConcurrencySafe (line 87) | isConcurrencySafe() { method isReadOnly (line 90) | isReadOnly(input: Input) { method toAutoClassifierInput (line 93) | toAutoClassifierInput(input) { method checkPermissions (line 98) | async checkPermissions(input: Input) { method call (line 111) | async call({ setting, value }: Input, context): Promise<{ data: Output }> { method mapToolResultToToolResultBlockParam (line 412) | mapToolResultToToolResultBlockParam(content: Output, toolUseID: string) { function getValue (line 436) | function getValue(source: 'global' | 'settings', path: string[]): unknown { function buildNestedObject (line 455) | function buildNestedObject( FILE: restored-src/src/tools/ConfigTool/UI.tsx function renderToolUseMessage (line 6) | function renderToolUseMessage(input: Partial): React.ReactNode { function renderToolResultMessage (line 15) | function renderToolResultMessage(content: Output): React.ReactNode { function renderToolUseRejectedMessage (line 35) | function renderToolUseRejectedMessage(): React.ReactNode { FILE: restored-src/src/tools/ConfigTool/constants.ts constant CONFIG_TOOL_NAME (line 1) | const CONFIG_TOOL_NAME = 'Config' FILE: restored-src/src/tools/ConfigTool/prompt.ts constant DESCRIPTION (line 9) | const DESCRIPTION = 'Get or set Claude Code configuration settings.' function generatePrompt (line 14) | function generatePrompt(): string { function generateModelSection (line 79) | function generateModelSection(): string { FILE: restored-src/src/tools/ConfigTool/supportedSettings.ts type SyncableAppStateKey (line 13) | type SyncableAppStateKey = 'verbose' | 'mainLoopModel' | 'thinkingEnabled' type SettingConfig (line 15) | type SettingConfig = { constant SUPPORTED_SETTINGS (line 29) | const SUPPORTED_SETTINGS: Record = { function isSupported (line 188) | function isSupported(key: string): boolean { function getConfig (line 192) | function getConfig(key: string): SettingConfig | undefined { function getAllKeys (line 196) | function getAllKeys(): string[] { function getOptionsForSetting (line 200) | function getOptionsForSetting(key: string): string[] | undefined { function getPath (line 208) | function getPath(key: string): string[] { FILE: restored-src/src/tools/EnterPlanModeTool/EnterPlanModeTool.ts type InputSchema (line 26) | type InputSchema = ReturnType type OutputSchema (line 33) | type OutputSchema = ReturnType type Output (line 34) | type Output = z.infer method description (line 40) | async description() { method prompt (line 43) | async prompt() { method inputSchema (line 46) | get inputSchema(): InputSchema { method outputSchema (line 49) | get outputSchema(): OutputSchema { method userFacingName (line 52) | userFacingName() { method isEnabled (line 56) | isEnabled() { method isConcurrencySafe (line 68) | isConcurrencySafe() { method isReadOnly (line 71) | isReadOnly() { method call (line 77) | async call(_input, context) { method mapToolResultToToolResultBlockParam (line 103) | mapToolResultToToolResultBlockParam({ message }, toolUseID) { FILE: restored-src/src/tools/EnterPlanModeTool/UI.tsx function renderToolUseMessage (line 9) | function renderToolUseMessage(): React.ReactNode { function renderToolResultMessage (line 12) | function renderToolResultMessage(_output: Output, _progressMessagesForMe... function renderToolUseRejectedMessage (line 27) | function renderToolUseRejectedMessage(): React.ReactNode { FILE: restored-src/src/tools/EnterPlanModeTool/constants.ts constant ENTER_PLAN_MODE_TOOL_NAME (line 1) | const ENTER_PLAN_MODE_TOOL_NAME = 'EnterPlanMode' FILE: restored-src/src/tools/EnterPlanModeTool/prompt.ts constant WHAT_HAPPENS_SECTION (line 4) | const WHAT_HAPPENS_SECTION = `## What Happens in Plan Mode function getEnterPlanModeToolPromptExternal (line 16) | function getEnterPlanModeToolPromptExternal(): string { function getEnterPlanModeToolPromptAnt (line 101) | function getEnterPlanModeToolPromptAnt(): string { function getEnterPlanModeToolPrompt (line 166) | function getEnterPlanModeToolPrompt(): string { FILE: restored-src/src/tools/EnterWorktreeTool/EnterWorktreeTool.ts type InputSchema (line 40) | type InputSchema = ReturnType type OutputSchema (line 49) | type OutputSchema = ReturnType type Output (line 50) | type Output = z.infer method description (line 56) | async description() { method prompt (line 59) | async prompt() { method inputSchema (line 62) | get inputSchema(): InputSchema { method outputSchema (line 65) | get outputSchema(): OutputSchema { method userFacingName (line 68) | userFacingName() { method toAutoClassifierInput (line 72) | toAutoClassifierInput(input) { method call (line 77) | async call(input) { method mapToolResultToToolResultBlockParam (line 120) | mapToolResultToToolResultBlockParam({ message }, toolUseID) { FILE: restored-src/src/tools/EnterWorktreeTool/UI.tsx function renderToolUseMessage (line 7) | function renderToolUseMessage(): React.ReactNode { function renderToolResultMessage (line 10) | function renderToolResultMessage(output: Output, _progressMessagesForMes... FILE: restored-src/src/tools/EnterWorktreeTool/constants.ts constant ENTER_WORKTREE_TOOL_NAME (line 1) | const ENTER_WORKTREE_TOOL_NAME = 'EnterWorktree' FILE: restored-src/src/tools/EnterWorktreeTool/prompt.ts function getEnterWorktreeToolPrompt (line 1) | function getEnterWorktreeToolPrompt(): string { FILE: restored-src/src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts type AllowedPrompt (line 75) | type AllowedPrompt = z.infer> type InputSchema (line 90) | type InputSchema = ReturnType type OutputSchema (line 143) | type OutputSchema = ReturnType type Output (line 145) | type Output = z.infer method description (line 151) | async description() { method prompt (line 154) | async prompt() { method inputSchema (line 157) | get inputSchema(): InputSchema { method outputSchema (line 160) | get outputSchema(): OutputSchema { method userFacingName (line 163) | userFacingName() { method isEnabled (line 167) | isEnabled() { method isConcurrencySafe (line 179) | isConcurrencySafe() { method isReadOnly (line 182) | isReadOnly() { method requiresUserInteraction (line 185) | requiresUserInteraction() { method validateInput (line 195) | async validateInput(_input, { getAppState, options }) { method checkPermissions (line 221) | async checkPermissions(input, context) { method call (line 243) | async call(input, context) { method mapToolResultToToolResultBlockParam (line 419) | mapToolResultToToolResultBlockParam( FILE: restored-src/src/tools/ExitPlanModeTool/UI.tsx function renderToolUseMessage (line 14) | function renderToolUseMessage(): React.ReactNode { function renderToolResultMessage (line 17) | function renderToolResultMessage(output: Output, _progressMessagesForMes... function renderToolUseRejectedMessage (line 68) | function renderToolUseRejectedMessage({ FILE: restored-src/src/tools/ExitPlanModeTool/constants.ts constant EXIT_PLAN_MODE_TOOL_NAME (line 1) | const EXIT_PLAN_MODE_TOOL_NAME = 'ExitPlanMode' constant EXIT_PLAN_MODE_V2_TOOL_NAME (line 2) | const EXIT_PLAN_MODE_V2_TOOL_NAME = 'ExitPlanMode' FILE: restored-src/src/tools/ExitPlanModeTool/prompt.ts constant ASK_USER_QUESTION_TOOL_NAME (line 4) | const ASK_USER_QUESTION_TOOL_NAME = 'AskUserQuestion' constant EXIT_PLAN_MODE_V2_TOOL_PROMPT (line 6) | const EXIT_PLAN_MODE_V2_TOOL_PROMPT = `Use this tool when you are in pla... FILE: restored-src/src/tools/ExitWorktreeTool/ExitWorktreeTool.ts type InputSchema (line 45) | type InputSchema = ReturnType type OutputSchema (line 59) | type OutputSchema = ReturnType type Output (line 60) | type Output = z.infer type ChangeSummary (line 62) | type ChangeSummary = { function countWorktreeChanges (line 79) | async function countWorktreeChanges( function restoreSessionToOriginalCwd (line 122) | function restoreSessionToOriginalCwd( method description (line 152) | async description() { method prompt (line 155) | async prompt() { method inputSchema (line 158) | get inputSchema(): InputSchema { method outputSchema (line 161) | get outputSchema(): OutputSchema { method userFacingName (line 164) | userFacingName() { method isDestructive (line 168) | isDestructive(input) { method toAutoClassifierInput (line 171) | toAutoClassifierInput(input) { method validateInput (line 174) | async validateInput(input) { method call (line 227) | async call(input) { method mapToolResultToToolResultBlockParam (line 322) | mapToolResultToToolResultBlockParam({ message }, toolUseID) { FILE: restored-src/src/tools/ExitWorktreeTool/UI.tsx function renderToolUseMessage (line 7) | function renderToolUseMessage(): React.ReactNode { function renderToolResultMessage (line 10) | function renderToolResultMessage(output: Output, _progressMessagesForMes... FILE: restored-src/src/tools/ExitWorktreeTool/constants.ts constant EXIT_WORKTREE_TOOL_NAME (line 1) | const EXIT_WORKTREE_TOOL_NAME = 'ExitWorktree' FILE: restored-src/src/tools/ExitWorktreeTool/prompt.ts function getExitWorktreeToolPrompt (line 1) | function getExitWorktreeToolPrompt(): string { FILE: restored-src/src/tools/FileEditTool/FileEditTool.ts constant MAX_EDIT_FILE_SIZE (line 84) | const MAX_EDIT_FILE_SIZE = 1024 * 1024 * 1024 // 1 GiB (stat bytes) method description (line 91) | async description() { method prompt (line 94) | async prompt() { method getActivityDescription (line 99) | getActivityDescription(input) { method inputSchema (line 103) | get inputSchema() { method outputSchema (line 106) | get outputSchema() { method toAutoClassifierInput (line 109) | toAutoClassifierInput(input) { method getPath (line 112) | getPath(input): string { method backfillObservableInput (line 115) | backfillObservableInput(input) { method preparePermissionMatcher (line 122) | async preparePermissionMatcher({ file_path }) { method checkPermissions (line 125) | async checkPermissions(input, context): Promise { method validateInput (line 137) | async validateInput(input: FileEditInput, toolUseContext: ToolUseContext) { method inputsEquivalent (line 363) | inputsEquivalent(input1, input2) { method call (line 387) | async call( method mapToolResultToToolResultBlockParam (line 575) | mapToolResultToToolResultBlockParam(data: FileEditOutput, toolUseID) { function readFileForEdit (line 599) | function readFileForEdit(absoluteFilePath: string): { FILE: restored-src/src/tools/FileEditTool/UI.tsx function userFacingName (line 24) | function userFacingName(input: Partial<{ function getToolUseSummary (line 46) | function getToolUseSummary(input: Partial<{ function renderToolUseMessage (line 57) | function renderToolUseMessage({ function renderToolResultMessage (line 77) | function renderToolResultMessage({ function renderToolUseRejectedMessage (line 92) | function renderToolUseRejectedMessage(input: { function renderToolUseErrorMessage (line 128) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... type RejectionDiffData (line 155) | type RejectionDiffData = { function EditRejectionDiff (line 160) | function EditRejectionDiff(t0) { function EditRejectionBody (line 213) | function EditRejectionBody(t0) { function loadRejectionDiff (line 241) | async function loadRejectionDiff(filePath: string, oldString: string, ne... FILE: restored-src/src/tools/FileEditTool/constants.ts constant FILE_EDIT_TOOL_NAME (line 2) | const FILE_EDIT_TOOL_NAME = 'Edit' constant CLAUDE_FOLDER_PERMISSION_PATTERN (line 5) | const CLAUDE_FOLDER_PERMISSION_PATTERN = '/.claude/**' constant GLOBAL_CLAUDE_FOLDER_PERMISSION_PATTERN (line 8) | const GLOBAL_CLAUDE_FOLDER_PERMISSION_PATTERN = '~/.claude/**' constant FILE_UNEXPECTEDLY_MODIFIED_ERROR (line 10) | const FILE_UNEXPECTEDLY_MODIFIED_ERROR = FILE: restored-src/src/tools/FileEditTool/prompt.ts function getPreReadInstruction (line 4) | function getPreReadInstruction(): string { function getEditToolDescription (line 8) | function getEditToolDescription(): string { function getDefaultEditDescription (line 12) | function getDefaultEditDescription(): string { FILE: restored-src/src/tools/FileEditTool/types.ts type InputSchema (line 20) | type InputSchema = ReturnType type FileEditInput (line 24) | type FileEditInput = z.output type EditInput (line 27) | type EditInput = Omit type FileEdit (line 30) | type FileEdit = { type OutputSchema (line 81) | type OutputSchema = ReturnType type FileEditOutput (line 83) | type FileEditOutput = z.infer FILE: restored-src/src/tools/FileEditTool/utils.ts constant LEFT_SINGLE_CURLY_QUOTE (line 21) | const LEFT_SINGLE_CURLY_QUOTE = '‘' constant RIGHT_SINGLE_CURLY_QUOTE (line 22) | const RIGHT_SINGLE_CURLY_QUOTE = '’' constant LEFT_DOUBLE_CURLY_QUOTE (line 23) | const LEFT_DOUBLE_CURLY_QUOTE = '“' constant RIGHT_DOUBLE_CURLY_QUOTE (line 24) | const RIGHT_DOUBLE_CURLY_QUOTE = '”' function normalizeQuotes (line 31) | function normalizeQuotes(str: string): string { function stripTrailingWhitespace (line 44) | function stripTrailingWhitespace(str: string): string { function findActualString (line 73) | function findActualString( function preserveQuoteStyle (line 104) | function preserveQuoteStyle( function isOpeningContext (line 138) | function isOpeningContext(chars: string[], index: number): boolean { function applyCurlyDoubleQuotes (line 156) | function applyCurlyDoubleQuotes(str: string): string { function applyCurlySingleQuotes (line 173) | function applyCurlySingleQuotes(str: string): string { function applyEditToFile (line 206) | function applyEditToFile( function getPatchForEdit (line 234) | function getPatchForEdit({ function getPatchForEdits (line 262) | function getPatchForEdits({ constant DIFF_SNIPPET_MAX_BYTES (line 355) | const DIFF_SNIPPET_MAX_BYTES = 8192 function getSnippetForTwoFileDiff (line 362) | function getSnippetForTwoFileDiff( constant CONTEXT_LINES (line 408) | const CONTEXT_LINES = 4 function getSnippetForPatch (line 417) | function getSnippetForPatch( function getSnippet (line 468) | function getSnippet( function getEditsForPatch (line 495) | function getEditsForPatch(patch: StructuredPatchHunk[]): FileEdit[] { constant DESANITIZATIONS (line 531) | const DESANITIZATIONS: Record = { function desanitizeMatchString (line 557) | function desanitizeMatchString(matchString: string): { function normalizeFileEditInput (line 581) | function normalizeFileEditInput({ function areFileEditsEquivalent (line 664) | function areFileEditsEquivalent( function areFileEditsInputsEquivalent (line 732) | function areFileEditsInputsEquivalent( FILE: restored-src/src/tools/FileReadTool/FileReadTool.ts constant BLOCKED_DEVICE_PATHS (line 98) | const BLOCKED_DEVICE_PATHS = new Set([ function isBlockedDevicePath (line 117) | function isBlockedDevicePath(filePath: string): boolean { constant THIN_SPACE (line 131) | const THIN_SPACE = String.fromCharCode(8239) function getAlternateScreenshotPath (line 147) | function getAlternateScreenshotPath(filePath: string): string | undefined { type FileReadListener (line 162) | type FileReadListener = (filePath: string, content: string) => void function registerFileReadListener (line 165) | function registerFileReadListener( class MaxFileReadTokenExceededError (line 175) | class MaxFileReadTokenExceededError extends Error { method constructor (line 176) | constructor( constant IMAGE_EXTENSIONS (line 188) | const IMAGE_EXTENSIONS = new Set(['png', 'jpg', 'jpeg', 'gif', 'webp']) function detectSessionFileType (line 195) | function detectSessionFileType( type InputSchema (line 244) | type InputSchema = ReturnType type Input (line 246) | type Input = z.infer type OutputSchema (line 333) | type OutputSchema = ReturnType type Output (line 335) | type Output = z.infer method description (line 344) | async description() { method prompt (line 347) | async prompt() { method inputSchema (line 361) | get inputSchema(): InputSchema { method outputSchema (line 364) | get outputSchema(): OutputSchema { method getActivityDescription (line 369) | getActivityDescription(input) { method isConcurrencySafe (line 373) | isConcurrencySafe() { method isReadOnly (line 376) | isReadOnly() { method toAutoClassifierInput (line 379) | toAutoClassifierInput(input) { method isSearchOrReadCommand (line 382) | isSearchOrReadCommand() { method getPath (line 385) | getPath({ file_path }): string { method backfillObservableInput (line 388) | backfillObservableInput(input) { method preparePermissionMatcher (line 395) | async preparePermissionMatcher({ file_path }) { method checkPermissions (line 398) | async checkPermissions(input, context): Promise { method extractSearchText (line 414) | extractSearchText() { method validateInput (line 418) | async validateInput({ file_path, pages }, toolUseContext: ToolUseContext) { method call (line 496) | async call( method mapToolResultToToolResultBlockParam (line 652) | mapToolResultToToolResultBlockParam(data, toolUseID) { function pickLineFormatInstruction (line 720) | function pickLineFormatInstruction(): string { function formatFileLines (line 725) | function formatFileLines(file: { content: string; startLine: number }): ... constant CYBER_RISK_MITIGATION_REMINDER (line 729) | const CYBER_RISK_MITIGATION_REMINDER = constant MITIGATION_EXEMPT_MODELS (line 733) | const MITIGATION_EXEMPT_MODELS = new Set(['claude-opus-4-6']) function shouldIncludeFileReadMitigation (line 735) | function shouldIncludeFileReadMitigation(): boolean { function memoryFileFreshnessPrefix (line 749) | function memoryFileFreshnessPrefix(data: object): string { function validateContentTokens (line 755) | async function validateContentTokens( type ImageResult (line 774) | type ImageResult = { function createImageResponse (line 784) | function createImageResponse( function callInner (line 804) | async function callInner( function readImageWithTokenBudget (line 1097) | async function readImageWithTokenBudget( FILE: restored-src/src/tools/FileReadTool/UI.tsx function getAgentOutputTaskId (line 18) | function getAgentOutputTaskId(filePath: string): string | null { function renderToolUseMessage (line 30) | function renderToolUseMessage({ function renderToolUseTag (line 66) | function renderToolUseTag({ function renderToolResultMessage (line 77) | function renderToolResultMessage(output: Output): React.ReactNode { function renderToolUseErrorMessage (line 144) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... function userFacingName (line 165) | function userFacingName(input: Partial | undefined): string { function getToolUseSummary (line 174) | function getToolUseSummary(input: Partial | undefined): string | ... FILE: restored-src/src/tools/FileReadTool/imageProcessor.ts type SharpInstance (line 4) | type SharpInstance = { type SharpFunction (line 21) | type SharpFunction = (input: Buffer) => SharpInstance type SharpCreatorOptions (line 23) | type SharpCreatorOptions = { type SharpCreator (line 32) | type SharpCreator = (options: SharpCreatorOptions) => SharpInstance function getImageProcessor (line 37) | async function getImageProcessor(): Promise { function getImageCreator (line 74) | async function getImageCreator(): Promise { type MaybeDefault (line 88) | type MaybeDefault = T | { default: T } function unwrapDefault (line 90) | function unwrapDefault unknown>( FILE: restored-src/src/tools/FileReadTool/limits.ts constant DEFAULT_MAX_OUTPUT_TOKENS (line 18) | const DEFAULT_MAX_OUTPUT_TOKENS = 25000 function getEnvMaxTokens (line 24) | function getEnvMaxTokens(): number | undefined { type FileReadingLimits (line 35) | type FileReadingLimits = { FILE: restored-src/src/tools/FileReadTool/prompt.ts constant FILE_READ_TOOL_NAME (line 5) | const FILE_READ_TOOL_NAME = 'Read' constant FILE_UNCHANGED_STUB (line 7) | const FILE_UNCHANGED_STUB = constant MAX_LINES_TO_READ (line 10) | const MAX_LINES_TO_READ = 2000 constant DESCRIPTION (line 12) | const DESCRIPTION = 'Read a file from the local filesystem.' constant LINE_FORMAT_INSTRUCTION (line 14) | const LINE_FORMAT_INSTRUCTION = constant OFFSET_INSTRUCTION_DEFAULT (line 17) | const OFFSET_INSTRUCTION_DEFAULT = constant OFFSET_INSTRUCTION_TARGETED (line 20) | const OFFSET_INSTRUCTION_TARGETED = function renderPromptTemplate (line 27) | function renderPromptTemplate( FILE: restored-src/src/tools/FileWriteTool/FileWriteTool.ts type InputSchema (line 66) | type InputSchema = ReturnType type OutputSchema (line 89) | type OutputSchema = ReturnType type Output (line 91) | type Output = z.infer type FileWriteToolInput (line 92) | type FileWriteToolInput = InputSchema method description (line 99) | async description() { method getActivityDescription (line 104) | getActivityDescription(input) { method prompt (line 108) | async prompt() { method inputSchema (line 113) | get inputSchema(): InputSchema { method outputSchema (line 116) | get outputSchema(): OutputSchema { method toAutoClassifierInput (line 119) | toAutoClassifierInput(input) { method getPath (line 122) | getPath(input): string { method backfillObservableInput (line 125) | backfillObservableInput(input) { method preparePermissionMatcher (line 132) | async preparePermissionMatcher({ file_path }) { method checkPermissions (line 135) | async checkPermissions(input, context): Promise { method extractSearchText (line 146) | extractSearchText() { method validateInput (line 153) | async validateInput({ file_path, content }, toolUseContext: ToolUseConte... method call (line 223) | async call( method mapToolResultToToolResultBlockParam (line 418) | mapToolResultToToolResultBlockParam({ filePath, type }, toolUseID) { FILE: restored-src/src/tools/FileWriteTool/UI.tsx constant MAX_LINES_TO_RENDER (line 26) | const MAX_LINES_TO_RENDER = 10; constant EOL (line 29) | const EOL = '\n'; function countLines (line 35) | function countLines(content: string): number { function FileWriteToolCreatedMessage (line 39) | function FileWriteToolCreatedMessage(t0) { function userFacingName (line 128) | function userFacingName(input: Partial<{ function isResultTruncated (line 142) | function isResultTruncated({ function getToolUseSummary (line 156) | function getToolUseSummary(input: Partial<{ function renderToolUseMessage (line 165) | function renderToolUseMessage(input: Partial<{ function renderToolUseRejectedMessage (line 184) | function renderToolUseRejectedMessage({ type RejectionDiffData (line 199) | type RejectionDiffData = { function WriteRejectionDiff (line 208) | function WriteRejectionDiff(t0) { function WriteRejectionBody (line 271) | function WriteRejectionBody(t0) { function loadRejectionDiff (line 310) | async function loadRejectionDiff(filePath: string, content: string): Pro... function renderToolUseErrorMessage (line 350) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... function renderToolResultMessage (line 362) | function renderToolResultMessage({ FILE: restored-src/src/tools/FileWriteTool/prompt.ts constant FILE_WRITE_TOOL_NAME (line 3) | const FILE_WRITE_TOOL_NAME = 'Write' constant DESCRIPTION (line 4) | const DESCRIPTION = 'Write a file to the local filesystem.' function getPreReadInstruction (line 6) | function getPreReadInstruction(): string { function getWriteToolDescription (line 10) | function getWriteToolDescription(): string { FILE: restored-src/src/tools/GlobTool/GlobTool.ts type InputSchema (line 37) | type InputSchema = ReturnType type OutputSchema (line 53) | type OutputSchema = ReturnType type Output (line 55) | type Output = z.infer method description (line 61) | async description() { method getActivityDescription (line 66) | getActivityDescription(input) { method inputSchema (line 70) | get inputSchema(): InputSchema { method outputSchema (line 73) | get outputSchema(): OutputSchema { method isConcurrencySafe (line 76) | isConcurrencySafe() { method isReadOnly (line 79) | isReadOnly() { method toAutoClassifierInput (line 82) | toAutoClassifierInput(input) { method isSearchOrReadCommand (line 85) | isSearchOrReadCommand() { method getPath (line 88) | getPath({ path }): string { method preparePermissionMatcher (line 91) | async preparePermissionMatcher({ pattern }) { method validateInput (line 94) | async validateInput({ path }): Promise { method checkPermissions (line 135) | async checkPermissions(input, context): Promise { method prompt (line 143) | async prompt() { method extractSearchText (line 151) | extractSearchText({ filenames }) { method call (line 154) | async call(input, { abortController, getAppState, globLimits }) { method mapToolResultToToolResultBlockParam (line 177) | mapToolResultToToolResultBlockParam(output, toolUseID) { FILE: restored-src/src/tools/GlobTool/UI.tsx function userFacingName (line 11) | function userFacingName(): string { function renderToolUseMessage (line 14) | function renderToolUseMessage({ function renderToolUseErrorMessage (line 33) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... function getToolUseSummary (line 54) | function getToolUseSummary(input: Partial<{ FILE: restored-src/src/tools/GlobTool/prompt.ts constant GLOB_TOOL_NAME (line 1) | const GLOB_TOOL_NAME = 'Glob' constant DESCRIPTION (line 3) | const DESCRIPTION = `- Fast file pattern matching tool that works with a... FILE: restored-src/src/tools/GrepTool/GrepTool.ts type InputSchema (line 91) | type InputSchema = ReturnType constant VCS_DIRECTORIES_TO_EXCLUDE (line 95) | const VCS_DIRECTORIES_TO_EXCLUDE = [ constant DEFAULT_HEAD_LIMIT (line 108) | const DEFAULT_HEAD_LIMIT = 250 function applyHeadLimit (line 110) | function applyHeadLimit( function formatLimitInfo (line 134) | function formatLimitInfo( type OutputSchema (line 156) | type OutputSchema = ReturnType type Output (line 158) | type Output = z.infer method description (line 166) | async description() { method userFacingName (line 169) | userFacingName() { method getActivityDescription (line 173) | getActivityDescription(input) { method inputSchema (line 177) | get inputSchema(): InputSchema { method outputSchema (line 180) | get outputSchema(): OutputSchema { method isConcurrencySafe (line 183) | isConcurrencySafe() { method isReadOnly (line 186) | isReadOnly() { method toAutoClassifierInput (line 189) | toAutoClassifierInput(input) { method isSearchOrReadCommand (line 192) | isSearchOrReadCommand() { method getPath (line 195) | getPath({ path }): string { method preparePermissionMatcher (line 198) | async preparePermissionMatcher({ pattern }) { method validateInput (line 201) | async validateInput({ path }): Promise { method checkPermissions (line 233) | async checkPermissions(input, context): Promise { method prompt (line 241) | async prompt() { method extractSearchText (line 250) | extractSearchText({ mode, content, filenames }) { method mapToolResultToToolResultBlockParam (line 254) | mapToolResultToToolResultBlockParam( method call (line 310) | async call( FILE: restored-src/src/tools/GrepTool/UI.tsx function SearchResultSummary (line 16) | function SearchResultSummary(t0) { type Output (line 119) | type Output = { function renderToolUseMessage (line 127) | function renderToolUseMessage({ function renderToolUseErrorMessage (line 147) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... function renderToolResultMessage (line 165) | function renderToolResultMessage({ function getToolUseSummary (line 188) | function getToolUseSummary(input: Partial<{ FILE: restored-src/src/tools/GrepTool/prompt.ts constant GREP_TOOL_NAME (line 4) | const GREP_TOOL_NAME = 'Grep' function getDescription (line 6) | function getDescription(): string { FILE: restored-src/src/tools/LSPTool/LSPTool.ts constant MAX_LSP_FILE_SIZE_BYTES (line 53) | const MAX_LSP_FILE_SIZE_BYTES = 10_000_000 type InputSchema (line 87) | type InputSchema = ReturnType type OutputSchema (line 122) | type OutputSchema = ReturnType type Output (line 124) | type Output = z.infer type Input (line 125) | type Input = z.infer method description (line 132) | async description() { method isEnabled (line 137) | isEnabled() { method inputSchema (line 140) | get inputSchema(): InputSchema { method outputSchema (line 143) | get outputSchema(): OutputSchema { method isConcurrencySafe (line 146) | isConcurrencySafe() { method isReadOnly (line 149) | isReadOnly() { method getPath (line 152) | getPath({ filePath }): string { method validateInput (line 155) | async validateInput(input: Input): Promise { method checkPermissions (line 210) | async checkPermissions(input, context): Promise { method prompt (line 218) | async prompt() { method call (line 224) | async call(input: Input, _context) { method mapToolResultToToolResultBlockParam (line 415) | mapToolResultToToolResultBlockParam(output, toolUseID) { function getMethodAndParams (line 427) | function getMethodAndParams( function countSymbols (line 518) | function countSymbols(symbols: DocumentSymbol[]): number { function countUniqueFiles (line 531) | function countUniqueFiles(locations: Location[]): number { function uriToFilePath (line 538) | function uriToFilePath(uri: string): string { function filterGitIgnoredLocations (line 556) | async function filterGitIgnoredLocations( function isLocationLink (line 616) | function isLocationLink(item: Location | LocationLink): item is Location... function toLocation (line 623) | function toLocation(item: Location | LocationLink): Location { function formatResult (line 636) | function formatResult( function countUniqueFilesFromCallItems (line 835) | function countUniqueFilesFromCallItems(items: CallHierarchyItem[]): numb... function countUniqueFilesFromIncomingCalls (line 844) | function countUniqueFilesFromIncomingCalls( function countUniqueFilesFromOutgoingCalls (line 855) | function countUniqueFilesFromOutgoingCalls( FILE: restored-src/src/tools/LSPTool/UI.tsx constant OPERATION_LABELS (line 14) | const OPERATION_LABELS: Record, { function renderToolUseErrorMessage (line 200) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... function renderToolResultMessage (line 212) | function renderToolResultMessage(output: Output, _progressMessages: unkn... FILE: restored-src/src/tools/LSPTool/formatters.ts function formatUri (line 24) | function formatUri(uri: string | undefined, cwd?: string): string { function groupByFile (line 78) | function groupByFile> function isValidLSPOperation (line 201) | function isValidLSPOperation( FILE: restored-src/src/tools/LSPTool/symbolContext.ts constant MAX_READ_BYTES (line 6) | const MAX_READ_BYTES = 64 * 1024 function getSymbolAtPosition (line 21) | function getSymbolAtPosition( FILE: restored-src/src/tools/ListMcpResourcesTool/ListMcpResourcesTool.ts type InputSchema (line 23) | type InputSchema = ReturnType type OutputSchema (line 36) | type OutputSchema = ReturnType type Output (line 38) | type Output = z.infer method isConcurrencySafe (line 41) | isConcurrencySafe() { method isReadOnly (line 44) | isReadOnly() { method toAutoClassifierInput (line 47) | toAutoClassifierInput(input) { method description (line 54) | async description() { method prompt (line 57) | async prompt() { method inputSchema (line 60) | get inputSchema(): InputSchema { method outputSchema (line 63) | get outputSchema(): OutputSchema { method call (line 66) | async call(input, { options: { mcpClients } }) { method isResultTruncated (line 105) | isResultTruncated(output: Output): boolean { method mapToolResultToToolResultBlockParam (line 108) | mapToolResultToToolResultBlockParam(content, toolUseID) { FILE: restored-src/src/tools/ListMcpResourcesTool/UI.tsx function renderToolUseMessage (line 9) | function renderToolUseMessage(input: Partial<{ function renderToolResultMessage (line 14) | function renderToolResultMessage(output: Output, _progressMessagesForMes... FILE: restored-src/src/tools/ListMcpResourcesTool/prompt.ts constant LIST_MCP_RESOURCES_TOOL_NAME (line 1) | const LIST_MCP_RESOURCES_TOOL_NAME = 'ListMcpResourcesTool' constant DESCRIPTION (line 3) | const DESCRIPTION = ` constant PROMPT (line 12) | const PROMPT = ` FILE: restored-src/src/tools/MCPTool/MCPTool.ts type InputSchema (line 15) | type InputSchema = ReturnType type OutputSchema (line 20) | type OutputSchema = ReturnType type Output (line 22) | type Output = z.infer method isOpenWorld (line 30) | isOpenWorld() { method description (line 37) | async description() { method prompt (line 41) | async prompt() { method inputSchema (line 44) | get inputSchema(): InputSchema { method outputSchema (line 47) | get outputSchema(): OutputSchema { method call (line 51) | async call() { method checkPermissions (line 56) | async checkPermissions(): Promise { method isResultTruncated (line 67) | isResultTruncated(output: Output): boolean { method mapToolResultToToolResultBlockParam (line 70) | mapToolResultToToolResultBlockParam(content, toolUseID) { FILE: restored-src/src/tools/MCPTool/UI.tsx constant MCP_OUTPUT_WARNING_THRESHOLD_TOKENS (line 21) | const MCP_OUTPUT_WARNING_THRESHOLD_TOKENS = 10_000; constant MAX_INPUT_VALUE_CHARS (line 26) | const MAX_INPUT_VALUE_CHARS = 80; constant MAX_FLAT_JSON_KEYS (line 30) | const MAX_FLAT_JSON_KEYS = 12; constant MAX_FLAT_JSON_CHARS (line 33) | const MAX_FLAT_JSON_CHARS = 5_000; constant MAX_JSON_PARSE_CHARS (line 36) | const MAX_JSON_PARSE_CHARS = 200_000; constant UNWRAP_MIN_STRING_LEN (line 40) | const UNWRAP_MIN_STRING_LEN = 200; function renderToolUseMessage (line 41) | function renderToolUseMessage(input: z.infer type McpAuthOutput (line 26) | type McpAuthOutput = { function getConfigUrl (line 32) | function getConfigUrl(config: ScopedMcpServerConfig): string | undefined { function createMcpAuthTool (line 49) | function createMcpAuthTool( FILE: restored-src/src/tools/NotebookEditTool/NotebookEditTool.ts type InputSchema (line 58) | type InputSchema = ReturnType type OutputSchema (line 86) | type OutputSchema = ReturnType type Output (line 88) | type Output = z.infer method description (line 95) | async description() { method prompt (line 98) | async prompt() { method userFacingName (line 101) | userFacingName() { method getActivityDescription (line 105) | getActivityDescription(input) { method inputSchema (line 109) | get inputSchema(): InputSchema { method outputSchema (line 112) | get outputSchema(): OutputSchema { method toAutoClassifierInput (line 115) | toAutoClassifierInput(input) { method getPath (line 122) | getPath(input): string { method checkPermissions (line 125) | async checkPermissions(input, context): Promise { method mapToolResultToToolResultBlockParam (line 133) | mapToolResultToToolResultBlockParam( method validateInput (line 176) | async validateInput( method call (line 295) | async call( FILE: restored-src/src/tools/NotebookEditTool/UI.tsx function getToolUseSummary (line 16) | function getToolUseSummary(input: Partial { method isConcurrencySafe (line 285) | isConcurrencySafe(input: PowerShellToolInput): boolean { method isSearchOrReadCommand (line 288) | isSearchOrReadCommand(input: Partial): { method isReadOnly (line 300) | isReadOnly(input: PowerShellToolInput): boolean { method toAutoClassifierInput (line 317) | toAutoClassifierInput(input) { method inputSchema (line 320) | get inputSchema(): InputSchema { method outputSchema (line 323) | get outputSchema(): OutputSchema { method userFacingName (line 326) | userFacingName(): string { method getToolUseSummary (line 329) | getToolUseSummary(input: Partial | undefined): stri... method getActivityDescription (line 342) | getActivityDescription(input: Partial | undefined):... method isEnabled (line 349) | isEnabled(): boolean { method validateInput (line 352) | async validateInput(input: PowerShellToolInput): Promise { method onProgress (line 733) | onProgress(lastLines, allLines, totalLines, totalBytes, isIncomplete) { function spawnBackgroundTask (line 766) | async function spawnBackgroundTask(): Promise { function startBackgrounding (line 784) | function startBackgrounding(eventName: string, backgroundFn?: (shellId: ... FILE: restored-src/src/tools/PowerShellTool/UI.tsx constant MAX_COMMAND_DISPLAY_LINES (line 17) | const MAX_COMMAND_DISPLAY_LINES = 2; constant MAX_COMMAND_DISPLAY_CHARS (line 18) | const MAX_COMMAND_DISPLAY_CHARS = 160; function renderToolUseMessage (line 19) | function renderToolUseMessage(input: Partial, { function renderToolUseProgressMessage (line 50) | function renderToolUseProgressMessage(progressMessagesForMessage: Progre... function renderToolUseQueuedMessage (line 73) | function renderToolUseQueuedMessage(): React.ReactNode { function renderToolResultMessage (line 78) | function renderToolResultMessage(content: Out, progressMessagesForMessag... function renderToolUseErrorMessage (line 120) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... FILE: restored-src/src/tools/PowerShellTool/clmTypes.ts constant CLM_ALLOWED_TYPES (line 18) | const CLM_ALLOWED_TYPES: ReadonlySet = new Set( function normalizeTypeName (line 194) | function normalizeTypeName(name: string): string { function isClmAllowedType (line 209) | function isClmAllowedType(typeName: string): boolean { FILE: restored-src/src/tools/PowerShellTool/commandSemantics.ts type CommandSemantic (line 20) | type CommandSemantic = ( constant COMMAND_SEMANTICS (line 62) | const COMMAND_SEMANTICS: Map = new Map([ function extractBaseCommand (line 100) | function extractBaseCommand(segment: string): string { function heuristicallyExtractBaseCommand (line 121) | function heuristicallyExtractBaseCommand(command: string): string { function interpretCommandResult (line 130) | function interpretCommandResult( FILE: restored-src/src/tools/PowerShellTool/commonParameters.ts constant COMMON_SWITCHES (line 12) | const COMMON_SWITCHES = ['-verbose', '-debug'] constant COMMON_VALUE_PARAMS (line 14) | const COMMON_VALUE_PARAMS = [ constant COMMON_PARAMETERS (line 27) | const COMMON_PARAMETERS: ReadonlySet = new Set([ FILE: restored-src/src/tools/PowerShellTool/destructiveCommandWarning.ts type DestructivePattern (line 7) | type DestructivePattern = { constant DESTRUCTIVE_PATTERNS (line 12) | const DESTRUCTIVE_PATTERNS: DestructivePattern[] = [ function getDestructiveCommandWarning (line 102) | function getDestructiveCommandWarning(command: string): string | null { FILE: restored-src/src/tools/PowerShellTool/gitSafety.ts function resolveCwdReentry (line 23) | function resolveCwdReentry(normalized: string): string { function normalizeGitPathArg (line 48) | function normalizeGitPathArg(arg: string): string { constant GIT_INTERNAL_PREFIXES (line 89) | const GIT_INTERNAL_PREFIXES = ['head', 'objects', 'refs', 'hooks'] as const function resolveEscapingPathToCwdRelative (line 106) | function resolveEscapingPathToCwdRelative(n: string): string | null { function matchesGitInternalPrefix (line 124) | function matchesGitInternalPrefix(n: string): boolean { function isGitInternalPathPS (line 139) | function isGitInternalPathPS(arg: string): boolean { function isDotGitPathPS (line 158) | function isDotGitPathPS(arg: string): boolean { function matchesDotGitPrefix (line 170) | function matchesDotGitPrefix(n: string): boolean { FILE: restored-src/src/tools/PowerShellTool/modeValidation.ts constant ACCEPT_EDITS_ALLOWED_CMDLETS (line 33) | const ACCEPT_EDITS_ALLOWED_CMDLETS = new Set([ function isAcceptEditsAllowedCmdlet (line 40) | function isAcceptEditsAllowedCmdlet(name: string): boolean { constant LINK_ITEM_TYPES (line 56) | const LINK_ITEM_TYPES = new Set(['symboliclink', 'junction', 'hardlink']) function isItemTypeParamAbbrev (line 64) | function isItemTypeParamAbbrev(p: string): boolean { function isSymlinkCreatingCommand (line 82) | function isSymlinkCreatingCommand(cmd: { function checkPermissionMode (line 132) | function checkPermissionMode( FILE: restored-src/src/tools/PowerShellTool/pathValidation.ts constant MAX_DIRS_TO_LIST (line 46) | const MAX_DIRS_TO_LIST = 5 constant GLOB_PATTERN_REGEX (line 50) | const GLOB_PATTERN_REGEX = /[*?[\]]/ type FileOperationType (line 52) | type FileOperationType = 'read' | 'write' | 'create' type PathCheckResult (line 54) | type PathCheckResult = { type ResolvedPathCheckResult (line 59) | type ResolvedPathCheckResult = PathCheckResult & { type CmdletPathConfig (line 88) | type CmdletPathConfig = { constant CMDLET_PATH_CONFIG (line 124) | const CMDLET_PATH_CONFIG: Record = { function matchesParam (line 772) | function matchesParam(paramLower: string, paramList: string[]): boolean { function hasComplexColonValue (line 793) | function hasComplexColonValue(rawValue: string): boolean { function formatDirectoryList (line 805) | function formatDirectoryList(directories: string[]): string { function expandTilde (line 820) | function expandTilde(filePath: string): string { function isDangerousRemovalRawPath (line 840) | function isDangerousRemovalRawPath(filePath: string): boolean { function dangerousRemovalDeny (line 848) | function dangerousRemovalDeny(path: string): PermissionResult { function isPathAllowed (line 863) | function isPathAllowed( function checkDenyRuleForGuessedPath (line 984) | function checkDenyRuleForGuessedPath( function validatePath (line 1013) | function validatePath( function getGlobBaseDirectory (line 1266) | function getGlobBaseDirectory(filePath: string): string { constant SAFE_PATH_ELEMENT_TYPES (line 1294) | const SAFE_PATH_ELEMENT_TYPES = new Set(['StringConstant', 'Para... function extractPathsFromCommand (line 1304) | function extractPathsFromCommand(cmd: ParsedCommandElement): { function checkPathConstraints (line 1528) | function checkPathConstraints( function checkPathConstraintsForStatement (line 1569) | function checkPathConstraintsForStatement( FILE: restored-src/src/tools/PowerShellTool/powershellPermissions.ts constant PS_ASSIGN_PREFIX_RE (line 62) | const PS_ASSIGN_PREFIX_RE = /^\$[\w:]+\s*(?:[+\-*/%]|\?\?)?\s*=\s*/ constant GIT_SAFETY_WRITE_CMDLETS (line 70) | const GIT_SAFETY_WRITE_CMDLETS = new Set([ constant GIT_SAFETY_ARCHIVE_EXTRACTORS (line 96) | const GIT_SAFETY_ARCHIVE_EXTRACTORS = new Set([ function extractCommandName (line 118) | async function extractCommandName(command: string): Promise { function powershellPermissionRule (line 132) | function powershellPermissionRule( function suggestionForExactCommand (line 150) | function suggestionForExactCommand(command: string): PermissionUpdate[] { type PowerShellInput (line 160) | type PowerShellInput = { function filterRulesByContentsMatchingInput (line 170) | function filterRulesByContentsMatchingInput( function matchingRulesForInput (line 338) | function matchingRulesForInput( function powershellToolCheckExactMatchPermission (line 385) | function powershellToolCheckExactMatchPermission( function powershellToolCheckPermission (line 435) | function powershellToolCheckPermission( type SubCommandInfo (line 519) | type SubCommandInfo = { function getSubCommandsForPermissionCheck (line 539) | async function getSubCommandsForPermissionCheck( function powershellToolHasPermission (line 639) | async function powershellToolHasPermission( FILE: restored-src/src/tools/PowerShellTool/powershellSecurity.ts type PowerShellSecurityResult (line 30) | type PowerShellSecurityResult = { constant POWERSHELL_EXECUTABLES (line 35) | const POWERSHELL_EXECUTABLES = new Set([ function isPowerShellExecutable (line 46) | function isPowerShellExecutable(name: string): boolean { constant PS_ALT_PARAM_PREFIXES (line 67) | const PS_ALT_PARAM_PREFIXES = new Set([ function psExeHasParamAbbreviation (line 83) | function psExeHasParamAbbreviation( function checkInvokeExpression (line 106) | function checkInvokeExpression( function checkDynamicCommandName (line 143) | function checkDynamicCommandName( function checkEncodedCommand (line 166) | function checkEncodedCommand( function checkPwshCommandOrFile (line 192) | function checkPwshCommandOrFile( constant DOWNLOADER_NAMES (line 216) | const DOWNLOADER_NAMES = new Set([ function isDownloader (line 225) | function isDownloader(name: string): boolean { function isIex (line 229) | function isIex(name: string): boolean { function checkDownloadCradles (line 234) | function checkDownloadCradles( function checkDownloadUtilities (line 276) | function checkDownloadUtilities( function checkAddType (line 321) | function checkAddType( function checkComObject (line 343) | function checkComObject( function checkDangerousFilePathExecution (line 452) | function checkDangerousFilePathExecution( function checkForEachMemberName (line 499) | function checkForEachMemberName( function checkStartProcess (line 550) | function checkStartProcess( constant SAFE_SCRIPT_BLOCK_CMDLETS (line 639) | const SAFE_SCRIPT_BLOCK_CMDLETS = new Set([ function checkScriptBlockInjection (line 663) | function checkScriptBlockInjection( function checkSubExpressions (line 714) | function checkSubExpressions( function checkExpandableStrings (line 731) | function checkExpandableStrings( function checkSplatting (line 746) | function checkSplatting( function checkStopParsing (line 761) | function checkStopParsing( function checkMemberInvocations (line 776) | function checkMemberInvocations( function checkTypeLiterals (line 801) | function checkTypeLiterals( function checkInvokeItem (line 822) | function checkInvokeItem( constant SCHEDULED_TASK_CMDLETS (line 844) | const SCHEDULED_TASK_CMDLETS = new Set([ function checkScheduledTask (line 851) | function checkScheduledTask( constant ENV_WRITE_CMDLETS (line 888) | const ENV_WRITE_CMDLETS = new Set([ function checkEnvVarManipulation (line 908) | function checkEnvVarManipulation( function checkModuleLoading (line 946) | function checkModuleLoading( constant RUNTIME_STATE_CMDLETS (line 971) | const RUNTIME_STATE_CMDLETS = new Set([ function checkRuntimeStateManipulation (line 982) | function checkRuntimeStateManipulation( constant WMI_SPAWN_CMDLETS (line 1010) | const WMI_SPAWN_CMDLETS = new Set([ function checkWmiProcessSpawn (line 1016) | function checkWmiProcessSpawn( function powershellCommandIsSafe (line 1042) | function powershellCommandIsSafe( FILE: restored-src/src/tools/PowerShellTool/prompt.ts function getDefaultTimeoutMs (line 18) | function getDefaultTimeoutMs(): number { function getMaxTimeoutMs (line 22) | function getMaxTimeoutMs(): number { function getBackgroundUsageNote (line 26) | function getBackgroundUsageNote(): string | null { function getSleepGuidance (line 33) | function getSleepGuidance(): string | null { function getEditionSection (line 51) | function getEditionSection(edition: PowerShellEdition | null): string { function getPrompt (line 73) | async function getPrompt(): Promise { FILE: restored-src/src/tools/PowerShellTool/readOnlyValidation.ts type ParsedStatement (line 12) | type ParsedStatement = ParsedPowerShellCommand['statements'][number] constant DOTNET_READ_ONLY_FLAGS (line 32) | const DOTNET_READ_ONLY_FLAGS = new Set([ type CommandConfig (line 39) | type CommandConfig = { function argLeaksValue (line 76) | function argLeaksValue( constant CMDLET_ALLOWLIST (line 129) | const CMDLET_ALLOWLIST: Record = Object.assign( constant SAFE_OUTPUT_CMDLETS (line 888) | const SAFE_OUTPUT_CMDLETS = new Set([ constant PIPELINE_TAIL_CMDLETS (line 931) | const PIPELINE_TAIL_CMDLETS = new Set([ constant SAFE_EXTERNAL_EXES (line 964) | const SAFE_EXTERNAL_EXES = new Set(['where.exe']) constant WINDOWS_PATHEXT (line 973) | const WINDOWS_PATHEXT = /\.(exe|cmd|bat|com)$/ function resolveToCanonical (line 984) | function resolveToCanonical(name: string): string { function isCwdChangingCmdlet (line 1017) | function isCwdChangingCmdlet(name: string): boolean { function isSafeOutputCommand (line 1038) | function isSafeOutputCommand(name: string): boolean { function isAllowlistedPipelineTail (line 1052) | function isAllowlistedPipelineTail( function isProvablySafeStatement (line 1072) | function isProvablySafeStatement(stmt: ParsedStatement): boolean { function lookupAllowlist (line 1088) | function lookupAllowlist(name: string): CommandConfig | undefined { function hasSyncSecurityConcerns (line 1112) | function hasSyncSecurityConcerns(command: string): boolean { function isReadOnlyCommand (line 1168) | function isReadOnlyCommand( function isAllowlistedCommand (line 1310) | function isAllowlistedCommand( function isExternalCommandSafe (line 1522) | function isExternalCommandSafe(command: string, args: string[]): boolean { constant DANGEROUS_GIT_GLOBAL_FLAGS (line 1537) | const DANGEROUS_GIT_GLOBAL_FLAGS = new Set([ constant GIT_GLOBAL_FLAGS_WITH_VALUES (line 1566) | const GIT_GLOBAL_FLAGS_WITH_VALUES = new Set([ constant DANGEROUS_GIT_SHORT_FLAGS_ATTACHED (line 1582) | const DANGEROUS_GIT_SHORT_FLAGS_ATTACHED = ['-c', '-C'] function isGitSafe (line 1584) | function isGitSafe(args: string[]): boolean { function isGhSafe (line 1703) | function isGhSafe(args: string[]): boolean { function isDockerSafe (line 1759) | function isDockerSafe(args: string[]): boolean { function isDotnetSafe (line 1809) | function isDotnetSafe(args: string[]): boolean { FILE: restored-src/src/tools/PowerShellTool/toolName.ts constant POWERSHELL_TOOL_NAME (line 2) | const POWERSHELL_TOOL_NAME = 'PowerShell' as const FILE: restored-src/src/tools/REPLTool/constants.ts constant REPL_TOOL_NAME (line 11) | const REPL_TOOL_NAME = 'REPL' function isReplModeEnabled (line 23) | function isReplModeEnabled(): boolean { constant REPL_ONLY_TOOLS (line 37) | const REPL_ONLY_TOOLS = new Set([ FILE: restored-src/src/tools/REPLTool/primitiveTools.ts function getReplPrimitiveTools (line 28) | function getReplPrimitiveTools(): readonly Tool[] { FILE: restored-src/src/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts type InputSchema (line 28) | type InputSchema = ReturnType type OutputSchema (line 45) | type OutputSchema = ReturnType type Output (line 47) | type Output = z.infer method isConcurrencySafe (line 50) | isConcurrencySafe() { method isReadOnly (line 53) | isReadOnly() { method toAutoClassifierInput (line 56) | toAutoClassifierInput(input) { method description (line 63) | async description() { method prompt (line 66) | async prompt() { method inputSchema (line 69) | get inputSchema(): InputSchema { method outputSchema (line 72) | get outputSchema(): OutputSchema { method call (line 75) | async call(input, { options: { mcpClients } }) { method isResultTruncated (line 148) | isResultTruncated(output: Output): boolean { method mapToolResultToToolResultBlockParam (line 151) | mapToolResultToToolResultBlockParam(content, toolUseID) { FILE: restored-src/src/tools/ReadMcpResourceTool/UI.tsx function renderToolUseMessage (line 10) | function renderToolUseMessage(input: Partial type Input (line 33) | type Input = z.infer type OutputSchema (line 41) | type OutputSchema = ReturnType type Output (line 42) | type Output = z.infer constant TRIGGERS_BETA (line 44) | const TRIGGERS_BETA = 'ccr-triggers-2026-01-30' method inputSchema (line 51) | get inputSchema(): InputSchema { method outputSchema (line 54) | get outputSchema(): OutputSchema { method isEnabled (line 57) | isEnabled() { method isConcurrencySafe (line 63) | isConcurrencySafe() { method isReadOnly (line 66) | isReadOnly(input: Input) { method toAutoClassifierInput (line 69) | toAutoClassifierInput(input: Input) { method description (line 72) | async description() { method prompt (line 75) | async prompt() { method call (line 78) | async call(input: Input, context: ToolUseContext) { method mapToolResultToToolResultBlockParam (line 152) | mapToolResultToToolResultBlockParam(output, toolUseID) { FILE: restored-src/src/tools/RemoteTriggerTool/UI.tsx function renderToolUseMessage (line 6) | function renderToolUseMessage(input: Partial): React.ReactNode { function renderToolResultMessage (line 9) | function renderToolResultMessage(output: Output): React.ReactNode { FILE: restored-src/src/tools/RemoteTriggerTool/prompt.ts constant REMOTE_TRIGGER_TOOL_NAME (line 1) | const REMOTE_TRIGGER_TOOL_NAME = 'RemoteTrigger' constant DESCRIPTION (line 3) | const DESCRIPTION = constant PROMPT (line 6) | const PROMPT = `Call the claude.ai remote-trigger API. Use this instead ... FILE: restored-src/src/tools/ScheduleCronTool/CronCreateTool.ts constant MAX_JOBS (line 25) | const MAX_JOBS = 50 type InputSchema (line 43) | type InputSchema = ReturnType type OutputSchema (line 53) | type OutputSchema = ReturnType type CreateOutput (line 54) | type CreateOutput = z.infer method inputSchema (line 61) | get inputSchema(): InputSchema { method outputSchema (line 64) | get outputSchema(): OutputSchema { method isEnabled (line 67) | isEnabled() { method toAutoClassifierInput (line 70) | toAutoClassifierInput(input) { method description (line 73) | async description() { method prompt (line 76) | async prompt() { method getPath (line 79) | getPath() { method validateInput (line 82) | async validateInput(input): Promise { method call (line 117) | async call({ cron, prompt, recurring = true, durable = false }) { method mapToolResultToToolResultBlockParam (line 143) | mapToolResultToToolResultBlockParam(output, toolUseID) { FILE: restored-src/src/tools/ScheduleCronTool/CronDeleteTool.ts type InputSchema (line 25) | type InputSchema = ReturnType type OutputSchema (line 32) | type OutputSchema = ReturnType type DeleteOutput (line 33) | type DeleteOutput = z.infer method inputSchema (line 40) | get inputSchema(): InputSchema { method outputSchema (line 43) | get outputSchema(): OutputSchema { method isEnabled (line 46) | isEnabled() { method toAutoClassifierInput (line 49) | toAutoClassifierInput(input) { method description (line 52) | async description() { method prompt (line 55) | async prompt() { method getPath (line 58) | getPath() { method validateInput (line 61) | async validateInput(input): Promise { method call (line 82) | async call({ id }) { method mapToolResultToToolResultBlockParam (line 86) | mapToolResultToToolResultBlockParam(output, toolUseID) { FILE: restored-src/src/tools/ScheduleCronTool/CronListTool.ts type InputSchema (line 18) | type InputSchema = ReturnType type OutputSchema (line 34) | type OutputSchema = ReturnType type ListOutput (line 35) | type ListOutput = z.infer method inputSchema (line 42) | get inputSchema(): InputSchema { method outputSchema (line 45) | get outputSchema(): OutputSchema { method isEnabled (line 48) | isEnabled() { method isConcurrencySafe (line 51) | isConcurrencySafe() { method isReadOnly (line 54) | isReadOnly() { method description (line 57) | async description() { method prompt (line 60) | async prompt() { method call (line 63) | async call() { method mapToolResultToToolResultBlockParam (line 80) | mapToolResultToToolResultBlockParam(output, toolUseID) { FILE: restored-src/src/tools/ScheduleCronTool/UI.tsx function renderCreateToolUseMessage (line 11) | function renderCreateToolUseMessage(input: Partial<{ function renderCreateResultMessage (line 17) | function renderCreateResultMessage(output: CreateOutput): React.ReactNode { function renderDeleteToolUseMessage (line 28) | function renderDeleteToolUseMessage(input: Partial<{ function renderDeleteResultMessage (line 33) | function renderDeleteResultMessage(output: DeleteOutput): React.ReactNode { function renderListToolUseMessage (line 43) | function renderListToolUseMessage(): React.ReactNode { function renderListResultMessage (line 46) | function renderListResultMessage(output: ListOutput): React.ReactNode { FILE: restored-src/src/tools/ScheduleCronTool/prompt.ts constant KAIROS_CRON_REFRESH_MS (line 6) | const KAIROS_CRON_REFRESH_MS = 5 * 60 * 1000 constant DEFAULT_MAX_AGE_DAYS (line 8) | const DEFAULT_MAX_AGE_DAYS = function isKairosCronEnabled (line 36) | function isKairosCronEnabled(): boolean { function isDurableCronEnabled (line 56) | function isDurableCronEnabled(): boolean { constant CRON_CREATE_TOOL_NAME (line 64) | const CRON_CREATE_TOOL_NAME = 'CronCreate' constant CRON_DELETE_TOOL_NAME (line 65) | const CRON_DELETE_TOOL_NAME = 'CronDelete' constant CRON_LIST_TOOL_NAME (line 66) | const CRON_LIST_TOOL_NAME = 'CronList' function buildCronCreateDescription (line 68) | function buildCronCreateDescription(durableEnabled: boolean): string { function buildCronCreatePrompt (line 74) | function buildCronCreatePrompt(durableEnabled: boolean): string { constant CRON_DELETE_DESCRIPTION (line 123) | const CRON_DELETE_DESCRIPTION = 'Cancel a scheduled cron job by ID' function buildCronDeletePrompt (line 124) | function buildCronDeletePrompt(durableEnabled: boolean): string { constant CRON_LIST_DESCRIPTION (line 130) | const CRON_LIST_DESCRIPTION = 'List scheduled cron jobs' function buildCronListPrompt (line 131) | function buildCronListPrompt(durableEnabled: boolean): string { FILE: restored-src/src/tools/SendMessageTool/SendMessageTool.ts type InputSchema (line 88) | type InputSchema = ReturnType type Input (line 90) | type Input = z.infer type MessageRouting (line 92) | type MessageRouting = { type MessageOutput (line 101) | type MessageOutput = { type BroadcastOutput (line 107) | type BroadcastOutput = { type RequestOutput (line 114) | type RequestOutput = { type ResponseOutput (line 121) | type ResponseOutput = { type SendMessageToolOutput (line 127) | type SendMessageToolOutput = function findTeammateColor (line 133) | function findTeammateColor( function handleMessage (line 149) | async function handleMessage( function handleBroadcast (line 191) | async function handleBroadcast( function handleShutdownRequest (line 268) | async function handleShutdownRequest( function handleShutdownApproval (line 305) | async function handleShutdownApproval( function handleShutdownRejection (line 401) | async function handleShutdownRejection( function handlePlanApproval (line 434) | async function handlePlanApproval( function handlePlanRejection (line 478) | async function handlePlanRejection( method userFacingName (line 526) | userFacingName() { method inputSchema (line 530) | get inputSchema(): InputSchema { method isEnabled (line 535) | isEnabled() { method isReadOnly (line 539) | isReadOnly(input) { method backfillObservableInput (line 543) | backfillObservableInput(input) { method toAutoClassifierInput (line 571) | toAutoClassifierInput(input) { method checkPermissions (line 585) | async checkPermissions(input, _context) { method validateInput (line 604) | async validateInput(input, _context) { method description (line 720) | async description() { method prompt (line 724) | async prompt() { method mapToolResultToToolResultBlockParam (line 728) | mapToolResultToToolResultBlockParam(data, toolUseID) { method call (line 741) | async call(input, context, canUseTool, assistantMessage) { FILE: restored-src/src/tools/SendMessageTool/UI.tsx function renderToolUseMessage (line 6) | function renderToolUseMessage(input: Partial): React.ReactNode { function renderToolResultMessage (line 15) | function renderToolResultMessage(content: SendMessageToolOutput | string... FILE: restored-src/src/tools/SendMessageTool/constants.ts constant SEND_MESSAGE_TOOL_NAME (line 1) | const SEND_MESSAGE_TOOL_NAME = 'SendMessage' FILE: restored-src/src/tools/SendMessageTool/prompt.ts constant DESCRIPTION (line 3) | const DESCRIPTION = 'Send a message to another agent' function getPrompt (line 5) | function getPrompt(): string { FILE: restored-src/src/tools/SkillTool/SkillTool.ts function getAllCommands (line 81) | async function getAllCommands(context: ToolUseContext): Promise type OutputSchema (line 327) | type OutputSchema = ReturnType type Output (line 329) | type Output = z.input method inputSchema (line 335) | get inputSchema(): InputSchema { method outputSchema (line 338) | get outputSchema(): OutputSchema { method validateInput (line 354) | async validateInput({ skill }, context): Promise { method checkPermissions (line 432) | async checkPermissions( method call (line 580) | async call( method mapToolResultToToolResultBlockParam (line 843) | mapToolResultToToolResultBlockParam( constant SAFE_SKILL_PROPERTIES (line 875) | const SAFE_SKILL_PROPERTIES = new Set([ function skillHasOnlySafeProperties (line 910) | function skillHasOnlySafeProperties(command: Command): boolean { function isOfficialMarketplaceSkill (line 935) | function isOfficialMarketplaceSkill(command: PromptCommand): boolean { function extractUrlScheme (line 949) | function extractUrlScheme(url: string): 'gs' | 'http' | 'https' | 's3' { function executeRemoteSkill (line 969) | async function executeRemoteSkill( FILE: restored-src/src/tools/SkillTool/UI.tsx type Input (line 17) | type Input = z.infer>; constant MAX_PROGRESS_MESSAGES_TO_SHOW (line 18) | const MAX_PROGRESS_MESSAGES_TO_SHOW = 3; constant INITIALIZING_TEXT (line 19) | const INITIALIZING_TEXT = 'Initializing…'; function renderToolResultMessage (line 20) | function renderToolResultMessage(output: Output): React.ReactNode { function renderToolUseMessage (line 47) | function renderToolUseMessage({ function renderToolUseProgressMessage (line 62) | function renderToolUseProgressMessage(progressMessages: ProgressMessage<... function renderToolUseRejectedMessage (line 94) | function renderToolUseRejectedMessage(_input: Input, { function renderToolUseErrorMessage (line 111) | function renderToolUseErrorMessage(result: ToolResultBlockParam['content... FILE: restored-src/src/tools/SkillTool/constants.ts constant SKILL_TOOL_NAME (line 1) | const SKILL_TOOL_NAME = 'Skill' FILE: restored-src/src/tools/SkillTool/prompt.ts constant SKILL_BUDGET_CONTEXT_PERCENT (line 21) | const SKILL_BUDGET_CONTEXT_PERCENT = 0.01 constant CHARS_PER_TOKEN (line 22) | const CHARS_PER_TOKEN = 4 constant DEFAULT_CHAR_BUDGET (line 23) | const DEFAULT_CHAR_BUDGET = 8_000 // Fallback: 1% of 200k × 4 constant MAX_LISTING_DESC_CHARS (line 29) | const MAX_LISTING_DESC_CHARS = 250 function getCharBudget (line 31) | function getCharBudget(contextWindowTokens?: number): number { function getCommandDescription (line 43) | function getCommandDescription(cmd: Command): string { function formatCommandDescription (line 52) | function formatCommandDescription(cmd: Command): string { constant MIN_DESC_LENGTH (line 68) | const MIN_DESC_LENGTH = 20 function formatCommandsWithinBudget (line 70) | function formatCommandsWithinBudget( function getSkillToolInfo (line 198) | async function getSkillToolInfo(cwd: string): Promise<{ function getLimitedSkillToolCommands (line 213) | function getLimitedSkillToolCommands(cwd: string): Promise { function clearPromptCache (line 217) | function clearPromptCache(): void { function getSkillInfo (line 221) | async function getSkillInfo(cwd: string): Promise<{ FILE: restored-src/src/tools/SleepTool/prompt.ts constant SLEEP_TOOL_NAME (line 3) | const SLEEP_TOOL_NAME = 'Sleep' constant DESCRIPTION (line 5) | const DESCRIPTION = 'Wait for a specified duration' constant SLEEP_TOOL_PROMPT (line 7) | const SLEEP_TOOL_PROMPT = `Wait for a specified duration. The user can i... FILE: restored-src/src/tools/SyntheticOutputTool/SyntheticOutputTool.ts type InputSchema (line 12) | type InputSchema = ReturnType type OutputSchema (line 17) | type OutputSchema = ReturnType type Output (line 18) | type Output = z.infer constant SYNTHETIC_OUTPUT_TOOL_NAME (line 20) | const SYNTHETIC_OUTPUT_TOOL_NAME = 'StructuredOutput' function isSyntheticOutputToolEnabled (line 22) | function isSyntheticOutputToolEnabled(opts: { method isEnabled (line 30) | isEnabled() { method isConcurrencySafe (line 35) | isConcurrencySafe() { method isReadOnly (line 38) | isReadOnly() { method isOpenWorld (line 41) | isOpenWorld() { method description (line 47) | async description(): Promise { method prompt (line 50) | async prompt(): Promise { method inputSchema (line 53) | get inputSchema(): InputSchema { method outputSchema (line 56) | get outputSchema(): OutputSchema { method call (line 59) | async call(input) { method checkPermissions (line 66) | async checkPermissions(input): Promise { method renderToolUseMessage (line 74) | renderToolUseMessage(input: Record) { method renderToolUseRejectedMessage (line 82) | renderToolUseRejectedMessage() { method renderToolUseErrorMessage (line 85) | renderToolUseErrorMessage() { method renderToolUseProgressMessage (line 88) | renderToolUseProgressMessage() { method renderToolResultMessage (line 91) | renderToolResultMessage(output: string) { method mapToolResultToToolResultBlockParam (line 94) | mapToolResultToToolResultBlockParam(content: string, toolUseID: string) { type CreateResult (line 103) | type CreateResult = { tool: Tool } | { error: string } function createSyntheticOutputTool (line 116) | function createSyntheticOutputTool( function buildSyntheticOutputTool (line 127) | function buildSyntheticOutputTool( FILE: restored-src/src/tools/TaskCreateTool/TaskCreateTool.ts type InputSchema (line 34) | type InputSchema = ReturnType type OutputSchema (line 44) | type OutputSchema = ReturnType type Output (line 46) | type Output = z.infer method description (line 52) | async description() { method prompt (line 55) | async prompt() { method inputSchema (line 58) | get inputSchema(): InputSchema { method outputSchema (line 61) | get outputSchema(): OutputSchema { method userFacingName (line 64) | userFacingName() { method isEnabled (line 68) | isEnabled() { method isConcurrencySafe (line 71) | isConcurrencySafe() { method toAutoClassifierInput (line 74) | toAutoClassifierInput(input) { method renderToolUseMessage (line 77) | renderToolUseMessage() { method call (line 80) | async call({ subject, description, activeForm, metadata }, context) { method mapToolResultToToolResultBlockParam (line 130) | mapToolResultToToolResultBlockParam(content, toolUseID) { FILE: restored-src/src/tools/TaskCreateTool/constants.ts constant TASK_CREATE_TOOL_NAME (line 1) | const TASK_CREATE_TOOL_NAME = 'TaskCreate' FILE: restored-src/src/tools/TaskCreateTool/prompt.ts constant DESCRIPTION (line 3) | const DESCRIPTION = 'Create a new task in the task list' function getPrompt (line 5) | function getPrompt(): string { FILE: restored-src/src/tools/TaskGetTool/TaskGetTool.ts type InputSchema (line 18) | type InputSchema = ReturnType type OutputSchema (line 34) | type OutputSchema = ReturnType type Output (line 36) | type Output = z.infer method description (line 42) | async description() { method prompt (line 45) | async prompt() { method inputSchema (line 48) | get inputSchema(): InputSchema { method outputSchema (line 51) | get outputSchema(): OutputSchema { method userFacingName (line 54) | userFacingName() { method isEnabled (line 58) | isEnabled() { method isConcurrencySafe (line 61) | isConcurrencySafe() { method isReadOnly (line 64) | isReadOnly() { method toAutoClassifierInput (line 67) | toAutoClassifierInput(input) { method renderToolUseMessage (line 70) | renderToolUseMessage() { method call (line 73) | async call({ taskId }) { method mapToolResultToToolResultBlockParam (line 99) | mapToolResultToToolResultBlockParam(content, toolUseID) { FILE: restored-src/src/tools/TaskGetTool/constants.ts constant TASK_GET_TOOL_NAME (line 1) | const TASK_GET_TOOL_NAME = 'TaskGet' FILE: restored-src/src/tools/TaskGetTool/prompt.ts constant DESCRIPTION (line 1) | const DESCRIPTION = 'Get a task by ID from the task list' constant PROMPT (line 3) | const PROMPT = `Use this tool to retrieve a task by its ID from the task... FILE: restored-src/src/tools/TaskListTool/TaskListTool.ts type InputSchema (line 14) | type InputSchema = ReturnType type OutputSchema (line 29) | type OutputSchema = ReturnType type Output (line 31) | type Output = z.infer method description (line 37) | async description() { method prompt (line 40) | async prompt() { method inputSchema (line 43) | get inputSchema(): InputSchema { method outputSchema (line 46) | get outputSchema(): OutputSchema { method userFacingName (line 49) | userFacingName() { method isEnabled (line 53) | isEnabled() { method isConcurrencySafe (line 56) | isConcurrencySafe() { method isReadOnly (line 59) | isReadOnly() { method renderToolUseMessage (line 62) | renderToolUseMessage() { method call (line 65) | async call() { method mapToolResultToToolResultBlockParam (line 91) | mapToolResultToToolResultBlockParam(content, toolUseID) { FILE: restored-src/src/tools/TaskListTool/constants.ts constant TASK_LIST_TOOL_NAME (line 1) | const TASK_LIST_TOOL_NAME = 'TaskList' FILE: restored-src/src/tools/TaskListTool/prompt.ts constant DESCRIPTION (line 3) | const DESCRIPTION = 'List all tasks in the task list' function getPrompt (line 5) | function getPrompt(): string { FILE: restored-src/src/tools/TaskOutputTool/TaskOutputTool.tsx type InputSchema (line 35) | type InputSchema = ReturnType; type TaskOutputToolInput (line 36) | type TaskOutputToolInput = z.infer; type TaskOutput (line 39) | type TaskOutput = { type TaskOutputToolOutput (line 51) | type TaskOutputToolOutput = { function getTaskOutputData (line 60) | async function getTaskOutputData(task: TaskState): Promise { function waitForTaskCompletion (line 118) | async function waitForTaskCompletion(taskId: string, getAppState: () => { method userFacingName (line 151) | userFacingName() { method inputSchema (line 154) | get inputSchema(): InputSchema { method description (line 157) | async description() { method isConcurrencySafe (line 160) | isConcurrencySafe(_input) { method isEnabled (line 163) | isEnabled() { method isReadOnly (line 166) | isReadOnly(_input) { method toAutoClassifierInput (line 169) | toAutoClassifierInput(input) { method prompt (line 172) | async prompt() { method validateInput (line 183) | async validateInput({ method call (line 208) | async call(input: TaskOutputToolInput, toolUseContext, _canUseTool, _par... method mapToolResultToToolResultBlockParam (line 283) | mapToolResultToToolResultBlockParam(data, toolUseID) { method renderToolUseMessage (line 309) | renderToolUseMessage(input) { method renderToolUseTag (line 318) | renderToolUseTag(input) { method renderToolUseProgressMessage (line 324) | renderToolUseProgressMessage(progressMessages) { method renderToolResultMessage (line 338) | renderToolResultMessage(content, _, { method renderToolUseRejectedMessage (line 344) | renderToolUseRejectedMessage() { method renderToolUseErrorMessage (line 347) | renderToolUseErrorMessage(result, { function TaskOutputResultDisplay (line 353) | function TaskOutputResultDisplay(t0) { FILE: restored-src/src/tools/TaskOutputTool/constants.ts constant TASK_OUTPUT_TOOL_NAME (line 1) | const TASK_OUTPUT_TOOL_NAME = 'TaskOutput' FILE: restored-src/src/tools/TaskStopTool/TaskStopTool.ts type InputSchema (line 20) | type InputSchema = ReturnType type OutputSchema (line 35) | type OutputSchema = ReturnType type Output (line 37) | type Output = z.infer method inputSchema (line 47) | get inputSchema(): InputSchema { method outputSchema (line 50) | get outputSchema(): OutputSchema { method isConcurrencySafe (line 54) | isConcurrencySafe() { method toAutoClassifierInput (line 57) | toAutoClassifierInput(input) { method validateInput (line 60) | async validateInput({ task_id, shell_id }, { getAppState }) { method description (line 92) | async description() { method prompt (line 95) | async prompt() { method mapToolResultToToolResultBlockParam (line 98) | mapToolResultToToolResultBlockParam(output, toolUseID) { method call (line 107) | async call( FILE: restored-src/src/tools/TaskStopTool/UI.tsx function renderToolUseMessage (line 7) | function renderToolUseMessage(): React.ReactNode { constant MAX_COMMAND_DISPLAY_LINES (line 10) | const MAX_COMMAND_DISPLAY_LINES = 2; constant MAX_COMMAND_DISPLAY_CHARS (line 11) | const MAX_COMMAND_DISPLAY_CHARS = 160; function truncateCommand (line 12) | function truncateCommand(command: string): string { function renderToolResultMessage (line 23) | function renderToolResultMessage(output: Output, _progressMessagesForMes... FILE: restored-src/src/tools/TaskStopTool/prompt.ts constant TASK_STOP_TOOL_NAME (line 1) | const TASK_STOP_TOOL_NAME = 'TaskStop' constant DESCRIPTION (line 3) | const DESCRIPTION = ` FILE: restored-src/src/tools/TaskUpdateTool/TaskUpdateTool.ts type InputSchema (line 67) | type InputSchema = ReturnType type OutputSchema (line 84) | type OutputSchema = ReturnType type Output (line 86) | type Output = z.infer method description (line 92) | async description() { method prompt (line 95) | async prompt() { method inputSchema (line 98) | get inputSchema(): InputSchema { method outputSchema (line 101) | get outputSchema(): OutputSchema { method userFacingName (line 104) | userFacingName() { method isEnabled (line 108) | isEnabled() { method isConcurrencySafe (line 111) | isConcurrencySafe() { method toAutoClassifierInput (line 114) | toAutoClassifierInput(input) { method renderToolUseMessage (line 120) | renderToolUseMessage() { method call (line 123) | async call( method mapToolResultToToolResultBlockParam (line 364) | mapToolResultToToolResultBlockParam(content, toolUseID) { FILE: restored-src/src/tools/TaskUpdateTool/constants.ts constant TASK_UPDATE_TOOL_NAME (line 1) | const TASK_UPDATE_TOOL_NAME = 'TaskUpdate' FILE: restored-src/src/tools/TaskUpdateTool/prompt.ts constant DESCRIPTION (line 1) | const DESCRIPTION = 'Update a task in the task list' constant PROMPT (line 3) | const PROMPT = `Use this tool to update a task in the task list. FILE: restored-src/src/tools/TeamCreateTool/TeamCreateTool.ts type InputSchema (line 50) | type InputSchema = ReturnType type Output (line 52) | type Output = { type Input (line 58) | type Input = z.infer function generateUniqueTeamName (line 64) | function generateUniqueTeamName(providedName: string): string { method userFacingName (line 80) | userFacingName() { method inputSchema (line 84) | get inputSchema(): InputSchema { method isEnabled (line 88) | isEnabled() { method toAutoClassifierInput (line 92) | toAutoClassifierInput(input) { method validateInput (line 96) | async validateInput(input, _context) { method description (line 107) | async description() { method prompt (line 111) | async prompt() { method mapToolResultToToolResultBlockParam (line 115) | mapToolResultToToolResultBlockParam(data, toolUseID) { method call (line 128) | async call(input, context) { FILE: restored-src/src/tools/TeamCreateTool/UI.tsx function renderToolUseMessage (line 3) | function renderToolUseMessage(input: Partial): React.ReactNode { FILE: restored-src/src/tools/TeamCreateTool/constants.ts constant TEAM_CREATE_TOOL_NAME (line 1) | const TEAM_CREATE_TOOL_NAME = 'TeamCreate' FILE: restored-src/src/tools/TeamCreateTool/prompt.ts function getPrompt (line 1) | function getPrompt(): string { FILE: restored-src/src/tools/TeamDeleteTool/TeamDeleteTool.ts type InputSchema (line 22) | type InputSchema = ReturnType type Output (line 24) | type Output = { type Input (line 30) | type Input = z.infer method userFacingName (line 38) | userFacingName() { method inputSchema (line 42) | get inputSchema(): InputSchema { method isEnabled (line 46) | isEnabled() { method description (line 50) | async description() { method prompt (line 54) | async prompt() { method mapToolResultToToolResultBlockParam (line 58) | mapToolResultToToolResultBlockParam(data, toolUseID) { method call (line 71) | async call(_input, context) { FILE: restored-src/src/tools/TeamDeleteTool/UI.tsx function renderToolUseMessage (line 4) | function renderToolUseMessage(_input: Record): React.Re... function renderToolResultMessage (line 7) | function renderToolResultMessage(content: Output | string, _progressMess... FILE: restored-src/src/tools/TeamDeleteTool/constants.ts constant TEAM_DELETE_TOOL_NAME (line 1) | const TEAM_DELETE_TOOL_NAME = 'TeamDelete' FILE: restored-src/src/tools/TeamDeleteTool/prompt.ts function getPrompt (line 1) | function getPrompt(): string { FILE: restored-src/src/tools/TodoWriteTool/TodoWriteTool.ts type InputSchema (line 18) | type InputSchema = ReturnType type OutputSchema (line 27) | type OutputSchema = ReturnType type Output (line 29) | type Output = z.infer method description (line 36) | async description() { method prompt (line 39) | async prompt() { method inputSchema (line 42) | get inputSchema(): InputSchema { method outputSchema (line 45) | get outputSchema(): OutputSchema { method userFacingName (line 48) | userFacingName() { method isEnabled (line 52) | isEnabled() { method toAutoClassifierInput (line 55) | toAutoClassifierInput(input) { method checkPermissions (line 58) | async checkPermissions(input) { method renderToolUseMessage (line 62) | renderToolUseMessage() { method call (line 65) | async call({ todos }, context) { method mapToolResultToToolResultBlockParam (line 104) | mapToolResultToToolResultBlockParam({ verificationNudgeNeeded }, toolUse... FILE: restored-src/src/tools/TodoWriteTool/constants.ts constant TODO_WRITE_TOOL_NAME (line 1) | const TODO_WRITE_TOOL_NAME = 'TodoWrite' FILE: restored-src/src/tools/TodoWriteTool/prompt.ts constant PROMPT (line 3) | const PROMPT = `Use this tool to create and manage a structured task lis... constant DESCRIPTION (line 183) | const DESCRIPTION = FILE: restored-src/src/tools/ToolSearchTool/ToolSearchTool.ts type InputSchema (line 35) | type InputSchema = ReturnType type OutputSchema (line 45) | type OutputSchema = ReturnType type Output (line 47) | type Output = z.infer function getDeferredToolsCacheKey (line 55) | function getDeferredToolsCacheKey(deferredTools: Tools): string { function maybeInvalidateCache (line 91) | function maybeInvalidateCache(deferredTools: Tools): void { function clearToolSearchDescriptionCache (line 102) | function clearToolSearchDescriptionCache(): void { function buildSearchResult (line 110) | function buildSearchResult( function parseToolName (line 132) | function parseToolName(name: string): { function compileTermPatterns (line 167) | function compileTermPatterns(terms: string[]): Map { function searchToolsWithKeywords (line 186) | async function searchToolsWithKeywords( method isEnabled (line 305) | isEnabled() { method isConcurrencySafe (line 308) | isConcurrencySafe() { method isReadOnly (line 311) | isReadOnly() { method description (line 316) | async description() { method prompt (line 319) | async prompt() { method inputSchema (line 322) | get inputSchema(): InputSchema { method outputSchema (line 325) | get outputSchema(): OutputSchema { method call (line 328) | async call(input, { options: { tools }, getAppState }) { method renderToolUseMessage (line 435) | renderToolUseMessage() { method mapToolResultToToolResultBlockParam (line 444) | mapToolResultToToolResultBlockParam( FILE: restored-src/src/tools/ToolSearchTool/constants.ts constant TOOL_SEARCH_TOOL_NAME (line 1) | const TOOL_SEARCH_TOOL_NAME = 'ToolSearch' FILE: restored-src/src/tools/ToolSearchTool/prompt.ts constant BRIEF_TOOL_NAME (line 9) | const BRIEF_TOOL_NAME: string | null = constant SEND_USER_FILE_TOOL_NAME (line 15) | const SEND_USER_FILE_TOOL_NAME: string | null = feature('KAIROS') constant PROMPT_HEAD (line 27) | const PROMPT_HEAD = `Fetches full schema definitions for deferred tools ... function getToolLocationHint (line 35) | function getToolLocationHint(): string { constant PROMPT_TAIL (line 44) | const PROMPT_TAIL = ` Until fetched, only the name is known — there is n... function isDeferredTool (line 62) | function isDeferredTool(tool: Tool): boolean { function formatDeferredToolLine (line 115) | function formatDeferredToolLine(tool: Tool): string { function getPrompt (line 119) | function getPrompt(): string { FILE: restored-src/src/tools/WebFetchTool/UI.tsx function renderToolUseMessage (line 9) | function renderToolUseMessage({ function renderToolUseProgressMessage (line 29) | function renderToolUseProgressMessage(): React.ReactNode { function renderToolResultMessage (line 34) | function renderToolResultMessage({ function getToolUseSummary (line 63) | function getToolUseSummary(input: Partial<{ FILE: restored-src/src/tools/WebFetchTool/WebFetchTool.ts type InputSchema (line 30) | type InputSchema = ReturnType type OutputSchema (line 46) | type OutputSchema = ReturnType type Output (line 48) | type Output = z.infer function webFetchToolInputToPermissionRuleContent (line 50) | function webFetchToolInputToPermissionRuleContent(input: { method description (line 72) | async description(input) { method userFacingName (line 81) | userFacingName() { method getActivityDescription (line 85) | getActivityDescription(input) { method inputSchema (line 89) | get inputSchema(): InputSchema { method outputSchema (line 92) | get outputSchema(): OutputSchema { method isConcurrencySafe (line 95) | isConcurrencySafe() { method isReadOnly (line 98) | isReadOnly() { method toAutoClassifierInput (line 101) | toAutoClassifierInput(input) { method checkPermissions (line 104) | async checkPermissions(input, context): Promise { method prompt (line 181) | async prompt(_options) { method validateInput (line 191) | async validateInput(input) { method call (line 208) | async call( method mapToolResultToToolResultBlockParam (line 300) | mapToolResultToToolResultBlockParam({ result }, toolUseID) { function buildSuggestions (line 309) | function buildSuggestions(ruleContent: string): PermissionUpdate[] { FILE: restored-src/src/tools/WebFetchTool/preapproved.ts constant PREAPPROVED_HOSTS (line 14) | const PREAPPROVED_HOSTS = new Set([ function isPreapprovedHost (line 154) | function isPreapprovedHost(hostname: string, pathname: string): boolean { FILE: restored-src/src/tools/WebFetchTool/prompt.ts constant WEB_FETCH_TOOL_NAME (line 1) | const WEB_FETCH_TOOL_NAME = 'WebFetch' constant DESCRIPTION (line 3) | const DESCRIPTION = ` function makeSecondaryModelPrompt (line 23) | function makeSecondaryModelPrompt( FILE: restored-src/src/tools/WebFetchTool/utils.ts class DomainBlockedError (line 21) | class DomainBlockedError extends Error { method constructor (line 22) | constructor(domain: string) { class DomainCheckFailedError (line 28) | class DomainCheckFailedError extends Error { method constructor (line 29) | constructor(domain: string) { class EgressBlockedError (line 37) | class EgressBlockedError extends Error { method constructor (line 38) | constructor(public readonly domain: string) { type CacheEntry (line 51) | type CacheEntry = { constant CACHE_TTL_MS (line 63) | const CACHE_TTL_MS = 15 * 60 * 1000 // 15 minutes constant MAX_CACHE_SIZE_BYTES (line 64) | const MAX_CACHE_SIZE_BYTES = 50 * 1024 * 1024 // 50MB constant URL_CACHE (line 66) | const URL_CACHE = new LRUCache({ constant DOMAIN_CHECK_CACHE (line 75) | const DOMAIN_CHECK_CACHE = new LRUCache({ function clearWebFetchCache (line 80) | function clearWebFetchCache(): void { type TurndownCtor (line 90) | type TurndownCtor = typeof import('turndown') function getTurndownService (line 92) | function getTurndownService(): Promise> { constant MAX_URL_LENGTH (line 106) | const MAX_URL_LENGTH = 2000 constant MAX_HTTP_CONTENT_LENGTH (line 112) | const MAX_HTTP_CONTENT_LENGTH = 10 * 1024 * 1024 constant FETCH_TIMEOUT_MS (line 116) | const FETCH_TIMEOUT_MS = 60_000 constant DOMAIN_CHECK_TIMEOUT_MS (line 119) | const DOMAIN_CHECK_TIMEOUT_MS = 10_000 constant MAX_REDIRECTS (line 125) | const MAX_REDIRECTS = 10 constant MAX_MARKDOWN_LENGTH (line 128) | const MAX_MARKDOWN_LENGTH = 100_000 function isPreapprovedUrl (line 130) | function isPreapprovedUrl(url: string): boolean { function validateURL (line 139) | function validateURL(url: string): boolean { type DomainCheckResult (line 171) | type DomainCheckResult = function checkDomainBlocklist (line 176) | async function checkDomainBlocklist( function isPermittedRedirect (line 212) | function isPermittedRedirect( type RedirectInfo (line 255) | type RedirectInfo = { function getWithPermittedRedirects (line 262) | async function getWithPermittedRedirects( function isRedirectInfo (line 331) | function isRedirectInfo( type FetchedContent (line 337) | type FetchedContent = { function getURLMarkdownContent (line 347) | async function getURLMarkdownContent( function applyPromptToMarkdown (line 484) | async function applyPromptToMarkdown( FILE: restored-src/src/tools/WebSearchTool/UI.tsx function getSearchSummary (line 8) | function getSearchSummary(results: (SearchResult | string | null | undef... function renderToolUseMessage (line 25) | function renderToolUseMessage({ function renderToolUseProgressMessage (line 55) | function renderToolUseProgressMessage(progressMessages: ProgressMessage<... function renderToolResultMessage (line 79) | function renderToolResultMessage(output: Output): React.ReactNode { function getToolUseSummary (line 93) | function getToolUseSummary(input: Partial<{ FILE: restored-src/src/tools/WebSearchTool/WebSearchTool.ts type InputSchema (line 38) | type InputSchema = ReturnType type Input (line 40) | type Input = z.infer type SearchResult (line 54) | type SearchResult = z.infer> type OutputSchema (line 67) | type OutputSchema = ReturnType type Output (line 69) | type Output = z.infer function makeToolSchema (line 76) | function makeToolSchema(input: Input): BetaWebSearchTool20250305 { function makeOutputFromSearchResponse (line 86) | function makeOutputFromSearchResponse( method description (line 157) | async description(input) { method userFacingName (line 160) | userFacingName() { method getActivityDescription (line 164) | getActivityDescription(input) { method isEnabled (line 168) | isEnabled() { method inputSchema (line 194) | get inputSchema(): InputSchema { method outputSchema (line 197) | get outputSchema(): OutputSchema { method isConcurrencySafe (line 200) | isConcurrencySafe() { method isReadOnly (line 203) | isReadOnly() { method toAutoClassifierInput (line 206) | toAutoClassifierInput(input) { method checkPermissions (line 209) | async checkPermissions(_input): Promise { method prompt (line 223) | async prompt() { method extractSearchText (line 229) | extractSearchText() { method validateInput (line 235) | async validateInput(input) { method call (line 254) | async call(input, context, _canUseTool, _parentMessage, onProgress) { method mapToolResultToToolResultBlockParam (line 401) | mapToolResultToToolResultBlockParam(output, toolUseID) { FILE: restored-src/src/tools/WebSearchTool/prompt.ts constant WEB_SEARCH_TOOL_NAME (line 3) | const WEB_SEARCH_TOOL_NAME = 'WebSearch' function getWebSearchPrompt (line 5) | function getWebSearchPrompt(): string { FILE: restored-src/src/tools/shared/gitOperationTracking.ts function gitCmdRe (line 23) | function gitCmdRe(subcmd: string, suffix = ''): RegExp { constant GIT_COMMIT_RE (line 29) | const GIT_COMMIT_RE = gitCmdRe('commit') constant GIT_PUSH_RE (line 30) | const GIT_PUSH_RE = gitCmdRe('push') constant GIT_CHERRY_PICK_RE (line 31) | const GIT_CHERRY_PICK_RE = gitCmdRe('cherry-pick') constant GIT_MERGE_RE (line 32) | const GIT_MERGE_RE = gitCmdRe('merge', '(?!-)') constant GIT_REBASE_RE (line 33) | const GIT_REBASE_RE = gitCmdRe('rebase') type CommitKind (line 35) | type CommitKind = 'committed' | 'amended' | 'cherry-picked' type BranchAction (line 36) | type BranchAction = 'merged' | 'rebased' type PrAction (line 37) | type PrAction = constant GH_PR_ACTIONS (line 45) | const GH_PR_ACTIONS: readonly { re: RegExp; action: PrAction; op: string... function parsePrUrl (line 58) | function parsePrUrl( function findPrInStdout (line 73) | function findPrInStdout(stdout: string): ReturnType { function parseGitCommitId (line 79) | function parseGitCommitId(stdout: string): string | undefined { function parseGitPushBranch (line 93) | function parseGitPushBranch(output: string): string | undefined { function parsePrNumberFromText (line 104) | function parsePrNumberFromText(stdout: string): number | undefined { function parseRefFromCommand (line 113) | function parseRefFromCommand( function detectGitOperation (line 135) | function detectGitOperation( function trackGitOperations (line 189) | function trackGitOperations( FILE: restored-src/src/tools/shared/spawnMultiAgent.ts function getDefaultTeammateModel (line 72) | function getDefaultTeammateModel(leaderModel: string | null): string { function resolveTeammateModel (line 93) | function resolveTeammateModel( type SpawnOutput (line 107) | type SpawnOutput = { type SpawnTeammateConfig (line 122) | type SpawnTeammateConfig = { type SpawnInput (line 139) | type SpawnInput = { function hasSession (line 159) | async function hasSession(sessionName: string): Promise { function ensureSession (line 171) | async function ensureSession(sessionName: string): Promise { function getTeammateCommand (line 193) | function getTeammateCommand(): string { function buildInheritedCliFlags (line 208) | function buildInheritedCliFlags(options?: { function generateUniqueTeammateName (line 267) | async function generateUniqueTeammateName( function handleSpawnSplitPane (line 305) | async function handleSpawnSplitPane( function handleSpawnSeparateWindow (line 545) | async function handleSpawnSeparateWindow( function registerOutOfProcessTeammateTask (line 760) | function registerOutOfProcessTeammateTask( function handleSpawnInProcess (line 840) | async function handleSpawnInProcess( function handleSpawn (line 1040) | async function handleSpawn( function spawnTeammate (line 1088) | async function spawnTeammate( FILE: restored-src/src/tools/testing/TestingPermissionTool.tsx constant NAME (line 9) | const NAME = 'TestingPermission'; type InputSchema (line 11) | type InputSchema = ReturnType; method description (line 15) | async description() { method prompt (line 18) | async prompt() { method inputSchema (line 21) | get inputSchema(): InputSchema { method userFacingName (line 24) | userFacingName() { method isEnabled (line 27) | isEnabled() { method isConcurrencySafe (line 30) | isConcurrencySafe() { method isReadOnly (line 33) | isReadOnly() { method checkPermissions (line 36) | async checkPermissions() { method renderToolUseMessage (line 43) | renderToolUseMessage() { method renderToolUseProgressMessage (line 46) | renderToolUseProgressMessage() { method renderToolUseQueuedMessage (line 49) | renderToolUseQueuedMessage() { method renderToolUseRejectedMessage (line 52) | renderToolUseRejectedMessage() { method renderToolResultMessage (line 55) | renderToolResultMessage() { method renderToolUseErrorMessage (line 58) | renderToolUseErrorMessage() { method call (line 61) | async call() { method mapToolResultToToolResultBlockParam (line 66) | mapToolResultToToolResultBlockParam(result, toolUseID) { FILE: restored-src/src/tools/utils.ts function tagMessagesWithToolUseID (line 12) | function tagMessagesWithToolUseID( function getToolUseIDFromParentMessage (line 30) | function getToolUseIDFromParentMessage( FILE: restored-src/src/types/command.ts type LocalCommandResult (line 16) | type LocalCommandResult = type PromptCommand (line 25) | type PromptCommand = { type LocalCommandCall (line 62) | type LocalCommandCall = ( type LocalCommandModule (line 70) | type LocalCommandModule = { type LocalCommand (line 74) | type LocalCommand = { type LocalJSXCommandContext (line 80) | type LocalJSXCommandContext = ToolUseContext & { type ResumeEntrypoint (line 100) | type ResumeEntrypoint = type CommandResultDisplay (line 107) | type CommandResultDisplay = 'skip' | 'system' | 'user' type LocalJSXCommandOnDone (line 117) | type LocalJSXCommandOnDone = ( type LocalJSXCommandCall (line 131) | type LocalJSXCommandCall = ( type LocalJSXCommandModule (line 140) | type LocalJSXCommandModule = { type LocalJSXCommand (line 144) | type LocalJSXCommand = { type CommandAvailability (line 169) | type CommandAvailability = type CommandBase (line 175) | type CommandBase = { type Command (line 205) | type Command = CommandBase & function getCommandName (line 209) | function getCommandName(cmd: CommandBase): string { function isCommandEnabled (line 214) | function isCommandEnabled(cmd: CommandBase): boolean { FILE: restored-src/src/types/generated/events_mono/claude_code/v1/claude_code_internal_event.ts type GitHubActionsMetadata (line 12) | interface GitHubActionsMetadata { type EnvironmentMetadata (line 22) | interface EnvironmentMetadata { type SlackContext (line 68) | interface SlackContext { type ClaudeCodeInternalEvent (line 80) | interface ClaudeCodeInternalEvent { function createBaseGitHubActionsMetadata (line 132) | function createBaseGitHubActionsMetadata(): GitHubActionsMetadata { method fromJSON (line 137) | fromJSON(object: any): GitHubActionsMetadata { method toJSON (line 151) | toJSON(message: GitHubActionsMetadata): unknown { method create (line 165) | create, I>>( method fromPartial (line 170) | fromPartial, I>>( function createBaseEnvironmentMetadata (line 181) | function createBaseEnvironmentMetadata(): EnvironmentMetadata { method fromJSON (line 222) | fromJSON(object: any): EnvironmentMetadata { method toJSON (line 326) | toJSON(message: EnvironmentMetadata): unknown { method create (line 439) | create, I>>( method fromPartial (line 444) | fromPartial, I>>( function createBaseSlackContext (line 493) | function createBaseSlackContext(): SlackContext { method fromJSON (line 503) | fromJSON(object: any): SlackContext { method toJSON (line 518) | toJSON(message: SlackContext): unknown { method create (line 535) | create, I>>( method fromPartial (line 540) | fromPartial, I>>( function createBaseClaudeCodeInternalEvent (line 552) | function createBaseClaudeCodeInternalEvent(): ClaudeCodeInternalEvent { method fromJSON (line 587) | fromJSON(object: any): ClaudeCodeInternalEvent { method toJSON (line 671) | toJSON(message: ClaudeCodeInternalEvent): unknown { method create (line 763) | create, I>>( method fromPartial (line 768) | fromPartial, I>>( type Builtin (line 814) | type Builtin = type DeepPartial (line 823) | type DeepPartial = T extends Builtin type KeysOfUnion (line 833) | type KeysOfUnion = T extends T ? keyof T : never type Exact (line 834) | type Exact = P extends Builtin function fromTimestamp (line 840) | function fromTimestamp(t: Timestamp): Date { function fromJsonTimestamp (line 846) | function fromJsonTimestamp(o: any): Date { function isSet (line 856) | function isSet(value: any): boolean { type MessageFns (line 860) | interface MessageFns { FILE: restored-src/src/types/generated/events_mono/common/v1/auth.ts type PublicApiAuth (line 10) | interface PublicApiAuth { function createBasePublicApiAuth (line 16) | function createBasePublicApiAuth(): PublicApiAuth { method fromJSON (line 21) | fromJSON(object: any): PublicApiAuth { method toJSON (line 35) | toJSON(message: PublicApiAuth): unknown { method create (line 49) | create, I>>( method fromPartial (line 54) | fromPartial, I>>( type Builtin (line 65) | type Builtin = type DeepPartial (line 74) | type DeepPartial = T extends Builtin type KeysOfUnion (line 84) | type KeysOfUnion = T extends T ? keyof T : never type Exact (line 85) | type Exact = P extends Builtin function isSet (line 91) | function isSet(value: any): boolean { type MessageFns (line 95) | interface MessageFns { FILE: restored-src/src/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.ts type GrowthbookExperimentEvent (line 16) | interface GrowthbookExperimentEvent { function createBaseGrowthbookExperimentEvent (line 43) | function createBaseGrowthbookExperimentEvent(): GrowthbookExperimentEvent { method fromJSON (line 62) | fromJSON(object: any): GrowthbookExperimentEvent { method toJSON (line 103) | toJSON(message: GrowthbookExperimentEvent): unknown { method create (line 144) | create, I>>( method fromPartial (line 149) | fromPartial, I>>( type Builtin (line 172) | type Builtin = type DeepPartial (line 181) | type DeepPartial = T extends Builtin type KeysOfUnion (line 191) | type KeysOfUnion = T extends T ? keyof T : never type Exact (line 192) | type Exact = P extends Builtin function fromTimestamp (line 198) | function fromTimestamp(t: Timestamp): Date { function fromJsonTimestamp (line 204) | function fromJsonTimestamp(o: any): Date { function isSet (line 214) | function isSet(value: any): boolean { type MessageFns (line 218) | interface MessageFns { FILE: restored-src/src/types/generated/google/protobuf/timestamp.ts type Timestamp (line 100) | interface Timestamp { function createBaseTimestamp (line 116) | function createBaseTimestamp(): Timestamp { method fromJSON (line 121) | fromJSON(object: any): Timestamp { method toJSON (line 128) | toJSON(message: Timestamp): unknown { method create (line 139) | create, I>>(base?: I): Timestamp { method fromPartial (line 142) | fromPartial, I>>( type Builtin (line 152) | type Builtin = type DeepPartial (line 161) | type DeepPartial = T extends Builtin type KeysOfUnion (line 171) | type KeysOfUnion = T extends T ? keyof T : never type Exact (line 172) | type Exact = P extends Builtin function isSet (line 178) | function isSet(value: any): boolean { type MessageFns (line 182) | interface MessageFns { FILE: restored-src/src/types/hooks.ts function isHookEvent (line 22) | function isHookEvent(value: string): value is HookEvent { type PromptRequest (line 42) | type PromptRequest = z.infer> type PromptResponse (line 44) | type PromptResponse = { type SchemaHookJSONOutput (line 179) | type SchemaHookJSONOutput = z.infer = T type _assertSDKTypesMatch (line 198) | type _assertSDKTypesMatch = Assert< type HookCallbackContext (line 203) | type HookCallbackContext = { type HookCallback (line 211) | type HookCallback = { type HookCallbackMatcher (line 228) | type HookCallbackMatcher = { type HookProgress (line 234) | type HookProgress = { type HookBlockingError (line 243) | type HookBlockingError = { type PermissionRequestResult (line 248) | type PermissionRequestResult = type HookResult (line 260) | type HookResult = { type AggregatedHookResult (line 277) | type AggregatedHookResult = { FILE: restored-src/src/types/ids.ts type SessionId (line 10) | type SessionId = string & { readonly __brand: 'SessionId' } type AgentId (line 17) | type AgentId = string & { readonly __brand: 'AgentId' } function asSessionId (line 23) | function asSessionId(id: string): SessionId { function asAgentId (line 31) | function asAgentId(id: string): AgentId { constant AGENT_ID_PATTERN (line 35) | const AGENT_ID_PATTERN = /^a(?:.+-)?[0-9a-f]{16}$/ function toAgentId (line 42) | function toAgentId(s: string): AgentId | null { FILE: restored-src/src/types/logs.ts type SerializedMessage (line 8) | type SerializedMessage = Message & { type LogOption (line 19) | type LogOption = { type SummaryMessage (line 55) | type SummaryMessage = { type CustomTitleMessage (line 61) | type CustomTitleMessage = { type AiTitleMessage (line 75) | type AiTitleMessage = { type LastPromptMessage (line 81) | type LastPromptMessage = { type TaskSummaryMessage (line 93) | type TaskSummaryMessage = { type TagMessage (line 100) | type TagMessage = { type AgentNameMessage (line 106) | type AgentNameMessage = { type AgentColorMessage (line 112) | type AgentColorMessage = { type AgentSettingMessage (line 118) | type AgentSettingMessage = { type PRLinkMessage (line 128) | type PRLinkMessage = { type ModeEntry (line 137) | type ModeEntry = { type PersistedWorktreeSession (line 149) | type PersistedWorktreeSession = { type WorktreeStateEntry (line 167) | type WorktreeStateEntry = { type ContentReplacementEntry (line 181) | type ContentReplacementEntry = { type FileHistorySnapshotMessage (line 188) | type FileHistorySnapshotMessage = { type FileAttributionState (line 198) | type FileAttributionState = { type AttributionSnapshotMessage (line 208) | type AttributionSnapshotMessage = { type TranscriptMessage (line 221) | type TranscriptMessage = SerializedMessage & { type SpeculationAcceptMessage (line 233) | type SpeculationAcceptMessage = { type ContextCollapseCommitEntry (line 255) | type ContextCollapseCommitEntry = { type ContextCollapseSnapshotEntry (line 282) | type ContextCollapseSnapshotEntry = { type Entry (line 297) | type Entry = function sortLogs (line 319) | function sortLogs(logs: LogOption[]): LogOption[] { FILE: restored-src/src/types/permissions.ts constant EXTERNAL_PERMISSION_MODES (line 16) | const EXTERNAL_PERMISSION_MODES = [ type ExternalPermissionMode (line 24) | type ExternalPermissionMode = (typeof EXTERNAL_PERMISSION_MODES)[number] type InternalPermissionMode (line 28) | type InternalPermissionMode = ExternalPermissionMode | 'auto' | 'bubble' type PermissionMode (line 29) | type PermissionMode = InternalPermissionMode constant INTERNAL_PERMISSION_MODES (line 33) | const INTERNAL_PERMISSION_MODES = [ constant PERMISSION_MODES (line 38) | const PERMISSION_MODES = INTERNAL_PERMISSION_MODES type PermissionBehavior (line 44) | type PermissionBehavior = 'allow' | 'deny' | 'ask' type PermissionRuleSource (line 54) | type PermissionRuleSource = type PermissionRuleValue (line 67) | type PermissionRuleValue = { type PermissionRule (line 75) | type PermissionRule = { type PermissionUpdateDestination (line 88) | type PermissionUpdateDestination = type PermissionUpdate (line 98) | type PermissionUpdate = type WorkingDirectorySource (line 138) | type WorkingDirectorySource = PermissionRuleSource type AdditionalWorkingDirectory (line 143) | type AdditionalWorkingDirectory = { type PermissionCommandMetadata (line 157) | type PermissionCommandMetadata = { type PermissionMetadata (line 167) | type PermissionMetadata = type PermissionAllowDecision (line 174) | type PermissionAllowDecision< type PendingClassifierCheck (line 190) | type PendingClassifierCheck = { type PermissionAskDecision (line 199) | type PermissionAskDecision< type PermissionDenyDecision (line 231) | type PermissionDenyDecision = { type PermissionDecision (line 241) | type PermissionDecision< type PermissionResult (line 251) | type PermissionResult< type PermissionDecisionReason (line 271) | type PermissionDecisionReason = type ClassifierResult (line 330) | type ClassifierResult = { type ClassifierBehavior (line 337) | type ClassifierBehavior = 'deny' | 'ask' | 'allow' type ClassifierUsage (line 339) | type ClassifierUsage = { type YoloClassifierResult (line 346) | type YoloClassifierResult = { type RiskLevel (line 403) | type RiskLevel = 'LOW' | 'MEDIUM' | 'HIGH' type PermissionExplanation (line 405) | type PermissionExplanation = { type ToolPermissionRulesBySource (line 419) | type ToolPermissionRulesBySource = { type ToolPermissionContext (line 427) | type ToolPermissionContext = { FILE: restored-src/src/types/plugin.ts type BuiltinPluginDefinition (line 18) | type BuiltinPluginDefinition = { type PluginRepository (line 37) | type PluginRepository = { type PluginConfig (line 44) | type PluginConfig = { type LoadedPlugin (line 48) | type LoadedPlugin = { type PluginComponent (line 72) | type PluginComponent = type PluginError (line 101) | type PluginError = type PluginLoadResult (line 285) | type PluginLoadResult = { function getPluginErrorMessage (line 295) | function getPluginErrorMessage(error: PluginError): string { FILE: restored-src/src/types/textInputTypes.ts type InlineGhostText (line 15) | type InlineGhostText = { type BaseTextInputProps (line 27) | type BaseTextInputProps = { type VimTextInputProps (line 207) | type VimTextInputProps = BaseTextInputProps & { type VimMode (line 222) | type VimMode = 'INSERT' | 'NORMAL' type BaseInputState (line 227) | type BaseInputState = { type TextInputState (line 252) | type TextInputState = BaseInputState type VimInputState (line 257) | type VimInputState = BaseInputState & { type PromptInputMode (line 265) | type PromptInputMode = type EditablePromptInputMode (line 271) | type EditablePromptInputMode = Exclude< type QueuePriority (line 294) | type QueuePriority = 'now' | 'next' | 'later' type QueuedCommand (line 299) | type QueuedCommand = { function isValidImagePaste (line 367) | function isValidImagePaste(c: PastedContent): boolean { function getImagePasteIds (line 372) | function getImagePasteIds( type OrphanedPermission (line 384) | type OrphanedPermission = { FILE: restored-src/src/upstreamproxy/relay.ts type WSCtor (line 31) | type WSCtor = typeof import('ws').default type WebSocketLike (line 37) | type WebSocketLike = Pick< constant MAX_CHUNK_BYTES (line 51) | const MAX_CHUNK_BYTES = 512 * 1024 constant PING_INTERVAL_MS (line 54) | const PING_INTERVAL_MS = 30_000 function encodeChunk (line 66) | function encodeChunk(data: Uint8Array): Uint8Array { function decodeChunk (line 87) | function decodeChunk(buf: Uint8Array): Uint8Array | null { type UpstreamProxyRelay (line 105) | type UpstreamProxyRelay = { type ConnState (line 110) | type ConnState = { type ClientSocket (line 135) | type ClientSocket = { function newConnState (line 140) | function newConnState(): ConnState { function startUpstreamProxyRelay (line 155) | async function startUpstreamProxyRelay(opts: { function startBunRelay (line 176) | function startBunRelay( function startNodeRelay (line 245) | async function startNodeRelay( function handleData (line 295) | function handleData( function openTunnel (line 344) | function openTunnel( function sendKeepalive (line 430) | function sendKeepalive(ws: WebSocketLike): void { function forwardToWs (line 436) | function forwardToWs(ws: WebSocketLike, data: Buffer): void { function cleanupConn (line 444) | function cleanupConn(st: ConnState | undefined): void { FILE: restored-src/src/upstreamproxy/upstreamproxy.ts constant SESSION_TOKEN_PATH (line 31) | const SESSION_TOKEN_PATH = '/run/ccr/session_token' constant SYSTEM_CA_BUNDLE (line 32) | const SYSTEM_CA_BUNDLE = '/etc/ssl/certs/ca-certificates.crt' constant NO_PROXY_LIST (line 37) | const NO_PROXY_LIST = [ type UpstreamProxyState (line 65) | type UpstreamProxyState = { function initUpstreamProxy (line 79) | async function initUpstreamProxy(opts?: { function getUpstreamProxyEnv (line 160) | function getUpstreamProxyEnv(): Record { function resetUpstreamProxyForTests (line 202) | function resetUpstreamProxyForTests(): void { function readToken (line 206) | async function readToken(path: string): Promise { function setNonDumpable (line 225) | function setNonDumpable(): void { function downloadCaBundle (line 254) | async function downloadCaBundle( FILE: restored-src/src/utils/CircularBuffer.ts class CircularBuffer (line 5) | class CircularBuffer { method constructor (line 10) | constructor(private capacity: number) { method add (line 18) | add(item: T): void { method addAll (line 29) | addAll(items: T[]): void { method getRecent (line 39) | getRecent(count: number): T[] { method toArray (line 55) | toArray(): T[] { method clear (line 72) | clear(): void { method length (line 81) | length(): number { FILE: restored-src/src/utils/Cursor.ts constant KILL_RING_MAX_SIZE (line 16) | const KILL_RING_MAX_SIZE = 10 function pushToKillRing (line 26) | function pushToKillRing( function getLastKill (line 51) | function getLastKill(): string { function getKillRingItem (line 55) | function getKillRingItem(index: number): string { function getKillRingSize (line 62) | function getKillRingSize(): number { function clearKillRing (line 66) | function clearKillRing(): void { function resetKillAccumulation (line 75) | function resetKillAccumulation(): void { function recordYank (line 80) | function recordYank(start: number, length: number): void { function canYankPop (line 87) | function canYankPop(): boolean { function yankPop (line 91) | function yankPop(): { function updateYankLength (line 105) | function updateYankLength(length: number): void { function resetYankState (line 109) | function resetYankState(): void { constant VIM_WORD_CHAR_REGEX (line 134) | const VIM_WORD_CHAR_REGEX = /^[\p{L}\p{N}\p{M}_]$/u constant WHITESPACE_REGEX (line 135) | const WHITESPACE_REGEX = /\s/ type WrappedText (line 145) | type WrappedText = string[] type Position (line 146) | type Position = { class Cursor (line 151) | class Cursor { method constructor (line 153) | constructor( method fromText (line 162) | static fromText( method getViewportStartLine (line 172) | getViewportStartLine(maxVisibleLines?: number): number { method getViewportCharOffset (line 186) | getViewportCharOffset(maxVisibleLines?: number): number { method getViewportCharEnd (line 193) | getViewportCharEnd(maxVisibleLines?: number): number { method render (line 203) | render( method left (line 301) | left(): Cursor { method right (line 311) | right(): Cursor { method imageRefEndingAt (line 325) | imageRefEndingAt(offset: number): { start: number; end: number } | null { method imageRefStartingAt (line 330) | imageRefStartingAt(offset: number): { start: number; end: number } | n... method snapOutOfImageRef (line 340) | snapOutOfImageRef(offset: number, toward: 'start' | 'end'): number { method up (line 353) | up(): Cursor { method down (line 377) | down(): Cursor { method startOfCurrentLine (line 414) | private startOfCurrentLine(): Cursor { method startOfLine (line 426) | startOfLine(): Cursor { method firstNonBlankInLine (line 444) | firstNonBlankInLine(): Cursor { method endOfLine (line 455) | endOfLine(): Cursor { method findLogicalLineStart (line 463) | private findLogicalLineStart(fromOffset: number = this.offset): number { method findLogicalLineEnd (line 468) | private findLogicalLineEnd(fromOffset: number = this.offset): number { method getLogicalLineBounds (line 474) | private getLogicalLineBounds(): { start: number; end: number } { method createCursorWithColumn (line 483) | private createCursorWithColumn( method endOfLogicalLine (line 495) | endOfLogicalLine(): Cursor { method startOfLogicalLine (line 499) | startOfLogicalLine(): Cursor { method firstNonBlankInLogicalLine (line 503) | firstNonBlankInLogicalLine(): Cursor { method upLogicalLine (line 511) | upLogicalLine(): Cursor { method downLogicalLine (line 533) | downLogicalLine(): Cursor { method nextWord (line 561) | nextWord(): Cursor { method endOfWord (line 580) | endOfWord(): Cursor { method prevWord (line 620) | prevWord(): Cursor { method nextVimWord (line 658) | nextVimWord(): Cursor { method endOfVimWord (line 691) | endOfVimWord(): Cursor { method prevVimWord (line 737) | prevVimWord(): Cursor { method nextWORD (line 774) | nextWORD(): Cursor { method endOfWORD (line 788) | endOfWORD(): Cursor { method prevWORD (line 821) | prevWORD(): Cursor { method modifyText (line 845) | modifyText(end: Cursor, insertString: string = ''): Cursor { method insert (line 861) | insert(insertString: string): Cursor { method del (line 866) | del(): Cursor { method backspace (line 873) | backspace(): Cursor { method deleteToLineStart (line 880) | deleteToLineStart(): { cursor: Cursor; killed: string } { method deleteToLineEnd (line 896) | deleteToLineEnd(): { cursor: Cursor; killed: string } { method deleteToLogicalLineEnd (line 907) | deleteToLogicalLineEnd(): Cursor { method deleteWordBefore (line 916) | deleteWordBefore(): { cursor: Cursor; killed: string } { method deleteTokenBefore (line 937) | deleteTokenBefore(): Cursor | null { method deleteWordAfter (line 971) | deleteWordAfter(): Cursor { method graphemeAt (line 980) | private graphemeAt(pos: number): string { method isOverWhitespace (line 986) | private isOverWhitespace(): boolean { method equals (line 991) | equals(other: Cursor): boolean { method isAtStart (line 997) | isAtStart(): boolean { method isAtEnd (line 1000) | isAtEnd(): boolean { method startOfFirstLine (line 1004) | startOfFirstLine(): Cursor { method startOfLastLine (line 1009) | startOfLastLine(): Cursor { method goToLine (line 1022) | goToLine(lineNumber: number): Cursor { method endOfFile (line 1034) | endOfFile(): Cursor { method text (line 1038) | public get text(): string { method columns (line 1042) | private get columns(): number { method getPosition (line 1046) | getPosition(): Position { method getOffset (line 1050) | private getOffset(position: Position): number { method findCharacter (line 1062) | findCharacter( class WrappedLine (line 1108) | class WrappedLine { method constructor (line 1109) | constructor( method equals (line 1116) | equals(other: WrappedLine): boolean { method length (line 1120) | get length(): number { class MeasuredText (line 1125) | class MeasuredText { method constructor (line 1131) | constructor( method wrappedLines (line 1143) | private get wrappedLines(): WrappedLine[] { method getGraphemeBoundaries (line 1150) | private getGraphemeBoundaries(): number[] { method getWordBoundaries (line 1173) | public getWordBoundaries(): Array<{ method binarySearchBoundary (line 1198) | private binarySearchBoundary( method stringIndexToDisplayWidth (line 1233) | public stringIndexToDisplayWidth(text: string, index: number): number { method displayWidthToStringIndex (line 1240) | public displayWidthToStringIndex(text: string, targetWidth: number): n... method offsetAtDisplayWidth (line 1270) | private offsetAtDisplayWidth(targetWidth: number): number { method measureWrappedText (line 1293) | private measureWrappedText(): WrappedLine[] { method getWrappedText (line 1371) | public getWrappedText(): WrappedText { method getWrappedLines (line 1377) | public getWrappedLines(): WrappedLine[] { method getLine (line 1381) | private getLine(line: number): WrappedLine { method getOffsetFromPosition (line 1386) | public getOffsetFromPosition(position: Position): number { method getLineLength (line 1424) | public getLineLength(line: number): number { method getPositionFromOffset (line 1429) | public getPositionFromOffset(offset: number): Position { method lineCount (line 1483) | public get lineCount(): number { method withCache (line 1487) | private withCache(key: string, compute: () => T): T { method nextOffset (line 1496) | nextOffset(offset: number): number { method prevOffset (line 1503) | prevOffset(offset: number): number { method snapToGraphemeBoundary (line 1516) | snapToGraphemeBoundary(offset: number): number { FILE: restored-src/src/utils/QueryGuard.ts class QueryGuard (line 29) | class QueryGuard { method reserve (line 38) | reserve(): boolean { method cancelReservation (line 49) | cancelReservation(): void { method tryStart (line 61) | tryStart(): number | null { method end (line 74) | end(generation: number): boolean { method forceEnd (line 88) | forceEnd(): void { method isActive (line 99) | get isActive(): boolean { method generation (line 103) | get generation(): number { method _notify (line 118) | private _notify(): void { FILE: restored-src/src/utils/Shell.ts constant DEFAULT_TIMEOUT (line 44) | const DEFAULT_TIMEOUT = 30 * 60 * 1000 // 30 minutes type ShellConfig (line 46) | type ShellConfig = { function isExecutable (line 50) | function isExecutable(shellPath: string): boolean { function findSuitableShell (line 73) | async function findSuitableShell(): Promise { function getShellConfigImpl (line 139) | async function getShellConfigImpl(): Promise { type ExecOptions (line 161) | type ExecOptions = { function exec (line 181) | async function exec( function setCwd (line 447) | function setCwd(path: string, relativeTo?: string): void { FILE: restored-src/src/utils/ShellCommand.ts type ExecResult (line 13) | type ExecResult = { type ShellCommand (line 32) | type ShellCommand = { constant SIGKILL (line 49) | const SIGKILL = 137 constant SIGTERM (line 50) | const SIGTERM = 143 constant SIZE_WATCHDOG_INTERVAL_MS (line 54) | const SIZE_WATCHDOG_INTERVAL_MS = 5_000 function prependStderr (line 56) | function prependStderr(prefix: string, stderr: string): string { class StreamWrapper (line 66) | class StreamWrapper { method constructor (line 73) | constructor(stream: Readable, taskOutput: TaskOutput, isStderr: boolea... method #dataHandler (line 82) | #dataHandler(data: Buffer | string): void { method cleanup (line 92) | cleanup(): void { class ShellCommandImpl (line 114) | class ShellCommandImpl implements ShellCommand { method #handleTimeout (line 135) | static #handleTimeout(self: ShellCommandImpl): void { method constructor (line 148) | constructor( method status (line 182) | get status(): 'running' | 'backgrounded' | 'completed' | 'killed' { method #abortHandler (line 186) | #abortHandler(): void { method #exitHandler (line 195) | #exitHandler(code: number | null, signal: NodeJS.Signals | null): void { method #errorHandler (line 205) | #errorHandler(): void { method #resolveExitCode (line 209) | #resolveExitCode(code: number): void { method #cleanupListeners (line 218) | #cleanupListeners(): void { method #clearSizeWatchdog (line 232) | #clearSizeWatchdog(): void { method #startSizeWatchdog (line 239) | #startSizeWatchdog(): void { method #createResultPromise (line 263) | #createResultPromise(): Promise { method #handleExit (line 291) | async #handleExit(code: number): Promise { method #doKill (line 337) | #doKill(code?: number): void { method kill (line 345) | kill(): void { method background (line 349) | background(taskId: string): boolean { method cleanup (line 368) | cleanup(): void { function wrapSpawn (line 387) | function wrapSpawn( class AbortedShellCommand (line 408) | class AbortedShellCommand implements ShellCommand { method constructor (line 413) | constructor(opts?: { method background (line 428) | background(): boolean { method kill (line 432) | kill(): void {} method cleanup (line 434) | cleanup(): void {} function createAbortedCommand (line 437) | function createAbortedCommand( function createFailedCommand (line 447) | function createFailedCommand(preSpawnError: string): ShellCommand { FILE: restored-src/src/utils/abortController.ts constant DEFAULT_MAX_LISTENERS (line 6) | const DEFAULT_MAX_LISTENERS = 50 function createAbortController (line 16) | function createAbortController( function propagateAbort (line 30) | function propagateAbort( function removeAbortHandler (line 44) | function removeAbortHandler( function createChildAbortController (line 68) | function createChildAbortController( FILE: restored-src/src/utils/activityManager.ts type ActivityManagerOptions (line 3) | type ActivityManagerOptions = { class ActivityManager (line 13) | class ActivityManager { method constructor (line 28) | constructor(options?: ActivityManagerOptions) { method getInstance (line 35) | static getInstance(): ActivityManager { method resetInstance (line 45) | static resetInstance(): void { method createInstance (line 52) | static createInstance(options?: ActivityManagerOptions): ActivityManag... method recordUserActivity (line 60) | recordUserActivity(): void { method startCLIActivity (line 86) | startCLIActivity(operationId: string): void { method endCLIActivity (line 106) | endCLIActivity(operationId: string): void { method trackOperation (line 130) | async trackOperation( method getActivityStates (line 145) | getActivityStates(): { FILE: restored-src/src/utils/advisor.ts type AdvisorServerToolUseBlock (line 9) | type AdvisorServerToolUseBlock = { type AdvisorToolResultBlock (line 16) | type AdvisorToolResultBlock = { type AdvisorBlock (line 34) | type AdvisorBlock = AdvisorServerToolUseBlock | AdvisorToolResultBlock function isAdvisorBlock (line 36) | function isAdvisorBlock(param: { type AdvisorConfig (line 46) | type AdvisorConfig = { function getAdvisorConfig (line 53) | function getAdvisorConfig(): AdvisorConfig { function isAdvisorEnabled (line 60) | function isAdvisorEnabled(): boolean { function canUserConfigureAdvisor (line 71) | function canUserConfigureAdvisor(): boolean { function getExperimentAdvisorModels (line 75) | function getExperimentAdvisorModels(): function modelSupportsAdvisor (line 89) | function modelSupportsAdvisor(model: string): boolean { function isValidAdvisorModel (line 99) | function isValidAdvisorModel(model: string): boolean { function getInitialAdvisorSetting (line 108) | function getInitialAdvisorSetting(): string | undefined { function getAdvisorUsage (line 115) | function getAdvisorUsage( constant ADVISOR_TOOL_INSTRUCTIONS (line 130) | const ADVISOR_TOOL_INSTRUCTIONS = `# Advisor Tool FILE: restored-src/src/utils/agentContext.ts type SubagentContext (line 32) | type SubagentContext = { type TeammateAgentContext (line 60) | type TeammateAgentContext = { type AgentContext (line 91) | type AgentContext = SubagentContext | TeammateAgentContext function getAgentContext (line 100) | function getAgentContext(): AgentContext | undefined { function runWithAgentContext (line 108) | function runWithAgentContext(context: AgentContext, fn: () => T): T { function isSubagentContext (line 115) | function isSubagentContext( function isTeammateAgentContext (line 124) | function isTeammateAgentContext( function getSubagentLogName (line 141) | function getSubagentLogName(): function consumeInvokingRequestId (line 163) | function consumeInvokingRequestId(): FILE: restored-src/src/utils/agentId.ts function formatAgentId (line 38) | function formatAgentId(agentName: string, teamName: string): string { function parseAgentId (line 46) | function parseAgentId( function generateRequestId (line 62) | function generateRequestId( function parseRequestId (line 74) | function parseRequestId( FILE: restored-src/src/utils/agentSwarmsEnabled.ts function isAgentTeamsFlagSet (line 10) | function isAgentTeamsFlagSet(): boolean { function isAgentSwarmsEnabled (line 24) | function isAgentSwarmsEnabled(): boolean { FILE: restored-src/src/utils/agenticSessionSearch.ts constant MAX_TRANSCRIPT_CHARS (line 11) | const MAX_TRANSCRIPT_CHARS = 2000 // Max chars of transcript per session constant MAX_MESSAGES_TO_SCAN (line 12) | const MAX_MESSAGES_TO_SCAN = 100 // Max messages to scan from start/end constant MAX_SESSIONS_TO_SEARCH (line 13) | const MAX_SESSIONS_TO_SEARCH = 100 // Max sessions to send to the API constant SESSION_SEARCH_SYSTEM_PROMPT (line 15) | const SESSION_SEARCH_SYSTEM_PROMPT = `Your goal is to find relevant sess... type AgenticSearchResult (line 50) | type AgenticSearchResult = { function extractMessageText (line 57) | function extractMessageText(message: SerializedMessage): string { function extractTranscript (line 86) | function extractTranscript(messages: SerializedMessage[]): string { function logContainsQuery (line 113) | function logContainsQuery(log: LogOption, queryLower: string): boolean { function agenticSessionSearch (line 146) | async function agenticSessionSearch( FILE: restored-src/src/utils/analyzeContext.ts constant RESERVED_CATEGORY_NAME (line 65) | const RESERVED_CATEGORY_NAME = 'Autocompact buffer' constant MANUAL_COMPACT_BUFFER_NAME (line 66) | const MANUAL_COMPACT_BUFFER_NAME = 'Compact buffer' constant TOOL_TOKEN_COUNT_OVERHEAD (line 75) | const TOOL_TOKEN_COUNT_OVERHEAD = 500 function countTokensWithFallback (line 77) | async function countTokensWithFallback( type ContextCategory (line 111) | interface ContextCategory { type GridSquare (line 119) | interface GridSquare { type MemoryFile (line 128) | interface MemoryFile { type McpTool (line 134) | interface McpTool { type DeferredBuiltinTool (line 141) | interface DeferredBuiltinTool { type SystemToolDetail (line 147) | interface SystemToolDetail { type SystemPromptSectionDetail (line 152) | interface SystemPromptSectionDetail { type Agent (line 157) | interface Agent { type SlashCommandInfo (line 163) | interface SlashCommandInfo { type SkillFrontmatter (line 170) | interface SkillFrontmatter { type SkillInfo (line 179) | interface SkillInfo { type ContextData (line 190) | interface ContextData { function countToolDefinitionTokens (line 234) | async function countToolDefinitionTokens( function extractSectionName (line 261) | function extractSectionName(content: string): string { function countSystemTokens (line 272) | async function countSystemTokens( function countMemoryFileTokens (line 320) | async function countMemoryFileTokens(): Promise<{ function countBuiltInToolTokens (line 363) | async function countBuiltInToolTokens( function findSkillTool (line 517) | function findSkillTool(tools: Tools): Tool | undefined { function countSlashCommandTokens (line 521) | async function countSlashCommandTokens( function countSkillTokens (line 554) | async function countSkillTokens( function countMcpToolTokens (line 616) | async function countMcpToolTokens( function countCustomAgentTokens (line 732) | async function countCustomAgentTokens(agentDefinitions: { type MessageBreakdown (line 770) | type MessageBreakdown = { function processAssistantMessage (line 782) | function processAssistantMessage( function processUserMessage (line 805) | function processUserMessage( function processAttachment (line 839) | function processAttachment( function approximateMessageTokens (line 853) | async function approximateMessageTokens( function analyzeContextUsage (line 918) | async function analyzeContextUsage( FILE: restored-src/src/utils/ansiToPng.ts constant GLYPH_W (line 32) | const GLYPH_W = 24 constant GLYPH_H (line 33) | const GLYPH_H = 48 constant GLYPH_BYTES (line 34) | const GLYPH_BYTES = GLYPH_W * GLYPH_H constant FONT_B64 (line 40) | const FONT_B64 = constant FALLBACK_GLYPH (line 44) | const FALLBACK_GLYPH = makeFallbackGlyph() function makeFallbackGlyph (line 46) | function makeFallbackGlyph(): Uint8Array { constant FONT (line 58) | const FONT: Map = decodeFont() function decodeFont (line 60) | function decodeFont(): Map { type AnsiToPngOptions (line 74) | type AnsiToPngOptions = { function ansiToPng (line 91) | function ansiToPng( function lineWidthCells (line 156) | function lineWidthCells(line: ParsedLine): number { function fillBackground (line 162) | function fillBackground(px: Uint8Array, bg: AnsiColor): void { constant SHADE_ALPHA (line 174) | const SHADE_ALPHA: Record = { function blitShade (line 181) | function blitShade( function blitGlyph (line 213) | function blitGlyph( function roundCorners (line 246) | function roundCorners( constant PNG_SIG (line 269) | const PNG_SIG = Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0... constant CRC_TABLE (line 270) | const CRC_TABLE = makeCrcTable() function makeCrcTable (line 272) | function makeCrcTable(): Uint32Array { function crc32 (line 284) | function crc32(data: Uint8Array): number { function chunk (line 292) | function chunk(type: string, data: Uint8Array): Buffer { function encodePng (line 307) | function encodePng(px: Uint8Array, width: number, height: number): Buffer { FILE: restored-src/src/utils/ansiToSvg.ts type AnsiColor (line 8) | type AnsiColor = { constant ANSI_COLORS (line 15) | const ANSI_COLORS: Record = { constant DEFAULT_FG (line 35) | const DEFAULT_FG: AnsiColor = { r: 229, g: 229, b: 229 } // light gray constant DEFAULT_BG (line 36) | const DEFAULT_BG: AnsiColor = { r: 30, g: 30, b: 30 } // dark gray type TextSpan (line 38) | type TextSpan = { type ParsedLine (line 44) | type ParsedLine = TextSpan[] function parseAnsi (line 53) | function parseAnsi(text: string): ParsedLine[] { function get256Color (line 150) | function get256Color(index: number): AnsiColor { type AnsiToSvgOptions (line 192) | type AnsiToSvgOptions = { function ansiToSvg (line 207) | function ansiToSvg( FILE: restored-src/src/utils/api.ts type BetaToolWithExtras (line 69) | type BetaToolWithExtras = BetaTool & { type CacheScope (line 80) | type CacheScope = 'global' | 'org' type SystemPromptBlock (line 81) | type SystemPromptBlock = { constant SWARM_FIELDS_BY_TOOL (line 87) | const SWARM_FIELDS_BY_TOOL: Record = { function filterSwarmFieldsFromSchema (line 96) | function filterSwarmFieldsFromSchema( function toolToAPISchema (line 119) | async function toolToAPISchema( function logStripOnce (line 269) | function logStripOnce(stripped: string[]): void { function logAPIPrefix (line 281) | function logAPIPrefix(systemPrompt: SystemPrompt): void { function splitSysPromptPrefix (line 321) | function splitSysPromptPrefix( function appendSystemContext (line 437) | function appendSystemContext( function prependUserContext (line 449) | function prependUserContext( function logContextMetrics (line 479) | async function logContextMetrics( function normalizeToolInput (line 566) | function normalizeToolInput( function normalizeToolInputForAPI (line 685) | function normalizeToolInputForAPI( FILE: restored-src/src/utils/apiPreconnect.ts function preconnectAnthropicApi (line 31) | function preconnectAnthropicApi(): void { FILE: restored-src/src/utils/appleTerminalBackup.ts function markTerminalSetupInProgress (line 7) | function markTerminalSetupInProgress(backupPath: string): void { function markTerminalSetupComplete (line 15) | function markTerminalSetupComplete(): void { function getTerminalRecoveryInfo (line 22) | function getTerminalRecoveryInfo(): { function getTerminalPlistPath (line 33) | function getTerminalPlistPath(): string { function backupTerminalPreferences (line 37) | async function backupTerminalPreferences(): Promise { type RestoreResult (line 73) | type RestoreResult = function checkAndRestoreTerminalBackup (line 82) | async function checkAndRestoreTerminalBackup(): Promise { FILE: restored-src/src/utils/argumentSubstitution.ts function parseArguments (line 24) | function parseArguments(args: string): string[] { function parseArgumentNames (line 50) | function parseArgumentNames( function generateProgressiveArgumentHint (line 76) | function generateProgressiveArgumentHint( function substituteArguments (line 94) | function substituteArguments( FILE: restored-src/src/utils/array.ts function intersperse (line 1) | function intersperse(as: A[], separator: (index: number) => A): A[] { function count (line 5) | function count(arr: readonly T[], pred: (x: T) => unknown): number { function uniq (line 11) | function uniq(xs: Iterable): T[] { FILE: restored-src/src/utils/asciicast.ts function getRecordFilePath (line 24) | function getRecordFilePath(): string | null { function _resetRecordingStateForTesting (line 46) | function _resetRecordingStateForTesting(): void { function getSessionRecordingPaths (line 55) | function getSessionRecordingPaths(): string[] { function renameRecordingForSession (line 82) | async function renameRecordingForSession(): Promise { type AsciicastRecorder (line 111) | type AsciicastRecorder = { function getTerminalSize (line 118) | function getTerminalSize(): { cols: number; rows: number } { function flushAsciicastRecorder (line 131) | async function flushAsciicastRecorder(): Promise { function installAsciicastRecorder (line 140) | function installAsciicastRecorder(): void { FILE: restored-src/src/utils/attachments.ts constant BRIEF_TOOL_NAME (line 200) | const BRIEF_TOOL_NAME: string | null = constant TODO_REMINDER_CONFIG (line 254) | const TODO_REMINDER_CONFIG = { constant PLAN_MODE_ATTACHMENT_CONFIG (line 259) | const PLAN_MODE_ATTACHMENT_CONFIG = { constant AUTO_MODE_ATTACHMENT_CONFIG (line 264) | const AUTO_MODE_ATTACHMENT_CONFIG = { constant MAX_MEMORY_LINES (line 269) | const MAX_MEMORY_LINES = 200 constant MAX_MEMORY_BYTES (line 277) | const MAX_MEMORY_BYTES = 4096 constant RELEVANT_MEMORIES_CONFIG (line 279) | const RELEVANT_MEMORIES_CONFIG = { constant VERIFY_PLAN_REMINDER_CONFIG (line 291) | const VERIFY_PLAN_REMINDER_CONFIG = { type FileAttachment (line 295) | type FileAttachment = { type CompactFileReferenceAttachment (line 307) | type CompactFileReferenceAttachment = { type PDFReferenceAttachment (line 314) | type PDFReferenceAttachment = { type AlreadyReadFileAttachment (line 323) | type AlreadyReadFileAttachment = { type AgentMentionAttachment (line 335) | type AgentMentionAttachment = { type AsyncHookResponseAttachment (line 340) | type AsyncHookResponseAttachment = { type HookAttachment (line 352) | type HookAttachment = type HookPermissionDecisionAttachment (line 381) | type HookPermissionDecisionAttachment = { type HookSystemMessageAttachment (line 388) | type HookSystemMessageAttachment = { type HookCancelledAttachment (line 396) | type HookCancelledAttachment = { type HookErrorDuringExecutionAttachment (line 405) | type HookErrorDuringExecutionAttachment = { type HookSuccessAttachment (line 415) | type HookSuccessAttachment = { type HookNonBlockingErrorAttachment (line 428) | type HookNonBlockingErrorAttachment = { type Attachment (line 440) | type Attachment = type TeammateMailboxAttachment (line 719) | type TeammateMailboxAttachment = { type TeamContextAttachment (line 730) | type TeamContextAttachment = { function getAttachments (line 743) | async function getAttachments( function maybe (line 1005) | async function maybe(label: string, f: () => Promise): Promise): { function readMemoriesForSurfacing (line 2279) | async function readMemoriesForSurfacing( function memoryHeader (line 2327) | function memoryHeader(path: string, mtimeMs: number): string { type MemoryPrefetch (line 2346) | type MemoryPrefetch = { function startRelevantMemoryPrefetch (line 2361) | function startRelevantMemoryPrefetch( type ToolResultBlock (line 2426) | type ToolResultBlock = { function isToolResultBlock (line 2432) | function isToolResultBlock(b: unknown): b is ToolResultBlock { function hasToolResultContent (line 2447) | function hasToolResultContent(content: unknown): boolean { function collectRecentSuccessfulTools (line 2465) | function collectRecentSuccessfulTools( function filterDuplicateMemoryAttachments (line 2520) | function filterDuplicateMemoryAttachments( function getDynamicSkillAttachments (line 2547) | async function getDynamicSkillAttachments( function resetSentSkillNames (line 2612) | function resetSentSkillNames(): void { function suppressNextSkillListing (line 2633) | function suppressNextSkillListing(): void { constant FILTERED_LISTING_MAX (line 2641) | const FILTERED_LISTING_MAX = 30 function filterToBundledAndMcp (line 2651) | function filterToBundledAndMcp(commands: Command[]): Command[] { function getSkillListingAttachments (line 2661) | async function getSkillListingAttachments( function extractAtMentionedFiles (line 2757) | function extractAtMentionedFiles(content: string): string[] { function extractMcpResourceMentions (line 2792) | function extractMcpResourceMentions(content: string): string[] { function extractAgentMentions (line 2802) | function extractAgentMentions(content: string): string[] { type AtMentionedFileLines (line 2830) | interface AtMentionedFileLines { function parseAtMentionedFileLines (line 2836) | function parseAtMentionedFileLines( function getDiagnosticAttachments (line 2854) | async function getDiagnosticAttachments( function getLSPDiagnosticAttachments (line 2883) | async function getLSPDiagnosticAttachments( function tryGetPDFReference (line 2986) | async function tryGetPDFReference( function generateFileAttachment (line 3020) | async function generateFileAttachment( function createAttachmentMessage (line 3201) | function createAttachmentMessage( function getTodoReminderTurnCounts (line 3212) | function getTodoReminderTurnCounts(messages: Message[]): { function getTodoReminderAttachments (line 3266) | async function getTodoReminderAttachments( function getTaskReminderTurnCounts (line 3319) | function getTaskReminderTurnCounts(messages: Message[]): { function getTaskReminderAttachments (line 3375) | async function getTaskReminderAttachments( function getUnifiedTaskAttachments (line 3439) | async function getUnifiedTaskAttachments( function getAsyncHookResponseAttachments (line 3464) | async function getAsyncHookResponseAttachments(): Promise { function getTeammateMailboxAttachments (line 3532) | async function getTeammateMailboxAttachments( function getTeamContextAttachment (line 3775) | function getTeamContextAttachment(messages: Message[]): Attachment[] { function getTokenUsageAttachment (line 3807) | function getTokenUsageAttachment( function getOutputTokenUsageAttachment (line 3828) | function getOutputTokenUsageAttachment(): Attachment[] { function getMaxBudgetUsdAttachment (line 3846) | function getMaxBudgetUsdAttachment(maxBudgetUsd?: number): Attachment[] { function getVerifyPlanReminderTurnCount (line 3872) | function getVerifyPlanReminderTurnCount(messages: Message[]): number { function getVerifyPlanReminderAttachment (line 3894) | async function getVerifyPlanReminderAttachment( function getCompactionReminderAttachment (line 3931) | function getCompactionReminderAttachment( function getContextEfficiencyAttachment (line 3963) | function getContextEfficiencyAttachment( function isFileReadDenied (line 3986) | function isFileReadDenied( FILE: restored-src/src/utils/attribution.ts type AttributionTexts (line 39) | type AttributionTexts = { function getAttributionTexts (line 52) | function getAttributionTexts(): AttributionTexts { function isTerminalOutput (line 104) | function isTerminalOutput(content: string): boolean { function countUserPromptsInMessages (line 119) | function countUserPromptsInMessages( function countUserPromptsFromEntries (line 171) | function countUserPromptsFromEntries(entries: ReadonlyArray): num... function getPRAttributionData (line 185) | async function getPRAttributionData( constant MEMORY_ACCESS_TOOL_NAMES (line 213) | const MEMORY_ACCESS_TOOL_NAMES = new Set([ function countMemoryFileAccessFromEntries (line 225) | function countMemoryFileAccessFromEntries( function getTranscriptStats (line 251) | async function getTranscriptStats(): Promise<{ function getEnhancedPRAttribution (line 297) | async function getEnhancedPRAttribution( FILE: restored-src/src/utils/auth.ts constant DEFAULT_API_KEY_HELPER_TTL (line 81) | const DEFAULT_API_KEY_HELPER_TTL = 5 * 60 * 1000 function isManagedOAuthContext (line 91) | function isManagedOAuthContext(): boolean { function isAnthropicAuthEnabled (line 100) | function isAnthropicAuthEnabled(): boolean { function getAuthTokenSource (line 153) | function getAuthTokenSource() { type ApiKeySource (line 208) | type ApiKeySource = function getAnthropicApiKey (line 214) | function getAnthropicApiKey(): null | string { function hasAnthropicApiKeyAuth (line 219) | function hasAnthropicApiKeyAuth(): boolean { function getAnthropicApiKeyWithSource (line 226) | function getAnthropicApiKeyWithSource( function getConfiguredApiKeyHelper (line 355) | function getConfiguredApiKeyHelper(): string | undefined { function isApiKeyHelperFromProjectOrLocalSettings (line 366) | function isApiKeyHelperFromProjectOrLocalSettings(): boolean { function getConfiguredAwsAuthRefresh (line 383) | function getConfiguredAwsAuthRefresh(): string | undefined { function isAwsAuthRefreshFromProjectSettings (line 391) | function isAwsAuthRefreshFromProjectSettings(): boolean { function getConfiguredAwsCredentialExport (line 408) | function getConfiguredAwsCredentialExport(): string | undefined { function isAwsCredentialExportFromProjectSettings (line 416) | function isAwsCredentialExportFromProjectSettings(): boolean { function calculateApiKeyHelperTTL (line 435) | function calculateApiKeyHelperTTL(): number { function getApiKeyHelperElapsedMs (line 464) | function getApiKeyHelperElapsedMs(): number { function getApiKeyFromApiKeyHelper (line 469) | async function getApiKeyFromApiKeyHelper( function _runAndCache (line 501) | async function _runAndCache( function _executeApiKeyHelper (line 538) | async function _executeApiKeyHelper( function getApiKeyFromApiKeyHelperCached (line 581) | function getApiKeyFromApiKeyHelperCached(): string | null { function clearApiKeyHelperCache (line 585) | function clearApiKeyHelperCache(): void { function prefetchApiKeyFromApiKeyHelperIfSafe (line 591) | function prefetchApiKeyFromApiKeyHelperIfSafe( constant DEFAULT_AWS_STS_TTL (line 606) | const DEFAULT_AWS_STS_TTL = 60 * 60 * 1000 function runAwsAuthRefresh (line 612) | async function runAwsAuthRefresh(): Promise { constant AWS_AUTH_REFRESH_TIMEOUT_MS (line 648) | const AWS_AUTH_REFRESH_TIMEOUT_MS = 3 * 60 * 1000 function refreshAwsAuth (line 650) | function refreshAwsAuth(awsAuthRefresh: string): Promise { function getAwsCredsFromCredentialExport (line 705) | async function getAwsCredsFromCredentialExport(): Promise<{ function clearAwsCredentialsCache (line 809) | function clearAwsCredentialsCache(): void { function getConfiguredGcpAuthRefresh (line 816) | function getConfiguredGcpAuthRefresh(): string | undefined { function isGcpAuthRefreshFromProjectSettings (line 824) | function isGcpAuthRefreshFromProjectSettings(): boolean { constant GCP_CREDENTIALS_CHECK_TIMEOUT_MS (line 841) | const GCP_CREDENTIALS_CHECK_TIMEOUT_MS = 5_000 function checkGcpCredentialsValid (line 847) | async function checkGcpCredentialsValid(): Promise { constant DEFAULT_GCP_CREDENTIAL_TTL (line 869) | const DEFAULT_GCP_CREDENTIAL_TTL = 60 * 60 * 1000 function runGcpAuthRefresh (line 875) | async function runGcpAuthRefresh(): Promise { constant GCP_AUTH_REFRESH_TIMEOUT_MS (line 915) | const GCP_AUTH_REFRESH_TIMEOUT_MS = 3 * 60 * 1000 function refreshGcpAuth (line 917) | function refreshGcpAuth(gcpAuthRefresh: string): Promise { function clearGcpCredentialsCache (line 983) | function clearGcpCredentialsCache(): void { function prefetchGcpCredentialsIfSafe (line 994) | function prefetchGcpCredentialsIfSafe(): void { function prefetchAwsCredentialsAndBedRockInfoIfSafe (line 1023) | function prefetchAwsCredentialsAndBedRockInfoIfSafe(): void { function isValidApiKey (line 1089) | function isValidApiKey(apiKey: string): boolean { function saveApiKey (line 1094) | async function saveApiKey(apiKey: string): Promise { function isCustomApiKeyApproved (line 1162) | function isCustomApiKeyApproved(apiKey: string): boolean { function removeApiKey (line 1170) | async function removeApiKey(): Promise { function maybeRemoveApiKeyFromMacOSKeychain (line 1185) | async function maybeRemoveApiKeyFromMacOSKeychain(): Promise { function saveOAuthTokensIfNeeded (line 1194) | function saveOAuthTokensIfNeeded(tokens: OAuthTokens): { function clearOAuthTokenCache (line 1308) | function clearOAuthTokenCache(): void { function invalidateOAuthCacheIfDiskChanged (line 1320) | async function invalidateOAuthCacheIfDiskChanged(): Promise { function handleOAuth401Error (line 1360) | function handleOAuth401Error( function handleOAuth401ErrorImpl (line 1373) | async function handleOAuth401ErrorImpl( function getClaudeAIOAuthTokensAsync (line 1399) | async function getClaudeAIOAuthTokensAsync(): Promise { function checkAndRefreshOAuthTokenIfNeeded (line 1427) | function checkAndRefreshOAuthTokenIfNeeded( function checkAndRefreshOAuthTokenIfNeededImpl (line 1447) | async function checkAndRefreshOAuthTokenIfNeededImpl( function isClaudeAISubscriber (line 1564) | function isClaudeAISubscriber(): boolean { function hasProfileScope (line 1580) | function hasProfileScope(): boolean { function is1PApiCustomer (line 1586) | function is1PApiCustomer(): boolean { function getOauthAccountInfo (line 1615) | function getOauthAccountInfo(): AccountInfo | undefined { function isOverageProvisioningAllowed (line 1623) | function isOverageProvisioningAllowed(): boolean { function hasOpusAccess (line 1647) | function hasOpusAccess(): boolean { function getSubscriptionType (line 1662) | function getSubscriptionType(): SubscriptionType | null { function isMaxSubscriber (line 1679) | function isMaxSubscriber(): boolean { function isTeamSubscriber (line 1683) | function isTeamSubscriber(): boolean { function isTeamPremiumSubscriber (line 1687) | function isTeamPremiumSubscriber(): boolean { function isEnterpriseSubscriber (line 1694) | function isEnterpriseSubscriber(): boolean { function isProSubscriber (line 1698) | function isProSubscriber(): boolean { function getRateLimitTier (line 1702) | function getRateLimitTier(): string | null { function getSubscriptionName (line 1714) | function getSubscriptionName(): string { function isUsing3PServices (line 1732) | function isUsing3PServices(): boolean { function getConfiguredOtelHeadersHelper (line 1743) | function getConfiguredOtelHeadersHelper(): string | undefined { function isOtelHeadersHelperFromProjectOrLocalSettings (line 1751) | function isOtelHeadersHelperFromProjectOrLocalSettings(): boolean { constant DEFAULT_OTEL_HEADERS_DEBOUNCE_MS (line 1768) | const DEFAULT_OTEL_HEADERS_DEBOUNCE_MS = 29 * 60 * 1000 // 29 minutes function getOtelHeadersFromHelper (line 1770) | function getOtelHeadersFromHelper(): Record { function isConsumerPlan (line 1842) | function isConsumerPlan(plan: SubscriptionType): plan is 'max' | 'pro' { function isConsumerSubscriber (line 1846) | function isConsumerSubscriber(): boolean { type UserAccountInfo (line 1855) | type UserAccountInfo = { function getAccountInformation (line 1863) | function getAccountInformation() { type OrgValidationResult (line 1911) | type OrgValidationResult = function validateForceLoginOrg (line 1923) | async function validateForceLoginOrg(): Promise { class GcpCredentialsTimeoutError (line 2002) | class GcpCredentialsTimeoutError extends Error {} FILE: restored-src/src/utils/authFileDescriptor.ts constant CCR_TOKEN_DIR (line 20) | const CCR_TOKEN_DIR = '/home/claude/.claude/remote' constant CCR_OAUTH_TOKEN_PATH (line 21) | const CCR_OAUTH_TOKEN_PATH = `${CCR_TOKEN_DIR}/.oauth_token` constant CCR_API_KEY_PATH (line 22) | const CCR_API_KEY_PATH = `${CCR_TOKEN_DIR}/.api_key` constant CCR_SESSION_INGRESS_TOKEN_PATH (line 23) | const CCR_SESSION_INGRESS_TOKEN_PATH = `${CCR_TOKEN_DIR}/.session_ingres... function maybePersistTokenForSubprocesses (line 30) | function maybePersistTokenForSubprocesses( function readTokenFromWellKnownFile (line 57) | function readTokenFromWellKnownFile( function getCredentialFromFd (line 97) | function getCredentialFromFd({ function getOAuthTokenFromFileDescriptor (line 173) | function getOAuthTokenFromFileDescriptor(): string | null { function getApiKeyFromFileDescriptor (line 188) | function getApiKeyFromFileDescriptor(): string | null { FILE: restored-src/src/utils/authPortable.ts function maybeRemoveApiKeyFromMacOSKeychainThrows (line 4) | async function maybeRemoveApiKeyFromMacOSKeychainThrows(): Promise { function normalizeApiKeyForConfig (line 17) | function normalizeApiKeyForConfig(apiKey: string): string { FILE: restored-src/src/utils/autoModeDenials.ts type AutoModeDenial (line 8) | type AutoModeDenial = { constant DENIALS (line 16) | let DENIALS: readonly AutoModeDenial[] = [] constant MAX_DENIALS (line 17) | const MAX_DENIALS = 20 function recordAutoModeDenial (line 19) | function recordAutoModeDenial(denial: AutoModeDenial): void { function getAutoModeDenials (line 24) | function getAutoModeDenials(): readonly AutoModeDenial[] { FILE: restored-src/src/utils/autoRunIssue.tsx type Props (line 7) | type Props = { function AutoRunIssueNotification (line 17) | function AutoRunIssueNotification(t0) { type AutoRunIssueReason (line 77) | type AutoRunIssueReason = 'feedback_survey_bad' | 'feedback_survey_good'; function shouldAutoRunIssue (line 82) | function shouldAutoRunIssue(reason: AutoRunIssueReason): boolean { function getAutoRunCommand (line 101) | function getAutoRunCommand(reason: AutoRunIssueReason): string { function getAutoRunIssueReasonText (line 112) | function getAutoRunIssueReasonText(reason: AutoRunIssueReason): string { FILE: restored-src/src/utils/autoUpdater.ts constant GCS_BUCKET_URL (line 30) | const GCS_BUCKET_URL = class AutoUpdaterError (line 33) | class AutoUpdaterError extends ClaudeError {} type InstallStatus (line 35) | type InstallStatus = type AutoUpdaterResult (line 41) | type AutoUpdaterResult = { type MaxVersionConfig (line 47) | type MaxVersionConfig = { function assertMinVersion (line 70) | async function assertMinVersion(): Promise { function getMaxVersion (line 108) | async function getMaxVersion(): Promise { function getMaxVersionMessage (line 120) | async function getMaxVersionMessage(): Promise { function getMaxVersionConfig (line 128) | async function getMaxVersionConfig(): Promise { function shouldSkipVersion (line 145) | function shouldSkipVersion(targetVersion: string): boolean { constant LOCK_TIMEOUT_MS (line 162) | const LOCK_TIMEOUT_MS = 5 * 60 * 1000 // 5 minute timeout for locks function getLockFilePath (line 168) | function getLockFilePath(): string { function acquireLock (line 176) | async function acquireLock(): Promise { function releaseLock (line 254) | async function releaseLock(): Promise { function getInstallationPrefix (line 270) | async function getInstallationPrefix(): Promise { function checkGlobalInstallPermissions (line 292) | async function checkGlobalInstallPermissions(): Promise<{ function getLatestVersion (line 319) | async function getLatestVersion( type NpmDistTags (line 346) | type NpmDistTags = { function getNpmDistTags (line 355) | async function getNpmDistTags(): Promise { function getLatestVersionFromGcs (line 384) | async function getLatestVersionFromGcs( function getGcsDistTags (line 403) | async function getGcsDistTags(): Promise { function getVersionHistory (line 421) | async function getVersionHistory(limit: number): Promise { function installGlobalPackage (line 456) | async function installGlobalPackage( function removeClaudeAliasesFromShellConfigs (line 539) | async function removeClaudeAliasesFromShellConfigs(): Promise { FILE: restored-src/src/utils/aws.ts type AwsCredentials (line 4) | type AwsCredentials = { type AwsStsOutput (line 12) | type AwsStsOutput = { type AwsError (line 16) | type AwsError = { function isAwsCredentialsProviderError (line 20) | function isAwsCredentialsProviderError(err: unknown) { function isValidAwsStsOutput (line 25) | function isValidAwsStsOutput(obj: unknown): obj is AwsStsOutput { function checkStsCallerIdentity (line 50) | async function checkStsCallerIdentity(): Promise { function clearAwsIniCache (line 61) | async function clearAwsIniCache(): Promise { FILE: restored-src/src/utils/awsAuthStatusManager.ts type AwsAuthStatus (line 12) | type AwsAuthStatus = { class AwsAuthStatusManager (line 18) | class AwsAuthStatusManager { method getInstance (line 26) | static getInstance(): AwsAuthStatusManager { method getStatus (line 33) | getStatus(): AwsAuthStatus { method startAuthentication (line 40) | startAuthentication(): void { method addOutput (line 48) | addOutput(line: string): void { method setError (line 53) | setError(error: string): void { method endAuthentication (line 58) | endAuthentication(success: boolean): void { method reset (line 75) | static reset(): void { FILE: restored-src/src/utils/background/remote/preconditions.ts function checkNeedsClaudeAiLogin (line 23) | async function checkNeedsClaudeAiLogin(): Promise { function checkIsGitClean (line 36) | async function checkIsGitClean(): Promise { function checkHasRemoteEnvironment (line 45) | async function checkHasRemoteEnvironment(): Promise { function checkIsInGitRepo (line 59) | function checkIsInGitRepo(): boolean { function checkHasGitRemote (line 67) | async function checkHasGitRemote(): Promise { function checkGithubAppInstalled (line 78) | async function checkGithubAppInstalled( function checkGithubTokenSynced (line 164) | async function checkGithubTokenSynced(): Promise { type RepoAccessMethod (line 213) | type RepoAccessMethod = 'github-app' | 'token-sync' | 'none' function checkRepoForRemoteAccess (line 221) | async function checkRepoForRemoteAccess( FILE: restored-src/src/utils/background/remote/remoteSession.ts type BackgroundRemoteSession (line 17) | type BackgroundRemoteSession = { type BackgroundRemoteSessionPrecondition (line 31) | type BackgroundRemoteSessionPrecondition = function checkBackgroundRemoteSessionEligibility (line 45) | async function checkBackgroundRemoteSessionEligibility({ FILE: restored-src/src/utils/backgroundHousekeeping.ts constant RECURRING_CLEANUP_INTERVAL_MS (line 26) | const RECURRING_CLEANUP_INTERVAL_MS = 24 * 60 * 60 * 1000 constant DELAY_VERY_SLOW_OPERATIONS_THAT_HAPPEN_EVERY_SESSION (line 29) | const DELAY_VERY_SLOW_OPERATIONS_THAT_HAPPEN_EVERY_SESSION = 10 * 60 * 1000 function startBackgroundHousekeeping (line 31) | function startBackgroundHousekeeping(): void { FILE: restored-src/src/utils/bash/ParsedCommand.ts type OutputRedirection (line 12) | type OutputRedirection = { type IParsedCommand (line 21) | interface IParsedCommand { class RegexParsedCommand_DEPRECATED (line 42) | class RegexParsedCommand_DEPRECATED implements IParsedCommand { method constructor (line 45) | constructor(command: string) { method toString (line 49) | toString(): string { method getPipeSegments (line 53) | getPipeSegments(): string[] { method withoutOutputRedirections (line 80) | withoutOutputRedirections(): string { method getOutputRedirections (line 91) | getOutputRedirections(): OutputRedirection[] { method getTreeSitterAnalysis (line 96) | getTreeSitterAnalysis(): TreeSitterAnalysis | null { type RedirectionNode (line 101) | type RedirectionNode = OutputRedirection & { function visitNodes (line 106) | function visitNodes(node: Node, visitor: (node: Node) => void): void { function extractPipePositions (line 113) | function extractPipePositions(rootNode: Node): number[] { function extractRedirectionNodes (line 131) | function extractRedirectionNodes(rootNode: Node): RedirectionNode[] { class TreeSitterParsedCommand (line 151) | class TreeSitterParsedCommand implements IParsedCommand { method constructor (line 164) | constructor( method toString (line 177) | toString(): string { method getPipeSegments (line 181) | getPipeSegments(): string[] { method withoutOutputRedirections (line 211) | withoutOutputRedirections(): string { method getOutputRedirections (line 228) | getOutputRedirections(): OutputRedirection[] { method getTreeSitterAnalysis (line 235) | getTreeSitterAnalysis(): TreeSitterAnalysis { function buildParsedCommandFromRoot (line 255) | function buildParsedCommandFromRoot( function doParse (line 270) | async function doParse(command: string): Promise { method parse (line 310) | parse(command: string): Promise { FILE: restored-src/src/utils/bash/ShellSnapshot.ts constant LITERAL_BACKSLASH (line 23) | const LITERAL_BACKSLASH = '\\' constant SNAPSHOT_CREATION_TIMEOUT (line 24) | const SNAPSHOT_CREATION_TIMEOUT = 10000 // 10 seconds function createArgv0ShellFunction (line 35) | function createArgv0ShellFunction( function createRipgrepShellIntegration (line 65) | function createRipgrepShellIntegration(): { constant VCS_DIRECTORIES_TO_EXCLUDE (line 98) | const VCS_DIRECTORIES_TO_EXCLUDE = [ function createFindGrepShellIntegration (line 153) | function createFindGrepShellIntegration(): string | null { function getConfigFile (line 181) | function getConfigFile(shellPath: string): string { function getUserSnapshotContent (line 197) | function getUserSnapshotContent(configFile: string): string { function getClaudeCodeSnapshotContent (line 269) | async function getClaudeCodeSnapshotContent(): Promise { function getSnapshotScript (line 345) | async function getSnapshotScript( FILE: restored-src/src/utils/bash/ast.ts type Redirect (line 25) | type Redirect = { type SimpleCommand (line 31) | type SimpleCommand = { type ParseForSecurityResult (line 42) | type ParseForSecurityResult = constant STRUCTURAL_TYPES (line 54) | const STRUCTURAL_TYPES = new Set([ constant SEPARATOR_TYPES (line 65) | const SEPARATOR_TYPES = new Set(['&&', '||', '|', ';', '&', '|&', '\n']) constant CMDSUB_PLACEHOLDER (line 74) | const CMDSUB_PLACEHOLDER = '__CMDSUB_OUTPUT__' constant VAR_PLACEHOLDER (line 82) | const VAR_PLACEHOLDER = '__TRACKED_VAR__' function containsAnyPlaceholder (line 94) | function containsAnyPlaceholder(value: string): boolean { constant BARE_VAR_UNSAFE_RE (line 110) | const BARE_VAR_UNSAFE_RE = /[ \t\n*?[]/ constant STDBUF_SHORT_SEP_RE (line 113) | const STDBUF_SHORT_SEP_RE = /^-[ioe]$/ constant STDBUF_SHORT_FUSED_RE (line 114) | const STDBUF_SHORT_FUSED_RE = /^-[ioe]./ constant STDBUF_LONG_RE (line 115) | const STDBUF_LONG_RE = /^--(input|output|error)=/ constant SAFE_ENV_VARS (line 125) | const SAFE_ENV_VARS = new Set([ constant SPECIAL_VAR_NAMES (line 167) | const SPECIAL_VAR_NAMES = new Set([ constant DANGEROUS_TYPES (line 186) | const DANGEROUS_TYPES = new Set([ constant DANGEROUS_TYPE_IDS (line 212) | const DANGEROUS_TYPE_IDS = [...DANGEROUS_TYPES] function nodeTypeId (line 213) | function nodeTypeId(nodeType: string | undefined): number { constant REDIRECT_OPS (line 224) | const REDIRECT_OPS: Record = { constant BRACE_EXPANSION_RE (line 245) | const BRACE_EXPANSION_RE = /\{[^{}\s]*(,|\.\.)[^{}\s]*\}/ constant CONTROL_CHAR_RE (line 254) | const CONTROL_CHAR_RE = /[\x00-\x08\x0B-\x1F\x7F]/ constant UNICODE_WHITESPACE_RE (line 262) | const UNICODE_WHITESPACE_RE = constant BACKSLASH_WHITESPACE_RE (line 279) | const BACKSLASH_WHITESPACE_RE = /\\[ \t]|[^ \t\n\\]\\\n/ constant ZSH_TILDE_BRACKET_RE (line 287) | const ZSH_TILDE_BRACKET_RE = /~\[/ constant ZSH_EQUALS_EXPANSION_RE (line 297) | const ZSH_EQUALS_EXPANSION_RE = /(?:^|[\s;&|])=[a-zA-Z_]/ constant BRACE_WITH_QUOTE_RE (line 314) | const BRACE_WITH_QUOTE_RE = /\{[^}]*['"]/ function maskBracesInQuotedContexts (line 331) | function maskBracesInQuotedContexts(cmd: string): string { constant DOLLAR (line 373) | const DOLLAR = String.fromCharCode(0x24) function parseForSecurity (line 381) | async function parseForSecurity( function parseForSecurityFromAst (line 400) | function parseForSecurityFromAst( function walkProgram (line 462) | function walkProgram(root: Node): ParseForSecurityResult { function collectCommands (line 482) | function collectCommands( function walkTestExpr (line 962) | function walkTestExpr( function walkRedirectedStatement (line 1017) | function walkRedirectedStatement( function walkFileRedirect (line 1071) | function walkFileRedirect( function walkHeredocRedirect (line 1143) | function walkHeredocRedirect(node: Node): ParseForSecurityResult | null { function walkHerestringRedirect (line 1211) | function walkHerestringRedirect( function walkCommand (line 1237) | function walkCommand( function collectCommandSubstitution (line 1374) | function collectCommandSubstitution( function walkArgument (line 1399) | function walkArgument( function walkString (line 1508) | function walkString( constant ARITH_LEAF_RE (line 1659) | const ARITH_LEAF_RE = function walkArithmetic (line 1675) | function walkArithmetic(node: Node): ParseForSecurityResult | null { function extractSafeCatHeredoc (line 1721) | function extractSafeCatHeredoc(subNode: Node): string | 'DANGEROUS' | nu... function walkVariableAssignment (line 1777) | function walkVariableAssignment( function resolveSimpleExpansion (line 1937) | function resolveSimpleExpansion( function applyVarToScope (line 2017) | function applyVarToScope( function stripRawString (line 2029) | function stripRawString(text: string): string { function tooComplex (line 2033) | function tooComplex(node: Node): ParseForSecurityResult { constant ZSH_DANGEROUS_BUILTINS (line 2060) | const ZSH_DANGEROUS_BUILTINS = new Set([ constant EVAL_LIKE_BUILTINS (line 2086) | const EVAL_LIKE_BUILTINS = new Set([ constant SUBSCRIPT_EVAL_FLAGS (line 2143) | const SUBSCRIPT_EVAL_FLAGS: Record> = { constant TEST_ARITH_CMP_OPS (line 2169) | const TEST_ARITH_CMP_OPS = new Set(['-eq', '-ne', '-lt', '-le', '-gt', '... constant BARE_SUBSCRIPT_NAME_BUILTINS (line 2182) | const BARE_SUBSCRIPT_NAME_BUILTINS = new Set(['read', 'unset']) constant READ_DATA_FLAGS (line 2189) | const READ_DATA_FLAGS = new Set(['-p', '-d', '-n', '-N', '-t', '-u', '-i']) constant PROC_ENVIRON_RE (line 2197) | const PROC_ENVIRON_RE = /\/proc\/.*\/environ/ constant NEWLINE_HASH_RE (line 2204) | const NEWLINE_HASH_RE = /\n[ \t]*#/ type SemanticCheckResult (line 2206) | type SemanticCheckResult = { ok: true } | { ok: false; reason: string } function checkSemantics (line 2213) | function checkSemantics(commands: SimpleCommand[]): SemanticCheckResult { FILE: restored-src/src/utils/bash/bashParser.ts type TsNode (line 12) | type TsNode = { type ParserModule (line 20) | type ParserModule = { constant PARSE_TIMEOUT_MS (line 29) | const PARSE_TIMEOUT_MS = 50 constant MAX_NODES (line 32) | const MAX_NODES = 50_000 constant MODULE (line 34) | const MODULE: ParserModule = { parse: parseSource } constant READY (line 36) | const READY = Promise.resolve() function ensureParserInitialized (line 39) | function ensureParserInitialized(): Promise { function getParserModule (line 44) | function getParserModule(): ParserModule | null { type TokenType (line 50) | type TokenType = type Token (line 68) | type Token = { constant SPECIAL_VARS (line 77) | const SPECIAL_VARS = new Set(['?', '$', '@', '*', '#', '-', '!', '_']) constant DECL_KEYWORDS (line 79) | const DECL_KEYWORDS = new Set([ constant SHELL_KEYWORDS (line 87) | const SHELL_KEYWORDS = new Set([ type Lexer (line 110) | type Lexer = { type HeredocPending (line 123) | type HeredocPending = { function makeLexer (line 134) | function makeLexer(src: string): Lexer { function advance (line 146) | function advance(L: Lexer): void { function peek (line 162) | function peek(L: Lexer, off = 0): string { function byteAt (line 166) | function byteAt(L: Lexer, charIdx: number): number { function isWordChar (line 196) | function isWordChar(c: string): boolean { function isWordStart (line 222) | function isWordStart(c: string): boolean { function isIdentStart (line 226) | function isIdentStart(c: string): boolean { function isIdentChar (line 230) | function isIdentChar(c: string): boolean { function isDigit (line 234) | function isDigit(c: string): boolean { function isHexDigit (line 238) | function isHexDigit(c: string): boolean { function isBaseDigit (line 242) | function isBaseDigit(c: string): boolean { function isHeredocDelimChar (line 252) | function isHeredocDelimChar(c: string): boolean { function skipBlanks (line 272) | function skipBlanks(L: Lexer): void { function nextToken (line 302) | function nextToken(L: Lexer, ctx: 'cmd' | 'arg' = 'arg'): Token { type ParseState (line 595) | type ParseState = { function parseSource (line 610) | function parseSource(source: string, timeoutMs?: number): TsNode | null { function byteLengthUtf8 (line 633) | function byteLengthUtf8(s: string): number { function checkBudget (line 647) | function checkBudget(P: ParseState): void { function mk (line 660) | function mk( function sliceBytes (line 677) | function sliceBytes(P: ParseState, startByte: number, endByte: number): ... function leaf (line 702) | function leaf(P: ParseState, type: string, tok: Token): TsNode { function parseProgram (line 706) | function parseProgram(P: ParseState): TsNode { type LexSave (line 755) | type LexSave = number function saveLex (line 756) | function saveLex(L: Lexer): LexSave { function restoreLex (line 759) | function restoreLex(L: Lexer, s: LexSave): void { function parseStatements (line 769) | function parseStatements(P: ParseState, terminator: string | null): TsNo... function parseAndOr (line 879) | function parseAndOr(P: ParseState): TsNode | null { function skipNewlines (line 921) | function skipNewlines(P: ParseState): void { function parsePipeline (line 938) | function parsePipeline(P: ParseState): TsNode | null { function parseCommand (line 995) | function parseCommand(P: ParseState): TsNode | null { function parseSimpleCommand (line 1141) | function parseSimpleCommand(P: ParseState): TsNode | null { function maybeRedirect (line 1406) | function maybeRedirect( function tryParseAssignment (line 1431) | function tryParseAssignment(P: ParseState): TsNode | null { function parseSubscriptIndexInline (line 1527) | function parseSubscriptIndexInline(P: ParseState): TsNode | null { function parseSubscriptIndex (line 1562) | function parseSubscriptIndex( function isRedirectLiteralStart (line 1588) | function isRedirectLiteralStart(P: ParseState): boolean { function tryParseRedirect (line 1623) | function tryParseRedirect(P: ParseState, greedy = false): TsNode | null { function parseProcessSub (line 1861) | function parseProcessSub(P: ParseState): TsNode | null { function scanHeredocBodies (line 1885) | function scanHeredocBodies(P: ParseState): void { function parseHeredocBodyContent (line 1929) | function parseHeredocBodyContent( function restoreLexToByte (line 1989) | function restoreLexToByte(P: ParseState, targetByte: number): void { function parseWord (line 2008) | function parseWord(P: ParseState, _ctx: 'cmd' | 'arg'): TsNode | null { function parseBareWord (line 2163) | function parseBareWord(P: ParseState): TsNode | null { function tryParseBraceExpr (line 2215) | function tryParseBraceExpr(P: ParseState): TsNode | null { function tryParseBraceLikeCat (line 2268) | function tryParseBraceLikeCat(P: ParseState): TsNode[] | null { function parseDoubleQuoted (line 2339) | function parseDoubleQuoted(P: ParseState): TsNode { function parseDollarLike (line 2429) | function parseDollarLike(P: ParseState): TsNode | null { function parseExpansionBody (line 2555) | function parseExpansionBody(P: ParseState): TsNode[] { function parseExpansionRest (line 2807) | function parseExpansionRest( function parseExpansionRegexSegmented (line 3036) | function parseExpansionRegexSegmented(P: ParseState): TsNode[] { function parseBacktick (line 3101) | function parseBacktick(P: ParseState): TsNode | null { function parseIf (line 3152) | function parseIf(P: ParseState, ifTok: Token): TsNode { function parseWhile (line 3189) | function parseWhile(P: ParseState, kwTok: Token): TsNode { function parseFor (line 3200) | function parseFor(P: ParseState, forTok: Token): TsNode { function parseDoGroup (line 3306) | function parseDoGroup(P: ParseState): TsNode | null { function parseCase (line 3322) | function parseCase(P: ParseState, caseTok: Token): TsNode { function parseCaseItem (line 3350) | function parseCaseItem(P: ParseState): TsNode | null { function parseCasePattern (line 3441) | function parseCasePattern(P: ParseState): TsNode[] { function parseCasePatternSegmented (line 3525) | function parseCasePatternSegmented(P: ParseState): TsNode[] { function parseFunction (line 3565) | function parseFunction(P: ParseState, fnTok: Token): TsNode { function parseDeclaration (line 3598) | function parseDeclaration(P: ParseState, kwTok: Token): TsNode { function parseUnset (line 3650) | function parseUnset(P: ParseState, kwTok: Token): TsNode { function consumeKeyword (line 3688) | function consumeKeyword(P: ParseState, name: string, kids: TsNode[]): vo... function parseTestExpr (line 3701) | function parseTestExpr(P: ParseState, closer: string): TsNode | null { function parseTestOr (line 3705) | function parseTestOr(P: ParseState, closer: string): TsNode | null { function parseTestAnd (line 3733) | function parseTestAnd(P: ParseState, closer: string): TsNode | null { function parseTestUnary (line 3757) | function parseTestUnary(P: ParseState, closer: string): TsNode | null { function parseTestNegatablePrimary (line 3791) | function parseTestNegatablePrimary( function parseTestBinary (line 3821) | function parseTestBinary(P: ParseState, closer: string): TsNode | null { function parseTestRegexRhs (line 3937) | function parseTestRegexRhs(P: ParseState): TsNode | null { function parseTestExtglobRhs (line 3982) | function parseTestExtglobRhs(P: ParseState): TsNode[] { function parseTestPrimary (line 4063) | function parseTestPrimary(P: ParseState, closer: string): TsNode | null { type ArithMode (line 4077) | type ArithMode = 'var' | 'word' | 'assign' constant ARITH_PREC (line 4080) | const ARITH_PREC: Record = { constant ARITH_RIGHT_ASSOC (line 4114) | const ARITH_RIGHT_ASSOC = new Set([ function parseArithExpr (line 4129) | function parseArithExpr( function parseArithCommaList (line 4138) | function parseArithCommaList( function parseArithTernary (line 4157) | function parseArithTernary( function scanArithOp (line 4191) | function scanArithOp(P: ParseState): [string, number] | null { function parseArithBinary (line 4232) | function parseArithBinary( function parseArithUnary (line 4264) | function parseArithUnary( function parseArithPostfix (line 4302) | function parseArithPostfix( function parseArithPrimary (line 4321) | function parseArithPrimary( function isArithStop (line 4426) | function isArithStop(P: ParseState, stop: string): boolean { FILE: restored-src/src/utils/bash/bashPipeCommand.ts function rearrangePipeCommand (line 14) | function rearrangePipeCommand(command: string): string { function findFirstPipeOperator (line 105) | function findFirstPipeOperator(parsed: ParseEntry[]): number { function buildCommandParts (line 119) | function buildCommandParts( function isEnvironmentVariableAssignment (line 219) | function isEnvironmentVariableAssignment(str: string): boolean { function isCommandSeparator (line 227) | function isCommandSeparator(op: string): boolean { function isOperator (line 234) | function isOperator(entry: unknown, op?: string): entry is { op: string } { function containsControlStructure (line 247) | function containsControlStructure(command: string): boolean { function quoteWithEvalStdinRedirect (line 262) | function quoteWithEvalStdinRedirect(command: string): string { function singleQuoteForEval (line 273) | function singleQuoteForEval(s: string): string { function joinContinuationLines (line 283) | function joinContinuationLines(command: string): string { FILE: restored-src/src/utils/bash/commands.ts function generatePlaceholders (line 20) | function generatePlaceholders(): { constant ALLOWED_FILE_DESCRIPTORS (line 40) | const ALLOWED_FILE_DESCRIPTORS = new Set(['0', '1', '2']) function isStaticRedirectTarget (line 47) | function isStaticRedirectTarget(target: string): boolean { function splitCommandWithOperators (line 85) | function splitCommandWithOperators(command: string): string[] { function filterControlOperators (line 251) | function filterControlOperators( function splitCommand_DEPRECATED (line 265) | function splitCommand_DEPRECATED(command: string): string[] { function isHelpCommand (line 388) | function isHelpCommand(command: string): boolean { constant BASH_POLICY_SPEC (line 438) | const BASH_POLICY_SPEC = ` function clearCommandPrefixCaches (line 518) | function clearCommandPrefixCaches(): void { constant COMMAND_LIST_SEPARATORS (line 523) | const COMMAND_LIST_SEPARATORS = new Set([ constant ALL_SUPPORTED_CONTROL_OPERATORS (line 531) | const ALL_SUPPORTED_CONTROL_OPERATORS = new Set([ function isCommandList (line 539) | function isCommandList(command: string): boolean { function isUnsafeCompoundCommand_DEPRECATED (line 609) | function isUnsafeCompoundCommand_DEPRECATED(command: string): boolean { function extractOutputRedirections (line 634) | function extractOutputRedirections(cmd: string): { function isOperator (line 792) | function isOperator(part: ParseEntry | undefined, op: string): boolean { function isSimpleTarget (line 798) | function isSimpleTarget(target: ParseEntry | undefined): target is string { function hasDangerousExpansion (line 830) | function hasDangerousExpansion(target: ParseEntry | undefined): boolean { function handleRedirection (line 860) | function handleRedirection( function handleFileDescriptorRedirection (line 1093) | function handleFileDescriptorRedirection( function detectCommandSubstitution (line 1143) | function detectCommandSubstitution( function needsQuoting (line 1171) | function needsQuoting(str: string): boolean { function addToken (line 1190) | function addToken(result: string, token: string, noSpace = false): string { function reconstructCommand (line 1195) | function reconstructCommand(kept: ParseEntry[], originalCmd: string): st... FILE: restored-src/src/utils/bash/heredoc.ts constant HEREDOC_PLACEHOLDER_PREFIX (line 29) | const HEREDOC_PLACEHOLDER_PREFIX = '__HEREDOC_' constant HEREDOC_PLACEHOLDER_SUFFIX (line 30) | const HEREDOC_PLACEHOLDER_SUFFIX = '__' function generatePlaceholderSalt (line 36) | function generatePlaceholderSalt(): string { constant HEREDOC_START_PATTERN (line 69) | const HEREDOC_START_PATTERN = type HeredocInfo (line 73) | type HeredocInfo = { type HeredocExtractionResult (line 88) | type HeredocExtractionResult = { function extractHeredocs (line 113) | function extractHeredocs( function restoreHeredocsInString (line 693) | function restoreHeredocsInString( function restoreHeredocs (line 711) | function restoreHeredocs( function containsHeredoc (line 731) | function containsHeredoc(command: string): boolean { FILE: restored-src/src/utils/bash/parser.ts type Node (line 10) | type Node = TsNode type ParsedCommandData (line 12) | interface ParsedCommandData { constant MAX_COMMAND_LENGTH (line 19) | const MAX_COMMAND_LENGTH = 10000 constant DECLARATION_COMMANDS (line 20) | const DECLARATION_COMMANDS = new Set([ constant ARGUMENT_TYPES (line 29) | const ARGUMENT_TYPES = new Set(['word', 'string', 'raw_string', 'number']) constant SUBSTITUTION_TYPES (line 30) | const SUBSTITUTION_TYPES = new Set([ constant COMMAND_TYPES (line 34) | const COMMAND_TYPES = new Set(['command', 'declaration_command']) function logLoadOnce (line 37) | function logLoadOnce(success: boolean): void { function ensureInitialized (line 50) | async function ensureInitialized(): Promise { function parseCommand (line 56) | async function parseCommand( constant PARSE_ABORTED (line 93) | const PARSE_ABORTED = Symbol('parse-aborted') function parseCommandRaw (line 104) | async function parseCommandRaw( function findCommandNode (line 138) | function findCommandNode(node: Node, parent: Node | null): Node | null { function extractEnvVars (line 175) | function extractEnvVars(commandNode: Node | null): string[] { function extractCommandArguments (line 189) | function extractCommandArguments(commandNode: Node): string[] { function stripQuotes (line 224) | function stripQuotes(text: string): string { FILE: restored-src/src/utils/bash/prefix.ts constant NUMERIC (line 6) | const NUMERIC = /^\d+$/ constant ENV_VAR (line 7) | const ENV_VAR = /^[A-Za-z_][A-Za-z0-9_]*=/ constant WRAPPER_COMMANDS (line 10) | const WRAPPER_COMMANDS = new Set([ function isKnownSubcommand (line 18) | function isKnownSubcommand( function getCommandPrefixStatic (line 28) | async function getCommandPrefixStatic( function handleWrapper (line 72) | async function handleWrapper( function getCompoundCommandPrefixesStatic (line 135) | async function getCompoundCommandPrefixesStatic( function longestCommonPrefix (line 182) | function longestCommonPrefix(strings: string[]): string { FILE: restored-src/src/utils/bash/registry.ts type CommandSpec (line 4) | type CommandSpec = { type Argument (line 12) | type Argument = { type Option (line 23) | type Option = { function loadFigSpec (line 30) | async function loadFigSpec( FILE: restored-src/src/utils/bash/shellCompletion.ts constant MAX_SHELL_COMPLETIONS (line 12) | const MAX_SHELL_COMPLETIONS = 15 constant SHELL_COMPLETION_TIMEOUT_MS (line 13) | const SHELL_COMPLETION_TIMEOUT_MS = 1000 constant COMMAND_OPERATORS (line 14) | const COMMAND_OPERATORS = ['|', '||', '&&', ';'] as const type ShellCompletionType (line 16) | type ShellCompletionType = 'command' | 'variable' | 'file' type InputContext (line 18) | type InputContext = { function isCommandOperator (line 26) | function isCommandOperator(token: ParseEntry): boolean { function getCompletionTypeFromPrefix (line 38) | function getCompletionTypeFromPrefix(prefix: string): ShellCompletionType { function findLastStringToken (line 55) | function findLastStringToken( function isNewCommandContext (line 66) | function isNewCommandContext( function parseInputContext (line 80) | function parseInputContext(input: string, cursorOffset: number): InputCo... function getBashCompletionCommand (line 142) | function getBashCompletionCommand( function getZshCompletionCommand (line 163) | function getZshCompletionCommand( function getCompletionsForShell (line 184) | async function getCompletionsForShell( function getShellCompletions (line 221) | async function getShellCompletions( FILE: restored-src/src/utils/bash/shellPrefix.ts function formatShellPrefixCommand (line 15) | function formatShellPrefixCommand( FILE: restored-src/src/utils/bash/shellQuote.ts type ShellParseResult (line 16) | type ShellParseResult = type ShellQuoteResult (line 20) | type ShellQuoteResult = function tryParseShellCommand (line 24) | function tryParseShellCommand( function tryQuoteShellArgs (line 47) | function tryQuoteShellArgs(args: unknown[]): ShellQuoteResult { function hasMalformedTokens (line 117) | function hasMalformedTokens( function hasShellQuoteSingleQuoteBug (line 190) | function hasShellQuoteSingleQuoteBug(command: string): boolean { function quote (line 267) | function quote(args: ReadonlyArray): string { FILE: restored-src/src/utils/bash/shellQuoting.ts function containsHeredoc (line 7) | function containsHeredoc(command: string): boolean { function containsMultilineString (line 27) | function containsMultilineString(command: string): boolean { function quoteShellCommand (line 46) | function quoteShellCommand( function hasStdinRedirect (line 81) | function hasStdinRedirect(command: string): boolean { function shouldAddStdinRedirect (line 93) | function shouldAddStdinRedirect(command: string): boolean { constant NUL_REDIRECT_REGEX (line 124) | const NUL_REDIRECT_REGEX = /(\d?&?>+\s*)[Nn][Uu][Ll](?=\s|$|[|&;)\n])/g function rewriteWindowsNullRedirect (line 126) | function rewriteWindowsNullRedirect(command: string): string { FILE: restored-src/src/utils/bash/treeSitterAnalysis.ts type TreeSitterNode (line 12) | type TreeSitterNode = { type QuoteContext (line 21) | type QuoteContext = { type CompoundStructure (line 30) | type CompoundStructure = { type DangerousPatterns (line 45) | type DangerousPatterns = { type TreeSitterAnalysis (line 58) | type TreeSitterAnalysis = { type QuoteSpans (line 66) | type QuoteSpans = { function collectQuoteSpans (line 88) | function collectQuoteSpans( function buildPositionSet (line 142) | function buildPositionSet(spans: Array<[number, number]>): Set { function dropContainedSpans (line 159) | function dropContainedSpans): s... function replaceSpansKeepQuotes (line 194) | function replaceSpansKeepQuotes( function extractQuoteContext (line 224) | function extractQuoteContext( function extractCompoundStructure (line 296) | function extractCompoundStructure( function hasActualOperatorNodes (line 421) | function hasActualOperatorNodes(rootNode: unknown): boolean { function extractDangerousPatterns (line 448) | function extractDangerousPatterns(rootNode: unknown): DangerousPatterns { function analyzeCommand (line 496) | function analyzeCommand( FILE: restored-src/src/utils/betas.ts constant ALLOWED_SDK_BETAS (line 37) | const ALLOWED_SDK_BETAS = [CONTEXT_1M_BETA_HEADER] function partitionBetasByAllowlist (line 43) | function partitionBetasByAllowlist(betas: string[]): { function filterAllowedSdkBetas (line 64) | function filterAllowedSdkBetas( function modelSupportsISP (line 92) | function modelSupportsISP(model: string): boolean { function vertexModelSupportsWebSearch (line 114) | function vertexModelSupportsWebSearch(model: string): boolean { function modelSupportsContextManagement (line 125) | function modelSupportsContextManagement(model: string): boolean { function modelSupportsStructuredOutputs (line 142) | function modelSupportsStructuredOutputs(model: string): boolean { function modelSupportsAutoMode (line 160) | function modelSupportsAutoMode(model: string): boolean { function getToolSearchBetaHeader (line 202) | function getToolSearchBetaHeader(): string { function shouldIncludeFirstPartyOnlyBetas (line 215) | function shouldIncludeFirstPartyOnlyBetas(): boolean { function shouldUseGlobalCacheScope (line 227) | function shouldUseGlobalCacheScope(): boolean { function getMergedBetas (line 397) | function getMergedBetas( function clearBetasCaches (line 430) | function clearBetasCaches(): void { FILE: restored-src/src/utils/billing.ts function hasConsoleBillingAccess (line 10) | function hasConsoleBillingAccess(): boolean { function setMockBillingAccessOverride (line 49) | function setMockBillingAccessOverride(value: boolean | null): void { function hasClaudeAiBillingAccess (line 53) | function hasClaudeAiBillingAccess(): boolean { FILE: restored-src/src/utils/binaryCheck.ts function isBinaryInstalled (line 14) | async function isBinaryInstalled(command: string): Promise { function clearBinaryCache (line 51) | function clearBinaryCache(): void { FILE: restored-src/src/utils/browser.ts function validateUrl (line 3) | function validateUrl(url: string): void { function openPath (line 24) | async function openPath(path: string): Promise { function openBrowser (line 39) | async function openBrowser(url: string): Promise { FILE: restored-src/src/utils/bufferedWriter.ts type WriteFn (line 1) | type WriteFn = (content: string) => void type BufferedWriter (line 3) | type BufferedWriter = { function createBufferedWriter (line 9) | function createBufferedWriter({ FILE: restored-src/src/utils/bundledMode.ts function isRunningWithBun (line 7) | function isRunningWithBun(): boolean { function isInBundledMode (line 16) | function isInBundledMode(): boolean { FILE: restored-src/src/utils/caCerts.ts function clearCACertsCache (line 112) | function clearCACertsCache(): void { FILE: restored-src/src/utils/caCertsConfig.ts function applyExtraCACertsFromConfig (line 34) | function applyExtraCACertsFromConfig(): void { function getExtraCertsPathFromConfig (line 59) | function getExtraCertsPathFromConfig(): string | undefined { FILE: restored-src/src/utils/cachePaths.ts constant MAX_SANITIZED_LENGTH (line 12) | const MAX_SANITIZED_LENGTH = 200 function sanitizePath (line 13) | function sanitizePath(name: string): string { function getProjectDir (line 21) | function getProjectDir(cwd: string): string { constant CACHE_PATHS (line 25) | const CACHE_PATHS = { FILE: restored-src/src/utils/classifierApprovals.ts type ClassifierApproval (line 9) | type ClassifierApproval = { constant CLASSIFIER_APPROVALS (line 15) | const CLASSIFIER_APPROVALS = new Map() constant CLASSIFIER_CHECKING (line 16) | const CLASSIFIER_CHECKING = new Set() function setClassifierApproval (line 19) | function setClassifierApproval( function getClassifierApproval (line 32) | function getClassifierApproval(toolUseID: string): string | undefined { function setYoloClassifierApproval (line 41) | function setYoloClassifierApproval( function getYoloClassifierApproval (line 51) | function getYoloClassifierApproval( function setClassifierChecking (line 62) | function setClassifierChecking(toolUseID: string): void { function clearClassifierChecking (line 68) | function clearClassifierChecking(toolUseID: string): void { function isClassifierChecking (line 76) | function isClassifierChecking(toolUseID: string): boolean { function deleteClassifierApproval (line 80) | function deleteClassifierApproval(toolUseID: string): void { function clearClassifierApprovals (line 84) | function clearClassifierApprovals(): void { FILE: restored-src/src/utils/classifierApprovalsHook.ts function useIsClassifierChecking (line 13) | function useIsClassifierChecking(toolUseID: string): boolean { FILE: restored-src/src/utils/claudeCodeHints.ts type ClaudeCodeHintType (line 21) | type ClaudeCodeHintType = 'plugin' type ClaudeCodeHint (line 23) | type ClaudeCodeHint = { constant SUPPORTED_VERSIONS (line 42) | const SUPPORTED_VERSIONS = new Set([1]) constant SUPPORTED_TYPES (line 45) | const SUPPORTED_TYPES = new Set(['plugin']) constant HINT_TAG_RE (line 53) | const HINT_TAG_RE = /^[ \t]*]*?)\s*\/>[ \t]*$/gm constant ATTR_RE (line 61) | const ATTR_RE = /(\w+)=(?:"([^"]*)"|([^\s/>]+))/g function extractClaudeCodeHints (line 72) | function extractClaudeCodeHints( function parseAttrs (line 122) | function parseAttrs(tagBody: string): Record { function firstCommandToken (line 130) | function firstCommandToken(command: string): string { function setPendingHint (line 155) | function setPendingHint(hint: ClaudeCodeHint): void { function clearPendingHint (line 162) | function clearPendingHint(): void { function markShownThisSession (line 170) | function markShownThisSession(): void { function getPendingHintSnapshot (line 176) | function getPendingHintSnapshot(): ClaudeCodeHint | null { function hasShownHintThisSession (line 180) | function hasShownHintThisSession(): boolean { function _resetClaudeCodeHintStore (line 185) | function _resetClaudeCodeHintStore(): void { FILE: restored-src/src/utils/claudeDesktop.ts function getClaudeDesktopConfigPath (line 13) | async function getClaudeDesktopConfigPath(): Promise { function readClaudeDesktopMcpServers (line 98) | async function readClaudeDesktopMcpServers(): Promise< FILE: restored-src/src/utils/claudeInChrome/chromeNativeHost.ts constant VERSION (line 26) | const VERSION = '1.0.0' constant MAX_MESSAGE_SIZE (line 27) | const MAX_MESSAGE_SIZE = 1024 * 1024 // 1MB - Max message size that can ... constant LOG_FILE (line 29) | const LOG_FILE = function log (line 34) | function log(message: string, ...args: unknown[]): void { function sendChromeMessage (line 50) | function sendChromeMessage(message: string): void { function runChromeNativeHost (line 59) | async function runChromeNativeHost(): Promise { type ToolRequest (line 92) | type ToolRequest = { type McpClient (line 97) | type McpClient = { class ChromeNativeHost (line 103) | class ChromeNativeHost { method start (line 110) | async start(): Promise { method stop (line 193) | async stop(): Promise { method isRunning (line 237) | async isRunning(): Promise { method getClientCount (line 241) | async getClientCount(): Promise { method handleMessage (line 245) | async handleMessage(messageJson: string): Promise { method handleMcpClient (line 354) | private handleMcpClient(socket: Socket): void { class ChromeMessageReader (line 440) | class ChromeMessageReader { method constructor (line 445) | constructor() { method tryProcessMessage (line 468) | private tryProcessMessage(): void { method read (line 501) | async read(): Promise { FILE: restored-src/src/utils/claudeInChrome/common.ts constant CLAUDE_IN_CHROME_MCP_SERVER_NAME (line 12) | const CLAUDE_IN_CHROME_MCP_SERVER_NAME = 'claude-in-chrome' type BrowserConfig (line 20) | type BrowserConfig = { constant CHROMIUM_BROWSERS (line 39) | const CHROMIUM_BROWSERS: Record = { constant BROWSER_DETECTION_ORDER (line 219) | const BROWSER_DETECTION_ORDER: ChromiumBrowser[] = [ function getAllBrowserDataPaths (line 232) | function getAllBrowserDataPaths(): { function getAllNativeMessagingHostsDirs (line 280) | function getAllNativeMessagingHostsDirs(): { function getAllWindowsRegistryKeys (line 322) | function getAllWindowsRegistryKeys(): { function detectAvailableBrowser (line 345) | async function detectAvailableBrowser(): Promise { function isClaudeInChromeMCPServer (line 411) | function isClaudeInChromeMCPServer(name: string): boolean { constant MAX_TRACKED_TABS (line 415) | const MAX_TRACKED_TABS = 200 function trackClaudeInChromeTabId (line 418) | function trackClaudeInChromeTabId(tabId: number): void { function isTrackedClaudeInChromeTabId (line 425) | function isTrackedClaudeInChromeTabId(tabId: number): boolean { function openInChrome (line 429) | async function openInChrome(url: string): Promise { function getSocketDir (line 474) | function getSocketDir(): string { function getSecureSocketPath (line 481) | function getSecureSocketPath(): string { function getAllSocketPaths (line 492) | function getAllSocketPaths(): string[] { function getSocketName (line 529) | function getSocketName(): string { function getUsername (line 534) | function getUsername(): string { FILE: restored-src/src/utils/claudeInChrome/mcpServer.ts constant EXTENSION_DOWNLOAD_URL (line 24) | const EXTENSION_DOWNLOAD_URL = 'https://claude.ai/chrome' constant BUG_REPORT_URL (line 25) | const BUG_REPORT_URL = constant SAFE_BRIDGE_STRING_KEYS (line 30) | const SAFE_BRIDGE_STRING_KEYS = new Set([ constant PERMISSION_MODES (line 36) | const PERMISSION_MODES: readonly PermissionMode[] = [ function isPermissionMode (line 42) | function isPermissionMode(raw: string): raw is PermissionMode { function getChromeBridgeUrl (line 51) | function getChromeBridgeUrl(): string | undefined { function isLocalBridge (line 74) | function isLocalBridge(): boolean { function createChromeContext (line 85) | function createChromeContext( function runClaudeInChromeMcpServer (line 248) | async function runClaudeInChromeMcpServer(): Promise { class DebugLogger (line 277) | class DebugLogger implements Logger { method silly (line 278) | silly(message: string, ...args: unknown[]): void { method debug (line 281) | debug(message: string, ...args: unknown[]): void { method info (line 284) | info(message: string, ...args: unknown[]): void { method warn (line 287) | warn(message: string, ...args: unknown[]): void { method error (line 290) | error(message: string, ...args: unknown[]): void { FILE: restored-src/src/utils/claudeInChrome/prompt.ts constant BASE_CHROME_PROMPT (line 1) | const BASE_CHROME_PROMPT = `# Claude in Chrome browser automation constant CHROME_TOOL_SEARCH_INSTRUCTIONS (line 53) | const CHROME_TOOL_SEARCH_INSTRUCTIONS = `**IMPORTANT: Before using any c... function getChromeSystemPrompt (line 68) | function getChromeSystemPrompt(): string { constant CLAUDE_IN_CHROME_SKILL_HINT (line 76) | const CLAUDE_IN_CHROME_SKILL_HINT = `**Browser Automation**: Chrome brow... constant CLAUDE_IN_CHROME_SKILL_HINT_WITH_WEBBROWSER (line 83) | const CLAUDE_IN_CHROME_SKILL_HINT_WITH_WEBBROWSER = `**Browser Automatio... FILE: restored-src/src/utils/claudeInChrome/setup.ts constant CHROME_EXTENSION_RECONNECT_URL (line 34) | const CHROME_EXTENSION_RECONNECT_URL = 'https://clau.de/chrome/reconnect' constant NATIVE_HOST_IDENTIFIER (line 36) | const NATIVE_HOST_IDENTIFIER = 'com.anthropic.claude_code_browser_extens... constant NATIVE_HOST_MANIFEST_NAME (line 37) | const NATIVE_HOST_MANIFEST_NAME = `${NATIVE_HOST_IDENTIFIER}.json` function shouldEnableClaudeInChrome (line 39) | function shouldEnableClaudeInChrome(chromeFlag?: boolean): boolean { function shouldAutoEnableClaudeInChrome (line 72) | function shouldAutoEnableClaudeInChrome(): boolean { function setupClaudeInChrome (line 91) | function setupClaudeInChrome(): { function getNativeMessagingHostsDirs (line 177) | function getNativeMessagingHostsDirs(): string[] { function installChromeNativeHostManifest (line 191) | async function installChromeNativeHostManifest( function registerWindowsNativeHosts (line 271) | function registerWindowsNativeHosts(manifestPath: string): void { function createWrapperScript (line 308) | async function createWrapperScript(command: string): Promise { function isChromeExtensionInstalled_CACHED_MAY_BE_STALE (line 362) | function isChromeExtensionInstalled_CACHED_MAY_BE_STALE(): boolean { function isChromeExtensionInstalled (line 391) | async function isChromeExtensionInstalled(): Promise { FILE: restored-src/src/utils/claudeInChrome/setupPortable.ts constant CHROME_EXTENSION_URL (line 6) | const CHROME_EXTENSION_URL = 'https://claude.ai/chrome' constant PROD_EXTENSION_ID (line 9) | const PROD_EXTENSION_ID = 'fcoeoabgfenejglbffodgkkbkcdhcgfn' constant DEV_EXTENSION_ID (line 11) | const DEV_EXTENSION_ID = 'dihbgbndebgnbjfmelmegjepbnkhlgni' constant ANT_EXTENSION_ID (line 12) | const ANT_EXTENSION_ID = 'dngcpimnedloihjnnfngkgjoidhnaolf' function getExtensionIds (line 14) | function getExtensionIds(): string[] { type ChromiumBrowser (line 21) | type ChromiumBrowser = type BrowserPath (line 30) | type BrowserPath = { type Logger (line 35) | type Logger = (message: string) => void constant BROWSER_DETECTION_ORDER (line 38) | const BROWSER_DETECTION_ORDER: ChromiumBrowser[] = [ type BrowserDataConfig (line 48) | type BrowserDataConfig = { constant CHROMIUM_BROWSERS (line 55) | const CHROMIUM_BROWSERS: Record = { function getAllBrowserDataPathsPortable (line 97) | function getAllBrowserDataPathsPortable(): BrowserPath[] { function detectExtensionInstallationPortable (line 147) | async function detectExtensionInstallationPortable( function isChromeExtensionInstalledPortable (line 218) | async function isChromeExtensionInstalledPortable( function isChromeExtensionInstalled (line 230) | function isChromeExtensionInstalled(log?: Logger): Promise { FILE: restored-src/src/utils/claudeInChrome/toolRendering.tsx type ChromeToolName (line 15) | type ChromeToolName = 'javascript_tool' | 'read_page' | 'find' | 'form_i... constant CHROME_EXTENSION_FOCUS_TAB_URL_BASE (line 16) | const CHROME_EXTENSION_FOCUS_TAB_URL_BASE = 'https://clau.de/chrome/tab/'; function renderChromeToolUseMessage (line 17) | function renderChromeToolUseMessage(input: Record, tool... function renderChromeViewTabLink (line 124) | function renderChromeViewTabLink(input: unknown): React.ReactNode { function renderChromeToolResultMessage (line 149) | function renderChromeToolResultMessage(output: MCPToolResult, toolName: ... function getClaudeInChromeMCPToolOverrides (line 221) | function getClaudeInChromeMCPToolOverrides(toolName: string): { function isMCPToolResult (line 259) | function isMCPToolResult(output: string | MCPToolResult): output is MCPT... FILE: restored-src/src/utils/claudemd.ts constant MEMORY_INSTRUCTION_PROMPT (line 89) | const MEMORY_INSTRUCTION_PROMPT = constant MAX_MEMORY_CHARACTER_COUNT (line 92) | const MAX_MEMORY_CHARACTER_COUNT = 40000 constant TEXT_FILE_EXTENSIONS (line 96) | const TEXT_FILE_EXTENSIONS = new Set([ type MemoryFileInfo (line 229) | type MemoryFileInfo = { function pathInOriginalCwd (line 245) | function pathInOriginalCwd(path: string): boolean { function parseFrontmatterPaths (line 254) | function parseFrontmatterPaths(rawContent: string): { function stripHtmlComments (line 292) | function stripHtmlComments(content: string): { function stripHtmlCommentsFromTokens (line 303) | function stripHtmlCommentsFromTokens(tokens: ReturnType): { function parseMemoryFileContent (line 343) | function parseMemoryFileContent( function handleMemoryFileReadError (line 402) | function handleMemoryFileReadError(error: unknown, filePath: string): vo... function safelyReadMemoryFileAsync (line 424) | async function safelyReadMemoryFileAsync( type MarkdownToken (line 439) | type MarkdownToken = { function extractIncludePathsFromTokens (line 451) | function extractIncludePathsFromTokens( constant MAX_INCLUDE_DEPTH (line 537) | const MAX_INCLUDE_DEPTH = 5 function isClaudeMdExcluded (line 547) | function isClaudeMdExcluded(filePath: string, type: MemoryType): boolean { function resolveExcludePatterns (line 581) | function resolveExcludePatterns(patterns: string[]): string[] { function processMemoryFile (line 618) | async function processMemoryFile( function processMdRules (line 697) | async function processMdRules({ function isInstructionsMemoryType (line 1077) | function isInstructionsMemoryType( function consumeNextEagerLoadReason (line 1102) | function consumeNextEagerLoadReason(): InstructionsLoadReason | undefined { function clearMemoryFileCaches (line 1119) | function clearMemoryFileCaches(): void { function resetGetMemoryFilesCache (line 1124) | function resetGetMemoryFilesCache( function getLargeMemoryFiles (line 1132) | function getLargeMemoryFiles(files: MemoryFileInfo[]): MemoryFileInfo[] { function filterInjectedMemoryFiles (line 1142) | function filterInjectedMemoryFiles( function getManagedAndUserConditionalRules (line 1205) | async function getManagedAndUserConditionalRules( function getMemoryFilesForNestedDirectory (line 1249) | async function getMemoryFilesForNestedDirectory( function getConditionalRulesForCwdLevelDirectory (line 1329) | async function getConditionalRulesForCwdLevelDirectory( function processConditionedMdRules (line 1354) | async function processConditionedMdRules( type ExternalClaudeMdInclude (line 1399) | type ExternalClaudeMdInclude = { function getExternalClaudeMdIncludes (line 1404) | function getExternalClaudeMdIncludes( function hasExternalClaudeMdIncludes (line 1416) | function hasExternalClaudeMdIncludes(files: MemoryFileInfo[]): boolean { function shouldShowClaudeMdExternalIncludesWarning (line 1420) | async function shouldShowClaudeMdExternalIncludesWarning(): Promise { function unlinkIfOld (line 134) | async function unlinkIfOld( function tryRmdir (line 147) | async function tryRmdir(dirPath: string, fsImpl: FsOperations): Promise<... function cleanupOldSessionFiles (line 155) | async function cleanupOldSessionFiles(): Promise { function cleanupSingleDirectory (line 266) | async function cleanupSingleDirectory( function cleanupOldPlanFiles (line 300) | function cleanupOldPlanFiles(): Promise { function cleanupOldFileHistoryBackups (line 305) | async function cleanupOldFileHistoryBackups(): Promise { function cleanupOldSessionEnvDirs (line 350) | async function cleanupOldSessionEnvDirs(): Promise { function cleanupOldDebugLogs (line 396) | async function cleanupOldDebugLogs(): Promise { constant ONE_DAY_MS (line 431) | const ONE_DAY_MS = 24 * 60 * 60 * 1000 function cleanupNpmCacheForAnthropicPackages (line 438) | async function cleanupNpmCacheForAnthropicPackages(): Promise { function cleanupOldVersionsThrottled (line 543) | async function cleanupOldVersionsThrottled(): Promise { function cleanupOldMessageFilesInBackground (line 575) | async function cleanupOldMessageFilesInBackground(): Promise { FILE: restored-src/src/utils/cleanupRegistry.ts function registerCleanup (line 14) | function registerCleanup(cleanupFn: () => Promise): () => void { function runCleanupFunctions (line 23) | async function runCleanupFunctions(): Promise { FILE: restored-src/src/utils/cliArgs.ts function eagerParseCliFlag (line 13) | function eagerParseCliFlag( function extractArgsAfterDoubleDash (line 49) | function extractArgsAfterDoubleDash( FILE: restored-src/src/utils/cliHighlight.ts type CliHighlight (line 10) | type CliHighlight = { function loadCliHighlight (line 23) | async function loadCliHighlight(): Promise { function getCliHighlightPromise (line 38) | function getCliHighlightPromise(): Promise { function getLanguageName (line 49) | async function getLanguageName(file_path: string): Promise { FILE: restored-src/src/utils/codeIndexing.ts type CodeIndexingTool (line 12) | type CodeIndexingTool = constant CLI_COMMAND_MAPPING (line 47) | const CLI_COMMAND_MAPPING: Record = { constant MCP_SERVER_PATTERNS (line 73) | const MCP_SERVER_PATTERNS: Array<{ function detectCodeIndexingFromCommand (line 126) | function detectCodeIndexingFromCommand( function detectCodeIndexingFromMcpTool (line 159) | function detectCodeIndexingFromMcpTool( function detectCodeIndexingFromMcpServerName (line 196) | function detectCodeIndexingFromMcpServerName( FILE: restored-src/src/utils/collapseBackgroundBashNotifications.ts function isCompletedBackgroundBash (line 14) | function isCompletedBackgroundBash( function collapseBackgroundBashNotifications (line 41) | function collapseBackgroundBashNotifications( FILE: restored-src/src/utils/collapseHookSummaries.ts function isLabeledHookSummary (line 6) | function isLabeledHookSummary( function collapseHookSummaries (line 21) | function collapseHookSummaries( FILE: restored-src/src/utils/collapseReadSearch.ts constant SNIP_TOOL_NAME (line 37) | const SNIP_TOOL_NAME = feature('HISTORY_SNIP') type SearchOrReadResult (line 47) | type SearchOrReadResult = { function getFilePathFromToolInput (line 71) | function getFilePathFromToolInput(toolInput: unknown): string | undefined { function isMemorySearch (line 81) | function isMemorySearch(toolInput: unknown): boolean { function isMemoryWriteOrEdit (line 109) | function isMemoryWriteOrEdit(toolName: string, toolInput: unknown): bool... constant MAX_HINT_CHARS (line 118) | const MAX_HINT_CHARS = 300 function commandAsHint (line 125) | function commandAsHint(command: string): string { function getToolSearchOrReadInfo (line 143) | function getToolSearchOrReadInfo( function getSearchOrReadFromContent (line 244) | function getSearchOrReadFromContent( function isToolSearchOrRead (line 278) | function isToolSearchOrRead( function getCollapsibleToolInfo (line 290) | function getCollapsibleToolInfo( function isTextBreaker (line 331) | function isTextBreaker(msg: RenderableMessage): boolean { function isNonCollapsibleToolUse (line 345) | function isNonCollapsibleToolUse( function isPreToolHookSummary (line 370) | function isPreToolHookSummary( function shouldSkipMessage (line 384) | function shouldSkipMessage(msg: RenderableMessage): boolean { function isCollapsibleToolUse (line 406) | function isCollapsibleToolUse( function isCollapsibleToolResult (line 431) | function isCollapsibleToolResult( function getToolUseIdsFromMessage (line 452) | function getToolUseIdsFromMessage(msg: RenderableMessage): string[] { function getToolUseIdsFromCollapsedGroup (line 473) | function getToolUseIdsFromCollapsedGroup( function hasAnyToolInProgress (line 486) | function hasAnyToolInProgress( function getDisplayMessageFromCollapsed (line 500) | function getDisplayMessageFromCollapsed( function countToolUses (line 513) | function countToolUses(msg: RenderableMessage): number { function getFilePathsFromReadMessage (line 524) | function getFilePathsFromReadMessage(msg: RenderableMessage): string[] { function scanBashResultForGitOps (line 555) | function scanBashResultForGitOps( type GroupAccumulator (line 581) | type GroupAccumulator = { function createEmptyGroup (line 625) | function createEmptyGroup(): GroupAccumulator { function createCollapsedGroup (line 661) | function createCollapsedGroup( function collapseReadSearchGroups (line 762) | function collapseReadSearchGroups( function getSearchReadSummaryText (line 961) | function getSearchReadSummaryText( function summarizeRecentActivities (line 1074) | function summarizeRecentActivities( FILE: restored-src/src/utils/collapseTeammateShutdowns.ts function isTeammateShutdownAttachment (line 3) | function isTeammateShutdownAttachment( function collapseTeammateShutdowns (line 18) | function collapseTeammateShutdowns( FILE: restored-src/src/utils/combinedAbortSignal.ts function createCombinedAbortSignal (line 15) | function createCombinedAbortSignal( FILE: restored-src/src/utils/commandLifecycle.ts type CommandLifecycleState (line 1) | type CommandLifecycleState = 'started' | 'completed' type CommandLifecycleListener (line 3) | type CommandLifecycleListener = ( function setCommandLifecycleListener (line 10) | function setCommandLifecycleListener( function notifyCommandLifecycle (line 16) | function notifyCommandLifecycle( FILE: restored-src/src/utils/commitAttribution.ts constant INTERNAL_MODEL_REPOS (line 30) | const INTERNAL_MODEL_REPOS = [ function getAttributionRepoRoot (line 83) | function getAttributionRepoRoot(): string { function getRepoClassCached (line 98) | function getRepoClassCached(): 'internal' | 'external' | 'none' | null { function isInternalModelRepoCached (line 106) | function isInternalModelRepoCached(): boolean { function sanitizeSurfaceKey (line 135) | function sanitizeSurfaceKey(surfaceKey: string): string { function sanitizeModelName (line 154) | function sanitizeModelName(shortName: string): string { type AttributionState (line 173) | type AttributionState = { type AttributionSummary (line 197) | type AttributionSummary = { type FileAttribution (line 207) | type FileAttribution = { type AttributionData (line 217) | type AttributionData = { function getClientSurface (line 229) | function getClientSurface(): string { function buildSurfaceKey (line 237) | function buildSurfaceKey(surface: string, model: ModelName): string { function computeContentHash (line 244) | function computeContentHash(content: string): string { function normalizeFilePath (line 252) | function normalizeFilePath(filePath: string): string { function expandFilePath (line 296) | function expandFilePath(filePath: string): string { function createEmptyAttributionState (line 306) | function createEmptyAttributionState(): AttributionState { function computeFileModificationState (line 325) | function computeFileModificationState( function getFileMtime (line 387) | async function getFileMtime(filePath: string): Promise { function trackFileModification (line 402) | function trackFileModification( function trackFileCreation (line 439) | function trackFileCreation( function trackFileDeletion (line 453) | function trackFileDeletion( function trackBulkFileChanges (line 489) | function trackBulkFileChanges( function calculateCommitAttribution (line 548) | async function calculateCommitAttribution( function getGitDiffSize (line 751) | async function getGitDiffSize(filePath: string): Promise { function isFileDeleted (line 793) | async function isFileDeleted(filePath: string): Promise { function getStagedFiles (line 817) | async function getStagedFiles(): Promise { function isGitTransientState (line 843) | async function isGitTransientState(): Promise { function stateToSnapshotMessage (line 872) | function stateToSnapshotMessage( function restoreAttributionStateFromSnapshots (line 899) | function restoreAttributionStateFromSnapshots( function attributionRestoreStateFromLog (line 934) | function attributionRestoreStateFromLog( function incrementPromptCount (line 950) | function incrementPromptCount( FILE: restored-src/src/utils/completionCache.ts constant EOL (line 14) | const EOL = '\n' type ShellInfo (line 16) | type ShellInfo = { function detectShell (line 24) | function detectShell(): ShellInfo | null { function formatPathLink (line 63) | function formatPathLink(filePath: string): string { function setupShellCompletion (line 75) | async function setupShellCompletion(theme: ThemeName): Promise { function regenerateCompletionCache (line 140) | async function regenerateCompletionCache(): Promise { FILE: restored-src/src/utils/computerUse/appNames.ts type InstalledAppLike (line 16) | type InstalledAppLike = { constant PATH_ALLOWLIST (line 33) | const PATH_ALLOWLIST: readonly string[] = [ constant NAME_PATTERN_BLOCKLIST (line 44) | const NAME_PATTERN_BLOCKLIST: readonly RegExp[] = [ constant ALWAYS_KEEP_BUNDLE_IDS (line 59) | const ALWAYS_KEEP_BUNDLE_IDS: ReadonlySet = new Set([ constant APP_NAME_ALLOWED (line 108) | const APP_NAME_ALLOWED = /^[\p{L}\p{M}\p{N}_ .&'()+-]+$/u constant APP_NAME_MAX_LEN (line 109) | const APP_NAME_MAX_LEN = 40 constant APP_NAME_MAX_COUNT (line 110) | const APP_NAME_MAX_COUNT = 50 function isUserFacingPath (line 112) | function isUserFacingPath(path: string, homeDir: string | undefined): bo... function isNoisyName (line 123) | function isNoisyName(name: string): boolean { function sanitizeCore (line 132) | function sanitizeCore( function sanitizeAppNames (line 150) | function sanitizeAppNames(raw: readonly string[]): string[] { function sanitizeTrustedNames (line 159) | function sanitizeTrustedNames(raw: readonly string[]): string[] { function filterAppsForDescription (line 168) | function filterAppsForDescription( FILE: restored-src/src/utils/computerUse/cleanup.ts constant UNHIDE_TIMEOUT_MS (line 15) | const UNHIDE_TIMEOUT_MS = 5000 function cleanupComputerUseAfterTurn (line 30) | async function cleanupComputerUseAfterTurn( FILE: restored-src/src/utils/computerUse/common.ts constant COMPUTER_USE_MCP_SERVER_NAME (line 4) | const COMPUTER_USE_MCP_SERVER_NAME = 'computer-use' constant CLI_HOST_BUNDLE_ID (line 13) | const CLI_HOST_BUNDLE_ID = 'com.anthropic.claude-code.cli-no-window' constant TERMINAL_BUNDLE_ID_FALLBACK (line 21) | const TERMINAL_BUNDLE_ID_FALLBACK: Readonly> = { function getTerminalBundleId (line 43) | function getTerminalBundleId(): string | null { constant CLI_CU_CAPABILITIES (line 54) | const CLI_CU_CAPABILITIES = { function isComputerUseMCPServer (line 59) | function isComputerUseMCPServer(name: string): boolean { FILE: restored-src/src/utils/computerUse/computerUseLock.ts constant LOCK_FILENAME (line 10) | const LOCK_FILENAME = 'computer-use.lock' type ComputerUseLock (line 16) | type ComputerUseLock = { type AcquireResult (line 22) | type AcquireResult = type CheckResult (line 26) | type CheckResult = constant FRESH (line 31) | const FRESH: AcquireResult = { kind: 'acquired', fresh: true } constant REENTRANT (line 32) | const REENTRANT: AcquireResult = { kind: 'acquired', fresh: false } function isComputerUseLock (line 34) | function isComputerUseLock(value: unknown): value is ComputerUseLock { function getLockPath (line 44) | function getLockPath(): string { function readLock (line 48) | async function readLock(): Promise { function isProcessRunning (line 65) | function isProcessRunning(pid: number): boolean { function tryCreateExclusive (line 79) | async function tryCreateExclusive(lock: ComputerUseLock): Promise { function isLockHeldLocally (line 130) | function isLockHeldLocally(): boolean { function tryAcquireComputerUseLock (line 148) | async function tryAcquireComputerUseLock(): Promise { function releaseComputerUseLock (line 202) | async function releaseComputerUseLock(): Promise { FILE: restored-src/src/utils/computerUse/drainRunLoop.ts function drainTick (line 20) | function drainTick(cu: ReturnType): void { function retain (line 24) | function retain(): void { function release (line 32) | function release(): void { constant TIMEOUT_MS (line 42) | const TIMEOUT_MS = 30_000 function timeoutReject (line 44) | function timeoutReject(reject: (e: Error) => void): void { function drainRunLoop (line 61) | async function drainRunLoop(fn: () => Promise): Promise { FILE: restored-src/src/utils/computerUse/escHotkey.ts function registerEscHotkey (line 25) | function registerEscHotkey(onEscape: () => void): boolean { function unregisterEscHotkey (line 40) | function unregisterEscHotkey(): void { function notifyExpectedEscape (line 51) | function notifyExpectedEscape(): void { FILE: restored-src/src/utils/computerUse/executor.ts constant SCREENSHOT_JPEG_QUALITY (line 57) | const SCREENSHOT_JPEG_QUALITY = 0.75 function computeTargetDims (line 60) | function computeTargetDims( function readClipboardViaPbpaste (line 70) | async function readClipboardViaPbpaste(): Promise { function writeClipboardViaPbcopy (line 80) | async function writeClipboardViaPbcopy(text: string): Promise { type Input (line 90) | type Input = ReturnType function isBareEscape (line 97) | function isBareEscape(parts: readonly string[]): boolean { constant MOVE_SETTLE_MS (line 111) | const MOVE_SETTLE_MS = 50 function moveAndSettle (line 113) | async function moveAndSettle( function releasePressed (line 131) | async function releasePressed(input: Input, pressed: string[]): Promise<... function withModifiers (line 150) | async function withModifiers( function typeViaClipboard (line 180) | async function typeViaClipboard(input: Input, text: string): Promise { function createComputerUseMcpServerForCli (line 60) | async function createComputerUseMcpServerForCli(): Promise< function runComputerUseMcpServer (line 85) | async function runComputerUseMcpServer(): Promise { FILE: restored-src/src/utils/computerUse/setup.ts function setupComputerUseMCP (line 23) | function setupComputerUseMCP(): { FILE: restored-src/src/utils/computerUse/swiftLoader.ts function requireComputerUseSwift (line 15) | function requireComputerUseSwift(): ComputerUseAPI { FILE: restored-src/src/utils/computerUse/toolRendering.tsx type CuToolInput (line 6) | type CuToolInput = Record & { function fmtCoord (line 18) | function fmtCoord(c: [number, number] | undefined): string { constant RESULT_SUMMARY (line 21) | const RESULT_SUMMARY: Readonly>> = { function getComputerUseMCPRenderingOverrides (line 43) | function getComputerUseMCPRenderingOverrides(toolName: string): { FILE: restored-src/src/utils/computerUse/wrapper.tsx type CallOverride (line 30) | type CallOverride = Pick['call']; type Binding (line 31) | type Binding = { function tuc (line 51) | function tuc(): ToolUseContext { function formatLockHeld (line 56) | function formatLockHeld(holder: string): string { function buildSessionContext (line 59) | function buildSessionContext(): ComputerUseSessionContext { function getOrBind (line 230) | function getOrBind(): Binding { type ComputerUseMCPToolOverrides (line 245) | type ComputerUseMCPToolOverrides = ReturnType { function updatePidFile (line 116) | async function updatePidFile(patch: Record): Promise { FILE: restored-src/src/utils/config.ts type PastedContent (line 54) | type PastedContent = { type SerializedStructuredHistoryEntry (line 64) | interface SerializedStructuredHistoryEntry { type HistoryEntry (line 69) | interface HistoryEntry { type ReleaseChannel (line 74) | type ReleaseChannel = 'stable' | 'latest' type ProjectConfig (line 76) | type ProjectConfig = { constant DEFAULT_PROJECT_CONFIG (line 138) | const DEFAULT_PROJECT_CONFIG: ProjectConfig = { type InstallMethod (line 150) | type InstallMethod = 'local' | 'native' | 'global' | 'unknown' type NotificationChannel (line 159) | type NotificationChannel = (typeof NOTIFICATION_CHANNELS)[number] type AccountInfo (line 161) | type AccountInfo = { type EditorMode (line 177) | type EditorMode = 'emacs' | (typeof EDITOR_MODES)[number] type DiffTool (line 179) | type DiffTool = 'terminal' | 'auto' type OutputStyle (line 181) | type OutputStyle = string type GlobalConfig (line 183) | type GlobalConfig = { function createDefaultGlobalConfig (line 585) | function createDefaultGlobalConfig(): GlobalConfig { constant DEFAULT_GLOBAL_CONFIG (line 625) | const DEFAULT_GLOBAL_CONFIG: GlobalConfig = createDefaultGlobalConfig() constant GLOBAL_CONFIG_KEYS (line 627) | const GLOBAL_CONFIG_KEYS = [ type GlobalConfigKey (line 668) | type GlobalConfigKey = (typeof GLOBAL_CONFIG_KEYS)[number] function isGlobalConfigKey (line 670) | function isGlobalConfigKey(key: string): key is GlobalConfigKey { constant PROJECT_CONFIG_KEYS (line 674) | const PROJECT_CONFIG_KEYS = [ type ProjectConfigKey (line 680) | type ProjectConfigKey = (typeof PROJECT_CONFIG_KEYS)[number] function resetTrustDialogAcceptedCacheForTesting (line 693) | function resetTrustDialogAcceptedCacheForTesting(): void { function checkHasTrustDialogAccepted (line 697) | function checkHasTrustDialogAccepted(): boolean { function computeTrustDialogAccepted (line 705) | function computeTrustDialogAccepted(): boolean { function isPathTrusted (line 752) | function isPathTrusted(dir: string): boolean { constant TEST_GLOBAL_CONFIG_FOR_TESTING (line 764) | const TEST_GLOBAL_CONFIG_FOR_TESTING: GlobalConfig = { constant TEST_PROJECT_CONFIG_FOR_TESTING (line 768) | const TEST_PROJECT_CONFIG_FOR_TESTING: ProjectConfig = { function isProjectConfigKey (line 772) | function isProjectConfigKey(key: string): key is ProjectConfigKey { function wouldLoseAuthState (line 783) | function wouldLoseAuthState(fresh: { function saveGlobalConfig (line 797) | function saveGlobalConfig( function getGlobalConfigWriteCount (line 883) | function getGlobalConfigWriteCount(): number { constant CONFIG_WRITE_DISPLAY_THRESHOLD (line 887) | const CONFIG_WRITE_DISPLAY_THRESHOLD = 20 function reportConfigCacheStats (line 889) | function reportConfigCacheStats(): void { function migrateConfigFields (line 912) | function migrateConfigFields(config: GlobalConfig): GlobalConfig { function removeProjectHistory (line 966) | function removeProjectHistory( constant CONFIG_FRESHNESS_POLL_MS (line 992) | const CONFIG_FRESHNESS_POLL_MS = 1000 function startGlobalConfigFreshnessWatcher (line 997) | function startGlobalConfigFreshnessWatcher(): void { function writeThroughGlobalConfigCache (line 1039) | function writeThroughGlobalConfigCache(config: GlobalConfig): void { function getGlobalConfig (line 1044) | function getGlobalConfig(): GlobalConfig { function getRemoteControlAtStartup (line 1094) | function getRemoteControlAtStartup(): boolean { function getCustomApiKeyStatus (line 1103) | function getCustomApiKeyStatus( function saveConfig (line 1116) | function saveConfig( function saveConfigWithLock (line 1153) | function saveConfigWithLock( function enableConfigs (line 1334) | function enableConfigs(): void { function getConfigBackupDir (line 1362) | function getConfigBackupDir(): string { function findMostRecentBackup (line 1372) | function findMostRecentBackup(file: string): string | null { function getConfig (line 1421) | function getConfig( function getCurrentProjectConfig (line 1602) | function getCurrentProjectConfig(): ProjectConfig { function saveCurrentProjectConfig (line 1625) | function saveCurrentProjectConfig( function isAutoUpdaterDisabled (line 1700) | function isAutoUpdaterDisabled(): boolean { function shouldSkipPluginAutoupdate (line 1710) | function shouldSkipPluginAutoupdate(): boolean { type AutoUpdaterDisabledReason (line 1717) | type AutoUpdaterDisabledReason = function formatAutoUpdaterDisabledReason (line 1722) | function formatAutoUpdaterDisabledReason( function getAutoUpdaterDisabledReason (line 1735) | function getAutoUpdaterDisabledReason(): AutoUpdaterDisabledReason | null { function getOrCreateUserID (line 1757) | function getOrCreateUserID(): string { function recordFirstStartTime (line 1768) | function recordFirstStartTime(): void { function getMemoryPath (line 1779) | function getMemoryPath(memoryType: MemoryType): string { function getManagedClaudeRulesDir (line 1801) | function getManagedClaudeRulesDir(): string { function getUserClaudeRulesDir (line 1805) | function getUserClaudeRulesDir(): string { function _setGlobalConfigCacheForTesting (line 1812) | function _setGlobalConfigCacheForTesting( FILE: restored-src/src/utils/configConstants.ts constant NOTIFICATION_CHANNELS (line 4) | const NOTIFICATION_CHANNELS = [ constant EDITOR_MODES (line 15) | const EDITOR_MODES = ['normal', 'vim'] as const constant TEAMMATE_MODES (line 21) | const TEAMMATE_MODES = ['auto', 'tmux', 'in-process'] as const FILE: restored-src/src/utils/contentArray.ts function insertBlockAfterToolResults (line 21) | function insertBlockAfterToolResults( FILE: restored-src/src/utils/context.ts constant MODEL_CONTEXT_WINDOW_DEFAULT (line 9) | const MODEL_CONTEXT_WINDOW_DEFAULT = 200_000 constant COMPACT_MAX_OUTPUT_TOKENS (line 12) | const COMPACT_MAX_OUTPUT_TOKENS = 20_000 constant MAX_OUTPUT_TOKENS_DEFAULT (line 15) | const MAX_OUTPUT_TOKENS_DEFAULT = 32_000 constant MAX_OUTPUT_TOKENS_UPPER_LIMIT (line 16) | const MAX_OUTPUT_TOKENS_UPPER_LIMIT = 64_000 constant CAPPED_DEFAULT_MAX_TOKENS (line 24) | const CAPPED_DEFAULT_MAX_TOKENS = 8_000 constant ESCALATED_MAX_TOKENS (line 25) | const ESCALATED_MAX_TOKENS = 64_000 function is1mContextDisabled (line 31) | function is1mContextDisabled(): boolean { function has1mContext (line 35) | function has1mContext(model: string): boolean { function modelSupports1M (line 43) | function modelSupports1M(model: string): boolean { function getContextWindowForModel (line 51) | function getContextWindowForModel( function getSonnet1mExpTreatmentEnabled (line 100) | function getSonnet1mExpTreatmentEnabled(model: string): boolean { function calculateContextPercentages (line 118) | function calculateContextPercentages( function getModelMaxOutputTokens (line 149) | function getModelMaxOutputTokens(model: string): { function getMaxThinkingTokensForModel (line 219) | function getMaxThinkingTokensForModel(model: string): number { FILE: restored-src/src/utils/contextAnalysis.ts type TokenStats (line 15) | type TokenStats = { function analyzeContext (line 27) | function analyzeContext(messages: Message[]): TokenStats { function processBlock (line 99) | function processBlock( function increment (line 191) | function increment(map: Map, key: string, value: number)... function tokenStatsToStatsigMetrics (line 195) | function tokenStatsToStatsigMetrics( FILE: restored-src/src/utils/contextSuggestions.ts type SuggestionSeverity (line 11) | type SuggestionSeverity = 'info' | 'warning' type ContextSuggestion (line 13) | type ContextSuggestion = { constant LARGE_TOOL_RESULT_PERCENT (line 22) | const LARGE_TOOL_RESULT_PERCENT = 15 // tool results > 15% of context constant LARGE_TOOL_RESULT_TOKENS (line 23) | const LARGE_TOOL_RESULT_TOKENS = 10_000 constant READ_BLOAT_PERCENT (line 24) | const READ_BLOAT_PERCENT = 5 // Read results > 5% of context constant NEAR_CAPACITY_PERCENT (line 25) | const NEAR_CAPACITY_PERCENT = 80 constant MEMORY_HIGH_PERCENT (line 26) | const MEMORY_HIGH_PERCENT = 5 constant MEMORY_HIGH_TOKENS (line 27) | const MEMORY_HIGH_TOKENS = 5_000 function generateContextSuggestions (line 31) | function generateContextSuggestions( function checkNearCapacity (line 55) | function checkNearCapacity( function checkLargeToolResults (line 70) | function checkLargeToolResults( function getLargeToolSuggestion (line 98) | function getLargeToolSuggestion( function checkReadResultBloat (line 151) | function checkReadResultBloat( function checkMemoryBloat (line 187) | function checkMemoryBloat( function checkAutoCompactDisabled (line 219) | function checkAutoCompactDisabled( FILE: restored-src/src/utils/controlMessageCompat.ts function normalizeControlMessageKeys (line 13) | function normalizeControlMessageKeys(obj: unknown): unknown { FILE: restored-src/src/utils/conversationRecovery.ts constant BRIEF_TOOL_NAME (line 55) | const BRIEF_TOOL_NAME: string | null = constant LEGACY_BRIEF_TOOL_NAME (line 61) | const LEGACY_BRIEF_TOOL_NAME: string | null = constant SEND_USER_FILE_TOOL_NAME (line 67) | const SEND_USER_FILE_TOOL_NAME: string | null = feature('KAIROS') function migrateLegacyAttachmentTypes (line 77) | function migrateLegacyAttachmentTypes(message: Message): Message { type TeleportRemoteResponse (line 134) | type TeleportRemoteResponse = { type TurnInterruptionState (line 139) | type TurnInterruptionState = type DeserializeResult (line 143) | type DeserializeResult = { function deserializeMessages (line 154) | function deserializeMessages(serializedMessages: Message[]): Message[] { function deserializeMessagesWithInterruptDetection (line 164) | function deserializeMessagesWithInterruptDetection( type InternalInterruptionState (line 258) | type InternalInterruptionState = function detectTurnInterruption (line 272) | function detectTurnInterruption( function isTerminalToolResult (line 348) | function isTerminalToolResult( function restoreSkillStateFromMessages (line 382) | function restoreSkillStateFromMessages(messages: Message[]): void { function loadMessagesFromJsonlPath (line 416) | async function loadMessagesFromJsonlPath(path: string): Promise<{ function loadConversationForResume (line 456) | async function loadConversationForResume( FILE: restored-src/src/utils/cron.ts type CronFields (line 10) | type CronFields = { type FieldRange (line 18) | type FieldRange = { min: number; max: number } constant FIELD_RANGES (line 20) | const FIELD_RANGES: FieldRange[] = [ function expandField (line 31) | function expandField(field: string, range: FieldRange): number[] | null { function parseCronExpression (line 83) | function parseCronExpression(expr: string): CronFields | null { function computeNextCronRun (line 119) | function computeNextCronRun( constant DAY_NAMES (line 190) | const DAY_NAMES = [ function formatLocalTime (line 200) | function formatLocalTime(minute: number, hour: number): string { function formatUtcTimeAsLocal (line 207) | function formatUtcTimeAsLocal(minute: number, hour: number): string { function cronToHuman (line 218) | function cronToHuman(cron: string, opts?: { utc?: boolean }): string { FILE: restored-src/src/utils/cronJitterConfig.ts constant JITTER_CONFIG_REFRESH_MS (line 24) | const JITTER_CONFIG_REFRESH_MS = 60 * 1000 constant HALF_HOUR_MS (line 35) | const HALF_HOUR_MS = 30 * 60 * 1000 constant THIRTY_DAYS_MS (line 36) | const THIRTY_DAYS_MS = 30 * 24 * 60 * 60 * 1000 function getCronJitterConfig (line 67) | function getCronJitterConfig(): CronJitterConfig { FILE: restored-src/src/utils/cronScheduler.ts constant CHECK_INTERVAL_MS (line 40) | const CHECK_INTERVAL_MS = 1000 constant FILE_STABILITY_MS (line 41) | const FILE_STABILITY_MS = 300 constant LOCK_PROBE_INTERVAL_MS (line 44) | const LOCK_PROBE_INTERVAL_MS = 5000 function isRecurringTaskAged (line 53) | function isRecurringTaskAged( type CronSchedulerOptions (line 62) | type CronSchedulerOptions = { type CronScheduler (line 130) | type CronScheduler = { function createCronScheduler (line 142) | function createCronScheduler( function buildMissedTaskNotification (line 542) | function buildMissedTaskNotification(missed: CronTask[]): string { FILE: restored-src/src/utils/cronTasks.ts type CronTask (line 30) | type CronTask = { type CronFile (line 72) | type CronFile = { tasks: CronTask[] } constant CRON_FILE_REL (line 74) | const CRON_FILE_REL = join('.claude', 'scheduled_tasks.json') function getCronFilePath (line 81) | function getCronFilePath(dir?: string): string { function readCronTasks (line 91) | async function readCronTasks(dir?: string): Promise { function hasCronTasksSync (line 146) | function hasCronTasksSync(dir?: string): boolean { function writeCronTasks (line 165) | async function writeCronTasks( function addCronTask (line 194) | async function addCronTask( function removeCronTasks (line 231) | async function removeCronTasks( function markCronTasksFired (line 261) | async function markCronTasksFired( function listAllCronTasks (line 288) | async function listAllCronTasks(dir?: string): Promise { function nextCronRunMs (line 302) | function nextCronRunMs(cron: string, fromMs: number): number | null { type CronJitterConfig (line 315) | type CronJitterConfig = { constant DEFAULT_CRON_JITTER_CONFIG (line 348) | const DEFAULT_CRON_JITTER_CONFIG: CronJitterConfig = { function jitterFrac (line 362) | function jitterFrac(taskId: string): number { function jitteredNextCronRunMs (line 381) | function jitteredNextCronRunMs( function oneShotJitteredNextCronRunMs (line 421) | function oneShotJitteredNextCronRunMs( function findMissedTasks (line 453) | function findMissedTasks(tasks: CronTask[], nowMs: number): CronTask[] { FILE: restored-src/src/utils/cronTasksLock.ts constant LOCK_FILE_REL (line 23) | const LOCK_FILE_REL = join('.claude', 'scheduled_tasks.lock') type SchedulerLock (line 32) | type SchedulerLock = z.infer> type SchedulerLockOptions (line 40) | type SchedulerLockOptions = { function getLockPath (line 49) | function getLockPath(dir?: string): string { function readLock (line 53) | async function readLock(dir?: string): Promise { function tryCreateExclusive (line 64) | async function tryCreateExclusive( function registerLockCleanup (line 93) | function registerLockCleanup(opts?: SchedulerLockOptions): void { function tryAcquireSchedulerLock (line 111) | async function tryAcquireSchedulerLock( function releaseSchedulerLock (line 178) | async function releaseSchedulerLock( FILE: restored-src/src/utils/crossProjectResume.ts type CrossProjectResumeResult (line 7) | type CrossProjectResumeResult = function checkCrossProjectResume (line 30) | function checkCrossProjectResume( FILE: restored-src/src/utils/cwd.ts function runWithCwdOverride (line 12) | function runWithCwdOverride(cwd: string, fn: () => T): T { function pwd (line 19) | function pwd(): string { function getCwd (line 26) | function getCwd(): string { FILE: restored-src/src/utils/debug.ts type DebugLogLevel (line 18) | type DebugLogLevel = 'verbose' | 'debug' | 'info' | 'warn' | 'error' constant LEVEL_ORDER (line 20) | const LEVEL_ORDER: Record = { function enableDebugLogging (line 64) | function enableDebugLogging(): boolean { function shouldLogDebugMessage (line 104) | function shouldLogDebugMessage(message: string): boolean { function setHasFormattedOutput (line 128) | function setHasFormattedOutput(value: boolean): void { function getHasFormattedOutput (line 131) | function getHasFormattedOutput(): boolean { function appendAsync (line 140) | async function appendAsync( function noop (line 153) | function noop(): void {} function getDebugWriter (line 155) | function getDebugWriter(): BufferedWriter { function flushDebugLogs (line 198) | async function flushDebugLogs(): Promise { function logForDebugging (line 203) | function logForDebugging( function getDebugLogPath (line 230) | function getDebugLogPath(): string { function logAntError (line 258) | function logAntError(context: string, error: unknown): void { FILE: restored-src/src/utils/debugFilter.ts type DebugFilter (line 3) | type DebugFilter = { function extractDebugCategories (line 65) | function extractDebugCategories(message: string): string[] { function shouldShowDebugCategories (line 116) | function shouldShowDebugCategories( function shouldShowDebugMessage (line 145) | function shouldShowDebugMessage( FILE: restored-src/src/utils/deepLink/banner.ts constant STALE_FETCH_WARN_MS (line 22) | const STALE_FETCH_WARN_MS = 7 * 24 * 60 * 60 * 1000 constant LONG_PREFILL_THRESHOLD (line 30) | const LONG_PREFILL_THRESHOLD = 1000 type DeepLinkBannerInfo (line 32) | type DeepLinkBannerInfo = { function buildDeepLinkBanner (line 54) | function buildDeepLinkBanner(info: DeepLinkBannerInfo): string { function readLastFetchTime (line 88) | async function readLastFetchTime( function mtimeOrUndefined (line 104) | async function mtimeOrUndefined(p: string): Promise { function tildify (line 118) | function tildify(p: string): string { FILE: restored-src/src/utils/deepLink/parseDeepLink.ts constant DEEP_LINK_PROTOCOL (line 23) | const DEEP_LINK_PROTOCOL = 'claude-cli' type DeepLinkAction (line 25) | type DeepLinkAction = { function containsControlChars (line 36) | function containsControlChars(s: string): boolean { constant REPO_SLUG_PATTERN (line 50) | const REPO_SLUG_PATTERN = /^[\w.-]+\/[\w.-]+$/ constant MAX_QUERY_LENGTH (line 70) | const MAX_QUERY_LENGTH = 5000 constant MAX_CWD_LENGTH (line 77) | const MAX_CWD_LENGTH = 4096 function parseDeepLink (line 84) | function parseDeepLink(uri: string): DeepLinkAction { function buildDeepLink (line 158) | function buildDeepLink(action: DeepLinkAction): string { FILE: restored-src/src/utils/deepLink/protocolHandler.ts function handleDeepLinkUri (line 36) | async function handleDeepLinkUri(uri: string): Promise { function handleUrlSchemeLaunch (line 84) | async function handleUrlSchemeLaunch(): Promise { function resolveCwd (line 117) | async function resolveCwd(action: { FILE: restored-src/src/utils/deepLink/registerProtocol.ts constant MACOS_BUNDLE_ID (line 33) | const MACOS_BUNDLE_ID = 'com.anthropic.claude-code-url-handler' constant APP_NAME (line 34) | const APP_NAME = 'Claude Code URL Handler' constant DESKTOP_FILE_NAME (line 35) | const DESKTOP_FILE_NAME = 'claude-code-url-handler.desktop' constant MACOS_APP_NAME (line 36) | const MACOS_APP_NAME = 'Claude Code URL Handler.app' constant MACOS_APP_DIR (line 41) | const MACOS_APP_DIR = path.join(os.homedir(), 'Applications', MACOS_APP_... constant MACOS_SYMLINK_PATH (line 42) | const MACOS_SYMLINK_PATH = path.join( function linuxDesktopPath (line 48) | function linuxDesktopPath(): string { constant WINDOWS_REG_KEY (line 51) | const WINDOWS_REG_KEY = `HKEY_CURRENT_USER\\Software\\Classes\\${DEEP_LI... constant WINDOWS_COMMAND_KEY (line 52) | const WINDOWS_COMMAND_KEY = `${WINDOWS_REG_KEY}\\shell\\open\\command` constant FAILURE_BACKOFF_MS (line 54) | const FAILURE_BACKOFF_MS = 24 * 60 * 60 * 1000 function linuxExecLine (line 56) | function linuxExecLine(claudePath: string): string { function windowsCommandValue (line 59) | function windowsCommandValue(claudePath: string): string { function registerMacos (line 75) | async function registerMacos(claudePath: string): Promise { function registerLinux (line 144) | async function registerLinux(claudePath: string): Promise { function registerWindows (line 185) | async function registerWindows(claudePath: string): Promise { function registerProtocolHandler (line 215) | async function registerProtocolHandler( function resolveClaudePath (line 241) | async function resolveClaudePath(): Promise { function isProtocolHandlerCurrent (line 263) | async function isProtocolHandlerCurrent( function ensureDeepLinkProtocolRegistered (line 298) | async function ensureDeepLinkProtocolRegistered(): Promise { FILE: restored-src/src/utils/deepLink/terminalLauncher.ts type TerminalInfo (line 21) | type TerminalInfo = { constant MACOS_TERMINALS (line 28) | const MACOS_TERMINALS: Array<{ constant LINUX_TERMINALS (line 46) | const LINUX_TERMINALS = [ function detectMacosTerminal (line 64) | async function detectMacosTerminal(): Promise { function detectLinuxTerminal (line 127) | async function detectLinuxTerminal(): Promise { function detectWindowsTerminal (line 157) | async function detectWindowsTerminal(): Promise { function detectTerminal (line 183) | async function detectTerminal(): Promise { function launchInTerminal (line 214) | async function launchInTerminal( function launchMacosTerminal (line 255) | async function launchMacosTerminal( function launchLinuxTerminal (line 359) | async function launchLinuxTerminal( function launchWindowsTerminal (line 419) | async function launchWindowsTerminal( function spawnDetached (line 476) | function spawnDetached( function buildShellCommand (line 505) | function buildShellCommand( function shellQuote (line 519) | function shellQuote(s: string): string { function appleScriptQuote (line 526) | function appleScriptQuote(s: string): string { function psQuote (line 536) | function psQuote(s: string): string { function cmdQuote (line 553) | function cmdQuote(arg: string): string { FILE: restored-src/src/utils/deepLink/terminalPreference.ts constant TERM_PROGRAM_TO_APP (line 18) | const TERM_PROGRAM_TO_APP: Record = { function updateDeepLinkTerminalPreference (line 38) | function updateDeepLinkTerminalPreference(): void { FILE: restored-src/src/utils/desktopDeepLink.ts constant MIN_DESKTOP_VERSION (line 11) | const MIN_DESKTOP_VERSION = '1.1.2396' function isDevMode (line 13) | function isDevMode(): boolean { function buildDesktopDeepLink (line 35) | function buildDesktopDeepLink(sessionId: string): string { function isDesktopInstalled (line 50) | async function isDesktopInstalled(): Promise { function getDesktopVersion (line 89) | async function getDesktopVersion(): Promise { type DesktopInstallStatus (line 129) | type DesktopInstallStatus = function getDesktopInstallStatus (line 137) | async function getDesktopInstallStatus(): Promise { function openDeepLink (line 168) | async function openDeepLink(deepLinkUrl: string): Promise { function openCurrentSessionInDesktop (line 206) | async function openCurrentSessionInDesktop(): Promise<{ FILE: restored-src/src/utils/detectRepository.ts type ParsedRepository (line 5) | type ParsedRepository = { function clearRepositoryCaches (line 13) | function clearRepositoryCaches(): void { function detectCurrentRepository (line 17) | async function detectCurrentRepository(): Promise { function detectCurrentRepositoryWithHost (line 32) | async function detectCurrentRepositoryWithHost(): Promise( FILE: restored-src/src/utils/diff.ts constant CONTEXT_LINES (line 9) | const CONTEXT_LINES = 3 constant DIFF_TIMEOUT_MS (line 10) | const DIFF_TIMEOUT_MS = 5_000 function adjustHunkLineNumbers (line 17) | function adjustHunkLineNumbers( constant AMPERSAND_TOKEN (line 31) | const AMPERSAND_TOKEN = '<<:AMPERSAND_TOKEN:>>' constant DOLLAR_TOKEN (line 33) | const DOLLAR_TOKEN = '<<:DOLLAR_TOKEN:>>' function escapeForDiff (line 35) | function escapeForDiff(s: string): string { function unescapeFromDiff (line 39) | function unescapeFromDiff(s: string): string { function countLinesChanged (line 49) | function countLinesChanged( function getPatchFromContents (line 81) | function getPatchFromContents({ function getPatchForDisplay (line 128) | function getPatchForDisplay({ FILE: restored-src/src/utils/directMemberMessage.ts function parseDirectMemberMessage (line 6) | function parseDirectMemberMessage(input: string): { type DirectMessageResult (line 22) | type DirectMessageResult = type WriteToMailboxFn (line 30) | type WriteToMailboxFn = ( function sendDirectMemberMessage (line 39) | async function sendDirectMemberMessage( FILE: restored-src/src/utils/displayTags.ts constant XML_TAG_BLOCK_PATTERN (line 15) | const XML_TAG_BLOCK_PATTERN = /<([a-z][\w-]*)(?:\s[^>]*)?>[\s\S]*?<\/\1>... function stripDisplayTags (line 26) | function stripDisplayTags(text: string): string { function stripDisplayTagsAllowEmpty (line 37) | function stripDisplayTagsAllowEmpty(text: string): string { constant IDE_CONTEXT_TAGS_PATTERN (line 41) | const IDE_CONTEXT_TAGS_PATTERN = function stripIdeContextTags (line 49) | function stripIdeContextTags(text: string): string { FILE: restored-src/src/utils/doctorContextWarnings.ts constant MCP_TOOLS_THRESHOLD (line 21) | const MCP_TOOLS_THRESHOLD = 25_000 // 15k tokens type ContextWarning (line 23) | type ContextWarning = { type ContextWarnings (line 36) | type ContextWarnings = { function checkClaudeMdFiles (line 43) | async function checkClaudeMdFiles(): Promise { function checkAgentDescriptions (line 73) | async function checkAgentDescriptions( function checkMcpTools (line 119) | async function checkMcpTools( function checkUnreachableRules (line 212) | async function checkUnreachableRules( function checkContextWarnings (line 246) | async function checkContextWarnings( FILE: restored-src/src/utils/doctorDiagnostic.ts type InstallationType (line 46) | type InstallationType = type DiagnosticInfo (line 54) | type DiagnosticInfo = { function getNormalizedPaths (line 73) | function getNormalizedPaths(): [invokedPath: string, execPath: string] { function getCurrentInstallationType (line 86) | async function getCurrentInstallationType(): Promise { function getInstallationPath (line 150) | async function getInstallationPath(): Promise { function getInvokedBinary (line 191) | function getInvokedBinary(): string { function detectMultipleInstallations (line 205) | async function detectMultipleInstallations(): Promise< function detectConfigurationIssues (line 317) | async function detectConfigurationIssues( function detectLinuxGlobPatternWarnings (line 487) | function detectLinuxGlobPatternWarnings(): Array<{ function getDoctorDiagnostic (line 514) | async function getDoctorDiagnostic(): Promise { FILE: restored-src/src/utils/dxt/helpers.ts function validateManifest (line 13) | async function validateManifest( function parseAndValidateManifestFromText (line 39) | async function parseAndValidateManifestFromText( function parseAndValidateManifestFromBytes (line 56) | async function parseAndValidateManifestFromBytes( function generateExtensionId (line 67) | function generateExtensionId( FILE: restored-src/src/utils/dxt/zip.ts constant LIMITS (line 7) | const LIMITS = { type ZipValidationState (line 18) | type ZipValidationState = { type ZipFileMetadata (line 28) | type ZipFileMetadata = { type FileValidationResult (line 36) | type FileValidationResult = { function isPathSafe (line 44) | function isPathSafe(filePath: string): boolean { function validateZipFile (line 63) | function validateZipFile( function unzipFile (line 113) | async function unzipFile( function parseZipModes (line 160) | function parseZipModes(data: Uint8Array): Record { function readAndUnzipFile (line 209) | async function readAndUnzipFile( FILE: restored-src/src/utils/earlyInput.ts function startCapturingEarlyInput (line 29) | function startCapturingEarlyInput(): void { function processChunk (line 72) | function processChunk(str: string): void { function stopCapturingEarlyInput (line 142) | function stopCapturingEarlyInput(): void { function consumeEarlyInput (line 164) | function consumeEarlyInput(): string { function hasEarlyInput (line 174) | function hasEarlyInput(): boolean { function seedEarlyInput (line 182) | function seedEarlyInput(text: string): void { function isCapturingEarlyInput (line 189) | function isCapturingEarlyInput(): boolean { FILE: restored-src/src/utils/editor.ts function isCommandAvailable (line 13) | function isCommandAvailable(command: string): boolean { constant GUI_EDITORS (line 20) | const GUI_EDITORS = [ constant PLUS_N_EDITORS (line 34) | const PLUS_N_EDITORS = /\b(vi|vim|nvim|nano|emacs|pico|micro|helix|hx)\b/ constant VSCODE_FAMILY (line 37) | const VSCODE_FAMILY = new Set(['code', 'cursor', 'windsurf', 'codium']) function classifyGuiEditor (line 49) | function classifyGuiEditor(editor: string): string | undefined { function guiGotoArgv (line 58) | function guiGotoArgv( function openFileInExternalEditor (line 81) | function openFileInExternalEditor( FILE: restored-src/src/utils/effort.ts constant EFFORT_LEVELS (line 13) | const EFFORT_LEVELS = [ type EffortValue (line 20) | type EffortValue = EffortLevel | number function modelSupportsEffort (line 23) | function modelSupportsEffort(model: string): boolean { function modelSupportsMaxEffort (line 53) | function modelSupportsMaxEffort(model: string): boolean { function isEffortLevel (line 67) | function isEffortLevel(value: string): value is EffortLevel { function parseEffortValue (line 71) | function parseEffortValue(value: unknown): EffortValue | undefined { function toPersistableEffort (line 95) | function toPersistableEffort( function getInitialEffortSetting (line 107) | function getInitialEffortSetting(): EffortLevel | undefined { function resolvePickerEffortPersistence (line 126) | function resolvePickerEffortPersistence( function getEffortEnvOverride (line 136) | function getEffortEnvOverride(): EffortValue | null | undefined { function resolveAppliedEffort (line 152) | function resolveAppliedEffort( function getDisplayedEffortLevel (line 174) | function getDisplayedEffortLevel( function getEffortSuffix (line 188) | function getEffortSuffix( function isValidNumericEffort (line 198) | function isValidNumericEffort(value: number): boolean { function convertEffortValueToLevel (line 202) | function convertEffortValueToLevel(value: EffortValue): EffortLevel { function getEffortLevelDescription (line 224) | function getEffortLevelDescription(level: EffortLevel): string { function getEffortValueDescription (line 243) | function getEffortValueDescription(value: EffortValue): string { type OpusDefaultEffortConfig (line 254) | type OpusDefaultEffortConfig = { constant OPUS_DEFAULT_EFFORT_CONFIG_DEFAULT (line 260) | const OPUS_DEFAULT_EFFORT_CONFIG_DEFAULT: OpusDefaultEffortConfig = { function getOpusDefaultEffortConfig (line 267) | function getOpusDefaultEffortConfig(): OpusDefaultEffortConfig { function getDefaultEffortForModel (line 279) | function getDefaultEffortForModel( FILE: restored-src/src/utils/embeddedTools.ts function hasEmbeddedSearchTools (line 15) | function hasEmbeddedSearchTools(): boolean { function embeddedSearchToolsBinaryPath (line 27) | function embeddedSearchToolsBinaryPath(): string { FILE: restored-src/src/utils/env.ts type Platform (line 11) | type Platform = 'win32' | 'darwin' | 'linux' function isCommandAvailable (line 40) | async function isCommandAvailable(command: string): Promise { function isConductor (line 111) | function isConductor(): boolean { constant JETBRAINS_IDES (line 115) | const JETBRAINS_IDES = [ function detectTerminal (line 135) | function detectTerminal(): string | null { function isSSHSession (line 308) | function isSSHSession(): boolean { function getHostPlatformForAnalytics (line 341) | function getHostPlatformForAnalytics(): Platform { FILE: restored-src/src/utils/envDynamic.ts function getIsBubblewrapSandbox (line 18) | function getIsBubblewrapSandbox(): boolean { function isMuslEnvironment (line 52) | function isMuslEnvironment(): boolean { function detectJetBrainsIDEFromParentProcessAsync (line 64) | async function detectJetBrainsIDEFromParentProcessAsync(): Promise< function getTerminalWithJetBrainsDetectionAsync (line 98) | async function getTerminalWithJetBrainsDetectionAsync(): Promise< function getTerminalWithJetBrainsDetection (line 114) | function getTerminalWithJetBrainsDetection(): string | null { function initJetBrainsDetection (line 136) | async function initJetBrainsDetection(): Promise { FILE: restored-src/src/utils/envUtils.ts function getTeamsDir (line 16) | function getTeamsDir(): string { function hasNodeOption (line 24) | function hasNodeOption(flag: string): boolean { function isEnvTruthy (line 32) | function isEnvTruthy(envVar: string | boolean | undefined): boolean { function isEnvDefinedFalsy (line 39) | function isEnvDefinedFalsy( function isBareMode (line 60) | function isBareMode(): boolean { function parseEnvVars (line 72) | function parseEnvVars( function getAWSRegion (line 96) | function getAWSRegion(): string { function getDefaultVertexRegion (line 103) | function getDefaultVertexRegion(): string { function shouldMaintainProjectWorkingDir (line 111) | function shouldMaintainProjectWorkingDir(): boolean { function isRunningOnHomespace (line 118) | function isRunningOnHomespace(): boolean { function isInProtectedNamespace (line 136) | function isInProtectedNamespace(): boolean { constant VERTEX_REGION_OVERRIDES (line 155) | const VERTEX_REGION_OVERRIDES: ReadonlyArray<[string, string]> = [ function getVertexRegionForModel (line 171) | function getVertexRegionForModel( FILE: restored-src/src/utils/envValidation.ts type EnvVarValidationResult (line 3) | type EnvVarValidationResult = { function validateBoundedIntEnvVar (line 9) | function validateBoundedIntEnvVar( FILE: restored-src/src/utils/errorLogSink.ts constant DATE (line 24) | const DATE = dateToFilename(new Date()) function getErrorsPath (line 29) | function getErrorsPath(): string { function getMCPLogsPath (line 36) | function getMCPLogsPath(serverName: string): string { type JsonlWriter (line 40) | type JsonlWriter = { function createJsonlWriter (line 46) | function createJsonlWriter(options: { function _flushLogWritersForTesting (line 68) | function _flushLogWritersForTesting(): void { function _clearLogWritersForTesting (line 78) | function _clearLogWritersForTesting(): void { function getLogWriter (line 85) | function getLogWriter(path: string): JsonlWriter { function appendToLog (line 111) | function appendToLog(path: string, message: object): void { function extractServerMessage (line 128) | function extractServerMessage(data: unknown): string | undefined { function logErrorImpl (line 152) | function logErrorImpl(error: Error): void { function logMCPErrorImpl (line 179) | function logMCPErrorImpl(serverName: string, error: unknown): void { function logMCPDebugImpl (line 200) | function logMCPDebugImpl(serverName: string, message: string): void { function initializeErrorLogSink (line 225) | function initializeErrorLogSink(): void { FILE: restored-src/src/utils/errors.ts class ClaudeError (line 3) | class ClaudeError extends Error { method constructor (line 4) | constructor(message: string) { class MalformedCommandError (line 10) | class MalformedCommandError extends Error {} class AbortError (line 12) | class AbortError extends Error { method constructor (line 13) | constructor(message?: string) { function isAbortError (line 27) | function isAbortError(e: unknown): boolean { class ConfigParseError (line 39) | class ConfigParseError extends Error { method constructor (line 43) | constructor(message: string, filePath: string, defaultConfig: unknown) { class ShellError (line 51) | class ShellError extends Error { method constructor (line 52) | constructor( class TeleportOperationError (line 63) | class TeleportOperationError extends Error { method constructor (line 64) | constructor( class TelemetrySafeError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS (line 93) | class TelemetrySafeError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS extend... method constructor (line 96) | constructor(message: string, telemetryMessage?: string) { function hasExactErrorMessage (line 103) | function hasExactErrorMessage(error: unknown, message: string): boolean { function toError (line 111) | function toError(e: unknown): Error { function errorMessage (line 119) | function errorMessage(e: unknown): string { function getErrnoCode (line 128) | function getErrnoCode(e: unknown): string | undefined { function isENOENT (line 139) | function isENOENT(e: unknown): boolean { function getErrnoPath (line 148) | function getErrnoPath(e: unknown): string | undefined { function shortErrorStack (line 161) | function shortErrorStack(e: unknown, maxFrames = 5): string { function isFsInaccessible (line 186) | function isFsInaccessible(e: unknown): e is NodeJS.ErrnoException { type AxiosErrorKind (line 197) | type AxiosErrorKind = function classifyAxiosError (line 213) | function classifyAxiosError(e: unknown): { FILE: restored-src/src/utils/exampleCommands.ts constant NON_CORE_PATTERNS (line 14) | const NON_CORE_PATTERNS = [ function isCoreFile (line 31) | function isCoreFile(path: string): boolean { function countAndSortItems (line 39) | function countAndSortItems(items: string[], topN: number = 20): string { function pickDiverseCoreFiles (line 56) | function pickDiverseCoreFiles( function getFrequentlyModifiedFiles (line 86) | async function getFrequentlyModifiedFiles(): Promise { constant ONE_WEEK_IN_MS (line 140) | const ONE_WEEK_IN_MS = 7 * 24 * 60 * 60 * 1000 FILE: restored-src/src/utils/execFileNoThrow.ts constant MS_IN_SECOND (line 11) | const MS_IN_SECOND = 1000 constant SECONDS_IN_MINUTE (line 12) | const SECONDS_IN_MINUTE = 60 type ExecFileOptions (line 14) | type ExecFileOptions = { function execFileNoThrow (line 26) | function execFileNoThrow( type ExecFileWithCwdOptions (line 46) | type ExecFileWithCwdOptions = { type ExecaResultWithError (line 58) | type ExecaResultWithError = { function getErrorMessage (line 73) | function getErrorMessage( function execFileNoThrowWithCwd (line 89) | function execFileNoThrowWithCwd( FILE: restored-src/src/utils/execFileNoThrowPortable.ts constant MS_IN_SECOND (line 5) | const MS_IN_SECOND = 1000 constant SECONDS_IN_MINUTE (line 6) | const SECONDS_IN_MINUTE = 60 type ExecSyncOptions (line 8) | type ExecSyncOptions = { function execSyncWithDefaults_DEPRECATED (line 41) | function execSyncWithDefaults_DEPRECATED( FILE: restored-src/src/utils/execSyncWrapper.ts function execSync_DEPRECATED (line 32) | function execSync_DEPRECATED( FILE: restored-src/src/utils/exportRenderer.tsx function StaticKeybindingProvider (line 17) | function StaticKeybindingProvider({ function normalizedUpperBound (line 37) | function normalizedUpperBound(m: Message): number { function streamRenderedMessages (line 55) | async function streamRenderedMessages(messages: Message[], tools: Tools,... function renderMessagesToPlainText (line 91) | async function renderMessagesToPlainText(messages: Message[], tools: Too... FILE: restored-src/src/utils/extraUsage.ts function isBilledAsExtraUsage (line 4) | function isBilledAsExtraUsage( FILE: restored-src/src/utils/fastMode.ts function isFastModeEnabled (line 38) | function isFastModeEnabled(): boolean { function isFastModeAvailable (line 42) | function isFastModeAvailable(): boolean { type AuthType (line 49) | type AuthType = 'oauth' | 'api-key' function getDisabledReasonMessage (line 51) | function getDisabledReasonMessage( function getFastModeUnavailableReason (line 72) | function getFastModeUnavailableReason(): string | null { constant FAST_MODE_MODEL_DISPLAY (line 143) | const FAST_MODE_MODEL_DISPLAY = 'Opus 4.6' function getFastModeModel (line 145) | function getFastModeModel(): string { function getInitialFastModeSetting (line 149) | function getInitialFastModeSetting(model: ModelSetting): boolean { function isFastModeSupportedByModel (line 167) | function isFastModeSupportedByModel( type FastModeRuntimeState (line 183) | type FastModeRuntimeState = type CooldownReason (line 191) | type CooldownReason = 'rate_limit' | 'overloaded' function getFastModeRuntimeState (line 199) | function getFastModeRuntimeState(): FastModeRuntimeState { function triggerFastModeCooldown (line 214) | function triggerFastModeCooldown( function clearFastModeCooldown (line 235) | function clearFastModeCooldown(): void { function handleFastModeRejectedByAPI (line 244) | function handleFastModeRejectedByAPI(): void { function getOverageDisabledMessage (line 263) | function getOverageDisabledMessage(reason: string | null): string { function isOutOfCreditsReason (line 286) | function isOutOfCreditsReason(reason: string | null): boolean { function handleFastModeOverageRejection (line 295) | function handleFastModeOverageRejection(reason: string | null): void { function isFastModeCooldown (line 315) | function isFastModeCooldown(): boolean { function getFastModeState (line 319) | function getFastModeState( type FastModeDisabledReason (line 339) | type FastModeDisabledReason = type FastModeOrgStatus (line 351) | type FastModeOrgStatus = type FastModeResponse (line 362) | type FastModeResponse = { function fetchFastModeStatus (line 367) | async function fetchFastModeStatus( constant PREFETCH_MIN_INTERVAL_MS (line 383) | const PREFETCH_MIN_INTERVAL_MS = 30_000 function resolveFastModeStatusFromCache (line 392) | function resolveFastModeStatusFromCache(): void { function prefetchFastModeStatus (line 407) | async function prefetchFastModeStatus(): Promise { FILE: restored-src/src/utils/file.ts type File (line 31) | type File = { function pathExists (line 39) | async function pathExists(path: string): Promise { constant MAX_OUTPUT_SIZE (line 48) | const MAX_OUTPUT_SIZE = 0.25 * 1024 * 1024 // 0.25MB in bytes function readFileSafe (line 50) | function readFileSafe(filepath: string): string | null { function getFileModificationTime (line 66) | function getFileModificationTime(filePath: string): number { function getFileModificationTimeAsync (line 77) | async function getFileModificationTimeAsync( function writeTextContent (line 84) | function writeTextContent( function detectFileEncoding (line 100) | function detectFileEncoding(filePath: string): BufferEncoding { function detectLineEndings (line 120) | function detectLineEndings( function convertLeadingTabsToSpaces (line 137) | function convertLeadingTabsToSpaces(content: string): string { function getAbsoluteAndRelativePaths (line 144) | function getAbsoluteAndRelativePaths(path: string | undefined): { function getDisplayPath (line 155) | function getDisplayPath(filePath: string): string { function findSimilarFile (line 178) | function findSimilarFile(filePath: string): string | undefined { constant FILE_NOT_FOUND_CWD_NOTE (line 213) | const FILE_NOT_FOUND_CWD_NOTE = 'Note: your current working directory is' function suggestPathUnderCwd (line 228) | async function suggestPathUnderCwd( function isCompactLinePrefixEnabled (line 278) | function isCompactLinePrefixEnabled(): boolean { function addLineNumbers (line 290) | function addLineNumbers({ function stripLineNumberPrefix (line 325) | function stripLineNumberPrefix(line: string): string { function isDirEmpty (line 335) | function isDirEmpty(dirPath: string): boolean { function readFileSyncCached (line 349) | function readFileSyncCached(filePath: string): string { function writeFileSyncAndFlush_DEPRECATED (line 362) | function writeFileSyncAndFlush_DEPRECATED( function getDesktopPath (line 480) | function getDesktopPath(): string { function isFileWithinReadSizeLimit (line 547) | function isFileWithinReadSizeLimit( function normalizePathForComparison (line 565) | function normalizePathForComparison(filePath: string): string { function pathsEqual (line 582) | function pathsEqual(path1: string, path2: string): boolean { FILE: restored-src/src/utils/fileHistory.ts type BackupFileName (line 31) | type BackupFileName = string | null // The null value means the file doe... type FileHistoryBackup (line 33) | type FileHistoryBackup = { type FileHistorySnapshot (line 39) | type FileHistorySnapshot = { type FileHistoryState (line 45) | type FileHistoryState = { constant MAX_SNAPSHOTS (line 54) | const MAX_SNAPSHOTS = 100 type DiffStats (line 55) | type DiffStats = function fileHistoryEnabled (line 63) | function fileHistoryEnabled(): boolean { function fileHistoryEnabledSdk (line 73) | function fileHistoryEnabledSdk(): boolean { function fileHistoryTrackEdit (line 86) | async function fileHistoryTrackEdit( function fileHistoryMakeSnapshot (line 198) | async function fileHistoryMakeSnapshot( function fileHistoryRewind (line 347) | async function fileHistoryRewind( function fileHistoryCanRestore (line 399) | function fileHistoryCanRestore( function fileHistoryGetDiffStats (line 414) | async function fileHistoryGetDiffStats( function fileHistoryHasAnyChanges (line 494) | async function fileHistoryHasAnyChanges( function applySnapshot (line 537) | async function applySnapshot( function checkOriginFileChanged (line 600) | async function checkOriginFileChanged( function compareStatsAndContent (line 640) | function compareStatsAndContent>( function computeDiffStatsForFile (line 677) | async function computeDiffStatsForFile( function getBackupFileName (line 725) | function getBackupFileName(filePath: string, version: number): string { function resolveBackupPath (line 733) | function resolveBackupPath(backupFileName: string, sessionId?: string): ... function createBackup (line 748) | async function createBackup( function restoreBackup (line 804) | async function restoreBackup( function getBackupFileNameFirstVersion (line 847) | function getBackupFileNameFirstVersion( function maybeShortenFilePath (line 867) | function maybeShortenFilePath(filePath: string): string { function maybeExpandFilePath (line 878) | function maybeExpandFilePath(filePath: string): string { function fileHistoryRestoreStateFromLog (line 888) | function fileHistoryRestoreStateFromLog( function copyFileHistoryForResume (line 922) | async function copyFileHistoryForResume(log: LogOption): Promise { function notifyVscodeSnapshotFilesUpdated (line 1054) | async function notifyVscodeSnapshotFilesUpdated( function readFileAsyncOrNull (line 1101) | async function readFileAsyncOrNull(path: string): Promise { constant ENABLE_DUMP_STATE (line 1109) | const ENABLE_DUMP_STATE = false function maybeDumpStateForDebug (line 1110) | function maybeDumpStateForDebug(state: FileHistoryState): void { FILE: restored-src/src/utils/fileOperationAnalytics.ts function hashFilePath (line 9) | function hashFilePath( function hashFileContent (line 22) | function hashFileContent( constant MAX_CONTENT_HASH_SIZE (line 32) | const MAX_CONTENT_HASH_SIZE = 100 * 1024 function logFileOperation (line 37) | function logFileOperation(params: { FILE: restored-src/src/utils/filePersistence/filePersistence.ts function runFilePersistence (line 51) | async function runFilePersistence( function executeBYOCPersistence (line 150) | async function executeBYOCPersistence( function executeCloudPersistence (line 247) | function executeCloudPersistence(): FilesPersistedEventData { function executeFilePersistence (line 256) | async function executeFilePersistence( function isFilePersistenceEnabled (line 278) | function isFilePersistenceEnabled(): boolean { FILE: restored-src/src/utils/filePersistence/outputsScanner.ts function logDebug (line 17) | function logDebug(message: string): void { function getEnvironmentKind (line 25) | function getEnvironmentKind(): EnvironmentKind | null { function hasParentPath (line 33) | function hasParentPath( function hasPath (line 39) | function hasPath(entry: object): entry is { path: string; name: string } { function getEntryParentPath (line 43) | function getEntryParentPath(entry: object, fallback: string): string { function findModifiedFiles (line 62) | async function findModifiedFiles( FILE: restored-src/src/utils/fileRead.ts type LineEndingType (line 18) | type LineEndingType = 'CRLF' | 'LF' function detectEncodingForResolvedPath (line 20) | function detectEncodingForResolvedPath( function detectLineEndingsForString (line 51) | function detectLineEndingsForString(content: string): LineEndingType { function readFileSyncWithMetadata (line 75) | function readFileSyncWithMetadata(filePath: string): { function readFileSync (line 100) | function readFileSync(filePath: string): string { FILE: restored-src/src/utils/fileReadCache.ts type CachedFileData (line 4) | type CachedFileData = { class FileReadCache (line 14) | class FileReadCache { method readFile (line 22) | readFile(filePath: string): { content: string; encoding: BufferEncodin... method clear (line 73) | clear(): void { method invalidate (line 80) | invalidate(filePath: string): void { method getStats (line 87) | getStats(): { size: number; entries: string[] } { FILE: restored-src/src/utils/fileStateCache.ts type FileState (line 4) | type FileState = { constant READ_FILE_STATE_CACHE_SIZE (line 18) | const READ_FILE_STATE_CACHE_SIZE = 100 constant DEFAULT_MAX_CACHE_SIZE_BYTES (line 22) | const DEFAULT_MAX_CACHE_SIZE_BYTES = 25 * 1024 * 1024 class FileStateCache (line 30) | class FileStateCache { method constructor (line 33) | constructor(maxEntries: number, maxSizeBytes: number) { method get (line 41) | get(key: string): FileState | undefined { method set (line 45) | set(key: string, value: FileState): this { method has (line 50) | has(key: string): boolean { method delete (line 54) | delete(key: string): boolean { method clear (line 58) | clear(): void { method size (line 62) | get size(): number { method max (line 66) | get max(): number { method maxSize (line 70) | get maxSize(): number { method calculatedSize (line 74) | get calculatedSize(): number { method keys (line 78) | keys(): Generator { method entries (line 82) | entries(): Generator<[string, FileState]> { method dump (line 86) | dump(): ReturnType['dump']> { method load (line 90) | load(entries: ReturnType['dump']>): void { function createFileStateCacheWithSizeLimit (line 101) | function createFileStateCacheWithSizeLimit( function cacheToObject (line 109) | function cacheToObject( function cacheKeys (line 116) | function cacheKeys(cache: FileStateCache): string[] { function cloneFileStateCache (line 122) | function cloneFileStateCache(cache: FileStateCache): FileStateCache { function mergeFileStateCaches (line 129) | function mergeFileStateCaches( FILE: restored-src/src/utils/findExecutable.ts function findExecutable (line 11) | function findExecutable( FILE: restored-src/src/utils/fingerprint.ts constant FINGERPRINT_SALT (line 8) | const FINGERPRINT_SALT = '59cf53e54c78' function extractFirstMessageText (line 16) | function extractFirstMessageText( function computeFingerprint (line 50) | function computeFingerprint( function computeFingerprintFromMessages (line 71) | function computeFingerprintFromMessages( FILE: restored-src/src/utils/forkedAgent.ts type CacheSafeParams (line 57) | type CacheSafeParams = { function saveCacheSafeParams (line 75) | function saveCacheSafeParams(params: CacheSafeParams | null): void { function getLastCacheSafeParams (line 79) | function getLastCacheSafeParams(): CacheSafeParams | null { type ForkedAgentParams (line 83) | type ForkedAgentParams = { type ForkedAgentResult (line 115) | type ForkedAgentResult = { function createCacheSafeParams (line 131) | function createCacheSafeParams( function createGetAppStateWithAllowedTools (line 147) | function createGetAppStateWithAllowedTools( type PreparedForkedContext (line 176) | type PreparedForkedContext = { function prepareForkedCommandContext (line 191) | async function prepareForkedCommandContext( function extractResultText (line 237) | function extractResultText( type SubagentContextOverrides (line 260) | type SubagentContextOverrides = { function createSubagentContext (line 345) | function createSubagentContext( function runForkedAgent (line 489) | async function runForkedAgent({ function logForkAgentQueryEvent (line 631) | function logForkAgentQueryEvent({ FILE: restored-src/src/utils/format.ts function formatFileSize (line 9) | function formatFileSize(sizeInBytes: number): string { function formatSecondsShort (line 30) | function formatSecondsShort(ms: number): string { function formatDuration (line 34) | function formatDuration( function formatNumber (line 124) | function formatNumber(number: number): string { function formatTokens (line 133) | function formatTokens(count: number): string { type RelativeTimeStyle (line 137) | type RelativeTimeStyle = 'long' | 'short' | 'narrow' type RelativeTimeOptions (line 139) | type RelativeTimeOptions = { function formatRelativeTime (line 144) | function formatRelativeTime( function formatRelativeTimeAgo (line 186) | function formatRelativeTimeAgo( function formatLogMetadata (line 203) | function formatLogMetadata(log: { function formatResetTime (line 238) | function formatResetTime( function formatResetText (line 291) | function formatResetText( FILE: restored-src/src/utils/formatBriefTimestamp.ts function formatBriefTimestamp (line 16) | function formatBriefTimestamp( function getLocale (line 58) | function getLocale(): string | undefined { function startOfDay (line 79) | function startOfDay(d: Date): number { FILE: restored-src/src/utils/fpsTracker.ts type FpsMetrics (line 1) | type FpsMetrics = { class FpsTracker (line 6) | class FpsTracker { method record (line 11) | record(durationMs: number): void { method getMetrics (line 20) | getMetrics(): FpsMetrics | undefined { FILE: restored-src/src/utils/frontmatterParser.ts type FrontmatterData (line 10) | type FrontmatterData = { type ParsedMarkdown (line 61) | type ParsedMarkdown = { constant YAML_SPECIAL_CHARS (line 79) | const YAML_SPECIAL_CHARS = /[{}[\]*&#!|>%@`]|: / function quoteProblematicValues (line 85) | function quoteProblematicValues(frontmatterText: string): string { constant FRONTMATTER_REGEX (line 123) | const FRONTMATTER_REGEX = /^---\s*\n([\s\S]*?)---\s*\n?/ function parseFrontmatter (line 130) | function parseFrontmatter( function splitPathInFrontmatter (line 189) | function splitPathInFrontmatter(input: string | string[]): string[] { function expandBraces (line 240) | function expandBraces(pattern: string): string[] { function parsePositiveIntFromFrontmatter (line 275) | function parsePositiveIntFromFrontmatter( function coerceDescriptionToString (line 304) | function coerceDescriptionToString( function parseBooleanFrontmatter (line 332) | function parseBooleanFrontmatter(value: unknown): boolean { type FrontmatterShell (line 339) | type FrontmatterShell = 'bash' | 'powershell' constant FRONTMATTER_SHELLS (line 341) | const FRONTMATTER_SHELLS: readonly FrontmatterShell[] = ['bash', 'powers... function parseShellFrontmatter (line 351) | function parseShellFrontmatter( FILE: restored-src/src/utils/fsOperations.ts type FsOperations (line 23) | type FsOperations = { function safeResolvePath (line 138) | function safeResolvePath( function isDuplicatePath (line 187) | function isDuplicatePath( function resolveDeepestExistingAncestorSync (line 215) | function resolveDeepestExistingAncestorSync( function getPathsForPermissionCheck (line 288) | function getPathsForPermissionCheck(inputPath: string): string[] { method cwd (line 385) | cwd() { method existsSync (line 389) | existsSync(fsPath) { method stat (line 394) | async stat(fsPath) { method readdir (line 398) | async readdir(fsPath) { method unlink (line 402) | async unlink(fsPath) { method rmdir (line 406) | async rmdir(fsPath) { method rm (line 410) | async rm(fsPath, options) { method mkdir (line 414) | async mkdir(dirPath, options) { method readFile (line 427) | async readFile(fsPath, options) { method rename (line 431) | async rename(oldPath, newPath) { method statSync (line 435) | statSync(fsPath) { method lstatSync (line 440) | lstatSync(fsPath) { method readFileSync (line 445) | readFileSync(fsPath, options) { method readFileBytesSync (line 450) | readFileBytesSync(fsPath) { method readSync (line 455) | readSync(fsPath, options) { method appendFileSync (line 468) | appendFileSync(path, data, options) { method copyFileSync (line 489) | copyFileSync(src, dest) { method unlinkSync (line 494) | unlinkSync(path: string) { method renameSync (line 499) | renameSync(oldPath: string, newPath: string) { method linkSync (line 504) | linkSync(target: string, path: string) { method symlinkSync (line 509) | symlinkSync( method readlinkSync (line 518) | readlinkSync(path: string) { method realpathSync (line 523) | realpathSync(path: string) { method mkdirSync (line 528) | mkdirSync(dirPath, options) { method readdirSync (line 548) | readdirSync(dirPath) { method readdirStringSync (line 553) | readdirStringSync(dirPath) { method isDirEmptySync (line 558) | isDirEmptySync(dirPath) { method rmdirSync (line 564) | rmdirSync(dirPath) { method rmSync (line 569) | rmSync(path, options) { method createWriteStream (line 574) | createWriteStream(path: string) { method readFileBytes (line 578) | async readFileBytes(fsPath: string, maxBytes?: number) { function setFsImplementation (line 613) | function setFsImplementation(implementation: FsOperations): void { function getFsImplementation (line 621) | function getFsImplementation(): FsOperations { function setOriginalFsImplementation (line 629) | function setOriginalFsImplementation(): void { type ReadFileRangeResult (line 633) | type ReadFileRangeResult = { function readFileRange (line 644) | async function readFileRange( function tailFile (line 682) | async function tailFile( FILE: restored-src/src/utils/fullscreen.ts function isTmuxControlModeEnvHeuristic (line 29) | function isTmuxControlModeEnvHeuristic(): boolean { function probeTmuxControlModeSync (line 56) | function probeTmuxControlModeSync(): void { function isTmuxControlMode (line 97) | function isTmuxControlMode(): boolean { function _resetTmuxControlModeProbeForTesting (line 102) | function _resetTmuxControlModeProbeForTesting(): void { function isFullscreenEnvEnabled (line 112) | function isFullscreenEnvEnabled(): boolean { function isMouseTrackingEnabled (line 140) | function isMouseTrackingEnabled(): boolean { function isMouseClicksDisabled (line 151) | function isMouseClicksDisabled(): boolean { function isFullscreenActive (line 162) | function isFullscreenActive(): boolean { function maybeGetTmuxMouseHint (line 180) | async function maybeGetTmuxMouseHint(): Promise { function _resetForTesting (line 199) | function _resetForTesting(): void { FILE: restored-src/src/utils/generatedFiles.ts constant EXCLUDED_FILENAMES (line 9) | const EXCLUDED_FILENAMES = new Set([ constant EXCLUDED_EXTENSIONS (line 25) | const EXCLUDED_EXTENSIONS = new Set([ constant EXCLUDED_DIRECTORIES (line 38) | const EXCLUDED_DIRECTORIES = [ constant EXCLUDED_FILENAME_PATTERNS (line 62) | const EXCLUDED_FILENAME_PATTERNS = [ function isGeneratedFile (line 85) | function isGeneratedFile(filePath: string): boolean { function filterGeneratedFiles (line 134) | function filterGeneratedFiles(files: string[]): string[] { FILE: restored-src/src/utils/generators.ts constant NO_VALUE (line 1) | const NO_VALUE = Symbol('NO_VALUE') function lastX (line 3) | async function lastX(as: AsyncGenerator): Promise { function returnValue (line 14) | async function returnValue( type QueuedGenerator (line 24) | type QueuedGenerator = { function toArray (line 74) | async function toArray( FILE: restored-src/src/utils/genericProcessUtils.ts function isProcessRunning (line 20) | function isProcessRunning(pid: number): boolean { function getAncestorPidsAsync (line 36) | async function getAncestorPidsAsync( function getProcessCommand (line 94) | function getProcessCommand(pid: string | number): string | null { function getAncestorCommandsAsync (line 115) | async function getAncestorCommandsAsync( function getChildPids (line 163) | function getChildPids(pid: string | number): number[] { FILE: restored-src/src/utils/getWorktreePaths.ts function getWorktreePaths (line 18) | async function getWorktreePaths(cwd: string): Promise { FILE: restored-src/src/utils/getWorktreePathsPortable.ts function getWorktreePathsPortable (line 12) | async function getWorktreePathsPortable(cwd: string): Promise { FILE: restored-src/src/utils/ghPrStatus.ts type PrReviewState (line 5) | type PrReviewState = type PrStatus (line 13) | type PrStatus = { constant GH_TIMEOUT_MS (line 19) | const GH_TIMEOUT_MS = 5000 function deriveReviewState (line 26) | function deriveReviewState( function fetchPrStatus (line 46) | async function fetchPrStatus(): Promise { FILE: restored-src/src/utils/git.ts constant GIT_ROOT_NOT_FOUND (line 25) | const GIT_ROOT_NOT_FOUND = Symbol('git-root-not-found') function createFindGitRoot (line 99) | function createFindGitRoot(): { function createFindCanonicalGitRoot (line 197) | function createFindCanonicalGitRoot(): { function getGitDir (line 231) | function getGitDir(cwd: string): Promise { function isAtGitRoot (line 235) | async function isAtGitRoot(): Promise { function normalizeGitRemoteUrl (line 283) | function normalizeGitRemoteUrl(url: string): string | null { function getRepoRemoteHash (line 329) | async function getRepoRemoteHash(): Promise { type GitFileStatus (line 384) | type GitFileStatus = { type GitRepoState (line 463) | type GitRepoState = { function getGitState (line 472) | async function getGitState(): Promise { function getGithubRepo (line 504) | async function getGithubRepo(): Promise { type PreservedGitState (line 528) | type PreservedGitState = { constant MAX_FILE_SIZE_BYTES (line 548) | const MAX_FILE_SIZE_BYTES = 500 * 1024 * 1024 // 500MB per file constant MAX_TOTAL_SIZE_BYTES (line 549) | const MAX_TOTAL_SIZE_BYTES = 5 * 1024 * 1024 * 1024 // 5GB total constant MAX_FILE_COUNT (line 550) | const MAX_FILE_COUNT = 20000 constant SNIFF_BUFFER_SIZE (line 556) | const SNIFF_BUFFER_SIZE = 64 * 1024 function findRemoteBase (line 562) | async function findRemoteBase(): Promise { function isShallowClone (line 608) | function isShallowClone(): Promise { function captureUntrackedFiles (line 616) | async function captureUntrackedFiles(): Promise< function preserveGitStateForIssue (line 724) | async function preserveGitStateForIssue(): Promise { function readRawSymref (line 287) | async function readRawSymref( type CacheEntry (line 325) | type CacheEntry = { constant WATCH_INTERVAL_MS (line 331) | const WATCH_INTERVAL_MS = process.env.NODE_ENV === 'test' ? 10 : 1000 class GitFileWatcher (line 333) | class GitFileWatcher { method ensureStarted (line 342) | async ensureStarted(): Promise { method start (line 353) | private async start(): Promise { method watchPath (line 382) | private watchPath(path: string, callback: () => void): void { method watchCurrentBranchRef (line 391) | private async watchCurrentBranchRef(): Promise { method onHeadChanged (line 429) | private async onHeadChanged(): Promise { method invalidate (line 440) | private invalidate(): void { method stopWatching (line 446) | private stopWatching(): void { method get (line 463) | async get(key: string, compute: () => Promise): Promise { method reset (line 488) | reset(): void { function computeBranch (line 500) | async function computeBranch(): Promise { function computeHead (line 512) | async function computeHead(): Promise { function computeRemoteUrl (line 527) | async function computeRemoteUrl(): Promise { function computeDefaultBranch (line 544) | async function computeDefaultBranch(): Promise { function getCachedBranch (line 568) | function getCachedBranch(): Promise { function getCachedHead (line 572) | function getCachedHead(): Promise { function getCachedRemoteUrl (line 576) | function getCachedRemoteUrl(): Promise { function getCachedDefaultBranch (line 580) | function getCachedDefaultBranch(): Promise { function resetGitFileWatcher (line 585) | function resetGitFileWatcher(): void { function getHeadForDir (line 593) | async function getHeadForDir(cwd: string): Promise { function readWorktreeHeadSha (line 619) | async function readWorktreeHeadSha( function getRemoteUrlForDir (line 645) | async function getRemoteUrlForDir(cwd: string): Promise { function isShallowClone (line 667) | async function isShallowClone(): Promise { function getWorktreeCountFromFs (line 686) | async function getWorktreeCountFromFs(): Promise { FILE: restored-src/src/utils/git/gitignore.ts function isPathGitignored (line 23) | async function isPathGitignored( function getGlobalGitignorePath (line 43) | function getGlobalGitignorePath(): string { function addFileGlobRuleToGitignore (line 53) | async function addFileGlobRuleToGitignore( FILE: restored-src/src/utils/gitDiff.ts type GitDiffStats (line 16) | type GitDiffStats = { type PerFileStats (line 22) | type PerFileStats = { type GitDiffResult (line 29) | type GitDiffResult = { constant GIT_TIMEOUT_MS (line 35) | const GIT_TIMEOUT_MS = 5000 constant MAX_FILES (line 36) | const MAX_FILES = 50 constant MAX_DIFF_SIZE_BYTES (line 37) | const MAX_DIFF_SIZE_BYTES = 1_000_000 // 1 MB - skip files larger than this constant MAX_LINES_PER_FILE (line 38) | const MAX_LINES_PER_FILE = 400 // GitHub's auto-load limit constant MAX_FILES_FOR_DETAILS (line 39) | const MAX_FILES_FOR_DETAILS = 500 // Skip per-file details if more files... function fetchGitDiff (line 49) | async function fetchGitDiff(): Promise { function fetchGitDiffHunks (line 114) | async function fetchGitDiffHunks(): Promise< type NumstatResult (line 137) | type NumstatResult = { function parseGitNumstat (line 148) | function parseGitNumstat(stdout: string): NumstatResult { function parseGitDiff (line 200) | function parseGitDiff( function isInTransientGitState (line 307) | async function isInTransientGitState(): Promise { function fetchUntrackedFiles (line 334) | async function fetchUntrackedFiles( function parseShortstat (line 371) | function parseShortstat(stdout: string): GitDiffStats | null { constant SINGLE_FILE_DIFF_TIMEOUT_MS (line 384) | const SINGLE_FILE_DIFF_TIMEOUT_MS = 3000 type ToolUseDiff (line 386) | type ToolUseDiff = { function fetchSingleFileGitDiff (line 405) | async function fetchSingleFileGitDiff( function parseRawDiffToToolUseDiff (line 448) | function parseRawDiffToToolUseDiff( function getDiffRef (line 490) | async function getDiffRef(gitRoot: string): Promise { function generateSyntheticDiff (line 504) | async function generateSyntheticDiff( FILE: restored-src/src/utils/gitSettings.ts function shouldIncludeGitInstructions (line 13) | function shouldIncludeGitInstructions(): boolean { FILE: restored-src/src/utils/github/ghAuthStatus.ts type GhAuthStatus (line 4) | type GhAuthStatus = function getGhAuthStatus (line 17) | async function getGhAuthStatus(): Promise { FILE: restored-src/src/utils/githubRepoPathMapping.ts function updateGithubRepoPathMapping (line 23) | async function updateGithubRepoPathMapping(): Promise { function getKnownPathsForRepo (line 83) | function getKnownPathsForRepo(repo: string): string[] { function filterExistingPaths (line 94) | async function filterExistingPaths(paths: string[]): Promise { function validateRepoAtPath (line 105) | async function validateRepoAtPath( function removePathFromRepo (line 133) | function removePathFromRepo(repo: string, pathToRemove: string): void { FILE: restored-src/src/utils/glob.ts function extractGlobBaseDirectory (line 17) | function extractGlobBaseDirectory(pattern: string): { function glob (line 66) | async function glob( FILE: restored-src/src/utils/gracefulShutdown.ts function cleanupTerminalModes (line 59) | function cleanupTerminalModes(): void { function printResumeHint (line 144) | function printResumeHint(): void { function forceExit (line 193) | function forceExit(exitCode: number): never { function gracefulShutdownSync (line 336) | function gracefulShutdownSync( function isShuttingDown (line 367) | function isShuttingDown(): boolean { function resetShutdownState (line 372) | function resetShutdownState(): void { function getPendingShutdownForTesting (line 386) | function getPendingShutdownForTesting(): Promise | undefined { function gracefulShutdown (line 391) | async function gracefulShutdown( class CleanupTimeoutError (line 525) | class CleanupTimeoutError extends Error { method constructor (line 526) | constructor() { FILE: restored-src/src/utils/groupToolUses.ts type MessageWithoutProgress (line 13) | type MessageWithoutProgress = Exclude type GroupingResult (line 15) | type GroupingResult = { constant GROUPING_CACHE (line 23) | const GROUPING_CACHE = new WeakMap>() function getToolsWithGrouping (line 25) | function getToolsWithGrouping(tools: Tools): Set { function getToolUseInfo (line 34) | function getToolUseInfo( function applyGrouping (line 54) | function applyGrouping( FILE: restored-src/src/utils/handlePromptSubmit.ts function exit (line 35) | function exit(): void { type BaseExecutionParams (line 39) | type BaseExecutionParams = { type ExecuteUserInputParams (line 81) | type ExecuteUserInputParams = BaseExecutionParams & { type PromptInputHelpers (line 86) | type PromptInputHelpers = { type HandlePromptSubmitParams (line 92) | type HandlePromptSubmitParams = BaseExecutionParams & { function handlePromptSubmit (line 120) | async function handlePromptSubmit( function executeUserInput (line 396) | async function executeUserInput(params: ExecuteUserInputParams): Promise... FILE: restored-src/src/utils/hash.ts function djb2Hash (line 7) | function djb2Hash(str: string): number { function hashContent (line 19) | function hashContent(content: string): string { function hashPair (line 34) | function hashPair(a: string, b: string): string { FILE: restored-src/src/utils/headlessProfiler.ts constant DETAILED_PROFILING (line 27) | const DETAILED_PROFILING = isEnvTruthy(process.env.CLAUDE_CODE_PROFILE_S... constant STATSIG_SAMPLE_RATE (line 31) | const STATSIG_SAMPLE_RATE = 0.05 constant STATSIG_LOGGING_SAMPLED (line 33) | const STATSIG_LOGGING_SAMPLED = constant SHOULD_PROFILE (line 37) | const SHOULD_PROFILE = DETAILED_PROFILING || STATSIG_LOGGING_SAMPLED constant MARK_PREFIX (line 40) | const MARK_PREFIX = 'headless_' function clearHeadlessMarks (line 48) | function clearHeadlessMarks(): void { function headlessProfilerStartTurn (line 62) | function headlessProfilerStartTurn(): void { function headlessProfilerCheckpoint (line 83) | function headlessProfilerCheckpoint(name: string): void { function logHeadlessProfilerTurn (line 103) | function logHeadlessProfilerTurn(): void { FILE: restored-src/src/utils/heapDumpService.ts type HeapDumpResult (line 25) | type HeapDumpResult = { type MemoryDiagnostics (line 36) | type MemoryDiagnostics = { function captureMemoryDiagnostics (line 88) | async function captureMemoryDiagnostics( function performHeapDump (line 221) | async function performHeapDump( function writeHeapSnapshot (line 284) | async function writeHeapSnapshot(filepath: string): Promise { FILE: restored-src/src/utils/heatmap.ts type HeatmapOptions (line 5) | type HeatmapOptions = { type Percentiles (line 10) | type Percentiles = { function calculatePercentiles (line 19) | function calculatePercentiles( function generateHeatmap (line 39) | function generateHeatmap( function getIntensity (line 168) | function getIntensity( function getHeatmapChar (line 183) | function getHeatmapChar(intensity: number): string { FILE: restored-src/src/utils/highlightMatch.tsx function highlightMatch (line 9) | function highlightMatch(text: string, query: string): React.ReactNode { FILE: restored-src/src/utils/hooks.ts constant TOOL_HOOK_EXECUTION_TIMEOUT_MS (line 166) | const TOOL_HOOK_EXECUTION_TIMEOUT_MS = 10 * 60 * 1000 constant SESSION_END_HOOK_TIMEOUT_MS_DEFAULT (line 175) | const SESSION_END_HOOK_TIMEOUT_MS_DEFAULT = 1500 function getSessionEndHookTimeoutMs (line 176) | function getSessionEndHookTimeoutMs(): number { function executeInBackground (line 184) | function executeInBackground({ function shouldSkipHookDueToTrust (line 286) | function shouldSkipHookDueToTrust(): boolean { function createBaseHookInput (line 301) | function createBaseHookInput( type HookBlockingError (line 330) | interface HookBlockingError { type ElicitationResponse (line 336) | type ElicitationResponse = ElicitResult type HookResult (line 338) | interface HookResult { type AggregatedHookResult (line 359) | type AggregatedHookResult = { function validateHookJson (line 382) | function validateHookJson( function parseHookOutput (line 399) | function parseHookOutput(stdout: string): { function parseHttpHookOutput (line 453) | function parseHttpHookOutput(body: string): { function processHookJSONOutput (line 489) | function processHookJSONOutput({ function execCommandHook (line 747) | async function execCommandHook( function matchesPattern (line 1346) | function matchesPattern(matchQuery: string, matcher: string): boolean { type IfConditionMatcher (line 1383) | type IfConditionMatcher = (ifCondition: string) => boolean function prepareIfConditionMatcher (line 1390) | async function prepareIfConditionMatcher( type FunctionHookMatcher (line 1423) | type FunctionHookMatcher = { type MatchedHook (line 1432) | type MatchedHook = { function isInternalHook (line 1440) | function isInternalHook(matched: MatchedHook): boolean { function hookDedupKey (line 1453) | function hookDedupKey(m: MatchedHook, payload: string): string { function getPluginHookCounts (line 1461) | function getPluginHookCounts( function getHookTypeCounts (line 1484) | function getHookTypeCounts(hooks: MatchedHook[]): Record { function getHooksConfig (line 1492) | function getHooksConfig( function hasHookForEvent (line 1582) | function hasHookForEvent( function getMatchingHooks (line 1603) | async function getMatchingHooks( function getPreToolHookBlockingMessage (line 1882) | function getPreToolHookBlockingMessage( function getStopHookMessage (line 1894) | function getStopHookMessage(blockingError: HookBlockingError): string { function getTeammateIdleHookMessage (line 1903) | function getTeammateIdleHookMessage( function getTaskCreatedHookMessage (line 1914) | function getTaskCreatedHookMessage( function getTaskCompletedHookMessage (line 1925) | function getTaskCompletedHookMessage( function getUserPromptSubmitHookBlockingMessage (line 1936) | function getUserPromptSubmitHookBlockingMessage( function getJsonInput (line 2128) | function getJsonInput() { type HookOutsideReplResult (line 2974) | type HookOutsideReplResult = { function hasBlockingResult (line 2983) | function hasBlockingResult(results: HookOutsideReplResult[]): boolean { function executeHooksOutsideREPL (line 3003) | async function executeHooksOutsideREPL({ function executeNotificationHooks (line 3570) | async function executeNotificationHooks( function executeStopFailureHooks (line 3594) | async function executeStopFailureHooks( function executePreCompactHooks (line 3961) | async function executePreCompactHooks( function executePostCompactHooks (line 4034) | async function executePostCompactHooks( function executeSessionEndHooks (line 4097) | async function executeSessionEndHooks( type ConfigChangeSource (line 4194) | type ConfigChangeSource = function executeConfigChangeHooks (line 4214) | async function executeConfigChangeHooks( function executeEnvHooks (line 4241) | async function executeEnvHooks( function executeCwdChangedHooks (line 4260) | function executeCwdChangedHooks( function executeFileChangedHooks (line 4278) | function executeFileChangedHooks( type InstructionsLoadReason (line 4296) | type InstructionsLoadReason = type InstructionsMemoryType (line 4303) | type InstructionsMemoryType = 'User' | 'Project' | 'Local' | 'Managed' function hasInstructionsLoadedHook (line 4314) | function hasInstructionsLoadedHook(): boolean { function executeInstructionsLoadedHooks (line 4335) | async function executeInstructionsLoadedHooks( type ElicitationHookResult (line 4372) | type ElicitationHookResult = { type ElicitationResultHookResult (line 4378) | type ElicitationResultHookResult = { function parseElicitationHookOutput (line 4388) | function parseElicitationHookOutput( function executeElicitationHooks (line 4470) | async function executeElicitationHooks({ function executeElicitationResultHooks (line 4525) | async function executeElicitationResultHooks({ function executeStatusLineCommand (line 4584) | async function executeStatusLineCommand( function executeFileSuggestionCommand (line 4675) | async function executeFileSuggestionCommand( function executeFunctionHook (line 4740) | async function executeFunctionHook({ function executeHookCallback (line 4840) | async function executeHookCallback({ function hasWorktreeCreateHook (line 4910) | function hasWorktreeCreateHook(): boolean { function executeWorktreeCreateHook (line 4928) | async function executeWorktreeCreateHook( function executeWorktreeRemoveHook (line 4967) | async function executeWorktreeRemoveHook( function getHookDefinitionsForTelemetry (line 5005) | function getHookDefinitionsForTelemetry( FILE: restored-src/src/utils/hooks/AsyncHookRegistry.ts type PendingAsyncHook (line 12) | type PendingAsyncHook = { function registerPendingAsyncHook (line 30) | function registerPendingAsyncHook({ function getPendingAsyncHooks (line 85) | function getPendingAsyncHooks(): PendingAsyncHook[] { function finalizeHook (line 91) | async function finalizeHook( function checkForAsyncHookResponses (line 113) | async function checkForAsyncHookResponses(): Promise< function removeDeliveredAsyncHooks (line 270) | function removeDeliveredAsyncHooks(processIds: string[]): void { function finalizePendingAsyncHooks (line 281) | async function finalizePendingAsyncHooks(): Promise { function clearAllAsyncHooks (line 304) | function clearAllAsyncHooks(): void { FILE: restored-src/src/utils/hooks/apiQueryHookHelper.ts type ApiQueryHookContext (line 12) | type ApiQueryHookContext = REPLHookContext & { type ApiQueryHookConfig (line 16) | type ApiQueryHookConfig = { type ApiQueryResult (line 40) | type ApiQueryResult = function createApiQueryHook (line 56) | function createApiQueryHook( FILE: restored-src/src/utils/hooks/execAgentHook.ts function execAgentHook (line 36) | async function execAgentHook( FILE: restored-src/src/utils/hooks/execHttpHook.ts constant DEFAULT_HTTP_HOOK_TIMEOUT_MS (line 12) | const DEFAULT_HTTP_HOOK_TIMEOUT_MS = 10 * 60 * 1000 // 10 minutes (match... function getSandboxProxyConfig (line 21) | async function getSandboxProxyConfig(): Promise< function getHttpHookPolicy (line 49) | function getHttpHookPolicy(): { function urlMatchesPattern (line 64) | function urlMatchesPattern(url: string, pattern: string): boolean { function sanitizeHeaderValue (line 76) | function sanitizeHeaderValue(value: string): string { function interpolateEnvVars (line 89) | function interpolateEnvVars( function execHttpHook (line 123) | async function execHttpHook( FILE: restored-src/src/utils/hooks/execPromptHook.ts function execPromptHook (line 21) | async function execPromptHook( FILE: restored-src/src/utils/hooks/fileChangedWatcher.ts function setEnvHookNotifier (line 22) | function setEnvHookNotifier( function initializeFileChangedWatcher (line 28) | function initializeFileChangedWatcher(cwd: string): void { function resolveWatchPaths (line 48) | function resolveWatchPaths( function startWatching (line 67) | function startWatching(paths: string[]): void { function handleFileEvent (line 80) | function handleFileEvent( function updateWatchPaths (line 108) | function updateWatchPaths(paths: string[]): void { function restartWatching (line 122) | function restartWatching(): void { function onCwdChangedForHooks (line 133) | async function onCwdChangedForHooks( function dispose (line 177) | function dispose(): void { function resetFileChangedWatcherForTesting (line 189) | function resetFileChangedWatcherForTesting(): void { FILE: restored-src/src/utils/hooks/hookEvents.ts constant ALWAYS_EMITTED_HOOK_EVENTS (line 18) | const ALWAYS_EMITTED_HOOK_EVENTS = ['SessionStart', 'Setup'] as const constant MAX_PENDING_EVENTS (line 20) | const MAX_PENDING_EVENTS = 100 type HookStartedEvent (line 22) | type HookStartedEvent = { type HookProgressEvent (line 29) | type HookProgressEvent = { type HookResponseEvent (line 39) | type HookResponseEvent = { type HookExecutionEvent (line 51) | type HookExecutionEvent = type HookEventHandler (line 55) | type HookEventHandler = (event: HookExecutionEvent) => void function registerHookEventHandler (line 61) | function registerHookEventHandler( function emit (line 72) | function emit(event: HookExecutionEvent): void { function shouldEmit (line 83) | function shouldEmit(hookEvent: string): boolean { function emitHookStarted (line 93) | function emitHookStarted( function emitHookProgress (line 108) | function emitHookProgress(data: { function startHookProgressInterval (line 124) | function startHookProgressInterval(params: { function emitHookResponse (line 153) | function emitHookResponse(data: { function setAllHookEventsEnabled (line 184) | function setAllHookEventsEnabled(enabled: boolean): void { function clearHookEventState (line 188) | function clearHookEventState(): void { FILE: restored-src/src/utils/hooks/hookHelpers.ts function addArgumentsToPrompt (line 30) | function addArgumentsToPrompt( function createStructuredOutputTool (line 41) | function createStructuredOutputTool(): Tool { function registerStructuredOutputEnforcement (line 70) | function registerStructuredOutputEnforcement( FILE: restored-src/src/utils/hooks/hooksConfigManager.ts type MatcherMetadata (line 11) | type MatcherMetadata = { type HookEventMetadata (line 16) | type HookEventMetadata = { function groupHooksByEventAndMatcher (line 270) | function groupHooksByEventAndMatcher( function getSortedMatchersForEvent (line 368) | function getSortedMatchersForEvent( function getHooksForMatcher (line 380) | function getHooksForMatcher( function getMatcherMetadata (line 395) | function getMatcherMetadata( FILE: restored-src/src/utils/hooks/hooksConfigSnapshot.ts function getHooksFromAllowedSources (line 18) | function getHooksFromAllowedSources(): HooksSettings { function shouldAllowManagedHooksOnly (line 62) | function shouldAllowManagedHooksOnly(): boolean { function shouldDisableAllHooksIncludingManaged (line 83) | function shouldDisableAllHooksIncludingManaged(): boolean { function captureHooksConfigSnapshot (line 95) | function captureHooksConfigSnapshot(): void { function updateHooksConfigSnapshot (line 104) | function updateHooksConfigSnapshot(): void { function getHooksConfigFromSnapshot (line 119) | function getHooksConfigFromSnapshot(): HooksSettings | null { function resetHooksConfigSnapshot (line 130) | function resetHooksConfigSnapshot(): void { FILE: restored-src/src/utils/hooks/hooksSettings.ts type HookSource (line 15) | type HookSource = type IndividualHookConfig (line 22) | interface IndividualHookConfig { function isHookEqual (line 33) | function isHookEqual( function getHookDisplayText (line 68) | function getHookDisplayText( function getAllHooks (line 92) | function getAllHooks(appState: AppState): IndividualHookConfig[] { function getHooksForEvent (line 163) | function getHooksForEvent( function hookSourceDescriptionDisplayString (line 170) | function hookSourceDescriptionDisplayString(source: HookSource): string { function hookSourceHeaderDisplayString (line 192) | function hookSourceHeaderDisplayString(source: HookSource): string { function hookSourceInlineDisplayString (line 211) | function hookSourceInlineDisplayString(source: HookSource): string { function sortMatchersByPriority (line 230) | function sortMatchersByPriority( FILE: restored-src/src/utils/hooks/postSamplingHooks.ts type REPLHookContext (line 11) | type REPLHookContext = { type PostSamplingHook (line 20) | type PostSamplingHook = ( function registerPostSamplingHook (line 31) | function registerPostSamplingHook(hook: PostSamplingHook): void { function clearPostSamplingHooks (line 38) | function clearPostSamplingHooks(): void { function executePostSamplingHooks (line 45) | async function executePostSamplingHooks( FILE: restored-src/src/utils/hooks/registerFrontmatterHooks.ts function registerFrontmatterHooks (line 18) | function registerFrontmatterHooks( FILE: restored-src/src/utils/hooks/registerSkillHooks.ts function registerSkillHooks (line 20) | function registerSkillHooks( FILE: restored-src/src/utils/hooks/sessionHooks.ts type OnHookSuccess (line 9) | type OnHookSuccess = ( type FunctionHookCallback (line 15) | type FunctionHookCallback = ( type FunctionHook (line 24) | type FunctionHook = { type SessionHookMatcher (line 33) | type SessionHookMatcher = { type SessionStore (line 42) | type SessionStore = { type SessionHooksState (line 62) | type SessionHooksState = Map function addSessionHook (line 68) | function addSessionHook( function addFunctionHook (line 93) | function addFunctionHook( function removeFunctionHook (line 120) | function removeFunctionHook( function addHookToSession (line 167) | function addHookToSession( function removeSessionHook (line 225) | function removeSessionHook( type SessionDerivedHookMatcher (line 271) | type SessionDerivedHookMatcher = { function convertToHookMatchers (line 282) | function convertToHookMatchers( function getSessionHooks (line 302) | function getSessionHooks( type FunctionHookMatcher (line 332) | type FunctionHookMatcher = { function getSessionFunctionHooks (line 345) | function getSessionFunctionHooks( function getSessionHookCallback (line 397) | function getSessionHookCallback( function clearSessionHooks (line 437) | function clearSessionHooks( FILE: restored-src/src/utils/hooks/skillImprovement.ts constant TURN_BATCH_SIZE (line 31) | const TURN_BATCH_SIZE = 5 type SkillUpdate (line 33) | type SkillUpdate = { function formatRecentMessages (line 39) | function formatRecentMessages(messages: Message[]): string { function findProjectSkill (line 58) | function findProjectSkill() { function createSkillImprovementHook (line 68) | function createSkillImprovementHook() { function initSkillImprovement (line 175) | function initSkillImprovement(): void { function applySkillImprovement (line 188) | async function applySkillImprovement( FILE: restored-src/src/utils/hooks/ssrfGuard.ts function isBlockedAddress (line 42) | function isBlockedAddress(address: string): boolean { function isBlockedV4 (line 55) | function isBlockedV4(address: string): boolean { function isBlockedV6 (line 88) | function isBlockedV6(address: string): boolean { function expandIPv6Groups (line 133) | function expandIPv6Groups(addr: string): number[] | null { function extractMappedIPv4 (line 187) | function extractMappedIPv4(addr: string): string | null { function ssrfGuardedLookup (line 216) | function ssrfGuardedLookup( function ssrfError (line 285) | function ssrfError(hostname: string, address: string): NodeJS.ErrnoExcep... FILE: restored-src/src/utils/horizontalScroll.ts type HorizontalScrollWindow (line 1) | type HorizontalScrollWindow = { function calculateHorizontalScrollWindow (line 21) | function calculateHorizontalScrollWindow( FILE: restored-src/src/utils/http.ts function getUserAgent (line 18) | function getUserAgent(): string { function getMCPUserAgent (line 37) | function getMCPUserAgent(): string { function getWebFetchUserAgent (line 56) | function getWebFetchUserAgent(): string { type AuthHeaders (line 60) | type AuthHeaders = { function getAuthHeaders (line 69) | function getAuthHeaders(): AuthHeaders { function withOAuth401Retry (line 115) | async function withOAuth401Retry( FILE: restored-src/src/utils/hyperlink.ts constant OSC8_START (line 7) | const OSC8_START = '\x1b]8;;' constant OSC8_END (line 8) | const OSC8_END = '\x07' type HyperlinkOptions (line 10) | type HyperlinkOptions = { function createHyperlink (line 24) | function createHyperlink( FILE: restored-src/src/utils/iTermBackup.ts function markITerm2SetupComplete (line 7) | function markITerm2SetupComplete(): void { function getIterm2RecoveryInfo (line 14) | function getIterm2RecoveryInfo(): { function getITerm2PlistPath (line 25) | function getITerm2PlistPath(): string { type RestoreResult (line 34) | type RestoreResult = function checkAndRestoreITerm2Backup (line 43) | async function checkAndRestoreITerm2Backup(): Promise { FILE: restored-src/src/utils/ide.ts function isProcessRunning (line 49) | function isProcessRunning(pid: number): boolean { function makeAncestorPidLookup (line 61) | function makeAncestorPidLookup(): () => Promise> { type LockfileJsonContent (line 73) | type LockfileJsonContent = { type IdeLockfileInfo (line 82) | type IdeLockfileInfo = { type DetectedIDEInfo (line 92) | type DetectedIDEInfo = { type IdeType (line 102) | type IdeType = type IdeConfig (line 122) | type IdeConfig = { function isVSCodeIde (line 259) | function isVSCodeIde(ide: IdeType | null): boolean { function isJetBrainsIde (line 265) | function isJetBrainsIde(ide: IdeType | null): boolean { function getTerminalIdeType (line 287) | function getTerminalIdeType(): IdeType | null { function getSortedIdeLockfiles (line 298) | async function getSortedIdeLockfiles(): Promise { function readIdeLockfile (line 346) | async function readIdeLockfile(path: string): Promise { function cleanupStaleIdeLockfiles (line 522) | async function cleanupStaleIdeLockfiles(): Promise { type IDEExtensionInstallationStatus (line 583) | interface IDEExtensionInstallationStatus { function maybeInstallIDEExtension (line 590) | async function maybeInstallIDEExtension( function findAvailableIDE (line 626) | async function findAvailableIDE(): Promise { function detectIDEs (line 664) | async function detectIDEs( function maybeNotifyIDEConnected (line 829) | async function maybeNotifyIDEConnected(client: Client) { function hasAccessToIDEExtensionDiffFeature (line 838) | function hasAccessToIDEExtensionDiffFeature( constant EXTENSION_ID (line 847) | const EXTENSION_ID = function isIDEExtensionInstalled (line 852) | async function isIDEExtensionInstalled( function installIDEExtension (line 879) | async function installIDEExtension(ideType: IdeType): Promise { function isWindsurfInstalled (line 1056) | async function isWindsurfInstalled(): Promise { function isVSCodeInstalled (line 1061) | async function isVSCodeInstalled(): Promise { function detectRunningIDEsImpl (line 1075) | async function detectRunningIDEsImpl(): Promise { function detectRunningIDEs (line 1154) | async function detectRunningIDEs(): Promise { function detectRunningIDEsCached (line 1164) | async function detectRunningIDEsCached(): Promise { function resetDetectRunningIDEs (line 1175) | function resetDetectRunningIDEs(): void { function getConnectedIdeName (line 1179) | function getConnectedIdeName( function getIdeClientName (line 1188) | function getIdeClientName( constant EDITOR_DISPLAY_NAMES (line 1199) | const EDITOR_DISPLAY_NAMES: Record = { function toIDEDisplayName (line 1214) | function toIDEDisplayName(terminal: string | null): string { function getConnectedIdeClient (line 1251) | function getConnectedIdeClient( function closeOpenDiffs (line 1270) | async function closeOpenDiffs( function initializeIdeIntegration (line 1288) | async function initializeIdeIntegration( function installFromArtifactory (line 1392) | async function installFromArtifactory(command: string): Promise { FILE: restored-src/src/utils/idePathConversion.ts type IDEPathConverter (line 8) | interface IDEPathConverter { class WindowsToWSLConverter (line 25) | class WindowsToWSLConverter implements IDEPathConverter { method constructor (line 26) | constructor(private wslDistroName: string | undefined) {} method toLocalPath (line 28) | toLocalPath(windowsPath: string): string { method toIDEPath (line 58) | toIDEPath(wslPath: string): string { function checkWSLDistroMatch (line 79) | function checkWSLDistroMatch( FILE: restored-src/src/utils/idleTimeout.ts function createIdleTimeoutManager (line 11) | function createIdleTimeoutManager(isIdle: () => boolean): { FILE: restored-src/src/utils/imagePaste.ts type SupportedPlatform (line 27) | type SupportedPlatform = 'darwin' | 'linux' | 'win32' constant PASTE_THRESHOLD (line 30) | const PASTE_THRESHOLD = 800 function getClipboardCommands (line 31) | function getClipboardCommands() { type ImageWithDimensions (line 87) | type ImageWithDimensions = { function hasImageInClipboard (line 96) | async function hasImageInClipboard(): Promise { function getImageFromClipboard (line 124) | async function getImageFromClipboard(): Promise { constant IMAGE_EXTENSION_REGEX (line 270) | const IMAGE_EXTENSION_REGEX = /\.(png|jpe?g|gif|webp)$/i function removeOuterQuotes (line 277) | function removeOuterQuotes(text: string): string { function stripBackslashEscapes (line 293) | function stripBackslashEscapes(path: string): string { function isImageFilePath (line 324) | function isImageFilePath(text: string): boolean { function asImageFilePath (line 335) | function asImageFilePath(text: string): string | null { function tryReadImageFromPath (line 351) | async function tryReadImageFromPath( FILE: restored-src/src/utils/imageResizer.ts type ImageMediaType (line 22) | type ImageMediaType = 'image/png' | 'image/jpeg' | 'image/gif' | 'image/... constant ERROR_TYPE_MODULE_LOAD (line 25) | const ERROR_TYPE_MODULE_LOAD = 1 constant ERROR_TYPE_PROCESSING (line 26) | const ERROR_TYPE_PROCESSING = 2 constant ERROR_TYPE_UNKNOWN (line 27) | const ERROR_TYPE_UNKNOWN = 3 constant ERROR_TYPE_PIXEL_LIMIT (line 28) | const ERROR_TYPE_PIXEL_LIMIT = 4 constant ERROR_TYPE_MEMORY (line 29) | const ERROR_TYPE_MEMORY = 5 constant ERROR_TYPE_TIMEOUT (line 30) | const ERROR_TYPE_TIMEOUT = 6 constant ERROR_TYPE_VIPS (line 31) | const ERROR_TYPE_VIPS = 7 constant ERROR_TYPE_PERMISSION (line 32) | const ERROR_TYPE_PERMISSION = 8 class ImageResizeError (line 37) | class ImageResizeError extends Error { method constructor (line 38) | constructor(message: string) { function classifyImageError (line 50) | function classifyImageError(error: unknown): number { function hashString (line 130) | function hashString(str: string): number { type ImageDimensions (line 138) | type ImageDimensions = { type ResizeResult (line 145) | interface ResizeResult { type ImageCompressionContext (line 151) | interface ImageCompressionContext { type CompressedImageResult (line 159) | interface CompressedImageResult { function maybeResizeAndDownsampleImageBuffer (line 169) | async function maybeResizeAndDownsampleImageBuffer( type ImageBlockWithDimensions (line 435) | interface ImageBlockWithDimensions { function maybeResizeAndDownsampleImageBlock (line 445) | async function maybeResizeAndDownsampleImageBlock( function compressImageBuffer (line 498) | async function compressImageBuffer( function compressImageBufferWithTokenLimit (line 583) | async function compressImageBufferWithTokenLimit( function compressImageBlock (line 600) | async function compressImageBlock( function createCompressedImageResult (line 632) | function createCompressedImageResult( function tryProgressiveResizing (line 646) | async function tryProgressiveResizing( function applyFormatOptimizations (line 682) | function applyFormatOptimizations( function tryPalettePNG (line 702) | async function tryPalettePNG( function tryJPEGConversion (line 725) | async function tryJPEGConversion( function createUltraCompressedJPEG (line 745) | async function createUltraCompressedJPEG( function detectImageFormatFromBuffer (line 769) | function detectImageFormatFromBuffer(buffer: Buffer): ImageMediaType { function detectImageFormatFromBase64 (line 819) | function detectImageFormatFromBase64( function createImageMetadataText (line 835) | function createImageMetadataText( FILE: restored-src/src/utils/imageStore.ts constant IMAGE_STORE_DIR (line 9) | const IMAGE_STORE_DIR = 'image-cache' constant MAX_STORED_IMAGE_PATHS (line 10) | const MAX_STORED_IMAGE_PATHS = 200 function getImageStoreDir (line 18) | function getImageStoreDir(): string { function ensureImageStoreDir (line 25) | async function ensureImageStoreDir(): Promise { function getImagePath (line 33) | function getImagePath(imageId: number, mediaType: string): string { function cacheImagePath (line 41) | function cacheImagePath(content: PastedContent): string | null { function storeImage (line 54) | async function storeImage( function storeImages (line 84) | async function storeImages( function getStoredImagePath (line 104) | function getStoredImagePath(imageId: number): string | null { function clearStoredImagePaths (line 111) | function clearStoredImagePaths(): void { function evictOldestIfAtCap (line 115) | function evictOldestIfAtCap(): void { function cleanupOldImageCaches (line 129) | async function cleanupOldImageCaches(): Promise { FILE: restored-src/src/utils/imageValidation.ts type OversizedImage (line 8) | type OversizedImage = { class ImageSizeError (line 16) | class ImageSizeError extends Error { method constructor (line 17) | constructor(oversizedImages: OversizedImage[], maxSize: number) { function isBase64ImageBlock (line 40) | function isBase64ImageBlock( function validateImagesForAPI (line 65) | function validateImagesForAPI(messages: unknown[]): void { FILE: restored-src/src/utils/immediateCommand.ts function shouldInferenceConfigCommandBeImmediate (line 10) | function shouldInferenceConfigCommandBeImmediate(): boolean { FILE: restored-src/src/utils/inProcessTeammateHelpers.ts type SetAppState (line 24) | type SetAppState = (updater: (prev: AppState) => AppState) => void function findInProcessTeammateTaskId (line 33) | function findInProcessTeammateTaskId( function setAwaitingPlanApproval (line 55) | function setAwaitingPlanApproval( function handlePlanApprovalResponse (line 77) | function handlePlanApprovalResponse( function isPermissionRelatedResponse (line 97) | function isPermissionRelatedResponse(messageText: string): boolean { FILE: restored-src/src/utils/ink.ts constant DEFAULT_AGENT_THEME_COLOR (line 7) | const DEFAULT_AGENT_THEME_COLOR = 'cyan_FOR_SUBAGENTS_ONLY' function toInkColor (line 15) | function toInkColor(color: string | undefined): TextProps['color'] { FILE: restored-src/src/utils/intl.ts function getGraphemeSegmenter (line 13) | function getGraphemeSegmenter(): Intl.Segmenter { function firstGrapheme (line 26) | function firstGrapheme(text: string): string { function lastGrapheme (line 37) | function lastGrapheme(text: string): string { function getWordSegmenter (line 46) | function getWordSegmenter(): Intl.Segmenter { function getRelativeTimeFormat (line 56) | function getRelativeTimeFormat( function getTimeZone (line 72) | function getTimeZone(): string { function getSystemLocaleLanguage (line 84) | function getSystemLocaleLanguage(): string | undefined { FILE: restored-src/src/utils/jetbrains.ts constant PLUGIN_PREFIX (line 6) | const PLUGIN_PREFIX = 'claude-code-jetbrains-plugin' function buildCommonPluginDirectoryPaths (line 29) | function buildCommonPluginDirectoryPaths(ideName: string): string[] { function detectPluginDirectories (line 85) | async function detectPluginDirectories(ideName: string): Promise(data: string | Buffer): T[] { function parseJSONLBuffer (line 129) | function parseJSONLBuffer(buf: Buffer): T[] { function parseJSONLString (line 155) | function parseJSONLString(data: string): T[] { function parseJSONL (line 182) | function parseJSONL(data: string | Buffer): T[] { constant MAX_JSONL_READ_BYTES (line 192) | const MAX_JSONL_READ_BYTES = 100 * 1024 * 1024 function readJSONLFile (line 201) | async function readJSONLFile(filePath: string): Promise { function addItemToJSONCArray (line 228) | function addItemToJSONCArray(content: string, newItem: unknown): string { FILE: restored-src/src/utils/jsonRead.ts constant UTF8_BOM (line 12) | const UTF8_BOM = '\uFEFF' function stripBOM (line 14) | function stripBOM(content: string): string { FILE: restored-src/src/utils/keyboardShortcuts.ts constant MACOS_OPTION_SPECIAL_CHARS (line 4) | const MACOS_OPTION_SPECIAL_CHARS = { function isMacosOptionChar (line 10) | function isMacosOptionChar( FILE: restored-src/src/utils/lazySchema.ts function lazySchema (line 5) | function lazySchema(factory: () => T): () => T { FILE: restored-src/src/utils/listSessionsImpl.ts type SessionInfo (line 33) | type SessionInfo = { type ListSessionsOptions (line 47) | type ListSessionsOptions = { function parseSessionInfoFromLite (line 79) | function parseSessionInfoFromLite( type Candidate (line 156) | type Candidate = { function listCandidates (line 169) | async function listCandidates( function readCandidate (line 204) | async function readCandidate(c: Candidate): Promise { constant READ_BATCH_SIZE (line 224) | const READ_BATCH_SIZE = 32 function compareDesc (line 230) | function compareDesc(a: Candidate, b: Candidate): number { function applySortAndLimit (line 235) | async function applySortAndLimit( function readAllAndSort (line 278) | async function readAllAndSort(candidates: Candidate[]): Promise { function listSessionsImpl (line 439) | async function listSessionsImpl( FILE: restored-src/src/utils/localInstaller.ts function getLocalInstallDir (line 19) | function getLocalInstallDir(): string { function getLocalClaudePath (line 22) | function getLocalClaudePath(): string { function isRunningFromLocalInstallation (line 29) | function isRunningFromLocalInstallation(): boolean { function writeIfMissing (line 38) | async function writeIfMissing( function ensureLocalPackageEnvironment (line 56) | async function ensureLocalPackageEnvironment(): Promise { function installOrUpdateClaudePackage (line 97) | async function installOrUpdateClaudePackage( function localInstallationExists (line 144) | async function localInstallationExists(): Promise { function getShellType (line 156) | function getShellType(): string { FILE: restored-src/src/utils/lockfile.ts type Lockfile (line 14) | type Lockfile = typeof import('proper-lockfile') function getLockfile (line 18) | function getLockfile(): Lockfile { function lock (line 26) | function lock( function lockSync (line 33) | function lockSync(file: string, options?: LockOptions): () => void { function unlock (line 37) | function unlock(file: string, options?: UnlockOptions): Promise { function check (line 41) | function check(file: string, options?: CheckOptions): Promise { FILE: restored-src/src/utils/log.ts function getLogDisplayTitle (line 30) | function getLogDisplayTitle( function dateToFilename (line 60) | function dateToFilename(date: Date): string { constant MAX_IN_MEMORY_ERRORS (line 66) | const MAX_IN_MEMORY_ERRORS = 100 function addToInMemoryErrorLog (line 69) | function addToInMemoryErrorLog(errorInfo: { type ErrorLogSink (line 82) | type ErrorLogSink = { type QueuedErrorEvent (line 91) | type QueuedErrorEvent = function attachErrorLogSink (line 109) | function attachErrorLogSink(newSink: ErrorLogSink): void { function logError (line 158) | function logError(error: unknown): void { function getInMemoryErrors (line 201) | function getInMemoryErrors(): { error: string; timestamp: string }[] { function loadErrorLogs (line 209) | function loadErrorLogs(): Promise { function getErrorLogByIndex (line 218) | async function getErrorLogByIndex( function loadLogList (line 231) | async function loadLogList(path: string): Promise { function parseISOString (line 285) | function parseISOString(s: string): Date { function logMCPError (line 300) | function logMCPError(serverName: string, error: unknown): void { function logMCPDebug (line 314) | function logMCPDebug(serverName: string, message: string): void { function captureAPIRequest (line 331) | function captureAPIRequest( function _resetErrorLogForTesting (line 358) | function _resetErrorLogForTesting(): void { FILE: restored-src/src/utils/logoV2Utils.ts constant MAX_LEFT_WIDTH (line 18) | const MAX_LEFT_WIDTH = 50 constant MAX_USERNAME_LENGTH (line 19) | const MAX_USERNAME_LENGTH = 20 constant BORDER_PADDING (line 20) | const BORDER_PADDING = 4 constant DIVIDER_WIDTH (line 21) | const DIVIDER_WIDTH = 1 constant CONTENT_PADDING (line 22) | const CONTENT_PADDING = 2 type LayoutMode (line 24) | type LayoutMode = 'horizontal' | 'compact' type LayoutDimensions (line 26) | type LayoutDimensions = { function getLayoutMode (line 35) | function getLayoutMode(columns: number): LayoutMode { function calculateLayoutDimensions (line 43) | function calculateLayoutDimensions( function calculateOptimalLeftWidth (line 80) | function calculateOptimalLeftWidth( function formatWelcomeMessage (line 97) | function formatWelcomeMessage(username: string | null): string { function truncatePath (line 108) | function truncatePath(path: string, maxLength: number): string { function getRecentActivity (line 189) | async function getRecentActivity(): Promise { function getRecentActivitySync (line 224) | function getRecentActivitySync(): LogOption[] { function formatReleaseNoteForDisplay (line 231) | function formatReleaseNoteForDisplay( function getLogoDisplayData (line 242) | function getLogoDisplayData(): { function formatModelAndBilling (line 272) | function formatModelAndBilling( function getRecentReleaseNotesSync (line 312) | function getRecentReleaseNotesSync(maxItems: number): string[] { FILE: restored-src/src/utils/mailbox.ts type MessageSource (line 3) | type MessageSource = 'user' | 'teammate' | 'system' | 'tick' | 'task' type Message (line 5) | type Message = { type Waiter (line 14) | type Waiter = { class Mailbox (line 19) | class Mailbox { method length (line 25) | get length(): number { method revision (line 29) | get revision(): number { method send (line 33) | send(msg: Message): void { method poll (line 48) | poll(fn: (msg: Message) => boolean = () => true): Message | undefined { method receive (line 54) | receive(fn: (msg: Message) => boolean = () => true): Promise { method notify (line 70) | private notify(): void { FILE: restored-src/src/utils/managedEnv.ts function withoutSSHTunnelVars (line 23) | function withoutSSHTunnelVars( function withoutHostManagedProviderVars (line 45) | function withoutHostManagedProviderVars( function withoutCcdSpawnEnvKeys (line 71) | function withoutCcdSpawnEnvKeys( function filterSettingsEnv (line 85) | function filterSettingsEnv( constant TRUSTED_SETTING_SOURCES (line 105) | const TRUSTED_SETTING_SOURCES = [ function applySafeConfigEnvironmentVariables (line 124) | function applySafeConfigEnvironmentVariables(): void { function applyConfigEnvironmentVariables (line 187) | function applyConfigEnvironmentVariables(): void { FILE: restored-src/src/utils/managedEnvConstants.ts constant PROVIDER_MANAGED_ENV_VARS (line 14) | const PROVIDER_MANAGED_ENV_VARS = new Set([ constant PROVIDER_MANAGED_ENV_PREFIXES (line 58) | const PROVIDER_MANAGED_ENV_PREFIXES = [ function isProviderManagedEnvVar (line 64) | function isProviderManagedEnvVar(key: string): boolean { constant DANGEROUS_SHELL_SETTINGS (line 75) | const DANGEROUS_SHELL_SETTINGS = [ constant SAFE_ENV_VARS (line 108) | const SAFE_ENV_VARS = new Set([ FILE: restored-src/src/utils/markdown.ts constant EOL (line 17) | const EOL = '\n' function configureMarked (line 21) | function configureMarked(): void { function applyMarkdown (line 36) | function applyMarkdown( function formatToken (line 49) | function formatToken( constant ISSUE_REF_PATTERN (line 289) | const ISSUE_REF_PATTERN = function linkifyIssueReferences (line 295) | function linkifyIssueReferences(text: string): string { function numberToLetter (line 310) | function numberToLetter(n: number): string { constant ROMAN_VALUES (line 320) | const ROMAN_VALUES: ReadonlyArray<[number, string]> = [ function numberToRoman (line 336) | function numberToRoman(n: number): string { function getListNumber (line 347) | function getListNumber(listDepth: number, orderedListNumber: number): st... function padAligned (line 366) | function padAligned( FILE: restored-src/src/utils/markdownConfigLoader.ts constant CLAUDE_CONFIG_DIRECTORIES (line 29) | const CLAUDE_CONFIG_DIRECTORIES = [ type ClaudeConfigDirectory (line 38) | type ClaudeConfigDirectory = (typeof CLAUDE_CONFIG_DIRECTORIES)[number] type MarkdownFile (line 40) | type MarkdownFile = { function extractDescriptionFromMarkdown (line 52) | function extractDescriptionFromMarkdown( function parseToolListString (line 77) | function parseToolListString(toolsValue: unknown): string[] | null { function parseAgentToolsFromFrontmatter (line 113) | function parseAgentToolsFromFrontmatter( function parseSlashCommandToolsFromFrontmatter (line 132) | function parseSlashCommandToolsFromFrontmatter( function getFileIdentity (line 159) | async function getFileIdentity(filePath: string): Promise { function resolveStopBoundary (line 191) | function resolveStopBoundary(cwd: string): string | null { function getProjectDirsUpToHome (line 234) | function getProjectDirsUpToHome( function findMarkdownFilesNative (line 451) | async function findMarkdownFilesNative( function loadMarkdownFiles (line 546) | async function loadMarkdownFiles(dir: string): Promise< FILE: restored-src/src/utils/mcp/dateTimeParser.ts type DateTimeParseResult (line 6) | type DateTimeParseResult = function parseNaturalLanguageDateTime (line 23) | async function parseNaturalLanguageDateTime( function looksLikeISO8601 (line 117) | function looksLikeISO8601(input: string): boolean { FILE: restored-src/src/utils/mcp/elicitationValidation.ts type ValidationResult (line 15) | type ValidationResult = { constant STRING_FORMATS (line 21) | const STRING_FORMATS = { function isMultiSelectEnumSchema (line 52) | function isMultiSelectEnumSchema( function getMultiSelectValues (line 67) | function getMultiSelectValues(schema: MultiSelectEnumSchema): string[] { function getMultiSelectLabels (line 80) | function getMultiSelectLabels(schema: MultiSelectEnumSchema): string[] { function getMultiSelectLabel (line 93) | function getMultiSelectLabel( function getEnumValues (line 104) | function getEnumValues(schema: EnumSchema): string[] { function getEnumLabels (line 117) | function getEnumLabels(schema: EnumSchema): string[] { function getEnumLabel (line 130) | function getEnumLabel(schema: EnumSchema, value: string): string { function getZodSchema (line 135) | function getZodSchema(schema: PrimitiveSchemaDefinition): z.ZodTypeAny { function validateElicitationInput (line 225) | function validateElicitationInput( function getFormatHint (line 258) | function getFormatHint( function isDateTimeSchema (line 293) | function isDateTimeSchema( function validateElicitationInputAsync (line 307) | async function validateElicitationInputAsync( FILE: restored-src/src/utils/mcpInstructionsDelta.ts type McpInstructionsDelta (line 10) | type McpInstructionsDelta = { type ClientSideInstruction (line 24) | type ClientSideInstruction = { function isMcpInstructionsDeltaEnabled (line 37) | function isMcpInstructionsDeltaEnabled(): boolean { function getMcpInstructionsDelta (line 55) | function getMcpInstructionsDelta( FILE: restored-src/src/utils/mcpOutputStorage.ts function getFormatDescription (line 16) | function getFormatDescription( function getLargeOutputInstructions (line 39) | function getLargeOutputInstructions( function extensionForMimeType (line 66) | function extensionForMimeType(mimeType: string | undefined): string { function isBinaryContentType (line 125) | function isBinaryContentType(contentType: string): boolean { type PersistBinaryResult (line 138) | type PersistBinaryResult = function persistBinaryContent (line 148) | async function persistBinaryContent( function getBinaryBlobSavedMessage (line 181) | function getBinaryBlobSavedMessage( FILE: restored-src/src/utils/mcpValidation.ts constant MCP_TOKEN_COUNT_THRESHOLD_FACTOR (line 14) | const MCP_TOKEN_COUNT_THRESHOLD_FACTOR = 0.5 constant IMAGE_TOKEN_ESTIMATE (line 15) | const IMAGE_TOKEN_ESTIMATE = 1600 constant DEFAULT_MAX_MCP_OUTPUT_TOKENS (line 16) | const DEFAULT_MAX_MCP_OUTPUT_TOKENS = 25000 function getMaxMcpOutputTokens (line 26) | function getMaxMcpOutputTokens(): number { type MCPToolResult (line 49) | type MCPToolResult = string | ContentBlockParam[] | undefined function isTextBlock (line 51) | function isTextBlock(block: ContentBlockParam): block is TextBlockParam { function isImageBlock (line 55) | function isImageBlock(block: ContentBlockParam): block is ImageBlockParam { function getContentSizeEstimate (line 59) | function getContentSizeEstimate(content: MCPToolResult): number { function getMaxMcpOutputChars (line 77) | function getMaxMcpOutputChars(): number { function getTruncationMessage (line 81) | function getTruncationMessage(): string { function truncateString (line 87) | function truncateString(content: string, maxChars: number): string { function truncateContentBlocks (line 94) | async function truncateContentBlocks( function mcpContentNeedsTruncation (line 151) | async function mcpContentNeedsTruncation( function truncateMcpContent (line 180) | async function truncateMcpContent( function truncateMcpContentIfNeeded (line 200) | async function truncateMcpContentIfNeeded( FILE: restored-src/src/utils/mcpWebSocketTransport.ts constant WS_CONNECTING (line 12) | const WS_CONNECTING = 0 constant WS_OPEN (line 13) | const WS_OPEN = 1 type WebSocketLike (line 16) | type WebSocketLike = { class WebSocketTransport (line 22) | class WebSocketTransport implements Transport { method constructor (line 27) | constructor(private ws: WebSocketLike) { method handleError (line 117) | private handleError(error: unknown): void { method handleCloseCleanup (line 123) | private handleCloseCleanup(): void { method start (line 142) | async start(): Promise { method close (line 159) | async close(): Promise { method send (line 173) | async send(message: JSONRPCMessage): Promise { FILE: restored-src/src/utils/memoize.ts type CacheEntry (line 5) | type CacheEntry = { type MemoizedFunction (line 11) | type MemoizedFunction = { type LRUMemoizedFunction (line 18) | type LRUMemoizedFunction = { function memoizeWithTTL (line 40) | function memoizeWithTTL( function memoizeWithTTLAsync (line 120) | function memoizeWithTTLAsync( function memoizeWithLRU (line 234) | function memoizeWithLRU< FILE: restored-src/src/utils/memory/types.ts constant MEMORY_TYPE_VALUES (line 3) | const MEMORY_TYPE_VALUES = [ type MemoryType (line 12) | type MemoryType = (typeof MEMORY_TYPE_VALUES)[number] FILE: restored-src/src/utils/memory/versions.ts function projectIsInGitRepo (line 6) | function projectIsInGitRepo(cwd: string): boolean { FILE: restored-src/src/utils/memoryFileDetection.ts constant IS_WINDOWS (line 22) | const IS_WINDOWS = process.platform === 'win32' function toPosix (line 25) | function toPosix(p: string): string { function toComparable (line 31) | function toComparable(p: string): string { function detectSessionFileType (line 40) | function detectSessionFileType( function detectSessionPatternType (line 65) | function detectSessionPatternType( function isAutoMemFile (line 87) | function isAutoMemFile(filePath: string): boolean { type MemoryScope (line 94) | type MemoryScope = 'personal' | 'team' function memoryScopeForPath (line 106) | function memoryScopeForPath(filePath: string): MemoryScope | null { function isAgentMemFile (line 119) | function isAgentMemFile(filePath: string): boolean { function isAutoManagedMemoryFile (line 133) | function isAutoManagedMemoryFile(filePath: string): boolean { function isMemoryDirectory (line 152) | function isMemoryDirectory(dirPath: string): boolean { function isShellCommandTargetingMemory (line 215) | function isShellCommandTargetingMemory(command: string): boolean { function isAutoManagedMemoryPattern (line 277) | function isAutoManagedMemoryPattern(pattern: string): boolean { FILE: restored-src/src/utils/messagePredicates.ts function isHumanTurn (line 6) | function isHumanTurn(m: Message): m is UserMessage { FILE: restored-src/src/utils/messageQueueManager.ts type SetAppState (line 22) | type SetAppState = (f: (prev: AppState) => AppState) => void function logOperation (line 28) | function logOperation(operation: QueueOperation, content?: string): void { function notifySubscribers (line 58) | function notifySubscribers(): void { function getCommandQueueSnapshot (line 78) | function getCommandQueueSnapshot(): readonly QueuedCommand[] { function getCommandQueue (line 90) | function getCommandQueue(): QueuedCommand[] { function getCommandQueueLength (line 97) | function getCommandQueueLength(): number { function hasCommandsInQueue (line 104) | function hasCommandsInQueue(): boolean { function recheckCommandQueue (line 113) | function recheckCommandQueue(): void { function enqueue (line 128) | function enqueue(command: QueuedCommand): void { function enqueuePendingNotification (line 142) | function enqueuePendingNotification(command: QueuedCommand): void { constant PRIORITY_ORDER (line 151) | const PRIORITY_ORDER: Record = { function dequeue (line 167) | function dequeue( function dequeueAll (line 199) | function dequeueAll(): QueuedCommand[] { function peek (line 219) | function peek( function dequeueAllMatching (line 244) | function dequeueAllMatching( function remove (line 273) | function remove(commandsToRemove: QueuedCommand[]): void { function removeByFilter (line 298) | function removeByFilter( function clearCommandQueue (line 322) | function clearCommandQueue(): void { function resetCommandQueue (line 334) | function resetCommandQueue(): void { constant NON_EDITABLE_MODES (line 343) | const NON_EDITABLE_MODES = new Set([ function isPromptInputModeEditable (line 347) | function isPromptInputModeEditable( function isQueuedCommandEditable (line 359) | function isQueuedCommandEditable(cmd: QueuedCommand): boolean { function isQueuedCommandVisible (line 368) | function isQueuedCommandVisible(cmd: QueuedCommand): boolean { function extractTextFromValue (line 382) | function extractTextFromValue(value: string | ContentBlockParam[]): stri... function extractImagesFromValue (line 390) | function extractImagesFromValue( type PopAllEditableResult (line 415) | type PopAllEditableResult = { function popAllEditable (line 428) | function popAllEditable( function getPendingNotificationsSnapshot (line 494) | function getPendingNotificationsSnapshot(): readonly QueuedCommand[] { function dequeuePendingNotification (line 508) | function dequeuePendingNotification(): QueuedCommand | undefined { function getCommandsByMaxPriority (line 525) | function getCommandsByMaxPriority( function isSlashCommand (line 541) | function isSlashCommand(cmd: QueuedCommand): boolean { FILE: restored-src/src/utils/messages.ts type HookAttachmentWithName (line 89) | type HookAttachmentWithName = Exclude< function getTeammateMailbox (line 166) | function getTeammateMailbox(): typeof import('./teammateMailbox.js') { constant MEMORY_CORRECTION_HINT (line 176) | const MEMORY_CORRECTION_HINT = constant TOOL_REFERENCE_TURN_BOUNDARY (line 179) | const TOOL_REFERENCE_TURN_BOUNDARY = 'Tool loaded.' function withMemoryCorrectionHint (line 185) | function withMemoryCorrectionHint(message: string): string { function deriveShortMessageId (line 200) | function deriveShortMessageId(uuid: string): string { constant INTERRUPT_MESSAGE (line 207) | const INTERRUPT_MESSAGE = '[Request interrupted by user]' constant INTERRUPT_MESSAGE_FOR_TOOL_USE (line 208) | const INTERRUPT_MESSAGE_FOR_TOOL_USE = constant CANCEL_MESSAGE (line 210) | const CANCEL_MESSAGE = constant REJECT_MESSAGE (line 212) | const REJECT_MESSAGE = constant REJECT_MESSAGE_WITH_REASON_PREFIX (line 214) | const REJECT_MESSAGE_WITH_REASON_PREFIX = constant SUBAGENT_REJECT_MESSAGE (line 216) | const SUBAGENT_REJECT_MESSAGE = constant SUBAGENT_REJECT_MESSAGE_WITH_REASON_PREFIX (line 218) | const SUBAGENT_REJECT_MESSAGE_WITH_REASON_PREFIX = constant PLAN_REJECTION_PREFIX (line 220) | const PLAN_REJECTION_PREFIX = constant DENIAL_WORKAROUND_GUIDANCE (line 226) | const DENIAL_WORKAROUND_GUIDANCE = function AUTO_REJECT_MESSAGE (line 234) | function AUTO_REJECT_MESSAGE(toolName: string): string { function DONT_ASK_REJECT_MESSAGE (line 237) | function DONT_ASK_REJECT_MESSAGE(toolName: string): string { constant NO_RESPONSE_REQUESTED (line 240) | const NO_RESPONSE_REQUESTED = 'No response requested.' constant SYNTHETIC_TOOL_RESULT_PLACEHOLDER (line 246) | const SYNTHETIC_TOOL_RESULT_PLACEHOLDER = constant AUTO_MODE_REJECTION_PREFIX (line 250) | const AUTO_MODE_REJECTION_PREFIX = function isClassifierDenial (line 257) | function isClassifierDenial(content: string): boolean { function buildYoloRejectionMessage (line 267) | function buildYoloRejectionMessage(reason: string): string { function buildClassifierUnavailableMessage (line 288) | function buildClassifierUnavailableMessage( constant SYNTHETIC_MODEL (line 300) | const SYNTHETIC_MODEL = '' constant SYNTHETIC_MESSAGES (line 302) | const SYNTHETIC_MESSAGES = new Set([ function isSyntheticMessage (line 310) | function isSyntheticMessage(message: Message): boolean { function isSyntheticApiErrorMessage (line 321) | function isSyntheticApiErrorMessage( function getLastAssistantMessage (line 331) | function getLastAssistantMessage( function hasToolCallsInLastAssistantTurn (line 341) | function hasToolCallsInLastAssistantTurn(messages: Message[]): boolean { function baseCreateAssistantMessage (line 355) | function baseCreateAssistantMessage({ function createAssistantMessage (line 411) | function createAssistantMessage({ function createAssistantAPIErrorMessage (line 435) | function createAssistantAPIErrorMessage({ function createUserMessage (line 460) | function createUserMessage({ function prepareUserContent (line 525) | function prepareUserContent({ function createUserInterruptionMessage (line 545) | function createUserInterruptionMessage({ function createSyntheticUserCaveatMessage (line 566) | function createSyntheticUserCaveatMessage(): UserMessage { function formatCommandInputTags (line 576) | function formatCommandInputTags( function createModelSwitchBreadcrumbs (line 590) | function createModelSwitchBreadcrumbs( function createProgressMessage (line 603) | function createProgressMessage

({ function createToolResultStopMessage (line 622) | function createToolResultStopMessage( function extractTag (line 633) | function extractTag(html: string, tagName: string): string | null { function isNotEmptyMessage (line 689) | function isNotEmptyMessage(message: Message): boolean { function deriveUUID (line 725) | function deriveUUID(parentUUID: UUID, index: number): UUID { function normalizeMessages (line 741) | function normalizeMessages(messages: Message[]): NormalizedMessage[] { type ToolUseRequestMessage (line 825) | type ToolUseRequestMessage = NormalizedAssistantMessage & { function isToolUseRequestMessage (line 829) | function isToolUseRequestMessage( type ToolUseResultMessage (line 839) | type ToolUseResultMessage = NormalizedUserMessage & { function isToolUseResultMessage (line 843) | function isToolUseResultMessage( function reorderMessagesInUI (line 855) | function reorderMessagesInUI( function isHookAttachmentMessage (line 1028) | function isHookAttachmentMessage( function getInProgressHookCount (line 1044) | function getInProgressHookCount( function getResolvedHookCount (line 1059) | function getResolvedHookCount( function hasUnresolvedHooks (line 1079) | function hasUnresolvedHooks( function getToolResultIDs (line 1098) | function getToolResultIDs(normalizedMessages: NormalizedMessage[]): { function getSiblingToolUseIDs (line 1115) | function getSiblingToolUseIDs( type MessageLookups (line 1146) | type MessageLookups = { function buildMessageLookups (line 1170) | function buildMessageLookups( constant EMPTY_LOOKUPS (line 1343) | const EMPTY_LOOKUPS: MessageLookups = { constant EMPTY_STRING_SET (line 1362) | const EMPTY_STRING_SET: ReadonlySet = Object.freeze( function buildSubagentLookups (line 1373) | function buildSubagentLookups( function getSiblingToolUseIDsFromLookup (line 1421) | function getSiblingToolUseIDsFromLookup( function getProgressMessagesFromLookup (line 1435) | function getProgressMessagesFromLookup( function hasUnresolvedHooksFromLookup (line 1449) | function hasUnresolvedHooksFromLookup( function getToolUseIDs (line 1461) | function getToolUseIDs( function reorderAttachmentsForAPI (line 1481) | function reorderAttachmentsForAPI(messages: Message[]): Message[] { function isSystemLocalCommandMessage (line 1529) | function isSystemLocalCommandMessage( function stripUnavailableToolReferencesFromUserMessage (line 1541) | function stripUnavailableToolReferencesFromUserMessage( function appendMessageTagToUserMessage (line 1620) | function appendMessageTagToUserMessage(message: UserMessage): UserMessage { function stripToolReferenceBlocksFromUserMessage (line 1677) | function stripToolReferenceBlocksFromUserMessage( function stripCallerFieldFromAssistantMessage (line 1742) | function stripCallerFieldFromAssistantMessage( function contentHasToolReference (line 1778) | function contentHasToolReference( function ensureSystemReminderWrap (line 1797) | function ensureSystemReminderWrap(msg: UserMessage): UserMessage { function smooshSystemReminderSiblings (line 1835) | function smooshSystemReminderSiblings( function sanitizeErrorToolResultContent (line 1884) | function sanitizeErrorToolResultContent( function relocateToolReferenceSiblings (line 1933) | function relocateToolReferenceSiblings( function normalizeMessagesForAPI (line 1989) | function normalizeMessagesForAPI( function mergeUserMessagesAndToolResults (line 2372) | function mergeUserMessagesAndToolResults( function mergeAssistantMessages (line 2389) | function mergeAssistantMessages( function isToolResultMessage (line 2402) | function isToolResultMessage(msg: Message): boolean { function mergeUserMessages (line 2411) | function mergeUserMessages(a: UserMessage, b: UserMessage): UserMessage { function mergeAdjacentUserMessages (line 2451) | function mergeAdjacentUserMessages( function hoistToolResults (line 2470) | function hoistToolResults(content: ContentBlockParam[]): ContentBlockPar... function normalizeUserTextContent (line 2485) | function normalizeUserTextContent( function joinTextAtSeam (line 2505) | function joinTextAtSeam( type ToolResultContentItem (line 2517) | type ToolResultContentItem = Extract< function smooshIntoToolResult (line 2534) | function smooshIntoToolResult( function mergeUserContentBlocks (line 2600) | function mergeUserContentBlocks( function normalizeContentFromAPI (line 2651) | function normalizeContentFromAPI( function isEmptyMessageText (line 2753) | function isEmptyMessageText(text: string): boolean { constant STRIPPED_TAGS_RE (line 2758) | const STRIPPED_TAGS_RE = function stripPromptXMLTags (line 2761) | function stripPromptXMLTags(content: string): string { function getToolUseID (line 2765) | function getToolUseID(message: NormalizedMessage): string | null { function filterUnresolvedToolUses (line 2795) | function filterUnresolvedToolUses(messages: Message[]): Message[] { function getAssistantMessageText (line 2843) | function getAssistantMessageText(message: Message): string | null { function getUserMessageText (line 2861) | function getUserMessageText( function textForResubmit (line 2873) | function textForResubmit( function extractTextContent (line 2893) | function extractTextContent( function getContentText (line 2903) | function getContentText( type StreamingToolUse (line 2915) | type StreamingToolUse = { type StreamingThinking (line 2921) | type StreamingThinking = { function handleMessageFromStream (line 2930) | function handleMessageFromStream( function wrapInSystemReminder (line 3097) | function wrapInSystemReminder(content: string): string { function wrapMessagesInSystemReminder (line 3101) | function wrapMessagesInSystemReminder( function getPlanModeInstructions (line 3136) | function getPlanModeInstructions(attachment: { constant PLAN_PHASE4_CONTROL (line 3156) | const PLAN_PHASE4_CONTROL = `### Phase 4: Final Plan constant PLAN_PHASE4_TRIM (line 3165) | const PLAN_PHASE4_TRIM = `### Phase 4: Final Plan constant PLAN_PHASE4_CUT (line 3173) | const PLAN_PHASE4_CUT = `### Phase 4: Final Plan constant PLAN_PHASE4_CAP (line 3181) | const PLAN_PHASE4_CAP = `### Phase 4: Final Plan function getPlanPhase4Section (line 3190) | function getPlanPhase4Section(): string { function getPlanModeV2Instructions (line 3207) | function getPlanModeV2Instructions(attachment: { function getReadOnlyToolNames (line 3299) | function getReadOnlyToolNames(): string { function getPlanModeInterviewInstructions (line 3323) | function getPlanModeInterviewInstructions(attachment: { function getPlanModeV2SparseInstructions (line 3385) | function getPlanModeV2SparseInstructions(attachment: { function getPlanModeV2SubAgentInstructions (line 3399) | function getPlanModeV2SubAgentInstructions(attachment: { function getAutoModeInstructions (line 3419) | function getAutoModeInstructions(attachment: { function getAutoModeFullInstructions (line 3428) | function getAutoModeFullInstructions(): UserMessage[] { function getAutoModeSparseInstructions (line 3445) | function getAutoModeSparseInstructions(): UserMessage[] { function normalizeAttachmentForAPI (line 3453) | function normalizeAttachmentForAPI( function createToolResultMessage (line 4288) | function createToolResultMessage( function createToolUseMessage (line 4325) | function createToolUseMessage( function createSystemMessage (line 4335) | function createSystemMessage( function createPermissionRetryMessage (line 4354) | function createPermissionRetryMessage( function createBridgeStatusMessage (line 4369) | function createBridgeStatusMessage( function createScheduledTaskFireMessage (line 4385) | function createScheduledTaskFireMessage( function createStopHookSummaryMessage (line 4398) | function createStopHookSummaryMessage( function createTurnDurationMessage (line 4428) | function createTurnDurationMessage( function createAwaySummaryMessage (line 4447) | function createAwaySummaryMessage( function createMemorySavedMessage (line 4460) | function createMemorySavedMessage( function createAgentsKilledMessage (line 4473) | function createAgentsKilledMessage(): SystemAgentsKilledMessage { function createApiMetricsMessage (line 4483) | function createApiMetricsMessage(metrics: { function createCommandInputMessage (line 4516) | function createCommandInputMessage( function createCompactBoundaryMessage (line 4530) | function createCompactBoundaryMessage( function createMicrocompactBoundaryMessage (line 4557) | function createMicrocompactBoundaryMessage( function createSystemAPIErrorMessage (line 4585) | function createSystemAPIErrorMessage( function isCompactBoundaryMessage (line 4608) | function isCompactBoundaryMessage( function findLastCompactBoundaryIndex (line 4618) | function findLastCompactBoundaryIndex< function getMessagesAfterCompactBoundary (line 4643) | function getMessagesAfterCompactBoundary< function shouldShowUserMessage (line 4658) | function shouldShowUserMessage( function isThinkingMessage (line 4679) | function isThinkingMessage(message: Message): boolean { function countToolCalls (line 4691) | function countToolCalls( function hasSuccessfulToolCall (line 4719) | function hasSuccessfulToolCall( type ThinkingBlockType (line 4763) | type ThinkingBlockType = function isThinkingBlock (line 4771) | function isThinkingBlock( function filterTrailingThinkingFromLastAssistant (line 4781) | function filterTrailingThinkingFromLastAssistant( function hasOnlyWhitespaceTextContent (line 4835) | function hasOnlyWhitespaceTextContent( function filterWhitespaceOnlyAssistantMessages (line 4875) | function filterWhitespaceOnlyAssistantMessages( function ensureNonEmptyAssistantContent (line 4933) | function ensureNonEmptyAssistantContent( function filterOrphanedThinkingOnlyMessages (line 4997) | function filterOrphanedThinkingOnlyMessages( function stripSignatureBlocks (line 5066) | function stripSignatureBlocks(messages: Message[]): Message[] { function createToolUseSummaryMessage (line 5105) | function createToolUseSummaryMessage( function ensureToolResultPairing (line 5133) | function ensureToolResultPairing( function stripAdvisorBlocks (line 5466) | function stripAdvisorBlocks( function wrapCommandText (line 5496) | function wrapCommandText( FILE: restored-src/src/utils/messages/mappers.ts function toInternalMessages (line 26) | function toInternalMessages( type SDKCompactMetadata (line 76) | type SDKCompactMetadata = SDKCompactBoundaryMessage['compact_metadata'] function toSDKCompactMetadata (line 78) | function toSDKCompactMetadata( function fromSDKCompactMetadata (line 98) | function fromSDKCompactMetadata( function toSDKMessages (line 115) | function toSDKMessages(messages: Message[]): SDKMessage[] { function localCommandOutputToSDKAssistantMessage (line 196) | function localCommandOutputToSDKAssistantMessage( function toSDKRateLimitInfo (line 221) | function toSDKRateLimitInfo( function normalizeAssistantMessageForSDK (line 260) | function normalizeAssistantMessageForSDK( FILE: restored-src/src/utils/messages/systemInit.ts function sdkCompatToolName (line 23) | function sdkCompatToolName(name: string): string { type CommandLike (line 27) | type CommandLike = { name: string; userInvocable?: boolean } type SystemInitInputs (line 29) | type SystemInitInputs = { function buildSystemInitMessage (line 53) | function buildSystemInitMessage(inputs: SystemInitInputs): SDKMessage { FILE: restored-src/src/utils/model/agent.ts constant AGENT_MODEL_OPTIONS (line 12) | const AGENT_MODEL_OPTIONS = [...MODEL_ALIASES, 'inherit'] as const type AgentModelAlias (line 13) | type AgentModelAlias = (typeof AGENT_MODEL_OPTIONS)[number] type AgentModelOption (line 15) | type AgentModelOption = { function getDefaultSubagentModel (line 25) | function getDefaultSubagentModel(): string { function getAgentModel (line 37) | function getAgentModel( function aliasMatchesParentTier (line 110) | function aliasMatchesParentTier(alias: string, parentModel: string): boo... function getAgentModelDisplay (line 124) | function getAgentModelDisplay(model: string | undefined): string { function getAgentModelOptions (line 134) | function getAgentModelOptions(): AgentModelOption[] { FILE: restored-src/src/utils/model/aliases.ts constant MODEL_ALIASES (line 1) | const MODEL_ALIASES = [ type ModelAlias (line 10) | type ModelAlias = (typeof MODEL_ALIASES)[number] function isModelAlias (line 12) | function isModelAlias(modelInput: string): modelInput is ModelAlias { constant MODEL_FAMILY_ALIASES (line 21) | const MODEL_FAMILY_ALIASES = ['sonnet', 'opus', 'haiku'] as const function isModelFamilyAlias (line 23) | function isModelFamilyAlias(model: string): boolean { FILE: restored-src/src/utils/model/antModels.ts type AntModel (line 4) | type AntModel = { type AntModelSwitchCalloutConfig (line 18) | type AntModelSwitchCalloutConfig = { type AntModelOverrideConfig (line 24) | type AntModelOverrideConfig = { function getAntModelOverrideConfig (line 34) | function getAntModelOverrideConfig(): AntModelOverrideConfig | null { function getAntModels (line 44) | function getAntModels(): AntModel[] { function resolveAntModel (line 51) | function resolveAntModel( FILE: restored-src/src/utils/model/bedrock.ts function findFirstMatch (line 43) | function findFirstMatch( function createBedrockClient (line 50) | async function createBedrockClient() { function createBedrockRuntimeClient (line 96) | async function createBedrockRuntimeClient() { function isFoundationModel (line 181) | function isFoundationModel(modelId: string): boolean { constant BEDROCK_REGION_PREFIXES (line 189) | const BEDROCK_REGION_PREFIXES = ['us', 'eu', 'apac', 'global'] as const function extractModelIdFromArn (line 199) | function extractModelIdFromArn(modelId: string): string { type BedrockRegionPrefix (line 210) | type BedrockRegionPrefix = (typeof BEDROCK_REGION_PREFIXES)[number] function getBedrockRegionPrefix (line 222) | function getBedrockRegionPrefix( function applyBedrockRegionPrefix (line 248) | function applyBedrockRegionPrefix( FILE: restored-src/src/utils/model/check1mAccess.ts function isExtraUsageEnabled (line 11) | function isExtraUsageEnabled(): boolean { function checkOpus1mAccess (line 46) | function checkOpus1mAccess(): boolean { function checkSonnet1mAccess (line 60) | function checkSonnet1mAccess(): boolean { FILE: restored-src/src/utils/model/configs.ts type ModelConfig (line 4) | type ModelConfig = Record constant CLAUDE_3_7_SONNET_CONFIG (line 9) | const CLAUDE_3_7_SONNET_CONFIG = { constant CLAUDE_3_5_V2_SONNET_CONFIG (line 16) | const CLAUDE_3_5_V2_SONNET_CONFIG = { constant CLAUDE_3_5_HAIKU_CONFIG (line 23) | const CLAUDE_3_5_HAIKU_CONFIG = { constant CLAUDE_HAIKU_4_5_CONFIG (line 30) | const CLAUDE_HAIKU_4_5_CONFIG = { constant CLAUDE_SONNET_4_CONFIG (line 37) | const CLAUDE_SONNET_4_CONFIG = { constant CLAUDE_SONNET_4_5_CONFIG (line 44) | const CLAUDE_SONNET_4_5_CONFIG = { constant CLAUDE_OPUS_4_CONFIG (line 51) | const CLAUDE_OPUS_4_CONFIG = { constant CLAUDE_OPUS_4_1_CONFIG (line 58) | const CLAUDE_OPUS_4_1_CONFIG = { constant CLAUDE_OPUS_4_5_CONFIG (line 65) | const CLAUDE_OPUS_4_5_CONFIG = { constant CLAUDE_OPUS_4_6_CONFIG (line 72) | const CLAUDE_OPUS_4_6_CONFIG = { constant CLAUDE_SONNET_4_6_CONFIG (line 79) | const CLAUDE_SONNET_4_6_CONFIG = { constant ALL_MODEL_CONFIGS (line 87) | const ALL_MODEL_CONFIGS = { type ModelKey (line 101) | type ModelKey = keyof typeof ALL_MODEL_CONFIGS type CanonicalModelId (line 104) | type CanonicalModelId = constant CANONICAL_MODEL_IDS (line 108) | const CANONICAL_MODEL_IDS = Object.values(ALL_MODEL_CONFIGS).map( constant CANONICAL_ID_TO_KEY (line 113) | const CANONICAL_ID_TO_KEY: Record = FILE: restored-src/src/utils/model/contextWindowUpgradeCheck.ts function getAvailableUpgrade (line 9) | function getAvailableUpgrade(): { function getUpgradeMessage (line 35) | function getUpgradeMessage(context: 'warning' | 'tip'): string | null { FILE: restored-src/src/utils/model/deprecation.ts type DeprecatedModelInfo (line 9) | type DeprecatedModelInfo = { type NotDeprecatedInfo (line 15) | type NotDeprecatedInfo = { type DeprecationInfo (line 19) | type DeprecationInfo = DeprecatedModelInfo | NotDeprecatedInfo type DeprecationEntry (line 21) | type DeprecationEntry = { constant DEPRECATED_MODELS (line 33) | const DEPRECATED_MODELS: Record = { function getDeprecatedModelInfo (line 66) | function getDeprecatedModelInfo(modelId: string): DeprecationInfo { function getModelDeprecationWarning (line 88) | function getModelDeprecationWarning( FILE: restored-src/src/utils/model/model.ts type ModelShortName (line 32) | type ModelShortName = string type ModelName (line 33) | type ModelName = string type ModelSetting (line 34) | type ModelSetting = ModelName | ModelAlias | null function getSmallFastModel (line 36) | function getSmallFastModel(): ModelName { function isNonCustomOpusModel (line 40) | function isNonCustomOpusModel(model: ModelName): boolean { function getUserSpecifiedModelSetting (line 61) | function getUserSpecifiedModelSetting(): ModelSetting | undefined { function getMainLoopModel (line 92) | function getMainLoopModel(): ModelName { function getBestModel (line 100) | function getBestModel(): ModelName { function getDefaultOpusModel (line 105) | function getDefaultOpusModel(): ModelName { function getDefaultSonnetModel (line 119) | function getDefaultSonnetModel(): ModelName { function getDefaultHaikuModel (line 131) | function getDefaultHaikuModel(): ModelName { function getRuntimeMainLoopModel (line 145) | function getRuntimeMainLoopModel(params: { function getDefaultMainLoopModelSetting (line 178) | function getDefaultMainLoopModelSetting(): ModelName | ModelAlias { function getDefaultMainLoopModel (line 206) | function getDefaultMainLoopModel(): ModelName { function firstPartyNameToCanonical (line 217) | function firstPartyNameToCanonical(name: ModelName): ModelShortName { function getCanonicalName (line 279) | function getCanonicalName(fullModelName: ModelName): ModelShortName { function getClaudeAiUserDefaultModelDescription (line 286) | function getClaudeAiUserDefaultModelDescription( function renderDefaultModelSetting (line 298) | function renderDefaultModelSetting( function getOpus46PricingSuffix (line 307) | function getOpus46PricingSuffix(fastMode: boolean): string { function isOpus1mMergeEnabled (line 314) | function isOpus1mMergeEnabled(): boolean { function renderModelSetting (line 334) | function renderModelSetting(setting: ModelName | ModelAlias): string { function getPublicModelDisplayName (line 349) | function getPublicModelDisplayName(model: ModelName): string | null { function maskModelCodename (line 386) | function maskModelCodename(baseName: string): string { function renderModelName (line 395) | function renderModelName(model: ModelName): string { function getPublicModelName (line 425) | function getPublicModelName(model: ModelName): string { function parseUserSpecifiedModel (line 445) | function parseUserSpecifiedModel( function resolveSkillModelOverride (line 523) | function resolveSkillModelOverride( constant LEGACY_OPUS_FIRSTPARTY (line 538) | const LEGACY_OPUS_FIRSTPARTY = [ function isLegacyOpusFirstParty (line 545) | function isLegacyOpusFirstParty(model: string): boolean { function isLegacyModelRemapEnabled (line 552) | function isLegacyModelRemapEnabled(): boolean { function modelDisplayString (line 556) | function modelDisplayString(model: ModelSetting): string { function getMarketingNameForModel (line 570) | function getMarketingNameForModel(modelId: string): string | undefined { function normalizeModelStringForAPI (line 616) | function normalizeModelStringForAPI(model: string): string { FILE: restored-src/src/utils/model/modelAllowlist.ts function modelBelongsToFamily (line 10) | function modelBelongsToFamily(model: string, family: string): boolean { function prefixMatchesModel (line 27) | function prefixMatchesModel(modelName: string, prefix: string): boolean { function modelMatchesVersionPrefix (line 39) | function modelMatchesVersionPrefix(model: string, entry: string): boolean { function familyHasSpecificEntries (line 65) | function familyHasSpecificEntries( function isModelAllowed (line 100) | function isModelAllowed(model: string): boolean { FILE: restored-src/src/utils/model/modelCapabilities.ts type ModelCapability (line 36) | type ModelCapability = z.infer> function getCacheDir (line 38) | function getCacheDir(): string { function getCachePath (line 42) | function getCachePath(): string { function isModelCapabilitiesEligible (line 46) | function isModelCapabilitiesEligible(): boolean { function sortForMatching (line 54) | function sortForMatching(models: ModelCapability[]): ModelCapability[] { function getModelCapability (line 75) | function getModelCapability(model: string): ModelCapability | undefined { function refreshModelCapabilities (line 85) | async function refreshModelCapabilities(): Promise { FILE: restored-src/src/utils/model/modelOptions.ts type ModelOption (line 38) | type ModelOption = { function getDefaultOptionForUser (line 45) | function getDefaultOptionForUser(fastMode = false): ModelOption { function getCustomSonnetOption (line 76) | function getCustomSonnetOption(): ModelOption | undefined { function getSonnet46Option (line 96) | function getSonnet46Option(): ModelOption { function getCustomOpusOption (line 107) | function getCustomOpusOption(): ModelOption | undefined { function getOpus41Option (line 124) | function getOpus41Option(): ModelOption { function getOpus46Option (line 133) | function getOpus46Option(fastMode = false): ModelOption { function getSonnet46_1MOption (line 143) | function getSonnet46_1MOption(): ModelOption { function getOpus46_1MOption (line 154) | function getOpus46_1MOption(fastMode = false): ModelOption { function getCustomHaikuOption (line 165) | function getCustomHaikuOption(): ModelOption | undefined { function getHaiku45Option (line 181) | function getHaiku45Option(): ModelOption { function getHaiku35Option (line 192) | function getHaiku35Option(): ModelOption { function getHaikuOption (line 203) | function getHaikuOption(): ModelOption { function getMaxOpusOption (line 211) | function getMaxOpusOption(fastMode = false): ModelOption { function getMaxSonnet46_1MOption (line 219) | function getMaxSonnet46_1MOption(): ModelOption { function getMaxOpus46_1MOption (line 229) | function getMaxOpus46_1MOption(fastMode = false): ModelOption { function getMergedOpus1MOption (line 238) | function getMergedOpus1MOption(fastMode = false): ModelOption { function getOpusPlanOption (line 261) | function getOpusPlanOption(): ModelOption { function getModelOptionsBase (line 271) | function getModelOptionsBase(fastMode = false): ModelOption[] { function getModelFamilyInfo (line 385) | function getModelFamilyInfo( function getKnownModelOption (line 431) | function getKnownModelOption(model: string): ModelOption | null { function getModelOptions (line 461) | function getModelOptions(fastMode = false): ModelOption[] { function filterModelOptionsByAllowlist (line 531) | function filterModelOptionsByAllowlist(options: ModelOption[]): ModelOpt... FILE: restored-src/src/utils/model/modelStrings.ts type ModelStrings (line 21) | type ModelStrings = Record constant MODEL_KEYS (line 23) | const MODEL_KEYS = Object.keys(ALL_MODEL_CONFIGS) as ModelKey[] function getBuiltinModelStrings (line 25) | function getBuiltinModelStrings(provider: APIProvider): ModelStrings { function getBedrockModelStrings (line 33) | async function getBedrockModelStrings(): Promise { function applyModelOverrides (line 63) | function applyModelOverrides(ms: ModelStrings): ModelStrings { function resolveOverriddenModel (line 84) | function resolveOverriddenModel(modelId: string): string { function initModelStrings (line 118) | function initModelStrings(): void { function getModelStrings (line 136) | function getModelStrings(): ModelStrings { function ensureModelStringsInitialized (line 152) | async function ensureModelStringsInitialized(): Promise { FILE: restored-src/src/utils/model/modelSupportOverrides.ts type ModelCapabilityOverride (line 4) | type ModelCapabilityOverride = constant TIERS (line 11) | const TIERS = [ FILE: restored-src/src/utils/model/providers.ts type APIProvider (line 4) | type APIProvider = 'firstParty' | 'bedrock' | 'vertex' | 'foundry' function getAPIProvider (line 6) | function getAPIProvider(): APIProvider { function getAPIProviderForStatsig (line 16) | function getAPIProviderForStatsig(): AnalyticsMetadata_I_VERIFIED_THIS_I... function isFirstPartyAnthropicBaseUrl (line 25) | function isFirstPartyAnthropicBaseUrl(): boolean { FILE: restored-src/src/utils/model/validateModel.ts function validateModel (line 20) | async function validateModel( function handleValidationError (line 84) | function handleValidationError( function get3PFallbackSuggestion (line 144) | function get3PFallbackSuggestion(model: string): string | undefined { FILE: restored-src/src/utils/modelCost.ts type ModelCosts (line 27) | type ModelCosts = { constant COST_TIER_3_15 (line 36) | const COST_TIER_3_15 = { constant COST_TIER_15_75 (line 45) | const COST_TIER_15_75 = { constant COST_TIER_5_25 (line 54) | const COST_TIER_5_25 = { constant COST_TIER_30_150 (line 63) | const COST_TIER_30_150 = { constant COST_HAIKU_35 (line 72) | const COST_HAIKU_35 = { constant COST_HAIKU_45 (line 81) | const COST_HAIKU_45 = { constant DEFAULT_UNKNOWN_MODEL_COST (line 89) | const DEFAULT_UNKNOWN_MODEL_COST = COST_TIER_5_25 function getOpus46CostTier (line 94) | function getOpus46CostTier(fastMode: boolean): ModelCosts { constant MODEL_COSTS (line 104) | const MODEL_COSTS: Record = { function tokensToUSDCost (line 131) | function tokensToUSDCost(modelCosts: ModelCosts, usage: Usage): number { function getModelCosts (line 144) | function getModelCosts(model: string, usage: Usage): ModelCosts { function trackUnknownModelCost (line 166) | function trackUnknownModelCost(model: string, shortName: ModelShortName)... function calculateUSDCost (line 177) | function calculateUSDCost(resolvedModel: string, usage: Usage): number { function calculateCostFromTokens (line 186) | function calculateCostFromTokens( function formatPrice (line 204) | function formatPrice(price: number): string { function formatModelPricing (line 217) | function formatModelPricing(costs: ModelCosts): string { function getModelPricingString (line 226) | function getModelPricingString(model: string): string | undefined { FILE: restored-src/src/utils/modifiers.ts type ModifierKey (line 1) | type ModifierKey = 'shift' | 'command' | 'control' | 'option' function prewarmModifiers (line 9) | function prewarmModifiers(): void { function isModifierPressed (line 27) | function isModifierPressed(modifier: ModifierKey): boolean { FILE: restored-src/src/utils/mtls.ts type MTLSConfig (line 10) | type MTLSConfig = { type TLSConfig (line 16) | type TLSConfig = MTLSConfig & { function getWebSocketTLSOptions (line 100) | function getWebSocketTLSOptions(): tls.ConnectionOptions | undefined { function getTLSFetchOptions (line 117) | function getTLSFetchOptions(): { function clearMTLSCache (line 157) | function clearMTLSCache(): void { function configureGlobalMTLS (line 166) | function configureGlobalMTLS(): void { FILE: restored-src/src/utils/nativeInstaller/download.ts constant GCS_BUCKET_URL (line 25) | const GCS_BUCKET_URL = constant ARTIFACTORY_REGISTRY_URL (line 27) | const ARTIFACTORY_REGISTRY_URL = function getLatestVersionFromArtifactory (line 30) | async function getLatestVersionFromArtifactory( function getLatestVersionFromBinaryRepo (line 74) | async function getLatestVersionFromBinaryRepo( function getLatestVersion (line 112) | async function getLatestVersion( function downloadVersionFromArtifactory (line 151) | async function downloadVersionFromArtifactory( constant DEFAULT_STALL_TIMEOUT_MS (line 272) | const DEFAULT_STALL_TIMEOUT_MS = 60000 // 60 seconds constant MAX_DOWNLOAD_RETRIES (line 273) | const MAX_DOWNLOAD_RETRIES = 3 function getStallTimeoutMs (line 275) | function getStallTimeoutMs(): number { class StallTimeoutError (line 282) | class StallTimeoutError extends Error { method constructor (line 283) | constructor() { function downloadAndVerifyBinary (line 293) | async function downloadAndVerifyBinary( function downloadVersionFromBinaryRepo (line 382) | async function downloadVersionFromBinaryRepo( function downloadVersion (line 487) | async function downloadVersion( constant STALL_TIMEOUT_MS (line 522) | const STALL_TIMEOUT_MS = DEFAULT_STALL_TIMEOUT_MS FILE: restored-src/src/utils/nativeInstaller/installer.ts constant VERSION_RETENTION_COUNT (line 74) | const VERSION_RETENTION_COUNT = 2 constant LOCK_STALE_MS (line 79) | const LOCK_STALE_MS = 7 * 24 * 60 * 60 * 1000 type SetupMessage (line 81) | type SetupMessage = { function getPlatform (line 87) | function getPlatform(): string { function getBinaryName (line 111) | function getBinaryName(platform: string): string { function getBaseDirectories (line 115) | function getBaseDirectories() { function isPossibleClaudeBinary (line 134) | async function isPossibleClaudeBinary(filePath: string): Promise { function getVersionPaths (line 153) | async function getVersionPaths(version: string) { function tryWithVersionLock (line 181) | async function tryWithVersionLock( function atomicMoveToInstallPath (line 300) | async function atomicMoveToInstallPath( function installVersionFromPackage (line 328) | async function installVersionFromPackage( function installVersionFromBinary (line 385) | async function installVersionFromBinary( function installVersion (line 424) | async function installVersion( function performVersionUpdate (line 441) | async function performVersionUpdate( function versionIsAvailable (line 490) | async function versionIsAvailable(version: string): Promise { function updateLatest (line 495) | async function updateLatest( function removeDirectoryIfEmpty (line 623) | async function removeDirectoryIfEmpty(path: string): Promise { function updateSymlink (line 639) | async function updateSymlink( function checkInstall (line 800) | async function checkInstall( type InstallLatestResult (line 942) | type InstallLatestResult = { function installLatest (line 956) | function installLatest( function installLatestImpl (line 976) | async function installLatestImpl( function getVersionFromSymlink (line 1018) | async function getVersionFromSymlink( function getLockFilePathFromVersionPath (line 1033) | function getLockFilePathFromVersionPath( function lockCurrentVersion (line 1048) | async function lockCurrentVersion(): Promise { function logLockAcquisitionError (line 1158) | function logLockAcquisitionError(versionPath: string, lockError: unknown) { function forceRemoveLock (line 1171) | async function forceRemoveLock(versionFilePath: string): Promise { function cleanupOldVersions (line 1184) | async function cleanupOldVersions(): Promise { function isNpmSymlink (line 1446) | async function isNpmSymlink(executablePath: string): Promise { function removeInstalledSymlink (line 1465) | async function removeInstalledSymlink(): Promise { function cleanupShellAliases (line 1492) | async function cleanupShellAliases(): Promise { function manualRemoveNpmPackage (line 1525) | async function manualRemoveNpmPackage( function attemptNpmUninstall (line 1609) | async function attemptNpmUninstall( function cleanupNpmInstallations (line 1656) | async function cleanupNpmInstallations(): Promise<{ FILE: restored-src/src/utils/nativeInstaller/packageManagers.ts type PackageManager (line 11) | type PackageManager = function isDistroFamily (line 45) | function isDistroFamily( function detectMise (line 62) | function detectMise(): boolean { function detectAsdf (line 81) | function detectAsdf(): boolean { function detectHomebrew (line 103) | function detectHomebrew(): boolean { function detectWinget (line 133) | function detectWinget(): boolean { FILE: restored-src/src/utils/nativeInstaller/pidLock.ts function isPidBasedLockingEnabled (line 35) | function isPidBasedLockingEnabled(): boolean { type VersionLockContent (line 54) | type VersionLockContent = { type LockInfo (line 64) | type LockInfo = { constant FALLBACK_STALE_MS (line 76) | const FALLBACK_STALE_MS = 2 * 60 * 60 * 1000 function isProcessRunning (line 82) | function isProcessRunning(pid: number): boolean { function isClaudeProcess (line 101) | function isClaudeProcess(pid: number, expectedExecPath: string): boolean { function readLockContent (line 137) | function readLockContent( function isLockActive (line 164) | function isLockActive(lockFilePath: string): boolean { function writeLockFile (line 210) | function writeLockFile( function tryAcquireLock (line 238) | async function tryAcquireLock( function acquireProcessLifetimeLock (line 299) | async function acquireProcessLifetimeLock( function withLock (line 330) | async function withLock( function getAllLockInfo (line 352) | function getAllLockInfo(locksDir: string): LockInfo[] { function cleanupStaleLocks (line 394) | function cleanupStaleLocks(locksDir: string): number { FILE: restored-src/src/utils/notebook.ts constant LARGE_OUTPUT_THRESHOLD (line 20) | const LARGE_OUTPUT_THRESHOLD = 10000 function isLargeOutputs (line 22) | function isLargeOutputs( function processOutputText (line 34) | function processOutputText(text: string | string[] | undefined): string { function extractImage (line 41) | function extractImage( function processOutput (line 59) | function processOutput(output: NotebookCellOutput) { function processCell (line 83) | function processCell( function cellContentToToolResult (line 119) | function cellContentToToolResult(cell: NotebookCellSource): TextBlockPar... function cellOutputToToolResult (line 134) | function cellOutputToToolResult(output: NotebookCellSourceOutput) { function getToolResultFromCell (line 155) | function getToolResultFromCell(cell: NotebookCellSource) { function readNotebook (line 164) | async function readNotebook( function mapNotebookCellsToToolResult (line 188) | function mapNotebookCellsToToolResult( function parseCellId (line 217) | function parseCellId(cellId: string): number | undefined { FILE: restored-src/src/utils/objectGroupBy.ts function objectGroupBy (line 4) | function objectGroupBy( FILE: restored-src/src/utils/pasteStore.ts constant PASTE_STORE_DIR (line 8) | const PASTE_STORE_DIR = 'paste-cache' function getPasteStoreDir (line 13) | function getPasteStoreDir(): string { function hashPastedText (line 21) | function hashPastedText(content: string): string { function getPastePath (line 28) | function getPastePath(hash: string): string { function storePastedText (line 37) | async function storePastedText( function retrievePastedText (line 59) | async function retrievePastedText(hash: string): Promise { function cleanupOldPastes (line 76) | async function cleanupOldPastes(cutoffDate: Date): Promise { FILE: restored-src/src/utils/path.ts function expandPath (line 32) | function expandPath(path: string, baseDir?: string): string { function toRelativePath (line 95) | function toRelativePath(absolutePath: string): string { function getDirectoryForPath (line 109) | function getDirectoryForPath(path: string): string { function containsPathTraversal (line 133) | function containsPathTraversal(path: string): boolean { function normalizePathForConfigKey (line 149) | function normalizePathForConfigKey(path: string): string { FILE: restored-src/src/utils/pdf.ts type PDFError (line 14) | type PDFError = { type PDFResult (line 25) | type PDFResult = function readPDF (line 34) | async function readPDF(filePath: string): Promise< function getPDFPageCount (line 119) | async function getPDFPageCount( type PDFExtractPagesResult (line 137) | type PDFExtractPagesResult = { function resetPdftoppmCache (line 152) | function resetPdftoppmCache(): void { function isPdftoppmAvailable (line 160) | async function isPdftoppmAvailable(): Promise { function extractPDFPages (line 179) | async function extractPDFPages( FILE: restored-src/src/utils/pdfUtils.ts constant DOCUMENT_EXTENSIONS (line 4) | const DOCUMENT_EXTENSIONS = new Set(['pdf']) function parsePDFPageRange (line 16) | function parsePDFPageRange( function isPDFSupported (line 59) | function isPDFSupported(): boolean { function isPDFExtension (line 67) | function isPDFExtension(ext: string): boolean { FILE: restored-src/src/utils/peerAddress.ts function parseAddress (line 8) | function parseAddress(to: string): { FILE: restored-src/src/utils/permissions/PermissionMode.ts type ModeColorKey (line 26) | type ModeColorKey = type PermissionModeConfig (line 34) | type PermissionModeConfig = { constant PERMISSION_MODE_CONFIG (line 42) | const PERMISSION_MODE_CONFIG: Partial< function isExternalPermissionMode (line 97) | function isExternalPermissionMode( function getModeConfig (line 107) | function getModeConfig(mode: PermissionMode): PermissionModeConfig { function toExternalPermissionMode (line 111) | function toExternalPermissionMode( function permissionModeFromString (line 117) | function permissionModeFromString(str: string): PermissionMode { function permissionModeTitle (line 123) | function permissionModeTitle(mode: PermissionMode): string { function isDefaultMode (line 127) | function isDefaultMode(mode: PermissionMode | undefined): boolean { function permissionModeShortTitle (line 131) | function permissionModeShortTitle(mode: PermissionMode): string { function permissionModeSymbol (line 135) | function permissionModeSymbol(mode: PermissionMode): string { function getModeColor (line 139) | function getModeColor(mode: PermissionMode): ModeColorKey { FILE: restored-src/src/utils/permissions/PermissionPromptToolResultSchema.ts type Input (line 28) | type Input = z.infer> type Output (line 79) | type Output = z.infer> function permissionPromptToolResultToPermissionDecision (line 84) | function permissionPromptToolResultToPermissionDecision( FILE: restored-src/src/utils/permissions/PermissionResult.ts function getRuleBehaviorDescription (line 24) | function getRuleBehaviorDescription( FILE: restored-src/src/utils/permissions/PermissionUpdate.ts function extractRules (line 30) | function extractRules( function hasRules (line 45) | function hasRules(updates: PermissionUpdate[] | undefined): boolean { function applyPermissionUpdate (line 55) | function applyPermissionUpdate( function applyPermissionUpdates (line 196) | function applyPermissionUpdates( function supportsPersistence (line 208) | function supportsPersistence( function persistPermissionUpdate (line 222) | function persistPermissionUpdate(update: PermissionUpdate): void { function persistPermissionUpdates (line 349) | function persistPermissionUpdates(updates: PermissionUpdate[]): void { function createReadRuleSuggestion (line 361) | function createReadRuleSuggestion( FILE: restored-src/src/utils/permissions/autoModeState.ts function setAutoModeActive (line 11) | function setAutoModeActive(active: boolean): void { function isAutoModeActive (line 15) | function isAutoModeActive(): boolean { function setAutoModeFlagCli (line 19) | function setAutoModeFlagCli(passed: boolean): void { function getAutoModeFlagCli (line 23) | function getAutoModeFlagCli(): boolean { function setAutoModeCircuitBroken (line 27) | function setAutoModeCircuitBroken(broken: boolean): void { function isAutoModeCircuitBroken (line 31) | function isAutoModeCircuitBroken(): boolean { function _resetForTesting (line 35) | function _resetForTesting(): void { FILE: restored-src/src/utils/permissions/bashClassifier.ts constant PROMPT_PREFIX (line 3) | const PROMPT_PREFIX = 'prompt:' type ClassifierResult (line 5) | type ClassifierResult = { type ClassifierBehavior (line 12) | type ClassifierBehavior = 'deny' | 'ask' | 'allow' function extractPromptDescription (line 14) | function extractPromptDescription( function createPromptRuleContent (line 20) | function createPromptRuleContent(description: string): string { function isClassifierPermissionsEnabled (line 24) | function isClassifierPermissionsEnabled(): boolean { function getBashPromptDenyDescriptions (line 28) | function getBashPromptDenyDescriptions(_context: unknown): string[] { function getBashPromptAskDescriptions (line 32) | function getBashPromptAskDescriptions(_context: unknown): string[] { function getBashPromptAllowDescriptions (line 36) | function getBashPromptAllowDescriptions(_context: unknown): string[] { function classifyBashCommand (line 40) | async function classifyBashCommand( function generateGenericDescription (line 55) | async function generateGenericDescription( FILE: restored-src/src/utils/permissions/bypassPermissionsKillswitch.ts function checkAndDisableBypassPermissionsIfNeeded (line 19) | async function checkAndDisableBypassPermissionsIfNeeded( function resetBypassPermissionsCheck (line 53) | function resetBypassPermissionsCheck(): void { function useKickOffCheckAndDisableBypassPermissionsIfNeeded (line 57) | function useKickOffCheckAndDisableBypassPermissionsIfNeeded(): void { function checkAndDisableAutoModeIfNeeded (line 74) | async function checkAndDisableAutoModeIfNeeded( function resetAutoModeGateCheck (line 123) | function resetAutoModeGateCheck(): void { function useKickOffCheckAndDisableAutoModeIfNeeded (line 127) | function useKickOffCheckAndDisableAutoModeIfNeeded(): void { FILE: restored-src/src/utils/permissions/classifierDecision.ts constant TERMINAL_CAPTURE_TOOL_NAME (line 27) | const TERMINAL_CAPTURE_TOOL_NAME = feature('TERMINAL_PANEL') constant OVERFLOW_TEST_TOOL_NAME (line 32) | const OVERFLOW_TEST_TOOL_NAME = feature('OVERFLOW_TEST_TOOL') constant VERIFY_PLAN_EXECUTION_TOOL_NAME (line 37) | const VERIFY_PLAN_EXECUTION_TOOL_NAME = constant WORKFLOW_TOOL_NAME (line 43) | const WORKFLOW_TOOL_NAME = feature('WORKFLOW_SCRIPTS') constant SAFE_YOLO_ALLOWLISTED_TOOLS (line 56) | const SAFE_YOLO_ALLOWLISTED_TOOLS = new Set([ function isAutoModeAllowlistedTool (line 96) | function isAutoModeAllowlistedTool(toolName: string): boolean { FILE: restored-src/src/utils/permissions/classifierShared.ts function extractToolUseBlock (line 15) | function extractToolUseBlock( function parseClassifierResponse (line 30) | function parseClassifierResponse( FILE: restored-src/src/utils/permissions/dangerousPatterns.ts constant CROSS_PLATFORM_CODE_EXEC (line 18) | const CROSS_PLATFORM_CODE_EXEC = [ constant DANGEROUS_BASH_PATTERNS (line 44) | const DANGEROUS_BASH_PATTERNS: readonly string[] = [ FILE: restored-src/src/utils/permissions/denialTracking.ts type DenialTrackingState (line 7) | type DenialTrackingState = { constant DENIAL_LIMITS (line 12) | const DENIAL_LIMITS = { function createDenialTrackingState (line 17) | function createDenialTrackingState(): DenialTrackingState { function recordDenial (line 24) | function recordDenial(state: DenialTrackingState): DenialTrackingState { function recordSuccess (line 32) | function recordSuccess(state: DenialTrackingState): DenialTrackingState { function shouldFallbackToPrompting (line 40) | function shouldFallbackToPrompting(state: DenialTrackingState): boolean { FILE: restored-src/src/utils/permissions/filesystem.ts constant DANGEROUS_FILES (line 57) | const DANGEROUS_FILES = [ constant DANGEROUS_DIRECTORIES (line 74) | const DANGEROUS_DIRECTORIES = [ function normalizeCaseForComparison (line 90) | function normalizeCaseForComparison(path: string): string { function getClaudeSkillScope (line 101) | function getClaudeSkillScope( constant DIR_SEP (line 161) | const DIR_SEP = posix.sep function relativePath (line 170) | function relativePath(from: string, to: string): string { function toPosixPath (line 187) | function toPosixPath(path: string): string { function getSettingsPaths (line 194) | function getSettingsPaths(): string[] { function isClaudeSettingsPath (line 200) | function isClaudeSettingsPath(filePath: string): boolean { function isClaudeConfigFilePath (line 225) | function isClaudeConfigFilePath(filePath: string): boolean { function isSessionPlanFile (line 245) | function isSessionPlanFile(absolutePath: string): boolean { function getSessionMemoryDir (line 261) | function getSessionMemoryDir(): string { function getSessionMemoryPath (line 269) | function getSessionMemoryPath(): string { function isSessionMemoryPath (line 274) | function isSessionMemoryPath(absolutePath: string): boolean { function isProjectDirPath (line 284) | function isProjectDirPath(absolutePath: string): boolean { function isScratchpadEnabled (line 298) | function isScratchpadEnabled(): boolean { function getClaudeTempDirName (line 307) | function getClaudeTempDirName(): string { function getProjectTempDir (line 376) | function getProjectTempDir(): string { function getScratchpadDir (line 384) | function getScratchpadDir(): string { function ensureScratchpadDir (line 394) | async function ensureScratchpadDir(): Promise { function isScratchpadPath (line 410) | function isScratchpadPath(absolutePath: string): boolean { function isDangerousFilePathToAutoEdit (line 435) | function isDangerousFilePathToAutoEdit(path: string): boolean { function hasSuspiciousWindowsPathPattern (line 537) | function hasSuspiciousWindowsPathPattern(path: string): boolean { function checkPathSafetyForAutoEdit (line 620) | function checkPathSafetyForAutoEdit( function allWorkingDirectories (line 667) | function allWorkingDirectories( function pathInAllowedWorkingPath (line 683) | function pathInAllowedWorkingPath( function pathInWorkingPath (line 709) | function pathInWorkingPath(path: string, workingPath: string): boolean { function rootPathForSource (line 746) | function rootPathForSource(source: PermissionRuleSource): string { function prependDirSep (line 761) | function prependDirSep(path: string): string { function normalizePatternToPath (line 765) | function normalizePatternToPath({ function normalizePatternsToPath (line 800) | function normalizePatternsToPath( function getFileReadIgnorePatterns (line 837) | function getFileReadIgnorePatterns( function patternWithRoot (line 853) | function patternWithRoot( function getPatternsByRoot (line 919) | function getPatternsByRoot( function matchingRuleForInput (line 955) | function matchingRuleForInput( function checkReadPermissionForTool (line 1030) | function checkReadPermissionForTool( function checkWritePermissionForTool (line 1205) | function checkWritePermissionForTool( function generateSuggestions (line 1414) | function generateSuggestions( function checkEditableInternalPath (line 1479) | function checkEditableInternalPath( function checkReadableInternalPath (line 1611) | function checkReadableInternalPath( FILE: restored-src/src/utils/permissions/getNextPermissionMode.ts function canCycleToAuto (line 17) | function canCycleToAuto(ctx: ToolPermissionContext): boolean { function getNextPermissionMode (line 34) | function getNextPermissionMode( function cyclePermissionMode (line 88) | function cyclePermissionMode( FILE: restored-src/src/utils/permissions/pathValidation.ts constant MAX_DIRS_TO_LIST (line 24) | const MAX_DIRS_TO_LIST = 5 constant GLOB_PATTERN_REGEX (line 25) | const GLOB_PATTERN_REGEX = /[*?[\]{}]/ type FileOperationType (line 27) | type FileOperationType = 'read' | 'write' | 'create' type PathCheckResult (line 29) | type PathCheckResult = { type ResolvedPathCheckResult (line 34) | type ResolvedPathCheckResult = PathCheckResult & { function formatDirectoryList (line 38) | function formatDirectoryList(directories: string[]): string { function getGlobBaseDirectory (line 57) | function getGlobBaseDirectory(path: string): string { function expandTilde (line 80) | function expandTilde(path: string): string { function isPathInSandboxWriteAllowlist (line 101) | function isPathInSandboxWriteAllowlist(resolvedPath: string): boolean { function isPathAllowed (line 141) | function isPathAllowed( function validateGlobPattern (line 269) | function validateGlobPattern( constant WINDOWS_DRIVE_ROOT_REGEX (line 318) | const WINDOWS_DRIVE_ROOT_REGEX = /^[A-Za-z]:\/?$/ constant WINDOWS_DRIVE_CHILD_REGEX (line 319) | const WINDOWS_DRIVE_CHILD_REGEX = /^[A-Za-z]:\/[^/]+$/ function isDangerousRemovalPath (line 331) | function isDangerousRemovalPath(resolvedPath: string): boolean { function validatePath (line 373) | function validatePath( FILE: restored-src/src/utils/permissions/permissionExplainer.ts type RiskLevel (line 14) | type RiskLevel = 'LOW' | 'MEDIUM' | 'HIGH' constant RISK_LEVEL_NUMERIC (line 17) | const RISK_LEVEL_NUMERIC: Record = { constant ERROR_TYPE_PARSE (line 24) | const ERROR_TYPE_PARSE = 1 constant ERROR_TYPE_NETWORK (line 25) | const ERROR_TYPE_NETWORK = 2 constant ERROR_TYPE_UNKNOWN (line 26) | const ERROR_TYPE_UNKNOWN = 3 type PermissionExplanation (line 28) | type PermissionExplanation = { type GenerateExplanationParams (line 35) | type GenerateExplanationParams = { constant SYSTEM_PROMPT (line 43) | const SYSTEM_PROMPT = `Analyze shell commands and explain what they do, ... constant EXPLAIN_COMMAND_TOOL (line 46) | const EXPLAIN_COMMAND_TOOL = { function formatToolInput (line 86) | function formatToolInput(input: unknown): string { function extractConversationContext (line 102) | function extractConversationContext( function isPermissionExplainerEnabled (line 139) | function isPermissionExplainerEnabled(): boolean { function generatePermissionExplanation (line 147) | async function generatePermissionExplanation({ FILE: restored-src/src/utils/permissions/permissionRuleParser.ts constant BRIEF_TOOL_NAME (line 10) | const BRIEF_TOOL_NAME: string | null = constant LEGACY_TOOL_NAME_ALIASES (line 21) | const LEGACY_TOOL_NAME_ALIASES: Record = { function normalizeLegacyToolName (line 31) | function normalizeLegacyToolName(name: string): string { function getLegacyToolNames (line 35) | function getLegacyToolNames(canonicalName: string): string[] { function escapeRuleContent (line 55) | function escapeRuleContent(content: string): string { function unescapeRuleContent (line 74) | function unescapeRuleContent(content: string): string { function permissionRuleValueFromString (line 93) | function permissionRuleValueFromString( function permissionRuleValueToString (line 144) | function permissionRuleValueToString( function findFirstUnescapedChar (line 158) | function findFirstUnescapedChar(str: string, char: string): number { function findLastUnescapedChar (line 181) | function findLastUnescapedChar(str: string, char: string): number { FILE: restored-src/src/utils/permissions/permissionSetup.ts function isDangerousBashPermission (line 94) | function isDangerousBashPermission( function isDangerousPowerShellPermission (line 157) | function isDangerousPowerShellPermission( function isDangerousTaskPermission (line 240) | function isDangerousTaskPermission( function formatPermissionSource (line 247) | function formatPermissionSource(source: PermissionRuleSource): string { type DangerousPermissionInfo (line 258) | type DangerousPermissionInfo = { function isDangerousClassifierPermission (line 272) | function isDangerousClassifierPermission( function findDangerousClassifierPermissions (line 295) | function findDangerousClassifierPermissions( function isOverlyBroadBashAllowRule (line 351) | function isOverlyBroadBashAllowRule( function isOverlyBroadPowerShellAllowRule (line 365) | function isOverlyBroadPowerShellAllowRule( function findOverlyBroadBashPermissions (line 379) | function findOverlyBroadBashPermissions( function findOverlyBroadPowerShellPermissions (line 417) | function findOverlyBroadPowerShellPermissions( function isPermissionUpdateDestination (line 456) | function isPermissionUpdateDestination( function removeDangerousPermissions (line 472) | function removeDangerousPermissions( function stripDangerousPermissionsForAutoMode (line 510) | function stripDangerousPermissionsForAutoMode( function restoreDangerousPermissions (line 561) | function restoreDangerousPermissions( function transitionPermissionMode (line 597) | function transitionPermissionMode( function parseBaseToolsFromCLI (line 652) | function parseBaseToolsFromCLI(baseTools: string[]): string[] { function isSymlinkTo (line 670) | function isSymlinkTo({ function initialPermissionModeFromCLI (line 689) | function initialPermissionModeFromCLI({ function parseToolListFromCLI (line 813) | function parseToolListFromCLI(tools: string[]): string[] { function initializeToolPermissionContext (line 872) | async function initializeToolPermissionContext({ type AutoModeGateCheckResult (line 1035) | type AutoModeGateCheckResult = { type AutoModeUnavailableReason (line 1045) | type AutoModeUnavailableReason = 'settings' | 'circuit-breaker' | 'model' function getAutoModeUnavailableNotification (line 1047) | function getAutoModeUnavailableNotification( function verifyAutoModeGateAccess (line 1078) | async function verifyAutoModeGateAccess( function shouldDisableBypassPermissions (line 1265) | function shouldDisableBypassPermissions(): Promise { function isAutoModeDisabledBySettings (line 1269) | function isAutoModeDisabledBySettings(): boolean { function isAutoModeGateEnabled (line 1283) | function isAutoModeGateEnabled(): boolean { function getAutoModeUnavailableReason (line 1294) | function getAutoModeUnavailableReason(): AutoModeUnavailableReason | null { type AutoModeEnabledState (line 1311) | type AutoModeEnabledState = 'enabled' | 'disabled' | 'opt-in' constant AUTO_MODE_ENABLED_DEFAULT (line 1313) | const AUTO_MODE_ENABLED_DEFAULT: AutoModeEnabledState = 'disabled' function parseAutoModeEnabledState (line 1315) | function parseAutoModeEnabledState(value: unknown): AutoModeEnabledState { function getAutoModeEnabledState (line 1328) | function getAutoModeEnabledState(): AutoModeEnabledState { constant NO_CACHED_AUTO_MODE_CONFIG (line 1335) | const NO_CACHED_AUTO_MODE_CONFIG = Symbol('no-cached-auto-mode-config') function getAutoModeEnabledStateIfCached (line 1344) | function getAutoModeEnabledStateIfCached(): function hasAutoModeOptInAnySource (line 1362) | function hasAutoModeOptInAnySource(): boolean { function isBypassPermissionsModeDisabled (line 1371) | function isBypassPermissionsModeDisabled(): boolean { function createDisabledBypassPermissionsContext (line 1389) | function createDisabledBypassPermissionsContext( function checkAndDisableBypassPermissions (line 1411) | async function checkAndDisableBypassPermissions( function isDefaultPermissionModeAuto (line 1433) | function isDefaultPermissionModeAuto(): boolean { function shouldPlanUseAutoMode (line 1446) | function shouldPlanUseAutoMode(): boolean { function prepareContextForPlanMode (line 1462) | function prepareContextForPlanMode( function transitionPlanAutoMode (line 1502) | function transitionPlanAutoMode( FILE: restored-src/src/utils/permissions/permissions.ts constant CLASSIFIER_FAIL_CLOSED_REFRESH_MS (line 107) | const CLASSIFIER_FAIL_CLOSED_REFRESH_MS = 30 * 60 * 1000 // 30 minutes constant PERMISSION_RULE_SOURCES (line 109) | const PERMISSION_RULE_SOURCES = [ function permissionRuleSourceDisplayString (line 116) | function permissionRuleSourceDisplayString( function getAllowRules (line 122) | function getAllowRules( function createPermissionRequestMessage (line 137) | function createPermissionRequestMessage( function getDenyRules (line 213) | function getDenyRules(context: ToolPermissionContext): PermissionRule[] { function getAskRules (line 223) | function getAskRules(context: ToolPermissionContext): PermissionRule[] { function toolMatchesRule (line 238) | function toolMatchesRule( function toolAlwaysAllowedRule (line 275) | function toolAlwaysAllowedRule( function getDenyRuleForTool (line 287) | function getDenyRuleForTool( function getAskRuleForTool (line 297) | function getAskRuleForTool( function getDenyRuleForAgent (line 308) | function getDenyRuleForAgent( function filterDeniedAgents (line 325) | function filterDeniedAgents( function getRuleByContentsForTool (line 349) | function getRuleByContentsForTool( function getRuleByContentsForToolName (line 362) | function getRuleByContentsForToolName( function runPermissionRequestHooksForHeadlessAgent (line 400) | async function runPermissionRequestHooksForHeadlessAgent( function persistDenialState (line 963) | function persistDenialState( function handleDenialLimitExceeded (line 984) | function handleDenialLimitExceeded( function checkRuleBasedPermissions (line 1071) | async function checkRuleBasedPermissions( function hasPermissionsToUseToolInner (line 1158) | async function hasPermissionsToUseToolInner( type EditPermissionRuleArgs (line 1321) | type EditPermissionRuleArgs = { function deletePermissionRule (line 1329) | async function deletePermissionRule({ function convertRulesToUpdates (line 1375) | function convertRulesToUpdates( function applyPermissionRulesToPermissionContext (line 1408) | function applyPermissionRulesToPermissionContext( function syncPermissionRulesFromDisk (line 1419) | function syncPermissionRulesFromDisk( function getUpdatedInputOrFallback (line 1477) | function getUpdatedInputOrFallback( FILE: restored-src/src/utils/permissions/permissionsLoader.ts function shouldAllowManagedPermissionRulesOnly (line 31) | function shouldAllowManagedPermissionRulesOnly(): boolean { function shouldShowAlwaysAllowOptions (line 42) | function shouldShowAlwaysAllowOptions(): boolean { constant SUPPORTED_RULE_BEHAVIORS (line 46) | const SUPPORTED_RULE_BEHAVIORS = [ function getSettingsForSourceLenient_FOR_EDITING_ONLY_NOT_FOR_READING (line 61) | function getSettingsForSourceLenient_FOR_EDITING_ONLY_NOT_FOR_READING( function settingsJsonToRules (line 91) | function settingsJsonToRules( function loadAllPermissionRulesFromDisk (line 120) | function loadAllPermissionRulesFromDisk(): PermissionRule[] { function getPermissionRulesForSource (line 140) | function getPermissionRulesForSource( type PermissionRuleFromEditableSettings (line 147) | type PermissionRuleFromEditableSettings = PermissionRule & { constant EDITABLE_SOURCES (line 152) | const EDITABLE_SOURCES: EditableSettingSource[] = [ function deletePermissionRuleFromSettings (line 163) | function deletePermissionRuleFromSettings( function getEmptyPermissionSettingsJson (line 218) | function getEmptyPermissionSettingsJson(): SettingsJson { function addPermissionRulesToSettings (line 229) | function addPermissionRulesToSettings( FILE: restored-src/src/utils/permissions/shadowedRuleDetection.ts type ShadowType (line 14) | type ShadowType = 'ask' | 'deny' type UnreachableRule (line 19) | type UnreachableRule = { type DetectUnreachableRulesOptions (line 30) | type DetectUnreachableRulesOptions = { type ShadowResult (line 43) | type ShadowResult = function isSharedSettingSource (line 61) | function isSharedSettingSource(source: PermissionRuleSource): boolean { function formatSource (line 72) | function formatSource(source: PermissionRuleSource): string { function generateFixSuggestion (line 79) | function generateFixSuggestion( function isAllowRuleShadowedByAskRule (line 111) | function isAllowRuleShadowedByAskRule( function isAllowRuleShadowedByDenyRule (line 160) | function isAllowRuleShadowedByDenyRule( function detectUnreachableRules (line 193) | function detectUnreachableRules( FILE: restored-src/src/utils/permissions/shellRuleMatching.ts constant ESCAPED_STAR_PLACEHOLDER (line 14) | const ESCAPED_STAR_PLACEHOLDER = '\x00ESCAPED_STAR\x00' constant ESCAPED_BACKSLASH_PLACEHOLDER (line 15) | const ESCAPED_BACKSLASH_PLACEHOLDER = '\x00ESCAPED_BACKSLASH\x00' constant ESCAPED_STAR_PLACEHOLDER_RE (line 16) | const ESCAPED_STAR_PLACEHOLDER_RE = new RegExp(ESCAPED_STAR_PLACEHOLDER,... constant ESCAPED_BACKSLASH_PLACEHOLDER_RE (line 17) | const ESCAPED_BACKSLASH_PLACEHOLDER_RE = new RegExp( type ShellPermissionRule (line 25) | type ShellPermissionRule = function permissionRuleExtractPrefix (line 43) | function permissionRuleExtractPrefix( function hasWildcards (line 54) | function hasWildcards(pattern: string): boolean { function matchWildcardPattern (line 90) | function matchWildcardPattern( function parsePermissionRule (line 159) | function parsePermissionRule( function suggestionForExactCommand (line 189) | function suggestionForExactCommand( function suggestionForPrefix (line 211) | function suggestionForPrefix( FILE: restored-src/src/utils/permissions/yoloClassifier.ts function txtRequire (line 50) | function txtRequire(mod: string | { default: string }): string { constant BASE_PROMPT (line 54) | const BASE_PROMPT: string = feature('TRANSCRIPT_CLASSIFIER') constant EXTERNAL_PERMISSIONS_TEMPLATE (line 61) | const EXTERNAL_PERMISSIONS_TEMPLATE: string = feature('TRANSCRIPT_CLASSI... constant ANTHROPIC_PERMISSIONS_TEMPLATE (line 65) | const ANTHROPIC_PERMISSIONS_TEMPLATE: string = function isUsingExternalPermissions (line 71) | function isUsingExternalPermissions(): boolean { type AutoModeRules (line 85) | type AutoModeRules = { function getDefaultExternalAutoModeRules (line 100) | function getDefaultExternalAutoModeRules(): AutoModeRules { function extractTaggedBullets (line 108) | function extractTaggedBullets(tagName: string): string[] { function buildDefaultExternalSystemPrompt (line 125) | function buildDefaultExternalSystemPrompt(): string { function getAutoModeDumpDir (line 144) | function getAutoModeDumpDir(): string { function maybeDumpAutoMode (line 153) | async function maybeDumpAutoMode( function getAutoModeClassifierErrorDumpPath (line 186) | function getAutoModeClassifierErrorDumpPath(): string { function getAutoModeClassifierTranscript (line 200) | function getAutoModeClassifierTranscript(): string | null { function dumpErrorPrompts (line 213) | async function dumpErrorPrompts( constant YOLO_CLASSIFIER_TOOL_NAME (line 260) | const YOLO_CLASSIFIER_TOOL_NAME = 'classify_result' constant YOLO_CLASSIFIER_TOOL_SCHEMA (line 262) | const YOLO_CLASSIFIER_TOOL_SCHEMA: BetaToolUnion = { type TranscriptBlock (line 287) | type TranscriptBlock = type TranscriptEntry (line 291) | type TranscriptEntry = { function buildTranscriptEntries (line 302) | function buildTranscriptEntries(messages: Message[]): TranscriptEntry[] { type ToolLookup (line 362) | type ToolLookup = ReadonlyMap function buildToolLookup (line 364) | function buildToolLookup(tools: Tools): ToolLookup { function toCompactBlock (line 384) | function toCompactBlock( function toCompact (line 426) | function toCompact(entry: TranscriptEntry, lookup: ToolLookup): string { function buildTranscriptForClassifier (line 434) | function buildTranscriptForClassifier( function buildClaudeMdMessage (line 460) | function buildClaudeMdMessage(): Anthropic.MessageParam | null { function buildYoloSystemPrompt (line 484) | async function buildYoloSystemPrompt( constant XML_S1_SUFFIX (line 550) | const XML_S1_SUFFIX = '\nErr on the side of blocking. immediately.' constant XML_S2_SUFFIX (line 560) | const XML_S2_SUFFIX = function stripThinking (line 567) | function stripThinking(text: string): string { function parseXmlBlock (line 578) | function parseXmlBlock(text: string): boolean | null { function parseXmlReason (line 590) | function parseXmlReason(text: string): string | null { function parseXmlThinking (line 601) | function parseXmlThinking(text: string): string | null { function extractUsage (line 609) | function extractUsage( function extractRequestId (line 624) | function extractRequestId( function combineUsage (line 633) | function combineUsage(a: ClassifierUsage, b: ClassifierUsage): Classifie... function replaceOutputFormatWithXml (line 648) | function replaceOutputFormatWithXml(systemPrompt: string): string { function getClassifierThinkingConfig (line 683) | function getClassifierThinkingConfig( function classifyYoloActionXml (line 711) | async function classifyYoloActionXml( function classifyYoloAction (line 1012) | async function classifyYoloAction( type TwoStageMode (line 1308) | type TwoStageMode = 'both' | 'fast' | 'thinking' type AutoModeConfig (line 1310) | type AutoModeConfig = { function getClassifierModel (line 1334) | function getClassifierModel(): string { function resolveTwoStageClassifier (line 1353) | function resolveTwoStageClassifier(): function isTwoStageClassifierEnabled (line 1374) | function isTwoStageClassifierEnabled(): boolean { function isJsonlTranscriptEnabled (line 1379) | function isJsonlTranscriptEnabled(): boolean { constant POWERSHELL_DENY_GUIDANCE (line 1402) | const POWERSHELL_DENY_GUIDANCE: readonly string[] = feature( type AutoModeOutcome (line 1413) | type AutoModeOutcome = function logAutoModeOutcome (line 1425) | function logAutoModeOutcome( function detectPromptTooLong (line 1463) | function detectPromptTooLong( function getTwoStageMode (line 1477) | function getTwoStageMode(): TwoStageMode { function formatActionForClassifier (line 1487) | function formatActionForClassifier( FILE: restored-src/src/utils/planModeV2.ts function getPlanModeV2AgentCount (line 5) | function getPlanModeV2AgentCount(): number { function getPlanModeV2ExploreAgentCount (line 31) | function getPlanModeV2ExploreAgentCount(): number { function isPlanModeInterviewPhaseEnabled (line 50) | function isPlanModeInterviewPhaseEnabled(): boolean { type PewterLedgerVariant (line 64) | type PewterLedgerVariant = 'trim' | 'cut' | 'cap' | null function getPewterLedgerVariant (line 88) | function getPewterLedgerVariant(): PewterLedgerVariant { FILE: restored-src/src/utils/plans.ts constant MAX_SLUG_RETRIES (line 25) | const MAX_SLUG_RETRIES = 10 function getPlanSlug (line 32) | function getPlanSlug(sessionId?: SessionId): string { function setPlanSlug (line 54) | function setPlanSlug(sessionId: SessionId, slug: string): void { function clearPlanSlug (line 62) | function clearPlanSlug(sessionId?: SessionId): void { function clearAllPlanSlugs (line 71) | function clearAllPlanSlugs(): void { function getPlanFilePath (line 119) | function getPlanFilePath(agentId?: AgentId): string { function getPlan (line 135) | function getPlan(agentId?: AgentId): string | null { function getSlugFromLog (line 149) | function getSlugFromLog(log: LogOption): string | undefined { function copyPlanForResume (line 164) | async function copyPlanForResume( function copyPlanForFork (line 239) | async function copyPlanForFork( function recoverPlanFromMessages (line 279) | function recoverPlanFromMessages(log: LogOption): string | null { function findFileSnapshotEntry (line 332) | function findFileSnapshotEntry( function persistFileSnapshotIfRemote (line 360) | async function persistFileSnapshotIfRemote(): Promise { FILE: restored-src/src/utils/platform.ts type Platform (line 7) | type Platform = 'macos' | 'windows' | 'wsl' | 'linux' | 'unknown' constant SUPPORTED_PLATFORMS (line 9) | const SUPPORTED_PLATFORMS: Platform[] = ['macos', 'wsl'] type LinuxDistroInfo (line 81) | type LinuxDistroInfo = { constant VCS_MARKERS (line 118) | const VCS_MARKERS: Array<[string, string]> = [ function detectVcs (line 129) | async function detectVcs(dir?: string): Promise { FILE: restored-src/src/utils/plugins/addDirPluginSettings.ts type ExtraKnownMarketplace (line 18) | type ExtraKnownMarketplace = z.infer< constant SETTINGS_FILES (line 22) | const SETTINGS_FILES = ['settings.json', 'settings.local.json'] as const function getAddDirEnabledPlugins (line 34) | function getAddDirEnabledPlugins(): NonNullable< function getAddDirExtraMarketplaces (line 56) | function getAddDirExtraMarketplaces(): Record< FILE: restored-src/src/utils/plugins/cacheUtils.ts constant ORPHANED_AT_FILENAME (line 23) | const ORPHANED_AT_FILENAME = '.orphaned_at' constant CLEANUP_AGE_MS (line 24) | const CLEANUP_AGE_MS = 7 * 24 * 60 * 60 * 1000 // 7 days function clearAllPluginCaches (line 26) | function clearAllPluginCaches(): void { function clearAllCaches (line 44) | function clearAllCaches(): void { function markPluginVersionOrphaned (line 56) | async function markPluginVersionOrphaned( function cleanupOrphanedPluginVersionsInBackground (line 74) | async function cleanupOrphanedPluginVersionsInBackground(): Promise { function getOrphanedAtPath (line 118) | function getOrphanedAtPath(versionPath: string): string { function removeOrphanedAtMarker (line 122) | async function removeOrphanedAtMarker(versionPath: string): Promise { function getInstalledVersionPaths (line 133) | function getInstalledVersionPaths(): Set | null { function processOrphanedPluginVersion (line 149) | async function processOrphanedPluginVersion( function removeIfEmpty (line 179) | async function removeIfEmpty(dirPath: string): Promise { function readSubdirs (line 189) | async function readSubdirs(dirPath: string): Promise { FILE: restored-src/src/utils/plugins/dependencyResolver.ts constant INLINE_MARKETPLACE (line 25) | const INLINE_MARKETPLACE = 'inline' function qualifyDependency (line 38) | function qualifyDependency( type DependencyLookupResult (line 53) | type DependencyLookupResult = { type ResolutionResult (line 58) | type ResolutionResult = function resolveDependencyClosure (line 95) | async function resolveDependencyClosure( function verifyAndDemote (line 177) | function verifyAndDemote(plugins: readonly LoadedPlugin[]): { function findReverseDependents (line 244) | function findReverseDependents( function getEnabledPluginIdsForScope (line 275) | function getEnabledPluginIdsForScope( function formatDependencyCountSuffix (line 289) | function formatDependencyCountSuffix(installedDeps: string[]): string { function formatReverseDependentsSuffix (line 300) | function formatReverseDependentsSuffix( FILE: restored-src/src/utils/plugins/fetchTelemetry.ts type PluginFetchSource (line 21) | type PluginFetchSource = type PluginFetchOutcome (line 29) | type PluginFetchOutcome = 'success' | 'failure' | 'cache_hit' constant KNOWN_PUBLIC_HOSTS (line 35) | const KNOWN_PUBLIC_HOSTS = new Set([ function extractHost (line 54) | function extractHost(urlOrSpec: string): string { function isOfficialRepo (line 75) | function isOfficialRepo(urlOrSpec: string): boolean { function logPluginFetch (line 79) | function logPluginFetch( function classifyFetchError (line 108) | function classifyFetchError(error: unknown): string { FILE: restored-src/src/utils/plugins/gitAvailability.ts function isCommandAvailable (line 21) | async function isCommandAvailable(command: string): Promise { function markGitUnavailable (line 59) | function markGitUnavailable(): void { function clearGitAvailabilityCache (line 67) | function clearGitAvailabilityCache(): void { FILE: restored-src/src/utils/plugins/headlessPluginInstall.ts function installPluginsForHeadless (line 43) | async function installPluginsForHeadless(): Promise { FILE: restored-src/src/utils/plugins/hintRecommendation.ts constant MAX_SHOWN_PLUGINS (line 39) | const MAX_SHOWN_PLUGINS = 100 type PluginHintRecommendation (line 41) | type PluginHintRecommendation = { function maybeRecordPluginHint (line 65) | function maybeRecordPluginHint(hint: ClaudeCodeHint): void { function _resetHintRecommendationForTesting (line 94) | function _resetHintRecommendationForTesting(): void { function resolvePluginHint (line 103) | async function resolvePluginHint( function markHintPluginShown (line 141) | function markHintPluginShown(pluginId: string): void { function disableHintRecommendations (line 156) | function disableHintRecommendations(): void { FILE: restored-src/src/utils/plugins/installCounts.ts constant INSTALL_COUNTS_CACHE_VERSION (line 23) | const INSTALL_COUNTS_CACHE_VERSION = 1 constant INSTALL_COUNTS_CACHE_FILENAME (line 24) | const INSTALL_COUNTS_CACHE_FILENAME = 'install-counts-cache.json' constant INSTALL_COUNTS_URL (line 25) | const INSTALL_COUNTS_URL = constant CACHE_TTL_MS (line 27) | const CACHE_TTL_MS = 24 * 60 * 60 * 1000 // 24 hours in milliseconds type InstallCountsCache (line 32) | type InstallCountsCache = { type GitHubStatsResponse (line 44) | type GitHubStatsResponse = { function getInstallCountsCachePath (line 54) | function getInstallCountsCachePath(): string { function loadInstallCountsCache (line 62) | async function loadInstallCountsCache(): Promise | null> { function formatInstallCount (line 273) | function formatInstallCount(count: number): string { FILE: restored-src/src/utils/plugins/installedPluginsManager.ts type InstalledPluginsMapV2 (line 38) | type InstalledPluginsMapV2 = Record type PersistableScope (line 41) | type PersistableScope = Exclude // All scopes are pe... function getInstalledPluginsFilePath (line 78) | function getInstalledPluginsFilePath(): string { function getInstalledPluginsV2FilePath (line 86) | function getInstalledPluginsV2FilePath(): string { function clearInstalledPluginsCache (line 99) | function clearInstalledPluginsCache(): void { function migrateToSinglePluginFile (line 115) | function migrateToSinglePluginFile(): void { function cleanupLegacyCache (line 192) | function cleanupLegacyCache(v2Data: InstalledPluginsFileV2): void { function resetMigrationState (line 250) | function resetMigrationState(): void { function readInstalledPluginsFileRaw (line 259) | function readInstalledPluginsFileRaw(): { function migrateV1ToV2 (line 284) | function migrateV1ToV2(v1Data: InstalledPluginsFileV1): InstalledPlugins... function loadInstalledPluginsV2 (line 315) | function loadInstalledPluginsV2(): InstalledPluginsFileV2 { function saveInstalledPluginsV2 (line 370) | function saveInstalledPluginsV2(data: InstalledPluginsFileV2): void { function addPluginInstallation (line 406) | function addPluginInstallation( function removePluginInstallation (line 452) | function removePluginInstallation( function getInMemoryInstalledPlugins (line 488) | function getInMemoryInstalledPlugins(): InstalledPluginsFileV2 { function loadInstalledPluginsFromDisk (line 502) | function loadInstalledPluginsFromDisk(): InstalledPluginsFileV2 { function updateInstallationPathOnDisk (line 537) | function updateInstallationPathOnDisk( function hasPendingUpdates (line 595) | function hasPendingUpdates(): boolean { function getPendingUpdateCount (line 625) | function getPendingUpdateCount(): number { function getPendingUpdatesDetails (line 656) | function getPendingUpdatesDetails(): Array<{ function resetInMemoryState (line 702) | function resetInMemoryState(): void { function initializeVersionedPlugins (line 714) | async function initializeVersionedPlugins(): Promise { function removeAllPluginsForMarketplace (line 746) | function removeAllPluginsForMarketplace(marketplaceName: string): { function isInstallationRelevantToCurrentProject (line 800) | function isInstallationRelevantToCurrentProject( function isPluginInstalled (line 818) | function isPluginInstalled(pluginId: string): boolean { function isPluginGloballyInstalled (line 849) | function isPluginGloballyInstalled(pluginId: string): boolean { function addInstalledPlugin (line 874) | function addInstalledPlugin( function removeInstalledPlugin (line 924) | function removeInstalledPlugin( function deletePluginCache (line 965) | function deletePluginCache(installPath: string): void { function getGitCommitSha (line 1002) | async function getGitCommitSha(dirPath: string): Promise { FILE: restored-src/src/utils/plugins/loadPluginAgents.ts constant VALID_MEMORY_SCOPES (line 35) | const VALID_MEMORY_SCOPES: AgentMemoryScope[] = ['user', 'project', 'loc... function loadAgentsFromDirectory (line 37) | async function loadAgentsFromDirectory( function loadAgentFromFile (line 65) | async function loadAgentFromFile( function clearPluginAgentCache (line 346) | function clearPluginAgentCache(): void { FILE: restored-src/src/utils/plugins/loadPluginCommands.ts type PluginMarkdownFile (line 38) | type PluginMarkdownFile = { type LoadConfig (line 46) | type LoadConfig = { function isSkillFile (line 53) | function isSkillFile(filePath: string): boolean { function getCommandNameFromFile (line 60) | function getCommandNameFromFile( function collectMarkdownFiles (line 102) | async function collectMarkdownFiles( function transformPluginSkillFiles (line 135) | function transformPluginSkillFiles( function loadCommandsFromDirectory (line 169) | async function loadCommandsFromDirectory( function createPluginCommand (line 218) | function createPluginCommand( function clearPluginCommandCache (line 679) | function clearPluginCommandCache(): void { function loadSkillsFromDirectory (line 687) | async function loadSkillsFromDirectory( function clearPluginSkillsCache (line 944) | function clearPluginSkillsCache(): void { FILE: restored-src/src/utils/plugins/loadPluginHooks.ts function convertPluginHooksToMatchers (line 28) | function convertPluginHooksToMatchers( function clearPluginHookCache (line 159) | function clearPluginHookCache(): void { function pruneRemovedPluginHooks (line 179) | async function pruneRemovedPluginHooks(): Promise { function resetHotReloadState (line 212) | function resetHotReloadState(): void { function getPluginAffectingSettingsSnapshot (line 233) | function getPluginAffectingSettingsSnapshot(): string { function setupPluginHookHotReload (line 255) | function setupPluginHookHotReload(): void { FILE: restored-src/src/utils/plugins/loadPluginOutputStyles.ts function loadOutputStylesFromDirectory (line 15) | async function loadOutputStylesFromDirectory( function loadOutputStyleFromFile (line 36) | async function loadOutputStyleFromFile( function clearPluginOutputStyleCache (line 176) | function clearPluginOutputStyleCache(): void { FILE: restored-src/src/utils/plugins/lspPluginIntegration.ts function validatePathWithinPlugin (line 28) | function validatePathWithinPlugin( function loadPluginLspServers (line 57) | async function loadPluginLspServers( function loadLspServersFromManifest (line 127) | async function loadLspServersFromManifest( function resolvePluginLspEnvironment (line 229) | function resolvePluginLspEnvironment( function addPluginScopeToLspServers (line 298) | function addPluginScopeToLspServers( function getPluginLspServers (line 322) | async function getPluginLspServers( function extractLspServersFromPlugins (line 363) | async function extractLspServersFromPlugins( FILE: restored-src/src/utils/plugins/lspRecommendation.ts type LspPluginRecommendation (line 30) | type LspPluginRecommendation = { constant MAX_IGNORED_COUNT (line 41) | const MAX_IGNORED_COUNT = 5 function isOfficialMarketplace (line 46) | function isOfficialMarketplace(name: string): boolean { type LspInfo (line 53) | type LspInfo = { function extractLspInfoFromManifest (line 67) | function extractLspInfoFromManifest( function isRecord (line 108) | function isRecord(value: unknown): value is Record { function extractFromServerConfigRecord (line 112) | function extractFromServerConfigRecord( type LspPluginInfo (line 147) | type LspPluginInfo = { function getLspPluginsFromMarketplaces (line 160) | async function getLspPluginsFromMarketplaces(): Promise< function getMatchingLspPlugins (line 222) | async function getMatchingLspPlugins( function addToNeverSuggest (line 316) | function addToNeverSuggest(pluginId: string): void { function incrementIgnoredCount (line 334) | function incrementIgnoredCount(): void { function isLspRecommendationsDisabled (line 351) | function isLspRecommendationsDisabled(): boolean { function resetIgnoredCount (line 362) | function resetIgnoredCount(): void { FILE: restored-src/src/utils/plugins/managedPlugins.ts function getManagedPluginNames (line 9) | function getManagedPluginNames(): Set | null { FILE: restored-src/src/utils/plugins/marketplaceHelpers.ts function formatFailureDetails (line 16) | function formatFailureDetails( function getMarketplaceSourceDisplay (line 38) | function getMarketplaceSourceDisplay(source: MarketplaceSource): string { function createPluginId (line 60) | function createPluginId( function loadMarketplacesWithGracefulDegradation (line 71) | async function loadMarketplacesWithGracefulDegradation( function formatMarketplaceLoadingErrors (line 119) | function formatMarketplaceLoadingErrors( function formatFailureNames (line 143) | function formatFailureNames( function formatFailureErrors (line 149) | function formatFailureErrors( function getStrictKnownMarketplaces (line 159) | function getStrictKnownMarketplaces(): MarketplaceSource[] | null { function getBlockedMarketplaces (line 171) | function getBlockedMarketplaces(): MarketplaceSource[] | null { function getPluginTrustMessage (line 183) | function getPluginTrustMessage(): string | undefined { function areSourcesEqual (line 191) | function areSourcesEqual(a: MarketplaceSource, b: MarketplaceSource): bo... function extractHostFromSource (line 235) | function extractHostFromSource( function doesSourceMatchHostPattern (line 278) | function doesSourceMatchHostPattern( function doesSourceMatchPathPattern (line 305) | function doesSourceMatchPathPattern( function getHostPatternsFromAllowlist (line 327) | function getHostPatternsFromAllowlist(): string[] { function extractGitHubRepoFromGitUrl (line 348) | function extractGitHubRepoFromGitUrl(url: string): string | null { function blockedConstraintMatches (line 371) | function blockedConstraintMatches( function areSourcesEquivalentForBlocklist (line 391) | function areSourcesEquivalentForBlocklist( function isSourceInBlocklist (line 461) | function isSourceInBlocklist(source: MarketplaceSource): boolean { function isSourceAllowedByPolicy (line 480) | function isSourceAllowedByPolicy(source: MarketplaceSource): boolean { function formatSourceForDisplay (line 510) | function formatSourceForDisplay(source: MarketplaceSource): string { type EmptyMarketplaceReason (line 538) | type EmptyMarketplaceReason = function detectEmptyMarketplaceReason (line 550) | async function detectEmptyMarketplaceReason({ FILE: restored-src/src/utils/plugins/marketplaceManager.ts type LoadedPluginMarketplace (line 93) | type LoadedPluginMarketplace = { function getKnownMarketplacesFile (line 102) | function getKnownMarketplacesFile(): string { function getMarketplacesCacheDir (line 110) | function getMarketplacesCacheDir(): string { function clearMarketplacesCache (line 122) | function clearMarketplacesCache(): void { type KnownMarketplacesConfig (line 129) | type KnownMarketplacesConfig = KnownMarketplacesFile type DeclaredMarketplace (line 138) | type DeclaredMarketplace = { function getDeclaredMarketplaces (line 161) | function getDeclaredMarketplaces(): Record { function getMarketplaceDeclaringSource (line 200) | function getMarketplaceDeclaringSource( function saveMarketplaceToSettings (line 226) | function saveMarketplaceToSettings( function loadKnownMarketplacesConfig (line 264) | async function loadKnownMarketplacesConfig(): Promise { function readSeedKnownMarketplaces (line 436) | async function readSeedKnownMarketplaces( function findSeedMarketplaceLocation (line 473) | async function findSeedMarketplaceLocation( function seedDirFor (line 496) | function seedDirFor(installLocation: string): string | undefined { constant GIT_NO_PROMPT_ENV (line 510) | const GIT_NO_PROMPT_ENV = { constant DEFAULT_PLUGIN_GIT_TIMEOUT_MS (line 515) | const DEFAULT_PLUGIN_GIT_TIMEOUT_MS = 120 * 1000 function getPluginGitTimeoutMs (line 517) | function getPluginGitTimeoutMs(): number { function gitPull (line 528) | async function gitPull( function gitSubmoduleUpdate (line 609) | async function gitSubmoduleUpdate( function enhanceGitPullErrorMessages (line 649) | function enhanceGitPullErrorMessages(result: { function isGitHubSshLikelyConfigured (line 723) | async function isGitHubSshLikelyConfigured(): Promise { function isAuthenticationError (line 767) | function isAuthenticationError(stderr: string): boolean { function extractSshHost (line 781) | function extractSshHost(gitUrl: string): string | null { function gitClone (line 803) | async function gitClone( type MarketplaceProgressCallback (line 998) | type MarketplaceProgressCallback = (message: string) => void function safeCallProgress (line 1007) | function safeCallProgress( function reconcileSparseCheckout (line 1034) | async function reconcileSparseCheckout( function cacheMarketplaceFromGit (line 1084) | async function cacheMarketplaceFromGit( function redactHeaders (line 1186) | function redactHeaders( function redactUrlCredentials (line 1213) | function redactUrlCredentials(urlString: string): string { function cacheMarketplaceFromUrl (line 1256) | async function cacheMarketplaceFromUrl( function getCachePathForSource (line 1355) | function getCachePathForSource(source: MarketplaceSource): string { function parseFileWithSchema (line 1372) | async function parseFileWithSchema( function loadAndCacheMarketplace (line 1433) | async function loadAndCacheMarketplace( function addMarketplaceSource (line 1782) | async function addMarketplaceSource( function removeMarketplaceSource (line 1937) | async function removeMarketplaceSource(name: string): Promise { function readCachedMarketplace (line 2058) | async function readCachedMarketplace( function getMarketplaceCacheOnly (line 2081) | async function getMarketplaceCacheOnly( function getPluginByIdCacheOnly (line 2188) | async function getPluginByIdCacheOnly(pluginId: string): Promise<{ function getPluginById (line 2238) | async function getPluginById(pluginId: string): Promise<{ function refreshAllMarketplaces (line 2296) | async function refreshAllMarketplaces(): Promise { function refreshMarketplace (line 2365) | async function refreshMarketplace( function setMarketplaceAutoUpdate (line 2587) | async function setMarketplaceAutoUpdate( FILE: restored-src/src/utils/plugins/mcpPluginIntegration.ts function loadMcpServersFromMcpb (line 34) | async function loadMcpServersFromMcpb( function loadPluginMcpServers (line 131) | async function loadPluginMcpServers( function loadMcpServersFromFile (line 219) | async function loadMcpServersFromFile( type UnconfiguredChannel (line 272) | type UnconfiguredChannel = { function getUnconfiguredChannels (line 290) | function getUnconfiguredChannels( function loadChannelUserConfig (line 326) | function loadChannelUserConfig( function addPluginScopeToServers (line 341) | function addPluginScopeToServers( function extractMcpServersFromPlugins (line 366) | async function extractMcpServersFromPlugins( function buildMcpUserConfig (line 440) | function buildMcpUserConfig( function resolvePluginMcpEnvironment (line 465) | function resolvePluginMcpEnvironment( function getPluginMcpServers (line 589) | async function getPluginMcpServers( FILE: restored-src/src/utils/plugins/mcpbHandler.ts type UserConfigValues (line 27) | type UserConfigValues = Record< type UserConfigSchema (line 35) | type UserConfigSchema = Record type McpbLoadResult (line 40) | type McpbLoadResult = { type McpbNeedsConfigResult (line 50) | type McpbNeedsConfigResult = { type McpbCacheMetadata (line 63) | type McpbCacheMetadata = { type ProgressCallback (line 74) | type ProgressCallback = (status: string) => void function isMcpbSource (line 79) | function isMcpbSource(source: string): boolean { function isUrl (line 86) | function isUrl(source: string): boolean { function generateContentHash (line 93) | function generateContentHash(data: Uint8Array): string { function getMcpbCacheDir (line 100) | function getMcpbCacheDir(pluginPath: string): string { function getMetadataPath (line 107) | function getMetadataPath(cacheDir: string, source: string): string { function serverSecretsKey (line 124) | function serverSecretsKey(pluginId: string, serverName: string): string { function loadMcpServerUserConfig (line 141) | function loadMcpServerUserConfig( function saveMcpServerUserConfig (line 193) | function saveMcpServerUserConfig( function validateUserConfig (line 346) | function validateUserConfig( function generateMcpConfig (line 413) | async function generateMcpConfig( function loadCacheMetadata (line 443) | async function loadCacheMetadata( function saveCacheMetadata (line 468) | async function saveCacheMetadata( function downloadMcpb (line 482) | async function downloadMcpb( function extractMcpbContents (line 550) | async function extractMcpbContents( function checkMcpbChanged (line 622) | async function checkMcpbChanged( function loadMcpbFile (line 698) | async function loadMcpbFile( FILE: restored-src/src/utils/plugins/officialMarketplace.ts constant OFFICIAL_MARKETPLACE_SOURCE (line 15) | const OFFICIAL_MARKETPLACE_SOURCE = { constant OFFICIAL_MARKETPLACE_NAME (line 25) | const OFFICIAL_MARKETPLACE_NAME = 'claude-plugins-official' FILE: restored-src/src/utils/plugins/officialMarketplaceGcs.ts type SafeString (line 21) | type SafeString = AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEP... constant GCS_BASE (line 28) | const GCS_BASE = constant ARC_PREFIX (line 34) | const ARC_PREFIX = 'marketplaces/claude-plugins-official/' function fetchOfficialMarketplaceFromGcs (line 47) | async function fetchOfficialMarketplaceFromGcs( constant KNOWN_FS_CODES (line 174) | const KNOWN_FS_CODES = new Set([ function classifyGcsError (line 196) | function classifyGcsError(e: unknown): string { FILE: restored-src/src/utils/plugins/officialMarketplaceStartupCheck.ts type OfficialMarketplaceSkipReason (line 36) | type OfficialMarketplaceSkipReason = function isOfficialMarketplaceAutoInstallDisabled (line 47) | function isOfficialMarketplaceAutoInstallDisabled(): boolean { constant RETRY_CONFIG (line 56) | const RETRY_CONFIG = { function calculateNextRetryDelay (line 66) | function calculateNextRetryDelay(retryCount: number): number { function shouldRetryInstallation (line 76) | function shouldRetryInstallation( type OfficialMarketplaceCheckResult (line 122) | type OfficialMarketplaceCheckResult = { function checkAndInstallOfficialMarketplace (line 147) | async function checkAndInstallOfficialMarketplace(): Promise AppState) => void; function performStartupChecks (line 24) | async function performStartupChecks(setAppState: SetAppState): Promise void function onPluginsAutoUpdated (line 51) | function onPluginsAutoUpdated( function getAutoUpdatedPluginNames (line 71) | function getAutoUpdatedPluginNames(): string[] { function getAutoUpdateEnabledMarketplaces (line 84) | async function getAutoUpdateEnabledMarketplaces(): Promise> { function updatePlugin (line 108) | async function updatePlugin( function updatePluginsForMarketplaces (line 161) | async function updatePluginsForMarketplaces( function updatePlugins (line 206) | async function updatePlugins( function autoUpdateMarketplacesAndPluginsInBackground (line 227) | function autoUpdateMarketplacesAndPluginsInBackground(): void { FILE: restored-src/src/utils/plugins/pluginBlocklist.ts function detectDelistedPlugins (line 34) | function detectDelistedPlugins( function detectAndUninstallDelistedPlugins (line 64) | async function detectAndUninstallDelistedPlugins(): Promise { FILE: restored-src/src/utils/plugins/pluginDirectories.ts constant PLUGINS_DIR (line 22) | const PLUGINS_DIR = 'plugins' constant COWORK_PLUGINS_DIR (line 23) | const COWORK_PLUGINS_DIR = 'cowork_plugins' function getPluginsDirectoryName (line 34) | function getPluginsDirectoryName(): string { function getPluginsDirectory (line 53) | function getPluginsDirectory(): string { function getPluginSeedDirs (line 85) | function getPluginSeedDirs(): string[] { function sanitizePluginId (line 92) | function sanitizePluginId(pluginId: string): string { function pluginDataDirPath (line 98) | function pluginDataDirPath(pluginId: string): string { function getPluginDataDir (line 119) | function getPluginDataDir(pluginId: string): string { function getPluginDataDirSize (line 130) | async function getPluginDataDirSize( function deletePluginDataDir (line 168) | async function deletePluginDataDir(pluginId: string): Promise { FILE: restored-src/src/utils/plugins/pluginFlagging.ts constant FLAGGED_PLUGINS_FILENAME (line 24) | const FLAGGED_PLUGINS_FILENAME = 'flagged-plugins.json' type FlaggedPlugin (line 26) | type FlaggedPlugin = { constant SEEN_EXPIRY_MS (line 31) | const SEEN_EXPIRY_MS = 48 * 60 * 60 * 1000 // 48 hours function getFlaggedPluginsPath (line 36) | function getFlaggedPluginsPath(): string { function parsePluginsData (line 40) | function parsePluginsData(content: string): Record { function readFromDisk (line 75) | async function readFromDisk(): Promise> { function writeToDisk (line 86) | async function writeToDisk( function loadFlaggedPlugins (line 117) | async function loadFlaggedPlugins(): Promise { function getFlaggedPlugins (line 142) | function getFlaggedPlugins(): Record { function addFlaggedPlugin (line 151) | async function addFlaggedPlugin(pluginId: string): Promise { function markFlaggedPluginsSeen (line 172) | async function markFlaggedPluginsSeen( function removeFlaggedPlugin (line 199) | async function removeFlaggedPlugin(pluginId: string): Promise { FILE: restored-src/src/utils/plugins/pluginIdentifier.ts type ExtendedPluginScope (line 14) | type ExtendedPluginScope = PluginScope | 'flag' type PersistablePluginScope (line 20) | type PersistablePluginScope = Exclude constant SETTING_SOURCE_TO_SCOPE (line 26) | const SETTING_SOURCE_TO_SCOPE = { type ParsedPluginIdentifier (line 37) | type ParsedPluginIdentifier = { function parsePluginIdentifier (line 51) | function parsePluginIdentifier(plugin: string): ParsedPluginIdentifier { function buildPluginId (line 65) | function buildPluginId(name: string, marketplace?: string): string { function isOfficialMarketplaceName (line 75) | function isOfficialMarketplaceName( constant SCOPE_TO_EDITABLE_SOURCE (line 89) | const SCOPE_TO_EDITABLE_SOURCE: Record< function scopeToSettingSource (line 104) | function scopeToSettingSource( function settingSourceToScope (line 119) | function settingSourceToScope( FILE: restored-src/src/utils/plugins/pluginInstallationHelpers.ts type PluginInstallationInfo (line 64) | type PluginInstallationInfo = { function getCurrentTimestamp (line 73) | function getCurrentTimestamp(): string { function validatePathWithinBase (line 87) | function validatePathWithinBase( function cacheAndRegisterPlugin (line 128) | async function cacheAndRegisterPlugin( function registerPluginInstallation (line 239) | function registerPluginInstallation( function parsePluginId (line 264) | function parsePluginId( type InstallCoreResult (line 282) | type InstallCoreResult = function formatResolutionError (line 304) | function formatResolutionError( function installResolvedPlugin (line 348) | async function installResolvedPlugin({ type InstallPluginResult (line 486) | type InstallPluginResult = type InstallPluginParams (line 493) | type InstallPluginParams = { function installPluginFromMarketplace (line 506) | async function installPluginFromMarketplace({ FILE: restored-src/src/utils/plugins/pluginLoader.ts function getPluginCachePath (line 126) | function getPluginCachePath(): string { function getVersionedCachePathIn (line 139) | function getVersionedCachePathIn( function getVersionedCachePath (line 172) | function getVersionedCachePath( function getVersionedZipCachePath (line 183) | function getVersionedZipCachePath( function probeSeedCache (line 195) | async function probeSeedCache( function probeSeedCacheAnyVersion (line 220) | async function probeSeedCacheAnyVersion( function getLegacyCachePath (line 249) | function getLegacyCachePath(pluginName: string): string { function resolvePluginPath (line 266) | async function resolvePluginPath( function copyDir (line 293) | async function copyDir(src: string, dest: string): Promise { function copyPluginToVersionedCache (line 365) | async function copyPluginToVersionedCache( function validateGitUrl (line 470) | function validateGitUrl(url: string): string { function installFromNpm (line 492) | async function installFromNpm( function gitClone (line 534) | async function gitClone( function installFromGit (line 645) | async function installFromGit( function installFromGitHub (line 662) | async function installFromGitHub( function resolveGitSubdirUrl (line 686) | function resolveGitSubdirUrl(url: string): string { function installFromGitSubdir (line 718) | async function installFromGitSubdir( function installFromLocal (line 856) | async function installFromLocal( function generateTemporaryCacheNameForPlugin (line 873) | function generateTemporaryCacheNameForPlugin( function cachePlugin (line 911) | async function cachePlugin( function loadPluginManifest (line 1147) | async function loadPluginManifest( function loadPluginHooks (line 1224) | async function loadPluginHooks( function validatePluginPaths (line 1265) | async function validatePluginPaths( function createPluginFromPath (line 1348) | async function createPluginFromPath( function parsePluginSettings (line 1788) | function parsePluginSettings( function loadPluginSettings (line 1807) | async function loadPluginSettings( function mergeHooksSettings (line 1854) | function mergeHooksSettings( function loadPluginsFromMarketplaces (line 1888) | async function loadPluginsFromMarketplaces({ function loadPluginFromMarketplaceEntryCacheOnly (line 2098) | async function loadPluginFromMarketplaceEntryCacheOnly( function loadPluginFromMarketplaceEntry (line 2191) | async function loadPluginFromMarketplaceEntry( function finishLoadingPluginFromPath (line 2420) | async function finishLoadingPluginFromPath( function loadSessionOnlyPlugins (line 2928) | async function loadSessionOnlyPlugins( function mergePluginSources (line 3009) | function mergePluginSources(sources: { function assemblePluginLoadResult (line 3155) | async function assemblePluginLoadResult( function clearPluginCache (line 3225) | function clearPluginCache(reason?: string): void { function mergePluginSettings (line 3250) | function mergePluginSettings( function cachePluginSettings (line 3281) | function cachePluginSettings(plugins: LoadedPlugin[]): void { function isRecord (line 3300) | function isRecord(value: unknown): value is Record { FILE: restored-src/src/utils/plugins/pluginOptionsStorage.ts type PluginOptionValues (line 31) | type PluginOptionValues = UserConfigValues type PluginOptionSchema (line 32) | type PluginOptionSchema = UserConfigSchema function getPluginStorageId (line 44) | function getPluginStorageId(plugin: LoadedPlugin): string { function clearPluginOptionsCache (line 79) | function clearPluginOptionsCache(): void { function savePluginOptions (line 90) | function savePluginOptions( function deletePluginOptions (line 210) | function deletePluginOptions(pluginId: string): void { function getUnconfiguredOptions (line 282) | function getUnconfiguredOptions( function substitutePluginVariables (line 326) | function substitutePluginVariables( function substituteUserConfigVariables (line 356) | function substituteUserConfigVariables( function substituteUserConfigInContent (line 385) | function substituteUserConfigInContent( FILE: restored-src/src/utils/plugins/pluginPolicy.ts function isPluginBlockedByPolicy (line 17) | function isPluginBlockedByPolicy(pluginId: string): boolean { FILE: restored-src/src/utils/plugins/pluginStartupCheck.ts function checkEnabledPlugins (line 39) | async function checkEnabledPlugins(): Promise { function getPluginEditableScopes (line 96) | function getPluginEditableScopes(): Map { function isPersistableScope (line 170) | function isPersistableScope( function settingSourceToScope (line 181) | function settingSourceToScope( function getInstalledPlugins (line 197) | async function getInstalledPlugins(): Promise { function findMissingPlugins (line 216) | async function findMissingPlugins( type PluginInstallResult (line 255) | type PluginInstallResult = { type InstallableScope (line 263) | type InstallableScope = Exclude function installSelectedPlugins (line 272) | async function installSelectedPlugins( FILE: restored-src/src/utils/plugins/pluginVersioning.ts function calculatePluginVersion (line 36) | async function calculatePluginVersion( function getGitCommitSha (line 114) | function getGitCommitSha(dirPath: string): Promise { function getVersionFromPath (line 127) | function getVersionFromPath(installPath: string): string | null { function isVersionedPath (line 155) | function isVersionedPath(path: string): boolean { FILE: restored-src/src/utils/plugins/reconciler.ts type MarketplaceDiff (line 30) | type MarketplaceDiff = { function diffMarketplaces (line 50) | function diffMarketplaces( type ReconcileOptions (line 85) | type ReconcileOptions = { type ReconcileProgressEvent (line 91) | type ReconcileProgressEvent = type ReconcileResult (line 102) | type ReconcileResult = { function reconcileMarketplaces (line 114) | async function reconcileMarketplaces( function normalizeSource (line 249) | function normalizeSource( FILE: restored-src/src/utils/plugins/refresh.ts type SetAppState (line 38) | type SetAppState = (updater: (prev: AppState) => AppState) => void type RefreshActivePluginsResult (line 40) | type RefreshActivePluginsResult = { function refreshActivePlugins (line 72) | async function refreshActivePlugins( function mergePluginErrors (line 199) | function mergePluginErrors( function errorKey (line 211) | function errorKey(e: PluginError): string { FILE: restored-src/src/utils/plugins/schemas.ts constant ALLOWED_OFFICIAL_MARKETPLACE_NAMES (line 19) | const ALLOWED_OFFICIAL_MARKETPLACE_NAMES = new Set([ constant NO_AUTO_UPDATE_OFFICIAL_MARKETPLACES (line 35) | const NO_AUTO_UPDATE_OFFICIAL_MARKETPLACES = new Set(['knowledge-work-pl... function isMarketplaceAutoUpdate (line 48) | function isMarketplaceAutoUpdate( constant BLOCKED_OFFICIAL_NAME_PATTERN (line 71) | const BLOCKED_OFFICIAL_NAME_PATTERN = constant NON_ASCII_PATTERN (line 79) | const NON_ASCII_PATTERN = /[^\u0020-\u007E]/ function isBlockedOfficialName (line 87) | function isBlockedOfficialName(name: string): boolean { constant OFFICIAL_GITHUB_ORG (line 107) | const OFFICIAL_GITHUB_ORG = 'anthropics' function validateOfficialNameSource (line 119) | function validateOfficialNameSource( function isLocalPluginSource (line 1221) | function isLocalPluginSource(source: PluginSource): source is string { function isLocalMarketplaceSource (line 1236) | function isLocalMarketplaceSource( constant DEP_REF_REGEX (line 1348) | const DEP_REF_REGEX = type CommandMetadata (line 1647) | type CommandMetadata = z.infer> type MarketplaceSource (line 1648) | type MarketplaceSource = z.infer< type PluginAuthor (line 1651) | type PluginAuthor = z.infer> type PluginSource (line 1652) | type PluginSource = z.infer> type PluginManifest (line 1653) | type PluginManifest = z.infer> type PluginManifestChannel (line 1654) | type PluginManifestChannel = NonNullable< type PluginMarketplace (line 1658) | type PluginMarketplace = z.infer< type PluginMarketplaceEntry (line 1661) | type PluginMarketplaceEntry = z.infer< type PluginId (line 1664) | type PluginId = z.infer> // string in ... type InstalledPlugin (line 1665) | type InstalledPlugin = z.infer> type InstalledPluginsFileV1 (line 1666) | type InstalledPluginsFileV1 = z.infer< type InstalledPluginsFileV2 (line 1669) | type InstalledPluginsFileV2 = z.infer< type PluginScope (line 1672) | type PluginScope = z.infer> type PluginInstallationEntry (line 1673) | type PluginInstallationEntry = z.infer< type KnownMarketplace (line 1676) | type KnownMarketplace = z.infer< type KnownMarketplacesFile (line 1679) | type KnownMarketplacesFile = z.infer< FILE: restored-src/src/utils/plugins/validatePlugin.ts constant MARKETPLACE_ONLY_MANIFEST_FIELDS (line 24) | const MARKETPLACE_ONLY_MANIFEST_FIELDS = new Set([ type ValidationResult (line 32) | type ValidationResult = { type ValidationError (line 40) | type ValidationError = { type ValidationWarning (line 46) | type ValidationWarning = { function detectManifestType (line 54) | function detectManifestType( function formatZodErrors (line 75) | function formatZodErrors(zodError: z.ZodError): ValidationError[] { function checkPathTraversal (line 92) | function checkPathTraversal( function marketplaceSourceHint (line 113) | function marketplaceSourceHint(p: string): string { function validatePluginManifest (line 129) | async function validatePluginManifest( function validateMarketplaceManifest (line 310) | async function validateMarketplaceManifest( function validateComponentFile (line 517) | function validateComponentFile( function validateHooksJson (line 646) | async function validateHooksJson(filePath: string): Promise { function cleanupSessionPluginCache (line 146) | async function cleanupSessionPluginCache(): Promise { function resetSessionPluginCache (line 166) | function resetSessionPluginCache(): void { function atomicWriteToZipCache (line 175) | async function atomicWriteToZipCache( type ZipEntry (line 205) | type ZipEntry = [Uint8Array, { os: number; attrs: number }] function createZipFromDirectory (line 216) | async function createZipFromDirectory( function collectFilesForZip (line 235) | async function collectFilesForZip( function extractZipToDirectory (line 331) | async function extractZipToDirectory( function convertDirectoryToZipInPlace (line 371) | async function convertDirectoryToZipInPlace( function getMarketplaceJsonRelativePath (line 384) | function getMarketplaceJsonRelativePath( function isMarketplaceSourceSupportedByZipCache (line 402) | function isMarketplaceSourceSupportedByZipCache( FILE: restored-src/src/utils/plugins/zipCacheAdapters.ts function readZipCacheKnownMarketplaces (line 38) | async function readZipCacheKnownMarketplaces(): Promise { FILE: restored-src/src/utils/powershell/dangerousCmdlets.ts constant FILEPATH_EXECUTION_CMDLETS (line 17) | const FILEPATH_EXECUTION_CMDLETS = new Set([ constant DANGEROUS_SCRIPT_BLOCK_CMDLETS (line 28) | const DANGEROUS_SCRIPT_BLOCK_CMDLETS = new Set([ constant MODULE_LOADING_CMDLETS (line 45) | const MODULE_LOADING_CMDLETS = new Set([ constant SHELLS_AND_SPAWNERS (line 59) | const SHELLS_AND_SPAWNERS = [ function aliasesOf (line 72) | function aliasesOf(targets: ReadonlySet): string[] { constant NETWORK_CMDLETS (line 82) | const NETWORK_CMDLETS = new Set([ constant ALIAS_HIJACK_CMDLETS (line 92) | const ALIAS_HIJACK_CMDLETS = new Set([ constant WMI_CIM_CMDLETS (line 110) | const WMI_CIM_CMDLETS = new Set([ constant ARG_GATED_CMDLETS (line 129) | const ARG_GATED_CMDLETS = new Set([ constant NEVER_SUGGEST (line 158) | const NEVER_SUGGEST: ReadonlySet = (() => { FILE: restored-src/src/utils/powershell/parser.ts type PipelineElementType (line 17) | type PipelineElementType = type CommandElementType (line 27) | type CommandElementType = type CommandElementChild (line 43) | type CommandElementChild = { type StatementType (line 52) | type StatementType = type ParsedCommandElement (line 72) | type ParsedCommandElement = { type ParsedRedirection (line 100) | type ParsedRedirection = { type ParsedStatement (line 113) | type ParsedStatement = { type ParsedVariable (line 146) | type ParsedVariable = { type ParseError (line 156) | type ParseError = { type ParsedPowerShellCommand (line 164) | type ParsedPowerShellCommand = { constant DEFAULT_PARSE_TIMEOUT_MS (line 207) | const DEFAULT_PARSE_TIMEOUT_MS = 5_000 function getParseTimeoutMs (line 208) | function getParseTimeoutMs(): number { type RawCommandElement (line 226) | type RawCommandElement = { type RawRedirection (line 234) | type RawRedirection = { type RawPipelineElement (line 241) | type RawPipelineElement = { type RawStatement (line 249) | type RawStatement = { type RawParsedOutput (line 264) | type RawParsedOutput = { constant PARSE_SCRIPT_BODY (line 315) | const PARSE_SCRIPT_BODY = ` constant WINDOWS_ARGV_CAP (line 611) | const WINDOWS_ARGV_CAP = 32_767 constant FIXED_ARGV_OVERHEAD (line 615) | const FIXED_ARGV_OVERHEAD = 200 constant ENCODED_CMD_WRAPPER (line 617) | const ENCODED_CMD_WRAPPER = `$EncodedCommand = ''\n`.length constant SAFETY_MARGIN (line 621) | const SAFETY_MARGIN = 100 constant SCRIPT_CHARS_BUDGET (line 622) | const SCRIPT_CHARS_BUDGET = ((WINDOWS_ARGV_CAP - FIXED_ARGV_OVERHEAD) * ... constant CMD_B64_BUDGET (line 623) | const CMD_B64_BUDGET = constant WINDOWS_MAX_COMMAND_LENGTH (line 627) | const WINDOWS_MAX_COMMAND_LENGTH = Math.max( constant UNIX_MAX_COMMAND_LENGTH (line 636) | const UNIX_MAX_COMMAND_LENGTH = 4_500 constant MAX_COMMAND_LENGTH (line 638) | const MAX_COMMAND_LENGTH = constant INVALID_RESULT_BASE (line 643) | const INVALID_RESULT_BASE: Omit< function makeInvalidResult (line 653) | function makeInvalidResult( function toUtf16LeBase64 (line 669) | function toUtf16LeBase64(text: string): string { function buildParseScript (line 687) | function buildParseScript(command: string): string { function ensureArray (line 703) | function ensureArray(value: T | T[] | undefined | null): T[] { function mapStatementType (line 712) | function mapStatementType(rawType: string): StatementType { function mapElementType (line 749) | function mapElementType( function classifyCommandName (line 800) | function classifyCommandName( function stripModulePrefix (line 814) | function stripModulePrefix(name: string): string { function transformCommandAst (line 830) | function transformCommandAst( function transformExpressionElement (line 939) | function transformExpressionElement( function transformRedirection (line 962) | function transformRedirection(raw: RawRedirection): ParsedRedirection { function transformStatement (line 1002) | function transformStatement(raw: RawStatement): ParsedStatement { function transformRawOutput (line 1106) | function transformRawOutput(raw: RawParsedOutput): ParsedPowerShellComma... function parsePowerShellCommandImpl (line 1136) | async function parsePowerShellCommandImpl( constant TRANSIENT_ERROR_IDS (line 1267) | const TRANSIENT_ERROR_IDS = new Set([ type SecurityFlags (line 1303) | type SecurityFlags = { constant COMMON_ALIASES (line 1326) | const COMMON_ALIASES: Record = Object.assign( constant DIRECTORY_CHANGE_CMDLETS (line 1454) | const DIRECTORY_CHANGE_CMDLETS = new Set([ constant DIRECTORY_CHANGE_ALIASES (line 1460) | const DIRECTORY_CHANGE_ALIASES = new Set(['cd', 'sl', 'chdir', 'pushd', ... function getAllCommandNames (line 1467) | function getAllCommandNames(parsed: ParsedPowerShellCommand): string[] { function getAllCommands (line 1486) | function getAllCommands( function getAllRedirections (line 1507) | function getAllRedirections( function getVariablesByScope (line 1533) | function getVariablesByScope( function hasCommandNamed (line 1545) | function hasCommandNamed( function hasDirectoryChange (line 1578) | function hasDirectoryChange(parsed: ParsedPowerShellCommand): boolean { function isSingleCommand (line 1594) | function isSingleCommand(parsed: ParsedPowerShellCommand): boolean { function commandHasArg (line 1608) | function commandHasArg( constant PS_TOKENIZER_DASH_CHARS (line 1627) | const PS_TOKENIZER_DASH_CHARS = new Set([ function isPowerShellParameter (line 1647) | function isPowerShellParameter( function commandHasArgAbbreviation (line 1663) | function commandHasArgAbbreviation( function getPipelineSegments (line 1690) | function getPipelineSegments( function isNullRedirectionTarget (line 1703) | function isNullRedirectionTarget(target: string): boolean { function getFileRedirections (line 1713) | function getFileRedirections( function deriveSecurityFlags (line 1728) | function deriveSecurityFlags( FILE: restored-src/src/utils/powershell/staticPrefix.ts function extractPrefixFromElement (line 30) | async function extractPrefixFromElement( function getCommandPrefixStatic (line 166) | async function getCommandPrefixStatic( function getCompoundCommandPrefixesStatic (line 204) | async function getCompoundCommandPrefixesStatic( function wordAlignedLCP (line 294) | function wordAlignedLCP(strings: string[]): string { FILE: restored-src/src/utils/preflightChecks.tsx type PreflightCheckResult (line 12) | interface PreflightCheckResult { function checkEndpoints (line 17) | async function checkEndpoints(): Promise { type PreflightStepProps (line 75) | interface PreflightStepProps { function PreflightStep (line 78) | function PreflightStep(t0) { function _temp (line 148) | function _temp() { FILE: restored-src/src/utils/privacyLevel.ts type PrivacyLevel (line 18) | type PrivacyLevel = 'default' | 'no-telemetry' | 'essential-traffic' function getPrivacyLevel (line 20) | function getPrivacyLevel(): PrivacyLevel { function isEssentialTrafficOnly (line 34) | function isEssentialTrafficOnly(): boolean { function isTelemetryDisabled (line 42) | function isTelemetryDisabled(): boolean { function getEssentialTrafficOnlyReason (line 50) | function getEssentialTrafficOnlyReason(): string | null { FILE: restored-src/src/utils/process.ts function handleEPIPE (line 1) | function handleEPIPE( function registerProcessOutputErrorHandlers (line 12) | function registerProcessOutputErrorHandlers(): void { function writeOut (line 17) | function writeOut(stream: NodeJS.WriteStream, data: string): void { function writeToStdout (line 28) | function writeToStdout(data: string): void { function writeToStderr (line 32) | function writeToStderr(data: string): void { function exitWithError (line 38) | function exitWithError(message: string): never { function peekForStdinData (line 50) | function peekForStdinData( FILE: restored-src/src/utils/processUserInput/processBashCommand.tsx function processBashCommand (line 17) | async function processBashCommand(inputString: string, precedingInputBlo... FILE: restored-src/src/utils/processUserInput/processSlashCommand.tsx type SlashCommandResult (line 49) | type SlashCommandResult = ProcessUserInputBaseResult & { constant MCP_SETTLE_POLL_MS (line 56) | const MCP_SETTLE_POLL_MS = 200; constant MCP_SETTLE_TIMEOUT_MS (line 57) | const MCP_SETTLE_TIMEOUT_MS = 10_000; function executeForkedSlashCommand (line 62) | async function executeForkedSlashCommand(command: CommandBase & PromptCo... function looksLikeCommand (line 304) | function looksLikeCommand(commandName: string): boolean { function processSlashCommand (line 309) | async function processSlashCommand(inputString: string, precedingInputBl... function getMessagesForSlashCommand (line 525) | async function getMessagesForSlashCommand(commandName: string, args: str... function formatCommandInput (line 778) | function formatCommandInput(command: CommandBase, args: string): string { function formatSkillLoadingMetadata (line 786) | function formatSkillLoadingMetadata(skillName: string, _progressMessage:... function formatSlashCommandLoadingMetadata (line 794) | function formatSlashCommandLoadingMetadata(commandName: string, args?: s... function formatCommandLoadingMetadata (line 803) | function formatCommandLoadingMetadata(command: CommandBase & PromptComma... function processPromptSlashCommand (line 817) | async function processPromptSlashCommand(commandName: string, args: stri... function getMessagesForPromptSlashCommand (line 827) | async function getMessagesForPromptSlashCommand(command: CommandBase & P... FILE: restored-src/src/utils/processUserInput/processTextPrompt.ts function processTextPrompt (line 19) | function processTextPrompt( FILE: restored-src/src/utils/processUserInput/processUserInput.ts type ProcessUserInputContext (line 62) | type ProcessUserInputContext = ToolUseContext & LocalJSXCommandContext type ProcessUserInputBaseResult (line 64) | type ProcessUserInputBaseResult = { function processUserInput (line 85) | async function processUserInput({ constant MAX_HOOK_OUTPUT_LENGTH (line 272) | const MAX_HOOK_OUTPUT_LENGTH = 10000 function applyTruncation (line 274) | function applyTruncation(content: string): string { function processUserInputBase (line 281) | async function processUserInputBase( function addImageMetadataMessage (line 592) | function addImageMetadataMessage( FILE: restored-src/src/utils/profilerBase.ts function getPerformance (line 14) | function getPerformance(): typeof PerformanceType { function formatMs (line 22) | function formatMs(ms: number): string { function formatTimelineLine (line 33) | function formatTimelineLine( FILE: restored-src/src/utils/promptCategory.ts function getQuerySourceForAgent (line 16) | function getQuerySourceForAgent( function getQuerySourceForREPL (line 36) | function getQuerySourceForREPL(): QuerySource { FILE: restored-src/src/utils/promptEditor.ts constant EDITOR_OVERRIDES (line 16) | const EDITOR_OVERRIDES: Record = { function isGuiEditor (line 21) | function isGuiEditor(editor: string): boolean { type EditorResult (line 25) | type EditorResult = { function editFileInEditor (line 31) | function editFileInEditor(filePath: string): EditorResult { function recollapsePastedContent (line 107) | function recollapsePastedContent( function editPromptInEditor (line 138) | function editPromptInEditor( FILE: restored-src/src/utils/promptShellExecution.ts type ShellOut (line 19) | type ShellOut = { stdout: string; stderr: string; interrupted: boolean } type PromptShellTool (line 20) | type PromptShellTool = Tool & { constant BLOCK_PATTERN (line 49) | const BLOCK_PATTERN = /```!\s*\n?([\s\S]*?)\n?```/g constant INLINE_PATTERN (line 56) | const INLINE_PATTERN = /(?<=^|\s)!`([^`]+)`/gm function executeShellCommandsInPrompt (line 69) | async function executeShellCommandsInPrompt( function formatBashOutput (line 145) | function formatBashOutput( function formatBashError (line 167) | function formatBashError(e: unknown, pattern: string, inline = false): n... FILE: restored-src/src/utils/proxy.ts function disableKeepAlive (line 29) | function disableKeepAlive(): void { function _resetKeepAliveForTesting (line 33) | function _resetKeepAliveForTesting(): void { function getAddressFamily (line 41) | function getAddressFamily(options: LookupOptions): 0 | 4 | 6 { type EnvLike (line 57) | type EnvLike = Record function getProxyUrl (line 64) | function getProxyUrl(env: EnvLike = process.env): string | undefined { function getNoProxy (line 73) | function getNoProxy(env: EnvLike = process.env): string | undefined { function shouldBypassProxy (line 88) | function shouldBypassProxy( function createHttpsProxyAgent (line 135) | function createHttpsProxyAgent( function createAxiosInstance (line 168) | function createAxiosInstance( function getWebSocketProxyAgent (line 243) | function getWebSocketProxyAgent(url: string): Agent | undefined { function getWebSocketProxyUrl (line 263) | function getWebSocketProxyUrl(url: string): string | undefined { function getProxyFetchOptions (line 288) | function getProxyFetchOptions(opts?: { forAnthropicAPI?: boolean }): { function configureGlobalAgents (line 327) | function configureGlobalAgents(): void { function getAWSClientProxyConfig (line 394) | async function getAWSClientProxyConfig(): Promise { function clearProxyCache (line 423) | function clearProxyCache(): void { FILE: restored-src/src/utils/queryContext.ts function fetchSystemPromptParts (line 44) | async function fetchSystemPromptParts({ function buildSideQuestionFallbackParams (line 88) | async function buildSideQuestionFallbackParams({ FILE: restored-src/src/utils/queryHelpers.ts type PermissionPromptTool (line 39) | type PermissionPromptTool = Tool< constant ASK_READ_FILE_STATE_CACHE_SIZE (line 46) | const ASK_READ_FILE_STATE_CACHE_SIZE = 10 function isResultSuccessful (line 56) | function isResultSuccessful( constant MAX_TOOL_PROGRESS_TRACKING_ENTRIES (line 98) | const MAX_TOOL_PROGRESS_TRACKING_ENTRIES = 100 constant TOOL_PROGRESS_THROTTLE_MS (line 99) | const TOOL_PROGRESS_THROTTLE_MS = 30000 function extractReadFilesFromMessages (line 346) | function extractReadFilesFromMessages( function extractBashToolsFromMessages (line 507) | function extractBashToolsFromMessages(messages: Message[]): Set { constant STRIPPED_COMMANDS (line 536) | const STRIPPED_COMMANDS = new Set(['sudo']) function extractCliName (line 543) | function extractCliName(command: string | undefined): string | undefined { FILE: restored-src/src/utils/queryProfiler.ts constant ENABLED (line 36) | const ENABLED = isEnvTruthy(process.env.CLAUDE_CODE_PROFILE_QUERY) function startQueryProfile (line 50) | function startQueryProfile(): void { function queryCheckpoint (line 69) | function queryCheckpoint(name: string): void { function endQueryProfile (line 89) | function endQueryProfile(): void { function getSlowWarning (line 98) | function getSlowWarning(deltaMs: number, name: string): string { function getQueryProfileReport (line 129) | function getQueryProfileReport(): string { function getPhaseSummary (line 216) | function getPhaseSummary( function logQueryProfileReport (line 298) | function logQueryProfileReport(): void { FILE: restored-src/src/utils/queueProcessor.ts type ProcessQueueParams (line 9) | type ProcessQueueParams = { type ProcessQueueResult (line 13) | type ProcessQueueResult = { function isSlashCommand (line 20) | function isSlashCommand(cmd: QueuedCommand): boolean { function processQueueIfReady (line 52) | function processQueueIfReady({ function hasQueuedCommands (line 93) | function hasQueuedCommands(): boolean { FILE: restored-src/src/utils/readEditContext.ts constant CHUNK_SIZE (line 4) | const CHUNK_SIZE = 8 * 1024 constant MAX_SCAN_BYTES (line 5) | const MAX_SCAN_BYTES = 10 * 1024 * 1024 type EditContext (line 8) | type EditContext = { function readEditContext (line 31) | async function readEditContext( function openForScan (line 48) | async function openForScan(path: string): Promise { function scanForContext (line 60) | async function scanForContext( function readCapped (line 123) | async function readCapped(handle: FileHandle): Promise { function indexOfWithin (line 148) | function indexOfWithin(buf: Buffer, needle: Buffer, end: number): number { function countNewlines (line 153) | function countNewlines(buf: Buffer, start: number, end: number): number { function normalizeCRLF (line 160) | function normalizeCRLF(buf: Buffer, len: number): string { function sliceContext (line 171) | async function sliceContext( FILE: restored-src/src/utils/readFileInRange.ts constant FAST_PATH_MAX_SIZE (line 44) | const FAST_PATH_MAX_SIZE = 10 * 1024 * 1024 // 10 MB type ReadFileRangeResult (line 46) | type ReadFileRangeResult = { class FileTooLargeError (line 57) | class FileTooLargeError extends Error { method constructor (line 58) | constructor( function readFileInRange (line 73) | async function readFileInRange( function readFileInRangeFast (line 128) | function readFileInRangeFast( type StreamState (line 200) | type StreamState = { function streamOnOpen (line 218) | function streamOnOpen(this: StreamState, fd: number): void { function streamOnData (line 224) | function streamOnData(this: StreamState, chunk: string): void { function streamOnEnd (line 306) | function streamOnEnd(this: StreamState): void { function readFileInRangeStreaming (line 344) | function readFileInRangeStreaming( FILE: restored-src/src/utils/releaseNotes.ts constant MAX_RELEASE_NOTES_SHOWN (line 13) | const MAX_RELEASE_NOTES_SHOWN = 5 constant CHANGELOG_URL (line 28) | const CHANGELOG_URL = constant RAW_CHANGELOG_URL (line 30) | const RAW_CHANGELOG_URL = function getChangelogCachePath (line 37) | function getChangelogCachePath(): string { function _resetChangelogCacheForTesting (line 46) | function _resetChangelogCacheForTesting(): void { function migrateChangelogFromConfig (line 55) | async function migrateChangelogFromConfig(): Promise { function fetchAndStoreChangelog (line 82) | async function fetchAndStoreChangelog(): Promise { function getStoredChangelog (line 126) | async function getStoredChangelog(): Promise { function getStoredChangelogFromMemory (line 147) | function getStoredChangelogFromMemory(): string { function parseChangelog (line 156) | function parseChangelog(content: string): Record { function getRecentReleaseNotes (line 207) | function getRecentReleaseNotes( function getAllReleaseNotes (line 249) | function getAllReleaseNotes( function checkForReleaseNotes (line 287) | async function checkForReleaseNotes( function checkForReleaseNotesSync (line 335) | function checkForReleaseNotesSync( FILE: restored-src/src/utils/renderOptions.ts function getStdinOverride (line 15) | function getStdinOverride(): ReadStream | undefined { function getBaseRenderOptions (line 68) | function getBaseRenderOptions( FILE: restored-src/src/utils/ripgrep.ts type RipgrepConfig (line 24) | type RipgrepConfig = { function ripgrepCommand (line 67) | function ripgrepCommand(): { constant MAX_BUFFER_SIZE (line 80) | const MAX_BUFFER_SIZE = 20_000_000 // 20MB; large monorepos can have 200... function isEagainError (line 87) | function isEagainError(stderr: string): boolean { class RipgrepTimeoutError (line 98) | class RipgrepTimeoutError extends Error { method constructor (line 99) | constructor( function ripGrepRaw (line 108) | function ripGrepRaw( function ripGrepFileCount (line 246) | async function ripGrepFileCount( function ripGrepStream (line 295) | async function ripGrepStream( function ripGrep (line 345) | async function ripGrep( function getRipgrepStatus (line 535) | function getRipgrepStatus(): { function codesignRipgrepIfNecessary (line 620) | async function codesignRipgrepIfNecessary() { FILE: restored-src/src/utils/sandbox/sandbox-adapter.ts function permissionRuleValueFromString (line 63) | function permissionRuleValueFromString( function permissionRuleExtractPrefix (line 78) | function permissionRuleExtractPrefix(permissionRule: string): string | n... function resolvePathPatternForSandbox (line 99) | function resolvePathPatternForSandbox( function resolveSandboxFilesystemPath (line 138) | function resolveSandboxFilesystemPath( function shouldAllowManagedSandboxDomainsOnly (line 152) | function shouldAllowManagedSandboxDomainsOnly(): boolean { function shouldAllowManagedReadPathsOnly (line 159) | function shouldAllowManagedReadPathsOnly(): boolean { function convertToSandboxRuntimeConfig (line 172) | function convertToSandboxRuntimeConfig( function scrubBareGitRepoFiles (line 404) | function scrubBareGitRepoFiles(): void { function detectWorktreeMainRepoPath (line 422) | async function detectWorktreeMainRepoPath(cwd: string): Promise { function addToExcludedCommands (line 828) | function addToExcludedCommands( type ISandboxManager (line 880) | interface ISandboxManager { FILE: restored-src/src/utils/sandbox/sandbox-ui-utils.ts function removeSandboxViolationTags (line 10) | function removeSandboxViolationTags(text: string): string { FILE: restored-src/src/utils/sanitization.ts function partiallySanitizeUnicode (line 25) | function partiallySanitizeUnicode(prompt: string): string { function recursivelySanitizeUnicode (line 71) | function recursivelySanitizeUnicode(value: unknown): unknown { FILE: restored-src/src/utils/screenshotClipboard.ts function copyAnsiToClipboard (line 16) | async function copyAnsiToClipboard( function copyPngToClipboard (line 46) | async function copyPngToClipboard( FILE: restored-src/src/utils/sdkEventQueue.ts type TaskStartedEvent (line 6) | type TaskStartedEvent = { type TaskProgressEvent (line 17) | type TaskProgressEvent = { type TaskNotificationSdkEvent (line 41) | type TaskNotificationSdkEvent = { type SessionStateChangedEvent (line 62) | type SessionStateChangedEvent = { type SdkEvent (line 68) | type SdkEvent = constant MAX_QUEUE_SIZE (line 74) | const MAX_QUEUE_SIZE = 1000 function enqueueSdkEvent (line 77) | function enqueueSdkEvent(event: SdkEvent): void { function drainSdkEvents (line 89) | function drainSdkEvents(): Array< function emitTaskTerminatedSdk (line 114) | function emitTaskTerminatedSdk( FILE: restored-src/src/utils/secureStorage/fallbackStorage.ts function createFallbackStorage (line 7) | function createFallbackStorage( FILE: restored-src/src/utils/secureStorage/index.ts function getSecureStorage (line 9) | function getSecureStorage(): SecureStorage { FILE: restored-src/src/utils/secureStorage/keychainPrefetch.ts constant KEYCHAIN_PREFETCH_TIMEOUT_MS (line 33) | const KEYCHAIN_PREFETCH_TIMEOUT_MS = 10_000 type SpawnResult (line 43) | type SpawnResult = { stdout: string | null; timedOut: boolean } function spawnSecurity (line 45) | function spawnSecurity(serviceName: string): Promise { function startKeychainPrefetch (line 69) | function startKeychainPrefetch(): void { function ensureKeychainPrefetchCompleted (line 96) | async function ensureKeychainPrefetchCompleted(): Promise { function getLegacyApiKeyPrefetchResult (line 104) | function getLegacyApiKeyPrefetchResult(): { function clearLegacyApiKeyPrefetch (line 114) | function clearLegacyApiKeyPrefetch(): void { FILE: restored-src/src/utils/secureStorage/macOsKeychainHelpers.ts constant CREDENTIALS_SERVICE_SUFFIX (line 27) | const CREDENTIALS_SERVICE_SUFFIX = '-credentials' function getMacOsKeychainStorageServiceName (line 29) | function getMacOsKeychainStorageServiceName( function getUsername (line 43) | function getUsername(): string { constant KEYCHAIN_CACHE_TTL_MS (line 69) | const KEYCHAIN_CACHE_TTL_MS = 30_000 function clearKeychainCache (line 87) | function clearKeychainCache(): void { function primeKeychainCacheFromPrefetch (line 98) | function primeKeychainCacheFromPrefetch(stdout: string | null): void { FILE: restored-src/src/utils/secureStorage/macOsKeychainStorage.ts constant SECURITY_STDIN_LINE_LIMIT (line 24) | const SECURITY_STDIN_LINE_LIMIT = 4096 - 64 method read (line 28) | read(): SecureStorageData | null { method readAsync (line 67) | async readAsync(): Promise { method update (line 97) | update(data: SecureStorageData): { success: boolean; warning?: string } { method delete (line 159) | delete(): boolean { function doReadAsync (line 178) | async function doReadAsync(): Promise { function isMacOsKeychainLocked (line 211) | function isMacOsKeychainLocked(): boolean { FILE: restored-src/src/utils/secureStorage/plainTextStorage.ts function getStoragePath (line 13) | function getStoragePath(): { storageDir: string; storagePath: string } { method read (line 21) | read(): SecureStorageData | null { method readAsync (line 33) | async readAsync(): Promise { method update (line 44) | update(data: SecureStorageData): { success: boolean; warning?: string } { method delete (line 70) | delete(): boolean { FILE: restored-src/src/utils/semanticBoolean.ts function semanticBoolean (line 22) | function semanticBoolean( FILE: restored-src/src/utils/semanticNumber.ts function semanticNumber (line 26) | function semanticNumber( FILE: restored-src/src/utils/semver.ts function getNpmSemver (line 11) | function getNpmSemver(): typeof import('semver') { function gt (line 19) | function gt(a: string, b: string): boolean { function gte (line 26) | function gte(a: string, b: string): boolean { function lt (line 33) | function lt(a: string, b: string): boolean { function lte (line 40) | function lte(a: string, b: string): boolean { function satisfies (line 47) | function satisfies(version: string, range: string): boolean { function order (line 54) | function order(a: string, b: string): -1 | 0 | 1 { FILE: restored-src/src/utils/sequential.ts type QueueItem (line 1) | type QueueItem = { function sequential (line 19) | function sequential( FILE: restored-src/src/utils/sessionActivity.ts constant SESSION_ACTIVITY_INTERVAL_MS (line 18) | const SESSION_ACTIVITY_INTERVAL_MS = 30_000 type SessionActivityReason (line 20) | type SessionActivityReason = 'api_call' | 'tool_exec' function startHeartbeatTimer (line 30) | function startHeartbeatTimer(): void { function startIdleTimer (line 42) | function startIdleTimer(): void { function clearIdleTimer (line 53) | function clearIdleTimer(): void { function registerSessionActivityCallback (line 60) | function registerSessionActivityCallback(cb: () => void): void { function unregisterSessionActivityCallback (line 68) | function unregisterSessionActivityCallback(): void { function sendSessionActivitySignal (line 78) | function sendSessionActivitySignal(): void { function isSessionActivityTrackingActive (line 84) | function isSessionActivityTrackingActive(): boolean { function startSessionActivity (line 92) | function startSessionActivity(reason: SessionActivityReason): void { function stopSessionActivity (line 121) | function stopSessionActivity(reason: SessionActivityReason): void { FILE: restored-src/src/utils/sessionEnvVars.ts function getSessionEnvVars (line 8) | function getSessionEnvVars(): ReadonlyMap { function setSessionEnvVar (line 12) | function setSessionEnvVar(name: string, value: string): void { function deleteSessionEnvVar (line 16) | function deleteSessionEnvVar(name: string): void { function clearSessionEnvVars (line 20) | function clearSessionEnvVars(): void { FILE: restored-src/src/utils/sessionEnvironment.ts function getSessionEnvDirPath (line 15) | async function getSessionEnvDirPath(): Promise { function getHookEnvFilePath (line 25) | async function getHookEnvFilePath( function clearCwdEnvFiles (line 33) | async function clearCwdEnvFiles(): Promise { function invalidateSessionEnvCache (line 55) | function invalidateSessionEnvCache(): void { function getSessionEnvironmentScript (line 60) | async function getSessionEnvironmentScript(): Promise { constant HOOK_ENV_PRIORITY (line 146) | const HOOK_ENV_PRIORITY: Record = { constant HOOK_ENV_REGEX (line 152) | const HOOK_ENV_REGEX = function sortHookEnvFiles (line 155) | function sortHookEnvFiles(a: string, b: string): number { FILE: restored-src/src/utils/sessionFileAccessHooks.ts function getFilePathFromInput (line 49) | function getFilePathFromInput( function getSessionFileTypeFromInput (line 75) | function getSessionFileTypeFromInput( function isMemoryFileAccess (line 123) | function isMemoryFileAccess( function handleSessionFileAccess (line 146) | async function handleSessionFileAccess( function registerSessionFileAccessHooks (line 233) | function registerSessionFileAccessHooks(): void { FILE: restored-src/src/utils/sessionIngressAuth.ts function getTokenFromFileDescriptor (line 18) | function getTokenFromFileDescriptor(): string | null { function getSessionIngressAuthToken (line 101) | function getSessionIngressAuthToken(): string | null { function getSessionIngressAuthHeaders (line 117) | function getSessionIngressAuthHeaders(): Record { function updateSessionIngressAuthToken (line 138) | function updateSessionIngressAuthToken(token: string): void { FILE: restored-src/src/utils/sessionRestore.ts type ResumeResult (line 64) | type ResumeResult = { function extractTodosFromTranscript (line 77) | function extractTodosFromTranscript(messages: Message[]): TodoList { function restoreSessionStateFromLog (line 99) | function restoreSessionStateFromLog( function computeRestoredAttributionState (line 157) | function computeRestoredAttributionState( function computeStandaloneAgentContext (line 175) | function computeStandaloneAgentContext( function restoreAgentFromSession (line 200) | function restoreAgentFromSession( function refreshAgentDefinitionsForModeSwitch (line 251) | async function refreshAgentDefinitionsForModeSwitch( type ProcessedResume (line 276) | type ProcessedResume = { type CoordinatorModeApi (line 289) | type CoordinatorModeApi = { type ResumeLoadResult (line 297) | type ResumeLoadResult = { function restoreWorktreeForResume (line 332) | function restoreWorktreeForResume( function exitRestoredWorktree (line 380) | function exitRestoredWorktree(): void { function processResumedConversation (line 409) | async function processResumedConversation( FILE: restored-src/src/utils/sessionStart.ts type SessionStartHooksOptions (line 13) | type SessionStartHooksOptions = { function takeInitialUserMessage (line 28) | function takeInitialUserMessage(): string | undefined { function processSessionStartHooks (line 35) | async function processSessionStartHooks( function processSetupHooks (line 177) | async function processSetupHooks( FILE: restored-src/src/utils/sessionState.ts type SessionState (line 1) | type SessionState = 'idle' | 'running' | 'requires_action' type RequiresActionDetails (line 15) | type RequiresActionDetails = { type SessionExternalMetadata (line 32) | type SessionExternalMetadata = { type SessionStateChangedListener (line 47) | type SessionStateChangedListener = ( type SessionMetadataChangedListener (line 51) | type SessionMetadataChangedListener = ( type PermissionModeChangedListener (line 54) | type PermissionModeChangedListener = (mode: PermissionMode) => void function setSessionStateChangedListener (line 60) | function setSessionStateChangedListener( function setSessionMetadataChangedListener (line 66) | function setSessionMetadataChangedListener( function setPermissionModeChangedListener (line 79) | function setPermissionModeChangedListener( function getSessionState (line 88) | function getSessionState(): SessionState { function notifySessionStateChanged (line 92) | function notifySessionStateChanged( function notifySessionMetadataChanged (line 136) | function notifySessionMetadataChanged( function notifyPermissionModeChanged (line 148) | function notifyPermissionModeChanged(mode: PermissionMode): void { FILE: restored-src/src/utils/sessionStorage.ts constant VERSION (line 99) | const VERSION = typeof MACRO !== 'undefined' ? MACRO.VERSION : 'unknown' type Transcript (line 101) | type Transcript = ( constant MAX_TOMBSTONE_REWRITE_BYTES (line 123) | const MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024 constant SKIP_FIRST_PROMPT_PATTERN (line 125) | const SKIP_FIRST_PROMPT_PATTERN = function isTranscriptMessage (line 139) | function isTranscriptMessage(entry: Entry): entry is TranscriptMessage { function isChainParticipant (line 154) | function isChainParticipant(m: Pick): boolean { type LegacyProgressEntry (line 158) | type LegacyProgressEntry = { function isLegacyProgressEntry (line 169) | function isLegacyProgressEntry(entry: unknown): entry is LegacyProgressE... constant EPHEMERAL_PROGRESS_TYPES (line 186) | const EPHEMERAL_PROGRESS_TYPES = new Set([ function isEphemeralToolProgress (line 194) | function isEphemeralToolProgress(dataType: unknown): boolean { function getProjectsDir (line 198) | function getProjectsDir(): string { function getTranscriptPath (line 202) | function getTranscriptPath(): string { function getTranscriptPathForSession (line 207) | function getTranscriptPathForSession(sessionId: string): string { constant MAX_TRANSCRIPT_READ_BYTES (line 229) | const MAX_TRANSCRIPT_READ_BYTES = 50 * 1024 * 1024 function setAgentTranscriptSubdir (line 236) | function setAgentTranscriptSubdir( function clearAgentTranscriptSubdir (line 243) | function clearAgentTranscriptSubdir(agentId: string): void { function getAgentTranscriptPath (line 247) | function getAgentTranscriptPath(agentId: AgentId): string { function getAgentMetadataPath (line 260) | function getAgentMetadataPath(agentId: AgentId): string { type AgentMetadata (line 264) | type AgentMetadata = { function writeAgentMetadata (line 283) | async function writeAgentMetadata( function readAgentMetadata (line 292) | async function readAgentMetadata( type RemoteAgentMetadata (line 305) | type RemoteAgentMetadata = { function getRemoteAgentsDir (line 320) | function getRemoteAgentsDir(): string { function getRemoteAgentMetadataPath (line 327) | function getRemoteAgentMetadataPath(taskId: string): string { function writeRemoteAgentMetadata (line 337) | async function writeRemoteAgentMetadata( function readRemoteAgentMetadata (line 346) | async function readRemoteAgentMetadata( function deleteRemoteAgentMetadata (line 359) | async function deleteRemoteAgentMetadata(taskId: string): Promise { function listRemoteAgentMetadata (line 373) | async function listRemoteAgentMetadata(): Promise< function sessionIdExists (line 401) | function sessionIdExists(sessionId: string): boolean { function getNodeEnv (line 414) | function getNodeEnv(): string { function getUserType (line 419) | function getUserType(): string { function getEntrypoint (line 423) | function getEntrypoint(): string | undefined { function isCustomTitleEnabled (line 427) | function isCustomTitleEnabled(): boolean { function getProject (line 443) | function getProject(): Project { function resetProjectFlushStateForTesting (line 473) | function resetProjectFlushStateForTesting(): void { function resetProjectForTesting (line 482) | function resetProjectForTesting(): void { function setSessionFileForTesting (line 486) | function setSessionFileForTesting(path: string): void { type InternalEventWriter (line 490) | type InternalEventWriter = ( function setInternalEventWriter (line 501) | function setInternalEventWriter(writer: InternalEventWriter): void { type InternalEventReader (line 505) | type InternalEventReader = () => Promise< function setInternalEventReader (line 514) | function setInternalEventReader( function setRemoteIngressUrlForTesting (line 526) | function setRemoteIngressUrlForTesting(url: string): void { constant REMOTE_FLUSH_INTERVAL_MS (line 530) | const REMOTE_FLUSH_INTERVAL_MS = 10 class Project (line 532) | class Project { method constructor (line 570) | constructor() {} method _resetFlushState (line 573) | _resetFlushState(): void { method incrementPendingWrites (line 582) | private incrementPendingWrites(): void { method decrementPendingWrites (line 586) | private decrementPendingWrites(): void { method trackWrite (line 597) | private async trackWrite(fn: () => Promise): Promise { method enqueueWrite (line 606) | private enqueueWrite(filePath: string, entry: Entry): Promise { method scheduleDrain (line 618) | private scheduleDrain(): void { method appendToFile (line 634) | private async appendToFile(filePath: string, data: string): Promise { method resetSessionFile (line 688) | resetSessionFile(): void { method reAppendSessionMetadata (line 721) | reAppendSessionMetadata(skipTitleRefresh = false): void { method flush (line 841) | async flush(): Promise { method removeMessageByUuid (line 871) | async removeMessageByUuid(targetUuid: UUID): Promise { method shouldSkipPersistence (line 960) | private shouldSkipPersistence(): boolean { method materializeSessionFile (line 976) | private async materializeSessionFile(): Promise { method insertMessageChain (line 993) | async insertMessageChain( method insertFileHistorySnapshot (line 1085) | async insertFileHistorySnapshot( method insertQueueOperation (line 1101) | async insertQueueOperation(queueOp: QueueOperationMessage) { method insertAttributionSnapshot (line 1107) | async insertAttributionSnapshot(snapshot: AttributionSnapshotMessage) { method insertContentReplacement (line 1113) | async insertContentReplacement( method appendEntry (line 1128) | async appendEntry(entry: Entry, sessionId: UUID = getSessionId() as UU... method ensureCurrentSessionFile (line 1271) | private ensureCurrentSessionFile(): string { method getExistingSessionFile (line 1285) | private async getExistingSessionFile( method persistToRemote (line 1302) | private async persistToRemote(sessionId: UUID, entry: TranscriptMessag... method setRemoteIngressUrl (line 1345) | setRemoteIngressUrl(url: string): void { method setInternalEventWriter (line 1354) | setInternalEventWriter(writer: InternalEventWriter): void { method setInternalEventReader (line 1363) | setInternalEventReader(reader: InternalEventReader): void { method setInternalSubagentEventReader (line 1370) | setInternalSubagentEventReader(reader: InternalEventReader): void { method getInternalEventReader (line 1377) | getInternalEventReader(): InternalEventReader | null { method getInternalSubagentEventReader (line 1381) | getInternalSubagentEventReader(): InternalEventReader | null { type TeamInfo (line 1386) | type TeamInfo = { function recordTranscript (line 1408) | async function recordTranscript( function recordSidechainTranscript (line 1451) | async function recordSidechainTranscript( function recordQueueOperation (line 1464) | async function recordQueueOperation(queueOp: QueueOperationMessage) { function removeTranscriptMessage (line 1472) | async function removeTranscriptMessage(targetUuid: UUID): Promise { function recordFileHistorySnapshot (line 1476) | async function recordFileHistorySnapshot( function recordAttributionSnapshot (line 1488) | async function recordAttributionSnapshot( function recordContentReplacement (line 1494) | async function recordContentReplacement( function resetSessionFilePointer (line 1505) | async function resetSessionFilePointer() { function adoptResumedSessionFile (line 1530) | function adoptResumedSessionFile(): void { function recordContextCollapseCommit (line 1541) | async function recordContextCollapseCommit(commit: { function recordContextCollapseSnapshot (line 1563) | async function recordContextCollapseSnapshot(snapshot: { function flushSessionStorage (line 1583) | async function flushSessionStorage(): Promise { function hydrateRemoteSession (line 1587) | async function hydrateRemoteSession( function hydrateFromCCRv2InternalEvents (line 1632) | async function hydrateFromCCRv2InternalEvents( function extractFirstPrompt (line 1725) | function extractFirstPrompt(transcript: TranscriptMessage[]): string { function getFirstMeaningfulUserMessageTextContent (line 1746) | function getFirstMeaningfulUserMessageTextContent( function removeExtraFields (line 1814) | function removeExtraFields( function applyPreservedSegmentRelinks (line 1839) | function applyPreservedSegmentRelinks( function applySnipRemovals (line 1982) | function applySnipRemovals(messages: Map): void { function findLatestMessage (line 2046) | function findLatestMessage( function buildConversationChain (line 2069) | function buildConversationChain( function recoverOrphanedParallelToolResults (line 2118) | function recoverOrphanedParallelToolResults( function checkResumeConsistency (line 2224) | function checkResumeConsistency(chain: Message[]): void { function buildFileHistorySnapshotChain (line 2248) | function buildFileHistorySnapshotChain( function buildAttributionSnapshotChain (line 2280) | function buildAttributionSnapshotChain( function loadTranscriptFromFile (line 2294) | async function loadTranscriptFromFile( function hasVisibleUserContent (line 2399) | function hasVisibleUserContent(message: TranscriptMessage): boolean { function hasVisibleAssistantContent (line 2430) | function hasVisibleAssistantContent(message: TranscriptMessage): boolean { function countVisibleMessages (line 2453) | function countVisibleMessages(transcript: TranscriptMessage[]): number { function convertToLogOption (line 2479) | function convertToLogOption( function trackSessionBranchingAnalytics (line 2526) | async function trackSessionBranchingAnalytics( function fetchLogs (line 2559) | async function fetchLogs(limit?: number): Promise { function appendEntryToFile (line 2572) | function appendEntryToFile( function readFileTailSync (line 2592) | function readFileTailSync(fullPath: string): string { function saveCustomTitle (line 2617) | async function saveCustomTitle( function saveAiGeneratedTitle (line 2667) | function saveAiGeneratedTitle(sessionId: UUID, aiTitle: string): void { function saveTaskSummary (line 2681) | function saveTaskSummary(sessionId: UUID, summary: string): void { function saveTag (line 2690) | async function saveTag(sessionId: UUID, tag: string, fullPath?: string) { function linkSessionToPR (line 2705) | async function linkSessionToPR( function getCurrentSessionTag (line 2731) | function getCurrentSessionTag(sessionId: UUID): string | undefined { function getCurrentSessionTitle (line 2739) | function getCurrentSessionTitle( function getCurrentSessionAgentColor (line 2749) | function getCurrentSessionAgentColor(): string | undefined { function restoreSessionMetadata (line 2758) | function restoreSessionMetadata(meta: { function clearSessionMetadata (line 2792) | function clearSessionMetadata(): void { function reAppendSessionMetadata (line 2815) | function reAppendSessionMetadata(): void { function saveAgentName (line 2819) | async function saveAgentName( function saveAgentColor (line 2838) | async function saveAgentColor( function saveAgentSetting (line 2861) | function saveAgentSetting(agentSetting: string): void { function cacheSessionTitle (line 2870) | function cacheSessionTitle(customTitle: string): void { function saveMode (line 2879) | function saveMode(mode: 'coordinator' | 'normal'): void { function saveWorktreeState (line 2889) | function saveWorktreeState( function getSessionIdFromLog (line 2927) | function getSessionIdFromLog(log: LogOption): UUID | undefined { function isLiteLog (line 2940) | function isLiteLog(log: LogOption): boolean { function loadFullLog (line 2949) | async function loadFullLog(log: LogOption): Promise { function searchSessionsByCustomTitle (line 3065) | async function searchSessionsByCustomTitle( constant METADATA_TYPE_MARKERS (line 3113) | const METADATA_TYPE_MARKERS = [ constant METADATA_MARKER_BUFS (line 3124) | const METADATA_MARKER_BUFS = METADATA_TYPE_MARKERS.map(m => Buffer.from(m)) constant METADATA_PREFIX_BOUND (line 3126) | const METADATA_PREFIX_BOUND = 25 function resolveMetadataBuf (line 3130) | function resolveMetadataBuf( function scanPreBoundaryMetadata (line 3157) | async function scanPreBoundaryMetadata( function pickDepthOneUuidCandidate (line 3275) | function pickDepthOneUuidCandidate( function walkChainBeforeParse (line 3306) | function walkChainBeforeParse(buf: Buffer): Buffer { function loadTranscriptFile (line 3472) | async function loadTranscriptFile( function loadSessionFile (line 3818) | async function loadSessionFile(sessionId: UUID): Promise<{ function clearSessionMessagesCache (line 3854) | function clearSessionMessagesCache(): void { function doesMessageExistInSession (line 3861) | async function doesMessageExistInSession( function getLastSessionLog (line 3869) | async function getLastSessionLog( function loadMessageLogs (line 3939) | async function loadMessageLogs(limit?: number): Promise { function loadAllProjectsMessageLogs (line 3963) | async function loadAllProjectsMessageLogs( function loadAllProjectsMessageLogsFull (line 3978) | async function loadAllProjectsMessageLogsFull( function loadAllProjectsMessageLogsProgressive (line 4018) | async function loadAllProjectsMessageLogsProgressive( type SessionLogResult (line 4064) | type SessionLogResult = { function loadSameRepoMessageLogs (line 4073) | async function loadSameRepoMessageLogs( function loadSameRepoMessageLogsProgressive (line 4086) | async function loadSameRepoMessageLogsProgressive( function getStatOnlyLogsForWorktrees (line 4113) | async function getStatOnlyLogsForWorktrees( function getAgentTranscript (line 4190) | async function getAgentTranscript(agentId: AgentId): Promise<{ function extractAgentIdsFromMessages (line 4244) | function extractAgentIdsFromMessages(messages: Message[]): string[] { function extractTeammateTranscriptsFromTasks (line 4271) | function extractTeammateTranscriptsFromTasks(tasks: { function loadSubagentTranscripts (line 4297) | async function loadSubagentTranscripts( function loadAllSubagentTranscriptsFromDisk (line 4325) | async function loadAllSubagentTranscriptsFromDisk(): Promise<{ function isLoggableMessage (line 4351) | function isLoggableMessage(m: Message): boolean { function collectReplIds (line 4369) | function collectReplIds(messages: readonly Message[]): Set { function transformMessagesForExternalTranscript (line 4396) | function transformMessagesForExternalTranscript( function cleanMessagesForLogging (line 4450) | function cleanMessagesForLogging( function getLogByIndex (line 4468) | async function getLogByIndex(index: number): Promise { function findUnresolvedToolUse (line 4478) | async function findUnresolvedToolUse( function getSessionFilesWithMtime (line 4526) | async function getSessionFilesWithMtime( constant INITIAL_ENRICH_COUNT (line 4577) | const INITIAL_ENRICH_COUNT = 50 type LiteMetadata (line 4579) | type LiteMetadata = { function loadAllLogsFromSessionFile (line 4598) | async function loadAllLogsFromSessionFile( function getLogsWithoutIndex (line 4701) | async function getLogsWithoutIndex( function readLiteMetadata (line 4739) | async function readLiteMetadata( function extractFirstPromptFromChunk (line 4818) | function extractFirstPromptFromChunk(chunk: string): string { function extractJsonStringFieldPrefix (line 4921) | function extractJsonStringFieldPrefix( function deduplicateLogsBySessionId (line 4955) | function deduplicateLogsBySessionId(logs: LogOption[]): LogOption[] { function getSessionFilesLite (line 4975) | async function getSessionFilesLite( function enrichLog (line 5023) | async function enrichLog( function enrichLogs (line 5077) | async function enrichLogs( FILE: restored-src/src/utils/sessionStoragePortable.ts constant LITE_READ_BUF_SIZE (line 17) | const LITE_READ_BUF_SIZE = 65536 function validateUuid (line 26) | function validateUuid(maybeUuid: unknown): UUID | null { function unescapeJsonString (line 39) | function unescapeJsonString(raw: string): string { function extractJsonStringField (line 53) | function extractJsonStringField( function extractLastJsonStringField (line 82) | function extractLastJsonStringField( constant SKIP_FIRST_PROMPT_PATTERN (line 123) | const SKIP_FIRST_PROMPT_PATTERN = constant COMMAND_NAME_RE (line 126) | const COMMAND_NAME_RE = /(.*?)<\/command-name>/ function extractFirstPromptFromHead (line 135) | function extractFirstPromptFromHead(head: string): string { function readHeadAndTail (line 215) | async function readHeadAndTail( type LiteSessionFile (line 244) | type LiteSessionFile = { function readSessionLite (line 256) | async function readSessionLite( constant MAX_SANITIZED_LENGTH (line 293) | const MAX_SANITIZED_LENGTH = 200 function simpleHash (line 295) | function simpleHash(str: string): string { function sanitizePath (line 311) | function sanitizePath(name: string): string { function getProjectsDir (line 325) | function getProjectsDir(): string { function getProjectDir (line 329) | function getProjectDir(projectDir: string): string { function canonicalizePath (line 339) | async function canonicalizePath(dir: string): Promise { function findProjectDir (line 354) | async function findProjectDir( function resolveSessionFilePath (line 403) | async function resolveSessionFilePath( constant TRANSCRIPT_READ_CHUNK_SIZE (line 473) | const TRANSCRIPT_READ_CHUNK_SIZE = 1024 * 1024 constant SKIP_PRECOMPACT_THRESHOLD (line 480) | const SKIP_PRECOMPACT_THRESHOLD = 5 * 1024 * 1024 function compactBoundaryMarker (line 485) | function compactBoundaryMarker(): Buffer { function parseBoundaryLine (line 493) | function parseBoundaryLine( type Sink (line 523) | type Sink = { buf: Buffer; len: number; cap: number } function sinkWrite (line 525) | function sinkWrite(s: Sink, src: Buffer, start: number, end: number): vo... function hasPrefix (line 539) | function hasPrefix( constant ATTR_SNAP_PREFIX (line 551) | const ATTR_SNAP_PREFIX = Buffer.from('{"type":"attribution-snapshot"') constant SYSTEM_PREFIX (line 552) | const SYSTEM_PREFIX = Buffer.from('{"type":"system"') constant LF_BYTE (line 554) | const LF_BYTE = Buffer.from([LF]) constant BOUNDARY_SEARCH_BOUND (line 555) | const BOUNDARY_SEARCH_BOUND = 256 // marker sits ~28 bytes in; 256 is slack type LoadState (line 557) | type LoadState = { function processStraddle (line 572) | function processStraddle( function scanChunkLines (line 614) | function scanChunkLines( function captureSnap (line 664) | function captureSnap( function captureCarry (line 689) | function captureCarry(s: LoadState, buf: Buffer, trailStart: number): vo... function finalizeOutput (line 699) | function finalizeOutput(s: LoadState): void { function readTranscriptForLoad (line 717) | async function readTranscriptForLoad( FILE: restored-src/src/utils/sessionTitle.ts constant MAX_CONVERSATION_TEXT (line 26) | const MAX_CONVERSATION_TEXT = 1000 function extractConversationText (line 33) | function extractConversationText(messages: Message[]): string { constant SESSION_TITLE_PROMPT (line 56) | const SESSION_TITLE_PROMPT = `Generate a concise, sentence-case title (3... function generateSessionTitle (line 79) | async function generateSessionTitle( FILE: restored-src/src/utils/sessionUrl.ts type ParsedSessionUrl (line 4) | type ParsedSessionUrl = { function parseSessionIdentifier (line 20) | function parseSessionIdentifier( FILE: restored-src/src/utils/set.ts function difference (line 4) | function difference(a: Set, b: Set): Set { function intersects (line 17) | function intersects(a: Set, b: Set): boolean { function every (line 32) | function every(a: ReadonlySet, b: ReadonlySet): boolean { function union (line 44) | function union(a: Set, b: Set): Set { FILE: restored-src/src/utils/settings/allErrors.ts function getSettingsWithAllErrors (line 23) | function getSettingsWithAllErrors(): SettingsWithErrors { FILE: restored-src/src/utils/settings/applySettingsChange.ts function applySettingsChange (line 33) | function applySettingsChange( FILE: restored-src/src/utils/settings/changeDetector.ts constant FILE_STABILITY_THRESHOLD_MS (line 31) | const FILE_STABILITY_THRESHOLD_MS = 1000 constant FILE_STABILITY_POLL_INTERVAL_MS (line 38) | const FILE_STABILITY_POLL_INTERVAL_MS = 500 constant INTERNAL_WRITE_WINDOW_MS (line 45) | const INTERNAL_WRITE_WINDOW_MS = 5000 constant MDM_POLL_INTERVAL_MS (line 51) | const MDM_POLL_INTERVAL_MS = 30 * 60 * 1000 // 30 minutes constant DELETION_GRACE_MS (line 62) | const DELETION_GRACE_MS = function initialize (line 84) | async function initialize(): Promise { function dispose (line 154) | function dispose(): Promise { function getWatchTargets (line 180) | async function getWatchTargets(): Promise<{ function settingSourceToConfigChangeSource (line 252) | function settingSourceToConfigChangeSource( function handleChange (line 268) | function handleChange(path: string): void { function handleAdd (line 308) | function handleAdd(path: string): void { function handleDelete (line 330) | function handleDelete(path: string): void { function getSourceForPath (line 362) | function getSourceForPath(path: string): SettingSource | undefined { function startMdmPoll (line 381) | function startMdmPoll(): void { function fanOut (line 437) | function fanOut(source: SettingSource): void { function notifyChange (line 447) | function notifyChange(source: SettingSource): void { function resetForTesting (line 461) | function resetForTesting(overrides?: { FILE: restored-src/src/utils/settings/constants.ts constant SETTING_SOURCES (line 7) | const SETTING_SOURCES = [ type SettingSource (line 24) | type SettingSource = (typeof SETTING_SOURCES)[number] function getSettingSourceName (line 26) | function getSettingSourceName(source: SettingSource): string { function getSourceDisplayName (line 46) | function getSourceDisplayName( function getSettingSourceDisplayNameLowercase (line 72) | function getSettingSourceDisplayNameLowercase( function getSettingSourceDisplayNameCapitalized (line 100) | function getSettingSourceDisplayNameCapitalized( function parseSettingSourcesFlag (line 128) | function parseSettingSourcesFlag(flag: string): SettingSource[] { function getEnabledSettingSources (line 159) | function getEnabledSettingSources(): SettingSource[] { function isSettingSourceEnabled (line 174) | function isSettingSourceEnabled(source: SettingSource): boolean { type EditableSettingSource (line 182) | type EditableSettingSource = Exclude< constant SOURCES (line 191) | const SOURCES = [ constant CLAUDE_CODE_SETTINGS_SCHEMA_URL (line 201) | const CLAUDE_CODE_SETTINGS_SCHEMA_URL = FILE: restored-src/src/utils/settings/internalWrites.ts function markInternalWrite (line 17) | function markInternalWrite(path: string): void { function consumeInternalWrite (line 26) | function consumeInternalWrite(path: string, windowMs: number): boolean { function clearInternalWrites (line 35) | function clearInternalWrites(): void { FILE: restored-src/src/utils/settings/mdm/constants.ts constant MACOS_PREFERENCE_DOMAIN (line 12) | const MACOS_PREFERENCE_DOMAIN = 'com.anthropic.claudecode' constant WINDOWS_REGISTRY_KEY_PATH_HKLM (line 23) | const WINDOWS_REGISTRY_KEY_PATH_HKLM = constant WINDOWS_REGISTRY_KEY_PATH_HKCU (line 25) | const WINDOWS_REGISTRY_KEY_PATH_HKCU = constant WINDOWS_REGISTRY_VALUE_NAME (line 29) | const WINDOWS_REGISTRY_VALUE_NAME = 'Settings' constant PLUTIL_PATH (line 32) | const PLUTIL_PATH = '/usr/bin/plutil' constant PLUTIL_ARGS_PREFIX (line 35) | const PLUTIL_ARGS_PREFIX = ['-convert', 'json', '-o', '-', '--'] as const constant MDM_SUBPROCESS_TIMEOUT_MS (line 38) | const MDM_SUBPROCESS_TIMEOUT_MS = 5000 function getMacOSPlistPaths (line 45) | function getMacOSPlistPaths(): Array<{ path: string; label: string }> { FILE: restored-src/src/utils/settings/mdm/rawRead.ts type RawReadResult (line 24) | type RawReadResult = { function execFilePromise (line 32) | function execFilePromise( function fireRawRead (line 55) | function fireRawRead(): Promise { function startMdmRawRead (line 120) | function startMdmRawRead(): void { function getMdmRawReadPromise (line 128) | function getMdmRawReadPromise(): Promise | null { FILE: restored-src/src/utils/settings/mdm/settings.ts type MdmResult (line 53) | type MdmResult = { settings: SettingsJson; errors: ValidationError[] } constant EMPTY_RESULT (line 54) | const EMPTY_RESULT: MdmResult = Object.freeze({ settings: {}, errors: [] }) function startMdmSettingsLoad (line 67) | function startMdmSettingsLoad(): void { function ensureMdmSettingsLoaded (line 104) | async function ensureMdmSettingsLoaded(): Promise { function getMdmSettings (line 124) | function getMdmSettings(): MdmResult { function getHkcuSettings (line 132) | function getHkcuSettings(): MdmResult { function clearMdmSettingsCache (line 143) | function clearMdmSettingsCache(): void { function setMdmSettingsCache (line 152) | function setMdmSettingsCache(mdm: MdmResult, hkcu: MdmResult): void { function refreshMdmSettings (line 166) | async function refreshMdmSettings(): Promise<{ function parseCommandOutputAsSettings (line 183) | function parseCommandOutputAsSettings( function parseRegQueryStdout (line 208) | function parseRegQueryStdout( function consumeRawReadResult (line 228) | function consumeRawReadResult(raw: RawReadResult): { function hasManagedSettingsFile (line 280) | function hasManagedSettingsFile(): boolean { FILE: restored-src/src/utils/settings/permissionValidation.ts function isEscaped (line 15) | function isEscaped(str: string, index: number): boolean { function countUnescapedChar (line 29) | function countUnescapedChar(str: string, char: string): number { function hasUnescapedEmptyParens (line 43) | function hasUnescapedEmptyParens(str: string): boolean { function validatePermissionRule (line 58) | function validatePermissionRule(rule: string): { FILE: restored-src/src/utils/settings/pluginOnlyPolicy.ts type CustomizationSurface (line 4) | type CustomizationSurface = (typeof CUSTOMIZATION_SURFACES)[number] function isRestrictedToPluginOnly (line 19) | function isRestrictedToPluginOnly( constant ADMIN_TRUSTED_SOURCES (line 40) | const ADMIN_TRUSTED_SOURCES: ReadonlySet = new Set([ function isSourceAdminTrusted (line 58) | function isSourceAdminTrusted(source: string | undefined): boolean { FILE: restored-src/src/utils/settings/schemaOutput.ts function generateSettingsJSONSchema (line 5) | function generateSettingsJSONSchema(): string { FILE: restored-src/src/utils/settings/settings.ts function getManagedSettingsFilePath (line 58) | function getManagedSettingsFilePath(): string { function loadManagedFileSettings (line 74) | function loadManagedFileSettings(): { function getManagedFileSettingsPresence (line 127) | function getManagedFileSettingsPresence(): { function handleFileSystemError (line 157) | function handleFileSystemError(error: unknown, path: string): void { function parseSettingsFile (line 178) | function parseSettingsFile(path: string): { function parseSettingsFileUncached (line 201) | function parseSettingsFileUncached(path: string): { function getSettingsRootPathForSource (line 239) | function getSettingsRootPathForSource(source: SettingSource): string { function getUserSettingsFilePath (line 264) | function getUserSettingsFilePath(): string { function getSettingsFilePathForSource (line 274) | function getSettingsFilePathForSource( function getRelativeSettingsFilePathForSource (line 298) | function getRelativeSettingsFilePathForSource( function getSettingsForSource (line 309) | function getSettingsForSource( function getSettingsForSourceUncached (line 319) | function getSettingsForSourceUncached( function getPolicySettingsOrigin (line 375) | function getPolicySettingsOrigin(): function updateSettingsForSource (line 416) | function updateSettingsForSource( function mergeArrays (line 529) | function mergeArrays(targetArray: T[], sourceArray: T[]): T[] { function settingsMergeCustomizer (line 538) | function settingsMergeCustomizer( function getManagedSettingsKeysForLogging (line 558) | function getManagedSettingsKeysForLogging( function loadSettingsFromDisk (line 645) | function loadSettingsFromDisk(): SettingsWithErrors { function getInitialSettings (line 812) | function getInitialSettings(): SettingsJson { type SettingsWithSources (line 822) | type SettingsWithSources = { function getSettingsWithSources (line 836) | function getSettingsWithSources(): SettingsWithSources { function getSettingsWithErrors (line 856) | function getSettingsWithErrors(): SettingsWithErrors { function hasSkipDangerousModePermissionPrompt (line 882) | function hasSkipDangerousModePermissionPrompt(): boolean { function hasAutoModeOptIn (line 896) | function hasAutoModeOptIn(): boolean { function getUseAutoModeDuringPlan (line 918) | function getUseAutoModeDuringPlan(): boolean { function getAutoModeConfig (line 936) | function getAutoModeConfig(): function rawSettingsContainsKey (line 984) | function rawSettingsContainsKey(key: string): boolean { FILE: restored-src/src/utils/settings/settingsCache.ts function getSessionSettingsCache (line 7) | function getSessionSettingsCache(): SettingsWithErrors | null { function setSessionSettingsCache (line 11) | function setSessionSettingsCache(value: SettingsWithErrors): void { function getCachedSettingsForSource (line 22) | function getCachedSettingsForSource( function setCachedSettingsForSource (line 29) | function setCachedSettingsForSource( type ParsedSettings (line 41) | type ParsedSettings = { function getCachedParsedFile (line 47) | function getCachedParsedFile(path: string): ParsedSettings | undefined { function setCachedParsedFile (line 51) | function setCachedParsedFile(path: string, value: ParsedSettings): void { function resetSettingsCache (line 55) | function resetSettingsCache(): void { function getPluginSettingsBase (line 68) | function getPluginSettingsBase(): Record | undefined { function setPluginSettingsBase (line 72) | function setPluginSettingsBase( function clearPluginSettingsBase (line 78) | function clearPluginSettingsBase(): void { FILE: restored-src/src/utils/settings/toolValidationConfig.ts type ToolValidationConfig (line 8) | type ToolValidationConfig = { constant TOOL_VALIDATION_CONFIG (line 26) | const TOOL_VALIDATION_CONFIG: ToolValidationConfig = { function isFilePatternTool (line 91) | function isFilePatternTool(toolName: string): boolean { function isBashPrefixTool (line 96) | function isBashPrefixTool(toolName: string): boolean { function getCustomValidation (line 101) | function getCustomValidation(toolName: string) { FILE: restored-src/src/utils/settings/types.ts constant CUSTOMIZATION_SURFACES (line 248) | const CUSTOMIZATION_SURFACES = [ type PluginHookMatcher (line 1079) | type PluginHookMatcher = { type SkillHookMatcher (line 1091) | type SkillHookMatcher = { type AllowedMcpServerEntry (line 1098) | type AllowedMcpServerEntry = z.infer< type DeniedMcpServerEntry (line 1101) | type DeniedMcpServerEntry = z.infer< type SettingsJson (line 1104) | type SettingsJson = z.infer> function isMcpServerNameEntry (line 1109) | function isMcpServerNameEntry( function isMcpServerCommandEntry (line 1118) | function isMcpServerCommandEntry( function isMcpServerUrlEntry (line 1127) | function isMcpServerUrlEntry( type UserConfigValues (line 1136) | type UserConfigValues = Record< type PluginConfig (line 1144) | type PluginConfig = { FILE: restored-src/src/utils/settings/validateEditTool.ts function validateInputForSettingsFileEdit (line 14) | function validateInputForSettingsFileEdit( FILE: restored-src/src/utils/settings/validation.ts function isInvalidTypeIssue (line 15) | function isInvalidTypeIssue(issue: ZodIssue): issue is ZodIssue & { function isInvalidValueIssue (line 23) | function isInvalidValueIssue(issue: ZodIssue): issue is ZodIssue & { function isUnrecognizedKeysIssue (line 31) | function isUnrecognizedKeysIssue( function isTooSmallIssue (line 37) | function isTooSmallIssue(issue: ZodIssue): issue is ZodIssue & { type FieldPath (line 46) | type FieldPath = string type ValidationError (line 48) | type ValidationError = { type SettingsWithErrors (line 74) | type SettingsWithErrors = { function getReceivedType (line 85) | function getReceivedType(value: unknown): string { function extractReceivedFromMessage (line 92) | function extractReceivedFromMessage(msg: string): string | undefined { function formatZodError (line 97) | function formatZodError( function validateSettingsFileContent (line 179) | function validateSettingsFileContent(content: string): function filterInvalidPermissionRules (line 224) | function filterInvalidPermissionRules( FILE: restored-src/src/utils/settings/validationTips.ts type ZodIssueCodeType (line 4) | type ZodIssueCodeType = (typeof ZodIssueCode)[keyof typeof ZodIssueCode] type ValidationTip (line 6) | type ValidationTip = { type TipContext (line 11) | type TipContext = { type TipMatcher (line 21) | type TipMatcher = { constant DOCUMENTATION_BASE (line 26) | const DOCUMENTATION_BASE = 'https://code.claude.com/docs/en' constant TIP_MATCHERS (line 28) | const TIP_MATCHERS: TipMatcher[] = [ constant PATH_DOC_LINKS (line 134) | const PATH_DOC_LINKS: Record = { function getValidationTip (line 140) | function getValidationTip(context: TipContext): ValidationTip | null { FILE: restored-src/src/utils/shell/bashProvider.ts function getDisableExtglobCommand (line 39) | function getDisableExtglobCommand(shellPath: string): string | null { function createBashShellProvider (line 58) | async function createBashShellProvider( FILE: restored-src/src/utils/shell/outputLimits.ts constant BASH_MAX_OUTPUT_UPPER_LIMIT (line 3) | const BASH_MAX_OUTPUT_UPPER_LIMIT = 150_000 constant BASH_MAX_OUTPUT_DEFAULT (line 4) | const BASH_MAX_OUTPUT_DEFAULT = 30_000 function getMaxOutputLength (line 6) | function getMaxOutputLength(): number { FILE: restored-src/src/utils/shell/powershellDetection.ts function probePath (line 5) | async function probePath(p: string): Promise { function findPowerShell (line 24) | async function findPowerShell(): Promise { function getCachedPowerShellPath (line 65) | function getCachedPowerShellPath(): Promise { type PowerShellEdition (line 72) | type PowerShellEdition = 'core' | 'desktop' function getPowerShellEdition (line 87) | async function getPowerShellEdition(): Promise { function resetPowerShellCache (line 105) | function resetPowerShellCache(): void { FILE: restored-src/src/utils/shell/powershellProvider.ts function buildPowerShellArgs (line 11) | function buildPowerShellArgs(cmd: string): string[] { function encodePowerShellCommand (line 23) | function encodePowerShellCommand(psCommand: string): string { function createPowerShellProvider (line 27) | function createPowerShellProvider(shellPath: string): ShellProvider { FILE: restored-src/src/utils/shell/prefix.ts constant DANGEROUS_SHELL_PREFIXES (line 28) | const DANGEROUS_SHELL_PREFIXES = new Set([ type CommandPrefixResult (line 49) | type CommandPrefixResult = { type CommandSubcommandPrefixResult (line 57) | type CommandSubcommandPrefixResult = CommandPrefixResult & { type PrefixExtractorConfig (line 64) | type PrefixExtractorConfig = { function createCommandPrefixExtractor (line 92) | function createCommandPrefixExtractor(config: PrefixExtractorConfig) { function createSubcommandPrefixExtractor (line 138) | function createSubcommandPrefixExtractor( function getCommandPrefixImpl (line 172) | async function getCommandPrefixImpl( function getCommandSubcommandPrefixImpl (line 332) | async function getCommandSubcommandPrefixImpl( FILE: restored-src/src/utils/shell/readOnlyCommandValidation.ts type FlagArgType (line 18) | type FlagArgType = type ExternalCommandConfig (line 26) | type ExternalCommandConfig = { constant GIT_REF_SELECTION_FLAGS (line 44) | const GIT_REF_SELECTION_FLAGS: Record = { constant GIT_DATE_FILTER_FLAGS (line 51) | const GIT_DATE_FILTER_FLAGS: Record = { constant GIT_LOG_DISPLAY_FLAGS (line 58) | const GIT_LOG_DISPLAY_FLAGS: Record = { constant GIT_COUNT_FLAGS (line 67) | const GIT_COUNT_FLAGS: Record = { constant GIT_STAT_FLAGS (line 73) | const GIT_STAT_FLAGS: Record = { constant GIT_COLOR_FLAGS (line 82) | const GIT_COLOR_FLAGS: Record = { constant GIT_PATCH_FLAGS (line 88) | const GIT_PATCH_FLAGS: Record = { constant GIT_AUTHOR_FILTER_FLAGS (line 97) | const GIT_AUTHOR_FILTER_FLAGS: Record = { constant GIT_READ_ONLY_COMMANDS (line 107) | const GIT_READ_ONLY_COMMANDS: Record = { function ghIsDangerousCallback (line 944) | function ghIsDangerousCallback(_rawCommand: string, args: string[]): boo... constant GH_READ_ONLY_COMMANDS (line 984) | const GH_READ_ONLY_COMMANDS: Record = { constant DOCKER_READ_ONLY_COMMANDS (line 1386) | const DOCKER_READ_ONLY_COMMANDS: Record = constant RIPGREP_READ_ONLY_COMMANDS (line 1416) | const RIPGREP_READ_ONLY_COMMANDS: Record = constant PYRIGHT_READ_ONLY_COMMANDS (line 1504) | const PYRIGHT_READ_ONLY_COMMANDS: Record = constant EXTERNAL_READONLY_COMMANDS (line 1539) | const EXTERNAL_READONLY_COMMANDS: readonly string[] = [ function containsVulnerableUncPath (line 1562) | function containsVulnerableUncPath(pathOrCommand: string): boolean { constant FLAG_PATTERN (line 1645) | const FLAG_PATTERN = /^-[a-zA-Z0-9_-]/ function validateFlagArgument (line 1650) | function validateFlagArgument( function validateFlags (line 1684) | function validateFlags( FILE: restored-src/src/utils/shell/resolveDefaultShell.ts function resolveDefaultShell (line 12) | function resolveDefaultShell(): 'bash' | 'powershell' { FILE: restored-src/src/utils/shell/shellProvider.ts constant SHELL_TYPES (line 1) | const SHELL_TYPES = ['bash', 'powershell'] as const type ShellType (line 2) | type ShellType = (typeof SHELL_TYPES)[number] constant DEFAULT_HOOK_SHELL (line 3) | const DEFAULT_HOOK_SHELL: ShellType = 'bash' type ShellProvider (line 5) | type ShellProvider = { FILE: restored-src/src/utils/shell/shellToolUtils.ts constant SHELL_TOOL_NAMES (line 6) | const SHELL_TOOL_NAMES: string[] = [BASH_TOOL_NAME, POWERSHELL_TOOL_NAME] function isPowerShellToolEnabled (line 17) | function isPowerShellToolEnabled(): boolean { FILE: restored-src/src/utils/shell/specPrefix.ts constant URL_PROTOCOLS (line 16) | const URL_PROTOCOLS = ['http://', 'https://', 'ftp://'] constant DEPTH_RULES (line 21) | const DEPTH_RULES: Record = { function isKnownSubcommand (line 40) | function isKnownSubcommand(arg: string, spec: CommandSpec | null): boole... function flagTakesArg (line 51) | function flagTakesArg( function findFirstSubcommand (line 71) | function findFirstSubcommand( function buildPrefix (line 88) | async function buildPrefix( function calculateDepth (line 139) | async function calculateDepth( function shouldStopAtArg (line 211) | async function shouldStopAtArg( FILE: restored-src/src/utils/shellConfig.ts constant CLAUDE_ALIAS_REGEX (line 12) | const CLAUDE_ALIAS_REGEX = /^\s*alias\s+claude\s*=/ type EnvLike (line 14) | type EnvLike = Record type ShellConfigOptions (line 16) | type ShellConfigOptions = { function getShellConfigPaths (line 26) | function getShellConfigPaths( function filterClaudeAliases (line 45) | function filterClaudeAliases(lines: string[]): { function readFileLines (line 81) | async function readFileLines( function writeFileLines (line 96) | async function writeFileLines( function findClaudeAlias (line 114) | async function findClaudeAlias( function findValidClaudeAlias (line 142) | async function findValidClaudeAlias( FILE: restored-src/src/utils/sideQuery.ts type MessageParam (line 21) | type MessageParam = Anthropic.MessageParam type TextBlockParam (line 22) | type TextBlockParam = Anthropic.TextBlockParam type Tool (line 23) | type Tool = Anthropic.Tool type ToolChoice (line 24) | type ToolChoice = Anthropic.ToolChoice type BetaMessage (line 25) | type BetaMessage = Anthropic.Beta.Messages.BetaMessage type BetaJSONOutputFormat (line 26) | type BetaJSONOutputFormat = Anthropic.Beta.Messages.BetaJSONOutputFormat type BetaThinkingConfigParam (line 27) | type BetaThinkingConfigParam = Anthropic.Beta.Messages.BetaThinkingConfi... type SideQueryOptions (line 29) | type SideQueryOptions = { function extractFirstUserMessageText (line 69) | function extractFirstUserMessageText(messages: MessageParam[]): string { function sideQuery (line 107) | async function sideQuery(opts: SideQueryOptions): Promise { FILE: restored-src/src/utils/sideQuestion.ts constant BTW_PATTERN (line 16) | const BTW_PATTERN = /^\/btw\b/gi function findBtwTriggerPositions (line 22) | function findBtwTriggerPositions(text: string): Array<{ type SideQuestionResult (line 43) | type SideQuestionResult = { function runSideQuestion (line 53) | async function runSideQuestion({ function extractSideQuestionResponse (line 125) | function extractSideQuestionResponse(messages: Message[]): string | null { FILE: restored-src/src/utils/signal.ts type Signal (line 18) | type Signal = { function createSignal (line 27) | function createSignal(): Signal { FILE: restored-src/src/utils/sinks.ts function initSinks (line 13) | function initSinks(): void { FILE: restored-src/src/utils/skills/skillChangeDetector.ts constant FILE_STABILITY_THRESHOLD_MS (line 27) | const FILE_STABILITY_THRESHOLD_MS = 1000 constant FILE_STABILITY_POLL_INTERVAL_MS (line 32) | const FILE_STABILITY_POLL_INTERVAL_MS = 500 constant RELOAD_DEBOUNCE_MS (line 42) | const RELOAD_DEBOUNCE_MS = 300 constant POLLING_INTERVAL_MS (line 49) | const POLLING_INTERVAL_MS = 2000 constant USE_POLLING (line 62) | const USE_POLLING = typeof Bun !== 'undefined' function initialize (line 85) | async function initialize(): Promise { function dispose (line 146) | function dispose(): Promise { function getWatchablePaths (line 171) | async function getWatchablePaths(): Promise { function handleChange (line 237) | function handleChange(path: string): void { function scheduleReload (line 255) | function scheduleReload(changedPath: string): void { function resetForTesting (line 284) | async function resetForTesting(overrides?: { FILE: restored-src/src/utils/slashCommandParsing.ts type ParsedSlashCommand (line 5) | type ParsedSlashCommand = { function parseSlashCommand (line 25) | function parseSlashCommand(input: string): ParsedSlashCommand | null { FILE: restored-src/src/utils/sleep.ts function sleep (line 14) | function sleep( function rejectWithTimeout (line 56) | function rejectWithTimeout(reject: (e: Error) => void, message: string):... function withTimeout (line 70) | function withTimeout( FILE: restored-src/src/utils/sliceAnsi.ts function isEndCode (line 11) | function isEndCode(code: AnsiCode): boolean { function filterStartCodes (line 16) | function filterStartCodes(codes: AnsiCode[]): AnsiCode[] { function sliceAnsi (line 26) | function sliceAnsi( FILE: restored-src/src/utils/slowOperations.ts type WriteFileOptionsWithFlush (line 16) | type WriteFileOptionsWithFlush = constant SLOW_OPERATION_THRESHOLD_MS (line 29) | const SLOW_OPERATION_THRESHOLD_MS = (() => { function callerFrame (line 59) | function callerFrame(stack: string | undefined): string { function buildDescription (line 75) | function buildDescription(args: IArguments): string { class AntSlowLogger (line 96) | class AntSlowLogger { method constructor (line 101) | constructor(args: IArguments) { method [Symbol.dispose] (line 109) | [Symbol.dispose](): void { method [Symbol.dispose] (line 127) | [Symbol.dispose]() {} function slowLoggingAnt (line 130) | function slowLoggingAnt( function slowLoggingExternal (line 138) | function slowLoggingExternal(): Disposable { function jsonStringify (line 180) | function jsonStringify( function clone (line 221) | function clone(value: T, options?: StructuredSerializeOptions): T { function cloneDeep (line 234) | function cloneDeep(value: T): T { function writeFileSync_DEPRECATED (line 248) | function writeFileSync_DEPRECATED( FILE: restored-src/src/utils/standaloneAgent.ts function getStandaloneAgentName (line 17) | function getStandaloneAgentName(appState: AppState): string | undefined { FILE: restored-src/src/utils/startupProfiler.ts constant DETAILED_PROFILING (line 26) | const DETAILED_PROFILING = isEnvTruthy(process.env.CLAUDE_CODE_PROFILE_S... constant STATSIG_SAMPLE_RATE (line 30) | const STATSIG_SAMPLE_RATE = 0.005 constant STATSIG_LOGGING_SAMPLED (line 32) | const STATSIG_LOGGING_SAMPLED = constant SHOULD_PROFILE (line 36) | const SHOULD_PROFILE = DETAILED_PROFILING || STATSIG_LOGGING_SAMPLED constant PHASE_DEFINITIONS (line 49) | const PHASE_DEFINITIONS = { function profileCheckpoint (line 65) | function profileCheckpoint(name: string): void { function getReport (line 81) | function getReport(): string { function profileReport (line 123) | function profileReport(): void { function isDetailedProfilingEnabled (line 147) | function isDetailedProfilingEnabled(): boolean { function getStartupPerfLogPath (line 151) | function getStartupPerfLogPath(): string { function logStartupPerf (line 159) | function logStartupPerf(): void { FILE: restored-src/src/utils/staticRender.tsx function RenderOnceAndExit (line 18) | function RenderOnceAndExit(t0) { constant SYNC_START (line 54) | const SYNC_START = '\x1B[?2026h'; constant SYNC_END (line 55) | const SYNC_END = '\x1B[?2026l'; function extractFirstFrame (line 62) | function extractFirstFrame(output: string): string { function renderToAnsiString (line 74) | function renderToAnsiString(node: React.ReactNode, columns?: number): Pr... function renderToString (line 112) | async function renderToString(node: React.ReactNode, columns?: number): ... FILE: restored-src/src/utils/stats.ts type DailyActivity (line 26) | type DailyActivity = { type DailyModelTokens (line 33) | type DailyModelTokens = { type StreakInfo (line 38) | type StreakInfo = { type SessionStats (line 46) | type SessionStats = { type ClaudeCodeStats (line 53) | type ClaudeCodeStats = { type ProcessedStats (line 92) | type ProcessedStats = { type ProcessOptions (line 106) | type ProcessOptions = { function processSessionFiles (line 117) | async function processSessionFiles( function getAllSessionFiles (line 374) | async function getAllSessionFiles(): Promise { function cacheToStats (line 440) | function cacheToStats( function aggregateClaudeCodeStats (line 640) | async function aggregateClaudeCodeStats(): Promise { type StatsDateRange (line 712) | type StatsDateRange = '7d' | '30d' | 'all' function aggregateClaudeCodeStatsForRange (line 718) | async function aggregateClaudeCodeStatsForRange( function processedStatsToClaudeCodeStats (line 749) | function processedStatsToClaudeCodeStats( function getNextDay (line 847) | function getNextDay(dateStr: string): string { function calculateStreaks (line 853) | function calculateStreaks(dailyActivity: DailyActivity[]): StreakInfo { constant SHOT_COUNT_REGEX (line 933) | const SHOT_COUNT_REGEX = /(\d+)-shotted by/ function extractShotCountFromMessages (line 940) | function extractShotCountFromMessages( constant TRANSCRIPT_MESSAGE_TYPES (line 971) | const TRANSCRIPT_MESSAGE_TYPES = new Set([ function readSessionStartDate (line 994) | async function readSessionStartDate( function getEmptyStats (line 1038) | function getEmptyStats(): ClaudeCodeStats { FILE: restored-src/src/utils/statsCache.ts constant STATS_CACHE_VERSION (line 14) | const STATS_CACHE_VERSION = 3 constant MIN_MIGRATABLE_VERSION (line 15) | const MIN_MIGRATABLE_VERSION = 1 constant STATS_CACHE_FILENAME (line 16) | const STATS_CACHE_FILENAME = 'stats-cache.json' function withStatsCacheLock (line 27) | async function withStatsCacheLock(fn: () => Promise): Promise { type PersistedStatsCache (line 53) | type PersistedStatsCache = { function getStatsCachePath (line 77) | function getStatsCachePath(): string { function getEmptyCache (line 81) | function getEmptyCache(): PersistedStatsCache { function migrateStatsCache (line 107) | function migrateStatsCache( function loadStatsCache (line 147) | async function loadStatsCache(): Promise { function saveStatsCache (line 214) | async function saveStatsCache( function mergeCacheWithNewStats (line 260) | function mergeCacheWithNewStats( function toDateString (line 403) | function toDateString(date: Date): string { function getTodayDateString (line 415) | function getTodayDateString(): string { function getYesterdayDateString (line 422) | function getYesterdayDateString(): string { function isDateBefore (line 432) | function isDateBefore(date1: string, date2: string): boolean { FILE: restored-src/src/utils/status.tsx type Property (line 23) | type Property = { type Diagnostic (line 27) | type Diagnostic = React.ReactNode; function buildSandboxProperties (line 28) | function buildSandboxProperties(): Property[] { function buildIDEProperties (line 38) | function buildIDEProperties(mcpClients: MCPServerConnection[], ideInstal... function buildMcpProperties (line 89) | function buildMcpProperties(clients: MCPServerConnection[] = [], theme: ... function buildMemoryDiagnostics (line 116) | async function buildMemoryDiagnostics(): Promise { function buildSettingSourcesProperties (line 126) | function buildSettingSourcesProperties(): Property[] { function buildInstallationDiagnostics (line 175) | async function buildInstallationDiagnostics(): Promise { function buildInstallationHealthDiagnostics (line 179) | async function buildInstallationHealthDiagnostics(): Promise implements AsyncIterator { method constructor (line 9) | constructor(private readonly returned?: () => void) {} method next (line 19) | next(): Promise> { method enqueue (line 38) | enqueue(value: T): void { method done (line 49) | done() { method error (line 59) | error(error: unknown) { method return (line 69) | return(): Promise> { method [Symbol.asyncIterator] (line 11) | [Symbol.asyncIterator](): AsyncIterableIterator { FILE: restored-src/src/utils/streamJsonStdoutGuard.ts constant STDOUT_GUARD_MARKER (line 8) | const STDOUT_GUARD_MARKER = '[stdout-guard]' function isJsonLine (line 14) | function isJsonLine(line: string): boolean { function installStreamJsonStdoutGuard (line 49) | function installStreamJsonStdoutGuard(): void { function _resetStreamJsonStdoutGuardForTesting (line 116) | function _resetStreamJsonStdoutGuardForTesting(): void { FILE: restored-src/src/utils/streamlinedTransform.ts type ToolCounts (line 27) | type ToolCounts = { constant SEARCH_TOOLS (line 38) | const SEARCH_TOOLS = [ constant READ_TOOLS (line 44) | const READ_TOOLS = [FILE_READ_TOOL_NAME, LIST_MCP_RESOURCES_TOOL_NAME] constant WRITE_TOOLS (line 45) | const WRITE_TOOLS = [ constant COMMAND_TOOLS (line 50) | const COMMAND_TOOLS = [...SHELL_TOOL_NAMES, 'Tmux', TASK_STOP_TOOL_NAME] function categorizeToolName (line 52) | function categorizeToolName(toolName: string): keyof ToolCounts { function createEmptyToolCounts (line 60) | function createEmptyToolCounts(): ToolCounts { function getToolSummaryText (line 73) | function getToolSummaryText(counts: ToolCounts): string | undefined { function accumulateToolUses (line 109) | function accumulateToolUses( function createStreamlinedTransformer (line 130) | function createStreamlinedTransformer(): ( function shouldIncludeInStreamlined (line 199) | function shouldIncludeInStreamlined(message: StdoutMessage): boolean { FILE: restored-src/src/utils/stringUtils.ts function escapeRegExp (line 9) | function escapeRegExp(str: string): string { function capitalize (line 20) | function capitalize(str: string): string { function plural (line 32) | function plural( function firstLineOf (line 44) | function firstLineOf(s: string): string { function countCharInString (line 54) | function countCharInString( function normalizeFullWidthDigits (line 72) | function normalizeFullWidthDigits(input: string): string { function normalizeFullWidthSpace (line 82) | function normalizeFullWidthSpace(input: string): string { constant MAX_STRING_LENGTH (line 88) | const MAX_STRING_LENGTH = 2 ** 25 function safeJoinLines (line 98) | function safeJoinLines( class EndTruncatingAccumulator (line 140) | class EndTruncatingAccumulator { method constructor (line 149) | constructor(private readonly maxSize: number = MAX_STRING_LENGTH) {} method append (line 156) | append(data: string | Buffer): void { method toString (line 181) | toString(): string { method clear (line 194) | clear(): void { method length (line 203) | get length(): number { method truncated (line 210) | get truncated(): boolean { method totalBytes (line 217) | get totalBytes(): number { function truncateToLines (line 229) | function truncateToLines(text: string, maxLines: number): string { FILE: restored-src/src/utils/subprocessEnv.ts constant GHA_SUBPROCESS_SCRUB (line 15) | const GHA_SUBPROCESS_SCRUB = [ function registerUpstreamProxyEnvFn (line 73) | function registerUpstreamProxyEnvFn( function subprocessEnv (line 79) | function subprocessEnv(): NodeJS.ProcessEnv { FILE: restored-src/src/utils/suggestions/commandSuggestions.ts constant SEPARATORS (line 12) | const SEPARATORS = /[:_-]/g type CommandSearchItem (line 14) | type CommandSearchItem = { function getCommandFuse (line 30) | function getCommandFuse(commands: Command[]): Fuse { function isCommandMetadata (line 86) | function isCommandMetadata(metadata: unknown): metadata is Command { type MidInputSlashCommand (line 99) | type MidInputSlashCommand = { function findMidInputSlashCommand (line 114) | function findMidInputSlashCommand( function getBestCommandMatch (line 164) | function getBestCommandMatch( function isCommandInput (line 200) | function isCommandInput(input: string): boolean { function hasCommandArgs (line 208) | function hasCommandArgs(input: string): boolean { function formatCommand (line 221) | function formatCommand(command: string): string { function getCommandId (line 233) | function getCommandId(cmd: Command): string { function findMatchedAlias (line 250) | function findMatchedAlias( function createCommandSuggestionItem (line 265) | function createCommandSuggestionItem( function generateCommandSuggestions (line 292) | function generateCommandSuggestions( function applyCommandSuggestion (line 503) | function applyCommandSuggestion( function cleanWord (line 542) | function cleanWord(word: string) { function findSlashCommandPositions (line 552) | function findSlashCommandPositions( FILE: restored-src/src/utils/suggestions/directoryCompletion.ts type DirectoryEntry (line 9) | type DirectoryEntry = { type PathEntry (line 15) | type PathEntry = { type CompletionOptions (line 21) | type CompletionOptions = { type PathCompletionOptions (line 26) | type PathCompletionOptions = CompletionOptions & { type ParsedPath (line 31) | type ParsedPath = { constant CACHE_SIZE (line 37) | const CACHE_SIZE = 500 constant CACHE_TTL (line 38) | const CACHE_TTL = 5 * 60 * 1000 // 5 minutes function parsePartialPath (line 55) | function parsePartialPath( function scanDirectory (line 84) | async function scanDirectory( function getDirectoryCompletions (line 121) | async function getDirectoryCompletions( function clearDirectoryCache (line 145) | function clearDirectoryCache(): void { function isPathLikeToken (line 152) | function isPathLikeToken(token: string): boolean { function scanDirectoryForPaths (line 168) | async function scanDirectoryForPaths( function getPathCompletions (line 208) | async function getPathCompletions( function clearPathCache (line 260) | function clearPathCache(): void { FILE: restored-src/src/utils/suggestions/shellHistoryCompletion.ts type ShellHistoryMatch (line 7) | type ShellHistoryMatch = { constant CACHE_TTL_MS (line 18) | const CACHE_TTL_MS = 60000 // 60 seconds - history won't change while ty... function getShellHistoryCommands (line 23) | async function getShellHistoryCommands(): Promise { function clearShellHistoryCache (line 62) | function clearShellHistoryCache(): void { function prependToShellHistoryCache (line 74) | function prependToShellHistoryCache(command: string): void { function getShellHistoryCompletion (line 91) | async function getShellHistoryCompletion( FILE: restored-src/src/utils/suggestions/skillUsageTracking.ts constant SKILL_USAGE_DEBOUNCE_MS (line 3) | const SKILL_USAGE_DEBOUNCE_MS = 60_000 function recordSkillUsage (line 13) | function recordSkillUsage(skillName: string): void { function getSkillUsageScore (line 44) | function getSkillUsageScore(skillName: string): number { FILE: restored-src/src/utils/suggestions/slackChannelSuggestions.ts constant SLACK_SEARCH_TOOL (line 9) | const SLACK_SEARCH_TOOL = 'slack_search_channels' function findSlackClient (line 23) | function findSlackClient( function fetchChannels (line 29) | async function fetchChannels( function unwrapResults (line 73) | function unwrapResults(text: string): string { function parseChannels (line 87) | function parseChannels(text: string): string[] { function hasSlackMcpServer (line 102) | function hasSlackMcpServer(clients: MCPServerConnection[]): boolean { function getKnownChannelsVersion (line 106) | function getKnownChannelsVersion(): number { function findSlackChannelPositions (line 110) | function findSlackChannelPositions( function mcpQueryFor (line 129) | function mcpQueryFor(searchToken: string): string { function findReusableCacheEntry (line 140) | function findReusableCacheEntry( function getSlackChannelSuggestions (line 159) | async function getSlackChannelSuggestions( function clearSlackChannelCache (line 203) | function clearSlackChannelCache(): void { FILE: restored-src/src/utils/swarm/It2SetupPrompt.tsx type SetupStep (line 11) | type SetupStep = 'initial' | 'installing' | 'install-failed' | 'verify-a... type Props (line 12) | type Props = { function It2SetupPrompt (line 16) | function It2SetupPrompt(t0) { function _temp (line 377) | function _temp(line, i) { FILE: restored-src/src/utils/swarm/backends/ITermBackend.ts function acquirePaneCreationLock (line 21) | function acquirePaneCreationLock(): Promise<() => void> { function runIt2 (line 36) | function runIt2( function parseSplitOutput (line 50) | function parseSplitOutput(output: string): string { function getLeaderSessionId (line 63) | function getLeaderSessionId(): string | null { class ITermBackend (line 79) | class ITermBackend implements PaneBackend { method isAvailable (line 87) | async isAvailable(): Promise { method isRunningInside (line 104) | async isRunningInside(): Promise { method createTeammatePaneInSwarmView (line 114) | async createTeammatePaneInSwarmView( method sendCommandToPane (line 245) | async sendCommandToPane( method setPaneBorderColor (line 270) | async setPaneBorderColor( method setPaneTitle (line 282) | async setPaneTitle( method enablePaneBorderStatus (line 294) | async enablePaneBorderStatus( method rebalancePanes (line 305) | async rebalancePanes( method killPane (line 320) | async killPane( method hidePane (line 345) | async hidePane( method showPane (line 357) | async showPane( FILE: restored-src/src/utils/swarm/backends/InProcessBackend.ts class InProcessBackend (line 38) | class InProcessBackend implements TeammateExecutor { method setContext (line 51) | setContext(context: ToolUseContext): void { method isAvailable (line 58) | async isAvailable(): Promise { method spawn (line 72) | async spawn(config: TeammateSpawnConfig): Promise { method sendMessage (line 150) | async sendMessage(agentId: string, message: TeammateMessage): Promise<... method terminate (line 192) | async terminate(agentId: string, reason?: string): Promise { method kill (line 261) | async kill(agentId: string): Promise { method isActive (line 298) | async isActive(agentId: string): Promise { function createInProcessBackend (line 337) | function createInProcessBackend(): InProcessBackend { FILE: restored-src/src/utils/swarm/backends/PaneBackendExecutor.ts class PaneBackendExecutor (line 39) | class PaneBackendExecutor implements TeammateExecutor { method constructor (line 52) | constructor(backend: PaneBackend) { method setContext (line 62) | setContext(context: ToolUseContext): void { method isAvailable (line 69) | async isAvailable(): Promise { method spawn (line 79) | async spawn(config: TeammateSpawnConfig): Promise { method sendMessage (line 216) | async sendMessage(agentId: string, message: TeammateMessage): Promise<... method terminate (line 252) | async terminate(agentId: string, reason?: string): Promise { method kill (line 295) | async kill(agentId: string): Promise { method isActive (line 329) | async isActive(agentId: string): Promise { function createPaneBackendExecutor (line 350) | function createPaneBackendExecutor( FILE: restored-src/src/utils/swarm/backends/TmuxBackend.ts constant PANE_SHELL_INIT_DELAY_MS (line 33) | const PANE_SHELL_INIT_DELAY_MS = 200 function waitForPaneShellReady (line 35) | function waitForPaneShellReady(): Promise { function acquirePaneCreationLock (line 43) | function acquirePaneCreationLock(): Promise<() => void> { function getTmuxColorName (line 59) | function getTmuxColorName(color: AgentColorName): string { function runTmuxInUserSession (line 77) | function runTmuxInUserSession( function runTmuxInSwarm (line 87) | function runTmuxInSwarm( class TmuxBackend (line 104) | class TmuxBackend implements PaneBackend { method isAvailable (line 113) | async isAvailable(): Promise { method isRunningInside (line 121) | async isRunningInside(): Promise { method createTeammatePaneInSwarmView (line 129) | async createTeammatePaneInSwarmView( method sendCommandToPane (line 151) | async sendCommandToPane( method setPaneBorderColor (line 169) | async setPaneBorderColor( method setPaneTitle (line 208) | async setPaneTitle( method enablePaneBorderStatus (line 234) | async enablePaneBorderStatus( method rebalancePanes (line 257) | async rebalancePanes( method killPane (line 271) | async killPane(paneId: PaneId, useExternalSession = false): Promise { method getCurrentWindowTarget (line 400) | private async getCurrentWindowTarget(): Promise { method getCurrentWindowPaneCount (line 430) | private async getCurrentWindowPaneCount( method hasSessionInSwarm (line 459) | private async hasSessionInSwarm(sessionName: string): Promise { method createExternalSwarmSession (line 467) | private async createExternalSwarmSession(): Promise<{ method createTeammatePaneWithLeader (line 551) | private async createTeammatePaneWithLeader( method createTeammatePaneExternal (line 635) | private async createTeammatePaneExternal( method rebalancePanesWithLeader (line 707) | private async rebalancePanesWithLeader(windowTarget: string): Promise<... method rebalancePanesTiled (line 739) | private async rebalancePanesTiled(windowTarget: string): Promise { FILE: restored-src/src/utils/swarm/backends/detection.ts constant ORIGINAL_USER_TMUX (line 10) | const ORIGINAL_USER_TMUX = process.env.TMUX constant ORIGINAL_TMUX_PANE (line 19) | const ORIGINAL_TMUX_PANE = process.env.TMUX_PANE function isInsideTmuxSync (line 36) | function isInsideTmuxSync(): boolean { function isInsideTmux (line 50) | async function isInsideTmux(): Promise { function getLeaderPaneId (line 66) | function getLeaderPaneId(): string | null { function isTmuxAvailable (line 73) | async function isTmuxAvailable(): Promise { function isInITerm2 (line 90) | function isInITerm2(): boolean { constant IT2_COMMAND (line 109) | const IT2_COMMAND = 'it2' function isIt2CliAvailable (line 117) | async function isIt2CliAvailable(): Promise { function resetDetectionCache (line 125) | function resetDetectionCache(): void { FILE: restored-src/src/utils/swarm/backends/it2Setup.ts type PythonPackageManager (line 14) | type PythonPackageManager = 'uvx' | 'pipx' | 'pip' type It2InstallResult (line 19) | type It2InstallResult = { type It2VerifyResult (line 28) | type It2VerifyResult = { function detectPythonPackageManager (line 40) | async function detectPythonPackageManager(): Promise { function installIt2 (line 90) | async function installIt2( function verifyIt2Setup (line 152) | async function verifyIt2Setup(): Promise { function getPythonApiInstructions (line 200) | function getPythonApiInstructions(): string[] { function markIt2SetupComplete (line 214) | function markIt2SetupComplete(): void { function setPreferTmuxOverIterm2 (line 229) | function setPreferTmuxOverIterm2(prefer: boolean): void { function getPreferTmuxOverIterm2 (line 243) | function getPreferTmuxOverIterm2(): boolean { FILE: restored-src/src/utils/swarm/backends/registry.ts function ensureBackendsRegistered (line 74) | async function ensureBackendsRegistered(): Promise { function registerTmuxBackend (line 85) | function registerTmuxBackend(backendClass: new () => PaneBackend): void { function registerITermBackend (line 93) | function registerITermBackend( function createTmuxBackend (line 106) | function createTmuxBackend(): PaneBackend { function createITermBackend (line 119) | function createITermBackend(): PaneBackend { function detectAndGetBackend (line 136) | async function detectAndGetBackend(): Promise { function getTmuxInstallInstructions (line 259) | function getTmuxInstallInstructions(): string { function getBackendByType (line 295) | function getBackendByType(type: PaneBackendType): PaneBackend { function getCachedBackend (line 308) | function getCachedBackend(): PaneBackend | null { function getCachedDetectionResult (line 317) | function getCachedDetectionResult(): BackendDetectionResult | null { function markInProcessFallback (line 326) | function markInProcessFallback(): void { function getTeammateMode (line 335) | function getTeammateMode(): 'auto' | 'tmux' | 'in-process' { function isInProcessEnabled (line 351) | function isInProcessEnabled(): boolean { function getResolvedTeammateMode (line 396) | function getResolvedTeammateMode(): 'in-process' | 'tmux' { function getInProcessBackend (line 404) | function getInProcessBackend(): TeammateExecutor { function getTeammateExecutor (line 425) | async function getTeammateExecutor( function getPaneBackendExecutor (line 442) | async function getPaneBackendExecutor(): Promise { function resetBackendDetection (line 457) | function resetBackendDetection(): void { FILE: restored-src/src/utils/swarm/backends/teammateModeSnapshot.ts type TeammateMode (line 13) | type TeammateMode = 'auto' | 'tmux' | 'in-process' function setCliTeammateModeOverride (line 25) | function setCliTeammateModeOverride(mode: TeammateMode): void { function getCliTeammateModeOverride (line 33) | function getCliTeammateModeOverride(): TeammateMode | null { function clearCliTeammateModeOverride (line 43) | function clearCliTeammateModeOverride(newMode: TeammateMode): void { function captureTeammateModeSnapshot (line 56) | function captureTeammateModeSnapshot(): void { function getTeammateModeFromSnapshot (line 75) | function getTeammateModeFromSnapshot(): TeammateMode { FILE: restored-src/src/utils/swarm/backends/types.ts type BackendType (line 9) | type BackendType = 'tmux' | 'iterm2' | 'in-process' type PaneBackendType (line 15) | type PaneBackendType = 'tmux' | 'iterm2' type PaneId (line 22) | type PaneId = string type CreatePaneResult (line 27) | type CreatePaneResult = { type PaneBackend (line 39) | type PaneBackend = { type BackendDetectionResult (line 173) | type BackendDetectionResult = { type TeammateIdentity (line 191) | type TeammateIdentity = { type TeammateSpawnConfig (line 205) | type TeammateSpawnConfig = TeammateIdentity & { type TeammateSpawnResult (line 230) | type TeammateSpawnResult = { type TeammateMessage (line 259) | type TeammateMessage = { type TeammateExecutor (line 279) | type TeammateExecutor = { function isPaneBackend (line 309) | function isPaneBackend(type: BackendType): type is 'tmux' | 'iterm2' { FILE: restored-src/src/utils/swarm/constants.ts constant TEAM_LEAD_NAME (line 1) | const TEAM_LEAD_NAME = 'team-lead' constant SWARM_SESSION_NAME (line 2) | const SWARM_SESSION_NAME = 'claude-swarm' constant SWARM_VIEW_WINDOW_NAME (line 3) | const SWARM_VIEW_WINDOW_NAME = 'swarm-view' constant TMUX_COMMAND (line 4) | const TMUX_COMMAND = 'tmux' constant HIDDEN_SESSION_NAME (line 5) | const HIDDEN_SESSION_NAME = 'claude-hidden' function getSwarmSocketName (line 12) | function getSwarmSocketName(): string { constant TEAMMATE_COMMAND_ENV_VAR (line 21) | const TEAMMATE_COMMAND_ENV_VAR = 'CLAUDE_CODE_TEAMMATE_COMMAND' constant TEAMMATE_COLOR_ENV_VAR (line 27) | const TEAMMATE_COLOR_ENV_VAR = 'CLAUDE_CODE_AGENT_COLOR' constant PLAN_MODE_REQUIRED_ENV_VAR (line 33) | const PLAN_MODE_REQUIRED_ENV_VAR = 'CLAUDE_CODE_PLAN_MODE_REQUIRED' FILE: restored-src/src/utils/swarm/inProcessRunner.ts type SetAppStateFn (line 112) | type SetAppStateFn = (updater: (prev: AppState) => AppState) => void constant PERMISSION_POLL_INTERVAL_MS (line 114) | const PERMISSION_POLL_INTERVAL_MS = 500 function createInProcessCanUseTool (line 128) | function createInProcessCanUseTool( function formatAsTeammateMessage (line 457) | function formatAsTeammateMessage( type InProcessRunnerConfig (line 471) | type InProcessRunnerConfig = { type InProcessRunnerResult (line 507) | type InProcessRunnerResult = { function updateTaskState (line 519) | function updateTaskState( function sendMessageToLeader (line 547) | async function sendMessageToLeader( function sendIdleNotification (line 569) | async function sendIdleNotification( function findAvailableTask (line 595) | function findAvailableTask(tasks: Task[]): Task | undefined { function formatTaskAsPrompt (line 610) | function formatTaskAsPrompt(task: Task): string { function tryClaimNextTask (line 624) | async function tryClaimNextTask( type WaitResult (line 662) | type WaitResult = function waitForNextPromptOrShutdown (line 689) | async function waitForNextPromptOrShutdown( function runInProcessTeammate (line 883) | async function runInProcessTeammate( function startInProcessTeammate (line 1544) | function startInProcessTeammate(config: InProcessRunnerConfig): void { FILE: restored-src/src/utils/swarm/leaderPermissionBridge.ts type SetToolUseConfirmQueueFn (line 16) | type SetToolUseConfirmQueueFn = ( type SetToolPermissionContextFn (line 20) | type SetToolPermissionContextFn = ( function registerLeaderToolUseConfirmQueue (line 28) | function registerLeaderToolUseConfirmQueue( function getLeaderToolUseConfirmQueue (line 34) | function getLeaderToolUseConfirmQueue(): SetToolUseConfirmQueueFn | null { function unregisterLeaderToolUseConfirmQueue (line 38) | function unregisterLeaderToolUseConfirmQueue(): void { function registerLeaderSetToolPermissionContext (line 42) | function registerLeaderSetToolPermissionContext( function getLeaderSetToolPermissionContext (line 48) | function getLeaderSetToolPermissionContext(): SetToolPermissionContextFn... function unregisterLeaderSetToolPermissionContext (line 52) | function unregisterLeaderSetToolPermissionContext(): void { FILE: restored-src/src/utils/swarm/permissionSync.ts type SwarmPermissionRequest (line 88) | type SwarmPermissionRequest = z.infer< type PermissionResolution (line 95) | type PermissionResolution = { function getPermissionDir (line 112) | function getPermissionDir(teamName: string): string { function getPendingDir (line 119) | function getPendingDir(teamName: string): string { function getResolvedDir (line 126) | function getResolvedDir(teamName: string): string { function ensurePermissionDirsAsync (line 133) | async function ensurePermissionDirsAsync(teamName: string): Promise { function getPendingRequestPath (line 146) | function getPendingRequestPath(teamName: string, requestId: string): str... function getResolvedRequestPath (line 153) | function getResolvedRequestPath(teamName: string, requestId: string): st... function generateRequestId (line 160) | function generateRequestId(): string { function createPermissionRequest (line 167) | function createPermissionRequest(params: { function writePermissionRequest (line 215) | async function writePermissionRequest( function readPendingPermissions (line 256) | async function readPendingPermissions( function readResolvedPermission (line 320) | async function readResolvedPermission( function resolvePermission (line 360) | async function resolvePermission( function cleanupOldResolutions (line 452) | async function cleanupOldResolutions( type PermissionResponse (line 523) | type PermissionResponse = { function pollForResponse (line 544) | async function pollForResponse( function removeWorkerResponse (line 570) | async function removeWorkerResponse( function isTeamLeader (line 581) | function isTeamLeader(teamName?: string): boolean { function isSwarmWorker (line 596) | function isSwarmWorker(): boolean { function deleteResolvedPermission (line 607) | async function deleteResolvedPermission( function getLeaderName (line 651) | async function getLeaderName(teamName?: string): Promise { function sendPermissionRequestViaMailbox (line 676) | async function sendPermissionRequestViaMailbox( function sendPermissionResponseViaMailbox (line 734) | async function sendPermissionResponseViaMailbox( function generateSandboxRequestId (line 792) | function generateSandboxRequestId(): string { function sendSandboxPermissionRequestViaMailbox (line 805) | async function sendSandboxPermissionRequestViaMailbox( function sendSandboxPermissionResponseViaMailbox (line 882) | async function sendSandboxPermissionResponseViaMailbox( FILE: restored-src/src/utils/swarm/reconnection.ts function computeInitialTeamContext (line 23) | function computeInitialTeamContext(): function initializeTeammateContextFromSession (line 75) | function initializeTeammateContextFromSession( FILE: restored-src/src/utils/swarm/spawnInProcess.ts type SetAppStateFn (line 45) | type SetAppStateFn = (updater: (prev: AppState) => AppState) => void type SpawnContext (line 51) | type SpawnContext = { type InProcessSpawnConfig (line 59) | type InProcessSpawnConfig = { type InProcessSpawnOutput (line 77) | type InProcessSpawnOutput = { function spawnInProcessTeammate (line 104) | async function spawnInProcessTeammate( function killInProcessTeammate (line 227) | function killInProcessTeammate( FILE: restored-src/src/utils/swarm/spawnUtils.ts function getTeammateCommand (line 23) | function getTeammateCommand(): string { function buildInheritedCliFlags (line 38) | function buildInheritedCliFlags(options?: { constant TEAMMATE_ENV_VARS (line 96) | const TEAMMATE_ENV_VARS = [ function buildInheritedEnvVars (line 135) | function buildInheritedEnvVars(): string { FILE: restored-src/src/utils/swarm/teamHelpers.ts type SpawnTeamOutput (line 45) | type SpawnTeamOutput = { type CleanupOutput (line 51) | type CleanupOutput = { type TeamAllowedPath (line 57) | type TeamAllowedPath = { type TeamFile (line 64) | type TeamFile = { type Input (line 92) | type Input = z.infer> type Output (line 94) | type Output = SpawnTeamOutput function sanitizeName (line 100) | function sanitizeName(name: string): string { function sanitizeAgentName (line 108) | function sanitizeAgentName(name: string): string { function getTeamDir (line 115) | function getTeamDir(teamName: string): string { function getTeamFilePath (line 122) | function getTeamFilePath(teamName: string): string { function readTeamFile (line 131) | function readTeamFile(teamName: string): TeamFile | null { function readTeamFileAsync (line 147) | async function readTeamFileAsync( function writeTeamFile (line 166) | function writeTeamFile(teamName: string, teamFile: TeamFile): void { function writeTeamFileAsync (line 175) | async function writeTeamFileAsync( function removeTeammateFromTeamFile (line 188) | function removeTeammateFromTeamFile( function addHiddenPaneId (line 235) | function addHiddenPaneId(teamName: string, paneId: string): boolean { function removeHiddenPaneId (line 259) | function removeHiddenPaneId(teamName: string, paneId: string): boolean { function removeMemberFromTeam (line 285) | function removeMemberFromTeam( function removeMemberByAgentId (line 326) | function removeMemberByAgentId( function setMemberMode (line 357) | function setMemberMode( function syncTeammateMode (line 397) | function syncTeammateMode( function setMultipleMemberModes (line 415) | function setMultipleMemberModes( function setMemberActive (line 454) | async function setMemberActive( function destroyWorktree (line 492) | async function destroyWorktree(worktreePath: string): Promise { function registerTeamForSessionCleanup (line 560) | function registerTeamForSessionCleanup(teamName: string): void { function unregisterTeamForSessionCleanup (line 568) | function unregisterTeamForSessionCleanup(teamName: string): void { function cleanupSessionTeams (line 576) | async function cleanupSessionTeams(): Promise { function killOrphanedTeammatePanes (line 598) | async function killOrphanedTeammatePanes(teamName: string): Promise { function cleanupTeamDirectories (line 641) | async function cleanupTeamDirectories(teamName: string): Promise { FILE: restored-src/src/utils/swarm/teammateInit.ts function initializeTeammateHooks (line 28) | function initializeTeammateHooks( FILE: restored-src/src/utils/swarm/teammateLayoutManager.ts function getBackend (line 14) | async function getBackend(): Promise { function assignTeammateColor (line 22) | function assignTeammateColor(teammateId: string): AgentColorName { function getTeammateColor (line 38) | function getTeammateColor( function clearTeammateColors (line 48) | function clearTeammateColors(): void { function isInsideTmux (line 57) | async function isInsideTmux(): Promise { function createTeammatePaneInSwarmView (line 76) | async function createTeammatePaneInSwarmView( function enablePaneBorderStatus (line 88) | async function enablePaneBorderStatus( function sendCommandToPane (line 100) | async function sendCommandToPane( FILE: restored-src/src/utils/swarm/teammateModel.ts function getHardcodedTeammateModelFallback (line 8) | function getHardcodedTeammateModelFallback(): string { FILE: restored-src/src/utils/swarm/teammatePromptAddendum.ts constant TEAMMATE_SYSTEM_PROMPT_ADDENDUM (line 8) | const TEAMMATE_SYSTEM_PROMPT_ADDENDUM = ` FILE: restored-src/src/utils/systemDirectories.ts type SystemDirectories (line 6) | type SystemDirectories = { type EnvLike (line 14) | type EnvLike = Record type SystemDirectoriesOptions (line 16) | type SystemDirectoriesOptions = { function getSystemDirectories (line 27) | function getSystemDirectories( FILE: restored-src/src/utils/systemPrompt.ts function isProactiveActive_SAFE_TO_CALL_ANYWHERE (line 24) | function isProactiveActive_SAFE_TO_CALL_ANYWHERE(): boolean { function buildEffectiveSystemPrompt (line 41) | function buildEffectiveSystemPrompt({ FILE: restored-src/src/utils/systemPromptType.ts type SystemPrompt (line 8) | type SystemPrompt = readonly string[] & { function asSystemPrompt (line 12) | function asSystemPrompt(value: readonly string[]): SystemPrompt { FILE: restored-src/src/utils/systemTheme.ts type SystemTheme (line 16) | type SystemTheme = 'dark' | 'light' function getSystemThemeName (line 24) | function getSystemThemeName(): SystemTheme { function setCachedSystemTheme (line 35) | function setCachedSystemTheme(theme: SystemTheme): void { function resolveThemeSetting (line 42) | function resolveThemeSetting(setting: ThemeSetting): ThemeName { function themeFromOscColor (line 60) | function themeFromOscColor(data: string): SystemTheme | undefined { type Rgb (line 68) | type Rgb = { r: number; g: number; b: number } function parseOscRgb (line 70) | function parseOscRgb(data: string): Rgb | undefined { function hexComponent (line 97) | function hexComponent(hex: string): number { function detectFromColorFgBg (line 109) | function detectFromColorFgBg(): SystemTheme | undefined { FILE: restored-src/src/utils/taggedId.ts constant BASE_58_CHARS (line 10) | const BASE_58_CHARS = constant VERSION (line 12) | const VERSION = '01' constant ENCODED_LENGTH (line 14) | const ENCODED_LENGTH = 22 function base58Encode (line 19) | function base58Encode(n: bigint): string { function uuidToBigInt (line 36) | function uuidToBigInt(uuid: string): bigint { function toTaggedId (line 51) | function toTaggedId(tag: string, uuid: string): string { FILE: restored-src/src/utils/task/TaskOutput.ts constant DEFAULT_MAX_MEMORY (line 9) | const DEFAULT_MAX_MEMORY = 8 * 1024 * 1024 // 8MB constant POLL_INTERVAL_MS (line 10) | const POLL_INTERVAL_MS = 1000 constant PROGRESS_TAIL_BYTES (line 11) | const PROGRESS_TAIL_BYTES = 4096 type ProgressCallback (line 13) | type ProgressCallback = ( class TaskOutput (line 32) | class TaskOutput { method constructor (line 58) | constructor( method startPolling (line 81) | static startPolling(taskId: string): void { method stopPolling (line 97) | static stopPolling(taskId: string): void { method #tick (line 109) | static #tick(): void { method writeStdout (line 167) | writeStdout(data: string): void { method writeStderr (line 172) | writeStderr(data: string): void { method #writeBuffered (line 176) | #writeBuffered(data: string, isStderr: boolean): void { method #updateProgress (line 207) | #updateProgress(data: string): void { method #spillToDisk (line 256) | #spillToDisk(stderrChunk: string | null, stdoutChunk: string | null): ... method getStdout (line 282) | async getStdout(): Promise { method #readStdoutFromFile (line 297) | async #readStdoutFromFile(): Promise { method getStderr (line 329) | getStderr(): string { method isOverflowed (line 336) | get isOverflowed(): boolean { method totalLines (line 340) | get totalLines(): number { method totalBytes (line 344) | get totalBytes(): number { method outputFileRedundant (line 352) | get outputFileRedundant(): boolean { method outputFileSize (line 357) | get outputFileSize(): number { method spillToDisk (line 362) | spillToDisk(): void { method flush (line 368) | async flush(): Promise { method deleteOutputFile (line 373) | async deleteOutputFile(): Promise { method clear (line 381) | clear(): void { FILE: restored-src/src/utils/task/diskOutput.ts constant O_NOFOLLOW (line 21) | const O_NOFOLLOW = fsConstants.O_NOFOLLOW ?? 0 constant DEFAULT_MAX_READ_BYTES (line 23) | const DEFAULT_MAX_READ_BYTES = 8 * 1024 * 1024 // 8MB constant MAX_TASK_OUTPUT_BYTES (line 30) | const MAX_TASK_OUTPUT_BYTES = 5 * 1024 * 1024 * 1024 constant MAX_TASK_OUTPUT_BYTES_DISPLAY (line 31) | const MAX_TASK_OUTPUT_BYTES_DISPLAY = '5GB' function getTaskOutputDir (line 50) | function getTaskOutputDir(): string { function _resetTaskOutputDirForTest (line 58) | function _resetTaskOutputDirForTest(): void { function ensureOutputDir (line 65) | async function ensureOutputDir(): Promise { function getTaskOutputPath (line 72) | function getTaskOutputPath(taskId: string): string { function track (line 83) | function track(p: Promise): Promise { class DiskTaskOutput (line 97) | class DiskTaskOutput { method constructor (line 106) | constructor(taskId: string) { method append (line 110) | append(content: string): void { method flush (line 133) | flush(): Promise { method cancel (line 137) | cancel(): void { method #drainAllChunks (line 141) | async #drainAllChunks(): Promise { method #writeAllChunks (line 178) | #writeAllChunks(): Promise { method #queueToBuffers (line 189) | #queueToBuffers(): Buffer { method #drain (line 207) | async #drain(): Promise { function _clearOutputsForTest (line 245) | async function _clearOutputsForTest(): Promise { function getOrCreateOutput (line 255) | function getOrCreateOutput(taskId: string): DiskTaskOutput { function appendTaskOutput (line 268) | function appendTaskOutput(taskId: string, content: string): void { function flushTaskOutput (line 276) | async function flushTaskOutput(taskId: string): Promise { function evictTaskOutput (line 288) | function evictTaskOutput(taskId: string): Promise { function getTaskOutputDelta (line 304) | async function getTaskOutputDelta( function getTaskOutput (line 336) | async function getTaskOutput( function getTaskOutputSize (line 362) | async function getTaskOutputSize(taskId: string): Promise { function cleanupTaskOutput (line 378) | async function cleanupTaskOutput(taskId: string): Promise { function initTaskOutput (line 400) | function initTaskOutput(taskId: string): Promise { function initTaskOutputAsSymlink (line 427) | function initTaskOutputAsSymlink( FILE: restored-src/src/utils/task/framework.ts constant POLL_INTERVAL_MS (line 22) | const POLL_INTERVAL_MS = 1000 constant STOPPED_DISPLAY_MS (line 25) | const STOPPED_DISPLAY_MS = 3_000 constant PANEL_GRACE_MS (line 28) | const PANEL_GRACE_MS = 30_000 type TaskAttachment (line 31) | type TaskAttachment = { type SetAppState (line 41) | type SetAppState = (updater: (prev: AppState) => AppState) => void function updateTaskState (line 48) | function updateTaskState( function registerTask (line 77) | function registerTask(task: TaskState, setAppState: SetAppState): void { function evictTerminalTask (line 125) | function evictTerminalTask( function getRunningTasks (line 149) | function getRunningTasks(state: AppState): TaskState[] { function generateTaskAttachments (line 158) | async function generateTaskAttachments(state: AppState): Promise<{ function applyTaskOffsetsAndEvictions (line 213) | function applyTaskOffsetsAndEvictions( function pollTasks (line 255) | async function pollTasks( function enqueueTaskNotification (line 274) | function enqueueTaskNotification(attachment: TaskAttachment): void { function getStatusText (line 295) | function getStatusText(status: TaskStatus): string { FILE: restored-src/src/utils/task/outputFormatting.ts constant TASK_MAX_OUTPUT_UPPER_LIMIT (line 4) | const TASK_MAX_OUTPUT_UPPER_LIMIT = 160_000 constant TASK_MAX_OUTPUT_DEFAULT (line 5) | const TASK_MAX_OUTPUT_DEFAULT = 32_000 function getMaxTaskOutputLength (line 7) | function getMaxTaskOutputLength(): number { function formatTaskOutput (line 22) | function formatTaskOutput( FILE: restored-src/src/utils/task/sdkProgress.ts function emitTaskProgress (line 10) | function emitTaskProgress(params: { FILE: restored-src/src/utils/tasks.ts function setLeaderTeamName (line 31) | function setLeaderTeamName(teamName: string): void { function clearLeaderTeamName (line 43) | function clearLeaderTeamName(): void { function notifyTasksUpdated (line 61) | function notifyTasksUpdated(): void { constant TASK_STATUSES (line 69) | const TASK_STATUSES = ['pending', 'in_progress', 'completed'] as const type TaskStatus (line 74) | type TaskStatus = z.infer> type Task (line 89) | type Task = z.infer> constant HIGH_WATER_MARK_FILE (line 92) | const HIGH_WATER_MARK_FILE = '.highwatermark' constant LOCK_OPTIONS (line 102) | const LOCK_OPTIONS = { function getHighWaterMarkPath (line 110) | function getHighWaterMarkPath(taskListId: string): string { function readHighWaterMark (line 114) | async function readHighWaterMark(taskListId: string): Promise { function writeHighWaterMark (line 125) | async function writeHighWaterMark( function isTodoV2Enabled (line 133) | function isTodoV2Enabled(): boolean { function resetTaskList (line 147) | async function resetTaskList(taskListId: string): Promise { function getTaskListId (line 199) | function getTaskListId(): string { function sanitizePathComponent (line 217) | function sanitizePathComponent(input: string): string { function getTasksDir (line 221) | function getTasksDir(taskListId: string): string { function getTaskPath (line 229) | function getTaskPath(taskListId: string, taskId: string): string { function ensureTasksDir (line 233) | async function ensureTasksDir(taskListId: string): Promise { function findHighestTaskIdFromFiles (line 246) | async function findHighestTaskIdFromFiles(taskListId: string): Promise { function createTask (line 284) | async function createTask( function getTask (line 310) | async function getTask( function updateTaskUnsafe (line 354) | async function updateTaskUnsafe( function updateTask (line 370) | async function updateTask( function deleteTask (line 393) | async function deleteTask( function listTasks (line 443) | async function listTasks(taskListId: string): Promise { function blockTask (line 458) | async function blockTask( type ClaimTaskResult (line 488) | type ClaimTaskResult = { function getTaskListLockPath (line 504) | function getTaskListLockPath(taskListId: string): string { function ensureTaskListLockFile (line 511) | async function ensureTaskListLockFile(taskListId: string): Promise( function isInProcessTeammate (line 70) | function isInProcessTeammate(): boolean { function createTeammateContext (line 83) | function createTeammateContext(config: { FILE: restored-src/src/utils/teammateMailbox.ts constant LOCK_OPTIONS (line 35) | const LOCK_OPTIONS = { type TeammateMessage (line 43) | type TeammateMessage = { function getInboxPath (line 56) | function getInboxPath(agentName: string, teamName?: string): string { function ensureInboxDir (line 71) | async function ensureInboxDir(teamName?: string): Promise { function readMailbox (line 84) | async function readMailbox( function readUnreadMessages (line 115) | async function readUnreadMessages( function writeToMailbox (line 134) | async function writeToMailbox( function markMessageAsReadByIndex (line 201) | async function markMessageAsReadByIndex( function markMessagesAsRead (line 279) | async function markMessagesAsRead( function clearMailbox (line 349) | async function clearMailbox( function formatTeammateMessages (line 373) | function formatTeammateMessages( type IdleNotificationMessage (line 394) | type IdleNotificationMessage = { function createIdleNotification (line 410) | function createIdleNotification( function isIdleNotification (line 435) | function isIdleNotification( type PermissionRequestMessage (line 453) | type PermissionRequestMessage = { type PermissionResponseMessage (line 468) | type PermissionResponseMessage = function createPermissionRequestMessage (line 488) | function createPermissionRequestMessage(params: { function createPermissionResponseMessage (line 512) | function createPermissionResponseMessage(params: { function isPermissionRequest (line 541) | function isPermissionRequest( function isPermissionResponse (line 558) | function isPermissionResponse( type SandboxPermissionRequestMessage (line 576) | type SandboxPermissionRequestMessage = { type SandboxPermissionResponseMessage (line 597) | type SandboxPermissionResponseMessage = { function createSandboxPermissionRequestMessage (line 612) | function createSandboxPermissionRequestMessage(params: { function createSandboxPermissionResponseMessage (line 633) | function createSandboxPermissionResponseMessage(params: { function isSandboxPermissionRequest (line 650) | function isSandboxPermissionRequest( function isSandboxPermissionResponse (line 667) | function isSandboxPermissionResponse( type PlanApprovalRequestMessage (line 695) | type PlanApprovalRequestMessage = z.infer< type PlanApprovalResponseMessage (line 713) | type PlanApprovalResponseMessage = z.infer< type ShutdownRequestMessage (line 730) | type ShutdownRequestMessage = z.infer< type ShutdownApprovedMessage (line 748) | type ShutdownApprovedMessage = z.infer< type ShutdownRejectedMessage (line 765) | type ShutdownRejectedMessage = z.infer< function createShutdownRequestMessage (line 772) | function createShutdownRequestMessage(params: { function createShutdownApprovedMessage (line 789) | function createShutdownApprovedMessage(params: { function createShutdownRejectedMessage (line 808) | function createShutdownRejectedMessage(params: { function sendShutdownRequestToMailbox (line 831) | async function sendShutdownRequestToMailbox( function isShutdownRequest (line 868) | function isShutdownRequest( function isPlanApprovalRequest (line 885) | function isPlanApprovalRequest( function isShutdownApproved (line 902) | function isShutdownApproved( function isShutdownRejected (line 919) | function isShutdownRejected( function isPlanApprovalResponse (line 936) | function isPlanApprovalResponse( type TaskAssignmentMessage (line 953) | type TaskAssignmentMessage = { function isTaskAssignment (line 965) | function isTaskAssignment( type TeamPermissionUpdateMessage (line 983) | type TeamPermissionUpdateMessage = { function isTeamPermissionUpdate (line 1001) | function isTeamPermissionUpdate( type ModeSetRequestMessage (line 1027) | type ModeSetRequestMessage = z.infer< function createModeSetRequestMessage (line 1034) | function createModeSetRequestMessage(params: { function isModeSetRequest (line 1048) | function isModeSetRequest( function isStructuredProtocolMessage (line 1073) | function isStructuredProtocolMessage(messageText: string): boolean { function markMessagesAsReadByPredicate (line 1101) | async function markMessagesAsReadByPredicate( function getLastPeerDmSummary (line 1149) | function getLastPeerDmSummary(messages: Message[]): string | undefined { FILE: restored-src/src/utils/telemetry/betaSessionTracing.ts type APIMessage (line 39) | type APIMessage = UserMessage | AssistantMessage function clearBetaTracingState (line 65) | function clearBetaTracingState(): void { constant MAX_CONTENT_SIZE (line 70) | const MAX_CONTENT_SIZE = 60 * 1024 // 60KB (Honeycomb limit is 64KB, sta... function isBetaTracingEnabled (line 78) | function isBetaTracingEnabled(): boolean { function truncateContent (line 103) | function truncateContent( function shortHash (line 122) | function shortHash(content: string): string { function hashSystemPrompt (line 129) | function hashSystemPrompt(systemPrompt: string): string { function hashMessage (line 136) | function hashMessage(message: APIMessage): string { constant SYSTEM_REMINDER_REGEX (line 142) | const SYSTEM_REMINDER_REGEX = function extractSystemReminderContent (line 149) | function extractSystemReminderContent(text: string): string | null { type FormattedMessages (line 157) | interface FormattedMessages { function formatMessagesForContext (line 166) | function formatMessagesForContext(messages: UserMessage[]): FormattedMes... type LLMRequestNewContext (line 210) | interface LLMRequestNewContext { function addBetaInteractionAttributes (line 223) | function addBetaInteractionAttributes( function addBetaLLMRequestAttributes (line 247) | function addBetaLLMRequestAttributes( function addBetaLLMResponseAttributes (line 406) | function addBetaLLMResponseAttributes( function addBetaToolInputAttributes (line 449) | function addBetaToolInputAttributes( function addBetaToolResultAttributes (line 474) | function addBetaToolResultAttributes( FILE: restored-src/src/utils/telemetry/bigqueryExporter.ts type DataPoint (line 22) | type DataPoint = { type Metric (line 28) | type Metric = { type InternalMetricsPayload (line 35) | type InternalMetricsPayload = { class BigQueryMetricsExporter (line 40) | class BigQueryMetricsExporter implements PushMetricExporter { method constructor (line 46) | constructor(options: { timeout?: number } = {}) { method export (line 63) | async export( method doExport (line 87) | private async doExport( method transformMetricsForInternal (line 150) | private transformMetricsForInternal( method extractDataPoints (line 198) | private extractDataPoints(metric: MetricData): DataPoint[] { method shutdown (line 215) | async shutdown(): Promise { method forceFlush (line 221) | async forceFlush(): Promise { method convertAttributes (line 226) | private convertAttributes( method hrTimeToISOString (line 240) | private hrTimeToISOString(hrTime: HrTime): string { method selectAggregationTemporality (line 246) | selectAggregationTemporality(): AggregationTemporality { FILE: restored-src/src/utils/telemetry/events.ts function isUserPromptLoggingEnabled (line 13) | function isUserPromptLoggingEnabled() { function redactIfDisabled (line 17) | function redactIfDisabled(content: string): string { function logOTelEvent (line 21) | async function logOTelEvent( FILE: restored-src/src/utils/telemetry/instrumentation.ts constant DEFAULT_METRICS_EXPORT_INTERVAL_MS (line 69) | const DEFAULT_METRICS_EXPORT_INTERVAL_MS = 60000 constant DEFAULT_LOGS_EXPORT_INTERVAL_MS (line 70) | const DEFAULT_LOGS_EXPORT_INTERVAL_MS = 5000 constant DEFAULT_TRACES_EXPORT_INTERVAL_MS (line 71) | const DEFAULT_TRACES_EXPORT_INTERVAL_MS = 5000 class TelemetryTimeoutError (line 73) | class TelemetryTimeoutError extends Error {} function telemetryTimeout (line 75) | function telemetryTimeout(ms: number, message: string): Promise { function bootstrapTelemetry (line 87) | function bootstrapTelemetry() { function parseExporterTypes (line 121) | function parseExporterTypes(value: string | undefined): string[] { function getOtlpReaders (line 130) | async function getOtlpReaders() { function getOtlpLogExporters (line 217) | async function getOtlpLogExporters() { function getOtlpTraceExporters (line 273) | async function getOtlpTraceExporters() { function isTelemetryEnabled (line 324) | function isTelemetryEnabled() { function getBigQueryExportingReader (line 328) | function getBigQueryExportingReader() { function isBigQueryMetricsEnabled (line 336) | function isBigQueryMetricsEnabled() { function initializeBetaTracing (line 353) | async function initializeBetaTracing( function initializeTelemetry (line 421) | async function initializeTelemetry() { function flushTelemetry (line 707) | async function flushTelemetry(): Promise { function parseOtelHeadersEnvVar (line 749) | function parseOtelHeadersEnvVar(): Record { function getOTLPExporterConfig (line 768) | function getOTLPExporterConfig() { FILE: restored-src/src/utils/telemetry/logger.ts class ClaudeCodeDiagLogger (line 4) | class ClaudeCodeDiagLogger implements DiagLogger { method error (line 5) | error(message: string, ..._: unknown[]) { method warn (line 11) | warn(message: string, ..._: unknown[]) { method info (line 17) | info(_message: string, ..._args: unknown[]) { method debug (line 20) | debug(_message: string, ..._args: unknown[]) { method verbose (line 23) | verbose(_message: string, ..._args: unknown[]) { FILE: restored-src/src/utils/telemetry/perfettoTracing.ts type TraceEventPhase (line 47) | type TraceEventPhase = type TraceEvent (line 58) | type TraceEvent = { type AgentInfo (line 74) | type AgentInfo = { type PendingSpan (line 85) | type PendingSpan = { constant MAX_EVENTS (line 106) | const MAX_EVENTS = 100_000 constant STALE_SPAN_TTL_MS (line 121) | const STALE_SPAN_TTL_MS = 30 * 60 * 1000 // 30 minutes constant STALE_SPAN_CLEANUP_INTERVAL_MS (line 122) | const STALE_SPAN_CLEANUP_INTERVAL_MS = 60 * 1000 // 1 minute function stringToNumericHash (line 128) | function stringToNumericHash(str: string): number { function getProcessIdForAgent (line 135) | function getProcessIdForAgent(agentId: string): number { function getCurrentAgentInfo (line 147) | function getCurrentAgentInfo(): AgentInfo { function getTimestamp (line 172) | function getTimestamp(): number { function generateSpanId (line 179) | function generateSpanId(): string { function evictStaleSpans (line 187) | function evictStaleSpans(): void { function buildTraceDocument (line 214) | function buildTraceDocument(): string { function evictOldestEvents (line 232) | function evictOldestEvents(): void { function initializePerfettoTracing (line 253) | function initializePerfettoTracing(): void { function emitProcessMetadata (line 340) | function emitProcessMetadata(agentInfo: AgentInfo): void { function isPerfettoTracingEnabled (line 384) | function isPerfettoTracingEnabled(): boolean { function registerAgent (line 392) | function registerAgent( function unregisterAgent (line 416) | function unregisterAgent(agentId: string): void { function startLLMRequestPerfettoSpan (line 425) | function startLLMRequestPerfettoSpan(args: { function endLLMRequestPerfettoSpan (line 468) | function endLLMRequestPerfettoSpan( function startToolPerfettoSpan (line 690) | function startToolPerfettoSpan( function endToolPerfettoSpan (line 727) | function endToolPerfettoSpan( function startUserInputPerfettoSpan (line 768) | function startUserInputPerfettoSpan(context?: string): string { function endUserInputPerfettoSpan (line 801) | function endUserInputPerfettoSpan( function emitPerfettoInstant (line 840) | function emitPerfettoInstant( function emitPerfettoCounter (line 863) | function emitPerfettoCounter( function startInteractionPerfettoSpan (line 885) | function startInteractionPerfettoSpan(userPrompt?: string): string { function endInteractionPerfettoSpan (line 918) | function endInteractionPerfettoSpan(spanId: string): void { function stopWriteInterval (line 951) | function stopWriteInterval(): void { function closeOpenSpans (line 965) | function closeOpenSpans(): void { function periodicWrite (line 990) | async function periodicWrite(): Promise { function writePerfettoTrace (line 1011) | async function writePerfettoTrace(): Promise { function writePerfettoTraceSync (line 1042) | function writePerfettoTraceSync(): void { function getPerfettoEvents (line 1076) | function getPerfettoEvents(): TraceEvent[] { function resetPerfettoTracer (line 1083) | function resetPerfettoTracer(): void { function triggerPeriodicWriteForTesting (line 1106) | async function triggerPeriodicWriteForTesting(): Promise { function evictStaleSpansForTesting (line 1113) | function evictStaleSpansForTesting(): void { constant MAX_EVENTS_FOR_TESTING (line 1117) | const MAX_EVENTS_FOR_TESTING = MAX_EVENTS function evictOldestEventsForTesting (line 1118) | function evictOldestEventsForTesting(): void { FILE: restored-src/src/utils/telemetry/pluginTelemetry.ts constant BUILTIN_MARKETPLACE_NAME (line 33) | const BUILTIN_MARKETPLACE_NAME = 'builtin' constant PLUGIN_ID_HASH_SALT (line 39) | const PLUGIN_ID_HASH_SALT = 'claude-plugin-telemetry-v1' function hashPluginId (line 48) | function hashPluginId(name: string, marketplace?: string): string { type TelemetryPluginScope (line 66) | type TelemetryPluginScope = function getTelemetryPluginScope (line 72) | function getTelemetryPluginScope( type EnabledVia (line 88) | type EnabledVia = type InvocationTrigger (line 95) | type InvocationTrigger = type SkillExecutionContext (line 101) | type SkillExecutionContext = 'fork' | 'inline' | 'remote' type InstallSource (line 104) | type InstallSource = function getEnabledVia (line 110) | function getEnabledVia( function buildPluginTelemetryFields (line 133) | function buildPluginTelemetryFields( function buildPluginCommandTelemetryFields (line 173) | function buildPluginCommandTelemetryFields( function logPluginsEnabledForSession (line 191) | function logPluginsEnabledForSession( type PluginCommandErrorCategory (line 231) | type PluginCommandErrorCategory = function classifyPluginCommandError (line 238) | function classifyPluginCommandError( function logPluginLoadErrors (line 267) | function logPluginLoadErrors( FILE: restored-src/src/utils/telemetry/sessionTracing.ts type APIMessage (line 47) | type APIMessage = UserMessage | AssistantMessage type SpanType (line 49) | type SpanType = type SpanContext (line 57) | interface SpanContext { constant SPAN_TTL_MS (line 79) | const SPAN_TTL_MS = 30 * 60 * 1000 // 30 minutes function getSpanId (line 81) | function getSpanId(span: Span): string { function ensureCleanupInterval (line 100) | function ensureCleanupInterval(): void { function isEnhancedTelemetryEnabled (line 126) | function isEnhancedTelemetryEnabled(): boolean { function isAnyTracingEnabled (line 148) | function isAnyTracingEnabled(): boolean { function getTracer (line 152) | function getTracer() { function createSpanAttributes (line 156) | function createSpanAttributes( function startInteractionSpan (line 176) | function startInteractionSpan(userPrompt: string): Span { function endInteractionSpan (line 237) | function endInteractionSpan(): void { function startLLMRequestSpan (line 274) | function startLLMRequestSpan( function endLLMRequestSpan (line 353) | function endLLMRequestSpan( function startToolSpan (line 466) | function startToolSpan( function startToolBlockedOnUserSpan (line 526) | function startToolBlockedOnUserSpan(): Span { function endToolBlockedOnUserSpan (line 577) | function endToolBlockedOnUserSpan( function startToolExecutionSpan (line 626) | function startToolExecutionSpan(): Span { function endToolExecutionSpan (line 657) | function endToolExecutionSpan(metadata?: { function endToolSpan (line 691) | function endToolSpan(toolResult?: string, resultTokens?: number): void { function isToolContentLoggingEnabled (line 738) | function isToolContentLoggingEnabled(): boolean { function addToolContentEvent (line 747) | function addToolContentEvent( function getCurrentSpan (line 778) | function getCurrentSpan(): Span | null { function executeInSpan (line 788) | async function executeInSpan( function startHookSpan (line 844) | function startHookSpan( function endHookSpan (line 887) | function endHookSpan( FILE: restored-src/src/utils/telemetry/skillLoadedEvent.ts function logSkillsLoaded (line 13) | async function logSkillsLoaded( FILE: restored-src/src/utils/telemetryAttributes.ts constant METRICS_CARDINALITY_DEFAULTS (line 10) | const METRICS_CARDINALITY_DEFAULTS = { function shouldIncludeAttribute (line 16) | function shouldIncludeAttribute( function getTelemetryAttributes (line 29) | function getTelemetryAttributes(): Attributes { FILE: restored-src/src/utils/teleport.tsx type TeleportResult (line 43) | type TeleportResult = { type TeleportProgressStep (line 47) | type TeleportProgressStep = 'validating' | 'fetching_logs' | 'fetching_b... type TeleportProgressCallback (line 48) | type TeleportProgressCallback = (step: TeleportProgressStep) => void; function createTeleportResumeSystemMessage (line 54) | function createTeleportResumeSystemMessage(branchError: Error | null): S... function createTeleportResumeUserMessage (line 66) | function createTeleportResumeUserMessage() { type TeleportToRemoteResponse (line 72) | type TeleportToRemoteResponse = { constant SESSION_TITLE_AND_BRANCH_PROMPT (line 76) | const SESSION_TITLE_AND_BRANCH_PROMPT = `You are coming up with a succin... type TitleAndBranch (line 92) | type TitleAndBranch = { function generateTitleAndBranch (line 102) | async function generateTitleAndBranch(description: string, signal: Abort... function validateGitState (line 172) | async function validateGitState(): Promise { function fetchFromOrigin (line 187) | async function fetchFromOrigin(branch?: string): Promise { function ensureUpstreamIsSet (line 215) | async function ensureUpstreamIsSet(branchName: string): Promise { function checkoutBranch (line 251) | async function checkoutBranch(branchName: string): Promise { function getCurrentBranch (line 287) | async function getCurrentBranch(): Promise { function processMessagesForTeleportResume (line 301) | function processMessagesForTeleportResume(messages: Message[], error: Er... function checkOutTeleportedSessionBranch (line 315) | async function checkOutTeleportedSessionBranch(branch?: string): Promise<{ type RepoValidationResult (line 349) | type RepoValidationResult = { function validateSessionRepository (line 367) | async function validateSessionRepository(sessionData: SessionResource): ... function teleportResumeCodeSession (line 430) | async function teleportResumeCodeSession(sessionId: string, onProgress?:... function handleTeleportPrerequisites (line 509) | async function handleTeleportPrerequisites(root: Root, errorsToIgnore?: ... function teleportToRemoteWithErrorHandling (line 544) | async function teleportToRemoteWithErrorHandling(root: Root, description... function teleportFromSessionsAPI (line 565) | async function teleportFromSessionsAPI(sessionId: string, orgUUID: strin... type PollRemoteSessionResponse (line 621) | type PollRemoteSessionResponse = { function pollRemoteSessionEvents (line 633) | async function pollRemoteSessionEvents(sessionId: string, afterId: strin... function teleportToRemote (line 730) | async function teleportToRemote(options: { function archiveRemoteSession (line 1200) | async function archiveRemoteSession(sessionId: string): Promise { FILE: restored-src/src/utils/teleport/api.ts constant TELEPORT_RETRY_DELAYS (line 16) | const TELEPORT_RETRY_DELAYS = [2000, 4000, 8000, 16000] // 4 retries wit... constant MAX_TELEPORT_RETRIES (line 17) | const MAX_TELEPORT_RETRIES = TELEPORT_RETRY_DELAYS.length constant CCR_BYOC_BETA (line 19) | const CCR_BYOC_BETA = 'ccr-byoc-2025-07-29' function isTransientNetworkError (line 24) | function isTransientNetworkError(error: unknown): boolean { function axiosGetWithRetry (line 47) | async function axiosGetWithRetry( type SessionStatus (line 84) | type SessionStatus = 'requires_action' | 'running' | 'idle' | 'archived' type GitSource (line 86) | type GitSource = { type KnowledgeBaseSource (line 93) | type KnowledgeBaseSource = { type SessionContextSource (line 98) | type SessionContextSource = GitSource | KnowledgeBaseSource type OutcomeGitInfo (line 101) | type OutcomeGitInfo = { type GitRepositoryOutcome (line 107) | type GitRepositoryOutcome = { type Outcome (line 112) | type Outcome = GitRepositoryOutcome type SessionContext (line 114) | type SessionContext = { type SessionResource (line 127) | type SessionResource = { type ListSessionsResponse (line 138) | type ListSessionsResponse = { type CodeSession (line 175) | type CodeSession = z.infer> function prepareApiRequest (line 181) | async function prepareApiRequest(): Promise<{ function fetchCodeSessionsFromSessionsAPI (line 204) | async function fetchCodeSessionsFromSessionsAPI(): Promise< function getOAuthHeaders (line 276) | function getOAuthHeaders(accessToken: string): Record { function fetchSession (line 289) | async function fetchSession( function getBranchFromSession (line 334) | function getBranchFromSession( type RemoteMessageContent (line 349) | type RemoteMessageContent = function sendEventToRemoteSession (line 361) | async function sendEventToRemoteSession( function updateSessionTitle (line 425) | async function updateSessionTitle( FILE: restored-src/src/utils/teleport/environmentSelection.ts type EnvironmentSelectionInfo (line 8) | type EnvironmentSelectionInfo = { function getEnvironmentSelectionInfo (line 24) | async function getEnvironmentSelectionInfo(): Promise { function createDefaultCloudEnvironment (line 76) | async function createDefaultCloudEnvironment( FILE: restored-src/src/utils/teleport/gitBundle.ts constant DEFAULT_BUNDLE_MAX_BYTES (line 26) | const DEFAULT_BUNDLE_MAX_BYTES = 100 * 1024 * 1024 type BundleScope (line 28) | type BundleScope = 'all' | 'head' | 'squashed' type BundleUploadResult (line 30) | type BundleUploadResult = type BundleFailReason (line 40) | type BundleFailReason = 'git_error' | 'too_large' | 'empty_repo' type BundleCreateResult (line 42) | type BundleCreateResult = function _bundleWithFallback (line 50) | async function _bundleWithFallback( function createAndUploadGitBundle (line 152) | async function createAndUploadGitBundle( FILE: restored-src/src/utils/tempfile.ts function generateTempFilePath (line 19) | function generateTempFilePath( FILE: restored-src/src/utils/terminal.ts constant MAX_LINES_TO_SHOW (line 7) | const MAX_LINES_TO_SHOW = 3 constant PADDING_TO_PREVENT_OVERFLOW (line 10) | const PADDING_TO_PREVENT_OVERFLOW = 10 function wrapText (line 19) | function wrapText( function renderTruncatedContent (line 71) | function renderTruncatedContent( function isOutputLineTruncated (line 119) | function isOutputLineTruncated(content: string): boolean { FILE: restored-src/src/utils/terminalPanel.ts constant TMUX_SESSION (line 25) | const TMUX_SESSION = 'panel' function getTerminalPanelSocket (line 32) | function getTerminalPanelSocket(): string { function getTerminalPanel (line 43) | function getTerminalPanel(): TerminalPanel { class TerminalPanel (line 50) | class TerminalPanel { method toggle (line 56) | toggle(): void { method checkTmux (line 62) | private checkTmux(): boolean { method hasSession (line 74) | private hasSession(): boolean { method createSession (line 83) | private createSession(): boolean { method attachSession (line 144) | private attachSession(): void { method showShell (line 154) | private showShell(): void { method ensureSession (line 176) | private ensureSession(): boolean { method runShellDirect (line 182) | private runShellDirect(): void { FILE: restored-src/src/utils/textHighlighting.ts type TextHighlight (line 11) | type TextHighlight = { type TextSegment (line 21) | type TextSegment = { function segmentTextByHighlights (line 27) | function segmentTextByHighlights( class HighlightSegmenter (line 62) | class HighlightSegmenter { method constructor (line 72) | constructor(private readonly text: string) { method segment (line 76) | segment(highlights: TextHighlight[]): TextSegment[] { method segmentTo (line 96) | private segmentTo(targetVisiblePos: number): TextSegment | null { function reduceCodes (line 164) | function reduceCodes(codes: AnsiCode[]): AnsiCode[] { FILE: restored-src/src/utils/theme.ts type Theme (line 4) | type Theme = { constant THEME_NAMES (line 91) | const THEME_NAMES = [ type ThemeName (line 101) | type ThemeName = (typeof THEME_NAMES)[number] constant THEME_SETTINGS (line 103) | const THEME_SETTINGS = ['auto', ...THEME_NAMES] as const type ThemeSetting (line 109) | type ThemeSetting = (typeof THEME_SETTINGS)[number] function getTheme (line 598) | function getTheme(themeName: ThemeName): Theme { function themeColorToAnsi (line 626) | function themeColorToAnsi(themeColor: string): string { FILE: restored-src/src/utils/thinking.ts type ThinkingConfig (line 10) | type ThinkingConfig = function isUltrathinkEnabled (line 19) | function isUltrathinkEnabled(): boolean { function hasUltrathinkKeyword (line 29) | function hasUltrathinkKeyword(text: string): boolean { function findThinkingTriggerPositions (line 36) | function findThinkingTriggerPositions(text: string): Array<{ constant RAINBOW_COLORS (line 60) | const RAINBOW_COLORS: Array = [ constant RAINBOW_SHIMMER_COLORS (line 70) | const RAINBOW_SHIMMER_COLORS: Array = [ function getRainbowColor (line 80) | function getRainbowColor( function modelSupportsThinking (line 90) | function modelSupportsThinking(model: string): boolean { function modelSupportsAdaptiveThinking (line 113) | function modelSupportsAdaptiveThinking(model: string): boolean { function shouldEnableThinkingByDefault (line 146) | function shouldEnableThinkingByDefault(): boolean { FILE: restored-src/src/utils/timeouts.ts constant DEFAULT_TIMEOUT_MS (line 2) | const DEFAULT_TIMEOUT_MS = 120_000 // 2 minutes constant MAX_TIMEOUT_MS (line 3) | const MAX_TIMEOUT_MS = 600_000 // 10 minutes type EnvLike (line 5) | type EnvLike = Record function getDefaultBashTimeoutMs (line 12) | function getDefaultBashTimeoutMs(env: EnvLike = process.env): number { function getMaxBashTimeoutMs (line 28) | function getMaxBashTimeoutMs(env: EnvLike = process.env): number { FILE: restored-src/src/utils/tmuxSocket.ts constant TMUX_COMMAND (line 35) | const TMUX_COMMAND = 'tmux' constant CLAUDE_SOCKET_PREFIX (line 36) | const CLAUDE_SOCKET_PREFIX = 'claude' function execTmux (line 44) | async function execTmux( function getClaudeSocketName (line 91) | function getClaudeSocketName(): string { function getClaudeSocketPath (line 102) | function getClaudeSocketPath(): string | null { function setClaudeSocketInfo (line 110) | function setClaudeSocketInfo(path: string, pid: number): void { function isSocketInitialized (line 118) | function isSocketInitialized(): boolean { function getClaudeTmuxEnv (line 135) | function getClaudeTmuxEnv(): string | null { function checkTmuxAvailable (line 151) | async function checkTmuxAvailable(): Promise { function isTmuxAvailable (line 178) | function isTmuxAvailable(): boolean { function markTmuxToolUsed (line 187) | function markTmuxToolUsed(): void { function hasTmuxToolBeenUsed (line 195) | function hasTmuxToolBeenUsed(): boolean { function ensureSocketInitialized (line 208) | async function ensureSocketInitialized(): Promise { function killTmuxServer (line 252) | async function killTmuxServer(): Promise { function doInitialize (line 268) | async function doInitialize(): Promise { function resetSocketState (line 418) | function resetSocketState(): void { FILE: restored-src/src/utils/todo/types.ts type TodoItem (line 15) | type TodoItem = z.infer> type TodoList (line 18) | type TodoList = z.infer> FILE: restored-src/src/utils/tokenBudget.ts constant SHORTHAND_START_RE (line 3) | const SHORTHAND_START_RE = /^\s*\+(\d+(?:\.\d+)?)\s*(k|m|b)\b/i constant SHORTHAND_END_RE (line 7) | const SHORTHAND_END_RE = /\s\+(\d+(?:\.\d+)?)\s*(k|m|b)\s*[.!?]?\s*$/i constant VERBOSE_RE (line 8) | const VERBOSE_RE = /\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens... constant VERBOSE_RE_G (line 9) | const VERBOSE_RE_G = new RegExp(VERBOSE_RE.source, 'gi') constant MULTIPLIERS (line 11) | const MULTIPLIERS: Record = { function parseBudgetMatch (line 17) | function parseBudgetMatch(value: string, suffix: string): number { function parseTokenBudget (line 21) | function parseTokenBudget(text: string): number | null { function findTokenBudgetPositions (line 31) | function findTokenBudgetPositions( function getBudgetContinuationMessage (line 66) | function getBudgetContinuationMessage( FILE: restored-src/src/utils/tokens.ts function getTokenUsage (line 7) | function getTokenUsage(message: Message): Usage | undefined { function getAssistantMessageId (line 28) | function getAssistantMessageId(message: Message): string | undefined { function getTokenCountFromUsage (line 46) | function getTokenCountFromUsage(usage: Usage): number { function tokenCountFromLastAPIResponse (line 55) | function tokenCountFromLastAPIResponse(messages: Message[]): number { function finalContextTokensFromLastResponse (line 79) | function finalContextTokensFromLastResponse( function messageTokenCountFromLastAPIResponse (line 123) | function messageTokenCountFromLastAPIResponse( function getCurrentUsage (line 138) | function getCurrentUsage(messages: Message[]): { function doesMostRecentAssistantMessageExceed200k (line 159) | function doesMostRecentAssistantMessageExceed200k( function getAssistantMessageContentLength (line 183) | function getAssistantMessageContentLength( function tokenCountWithEstimation (line 226) | function tokenCountWithEstimation(messages: readonly Message[]): number { FILE: restored-src/src/utils/toolErrors.ts function formatError (line 5) | function formatError(error: unknown): string { function getErrorParts (line 24) | function getErrorParts(error: Error): string[] { function formatValidationPath (line 47) | function formatValidationPath(path: PropertyKey[]): string { function formatZodValidationError (line 66) | function formatZodValidationError( FILE: restored-src/src/utils/toolPool.ts constant PR_ACTIVITY_TOOL_SUFFIXES (line 11) | const PR_ACTIVITY_TOOL_SUFFIXES = [ function isPrActivitySubscriptionTool (line 16) | function isPrActivitySubscriptionTool(name: string): boolean { function applyCoordinatorToolFilter (line 35) | function applyCoordinatorToolFilter(tools: Tools): Tools { function mergeAndFilterTools (line 55) | function mergeAndFilterTools( FILE: restored-src/src/utils/toolResultStorage.ts constant TOOL_RESULTS_SUBDIR (line 27) | const TOOL_RESULTS_SUBDIR = 'tool-results' constant PERSISTED_OUTPUT_TAG (line 30) | const PERSISTED_OUTPUT_TAG = '' constant PERSISTED_OUTPUT_CLOSING_TAG (line 31) | const PERSISTED_OUTPUT_CLOSING_TAG = '' constant TOOL_RESULT_CLEARED_MESSAGE (line 34) | const TOOL_RESULT_CLEARED_MESSAGE = '[Old tool result content cleared]' constant PERSIST_THRESHOLD_OVERRIDE_FLAG (line 43) | const PERSIST_THRESHOLD_OVERRIDE_FLAG = 'tengu_satin_quoll' function getPersistenceThreshold (line 55) | function getPersistenceThreshold( type PersistedToolResult (line 81) | type PersistedToolResult = { type PersistToolResultError (line 90) | type PersistToolResultError = { function getSessionDir (line 97) | function getSessionDir(): string { function getToolResultsDir (line 104) | function getToolResultsDir(): string { constant PREVIEW_SIZE_BYTES (line 109) | const PREVIEW_SIZE_BYTES = 2000 function getToolResultPath (line 114) | function getToolResultPath(id: string, isJson: boolean): string { function ensureToolResultsDir (line 122) | async function ensureToolResultsDir(): Promise { function persistToolResult (line 137) | async function persistToolResult( function buildLargeToolResultMessage (line 189) | function buildLargeToolResultMessage( function processToolResultBlock (line 205) | async function processToolResultBlock( function processPreMappedToolResultBlock (line 232) | async function processPreMappedToolResultBlock( function isToolResultContentEmpty (line 250) | function isToolResultContentEmpty( function maybePersistLargeToolResult (line 272) | async function maybePersistLargeToolResult( function generatePreview (line 339) | function generatePreview( function isPersistError (line 361) | function isPersistError( type ContentReplacementState (line 390) | type ContentReplacementState = { function createContentReplacementState (line 395) | function createContentReplacementState(): ContentReplacementState { function cloneContentReplacementState (line 405) | function cloneContentReplacementState( function getPerMessageBudgetLimit (line 421) | function getPerMessageBudgetLimit(): number { function provisionContentReplacementState (line 447) | function provisionContentReplacementState( type ContentReplacementRecord (line 475) | type ContentReplacementRecord = { type ToolResultReplacementRecord (line 481) | type ToolResultReplacementRecord = Extract< type ToolResultCandidate (line 486) | type ToolResultCandidate = { type CandidatePartition (line 492) | type CandidatePartition = { function isContentAlreadyCompacted (line 498) | function isContentAlreadyCompacted( function hasImageBlock (line 507) | function hasImageBlock( function contentSize (line 518) | function contentSize( function buildToolNameMap (line 536) | function buildToolNameMap(messages: Message[]): Map { function collectCandidatesFromMessage (line 557) | function collectCandidatesFromMessage(message: Message): ToolResultCandi... function collectCandidatesByMessage (line 600) | function collectCandidatesByMessage( function partitionByPriorDecision (line 649) | function partitionByPriorDecision( function selectFreshToReplace (line 675) | function selectFreshToReplace( function replaceToolResultContents (line 699) | function replaceToolResultContents( function buildReplacement (line 728) | async function buildReplacement( function enforceToolResultBudget (line 769) | async function enforceToolResultBudget( function applyToolResultBudget (line 924) | async function applyToolResultBudget( function reconstructContentReplacementState (line 960) | function reconstructContentReplacementState( function reconstructForSubagentResume (line 1001) | function reconstructForSubagentResume( function getFileSystemErrorMessage (line 1017) | function getFileSystemErrorMessage(error: Error): string { FILE: restored-src/src/utils/toolSchemaCache.ts type CachedSchema (line 13) | type CachedSchema = BetaTool & { constant TOOL_SCHEMA_CACHE (line 18) | const TOOL_SCHEMA_CACHE = new Map() function getToolSchemaCache (line 20) | function getToolSchemaCache(): Map { function clearToolSchemaCache (line 24) | function clearToolSchemaCache(): void { FILE: restored-src/src/utils/toolSearch.ts constant DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE (line 49) | const DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE = 10 // 10% function parseAutoPercentage (line 55) | function parseAutoPercentage(value: string): number | null { function isAutoToolSearchMode (line 75) | function isAutoToolSearchMode(value: string | undefined): boolean { function getAutoToolSearchPercentage (line 83) | function getAutoToolSearchPercentage(): number { constant CHARS_PER_TOKEN (line 99) | const CHARS_PER_TOKEN = 2.5 function getAutoToolSearchTokenThreshold (line 104) | function getAutoToolSearchTokenThreshold(model: string): number { function getAutoToolSearchCharThreshold (line 115) | function getAutoToolSearchCharThreshold(model: string): number { type ToolSearchMode (line 161) | type ToolSearchMode = 'tst' | 'tst-auto' | 'standard' function getToolSearchMode (line 172) | function getToolSearchMode(): ToolSearchMode { constant DEFAULT_UNSUPPORTED_MODEL_PATTERNS (line 204) | const DEFAULT_UNSUPPORTED_MODEL_PATTERNS = ['haiku'] function getUnsupportedToolReferencePatterns (line 210) | function getUnsupportedToolReferencePatterns(): string[] { function modelSupportsToolReference (line 239) | function modelSupportsToolReference(model: string): boolean { function isToolSearchEnabledOptimistic (line 270) | function isToolSearchEnabledOptimistic(): boolean { function isToolSearchToolAvailable (line 330) | function isToolSearchToolAvailable( function calculateDeferredToolDescriptionChars (line 340) | async function calculateDeferredToolDescriptionChars( function isToolSearchEnabled (line 385) | async function isToolSearchEnabled( function isToolReferenceBlock (line 479) | function isToolReferenceBlock(obj: unknown): boolean { function isToolReferenceWithName (line 491) | function isToolReferenceWithName( type ToolResultBlock (line 505) | type ToolResultBlock = { function isToolResultBlockWithContent (line 513) | function isToolResultBlockWithContent(obj: unknown): obj is ToolResultBl... function extractDiscoveredToolNames (line 545) | function extractDiscoveredToolNames(messages: Message[]): Set { type DeferredToolsDelta (line 594) | type DeferredToolsDelta = { type DeferredToolsDeltaScanContext (line 614) | type DeferredToolsDeltaScanContext = { function isDeferredToolsDeltaEnabled (line 629) | function isDeferredToolsDeltaEnabled(): boolean { function getDeferredToolsDelta (line 646) | function getDeferredToolsDelta( function checkAutoThreshold (line 712) | async function checkAutoThreshold( FILE: restored-src/src/utils/transcriptSearch.ts constant SYSTEM_REMINDER_CLOSE (line 7) | const SYSTEM_REMINDER_CLOSE = '' constant RENDERED_AS_SENTINEL (line 12) | const RENDERED_AS_SENTINEL = new Set([ function renderableSearchText (line 24) | function renderableSearchText(msg: RenderableMessage): string { function computeSearchText (line 32) | function computeSearchText(msg: RenderableMessage): string { function toolUseSearchText (line 134) | function toolUseSearchText(input: unknown): string { function toolResultSearchText (line 171) | function toolResultSearchText(r: unknown): string { FILE: restored-src/src/utils/treeify.ts type TreeNode (line 5) | type TreeNode = { type TreeifyOptions (line 9) | type TreeifyOptions = { type TreeCharacters (line 21) | type TreeCharacters = { constant DEFAULT_TREE_CHARS (line 28) | const DEFAULT_TREE_CHARS: TreeCharacters = { function treeify (line 39) | function treeify(obj: TreeNode, options: TreeifyOptions = {}): string { FILE: restored-src/src/utils/truncate.ts function truncatePathMiddle (line 16) | function truncatePathMiddle(path: string, maxLength: number): string { function truncateToWidth (line 63) | function truncateToWidth(text: string, maxWidth: number): string { function truncateStartToWidth (line 82) | function truncateStartToWidth(text: string, maxWidth: number): string { function truncateToWidthNoEllipsis (line 108) | function truncateToWidthNoEllipsis( function truncate (line 134) | function truncate( function wrapText (line 160) | function wrapText(text: string, width: number): string[] { FILE: restored-src/src/utils/ultraplan/ccrSession.ts constant POLL_INTERVAL_MS (line 21) | const POLL_INTERVAL_MS = 3000 constant MAX_CONSECUTIVE_FAILURES (line 24) | const MAX_CONSECUTIVE_FAILURES = 5 type PollFailReason (line 26) | type PollFailReason = class UltraplanPollError (line 34) | class UltraplanPollError extends Error { method constructor (line 35) | constructor( constant ULTRAPLAN_TELEPORT_SENTINEL (line 48) | const ULTRAPLAN_TELEPORT_SENTINEL = '__ULTRAPLAN_TELEPORT_LOCAL__' type ScanResult (line 50) | type ScanResult = type UltraplanPhase (line 66) | type UltraplanPhase = 'running' | 'needs_input' | 'plan_ready' class ExitPlanModeScanner (line 80) | class ExitPlanModeScanner { method rejectCount (line 88) | get rejectCount(): number { method hasPendingPlan (line 96) | get hasPendingPlan(): boolean { method ingest (line 101) | ingest(newEvents: SDKMessage[]): ScanResult { type PollResult (line 183) | type PollResult = { function pollForApprovedExitPlanMode (line 198) | async function pollForApprovedExitPlanMode( function contentToText (line 310) | function contentToText(content: ToolResultBlockParam['content']): string { function extractTeleportPlan (line 321) | function extractTeleportPlan( function extractApprovedPlan (line 333) | function extractApprovedPlan(content: ToolResultBlockParam['content']): ... FILE: restored-src/src/utils/ultraplan/keyword.ts type TriggerPosition (line 1) | type TriggerPosition = { word: string; start: number; end: number } constant OPEN_TO_CLOSE (line 3) | const OPEN_TO_CLOSE: Record = { function findKeywordTriggerPositions (line 46) | function findKeywordTriggerPositions( function findUltraplanTriggerPositions (line 97) | function findUltraplanTriggerPositions(text: string): TriggerPosition[] { function findUltrareviewTriggerPositions (line 101) | function findUltrareviewTriggerPositions( function hasUltraplanKeyword (line 107) | function hasUltraplanKeyword(text: string): boolean { function hasUltrareviewKeyword (line 111) | function hasUltrareviewKeyword(text: string): boolean { function replaceUltraplanKeyword (line 120) | function replaceUltraplanKeyword(text: string): string { FILE: restored-src/src/utils/unaryLogging.ts type CompletionType (line 6) | type CompletionType = type LogEvent (line 12) | type LogEvent = { function logUnaryEvent (line 23) | async function logUnaryEvent(event: LogEvent): Promise { FILE: restored-src/src/utils/undercover.ts function isUndercover (line 28) | function isUndercover(): boolean { function getUndercoverInstructions (line 39) | function getUndercoverInstructions(): string { function shouldShowUndercoverAutoNotice (line 80) | function shouldShowUndercoverAutoNotice(): boolean { FILE: restored-src/src/utils/user.ts type GitHubActionsMetadata (line 21) | type GitHubActionsMetadata = { type CoreUserData (line 34) | type CoreUserData = { function initUser (line 53) | async function initUser(): Promise { function resetUserCache (line 67) | function resetUserCache(): void { function getUserForGrowthBook (line 133) | function getUserForGrowthBook(): CoreUserData { function getEmail (line 137) | function getEmail(): string | undefined { function getEmailAsync (line 162) | async function getEmailAsync(): Promise { FILE: restored-src/src/utils/userAgent.ts function getClaudeCodeUserAgent (line 8) | function getClaudeCodeUserAgent(): string { FILE: restored-src/src/utils/userPromptKeywords.ts function matchesNegativeKeyword (line 4) | function matchesNegativeKeyword(input: string): boolean { function matchesKeepGoingKeyword (line 16) | function matchesKeepGoingKeyword(input: string): boolean { FILE: restored-src/src/utils/uuid.ts function validateUuid (line 12) | function validateUuid(maybeUuid: unknown): UUID | null { function createAgentId (line 24) | function createAgentId(label?: string): AgentId { FILE: restored-src/src/utils/warningHandler.ts constant MAX_WARNING_KEYS (line 11) | const MAX_WARNING_KEYS = 1000 function isRunningFromBuildDirectory (line 16) | function isRunningFromBuildDirectory(): boolean { constant INTERNAL_WARNINGS (line 38) | const INTERNAL_WARNINGS = [ function isInternalWarning (line 43) | function isInternalWarning(warning: Error): boolean { function resetWarningHandler (line 52) | function resetWarningHandler(): void { function initializeWarningHandler (line 60) | function initializeWarningHandler(): void { FILE: restored-src/src/utils/which.ts function whichNodeAsync (line 4) | async function whichNodeAsync(command: string): Promise { function whichNodeSync (line 33) | function whichNodeSync(command: string): string | null { FILE: restored-src/src/utils/windowsPaths.ts function checkPathExists (line 15) | function checkPathExists(path: string): boolean { function findExecutable (line 29) | function findExecutable(executable: string): string | null { function setShellIfWindows (line 87) | function setShellIfWindows(): void { FILE: restored-src/src/utils/withResolvers.ts function withResolvers (line 5) | function withResolvers(): PromiseWithResolvers { FILE: restored-src/src/utils/words.ts constant ADJECTIVES (line 9) | const ADJECTIVES = [ constant NOUNS (line 235) | const NOUNS = [ constant VERBS (line 652) | const VERBS = [ function randomInt (line 767) | function randomInt(max: number): number { function pickRandom (line 777) | function pickRandom(array: readonly T[]): T { function generateWordSlug (line 785) | function generateWordSlug(): string { function generateShortWordSlug (line 796) | function generateShortWordSlug(): string { FILE: restored-src/src/utils/workloadContext.ts type Workload (line 25) | type Workload = 'cron' constant WORKLOAD_CRON (line 26) | const WORKLOAD_CRON: Workload = 'cron' function getWorkload (line 32) | function getWorkload(): string | undefined { function runWithWorkload (line 52) | function runWithWorkload( FILE: restored-src/src/utils/worktree.ts constant VALID_WORKTREE_SLUG_SEGMENT (line 48) | const VALID_WORKTREE_SLUG_SEGMENT = /^[a-zA-Z0-9._-]+$/ constant MAX_WORKTREE_SLUG_LENGTH (line 49) | const MAX_WORKTREE_SLUG_LENGTH = 64 function validateWorktreeSlug (line 66) | function validateWorktreeSlug(slug: string): void { function mkdirRecursive (line 90) | async function mkdirRecursive(dirPath: string): Promise { function symlinkDirectories (line 102) | async function symlinkDirectories( type WorktreeSession (line 140) | type WorktreeSession = { function getCurrentWorktreeSession (line 158) | function getCurrentWorktreeSession(): WorktreeSession | null { function restoreWorktreeSession (line 167) | function restoreWorktreeSession(session: WorktreeSession | null): void { function generateTmuxSessionName (line 171) | function generateTmuxSessionName( type WorktreeCreateResult (line 180) | type WorktreeCreateResult = constant GIT_NO_PROMPT_ENV (line 199) | const GIT_NO_PROMPT_ENV = { function worktreesDir (line 204) | function worktreesDir(repoRoot: string): string { function flattenSlug (line 217) | function flattenSlug(slug: string): string { function worktreeBranchName (line 221) | function worktreeBranchName(slug: string): string { function worktreePathFor (line 225) | function worktreePathFor(repoRoot: string, slug: string): string { function getOrCreateWorktree (line 235) | async function getOrCreateWorktree( function copyWorktreeIncludeFiles (line 391) | async function copyWorktreeIncludeFiles( function performPostCreationSetup (line 510) | async function performPostCreationSetup( function parsePRReference (line 633) | function parsePRReference(input: string): number | null { function isTmuxAvailable (line 653) | async function isTmuxAvailable(): Promise { function getTmuxInstallInstructions (line 658) | function getTmuxInstallInstructions(): string { function createTmuxSessionForWorktree (line 673) | async function createTmuxSessionForWorktree( function killTmuxSession (line 693) | async function killTmuxSession(sessionName: string): Promise { function createWorktreeForSession (line 702) | async function createWorktreeForSession( function keepWorktree (line 780) | async function keepWorktree(): Promise { function cleanupWorktree (line 813) | async function cleanupWorktree(): Promise { function createAgentWorktree (line 902) | async function createAgentWorktree(slug: string): Promise<{ function removeAgentWorktree (line 961) | async function removeAgentWorktree( constant EPHEMERAL_WORKTREE_PATTERNS (line 1030) | const EPHEMERAL_WORKTREE_PATTERNS = [ function cleanupStaleAgentWorktrees (line 1058) | async function cleanupStaleAgentWorktrees( function hasWorktreeChanges (line 1144) | async function hasWorktreeChanges( function execIntoTmuxWorktree (line 1180) | async function execIntoTmuxWorktree(args: string[]): Promise<{ FILE: restored-src/src/utils/worktreeModeEnabled.ts function isWorktreeModeEnabled (line 9) | function isWorktreeModeEnabled(): boolean { FILE: restored-src/src/utils/xdg.ts type EnvLike (line 13) | type EnvLike = Record type XDGOptions (line 15) | type XDGOptions = { function resolveOptions (line 20) | function resolveOptions(options?: XDGOptions): { env: EnvLike; home: str... function getXDGStateHome (line 32) | function getXDGStateHome(options?: XDGOptions): string { function getXDGCacheHome (line 42) | function getXDGCacheHome(options?: XDGOptions): string { function getXDGDataHome (line 52) | function getXDGDataHome(options?: XDGOptions): string { function getUserBinDir (line 62) | function getUserBinDir(options?: XDGOptions): string { FILE: restored-src/src/utils/xml.ts function escapeXml (line 6) | function escapeXml(s: string): string { function escapeXmlAttr (line 14) | function escapeXmlAttr(s: string): string { FILE: restored-src/src/utils/yaml.ts function parseYaml (line 9) | function parseYaml(input: string): unknown { FILE: restored-src/src/utils/zodToJsonSchema.ts type JsonSchema7Type (line 7) | type JsonSchema7Type = Record function zodToJsonSchema (line 17) | function zodToJsonSchema(schema: ZodTypeAny): JsonSchema7Type { FILE: restored-src/src/vim/motions.ts function resolveMotion (line 13) | function resolveMotion( function applySingleMotion (line 30) | function applySingleMotion(key: string, cursor: Cursor): Cursor { function isInclusiveMotion (line 72) | function isInclusiveMotion(key: string): boolean { function isLinewiseMotion (line 80) | function isLinewiseMotion(key: string): boolean { FILE: restored-src/src/vim/operators.ts type OperatorContext (line 26) | type OperatorContext = { function executeOperatorMotion (line 42) | function executeOperatorMotion( function executeOperatorFind (line 59) | function executeOperatorFind( function executeOperatorTextObj (line 80) | function executeOperatorTextObj( function executeLineOp (line 102) | function executeLineOp( function executeX (line 171) | function executeX(count: number, ctx: OperatorContext): void { function executeReplace (line 199) | function executeReplace( function executeToggleCase (line 222) | function executeToggleCase(count: number, ctx: OperatorContext): void { function executeJoin (line 258) | function executeJoin(count: number, ctx: OperatorContext): void { function executePaste (line 294) | function executePaste( function executeIndent (line 348) | function executeIndent( function executeOpenLine (line 397) | function executeOpenLine( function getLineStartOffset (line 425) | function getLineStartOffset(lines: string[], lineIndex: number): number { function getOperatorRange (line 429) | function getOperatorRange( function getOperatorRangeForFind (line 482) | function getOperatorRangeForFind( function applyOperator (line 493) | function applyOperator( function executeOperatorG (line 524) | function executeOperatorG( function executeOperatorGg (line 541) | function executeOperatorGg( FILE: restored-src/src/vim/textObjects.ts type TextObjectRange (line 14) | type TextObjectRange = { start: number; end: number } | null constant PAIRS (line 19) | const PAIRS: Record = { function findTextObject (line 38) | function findTextObject( function findWordObject (line 60) | function findWordObject( function findQuoteObject (line 118) | function findQuoteObject( function findBracketObject (line 149) | function findBracketObject( FILE: restored-src/src/vim/transitions.ts type TransitionContext (line 43) | type TransitionContext = OperatorContext & { type TransitionResult (line 51) | type TransitionResult = { function transition (line 59) | function transition( function handleNormalInput (line 98) | function handleNormalInput( function handleOperatorInput (line 206) | function handleOperatorInput( function fromIdle (line 248) | function fromIdle(input: string, ctx: TransitionContext): TransitionResu... function fromCount (line 265) | function fromCount( function fromOperator (line 283) | function fromOperator( function fromOperatorCount (line 310) | function fromOperatorCount( function fromOperatorFind (line 334) | function fromOperatorFind( function fromOperatorTextObj (line 350) | function fromOperatorTextObj( function fromFind (line 369) | function fromFind( function fromG (line 385) | function fromG( function fromOperatorG (line 420) | function fromOperatorG( function fromReplace (line 438) | function fromReplace( function fromIndent (line 450) | function fromIndent( function executeRepeatFind (line 465) | function executeRepeatFind( FILE: restored-src/src/vim/types.ts type Operator (line 33) | type Operator = 'delete' | 'change' | 'yank' type FindType (line 35) | type FindType = 'f' | 'F' | 't' | 'T' type TextObjScope (line 37) | type TextObjScope = 'inner' | 'around' type VimState (line 49) | type VimState = type CommandState (line 59) | type CommandState = type PersistentState (line 81) | type PersistentState = { type RecordedChange (line 92) | type RecordedChange = constant OPERATORS (line 125) | const OPERATORS = { function isOperatorKey (line 131) | function isOperatorKey(key: string): key is keyof typeof OPERATORS { constant SIMPLE_MOTIONS (line 135) | const SIMPLE_MOTIONS = new Set([ constant FIND_KEYS (line 151) | const FIND_KEYS = new Set(['f', 'F', 't', 'T']) constant TEXT_OBJ_SCOPES (line 153) | const TEXT_OBJ_SCOPES = { function isTextObjScopeKey (line 158) | function isTextObjScopeKey( constant TEXT_OBJ_TYPES (line 164) | const TEXT_OBJ_TYPES = new Set([ constant MAX_VIM_COUNT (line 182) | const MAX_VIM_COUNT = 10000 function createInitialVimState (line 188) | function createInitialVimState(): VimState { function createInitialPersistentState (line 192) | function createInitialPersistentState(): PersistentState { FILE: restored-src/src/voice/voiceModeEnabled.ts function isVoiceGrowthBookEnabled (line 16) | function isVoiceGrowthBookEnabled(): boolean { function hasVoiceAuth (line 32) | function hasVoiceAuth(): boolean { function isVoiceModeEnabled (line 52) | function isVoiceModeEnabled(): boolean { FILE: restored-src/vendor/audio-capture-src/index.ts type AudioCaptureNapi (line 2) | type AudioCaptureNapi = { function loadModule (line 24) | function loadModule(): AudioCaptureNapi | null { function isNativeAudioAvailable (line 74) | function isNativeAudioAvailable(): boolean { function startNativeRecording (line 78) | function startNativeRecording( function stopNativeRecording (line 89) | function stopNativeRecording(): void { function isNativeRecordingActive (line 97) | function isNativeRecordingActive(): boolean { function startNativePlayback (line 105) | function startNativePlayback( function writeNativePlaybackData (line 116) | function writeNativePlaybackData(data: Buffer): void { function stopNativePlayback (line 124) | function stopNativePlayback(): void { function isNativePlaying (line 132) | function isNativePlaying(): boolean { function microphoneAuthorizationStatus (line 145) | function microphoneAuthorizationStatus(): number { FILE: restored-src/vendor/image-processor-src/index.ts type ClipboardImageResult (line 1) | type ClipboardImageResult = { type NativeModule (line 14) | type NativeModule = { function getNativeModule (line 30) | function getNativeModule(): NativeModule | null { type ImageProcessor (line 42) | interface ImageProcessor { type SharpInstance (line 59) | interface SharpInstance { function sharp (line 77) | function sharp(input: Buffer): SharpInstance { FILE: restored-src/vendor/modifiers-napi-src/index.ts type ModifiersNapi (line 5) | type ModifiersNapi = { function loadModule (line 12) | function loadModule(): ModifiersNapi | null { function getModifiers (line 44) | function getModifiers(): string[] { function isModifierPressed (line 52) | function isModifierPressed(modifier: string): boolean { function prewarm (line 64) | function prewarm(): void { FILE: restored-src/vendor/url-handler-src/index.ts type UrlHandlerNapi (line 5) | type UrlHandlerNapi = { function loadModule (line 11) | function loadModule(): UrlHandlerNapi | null { function waitForUrlEvent (line 52) | function waitForUrlEvent(timeoutMs: number): string | null {