SYMBOL INDEX (4718 symbols across 424 files) FILE: .pi/extensions/diff.ts type FileInfo (line 12) | interface FileInfo { FILE: .pi/extensions/files.ts type FileEntry (line 12) | interface FileEntry { type FileToolName (line 18) | type FileToolName = "read" | "write" | "edit"; FILE: .pi/extensions/prompt-url-widget.ts constant PR_PROMPT_PATTERN (line 4) | const PR_PROMPT_PATTERN = /^\s*You are given one or more GitHub PR URLs:... constant ISSUE_PROMPT_PATTERN (line 5) | const ISSUE_PROMPT_PATTERN = /^\s*Analyze GitHub issue\(s\):\s*(\S+)/im; type PromptMatch (line 7) | type PromptMatch = { type GhMetadata (line 12) | type GhMetadata = { function extractPromptMatch (line 20) | function extractPromptMatch(prompt: string): PromptMatch | undefined { function fetchGhMetadata (line 34) | async function fetchGhMetadata( function formatAuthor (line 51) | function formatAuthor(author?: GhMetadata["author"]): string | undefined { function promptUrlWidgetExtension (line 61) | function promptUrlWidgetExtension(pi: ExtensionAPI) { FILE: .pi/extensions/tps.ts function isAssistantMessage (line 4) | function isAssistantMessage(message: unknown): message is AssistantMessa... FILE: packages/agent/src/agent-loop.ts type AgentEventSink (line 25) | type AgentEventSink = (event: AgentEvent) => Promise | void; function agentLoop (line 31) | function agentLoop( function agentLoopContinue (line 64) | function agentLoopContinue( function runAgentLoop (line 95) | async function runAgentLoop( function runAgentLoopContinue (line 120) | async function runAgentLoopContinue( function createAgentStream (line 145) | function createAgentStream(): EventStream { function runLoop (line 155) | async function runLoop( function streamAssistantResponse (line 238) | async function streamAssistantResponse( function executeToolCalls (line 336) | async function executeToolCalls( function executeToolCallsSequential (line 350) | async function executeToolCallsSequential( function executeToolCallsParallel (line 390) | async function executeToolCallsParallel( type PreparedToolCall (line 440) | type PreparedToolCall = { type ImmediateToolCallOutcome (line 447) | type ImmediateToolCallOutcome = { type ExecutedToolCallOutcome (line 453) | type ExecutedToolCallOutcome = { function prepareToolCall (line 458) | async function prepareToolCall( function executePreparedToolCall (line 509) | async function executePreparedToolCall( function finalizeExecutedToolCall (line 546) | async function finalizeExecutedToolCall( function createErrorToolResult (line 582) | function createErrorToolResult(message: string): AgentToolResult { function emitToolCallOutcome (line 589) | async function emitToolCallOutcome( FILE: packages/agent/src/agent.ts function defaultConvertToLlm (line 37) | function defaultConvertToLlm(messages: AgentMessage[]): Message[] { type AgentOptions (line 41) | interface AgentOptions { class Agent (line 116) | class Agent { method constructor (line 156) | constructor(opts: AgentOptions = {}) { method sessionId (line 177) | get sessionId(): string | undefined { method sessionId (line 185) | set sessionId(value: string | undefined) { method thinkingBudgets (line 192) | get thinkingBudgets(): ThinkingBudgets | undefined { method thinkingBudgets (line 199) | set thinkingBudgets(value: ThinkingBudgets | undefined) { method transport (line 206) | get transport(): Transport { method setTransport (line 213) | setTransport(value: Transport) { method maxRetryDelayMs (line 220) | get maxRetryDelayMs(): number | undefined { method maxRetryDelayMs (line 228) | set maxRetryDelayMs(value: number | undefined) { method toolExecution (line 232) | get toolExecution(): ToolExecutionMode { method setToolExecution (line 236) | setToolExecution(value: ToolExecutionMode) { method setBeforeToolCall (line 240) | setBeforeToolCall( method setAfterToolCall (line 248) | setAfterToolCall( method state (line 256) | get state(): AgentState { method subscribe (line 260) | subscribe(fn: (e: AgentEvent) => void): () => void { method setSystemPrompt (line 266) | setSystemPrompt(v: string) { method setModel (line 270) | setModel(m: Model) { method setThinkingLevel (line 274) | setThinkingLevel(l: ThinkingLevel) { method setSteeringMode (line 278) | setSteeringMode(mode: "all" | "one-at-a-time") { method getSteeringMode (line 282) | getSteeringMode(): "all" | "one-at-a-time" { method setFollowUpMode (line 286) | setFollowUpMode(mode: "all" | "one-at-a-time") { method getFollowUpMode (line 290) | getFollowUpMode(): "all" | "one-at-a-time" { method setTools (line 294) | setTools(t: AgentTool[]) { method replaceMessages (line 298) | replaceMessages(ms: AgentMessage[]) { method appendMessage (line 302) | appendMessage(m: AgentMessage) { method steer (line 311) | steer(m: AgentMessage) { method followUp (line 319) | followUp(m: AgentMessage) { method clearSteeringQueue (line 323) | clearSteeringQueue() { method clearFollowUpQueue (line 327) | clearFollowUpQueue() { method clearAllQueues (line 331) | clearAllQueues() { method hasQueuedMessages (line 336) | hasQueuedMessages(): boolean { method dequeueSteeringMessages (line 340) | private dequeueSteeringMessages(): AgentMessage[] { method dequeueFollowUpMessages (line 355) | private dequeueFollowUpMessages(): AgentMessage[] { method clearMessages (line 370) | clearMessages() { method abort (line 374) | abort() { method waitForIdle (line 378) | waitForIdle(): Promise { method reset (line 382) | reset() { method prompt (line 395) | async prompt(input: string | AgentMessage | AgentMessage[], images?: I... method continue (line 431) | async continue() { method _processLoopEvent (line 459) | private _processLoopEvent(event: AgentEvent): void { method _runLoop (line 508) | private async _runLoop(messages?: AgentMessage[], options?: { skipInit... method emit (line 608) | private emit(e: AgentEvent) { FILE: packages/agent/src/proxy.ts class ProxyMessageEventStream (line 20) | class ProxyMessageEventStream extends EventStream, context: Context, options: Proxy... function processProxyEvent (line 211) | function processProxyEvent( FILE: packages/agent/src/types.ts type StreamFn (line 24) | type StreamFn = ( type ToolExecutionMode (line 35) | type ToolExecutionMode = "sequential" | "parallel"; type AgentToolCall (line 38) | type AgentToolCall = Extract { type AgentToolUpdateCallback (line 270) | type AgentToolUpdateCallback = (partialResult: AgentToolResult<... type AgentTool (line 273) | interface AgentTool { function createAssistantMessage (line 54) | function createAssistantMessage( function createUserMessage (line 70) | function createUserMessage(text: string): UserMessage { function identityConverter (line 79) | function identityConverter(messages: AgentMessage[]): Message[] { type CustomNotification (line 133) | interface CustomNotification { method execute (line 247) | async execute(_toolCallId, params) { method execute (line 324) | async execute(_toolCallId, params) { method execute (line 399) | async execute(_toolCallId, params) { type CustomMessage (line 558) | interface CustomMessage { FILE: packages/agent/test/agent.test.ts class MockAssistantStream (line 6) | class MockAssistantStream extends EventStream) { function toolExecution (line 37) | async function toolExecution(model: Model) { function abortExecution (line 78) | async function abortExecution(model: Model) { function stateUpdates (line 107) | async function stateUpdates(model: Model) { function multiTurnConversation (line 139) | async function multiTurnConversation(model: Model) { FILE: packages/agent/test/utils/calculate.ts type CalculateResult (line 4) | interface CalculateResult extends AgentToolResult { function calculate (line 9) | function calculate(expression: string): CalculateResult { type CalculateParams (line 22) | type CalculateParams = Static; FILE: packages/agent/test/utils/get-current-time.ts type GetCurrentTimeResult (line 4) | interface GetCurrentTimeResult extends AgentToolResult<{ utcTimestamp: n... function getCurrentTime (line 6) | async function getCurrentTime(timezone?: string): Promise; FILE: packages/ai/scripts/generate-models.ts type ModelsDevModel (line 12) | interface ModelsDevModel { type AiGatewayModel (line 35) | interface AiGatewayModel { constant COPILOT_STATIC_HEADERS (line 49) | const COPILOT_STATIC_HEADERS = { constant AI_GATEWAY_MODELS_URL (line 56) | const AI_GATEWAY_MODELS_URL = "https://ai-gateway.vercel.sh/v1"; constant AI_GATEWAY_BASE_URL (line 57) | const AI_GATEWAY_BASE_URL = "https://ai-gateway.vercel.sh"; function fetchOpenRouterModels (line 59) | async function fetchOpenRouterModels(): Promise[]> { function fetchAiGatewayModels (line 117) | async function fetchAiGatewayModels(): Promise[]> { function loadModelsDevData (line 175) | async function loadModelsDevData(): Promise[]> { function generateModels (line 640) | async function generateModels() { FILE: packages/ai/src/api-registry.ts type ApiStreamFunction (line 11) | type ApiStreamFunction = ( type ApiStreamSimpleFunction (line 17) | type ApiStreamSimpleFunction = ( type ApiProvider (line 23) | interface ApiProvider( function wrapStreamSimple (line 54) | function wrapStreamSimple( function registerApiProvider (line 66) | function registerApiProvider, question: string... function loadAuth (line 15) | function loadAuth(): Record { function saveAuth (line 24) | function saveAuth(auth: Record { function main (line 61) | async function main(): Promise { FILE: packages/ai/src/env-api-keys.ts type DynamicImport (line 6) | type DynamicImport = (specifier: string) => Promise; constant NODE_FS_SPECIFIER (line 9) | const NODE_FS_SPECIFIER = "node:" + "fs"; constant NODE_OS_SPECIFIER (line 10) | const NODE_OS_SPECIFIER = "node:" + "os"; constant NODE_PATH_SPECIFIER (line 11) | const NODE_PATH_SPECIFIER = "node:" + "path"; function hasVertexAdcCredentials (line 30) | function hasVertexAdcCredentials(): boolean { function getEnvApiKey (line 65) | function getEnvApiKey(provider: any): string | undefined { FILE: packages/ai/src/models.generated.ts constant MODELS (line 6) | const MODELS = { FILE: packages/ai/src/models.ts type ModelApi (line 15) | type ModelApi< function getModel (line 20) | function getModel( function calculateCost (line 39) | function calculateCost(model: Model, usage: Usag... function supportsXhigh (line 55) | function supportsXhigh(model: Model): boolean { function modelsAreEqual (line 71) | function modelsAreEqual( FILE: packages/ai/src/providers/amazon-bedrock.ts type BedrockOptions (line 48) | interface BedrockOptions extends StreamOptions { type Block (line 60) | type Block = (TextContent | ThinkingContent | ToolCall) & { index?: numb... function handleContentBlockStart (line 263) | function handleContentBlockStart( function handleContentBlockDelta (line 286) | function handleContentBlockDelta( function handleMetadata (line 344) | function handleMetadata( function handleContentBlockStop (line 359) | function handleContentBlockStop( function supportsAdaptiveThinking (line 388) | function supportsAdaptiveThinking(modelId: string): boolean { function mapThinkingLevelToEffort (line 397) | function mapThinkingLevelToEffort( function resolveCacheRetention (line 420) | function resolveCacheRetention(cacheRetention?: CacheRetention): CacheRe... function supportsPromptCaching (line 441) | function supportsPromptCaching(model: Model<"bedrock-converse-stream">):... function supportsThinkingSignature (line 464) | function supportsThinkingSignature(model: Model<"bedrock-converse-stream... function buildSystemPrompt (line 469) | function buildSystemPrompt( function normalizeToolCallId (line 488) | function normalizeToolCallId(id: string): string { function convertMessages (line 493) | function convertMessages( function convertToolConfig (line 652) | function convertToolConfig( function mapStopReason (line 683) | function mapStopReason(reason: string | undefined): StopReason { function buildAdditionalModelRequestFields (line 698) | function buildAdditionalModelRequestFields( function createImageBlock (line 743) | function createImageBlock(mimeType: string, data: string) { FILE: packages/ai/src/providers/anthropic.ts function resolveCacheRetention (line 39) | function resolveCacheRetention(cacheRetention?: CacheRetention): CacheRe... function getCacheControl (line 49) | function getCacheControl( function convertContentBlocks (line 106) | function convertContentBlocks(content: (TextContent | ImageContent)[]): type AnthropicEffort (line 155) | type AnthropicEffort = "low" | "medium" | "high" | "max"; type AnthropicOptions (line 157) | interface AnthropicOptions extends StreamOptions { function mergeHeaders (line 189) | function mergeHeaders(...headerSources: (Record | undefi... type Block (line 262) | type Block = (ThinkingContent | TextContent | (ToolCall & { partialJson:... function supportsAdaptiveThinking (line 446) | function supportsAdaptiveThinking(modelId: string): boolean { function mapThinkingLevelToEffort (line 460) | function mapThinkingLevelToEffort(level: SimpleStreamOptions["reasoning"... function isOAuthToken (line 518) | function isOAuthToken(apiKey: string): boolean { function createClient (line 522) | function createClient( function buildParams (line 607) | function buildParams( function normalizeToolCallId (line 693) | function normalizeToolCallId(id: string): string { function convertMessages (line 697) | function convertMessages( function convertTools (line 862) | function convertTools(tools: Tool[], isOAuthToken: boolean): Anthropic.M... function mapStopReason (line 880) | function mapStopReason(reason: Anthropic.Messages.StopReason | string): ... FILE: packages/ai/src/providers/azure-openai-responses.ts constant DEFAULT_AZURE_API_VERSION (line 18) | const DEFAULT_AZURE_API_VERSION = "v1"; constant AZURE_TOOL_CALL_PROVIDERS (line 19) | const AZURE_TOOL_CALL_PROVIDERS = new Set(["openai", "openai-codex", "op... function parseDeploymentNameMap (line 21) | function parseDeploymentNameMap(value: string | undefined): Map, o... type AzureOpenAIResponsesOptions (line 43) | interface AzureOpenAIResponsesOptions extends StreamOptions { function normalizeAzureBaseUrl (line 142) | function normalizeAzureBaseUrl(baseUrl: string): string { function buildDefaultBaseUrl (line 146) | function buildDefaultBaseUrl(resourceName: string): string { function resolveAzureConfig (line 150) | function resolveAzureConfig( function createClient (line 181) | function createClient(model: Model<"azure-openai-responses">, apiKey: st... function buildParams (line 208) | function buildParams( FILE: packages/ai/src/providers/github-copilot-headers.ts function inferCopilotInitiator (line 5) | function inferCopilotInitiator(messages: Message[]): "user" | "agent" { function hasCopilotVisionInput (line 11) | function hasCopilotVisionInput(messages: Message[]): boolean { function buildCopilotDynamicHeaders (line 23) | function buildCopilotDynamicHeaders(params: { FILE: packages/ai/src/providers/google-gemini-cli.ts type GoogleThinkingLevel (line 39) | type GoogleThinkingLevel = "THINKING_LEVEL_UNSPECIFIED" | "MINIMAL" | "L... type GoogleGeminiCliOptions (line 41) | interface GoogleGeminiCliOptions extends StreamOptions { constant DEFAULT_ENDPOINT (line 60) | const DEFAULT_ENDPOINT = "https://cloudcode-pa.googleapis.com"; constant ANTIGRAVITY_DAILY_ENDPOINT (line 61) | const ANTIGRAVITY_DAILY_ENDPOINT = "https://daily-cloudcode-pa.sandbox.g... constant ANTIGRAVITY_AUTOPUSH_ENDPOINT (line 62) | const ANTIGRAVITY_AUTOPUSH_ENDPOINT = "https://autopush-cloudcode-pa.san... constant ANTIGRAVITY_ENDPOINT_FALLBACKS (line 63) | const ANTIGRAVITY_ENDPOINT_FALLBACKS = [ constant GEMINI_CLI_HEADERS (line 69) | const GEMINI_CLI_HEADERS = { constant DEFAULT_ANTIGRAVITY_VERSION (line 80) | const DEFAULT_ANTIGRAVITY_VERSION = "1.18.4"; function getAntigravityHeaders (line 82) | function getAntigravityHeaders() { constant ANTIGRAVITY_SYSTEM_INSTRUCTION (line 90) | const ANTIGRAVITY_SYSTEM_INSTRUCTION = constant MAX_RETRIES (line 100) | const MAX_RETRIES = 3; constant BASE_DELAY_MS (line 101) | const BASE_DELAY_MS = 1000; constant MAX_EMPTY_STREAM_RETRIES (line 102) | const MAX_EMPTY_STREAM_RETRIES = 2; constant EMPTY_STREAM_BASE_DELAY_MS (line 103) | const EMPTY_STREAM_BASE_DELAY_MS = 500; constant CLAUDE_THINKING_BETA_HEADER (line 104) | const CLAUDE_THINKING_BETA_HEADER = "interleaved-thinking-2025-05-14"; function extractRetryDelay (line 115) | function extractRetryDelay(errorText: string, response?: Response | Head... function needsClaudeThinkingBetaHeader (line 206) | function needsClaudeThinkingBetaHeader(model: Model<"google-gemini-cli">... function isGemini3ProModel (line 210) | function isGemini3ProModel(modelId: string): boolean { function isGemini3FlashModel (line 214) | function isGemini3FlashModel(modelId: string): boolean { function isGemini3Model (line 218) | function isGemini3Model(modelId: string): boolean { function isRetryableError (line 225) | function isRetryableError(status: number, errorText: string): boolean { function extractErrorMessage (line 236) | function extractErrorMessage(errorText: string): string { function sleep (line 251) | function sleep(ms: number, signal?: AbortSignal): Promise { type CloudCodeAssistRequest (line 265) | interface CloudCodeAssistRequest { type CloudCodeAssistResponseChunk (line 289) | interface CloudCodeAssistResponseChunk { function buildRequest (line 863) | function buildRequest( type ClampedThinkingLevel (line 947) | type ClampedThinkingLevel = Exclude; function getGeminiCliThinkingLevel (line 949) | function getGeminiCliThinkingLevel(effort: ClampedThinkingLevel, modelId... FILE: packages/ai/src/providers/google-shared.ts type GoogleApiType (line 10) | type GoogleApiType = "google-generative-ai" | "google-gemini-cli" | "goo... function isThinkingPart (line 27) | function isThinkingPart(part: Pick... function retainThoughtSignature (line 40) | function retainThoughtSignature(existing: string | undefined, incoming: ... constant SKIP_THOUGHT_SIGNATURE (line 51) | const SKIP_THOUGHT_SIGNATURE = "skip_thought_signature_validator"; function isValidThoughtSignature (line 53) | function isValidThoughtSignature(signature: string | undefined): boolean { function resolveThoughtSignature (line 62) | function resolveThoughtSignature(isSameProviderAndModel: boolean, signat... function requiresToolCallId (line 69) | function requiresToolCallId(modelId: string): boolean { function getGeminiMajorVersion (line 73) | function getGeminiMajorVersion(modelId: string): number | undefined { function supportsMultimodalFunctionResponse (line 79) | function supportsMultimodalFunctionResponse(modelId: string): boolean { function convertMessages (line 90) | function convertMessages(model: Model, conte... function convertTools (line 250) | function convertTools( function mapToolChoice (line 269) | function mapToolChoice(choice: string): FunctionCallingConfigMode { function mapStopReason (line 285) | function mapStopReason(reason: FinishReason): StopReason { function mapStopReasonString (line 317) | function mapStopReasonString(reason: string): StopReason { FILE: packages/ai/src/providers/google-vertex.ts type GoogleVertexOptions (line 36) | interface GoogleVertexOptions extends StreamOptions { constant API_VERSION (line 47) | const API_VERSION = "v1"; constant THINKING_LEVEL_MAP (line 49) | const THINKING_LEVEL_MAP: Record = { function createClient (line 326) | function createClient( function createClientWithApiKey (line 349) | function createClientWithApiKey( function resolveApiKey (line 370) | function resolveApiKey(options?: GoogleVertexOptions): string | undefined { function isPlaceholderApiKey (line 378) | function isPlaceholderApiKey(apiKey: string): boolean { function resolveProject (line 382) | function resolveProject(options?: GoogleVertexOptions): string { function resolveLocation (line 392) | function resolveLocation(options?: GoogleVertexOptions): string { function buildParams (line 400) | function buildParams( type ClampedThinkingLevel (line 457) | type ClampedThinkingLevel = Exclude; function isGemini3ProModel (line 459) | function isGemini3ProModel(model: Model<"google-generative-ai">): boolean { function isGemini3FlashModel (line 463) | function isGemini3FlashModel(model: Model<"google-generative-ai">): bool... function getGemini3ThinkingLevel (line 467) | function getGemini3ThinkingLevel( function getGoogleBudget (line 493) | function getGoogleBudget( FILE: packages/ai/src/providers/google.ts type GoogleOptions (line 36) | interface GoogleOptions extends StreamOptions { function createClient (line 314) | function createClient( function buildParams (line 334) | function buildParams( type ClampedThinkingLevel (line 392) | type ClampedThinkingLevel = Exclude; function isGemini3ProModel (line 394) | function isGemini3ProModel(model: Model<"google-generative-ai">): boolean { function isGemini3FlashModel (line 398) | function isGemini3FlashModel(model: Model<"google-generative-ai">): bool... function getGemini3ThinkingLevel (line 402) | function getGemini3ThinkingLevel( function getGoogleBudget (line 428) | function getGoogleBudget( FILE: packages/ai/src/providers/mistral.ts constant MISTRAL_TOOL_CALL_ID_LENGTH (line 33) | const MISTRAL_TOOL_CALL_ID_LENGTH = 9; constant MAX_MISTRAL_ERROR_BODY_CHARS (line 34) | const MAX_MISTRAL_ERROR_BODY_CHARS = 4000; type MistralOptions (line 39) | interface MistralOptions extends StreamOptions { function createOutput (line 124) | function createOutput(model: Model<"mistral-conversations">): AssistantM... function createMistralToolCallIdNormalizer (line 144) | function createMistralToolCallIdNormalizer(): (id: string) => string { function deriveMistralToolCallId (line 166) | function deriveMistralToolCallId(id: string, attempt: number): string { function formatMistralError (line 176) | function formatMistralError(error: unknown): string { function truncateErrorText (line 190) | function truncateErrorText(text: string, maxChars: number): string { function safeJsonStringify (line 195) | function safeJsonStringify(value: unknown): string { function buildRequestOptions (line 204) | function buildRequestOptions(model: Model<"mistral-conversations">, opti... function buildChatPayload (line 226) | function buildChatPayload( function consumeChatStream (line 254) | async function consumeChatStream( function toFunctionTools (line 437) | function toFunctionTools(tools: Tool[]): Array Promise; constant NODE_OS_SPECIFIER (line 10) | const NODE_OS_SPECIFIER = "node:" + "os"; constant DEFAULT_CODEX_BASE_URL (line 37) | const DEFAULT_CODEX_BASE_URL = "https://chatgpt.com/backend-api"; constant JWT_CLAIM_PATH (line 38) | const JWT_CLAIM_PATH = "https://api.openai.com/auth" as const; constant MAX_RETRIES (line 39) | const MAX_RETRIES = 3; constant BASE_DELAY_MS (line 40) | const BASE_DELAY_MS = 1000; constant CODEX_TOOL_CALL_PROVIDERS (line 41) | const CODEX_TOOL_CALL_PROVIDERS = new Set(["openai", "openai-codex", "op... constant CODEX_RESPONSE_STATUSES (line 43) | const CODEX_RESPONSE_STATUSES = new Set([ type OpenAICodexResponsesOptions (line 56) | interface OpenAICodexResponsesOptions extends StreamOptions { type CodexResponseStatus (line 62) | type CodexResponseStatus = "completed" | "incomplete" | "failed" | "canc... type RequestBody (line 64) | interface RequestBody { function isRetryableError (line 85) | function isRetryableError(status: number, errorText: string): boolean { function sleep (line 92) | function sleep(ms: number, signal?: AbortSignal): Promise { function buildRequestBody (line 296) | function buildRequestBody( function clampReasoningEffort (line 336) | function clampReasoningEffort(modelId: string, effort: string): string { function resolveCodexUrl (line 345) | function resolveCodexUrl(baseUrl?: string): string { function resolveCodexWebSocketUrl (line 353) | function resolveCodexWebSocketUrl(baseUrl?: string): string { function processStream (line 364) | async function processStream( function normalizeCodexStatus (line 402) | function normalizeCodexStatus(status: unknown): CodexResponseStatus | un... constant OPENAI_BETA_RESPONSES_WEBSOCKETS (line 458) | const OPENAI_BETA_RESPONSES_WEBSOCKETS = "responses_websockets=2026-02-06"; constant SESSION_WEBSOCKET_CACHE_TTL_MS (line 459) | const SESSION_WEBSOCKET_CACHE_TTL_MS = 5 * 60 * 1000; type WebSocketEventType (line 461) | type WebSocketEventType = "open" | "message" | "error" | "close"; type WebSocketListener (line 462) | type WebSocketListener = (event: unknown) => void; type WebSocketLike (line 464) | interface WebSocketLike { type CachedWebSocketConnection (line 471) | interface CachedWebSocketConnection { type WebSocketConstructor (line 479) | type WebSocketConstructor = new ( function getWebSocketConstructor (line 484) | function getWebSocketConstructor(): WebSocketConstructor | null { function headersToRecord (line 490) | function headersToRecord(headers: Headers): Record { function getWebSocketReadyState (line 498) | function getWebSocketReadyState(socket: WebSocketLike): number | undefin... function isWebSocketReusable (line 503) | function isWebSocketReusable(socket: WebSocketLike): boolean { function closeWebSocketSilently (line 509) | function closeWebSocketSilently(socket: WebSocketLike, code = 1000, reas... function scheduleSessionWebSocketExpiry (line 515) | function scheduleSessionWebSocketExpiry(sessionId: string, entry: Cached... function connectWebSocket (line 526) | async function connectWebSocket(url: string, headers: Headers, signal?: ... function acquireWebSocket (line 588) | async function acquireWebSocket( function extractWebSocketError (line 664) | function extractWebSocketError(event: unknown): Error { function extractWebSocketCloseError (line 674) | function extractWebSocketCloseError(event: unknown): Error { function decodeWebSocketData (line 685) | async function decodeWebSocketData(data: unknown): Promise { function processWebSocketStream (line 793) | async function processWebSocketStream( function parseErrorResponse (line 825) | async function parseErrorResponse(response: Response): Promise<{ message... function extractAccountId (line 856) | function extractAccountId(token: string): string { function createCodexRequestId (line 869) | function createCodexRequestId(): string { function buildBaseCodexHeaders (line 876) | function buildBaseCodexHeaders( function buildSSEHeaders (line 894) | function buildSSEHeaders( function buildWebSocketHeaders (line 913) | function buildWebSocketHeaders( FILE: packages/ai/src/providers/openai-completions.ts function hasToolHistory (line 41) | function hasToolHistory(messages: Message[]): boolean { type OpenAICompletionsOptions (line 55) | interface OpenAICompletionsOptions extends StreamOptions { function createClient (line 325) | function createClient( function buildParams (line 363) | function buildParams(model: Model<"openai-completions">, context: Contex... function mapReasoningEffort (line 441) | function mapReasoningEffort( function maybeAddOpenRouterAnthropicCacheControl (line 448) | function maybeAddOpenRouterAnthropicCacheControl( function convertMessages (line 481) | function convertMessages( function convertTools (line 708) | function convertTools( function parseChunkUsage (line 724) | function parseChunkUsage( function mapStopReason (line 752) | function mapStopReason(reason: ChatCompletionChunk.Choice["finish_reason... function detectCompat (line 783) | function detectCompat(model: Model<"openai-completions">): Required): Required( function convertResponsesTools (line 261) | function convertResponsesTools(tools: Tool[], options?: ConvertResponses... function processResponsesStream (line 276) | async function processResponsesStream( function mapStopReason (line 488) | function mapStopReason(status: OpenAI.Responses.ResponseStatus | undefin... FILE: packages/ai/src/providers/openai-responses.ts constant OPENAI_TOOL_CALL_PROVIDERS (line 21) | const OPENAI_TOOL_CALL_PROVIDERS = new Set(["openai", "openai-codex", "o... function resolveCacheRetention (line 27) | function resolveCacheRetention(cacheRetention?: CacheRetention): CacheRe... function getPromptCacheRetention (line 41) | function getPromptCacheRetention(baseUrl: string, cacheRetention: CacheR... type OpenAIResponsesOptions (line 52) | interface OpenAIResponsesOptions extends StreamOptions { function createClient (line 149) | function createClient( function buildParams (line 187) | function buildParams(model: Model<"openai-responses">, context: Context,... function getServiceTierCostMultiplier (line 242) | function getServiceTierCostMultiplier(serviceTier: ResponseCreateParamsS... function applyServiceTierPricing (line 253) | function applyServiceTierPricing(usage: Usage, serviceTier: ResponseCrea... FILE: packages/ai/src/providers/register-builtins.ts type LazyProviderModule (line 24) | interface LazyProviderModule< type AnthropicProviderModule (line 37) | interface AnthropicProviderModule { type AzureOpenAIResponsesProviderModule (line 42) | interface AzureOpenAIResponsesProviderModule { type GoogleProviderModule (line 47) | interface GoogleProviderModule { type GoogleGeminiCliProviderModule (line 52) | interface GoogleGeminiCliProviderModule { type GoogleVertexProviderModule (line 57) | interface GoogleVertexProviderModule { type MistralProviderModule (line 62) | interface MistralProviderModule { type OpenAICodexResponsesProviderModule (line 67) | interface OpenAICodexResponsesProviderModule { type OpenAICompletionsProviderModule (line 72) | interface OpenAICompletionsProviderModule { type OpenAIResponsesProviderModule (line 77) | interface OpenAIResponsesProviderModule { type BedrockProviderModule (line 82) | interface BedrockProviderModule { function setBedrockProviderModule (line 131) | function setBedrockProviderModule(module: BedrockProviderModule): void { function forwardStream (line 138) | function forwardStream(target: AssistantMessageEventStream, source: Asyn... function createLazyLoadErrorMessage (line 147) | function createLazyLoadErrorMessage(model: Model... function createLazyStream (line 168) | function createLazyStream, options?: SimpleStreamOptio... function clampReasoning (line 18) | function clampReasoning(effort: ThinkingLevel | undefined): Exclude( FILE: packages/ai/src/stream.ts function resolveApiProvider (line 17) | function resolveApiProvider(api: Api) { function stream (line 25) | function stream( function complete (line 34) | async function complete( function streamSimple (line 43) | function streamSimple( function completeSimple (line 52) | async function completeSimple( FILE: packages/ai/src/types.ts type KnownApi (line 5) | type KnownApi = type Api (line 17) | type Api = KnownApi | (string & {}); type KnownProvider (line 19) | type KnownProvider = type Provider (line 43) | type Provider = KnownProvider | string; type ThinkingLevel (line 45) | type ThinkingLevel = "minimal" | "low" | "medium" | "high" | "xhigh"; type ThinkingBudgets (line 48) | interface ThinkingBudgets { type CacheRetention (line 56) | type CacheRetention = "none" | "short" | "long"; type Transport (line 58) | type Transport = "sse" | "websocket" | "auto"; type StreamOptions (line 60) | interface StreamOptions { type ProviderStreamOptions (line 108) | type ProviderStreamOptions = StreamOptions & Record; type SimpleStreamOptions (line 111) | interface SimpleStreamOptions extends StreamOptions { type StreamFunction (line 125) | type StreamFunction { type Message (line 213) | type Message = UserMessage | AssistantMessage | ToolResultMessage; type Tool (line 217) | interface Tool { type Context (line 223) | interface Context { type AssistantMessageEvent (line 237) | type AssistantMessageEvent = type OpenAICompletionsCompat (line 255) | interface OpenAICompletionsCompat { type OpenAIResponsesCompat (line 285) | interface OpenAIResponsesCompat { type OpenRouterRouting (line 294) | interface OpenRouterRouting { type VercelGatewayRouting (line 306) | interface VercelGatewayRouting { type Model (line 314) | interface Model { FILE: packages/ai/src/utils/event-stream.ts class EventStream (line 4) | class EventStream implements AsyncIterable { method constructor (line 11) | constructor( method push (line 20) | push(event: T): void { method end (line 37) | end(result?: R): void { method result (line 63) | result(): Promise { method [Symbol.asyncIterator] (line 49) | async *[Symbol.asyncIterator](): AsyncIterator { class AssistantMessageEventStream (line 68) | class AssistantMessageEventStream extends EventStream(partialJson: string | undefined): T { FILE: packages/ai/src/utils/oauth/anthropic.ts type CallbackServerInfo (line 13) | type CallbackServerInfo = { type NodeApis (line 20) | type NodeApis = { constant CLIENT_ID (line 28) | const CLIENT_ID = decode("OWQxYzI1MGEtZTYxYi00NGQ5LTg4ZWQtNTk0NGQxOTYyZj... constant AUTHORIZE_URL (line 29) | const AUTHORIZE_URL = "https://claude.ai/oauth/authorize"; constant TOKEN_URL (line 30) | const TOKEN_URL = "https://platform.claude.com/v1/oauth/token"; constant CALLBACK_HOST (line 31) | const CALLBACK_HOST = "127.0.0.1"; constant CALLBACK_PORT (line 32) | const CALLBACK_PORT = 53692; constant CALLBACK_PATH (line 33) | const CALLBACK_PATH = "/callback"; constant REDIRECT_URI (line 34) | const REDIRECT_URI = `http://localhost:${CALLBACK_PORT}${CALLBACK_PATH}`; constant SCOPES (line 35) | const SCOPES = function getNodeApis (line 37) | async function getNodeApis(): Promise { function parseAuthorizationInput (line 51) | function parseAuthorizationInput(input: string): { code?: string; state?... function formatErrorDetails (line 81) | function formatErrorDetails(error: unknown): string { function startCallbackServer (line 98) | async function startCallbackServer(expectedState: string): Promise { method refreshToken (line 395) | async refreshToken(credentials: OAuthCredentials): Promise { function pollForGitHubAccessToken (line 170) | async function pollForGitHubAccessToken( function refreshGitHubCopilotToken (line 241) | async function refreshGitHubCopilotToken( function enableGitHubCopilotModel (line 279) | async function enableGitHubCopilotModel(token: string, modelId: string, ... function enableAllGitHubCopilotModels (line 305) | async function enableAllGitHubCopilotModels( function loginGitHubCopilot (line 327) | async function loginGitHubCopilot(options: { method login (line 372) | async login(callbacks: OAuthLoginCallbacks): Promise { method refreshToken (line 381) | async refreshToken(credentials: OAuthCredentials): Promise[], credentials: OAuthCredentials): Model... FILE: packages/ai/src/utils/oauth/google-antigravity.ts type AntigravityCredentials (line 14) | type AntigravityCredentials = OAuthCredentials & { constant CLIENT_ID (line 28) | const CLIENT_ID = decode( constant CLIENT_SECRET (line 31) | const CLIENT_SECRET = decode("R09DU1BYLUs1OEZXUjQ4NkxkTEoxbUxCOHNYQzR6Nn... constant REDIRECT_URI (line 32) | const REDIRECT_URI = "http://localhost:51121/oauth-callback"; constant SCOPES (line 35) | const SCOPES = [ constant AUTH_URL (line 43) | const AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth"; constant TOKEN_URL (line 44) | const TOKEN_URL = "https://oauth2.googleapis.com/token"; constant DEFAULT_PROJECT_ID (line 47) | const DEFAULT_PROJECT_ID = "rising-fact-p41fc"; type CallbackServerInfo (line 49) | type CallbackServerInfo = { function getNodeCreateServer (line 58) | async function getNodeCreateServer(): Promise { function parseRedirectUrl (line 128) | function parseRedirectUrl(input: string): { code?: string; state?: strin... type LoadCodeAssistPayload (line 144) | interface LoadCodeAssistPayload { function discoverProject (line 153) | async function discoverProject(accessToken: string, onProgress?: (messag... function getUserEmail (line 213) | async function getUserEmail(accessToken: string): Promise { method refreshToken (line 441) | async refreshToken(credentials: OAuthCredentials): Promise { function parseRedirectUrl (line 120) | function parseRedirectUrl(input: string): { code?: string; state?: strin... type LoadCodeAssistPayload (line 136) | interface LoadCodeAssistPayload { type LongRunningOperationResponse (line 145) | interface LongRunningOperationResponse { constant TIER_FREE (line 154) | const TIER_FREE = "free-tier"; constant TIER_LEGACY (line 155) | const TIER_LEGACY = "legacy-tier"; constant TIER_STANDARD (line 156) | const TIER_STANDARD = "standard-tier"; type GoogleRpcErrorResponse (line 158) | interface GoogleRpcErrorResponse { function wait (line 167) | function wait(ms: number): Promise { function getDefaultTier (line 174) | function getDefaultTier(allowedTiers?: Array<{ id?: string; isDefault?: ... function isVpcScAffectedUser (line 180) | function isVpcScAffectedUser(payload: unknown): boolean { function pollOperation (line 191) | async function pollOperation( function discoverProject (line 224) | async function discoverProject(accessToken: string, onProgress?: (messag... function getUserEmail (line 355) | async function getUserEmail(accessToken: string): Promise { method refreshToken (line 583) | async refreshToken(credentials: OAuthCredentials): Promise { function getAccountId (line 282) | function getAccountId(accessToken: string): string | null { function loginOpenAICodex (line 300) | async function loginOpenAICodex(options: { function refreshOpenAICodexToken (line 410) | async function refreshOpenAICodexToken(refreshToken: string): Promise { method refreshToken (line 443) | async refreshToken(credentials: OAuthCredentials): Promise( FILE: packages/ai/src/utils/validation.ts function canUseRuntimeCodegen (line 14) | function canUseRuntimeCodegen(): boolean { function validateToolCall (line 49) | function validateToolCall(tools: Tool[], toolCall: ToolCall): any { function validateToolArguments (line 64) | function validateToolArguments(tool: Tool, toolCall: ToolCall): any { FILE: packages/ai/test/abort.test.ts type StreamOptionsWithExtras (line 6) | type StreamOptionsWithExtras = StreamOptions & Record; function testAbortSignal (line 18) | async function testAbortSignal(llm: Model, optio... function testImmediateAbort (line 62) | async function testImmediateAbort(llm: Model, op... function testAbortThenNewMessage (line 75) | async function testAbortThenNewMessage(llm: Model { FILE: packages/ai/test/azure-utils.ts function parseDeploymentNameMap (line 5) | function parseDeploymentNameMap(value: string | undefined): Map, apiKey: string): P... function logResult (line 87) | function logResult(result: OverflowResult) { FILE: packages/ai/test/cross-provider-handoff.test.ts type ProviderModelPair (line 46) | interface ProviderModelPair { constant PROVIDER_MODEL_PAIRS (line 53) | const PROVIDER_MODEL_PAIRS: ProviderModelPair[] = [ type CachedContext (line 110) | interface CachedContext { function getApiKey (line 122) | async function getApiKey(provider: string): Promise { function hasApiKey (line 131) | function hasApiKey(provider: string): boolean { function hasAnyApiKey (line 141) | function hasAnyApiKey(): boolean { function dumpFailurePayload (line 145) | function dumpFailurePayload(params: { label: string; error: string; payl... function generateContext (line 161) | async function generateContext( FILE: packages/ai/test/empty.test.ts type StreamOptionsWithExtras (line 6) | type StreamOptionsWithExtras = StreamOptions & Record; function testEmptyMessage (line 22) | async function testEmptyMessage(llm: Model, opti... function testEmptyStringMessage (line 47) | async function testEmptyStringMessage(llm: Model... function testWhitespaceOnlyMessage (line 72) | async function testWhitespaceOnlyMessage(llm: Model(llm: Model) { FILE: packages/ai/test/github-copilot-oauth.test.ts function jsonResponse (line 4) | function jsonResponse(body: unknown, status: number = 200): Response { function getUrl (line 13) | function getUrl(input: unknown): string { FILE: packages/ai/test/google-gemini-cli-claude-thinking-header.test.ts method start (line 24) | start(controller) { FILE: packages/ai/test/google-gemini-cli-empty-stream.test.ts method start (line 15) | start(controller) { method start (line 40) | start(controller) { FILE: packages/ai/test/google-shared-gemini3-unsigned-tool-call.test.ts constant SKIP_THOUGHT_SIGNATURE (line 5) | const SKIP_THOUGHT_SIGNATURE = "skip_thought_signature_validator"; function makeGemini3Model (line 7) | function makeGemini3Model(id = "gemini-3-pro-preview"): Model<"google-ge... FILE: packages/ai/test/google-shared-image-tool-result-routing.test.ts function makeModel (line 5) | function makeModel) { FILE: packages/ai/test/image-tool-result.test.ts type StreamOptionsWithExtras (line 9) | type StreamOptionsWithExtras = StreamOptions & Record; function handleToolWithImageResult (line 32) | async function handleToolWithImageResult(model: Model<... function handleToolWithTextAndImageResult (line 120) | async function handleToolWithTextAndImageResult( FILE: packages/ai/test/interleaved-thinking.test.ts type CalculatorOperation (line 24) | type CalculatorOperation = "add" | "subtract" | "multiply" | "divide"; type CalculatorArguments (line 26) | type CalculatorArguments = { function asCalculatorArguments (line 32) | function asCalculatorArguments(args: ToolCall["arguments"]): CalculatorA... function evaluateCalculatorCall (line 50) | function evaluateCalculatorCall(toolCall: ToolCall): number { function assertSecondToolCallWithInterleavedThinking (line 64) | async function assertSecondToolCallWithInterleavedThinking; function loadAuthStorage (line 29) | function loadAuthStorage(): AuthStorage { function saveAuthStorage (line 41) | function saveAuthStorage(storage: AuthStorage): void { function resolveApiKey (line 58) | async function resolveApiKey(provider: string): Promise; function isRecord (line 27) | function isRecord(value: unknown): value is Record { function isResponsePayload (line 31) | function isResponsePayload(value: unknown): value is { input: unknown[] } { function isFunctionCallOutputItem (line 35) | function isFunctionCallOutputItem( function isInputTextItem (line 41) | function isInputTextItem(value: unknown): value is { type: "input_text";... function isInputImageItem (line 45) | function isInputImageItem(value: unknown): value is { type: "input_image... function verifyToolResultImagesStayInFunctionCallOutput (line 49) | async function verifyToolResultImagesStayInFunctionCallOutput; function expectResponseId (line 18) | async function expectResponseId(model: Model, op... FILE: packages/ai/test/stream.test.ts type StreamOptionsWithExtras (line 11) | type StreamOptionsWithExtras = StreamOptions & Record; function basicTextGeneration (line 48) | async function basicTextGeneration(model: Model,... function handleToolCall (line 77) | async function handleToolCall(model: Model, opti... function handleStreaming (line 155) | async function handleStreaming(model: Model, opt... function handleThinking (line 185) | async function handleThinking(model: Model, opti... function handleImage (line 222) | async function handleImage(model: Model, options... function multiTurn (line 269) | async function multiTurn(model: Model, options?:... FILE: packages/ai/test/tokens.test.ts type StreamOptionsWithExtras (line 6) | type StreamOptionsWithExtras = StreamOptions & Record; function testTokensOnAbort (line 22) | async function testTokensOnAbort(llm: Model, opt... FILE: packages/ai/test/tool-call-id-normalization.test.ts function buildPrefilledMessages (line 190) | function buildPrefilledMessages(): Message[] { FILE: packages/ai/test/tool-call-without-result.test.ts type StreamOptionsWithExtras (line 7) | type StreamOptionsWithExtras = StreamOptions & Record; function testToolCallWithoutResult (line 34) | async function testToolCallWithoutResult(model: Model<... FILE: packages/ai/test/total-tokens.test.ts type StreamOptionsWithExtras (line 20) | type StreamOptionsWithExtras = StreamOptions & Record; constant LONG_SYSTEM_PROMPT (line 37) | const LONG_SYSTEM_PROMPT = `You are a helpful assistant. Be concise in y... function testTotalTokensWithCache (line 49) | async function testTotalTokensWithCache( function logUsage (line 88) | function logUsage(label: string, usage: Usage) { function assertTotalTokensEqualsComponents (line 97) | function assertTotalTokensEqualsComponents(usage: Usage) { FILE: packages/ai/test/transform-messages-copilot-openai-to-anthropic.test.ts function anthropicNormalizeToolCallId (line 6) | function anthropicNormalizeToolCallId( function makeCopilotClaudeModel (line 14) | function makeCopilotClaudeModel(): Model<"anthropic-messages"> { FILE: packages/ai/test/unicode-surrogate.test.ts type StreamOptionsWithExtras (line 7) | type StreamOptionsWithExtras = StreamOptions & Record; function testEmojiInToolResults (line 37) | async function testEmojiInToolResults(llm: Model... function testRealWorldLinkedInData (line 124) | async function testRealWorldLinkedInData(llm: Model(llm: Model; type CloudCodeAssistRequest (line 84) | interface CloudCodeAssistRequest { type CloudCodeAssistResponseChunk (line 104) | interface CloudCodeAssistResponseChunk { type Content (line 131) | interface Content { type Part (line 136) | interface Part { type ParsedCredentials (line 144) | interface ParsedCredentials { type ExtensionConfig (line 149) | interface ExtensionConfig { type SaveConfig (line 154) | interface SaveConfig { function parseOAuthCredentials (line 159) | function parseOAuthCredentials(raw: string): ParsedCredentials { function readConfigFile (line 172) | function readConfigFile(path: string): ExtensionConfig { function loadConfig (line 185) | function loadConfig(cwd: string): ExtensionConfig { function resolveSaveConfig (line 192) | function resolveSaveConfig(params: ToolParams, cwd: string): SaveConfig { function imageExtension (line 222) | function imageExtension(mimeType: string): string { function saveImage (line 230) | async function saveImage(base64Data: string, mimeType: string, outputDir... function buildRequest (line 242) | function buildRequest(prompt: string, model: string, projectId: string, ... function parseSseForImage (line 274) | async function parseSseForImage( function getCredentials (line 343) | async function getCredentials(ctx: { function antigravityImageGen (line 353) | function antigravityImageGen(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/built-in-tool-renderer.ts method execute (line 41) | async execute(toolCallId, params, signal, onUpdate) { method renderCall (line 45) | renderCall(args, theme) { method renderResult (line 57) | renderResult(result, { expanded, isPartial }, theme) { method execute (line 100) | async execute(toolCallId, params, signal, onUpdate) { method renderCall (line 104) | renderCall(args, theme) { method renderResult (line 114) | renderResult(result, { expanded, isPartial }, theme) { method execute (line 159) | async execute(toolCallId, params, signal, onUpdate) { method renderCall (line 163) | renderCall(args, theme) { method renderResult (line 169) | renderResult(result, { expanded, isPartial }, theme) { method execute (line 223) | async execute(toolCallId, params, signal, onUpdate) { method renderCall (line 227) | renderCall(args, theme) { method renderResult (line 235) | renderResult(result, { isPartial }, theme) { FILE: packages/coding-agent/examples/extensions/claude-rules.ts function findMarkdownFiles (line 27) | function findMarkdownFiles(dir: string, basePath: string = ""): string[] { function claudeRulesExtension (line 49) | function claudeRulesExtension(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/commands.ts function commandsExtension (line 15) | function commandsExtension(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/custom-footer.ts method invalidate (line 29) | invalidate() {} method render (line 30) | render(width: number): string[] { FILE: packages/coding-agent/examples/extensions/custom-header.ts function getPiMascot (line 13) | function getPiMascot(theme: Theme): string[] { method render (line 53) | render(_width: number): string[] { method invalidate (line 59) | invalidate() {} FILE: packages/coding-agent/examples/extensions/custom-provider-anthropic/index.ts constant CLIENT_ID (line 53) | const CLIENT_ID = decode("OWQxYzI1MGEtZTYxYi00NGQ5LTg4ZWQtNTk0NGQxOTYyZj... constant AUTHORIZE_URL (line 54) | const AUTHORIZE_URL = "https://claude.ai/oauth/authorize"; constant TOKEN_URL (line 55) | const TOKEN_URL = "https://console.anthropic.com/v1/oauth/token"; constant REDIRECT_URI (line 56) | const REDIRECT_URI = "https://console.anthropic.com/oauth/code/callback"; constant SCOPES (line 57) | const SCOPES = "org:create_api_key user:profile user:inference"; function generatePKCE (line 59) | async function generatePKCE(): Promise<{ verifier: string; challenge: st... function loginAnthropic (line 78) | async function loginAnthropic(callbacks: OAuthLoginCallbacks): Promise [m.id, m])); type DirectAccessToken (line 135) | interface DirectAccessToken { function getDirectAccessToken (line 143) | async function getDirectAccessToken(gitlabAccessToken: string): Promise<... function invalidateDirectAccessToken (line 170) | function invalidateDirectAccessToken() { function generatePKCE (line 178) | async function generatePKCE(): Promise<{ verifier: string; challenge: st... function loginGitLab (line 193) | async function loginGitLab(callbacks: OAuthLoginCallbacks): Promise [m.id, m])); function main (line 19) | async function main() { FILE: packages/coding-agent/examples/extensions/custom-provider-qwen-cli/index.ts constant QWEN_DEVICE_CODE_ENDPOINT (line 19) | const QWEN_DEVICE_CODE_ENDPOINT = "https://chat.qwen.ai/api/v1/oauth2/de... constant QWEN_TOKEN_ENDPOINT (line 20) | const QWEN_TOKEN_ENDPOINT = "https://chat.qwen.ai/api/v1/oauth2/token"; constant QWEN_CLIENT_ID (line 21) | const QWEN_CLIENT_ID = "f0304373b74a44d2b584a3fb70ca9e56"; constant QWEN_SCOPE (line 22) | const QWEN_SCOPE = "openid profile email model.completion"; constant QWEN_GRANT_TYPE (line 23) | const QWEN_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:device_code"; constant QWEN_DEFAULT_BASE_URL (line 24) | const QWEN_DEFAULT_BASE_URL = "https://dashscope.aliyuncs.com/compatible... constant QWEN_POLL_INTERVAL_MS (line 25) | const QWEN_POLL_INTERVAL_MS = 2000; function generatePKCE (line 31) | async function generatePKCE(): Promise<{ verifier: string; challenge: st... type DeviceCodeResponse (line 54) | interface DeviceCodeResponse { type TokenResponse (line 63) | interface TokenResponse { function abortableSleep (line 71) | function abortableSleep(ms: number, signal?: AbortSignal): Promise { function startDeviceFlow (line 89) | async function startDeviceFlow(): Promise<{ deviceCode: DeviceCodeRespon... function pollForToken (line 126) | async function pollForToken( function loginQwen (line 213) | async function loginQwen(callbacks: OAuthLoginCallbacks): Promise void, resume =... method startGameLoop (line 70) | private startGameLoop(): void { method handleInput (line 83) | handleInput(data: string): void { method render (line 104) | render(width: number): string[] { method invalidate (line 124) | invalidate(): void {} method dispose (line 126) | dispose(): void { FILE: packages/coding-agent/examples/extensions/doom-overlay/doom-engine.ts type DoomModule (line 10) | interface DoomModule { class DoomEngine (line 27) | class DoomEngine { method constructor (line 35) | constructor(wadPath: string) { method width (line 39) | get width(): number { method height (line 43) | get height(): number { method init (line 47) | async init(): Promise { method initDoom (line 102) | private initDoom(): void { method tick (line 133) | tick(): void { method getFrameRGBA (line 142) | getFrameRGBA(): Uint8Array { method pushKey (line 165) | pushKey(pressed: boolean, key: number): void { method isInitialized (line 170) | isInitialized(): boolean { FILE: packages/coding-agent/examples/extensions/doom-overlay/doom-keys.ts function mapKeyToDoom (line 43) | function mapKeyToDoom(data: string): number[] { FILE: packages/coding-agent/examples/extensions/doom-overlay/doom/build/doom.js function locateFile (line 8) | function locateFile(path){if(Module["locateFile"]){return Module["locate... function updateMemoryViews (line 8) | function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEA... function preRun (line 8) | function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="func... function initRuntime (line 8) | function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!... function postRun (line 8) | function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="f... function getUniqueRunDependency (line 8) | function getUniqueRunDependency(id){return id} function addRunDependency (line 8) | function addRunDependency(id){runDependencies++;Module["monitorRunDepend... function removeRunDependency (line 8) | function removeRunDependency(id){runDependencies--;Module["monitorRunDep... function abort (line 8) | function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";... function findWasmBinary (line 8) | function findWasmBinary(){return locateFile("doom.wasm")} function getBinarySync (line 8) | function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return... function getWasmBinary (line 8) | async function getWasmBinary(binaryFile){if(!wasmBinary){try{var respons... function instantiateArrayBuffer (line 8) | async function instantiateArrayBuffer(binaryFile,imports){try{var binary... function instantiateAsync (line 8) | async function instantiateAsync(binary,binaryFile,imports){if(!binary&&t... function getWasmImports (line 8) | function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:... function createWasm (line 8) | async function createWasm(){function receiveInstance(instance,module){wa... class ExitStatus (line 8) | class ExitStatus{name="ExitStatus";constructor(status){this.message=`Pro... method constructor (line 8) | constructor(status){this.message=`Program terminated with exit(${statu... function getValue (line 8) | function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(t... function setValue (line 8) | function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";sw... function trim (line 8) | function trim(arr){var start=0;for(;start0){out(UTF8ArrayToString(tty.output));t... method ioctl_tcgets (line 8) | ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:353... method ioctl_tcsets (line 8) | ioctl_tcsets(tty,optional_actions,data){return 0} method ioctl_tiocgwinsz (line 8) | ioctl_tiocgwinsz(tty){return[24,80]} method put_char (line 8) | put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.out... method fsync (line 8) | fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));t... method mount (line 8) | mount(mount){return MEMFS.createNode(null,"/",16895,0)} method createNode (line 8) | createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){... method getFileDataAsTypedArray (line 8) | getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0)... method expandFileStorage (line 8) | expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.... method resizeFileStorage (line 8) | resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(new... method getattr (line 8) | getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr... method setattr (line 8) | setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(... method lookup (line 8) | lookup(parent,name){throw MEMFS.doesNotExistError} method mknod (line 8) | mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)} method rename (line 8) | rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNod... method unlink (line 8) | unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mti... method rmdir (line 8) | rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node... method readdir (line 8) | readdir(node){return[".","..",...Object.keys(node.contents)]} method symlink (line 8) | symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname... method readlink (line 8) | readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}ret... method read (line 8) | read(stream,buffer,offset,length,position){var contents=stream.node.cont... method write (line 8) | write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HE... method llseek (line 8) | llseek(stream,offset,whence){var position=offset;if(whence===1){position... method mmap (line 8) | mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode))... method msync (line 8) | msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stre... function processData (line 8) | function processData(byteArray){function finish(byteArray){preFinish?.()... method constructor (line 8) | constructor(errno){this.errno=errno} method object (line 8) | get object(){return this.node} method object (line 8) | set object(val){this.node=val} method isRead (line 8) | get isRead(){return(this.flags&2097155)!==1} method isWrite (line 8) | get isWrite(){return(this.flags&2097155)!==0} method isAppend (line 8) | get isAppend(){return this.flags&1024} method flags (line 8) | get flags(){return this.shared.flags} method flags (line 8) | set flags(val){this.shared.flags=val} method position (line 8) | get position(){return this.shared.position} method position (line 8) | set position(val){this.shared.position=val} method constructor (line 8) | constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=p... method read (line 8) | get read(){return(this.mode&this.readMode)===this.readMode} method read (line 8) | set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode} method write (line 8) | get write(){return(this.mode&this.writeMode)===this.writeMode} method write (line 8) | set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode} method isFolder (line 8) | get isFolder(){return FS.isDir(this.mode)} method isDevice (line 8) | get isDevice(){return FS.isChrdev(this.mode)} method lookupPath (line 8) | lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.foll... method getPath (line 8) | getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mo... method hashName (line 8) | hashName(parentid,name){var hash=0;for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;H... method writeStatFs (line 8) | writeStatFs(buf,stats){HEAP32[buf+4>>2]=stats.bsize;HEAP32[buf+40>>2]=st... method doMsync (line 8) | doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){t... method getStreamFromFD (line 8) | getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream} method getStr (line 8) | getStr(ptr){var ret=UTF8ToString(ptr);return ret} function ___syscall_fcntl64 (line 8) | function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try... function ___syscall_ioctl (line 8) | function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{va... function ___syscall_mkdirat (line 8) | function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(pa... function ___syscall_openat (line 8) | function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=va... function ___syscall_renameat (line 8) | function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldp... function ___syscall_rmdir (line 8) | function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(... function ___syscall_unlinkat (line 8) | function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(... function _fd_close (line 8) | function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.cl... function _fd_read (line 8) | function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamF... function _fd_seek (line 8) | function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(... function _fd_write (line 8) | function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStream... function convertReturnValue (line 8) | function convertReturnValue(ret){if(returnType==="string"){return UTF8To... function onDone (line 8) | function onDone(ret){if(stack!==0)stackRestore(stack);return convertRetu... function run (line 8) | function run(){if(runDependencies>0){dependenciesFulfilled=run;return}pr... FILE: packages/coding-agent/examples/extensions/doom-overlay/doom/doomgeneric_pi.c function EMSCRIPTEN_KEEPALIVE (line 22) | EMSCRIPTEN_KEEPALIVE function EMSCRIPTEN_KEEPALIVE (line 26) | EMSCRIPTEN_KEEPALIVE function EMSCRIPTEN_KEEPALIVE (line 29) | EMSCRIPTEN_KEEPALIVE function EMSCRIPTEN_KEEPALIVE (line 33) | EMSCRIPTEN_KEEPALIVE function DG_Init (line 43) | void DG_Init(void) { function DG_DrawFrame (line 47) | void DG_DrawFrame(void) { function DG_SleepMs (line 51) | void DG_SleepMs(uint32_t ms) { function DG_GetTicksMs (line 56) | uint32_t DG_GetTicksMs(void) { function DG_GetKey (line 60) | int DG_GetKey(int *pressed, unsigned char *key) { function DG_SetWindowTitle (line 70) | void DG_SetWindowTitle(const char *title) { FILE: packages/coding-agent/examples/extensions/doom-overlay/wad-finder.ts constant BUNDLED_WAD (line 7) | const BUNDLED_WAD = join(__dirname, "doom1.wad"); constant WAD_URL (line 8) | const WAD_URL = "https://distro.ibiblio.org/slitaz/sources/packages/d/do... constant DEFAULT_WAD_PATHS (line 10) | const DEFAULT_WAD_PATHS = ["./doom1.wad", "./DOOM1.WAD", "~/doom1.wad", ... function findWadFile (line 12) | function findWadFile(customPath?: string): string | null { function ensureWadFile (line 34) | async function ensureWadFile(): Promise { FILE: packages/coding-agent/examples/extensions/dynamic-tools.ts constant ECHO_PARAMS (line 13) | const ECHO_PARAMS = Type.Object({ function normalizeToolName (line 17) | function normalizeToolName(input: string): string | undefined { function dynamicToolsExtension (line 24) | function dynamicToolsExtension(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/handoff.ts constant SYSTEM_PROMPT (line 19) | const SYSTEM_PROMPT = `You are a context transfer assistant. Given a con... FILE: packages/coding-agent/examples/extensions/hello.ts method execute (line 17) | async execute(_toolCallId, params, _signal, _onUpdate, _ctx) { FILE: packages/coding-agent/examples/extensions/interactive-shell.ts constant DEFAULT_INTERACTIVE_COMMANDS (line 27) | const DEFAULT_INTERACTIVE_COMMANDS = [ function getInteractiveCommands (line 100) | function getInteractiveCommands(): string[] { function isInteractiveCommand (line 109) | function isInteractiveCommand(command: string): boolean { FILE: packages/coding-agent/examples/extensions/mac-system-theme.ts function isDarkMode (line 14) | async function isDarkMode(): Promise { FILE: packages/coding-agent/examples/extensions/minimal-mode.ts function shortenPath (line 35) | function shortenPath(path: string): string { function createBuiltInTools (line 46) | function createBuiltInTools(cwd: string) { function getBuiltInTools (line 58) | function getBuiltInTools(cwd: string) { method execute (line 78) | async execute(toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 83) | renderCall(args, theme) { method renderResult (line 97) | renderResult(result, { expanded }, theme) { method execute (line 125) | async execute(toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 130) | renderCall(args, theme) { method renderResult (line 138) | renderResult(result, { expanded }, theme) { method execute (line 174) | async execute(toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 179) | renderCall(args, theme) { method renderResult (line 188) | renderResult(result, { expanded }, theme) { method execute (line 216) | async execute(toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 221) | renderCall(args, theme) { method renderResult (line 228) | renderResult(result, { expanded }, theme) { method execute (line 261) | async execute(toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 266) | renderCall(args, theme) { method renderResult (line 280) | renderResult(result, { expanded }, theme) { method execute (line 319) | async execute(toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 324) | renderCall(args, theme) { method renderResult (line 342) | renderResult(result, { expanded }, theme) { method execute (line 381) | async execute(toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 386) | renderCall(args, theme) { method renderResult (line 398) | renderResult(result, { expanded }, theme) { FILE: packages/coding-agent/examples/extensions/modal-editor.ts constant NORMAL_KEYS (line 16) | const NORMAL_KEYS: Record = { class ModalEditor (line 28) | class ModalEditor extends CustomEditor { method handleInput (line 31) | handleInput(data: string): void { method render (line 67) | render(width: number): string[] { FILE: packages/coding-agent/examples/extensions/notify.ts function windowsToastScript (line 13) | function windowsToastScript(title: string, body: string): string { function notifyOSC777 (line 26) | function notifyOSC777(title: string, body: string): void { function notifyOSC99 (line 30) | function notifyOSC99(title: string, body: string): void { function notifyWindows (line 36) | function notifyWindows(title: string, body: string): void { function notify (line 41) | function notify(title: string, body: string): void { FILE: packages/coding-agent/examples/extensions/overlay-qa-tests.ts function sleep (line 300) | function sleep(ms: number): Promise { method constructor (line 306) | constructor(protected theme: Theme) {} method box (line 308) | protected box(lines: string[], width: number, title?: string): string[] { method invalidate (line 327) | invalidate(): void {} method dispose (line 328) | dispose(): void {} class AnchorTestComponent (line 332) | class AnchorTestComponent extends BaseOverlay { method constructor (line 333) | constructor( method handleInput (line 341) | handleInput(data: string): void { method render (line 351) | render(width: number): string[] { class MarginTestComponent (line 370) | class MarginTestComponent extends BaseOverlay { method constructor (line 371) | constructor( method handleInput (line 379) | handleInput(data: string): void { method render (line 387) | render(width: number): string[] { class StackOverlayComponent (line 405) | class StackOverlayComponent extends BaseOverlay { method constructor (line 406) | constructor( method handleInput (line 415) | handleInput(data: string): void { method render (line 421) | render(width: number): string[] { class StreamingOverflowComponent (line 448) | class StreamingOverflowComponent extends BaseOverlay { method constructor (line 456) | constructor( method startProcess (line 465) | private startProcess(): void { method handleInput (line 523) | handleInput(data: string): void { method render (line 536) | render(width: number): string[] { method dispose (line 574) | dispose(): void { class EdgeTestComponent (line 581) | class EdgeTestComponent extends BaseOverlay { method constructor (line 582) | constructor( method handleInput (line 589) | handleInput(data: string): void { method render (line 595) | render(width: number): string[] { class PercentTestComponent (line 616) | class PercentTestComponent extends BaseOverlay { method constructor (line 617) | constructor( method handleInput (line 625) | handleInput(data: string): void { method render (line 633) | render(width: number): string[] { class MaxHeightTestComponent (line 651) | class MaxHeightTestComponent extends BaseOverlay { method constructor (line 652) | constructor( method handleInput (line 659) | handleInput(data: string): void { method render (line 665) | render(width: number): string[] { class SidepanelComponent (line 686) | class SidepanelComponent extends BaseOverlay { method constructor (line 690) | constructor( method handleInput (line 698) | handleInput(data: string): void { method render (line 713) | render(width: number): string[] { class AnimationDemoComponent (line 747) | class AnimationDemoComponent extends BaseOverlay { method constructor (line 754) | constructor( method startAnimation (line 763) | private startAnimation(): void { method handleInput (line 781) | handleInput(data: string): void { method render (line 788) | render(width: number): string[] { method dispose (line 830) | dispose(): void { function hslToRgb (line 839) | function hslToRgb(h: number, s: number, l: number): [number, number, num... class ToggleDemoComponent (line 862) | class ToggleDemoComponent extends BaseOverlay { method constructor (line 866) | constructor( method handleInput (line 874) | handleInput(data: string): void { method render (line 895) | render(width: number): string[] { class PassiveDemoController (line 924) | class PassiveDemoController extends BaseOverlay { method constructor (line 933) | constructor( method handleInput (line 952) | handleInput(data: string): void { method render (line 965) | render(width: number): string[] { method cleanup (line 985) | private cleanup(): void { method dispose (line 994) | override dispose(): void { class TimerPanel (line 999) | class TimerPanel extends BaseOverlay { method tick (line 1002) | tick(): void { method render (line 1006) | render(width: number): string[] { class FocusDemoController (line 1017) | class FocusDemoController extends BaseOverlay { method constructor (line 1022) | constructor( method cycleFocus (line 1051) | private cycleFocus(): void { method close (line 1064) | private close(): void { method handleInput (line 1071) | handleInput(data: string): void { method render (line 1079) | render(width: number): string[] { method dispose (line 1102) | override dispose(): void { class FocusPanel (line 1107) | class FocusPanel extends BaseOverlay { method constructor (line 1111) | constructor( method handleInput (line 1122) | handleInput(data: string): void { method render (line 1130) | render(width: number): string[] { class StreamingInputController (line 1157) | class StreamingInputController extends BaseOverlay { method constructor (line 1165) | constructor( method cycleFocus (line 1209) | private cycleFocus(): void { method close (line 1229) | private close(): void { method handleInput (line 1240) | handleInput(data: string): void { method render (line 1248) | render(width: number): string[] { method dispose (line 1283) | override dispose(): void { class StreamingInputPanel (line 1288) | class StreamingInputPanel implements Component { method constructor (line 1293) | constructor( method handleInput (line 1303) | handleInput(data: string): void { method render (line 1315) | render(width: number): string[] { method invalidate (line 1347) | invalidate(): void {} FILE: packages/coding-agent/examples/extensions/overlay-test.ts class OverlayTestComponent (line 31) | class OverlayTestComponent implements Focusable { method constructor (line 45) | constructor( method handleInput (line 50) | handleInput(data: string): void { method render (line 84) | render(_width: number): string[] { method invalidate (line 148) | invalidate(): void {} method dispose (line 149) | dispose(): void {} FILE: packages/coding-agent/examples/extensions/pirate.ts function pirateExtension (line 15) | function pirateExtension(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/plan-mode/index.ts constant PLAN_MODE_TOOLS (line 22) | const PLAN_MODE_TOOLS = ["read", "bash", "grep", "find", "ls", "question... constant NORMAL_MODE_TOOLS (line 23) | const NORMAL_MODE_TOOLS = ["read", "bash", "edit", "write"]; function isAssistantMessage (line 26) | function isAssistantMessage(m: AgentMessage): m is AssistantMessage { function getTextContent (line 31) | function getTextContent(message: AssistantMessage): string { function planModeExtension (line 38) | function planModeExtension(pi: ExtensionAPI): void { FILE: packages/coding-agent/examples/extensions/plan-mode/utils.ts constant DESTRUCTIVE_PATTERNS (line 7) | const DESTRUCTIVE_PATTERNS = [ constant SAFE_PATTERNS (line 44) | const SAFE_PATTERNS = [ function isSafeCommand (line 97) | function isSafeCommand(command: string): boolean { type TodoItem (line 103) | interface TodoItem { function cleanStepText (line 109) | function cleanStepText(text: string): string { function extractTodoItems (line 129) | function extractTodoItems(message: string): TodoItem[] { function extractDoneSteps (line 152) | function extractDoneSteps(message: string): number[] { function markCompletedSteps (line 161) | function markCompletedSteps(text: string, items: TodoItem[]): number { FILE: packages/coding-agent/examples/extensions/preset.ts type Preset (line 48) | interface Preset { type PresetsConfig (line 61) | interface PresetsConfig { function loadPresets (line 69) | function loadPresets(cwd: string): PresetsConfig { function presetExtension (line 100) | function presetExtension(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/qna.ts constant SYSTEM_PROMPT (line 14) | const SYSTEM_PROMPT = `You are a question extractor. Given text from a c... FILE: packages/coding-agent/examples/extensions/question.ts type OptionWithDesc (line 11) | interface OptionWithDesc { type DisplayOption (line 16) | type DisplayOption = OptionWithDesc & { isOther?: boolean }; type QuestionDetails (line 18) | interface QuestionDetails { function question (line 36) | function question(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/questionnaire.ts type QuestionOption (line 13) | interface QuestionOption { type RenderOption (line 19) | type RenderOption = QuestionOption & { isOther?: boolean }; type Question (line 21) | interface Question { type Answer (line 29) | interface Answer { type QuestionnaireResult (line 37) | interface QuestionnaireResult { function errorResult (line 66) | function errorResult( function questionnaire (line 76) | function questionnaire(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/rainbow-editor.ts constant COLORS (line 10) | const COLORS: [number, number, number][] = [ constant RESET (line 19) | const RESET = "\x1b[0m"; function brighten (line 21) | function brighten(rgb: [number, number, number], factor: number): string { function colorize (line 26) | function colorize(text: string, shinePos: number): string { class RainbowEditor (line 44) | class RainbowEditor extends CustomEditor { method hasUltrathink (line 48) | private hasUltrathink(): boolean { method startAnimation (line 52) | private startAnimation(): void { method stopAnimation (line 60) | private stopAnimation(): void { method handleInput (line 67) | handleInput(data: string): void { method render (line 76) | render(width: number): string[] { FILE: packages/coding-agent/examples/extensions/reload-runtime.ts method execute (line 29) | async execute() { FILE: packages/coding-agent/examples/extensions/sandbox/index.ts type SandboxConfig (line 47) | interface SandboxConfig extends SandboxRuntimeConfig { constant DEFAULT_CONFIG (line 51) | const DEFAULT_CONFIG: SandboxConfig = { function loadConfig (line 75) | function loadConfig(cwd: string): SandboxConfig { function deepMerge (line 101) | function deepMerge(base: SandboxConfig, overrides: Partial { function createRemoteReadOps (line 47) | function createRemoteReadOps(remote: string, remoteCwd: string, localCwd... function createRemoteWriteOps (line 64) | function createRemoteWriteOps(remote: string, remoteCwd: string, localCw... function createRemoteEditOps (line 75) | function createRemoteEditOps(remote: string, remoteCwd: string, localCwd... function createRemoteBashOps (line 81) | function createRemoteBashOps(remote: string, remoteCwd: string, localCwd... method execute (line 130) | async execute(id, params, signal, onUpdate, _ctx) { method execute (line 144) | async execute(id, params, signal, onUpdate, _ctx) { method execute (line 158) | async execute(id, params, signal, onUpdate, _ctx) { method execute (line 172) | async execute(id, params, signal, onUpdate, _ctx) { FILE: packages/coding-agent/examples/extensions/subagent/agents.ts type AgentScope (line 9) | type AgentScope = "user" | "project" | "both"; type AgentConfig (line 11) | interface AgentConfig { type AgentDiscoveryResult (line 21) | interface AgentDiscoveryResult { function loadAgentsFromDir (line 26) | function loadAgentsFromDir(dir: string, source: "user" | "project"): Age... function isDirectory (line 77) | function isDirectory(p: string): boolean { function findNearestProjectAgentsDir (line 85) | function findNearestProjectAgentsDir(cwd: string): string | null { function discoverAgents (line 97) | function discoverAgents(cwd: string, scope: AgentScope): AgentDiscoveryR... function formatAgentList (line 118) | function formatAgentList(agents: AgentConfig[], maxItems: number): { tex... FILE: packages/coding-agent/examples/extensions/subagent/index.ts constant MAX_PARALLEL_TASKS (line 27) | const MAX_PARALLEL_TASKS = 8; constant MAX_CONCURRENCY (line 28) | const MAX_CONCURRENCY = 4; constant COLLAPSED_ITEM_COUNT (line 29) | const COLLAPSED_ITEM_COUNT = 10; function formatTokens (line 31) | function formatTokens(count: number): string { function formatUsageStats (line 38) | function formatUsageStats( function formatToolCall (line 64) | function formatToolCall( type UsageStats (line 132) | interface UsageStats { type SingleResult (line 142) | interface SingleResult { type SubagentDetails (line 156) | interface SubagentDetails { function getFinalOutput (line 163) | function getFinalOutput(messages: Message[]): string { type DisplayItem (line 175) | type DisplayItem = { type: "text"; text: string } | { type: "toolCall"; ... function getDisplayItems (line 177) | function getDisplayItems(messages: Message[]): DisplayItem[] { function mapWithConcurrencyLimit (line 190) | async function mapWithConcurrencyLimit( function writePromptToTempFile (line 210) | async function writePromptToTempFile(agentName: string, prompt: string):... type OnUpdateCallback (line 220) | type OnUpdateCallback = (partial: AgentToolResult) => v... function runSingleAgent (line 222) | async function runSingleAgent( method execute (line 422) | async execute(_toolCallId, params, signal, onUpdate, ctx) { method renderCall (line 651) | renderCall(args, theme) { method renderResult (line 695) | renderResult(result, { expanded }, theme) { FILE: packages/coding-agent/examples/extensions/summarize.ts type ContentBlock (line 6) | type ContentBlock = { type SessionEntry (line 13) | type SessionEntry = { FILE: packages/coding-agent/examples/extensions/titlebar-spinner.ts constant BRAILLE_FRAMES (line 14) | const BRAILLE_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]; function getBaseTitle (line 16) | function getBaseTitle(pi: ExtensionAPI): string { function stopAnimation (line 26) | function stopAnimation(ctx: ExtensionContext) { function startAnimation (line 35) | function startAnimation(ctx: ExtensionContext) { FILE: packages/coding-agent/examples/extensions/todo.ts type Todo (line 18) | interface Todo { type TodoDetails (line 24) | interface TodoDetails { class TodoListComponent (line 40) | class TodoListComponent { method constructor (line 47) | constructor(todos: Todo[], theme: Theme, onClose: () => void) { method handleInput (line 53) | handleInput(data: string): void { method render (line 59) | render(width: number): string[] { method invalidate (line 99) | invalidate(): void { method execute (line 144) | async execute(_toolCallId, params, _signal, _onUpdate, _ctx) { method renderCall (line 223) | renderCall(args, theme) { method renderResult (line 230) | renderResult(result, { expanded }, theme) { FILE: packages/coding-agent/examples/extensions/tool-override.ts constant LOG_FILE (line 30) | const LOG_FILE = join(getAgentDir(), "read-access.log"); constant BLOCKED_PATTERNS (line 33) | const BLOCKED_PATTERNS = [ function isBlockedPath (line 43) | function isBlockedPath(path: string): boolean { function logAccess (line 47) | async function logAccess(path: string, allowed: boolean, reason?: string) { method execute (line 76) | async execute(_toolCallId, params, _signal, _onUpdate, ctx) { FILE: packages/coding-agent/examples/extensions/tools.ts type ToolsState (line 17) | interface ToolsState { function toolsExtension (line 21) | function toolsExtension(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/extensions/trigger-compact.ts constant COMPACT_THRESHOLD_TOKENS (line 3) | const COMPACT_THRESHOLD_TOKENS = 100_000; FILE: packages/coding-agent/examples/extensions/truncated-tool.ts type RgDetails (line 39) | interface RgDetails { method execute (line 56) | async execute(_toolCallId, params, _signal, _onUpdate, ctx) { method renderCall (line 138) | renderCall(args, theme) { method renderResult (line 151) | renderResult(result, { expanded, isPartial }, theme) { FILE: packages/coding-agent/examples/extensions/widget-placement.ts function widgetPlacementExtension (line 9) | function widgetPlacementExtension(pi: ExtensionAPI) { FILE: packages/coding-agent/examples/rpc-extension-ui.ts constant GREEN (line 29) | const GREEN = "\x1b[32m"; constant YELLOW (line 30) | const YELLOW = "\x1b[33m"; constant BLUE (line 31) | const BLUE = "\x1b[34m"; constant MAGENTA (line 32) | const MAGENTA = "\x1b[35m"; constant RED (line 33) | const RED = "\x1b[31m"; constant DIM (line 34) | const DIM = "\x1b[2m"; constant BOLD (line 35) | const BOLD = "\x1b[1m"; constant RESET (line 36) | const RESET = "\x1b[0m"; type ExtensionUIRequest (line 42) | interface ExtensionUIRequest { class OutputLog (line 63) | class OutputLog implements Component { method setVisibleLines (line 68) | setVisibleLines(n: number): void { method append (line 72) | append(line: string): void { method appendRaw (line 79) | appendRaw(text: string): void { method invalidate (line 87) | invalidate(): void {} method render (line 89) | render(width: number): string[] { class LoadingIndicator (line 100) | class LoadingIndicator implements Component { method start (line 105) | start(tui: TUI): void { method stop (line 114) | stop(): void { method invalidate (line 121) | invalidate(): void {} method render (line 123) | render(_width: number): string[] { class PromptInput (line 132) | class PromptInput implements Component { method constructor (line 136) | constructor() { method handleInput (line 140) | handleInput(data: string): void { method invalidate (line 148) | invalidate(): void { method render (line 152) | render(width: number): string[] { class SelectDialog (line 161) | class SelectDialog implements Component { method constructor (line 167) | constructor(title: string, options: string[]) { method handleInput (line 181) | handleInput(data: string): void { method invalidate (line 185) | invalidate(): void { method render (line 189) | render(width: number): string[] { class InputDialog (line 198) | class InputDialog implements Component { method constructor (line 203) | constructor(title: string, prefill?: string) { method onSubmit (line 209) | set onSubmit(fn: ((value: string) => void) | undefined) { method onEscape (line 213) | set onEscape(fn: (() => void) | undefined) { method inputComponent (line 217) | get inputComponent(): Input { method handleInput (line 221) | handleInput(data: string): void { method invalidate (line 229) | invalidate(): void { method render (line 233) | render(width: number): string[] { function main (line 246) | async function main() { FILE: packages/coding-agent/src/cli/args.ts type Mode (line 10) | type Mode = "text" | "json" | "rpc"; type Args (line 12) | interface Args { constant VALID_THINKING_LEVELS (line 50) | const VALID_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high"... function isValidThinkingLevel (line 52) | function isValidThinkingLevel(level: string): level is ThinkingLevel { function parseArgs (line 56) | function parseArgs(args: string[], extensionFlags?: Map Promise void; type AgentSessionConfig (line 131) | interface AgentSessionConfig { type ExtensionBindings (line 152) | interface ExtensionBindings { type PromptOptions (line 160) | interface PromptOptions { type ModelCycleResult (line 172) | interface ModelCycleResult { type SessionStats (line 180) | interface SessionStats { constant THINKING_LEVELS (line 203) | const THINKING_LEVELS: ThinkingLevel[] = ["off", "minimal", "low", "medi... constant THINKING_LEVELS_WITH_XHIGH (line 206) | const THINKING_LEVELS_WITH_XHIGH: ThinkingLevel[] = ["off", "minimal", "... class AgentSession (line 212) | class AgentSession { method constructor (line 277) | constructor(config: AgentSessionConfig) { method modelRegistry (line 302) | get modelRegistry(): ModelRegistry { method _installAgentToolHooks (line 314) | private _installAgentToolHooks(): void { method _emit (line 370) | private _emit(event: AgentSessionEvent): void { method _createRetryPromiseForAgentEnd (line 397) | private _createRetryPromiseForAgentEnd(event: AgentEvent): void { method _findLastAssistantInMessages (line 417) | private _findLastAssistantInMessages(messages: AgentMessage[]): Assist... method _processAgentEvent (line 427) | private async _processAgentEvent(event: AgentEvent): Promise { method _resolveRetry (line 514) | private _resolveRetry(): void { method _getUserMessageText (line 523) | private _getUserMessageText(message: Message): string { method _findLastAssistantMessage (line 532) | private _findLastAssistantMessage(): AssistantMessage | undefined { method _emitExtensionEvent (line 544) | private async _emitExtensionEvent(event: AgentEvent): Promise { method subscribe (line 621) | subscribe(listener: AgentSessionEventListener): () => void { method _disconnectFromAgent (line 638) | private _disconnectFromAgent(): void { method _reconnectToAgent (line 649) | private _reconnectToAgent(): void { method dispose (line 658) | dispose(): void { method state (line 668) | get state(): AgentState { method model (line 673) | get model(): Model | undefined { method thinkingLevel (line 678) | get thinkingLevel(): ThinkingLevel { method isStreaming (line 683) | get isStreaming(): boolean { method systemPrompt (line 688) | get systemPrompt(): string { method retryAttempt (line 693) | get retryAttempt(): number { method getActiveToolNames (line 701) | getActiveToolNames(): string[] { method getAllTools (line 708) | getAllTools(): ToolInfo[] { method setActiveToolsByName (line 722) | setActiveToolsByName(toolNames: string[]): void { method isCompacting (line 740) | get isCompacting(): boolean { method messages (line 749) | get messages(): AgentMessage[] { method steeringMode (line 754) | get steeringMode(): "all" | "one-at-a-time" { method followUpMode (line 759) | get followUpMode(): "all" | "one-at-a-time" { method sessionFile (line 764) | get sessionFile(): string | undefined { method sessionId (line 769) | get sessionId(): string { method sessionName (line 774) | get sessionName(): string | undefined { method scopedModels (line 779) | get scopedModels(): ReadonlyArray<{ model: Model; thinkingLevel?:... method setScopedModels (line 784) | setScopedModels(scopedModels: Array<{ model: Model; thinkingLevel... method promptTemplates (line 789) | get promptTemplates(): ReadonlyArray { method _normalizePromptSnippet (line 793) | private _normalizePromptSnippet(text: string | undefined): string | un... method _normalizePromptGuidelines (line 802) | private _normalizePromptGuidelines(guidelines: string[] | undefined): ... method _rebuildSystemPrompt (line 817) | private _rebuildSystemPrompt(toolNames: string[]): string { method prompt (line 865) | async prompt(text: string, options?: PromptOptions): Promise { method _tryExecuteExtensionCommand (line 1009) | private async _tryExecuteExtensionCommand(text: string): Promise { method followUp (line 1096) | async followUp(text: string, images?: ImageContent[]): Promise { method _queueSteer (line 1112) | private async _queueSteer(text: string, images?: ImageContent[]): Prom... method _queueFollowUp (line 1128) | private async _queueFollowUp(text: string, images?: ImageContent[]): P... method _throwIfExtensionCommand (line 1144) | private _throwIfExtensionCommand(text: string): void { method sendCustomMessage (line 1170) | async sendCustomMessage( method sendUserMessage (line 1212) | async sendUserMessage( method clearQueue (line 1250) | clearQueue(): { steering: string[]; followUp: string[] } { method pendingMessageCount (line 1260) | get pendingMessageCount(): number { method getSteeringMessages (line 1265) | getSteeringMessages(): readonly string[] { method getFollowUpMessages (line 1270) | getFollowUpMessages(): readonly string[] { method resourceLoader (line 1274) | get resourceLoader(): ResourceLoader { method abort (line 1281) | async abort(): Promise { method newSession (line 1295) | async newSession(options?: { method _emitModelSelect (line 1351) | private async _emitModelSelect( method setModel (line 1371) | async setModel(model: Model): Promise { method cycleModel (line 1395) | async cycleModel(direction: "forward" | "backward" = "forward"): Promi... method _getScopedModelsWithApiKey (line 1402) | private async _getScopedModelsWithApiKey(): Promise { method abortCompaction (line 1720) | abortCompaction(): void { method abortBranchSummary (line 1728) | abortBranchSummary(): void { method _checkCompaction (line 1743) | private async _checkCompaction(assistantMessage: AssistantMessage, ski... method _runAutoCompaction (line 1825) | private async _runAutoCompaction(reason: "overflow" | "threshold", wil... method setAutoCompactionEnabled (line 1968) | setAutoCompactionEnabled(enabled: boolean): void { method autoCompactionEnabled (line 1973) | get autoCompactionEnabled(): boolean { method bindExtensions (line 1977) | async bindExtensions(bindings: ExtensionBindings): Promise { method extendResourcesFromExtensions (line 1998) | private async extendResourcesFromExtensions(reason: "startup" | "reloa... method buildExtensionResourcePaths (line 2023) | private buildExtensionResourcePaths(entries: Array<{ path: string; ext... method getExtensionSourceLabel (line 2042) | private getExtensionSourceLabel(extensionPath: string): string { method _applyExtensionBindings (line 2051) | private _applyExtensionBindings(runner: ExtensionRunner): void { method _refreshCurrentModelFromRegistry (line 2061) | private _refreshCurrentModelFromRegistry(): void { method _bindExtensionCore (line 2075) | private _bindExtensionCore(runner: ExtensionRunner): void { method _refreshToolRegistry (line 2196) | private _refreshToolRegistry(options?: { activeToolNames?: string[]; i... method _buildRuntime (line 2250) | private _buildRuntime(options: { method reload (line 2303) | async reload(): Promise { method _isRetryableError (line 2334) | private _isRetryableError(message: AssistantMessage): boolean { method _handleRetryableError (line 2352) | private async _handleRetryableError(message: AssistantMessage): Promis... method abortRetry (line 2431) | abortRetry(): void { method waitForRetry (line 2441) | private async waitForRetry(): Promise { method isRetrying (line 2448) | get isRetrying(): boolean { method autoRetryEnabled (line 2453) | get autoRetryEnabled(): boolean { method setAutoRetryEnabled (line 2460) | setAutoRetryEnabled(enabled: boolean): void { method executeBash (line 2476) | async executeBash( method recordBashResult (line 2509) | recordBashResult(command: string, result: BashResult, options?: { excl... method abortBash (line 2538) | abortBash(): void { method isBashRunning (line 2543) | get isBashRunning(): boolean { method hasPendingBashMessages (line 2548) | get hasPendingBashMessages(): boolean { method _flushPendingBashMessages (line 2556) | private _flushPendingBashMessages(): void { method switchSession (line 2580) | async switchSession(sessionPath: string): Promise { method setSessionName (line 2657) | setSessionName(name: string): void { method fork (line 2670) | async fork(entryId: string): Promise<{ selectedText: string; cancelled... method navigateTree (line 2740) | async navigateTree( method getUserMessagesForForking (line 2925) | getUserMessagesForForking(): Array<{ entryId: string; text: string }> { method _extractUserMessageText (line 2942) | private _extractUserMessageText(content: string | Array<{ type: string... method getSessionStats (line 2956) | getSessionStats(): SessionStats { method getContextUsage (line 3000) | getContextUsage(): ContextUsage | undefined { method exportToHtml (line 3051) | async exportToHtml(outputPath?: string): Promise { method exportToJsonl (line 3076) | exportToJsonl(outputPath?: string): string { method importFromJsonl (line 3112) | async importFromJsonl(inputPath: string): Promise { method getLastAssistantText (line 3141) | getLastAssistantText(): string | undefined { method hasExtensionHandlers (line 3172) | hasExtensionHandlers(eventType: string): boolean { method extensionRunner (line 3179) | get extensionRunner(): ExtensionRunner | undefined { FILE: packages/coding-agent/src/core/auth-storage.ts type ApiKeyCredential (line 22) | type ApiKeyCredential = { type OAuthCredential (line 27) | type OAuthCredential = { type AuthCredential (line 31) | type AuthCredential = ApiKeyCredential | OAuthCredential; type AuthStorageData (line 33) | type AuthStorageData = Record; type LockResult (line 35) | type LockResult = { type AuthStorageBackend (line 40) | interface AuthStorageBackend { class FileAuthStorageBackend (line 45) | class FileAuthStorageBackend implements AuthStorageBackend { method constructor (line 46) | constructor(private authPath: string = join(getAgentDir(), "auth.json"... method ensureParentDir (line 48) | private ensureParentDir(): void { method ensureFileExists (line 55) | private ensureFileExists(): void { method acquireLockSyncWithRetry (line 62) | private acquireLockSyncWithRetry(path: string): () => void { method withLock (line 89) | withLock(fn: (current: string | undefined) => LockResult): T { method withLockAsync (line 110) | async withLockAsync(fn: (current: string | undefined) => Promise(fn: (current: string | undefined) => LockResult): T { method withLockAsync (line 172) | async withLockAsync(fn: (current: string | undefined) => Promise string | undefined... method recordError (line 232) | private recordError(error: unknown): void { method parseStorageData (line 237) | private parseStorageData(content: string | undefined): AuthStorageData { method reload (line 247) | reload(): void { method persistProviderChange (line 262) | private persistProviderChange(provider: string, credential: AuthCreden... method get (line 286) | get(provider: string): AuthCredential | undefined { method set (line 293) | set(provider: string, credential: AuthCredential): void { method remove (line 301) | remove(provider: string): void { method list (line 309) | list(): string[] { method has (line 316) | has(provider: string): boolean { method hasAuth (line 324) | hasAuth(provider: string): boolean { method getAll (line 335) | getAll(): AuthStorageData { method drainErrors (line 339) | drainErrors(): Error[] { method login (line 348) | async login(providerId: OAuthProviderId, callbacks: OAuthLoginCallback... method logout (line 361) | logout(provider: string): void { method refreshOAuthTokenWithLock (line 369) | private async refreshOAuthTokenWithLock( method getApiKey (line 424) | async getApiKey(providerId: string): Promise { method getOAuthProviders (line 486) | getOAuthProviders() { FILE: packages/coding-agent/src/core/bash-executor.ts type BashExecutorOptions (line 22) | interface BashExecutorOptions { type BashResult (line 29) | interface BashResult { function executeBash (line 59) | function executeBash(command: string, options?: BashExecutorOptions): Pr... function executeBashWithOperations (line 67) | async function executeBashWithOperations( FILE: packages/coding-agent/src/core/compaction/branch-summarization.ts type BranchSummaryResult (line 33) | interface BranchSummaryResult { type BranchSummaryDetails (line 42) | interface BranchSummaryDetails { type BranchPreparation (line 49) | interface BranchPreparation { type CollectEntriesResult (line 58) | interface CollectEntriesResult { type GenerateBranchSummaryOptions (line 65) | interface GenerateBranchSummaryOptions { function collectEntriesForBranchSummary (line 96) | function collectEntriesForBranchSummary( function getMessageFromEntry (line 144) | function getMessageFromEntry(entry: SessionEntry): AgentMessage | undefi... function prepareBranchEntries (line 183) | function prepareBranchEntries(entries: SessionEntry[], tokenBudget: numb... constant BRANCH_SUMMARY_PREAMBLE (line 241) | const BRANCH_SUMMARY_PREAMBLE = `The user explored a different conversat... constant BRANCH_SUMMARY_PROMPT (line 246) | const BRANCH_SUMMARY_PROMPT = `Create a structured summary of this conve... function generateBranchSummary (line 281) | async function generateBranchSummary( FILE: packages/coding-agent/src/core/compaction/compaction.ts type CompactionDetails (line 33) | interface CompactionDetails { function extractFileOperations (line 41) | function extractFileOperations( function getMessageFromEntry (line 79) | function getMessageFromEntry(entry: SessionEntry): AgentMessage | undefi... type CompactionResult (line 96) | interface CompactionResult { type CompactionSettings (line 108) | interface CompactionSettings { constant DEFAULT_COMPACTION_SETTINGS (line 114) | const DEFAULT_COMPACTION_SETTINGS: CompactionSettings = { function calculateContextTokens (line 128) | function calculateContextTokens(usage: Usage): number { function getAssistantUsage (line 136) | function getAssistantUsage(msg: AgentMessage): Usage | undefined { function getLastAssistantUsage (line 149) | function getLastAssistantUsage(entries: SessionEntry[]): Usage | undefin... type ContextUsageEstimate (line 160) | interface ContextUsageEstimate { function getLastAssistantUsageInfo (line 167) | function getLastAssistantUsageInfo(messages: AgentMessage[]): { usage: U... function estimateContextTokens (line 179) | function estimateContextTokens(messages: AgentMessage[]): ContextUsageEs... function shouldCompact (line 212) | function shouldCompact(contextTokens: number, contextWindow: number, set... function estimateTokens (line 225) | function estimateTokens(message: AgentMessage): number { function findValidCutPoints (line 292) | function findValidCutPoints(entries: SessionEntry[], startIndex: number,... function findTurnStartIndex (line 337) | function findTurnStartIndex(entries: SessionEntry[], entryIndex: number,... type CutPointResult (line 354) | interface CutPointResult { function findCutPoint (line 379) | function findCutPoint( constant SUMMARIZATION_PROMPT (line 447) | const SUMMARIZATION_PROMPT = `The messages above are a conversation to s... constant UPDATE_SUMMARIZATION_PROMPT (line 480) | const UPDATE_SUMMARIZATION_PROMPT = `The messages above are NEW conversa... function generateSummary (line 523) | async function generateSummary( type CompactionPreparation (line 586) | interface CompactionPreparation { function prepareCompaction (line 604) | function prepareCompaction( constant TURN_PREFIX_SUMMARIZATION_PROMPT (line 690) | const TURN_PREFIX_SUMMARIZATION_PROMPT = `This is the PREFIX of a turn t... function compact (line 712) | async function compact( function generateTurnPrefixSummary (line 783) | async function generateTurnPrefixSummary( FILE: packages/coding-agent/src/core/compaction/utils.ts type FileOperations (line 12) | interface FileOperations { function createFileOps (line 18) | function createFileOps(): FileOperations { function extractFileOpsFromMessage (line 29) | function extractFileOpsFromMessage(message: AgentMessage, fileOps: FileO... function computeFileLists (line 62) | function computeFileLists(fileOps: FileOperations): { readFiles: string[... function formatFileOperations (line 72) | function formatFileOperations(readFiles: string[], modifiedFiles: string... constant TOOL_RESULT_MAX_CHARS (line 89) | const TOOL_RESULT_MAX_CHARS = 2000; function truncateForSummary (line 95) | function truncateForSummary(text: string, maxChars: number): string { function serializeConversation (line 109) | function serializeConversation(messages: Message[]): string { constant SUMMARIZATION_SYSTEM_PROMPT (line 168) | const SUMMARIZATION_SYSTEM_PROMPT = `You are a context summarization ass... FILE: packages/coding-agent/src/core/defaults.ts constant DEFAULT_THINKING_LEVEL (line 3) | const DEFAULT_THINKING_LEVEL: ThinkingLevel = "medium"; FILE: packages/coding-agent/src/core/diagnostics.ts type ResourceCollision (line 1) | interface ResourceCollision { type ResourceDiagnostic (line 10) | interface ResourceDiagnostic { FILE: packages/coding-agent/src/core/event-bus.ts type EventBus (line 3) | interface EventBus { type EventBusController (line 8) | interface EventBusController extends EventBus { function createEventBus (line 12) | function createEventBus(): EventBusController { FILE: packages/coding-agent/src/core/exec.ts type ExecOptions (line 11) | interface ExecOptions { type ExecResult (line 23) | interface ExecResult { function execCommand (line 34) | async function execCommand( FILE: packages/coding-agent/src/core/export-html/ansi-to-html.ts constant ANSI_COLORS (line 15) | const ANSI_COLORS = [ function color256ToHex (line 37) | function color256ToHex(index: number): string { function escapeHtml (line 63) | function escapeHtml(text: string): string { type TextStyle (line 72) | interface TextStyle { function createEmptyStyle (line 81) | function createEmptyStyle(): TextStyle { function styleToInlineCSS (line 92) | function styleToInlineCSS(style: TextStyle): string { function hasStyle (line 103) | function hasStyle(style: TextStyle): boolean { function applySgrCode (line 110) | function applySgrCode(params: number[], style: TextStyle): void { constant ANSI_REGEX (line 193) | const ANSI_REGEX = /\x1b\[([\d;]*)m/g; function ansiToHtml (line 198) | function ansiToHtml(text: string): string { function ansiLinesToHtml (line 256) | function ansiLinesToHtml(lines: string[]): string { FILE: packages/coding-agent/src/core/export-html/index.ts type ToolHtmlRenderer (line 14) | interface ToolHtmlRenderer { type RenderedToolHtml (line 27) | interface RenderedToolHtml { type ExportOptions (line 33) | interface ExportOptions { function parseColor (line 41) | function parseColor(color: string): { r: number; g: number; b: number } ... function getLuminance (line 62) | function getLuminance(r: number, g: number, b: number): number { function adjustBrightness (line 71) | function adjustBrightness(color: string, factor: number): string { function deriveExportColors (line 79) | function deriveExportColors(baseColor: string): { pageBg: string; cardBg... function generateThemeVars (line 109) | function generateThemeVars(themeName?: string): string { type SessionData (line 128) | interface SessionData { function generateHtml (line 141) | function generateHtml(sessionData: SessionData, themeName?: string): str... constant BUILTIN_TOOLS (line 175) | const BUILTIN_TOOLS = new Set(["bash", "read", "write", "edit", "ls", "f... function preRenderCustomTools (line 180) | function preRenderCustomTools( function exportSessionToHtml (line 227) | async function exportSessionToHtml( function exportFromFile (line 279) | async function exportFromFile(inputPath: string, options?: ExportOptions... FILE: packages/coding-agent/src/core/export-html/template.js function buildTree (line 73) | function buildTree() { function buildActivePathIds (line 116) | function buildActivePathIds(targetId) { function getPath (line 133) | function getPath(targetId) { function findNewestLeaf (line 155) | function findNewestLeaf(nodeId) { function flattenTree (line 183) | function flattenTree(roots, activePathIds) { function buildTreePrefix (line 258) | function buildTreePrefix(flatNode) { function hasTextContent (line 295) | function hasTextContent(content) { function extractContent (line 305) | function extractContent(content) { function getSearchableText (line 316) | function getSearchableText(entry, label) { function filterNodes (line 352) | function filterNodes(flatNodes, currentLeafId) { function recalculateVisualStructure (line 416) | function recalculateVisualStructure(filteredNodes, allFlatNodes) { function shortenPath (line 542) | function shortenPath(p) { function formatToolCall (line 555) | function formatToolCall(name, args) { function escapeHtml (line 591) | function escapeHtml(text) { function truncate (line 600) | function truncate(s, maxLen = 100) { function getTreeNodeDisplayHtml (line 608) | function getTreeNodeDisplayHtml(entry, label) { function renderTree (line 672) | function renderTree() { function forceTreeRerender (line 749) | function forceTreeRerender() { function formatTokens (line 758) | function formatTokens(count) { function formatTimestamp (line 765) | function formatTimestamp(ts) { function replaceTabs (line 771) | function replaceTabs(text) { function str (line 776) | function str(value) { function getLanguageFromPath (line 782) | function getLanguageFromPath(filePath) { function findToolResult (line 796) | function findToolResult(toolCallId) { function formatExpandableOutput (line 807) | function formatExpandableOutput(text, maxLines, lang) { function renderToolCall (line 863) | function renderToolCall(call) { function buildShareUrl (line 1038) | function buildShareUrl(entryId) { function copyToClipboard (line 1066) | async function copyToClipboard(text, button) { function renderCopyLinkButton (line 1107) | function renderCopyLinkButton(entryId) { function renderEntry (line 1116) | function renderEntry(entry) { function computeStats (line 1229) | function computeStats(entryList) { function renderHeader (line 1272) | function renderHeader() { function renderEntryToNode (line 1366) | function renderEntryToNode(entry) { function navigateTo (line 1387) | function navigateTo(targetId, scrollMode = 'target', scrollToEntryId = n... function escapeHtmlTags (line 1446) | function escapeHtmlTags(text) { method code (line 1456) | code(token) { method text (line 1477) | text(token) { method codespan (line 1481) | codespan(token) { function safeMarkedParse (line 1488) | function safeMarkedParse(text) { function isMobileLayout (line 1517) | function isMobileLayout() { function getSidebarBounds (line 1521) | function getSidebarBounds() { function clampSidebarWidth (line 1532) | function clampSidebarWidth(width) { function applySidebarWidth (line 1537) | function applySidebarWidth(width) { function loadSidebarWidth (line 1541) | function loadSidebarWidth() { function saveSidebarWidth (line 1552) | function saveSidebarWidth(width) { function setupSidebarResize (line 1560) | function setupSidebarResize() { FILE: packages/coding-agent/src/core/export-html/tool-renderer.ts type ToolHtmlRendererDeps (line 13) | interface ToolHtmlRendererDeps { type ToolHtmlRenderer (line 22) | interface ToolHtmlRenderer { function createToolHtmlRenderer (line 40) | function createToolHtmlRenderer(deps: ToolHtmlRendererDeps): ToolHtmlRen... FILE: packages/coding-agent/src/core/extensions/loader.ts constant VIRTUAL_MODULES (line 42) | const VIRTUAL_MODULES: Record = { function getAliases (line 58) | function getAliases(): Record { constant UNICODE_SPACES (line 88) | const UNICODE_SPACES = /[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g; function normalizeUnicodeSpaces (line 90) | function normalizeUnicodeSpaces(str: string): string { function expandPath (line 94) | function expandPath(p: string): string { function resolvePath (line 105) | function resolvePath(extPath: string, cwd: string): string { type HandlerFn (line 113) | type HandlerFn = (...args: unknown[]) => Promise; function createExtensionRuntime (line 119) | function createExtensionRuntime(): ExtensionRuntime { function createExtensionAPI (line 160) | function createExtensionAPI( function loadExtensionModule (line 287) | async function loadExtensionModule(extensionPath: string) { function createExtension (line 304) | function createExtension(extensionPath: string, resolvedPath: string): E... function loadExtension (line 317) | async function loadExtension( function loadExtensionFromFactory (line 345) | async function loadExtensionFromFactory( function loadExtensions (line 361) | async function loadExtensions(paths: string[], cwd: string, eventBus?: E... type PiManifest (line 387) | interface PiManifest { function readPiManifest (line 394) | function readPiManifest(packageJsonPath: string): PiManifest | null { function isExtensionFile (line 407) | function isExtensionFile(name: string): boolean { function resolveExtensionEntries (line 420) | function resolveExtensionEntries(dir: string): string[] | null { function discoverExtensionsInDir (line 462) | function discoverExtensionsInDir(dir: string): string[] { function discoverAndLoadExtensions (line 499) | async function discoverAndLoadExtensions( FILE: packages/coding-agent/src/core/extensions/runner.ts constant RESERVED_KEYBINDINGS_FOR_EXTENSION_CONFLICTS (line 56) | const RESERVED_KEYBINDINGS_FOR_EXTENSION_CONFLICTS = [ type BuiltInKeyBindings (line 76) | type BuiltInKeyBindings = Partial = TEvent extends {... type ExtensionErrorListener (line 138) | type ExtensionErrorListener = (error: ExtensionError) => void; type NewSessionHandler (line 140) | type NewSessionHandler = (options?: { type ForkHandler (line 145) | type ForkHandler = (entryId: string) => Promise<{ cancelled: boolean }>; type NavigateTreeHandler (line 147) | type NavigateTreeHandler = ( type SwitchSessionHandler (line 152) | type SwitchSessionHandler = (sessionPath: string) => Promise<{ cancelled... type ReloadHandler (line 154) | type ReloadHandler = () => Promise; type ShutdownHandler (line 156) | type ShutdownHandler = () => void; function emitSessionShutdownEvent (line 162) | async function emitSessionShutdownEvent(extensionRunner: ExtensionRunner... method theme (line 190) | get theme() { class ExtensionRunner (line 200) | class ExtensionRunner { method constructor (line 225) | constructor( method bindCore (line 240) | bindCore( method bindCommandContext (line 311) | bindCommandContext(actions?: ExtensionCommandContextActions): void { method setUIContext (line 330) | setUIContext(uiContext?: ExtensionUIContext): void { method getUIContext (line 334) | getUIContext(): ExtensionUIContext { method hasUI (line 338) | hasUI(): boolean { method getExtensionPaths (line 342) | getExtensionPaths(): string[] { method getAllRegisteredTools (line 347) | getAllRegisteredTools(): RegisteredTool[] { method getToolDefinition (line 360) | getToolDefinition(toolName: string): RegisteredTool["definition"] | un... method getFlags (line 370) | getFlags(): Map { method setFlagValue (line 382) | setFlagValue(name: string, value: boolean | string): void { method getFlagValues (line 386) | getFlagValues(): Map { method getShortcuts (line 390) | getShortcuts(resolvedKeybindings: KeybindingsConfig): Map void { method emitError (line 444) | emitError(error: ExtensionError): void { method hasHandlers (line 450) | hasHandlers(eventType: string): boolean { method getMessageRenderer (line 460) | getMessageRenderer(customType: string): MessageRenderer | undefined { method getRegisteredCommands (line 470) | getRegisteredCommands(reserved?: Set): RegisteredCommand[] { method getCommandDiagnostics (line 503) | getCommandDiagnostics(): ResourceDiagnostic[] { method getRegisteredCommandsWithPaths (line 507) | getRegisteredCommandsWithPaths(): Array<{ command: RegisteredCommand; ... method getCommand (line 517) | getCommand(name: string): RegisteredCommand | undefined { method shutdown (line 531) | shutdown(): void { method createContext (line 539) | createContext(): ExtensionContext { method createCommandContext (line 560) | createCommandContext(): ExtensionCommandContext { method isSessionBeforeEvent (line 572) | private isSessionBeforeEvent(event: RunnerEmitEvent): event is Session... method emit (line 581) | async emit(event: TEvent): Promise { method emitBeforeProviderRequest (line 749) | async emitBeforeProviderRequest(payload: unknown): Promise { method emitBeforeAgentStart (line 783) | async emitBeforeAgentStart( method emitResourcesDiscover (line 840) | async emitResourcesDiscover( method emitInput (line 889) | async emitInput(text: string, images: ImageContent[] | undefined, sour... FILE: packages/coding-agent/src/core/extensions/types.ts type ExtensionUIDialogOptions (line 84) | interface ExtensionUIDialogOptions { type WidgetPlacement (line 92) | type WidgetPlacement = "aboveEditor" | "belowEditor"; type ExtensionWidgetOptions (line 95) | interface ExtensionWidgetOptions { type TerminalInputHandler (line 101) | type TerminalInputHandler = (data: string) => { consume?: boolean; data?... type ExtensionUIContext (line 107) | interface ExtensionUIContext { type ContextUsage (line 244) | interface ContextUsage { type CompactOptions (line 252) | interface CompactOptions { type ExtensionContext (line 261) | interface ExtensionContext { type ExtensionCommandContext (line 294) | interface ExtensionCommandContext extends ExtensionContext { type ToolRenderResultOptions (line 325) | interface ToolRenderResultOptions { type ToolDefinition (line 335) | interface ToolDefinition = ( type RegisteredCommand (line 932) | interface RegisteredCommand { type ExtensionHandler (line 945) | type ExtensionHandler = (event: E, ctx: ExtensionConte... type ExtensionAPI (line 950) | interface ExtensionAPI { type ProviderConfig (line 1183) | interface ProviderConfig { type ProviderModelConfig (line 1214) | interface ProviderModelConfig { type ExtensionFactory (line 1238) | type ExtensionFactory = (pi: ExtensionAPI) => void | Promise; type RegisteredTool (line 1244) | interface RegisteredTool { type ExtensionFlag (line 1249) | interface ExtensionFlag { type ExtensionShortcut (line 1257) | interface ExtensionShortcut { type HandlerFn (line 1264) | type HandlerFn = (...args: unknown[]) => Promise; type SendMessageHandler (line 1266) | type SendMessageHandler = ( type SendUserMessageHandler (line 1271) | type SendUserMessageHandler = ( type AppendEntryHandler (line 1276) | type AppendEntryHandler = (customType: string, data?: T) =>... type SetSessionNameHandler (line 1278) | type SetSessionNameHandler = (name: string) => void; type GetSessionNameHandler (line 1280) | type GetSessionNameHandler = () => string | undefined; type GetActiveToolsHandler (line 1282) | type GetActiveToolsHandler = () => string[]; type ToolInfo (line 1285) | type ToolInfo = Pick ToolInfo[]; type GetCommandsHandler (line 1289) | type GetCommandsHandler = () => SlashCommandInfo[]; type SetActiveToolsHandler (line 1291) | type SetActiveToolsHandler = (toolNames: string[]) => void; type RefreshToolsHandler (line 1293) | type RefreshToolsHandler = () => void; type SetModelHandler (line 1295) | type SetModelHandler = (model: Model) => Promise; type GetThinkingLevelHandler (line 1297) | type GetThinkingLevelHandler = () => ThinkingLevel; type SetThinkingLevelHandler (line 1299) | type SetThinkingLevelHandler = (level: ThinkingLevel) => void; type SetLabelHandler (line 1301) | type SetLabelHandler = (entryId: string, label: string | undefined) => v... type ExtensionRuntimeState (line 1307) | interface ExtensionRuntimeState { type ExtensionActions (line 1325) | interface ExtensionActions { type ExtensionContextActions (line 1346) | interface ExtensionContextActions { type ExtensionCommandContextActions (line 1361) | interface ExtensionCommandContextActions { type ExtensionRuntime (line 1380) | interface ExtensionRuntime extends ExtensionRuntimeState, ExtensionActio... type Extension (line 1383) | interface Extension { type LoadExtensionsResult (line 1395) | interface LoadExtensionsResult { type ExtensionError (line 1406) | interface ExtensionError { FILE: packages/coding-agent/src/core/extensions/wrapper.ts function wrapRegisteredTool (line 16) | function wrapRegisteredTool(registeredTool: RegisteredTool, runner: Exte... function wrapRegisteredTools (line 32) | function wrapRegisteredTools(registeredTools: RegisteredTool[], runner: ... FILE: packages/coding-agent/src/core/footer-data-provider.ts type GitPaths (line 5) | type GitPaths = { function findGitPaths (line 15) | function findGitPaths(): GitPaths | null { function resolveBranchWithGitSync (line 50) | function resolveBranchWithGitSync(repoDir: string): string | null { function resolveBranchWithGitAsync (line 61) | function resolveBranchWithGitAsync(repoDir: string): Promise { method onBranchChange (line 120) | onBranchChange(callback: () => void): () => void { method setExtensionStatus (line 126) | setExtensionStatus(key: string, text: string | undefined): void { method clearExtensionStatuses (line 135) | clearExtensionStatuses(): void { method getAvailableProviderCount (line 140) | getAvailableProviderCount(): number { method setAvailableProviderCount (line 145) | setAvailableProviderCount(count: number): void { method dispose (line 150) | dispose(): void { method notifyBranchChange (line 167) | private notifyBranchChange(): void { method scheduleRefresh (line 171) | private scheduleRefresh(): void { method refreshGitBranchAsync (line 182) | private async refreshGitBranchAsync(): Promise { method resolveGitBranchSync (line 208) | private resolveGitBranchSync(): string | null { method resolveGitBranchAsync (line 222) | private async resolveGitBranchAsync(): Promise { method setupGitWatcher (line 238) | private setupGitWatcher(): void { type ReadonlyFooterDataProvider (line 270) | type ReadonlyFooterDataProvider = Pick< FILE: packages/coding-agent/src/core/keybindings.ts type AppKeybindings (line 13) | interface AppKeybindings { type AppKeybinding (line 42) | type AppKeybinding = keyof AppKeybindings; type Keybindings (line 45) | interface Keybindings extends AppKeybindings {} constant KEYBINDINGS (line 48) | const KEYBINDINGS = { constant KEYBINDING_NAME_MIGRATIONS (line 126) | const KEYBINDING_NAME_MIGRATIONS = { function isRecord (line 186) | function isRecord(value: unknown): value is Record { function isLegacyKeybindingName (line 190) | function isLegacyKeybindingName(key: string): key is keyof typeof KEYBIN... function toKeybindingsConfig (line 194) | function toKeybindingsConfig(value: unknown): KeybindingsConfig { function migrateKeybindingNames (line 210) | function migrateKeybindingNames(rawConfig: Record): { function orderKeybindingsConfig (line 232) | function orderKeybindingsConfig(config: Record): Record... function loadRawConfig (line 250) | function loadRawConfig(path: string): Record | undefined { function migrateKeybindingsConfigFile (line 260) | function migrateKeybindingsConfigFile(agentDir: string = getAgentDir()):... class KeybindingsManager (line 272) | class KeybindingsManager extends TuiKeybindingsManager { method constructor (line 275) | constructor(userBindings: KeybindingsConfig = {}, configPath?: string) { method create (line 280) | static create(agentDir: string = getAgentDir()): KeybindingsManager { method reload (line 286) | reload(): void { method getEffectiveConfig (line 291) | getEffectiveConfig(): KeybindingsConfig { method loadFromFile (line 295) | private static loadFromFile(path: string): KeybindingsConfig { FILE: packages/coding-agent/src/core/messages.ts constant COMPACTION_SUMMARY_PREFIX (line 11) | const COMPACTION_SUMMARY_PREFIX = `The conversation history before this ... constant COMPACTION_SUMMARY_SUFFIX (line 16) | const COMPACTION_SUMMARY_SUFFIX = ` constant BRANCH_SUMMARY_PREFIX (line 19) | const BRANCH_SUMMARY_PREFIX = `The following is a summary of a branch th... constant BRANCH_SUMMARY_SUFFIX (line 24) | const BRANCH_SUMMARY_SUFFIX = ``; type BashExecutionMessage (line 29) | interface BashExecutionMessage { type CustomMessage (line 46) | interface CustomMessage { type BranchSummaryMessage (line 55) | interface BranchSummaryMessage { type CompactionSummaryMessage (line 62) | interface CompactionSummaryMessage { type CustomAgentMessages (line 71) | interface CustomAgentMessages { function bashExecutionToText (line 82) | function bashExecutionToText(msg: BashExecutionMessage): string { function createBranchSummaryMessage (line 100) | function createBranchSummaryMessage(summary: string, fromId: string, tim... function createCompactionSummaryMessage (line 109) | function createCompactionSummaryMessage( function createCustomMessage (line 123) | function createCustomMessage( function convertToLlm (line 148) | function convertToLlm(messages: AgentMessage[]): Message[] { FILE: packages/coding-agent/src/core/model-registry.ts type ModelOverride (line 125) | type ModelOverride = Static; type ModelsConfig (line 144) | type ModelsConfig = Static; type ProviderOverride (line 147) | interface ProviderOverride { type CustomModelsResult (line 155) | interface CustomModelsResult { function emptyCustomModelsResult (line 164) | function emptyCustomModelsResult(error?: string): CustomModelsResult { function mergeCompat (line 168) | function mergeCompat( function applyModelOverride (line 203) | function applyModelOverride(model: Model, override: ModelOverride):... class ModelRegistry (line 241) | class ModelRegistry { method constructor (line 247) | constructor( method refresh (line 267) | refresh(): void { method getError (line 285) | getError(): string | undefined { method loadModels (line 289) | private loadModels(): void { method loadBuiltInModels (line 318) | private loadBuiltInModels( method mergeCustomModels (line 353) | private mergeCustomModels(builtInModels: Model[], customModels: M... method loadCustomModels (line 366) | private loadCustomModels(modelsJsonPath: string): CustomModelsResult { method validateConfig (line 422) | private validateConfig(config: ModelsConfig): void { method parseModels (line 465) | private parseModels(config: ModelsConfig): Model[] { method getAll (line 523) | getAll(): Model[] { method getAvailable (line 531) | getAvailable(): Model[] { method find (line 538) | find(provider: string, modelId: string): Model | undefined { method getApiKey (line 545) | async getApiKey(model: Model): Promise { method getApiKeyForProvider (line 552) | async getApiKeyForProvider(provider: string): Promise): boolean { method registerProvider (line 571) | registerProvider(providerName: string, config: ProviderConfigInput): v... method unregisterProvider (line 586) | unregisterProvider(providerName: string): void { method validateProviderConfig (line 593) | private validateProviderConfig(providerName: string, config: ProviderC... method applyProviderConfig (line 617) | private applyProviderConfig(providerName: string, config: ProviderConf... type ProviderConfigInput (line 707) | interface ProviderConfigInput { FILE: packages/coding-agent/src/core/model-resolver.ts type ScopedModel (line 40) | interface ScopedModel { function isAlias (line 50) | function isAlias(id: string): boolean { function findExactModelReferenceMatch (line 64) | function findExactModelReferenceMatch( function tryMatchModel (line 112) | function tryMatchModel(modelPattern: string, availableModels: Model... type ParsedModelResult (line 144) | interface ParsedModelResult { function buildFallbackModel (line 151) | function buildFallbackModel(provider: string, modelId: string, available... function parseModelPattern (line 180) | function parseModelPattern( function resolveModelScope (line 246) | async function resolveModelScope(patterns: string[], modelRegistry: Mode... type ResolveCliModelResult (line 306) | interface ResolveCliModelResult { function resolveCliModel (line 328) | function resolveCliModel(options: { type InitialModelResult (line 460) | interface InitialModelResult { function findInitialModel (line 474) | async function findInitialModel(options: { function restoreModelFromSession (line 559) | async function restoreModelFromSession( FILE: packages/coding-agent/src/core/package-manager.ts constant NETWORK_TIMEOUT_MS (line 12) | const NETWORK_TIMEOUT_MS = 10000; constant UPDATE_CHECK_CONCURRENCY (line 13) | const UPDATE_CHECK_CONCURRENCY = 4; function isOfflineModeEnabled (line 15) | function isOfflineModeEnabled(): boolean { type PathMetadata (line 21) | interface PathMetadata { type ResolvedResource (line 28) | interface ResolvedResource { type ResolvedPaths (line 34) | interface ResolvedPaths { type MissingSourceAction (line 41) | type MissingSourceAction = "install" | "skip" | "error"; type ProgressEvent (line 43) | interface ProgressEvent { type ProgressCallback (line 50) | type ProgressCallback = (event: ProgressEvent) => void; type PackageUpdate (line 52) | interface PackageUpdate { type PackageManager (line 59) | interface PackageManager { type PackageManagerOptions (line 74) | interface PackageManagerOptions { type SourceScope (line 80) | type SourceScope = "user" | "project" | "temporary"; type NpmSource (line 82) | type NpmSource = { type LocalSource (line 89) | type LocalSource = { type ParsedSource (line 94) | type ParsedSource = NpmSource | GitSource | LocalSource; type PiManifest (line 96) | interface PiManifest { type ResourceAccumulator (line 103) | interface ResourceAccumulator { type PackageFilter (line 110) | interface PackageFilter { type ResourceType (line 117) | type ResourceType = "extensions" | "skills" | "prompts" | "themes"; constant RESOURCE_TYPES (line 119) | const RESOURCE_TYPES: ResourceType[] = ["extensions", "skills", "prompts... constant FILE_PATTERNS (line 121) | const FILE_PATTERNS: Record = { constant IGNORE_FILE_NAMES (line 128) | const IGNORE_FILE_NAMES = [".gitignore", ".ignore", ".fdignore"]; type IgnoreMatcher (line 130) | type IgnoreMatcher = ReturnType; function toPosixPath (line 132) | function toPosixPath(p: string): string { function getHomeDir (line 136) | function getHomeDir(): string { function prefixIgnorePattern (line 140) | function prefixIgnorePattern(line: string, prefix: string): string | null { function addIgnoreRules (line 163) | function addIgnoreRules(ig: IgnoreMatcher, dir: string, rootDir: string)... function isPattern (line 183) | function isPattern(s: string): boolean { function splitPatterns (line 187) | function splitPatterns(entries: string[]): { plain: string[]; patterns: ... function collectFiles (line 200) | function collectFiles( function collectSkillEntries (line 251) | function collectSkillEntries( function collectAutoSkillEntries (line 305) | function collectAutoSkillEntries(dir: string, includeRootFiles = true): ... function findGitRepoRoot (line 309) | function findGitRepoRoot(startDir: string): string | null { function collectAncestorAgentsSkillDirs (line 323) | function collectAncestorAgentsSkillDirs(startDir: string): string[] { function collectAutoPromptEntries (line 344) | function collectAutoPromptEntries(dir: string): string[] { function collectAutoThemeEntries (line 381) | function collectAutoThemeEntries(dir: string): string[] { function readPiManifestFile (line 418) | function readPiManifestFile(packageJsonPath: string): PiManifest | null { function resolveExtensionEntries (line 428) | function resolveExtensionEntries(dir: string): string[] | null { function collectAutoExtensionEntries (line 458) | function collectAutoExtensionEntries(dir: string): string[] { function collectResourceFiles (line 516) | function collectResourceFiles(dir: string, resourceType: ResourceType): ... function matchesAnyPattern (line 526) | function matchesAnyPattern(filePath: string, patterns: string[], baseDir... function normalizeExactPattern (line 554) | function normalizeExactPattern(pattern: string): string { function matchesAnyExactPattern (line 559) | function matchesAnyExactPattern(filePath: string, patterns: string[], ba... function getOverridePatterns (line 579) | function getOverridePatterns(entries: string[]): string[] { function isEnabledByOverrides (line 583) | function isEnabledByOverrides(filePath: string, patterns: string[], base... function applyPatterns (line 610) | function applyPatterns(allPaths: string[], patterns: string[], baseDir: ... class DefaultPackageManager (line 658) | class DefaultPackageManager implements PackageManager { method constructor (line 666) | constructor(options: PackageManagerOptions) { method setProgressCallback (line 672) | setProgressCallback(callback: ProgressCallback | undefined): void { method addSourceToSettings (line 676) | addSourceToSettings(source: string, options?: { local?: boolean }): bo... method removeSourceFromSettings (line 695) | removeSourceFromSettings(source: string, options?: { local?: boolean }... method getInstalledPath (line 713) | getInstalledPath(source: string, scope: "user" | "project"): string | ... method emitProgress (line 731) | private emitProgress(event: ProgressEvent): void { method withProgress (line 735) | private async withProgress( method resolve (line 752) | async resolve(onMissing?: (source: string) => Promise { method updateSourceForScope (line 876) | private async updateSourceForScope(source: string, scope: SourceScope)... method checkForAvailableUpdates (line 897) | async checkForAvailableUpdates(): Promise { method resolvePackageSources (line 962) | private async resolvePackageSources( method resolveLocalExtensionSource (line 1022) | private resolveLocalExtensionSource( method installParsedSource (line 1053) | private async installParsedSource(parsed: ParsedSource, scope: SourceS... method getPackageSourceString (line 1064) | private getPackageSourceString(pkg: PackageSource): string { method getSourceMatchKeyForInput (line 1068) | private getSourceMatchKeyForInput(source: string): string { method getSourceMatchKeyForSettings (line 1079) | private getSourceMatchKeyForSettings(source: string, scope: SourceScop... method packageSourcesMatch (line 1091) | private packageSourcesMatch(existing: PackageSource, inputSource: stri... method normalizePackageSourceForSettings (line 1097) | private normalizePackageSourceForSettings(source: string, scope: Sourc... method parseSource (line 1108) | private parseSource(source: string): ParsedSource { method installedNpmMatchesPinnedVersion (line 1141) | private async installedNpmMatchesPinnedVersion(source: NpmSource, inst... method npmHasAvailableUpdate (line 1155) | private async npmHasAvailableUpdate(source: NpmSource, installedPath: ... method getInstalledNpmVersion (line 1173) | private getInstalledNpmVersion(installedPath: string): string | undefi... method getLatestNpmVersion (line 1185) | private async getLatestNpmVersion(packageName: string): Promise { method gitHasAvailableUpdate (line 1194) | private async gitHasAvailableUpdate(installedPath: string): Promise { method getGitUpstreamRef (line 1229) | private async getGitUpstreamRef(installedPath: string): Promise(tasks: Array<() => Promise>, li... method getPackageIdentity (line 1286) | private getPackageIdentity(source: string, scope?: SourceScope): string { method dedupePackages (line 1306) | private dedupePackages( method parseNpmSpec (line 1329) | private parseNpmSpec(spec: string): { name: string; version?: string } { method getNpmCommand (line 1339) | private getNpmCommand(): { command: string; args: string[] } { method runNpmCommand (line 1351) | private async runNpmCommand(args: string[], options?: { cwd?: string }... method runNpmCommandSync (line 1356) | private runNpmCommandSync(args: string[]): string { method installNpm (line 1361) | private async installNpm(source: NpmSource, scope: SourceScope, tempor... method uninstallNpm (line 1371) | private async uninstallNpm(source: NpmSource, scope: SourceScope): Pro... method installGit (line 1383) | private async installGit(source: GitSource, scope: SourceScope): Promi... method updateGit (line 1404) | private async updateGit(source: GitSource, scope: SourceScope): Promis... method refreshTemporaryGitSource (line 1431) | private async refreshTemporaryGitSource(source: GitSource, sourceStr: ... method removeGit (line 1444) | private async removeGit(source: GitSource, scope: SourceScope): Promis... method pruneEmptyGitParents (line 1451) | private pruneEmptyGitParents(targetDir: string, installRoot: string | ... method ensureNpmProject (line 1473) | private ensureNpmProject(installRoot: string): void { method ensureGitIgnore (line 1485) | private ensureGitIgnore(dir: string): void { method getNpmInstallRoot (line 1495) | private getNpmInstallRoot(scope: SourceScope, temporary: boolean): str... method getGlobalNpmRoot (line 1505) | private getGlobalNpmRoot(): string { method getNpmInstallPath (line 1517) | private getNpmInstallPath(source: NpmSource, scope: SourceScope): stri... method getGitInstallPath (line 1527) | private getGitInstallPath(source: GitSource, scope: SourceScope): stri... method getGitInstallRoot (line 1537) | private getGitInstallRoot(scope: SourceScope): string | undefined { method getTemporaryDir (line 1547) | private getTemporaryDir(prefix: string, suffix?: string): string { method getBaseDirForScope (line 1555) | private getBaseDirForScope(scope: SourceScope): string { method resolvePath (line 1565) | private resolvePath(input: string): string { method resolvePathFromBase (line 1573) | private resolvePathFromBase(input: string, baseDir: string): string { method collectPackageResources (line 1581) | private collectPackageResources( method collectDefaultResources (line 1630) | private collectDefaultResources( method applyPackageFilter (line 1652) | private applyPackageFilter( method collectManifestFiles (line 1683) | private collectManifestFiles( method readPiManifest (line 1705) | private readPiManifest(packageRoot: string): PiManifest | null { method addManifestEntries (line 1720) | private addManifestEntries( method collectFilesFromManifestEntries (line 1740) | private collectFilesFromManifestEntries(entries: string[], root: strin... method resolveLocalEntries (line 1746) | private resolveLocalEntries( method addAutoDiscoveredResources (line 1769) | private addAutoDiscoveredResources( method collectFilesFromPaths (line 1895) | private collectFilesFromPaths(paths: string[], resourceType: ResourceT... method getTargetMap (line 1914) | private getTargetMap( method addResource (line 1932) | private addResource( method createAccumulator (line 1944) | private createAccumulator(): ResourceAccumulator { method toResolvedPaths (line 1953) | private toResolvedPaths(accumulator: ResourceAccumulator): ResolvedPat... method runCommandCapture (line 1970) | private runCommandCapture( method runCommand (line 2018) | private runCommand(command: string, args: string[], options?: { cwd?: ... method runCommandSync (line 2036) | private runCommandSync(command: string, args: string[]): string { FILE: packages/coding-agent/src/core/prompt-templates.ts type PromptTemplate (line 10) | interface PromptTemplate { function parseCommandArgs (line 22) | function parseCommandArgs(argsString: string): string[] { function substituteArgs (line 66) | function substituteArgs(content: string, args: string[]): string { function loadTemplateFromFile (line 102) | function loadTemplateFromFile(filePath: string, source: string, sourceLa... function loadTemplatesFromDir (line 138) | function loadTemplatesFromDir(dir: string, source: string, sourceLabel: ... type LoadPromptTemplatesOptions (line 177) | interface LoadPromptTemplatesOptions { function normalizePath (line 188) | function normalizePath(input: string): string { function resolvePromptPath (line 196) | function resolvePromptPath(p: string, cwd: string): string { function buildPathSourceLabel (line 201) | function buildPathSourceLabel(p: string): string { function loadPromptTemplates (line 212) | function loadPromptTemplates(options: LoadPromptTemplatesOptions = {}): ... function expandPromptTemplate (line 285) | function expandPromptTemplate(text: string, templates: PromptTemplate[])... FILE: packages/coding-agent/src/core/resolve-config-value.ts function resolveConfigValue (line 17) | function resolveConfigValue(config: string): string | undefined { function executeWithConfiguredShell (line 25) | function executeWithConfiguredShell(command: string): { executed: boolea... function executeWithDefaultShell (line 55) | function executeWithDefaultShell(command: string): string | undefined { function executeCommand (line 68) | function executeCommand(commandConfig: string): string | undefined { function resolveHeaders (line 89) | function resolveHeaders(headers: Record | undefined): Re... function clearConfigValueCache (line 102) | function clearConfigValueCache(): void { FILE: packages/coding-agent/src/core/resource-loader.ts type ResourceExtensionPaths (line 21) | interface ResourceExtensionPaths { type ResourceLoader (line 27) | interface ResourceLoader { function resolvePromptInput (line 40) | function resolvePromptInput(input: string | undefined, description: stri... function loadContextFileFromDir (line 57) | function loadContextFileFromDir(dir: string): { path: string; content: s... function loadProjectContextFiles (line 75) | function loadProjectContextFiles( type DefaultResourceLoaderOptions (line 114) | interface DefaultResourceLoaderOptions { class DefaultResourceLoader (line 150) | class DefaultResourceLoader implements ResourceLoader { method constructor (line 201) | constructor(options: DefaultResourceLoaderOptions) { method getExtensions (line 245) | getExtensions(): LoadExtensionsResult { method getSkills (line 249) | getSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] } { method getPrompts (line 253) | getPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagno... method getThemes (line 257) | getThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] } { method getAgentsFiles (line 261) | getAgentsFiles(): { agentsFiles: Array<{ path: string; content: string... method getSystemPrompt (line 265) | getSystemPrompt(): string | undefined { method getAppendSystemPrompt (line 269) | getAppendSystemPrompt(): string[] { method getPathMetadata (line 273) | getPathMetadata(): Map { method extendResources (line 277) | extendResources(paths: ResourceExtensionPaths): void { method reload (line 307) | async reload(): Promise { method normalizeExtensionPaths (line 438) | private normalizeExtensionPaths( method updateSkillsFromPaths (line 447) | private updateSkillsFromPaths( method updatePromptsFromPaths (line 474) | private updatePromptsFromPaths( method updateThemesFromPaths (line 502) | private updateThemesFromPaths( method applyExtensionMetadata (line 526) | private applyExtensionMetadata( method mergePaths (line 560) | private mergePaths(primary: string[], additional: string[]): string[] { method resolveResourcePath (line 574) | private resolveResourcePath(p: string): string { method loadThemes (line 587) | private loadThemes( method loadThemesFromDir (line 629) | private loadThemesFromDir(dir: string, themes: Theme[], diagnostics: R... method loadThemeFromFile (line 659) | private loadThemeFromFile(filePath: string, themes: Theme[], diagnosti... method loadExtensionFactories (line 668) | private async loadExtensionFactories(runtime: ExtensionRuntime): Promi... method dedupePrompts (line 689) | private dedupePrompts(prompts: PromptTemplate[]): { prompts: PromptTem... method dedupeThemes (line 715) | private dedupeThemes(themes: Theme[]): { themes: Theme[]; diagnostics:... method discoverSystemPromptFile (line 742) | private discoverSystemPromptFile(): string | undefined { method discoverAppendSystemPromptFile (line 756) | private discoverAppendSystemPromptFile(): string | undefined { method addDefaultMetadataForPath (line 770) | private addDefaultMetadataForPath(filePath: string): void { method isUnderPath (line 808) | private isUnderPath(target: string, root: string): boolean { method detectExtensionConflicts (line 817) | private detectExtensionConflicts(extensions: Extension[]): Array<{ pat... FILE: packages/coding-agent/src/core/sdk.ts type CreateAgentSessionOptions (line 42) | interface CreateAgentSessionOptions { type CreateAgentSessionResult (line 76) | interface CreateAgentSessionResult { function getDefaultAgentDir (line 128) | function getDefaultAgentDir(): string { function createAgentSession (line 167) | async function createAgentSession(options: CreateAgentSessionOptions = {... FILE: packages/coding-agent/src/core/session-manager.ts constant CURRENT_SESSION_VERSION (line 27) | const CURRENT_SESSION_VERSION = 3; type SessionHeader (line 29) | interface SessionHeader { type NewSessionOptions (line 38) | interface NewSessionOptions { type SessionEntryBase (line 43) | interface SessionEntryBase { type SessionMessageEntry (line 50) | interface SessionMessageEntry extends SessionEntryBase { type ThinkingLevelChangeEntry (line 55) | interface ThinkingLevelChangeEntry extends SessionEntryBase { type ModelChangeEntry (line 60) | interface ModelChangeEntry extends SessionEntryBase { type CompactionEntry (line 66) | interface CompactionEntry extends SessionEntryBase { type BranchSummaryEntry (line 77) | interface BranchSummaryEntry extends SessionEntryBase { type CustomEntry (line 97) | interface CustomEntry extends SessionEntryBase { type LabelEntry (line 104) | interface LabelEntry extends SessionEntryBase { type SessionInfoEntry (line 111) | interface SessionInfoEntry extends SessionEntryBase { type CustomMessageEntry (line 128) | interface CustomMessageEntry extends SessionEntryBase { type SessionEntry (line 137) | type SessionEntry = type FileEntry (line 149) | type FileEntry = SessionHeader | SessionEntry; type SessionTreeNode (line 152) | interface SessionTreeNode { type SessionContext (line 159) | interface SessionContext { type SessionInfo (line 165) | interface SessionInfo { type ReadonlySessionManager (line 181) | type ReadonlySessionManager = Pick< function generateId (line 199) | function generateId(byId: { has(id: string): boolean }): string { function migrateV1ToV2 (line 209) | function migrateV1ToV2(entries: FileEntry[]): void { function migrateV2ToV3 (line 238) | function migrateV2ToV3(entries: FileEntry[]): void { function migrateToCurrentVersion (line 259) | function migrateToCurrentVersion(entries: FileEntry[]): boolean { function migrateSessionEntries (line 272) | function migrateSessionEntries(entries: FileEntry[]): void { function parseSessionEntries (line 277) | function parseSessionEntries(content: string): FileEntry[] { function getLatestCompactionEntry (line 294) | function getLatestCompactionEntry(entries: SessionEntry[]): CompactionEn... function buildSessionContext (line 308) | function buildSessionContext( function getDefaultSessionDir (line 421) | function getDefaultSessionDir(cwd: string): string { function loadEntriesFromFile (line 431) | function loadEntriesFromFile(filePath: string): FileEntry[] { function isValidSessionFile (line 458) | function isValidSessionFile(filePath: string): boolean { function findMostRecentSession (line 474) | function findMostRecentSession(sessionDir: string): string | null { function isMessageWithContent (line 489) | function isMessageWithContent(message: AgentMessage): message is Message { function extractTextContent (line 493) | function extractTextContent(message: Message): string { function getLastActivityTime (line 504) | function getLastActivityTime(entries: FileEntry[]): number | undefined { function getSessionModifiedDate (line 532) | function getSessionModifiedDate(entries: FileEntry[], header: SessionHea... function buildSessionInfo (line 542) | async function buildSessionInfo(filePath: string): Promise void; function listSessionsFromDir (line 614) | async function listSessionsFromDir( class SessionManager (line 662) | class SessionManager { method constructor (line 674) | private constructor(cwd: string, sessionDir: string, sessionFile: stri... method setSessionFile (line 690) | setSessionFile(sessionFile: string): void { method newSession (line 722) | newSession(options?: NewSessionOptions): string | undefined { method _buildIndex (line 746) | private _buildIndex(): void { method _rewriteFile (line 764) | private _rewriteFile(): void { method isPersisted (line 770) | isPersisted(): boolean { method getCwd (line 774) | getCwd(): string { method getSessionDir (line 778) | getSessionDir(): string { method getSessionId (line 782) | getSessionId(): string { method getSessionFile (line 786) | getSessionFile(): string | undefined { method _persist (line 790) | _persist(entry: SessionEntry): void { method _appendEntry (line 810) | private _appendEntry(entry: SessionEntry): void { method appendMessage (line 823) | appendMessage(message: Message | CustomMessage | BashExecutionMessage)... method appendThinkingLevelChange (line 836) | appendThinkingLevelChange(thinkingLevel: string): string { method appendModelChange (line 849) | appendModelChange(provider: string, modelId: string): string { method appendCompaction (line 863) | appendCompaction( method appendCustomEntry (line 886) | appendCustomEntry(customType: string, data?: unknown): string { method appendSessionInfo (line 900) | appendSessionInfo(name: string): string { method getSessionName (line 913) | getSessionName(): string | undefined { method appendCustomMessageEntry (line 934) | appendCustomMessageEntry( method getLeafId (line 958) | getLeafId(): string | null { method getLeafEntry (line 962) | getLeafEntry(): SessionEntry | undefined { method getEntry (line 966) | getEntry(id: string): SessionEntry | undefined { method getChildren (line 973) | getChildren(parentId: string): SessionEntry[] { method getLabel (line 986) | getLabel(id: string): string | undefined { method appendLabelChange (line 995) | appendLabelChange(targetId: string, label: string | undefined): string { method getBranch (line 1021) | getBranch(fromId?: string): SessionEntry[] { method buildSessionContext (line 1036) | buildSessionContext(): SessionContext { method getHeader (line 1043) | getHeader(): SessionHeader | null { method getEntries (line 1053) | getEntries(): SessionEntry[] { method getTree (line 1062) | getTree(): SessionTreeNode[] { method branch (line 1111) | branch(branchFromId: string): void { method resetLeaf (line 1123) | resetLeaf(): void { method branchWithSummary (line 1132) | branchWithSummary(branchFromId: string | null, summary: string, detail... method createBranchedSession (line 1156) | createBranchedSession(leafId: string): string | undefined { method create (line 1255) | static create(cwd: string, sessionDir?: string): SessionManager { method open (line 1265) | static open(path: string, sessionDir?: string): SessionManager { method continueRecent (line 1280) | static continueRecent(cwd: string, sessionDir?: string): SessionManager { method inMemory (line 1290) | static inMemory(cwd: string = process.cwd()): SessionManager { method forkFrom (line 1301) | static forkFrom(sourcePath: string, targetCwd: string, sessionDir?: st... method list (line 1350) | static async list(cwd: string, sessionDir?: string, onProgress?: Sessi... method listAll (line 1361) | static async listAll(onProgress?: SessionListProgress): Promise void { method withLock (line 177) | withLock(scope: SettingsScope, fn: (current: string | undefined) => st... class InMemorySettingsStorage (line 208) | class InMemorySettingsStorage implements SettingsStorage { method withLock (line 212) | withLock(scope: SettingsScope, fn: (current: string | undefined) => st... class SettingsManager (line 225) | class SettingsManager { method constructor (line 239) | private constructor( method create (line 257) | static create(cwd: string = process.cwd(), agentDir: string = getAgent... method fromStorage (line 263) | static fromStorage(storage: SettingsStorage): SettingsManager { method inMemory (line 285) | static inMemory(settings: Partial = {}): SettingsManager { method loadFromStorage (line 290) | private static loadFromStorage(storage: SettingsStorage, scope: Settin... method tryLoadFromStorage (line 304) | private static tryLoadFromStorage( method migrateSettings (line 316) | private static migrateSettings(settings: Record): Set... method getGlobalSettings (line 353) | getGlobalSettings(): Settings { method getProjectSettings (line 357) | getProjectSettings(): Settings { method reload (line 361) | reload(): void { method applyOverrides (line 389) | applyOverrides(overrides: Partial): void { method markModified (line 394) | private markModified(field: keyof Settings, nestedKey?: string): void { method markProjectModified (line 405) | private markProjectModified(field: keyof Settings, nestedKey?: string)... method recordError (line 415) | private recordError(scope: SettingsScope, error: unknown): void { method clearModifiedScope (line 420) | private clearModifiedScope(scope: SettingsScope): void { method enqueueWrite (line 431) | private enqueueWrite(scope: SettingsScope, task: () => void): void { method cloneModifiedNestedFields (line 442) | private cloneModifiedNestedFields(source: Map { method drainErrors (line 517) | drainErrors(): SettingsError[] { method getLastChangelogVersion (line 523) | getLastChangelogVersion(): string | undefined { method setLastChangelogVersion (line 527) | setLastChangelogVersion(version: string): void { method getDefaultProvider (line 533) | getDefaultProvider(): string | undefined { method getDefaultModel (line 537) | getDefaultModel(): string | undefined { method setDefaultProvider (line 541) | setDefaultProvider(provider: string): void { method setDefaultModel (line 547) | setDefaultModel(modelId: string): void { method setDefaultModelAndProvider (line 553) | setDefaultModelAndProvider(provider: string, modelId: string): void { method getSteeringMode (line 561) | getSteeringMode(): "all" | "one-at-a-time" { method setSteeringMode (line 565) | setSteeringMode(mode: "all" | "one-at-a-time"): void { method getFollowUpMode (line 571) | getFollowUpMode(): "all" | "one-at-a-time" { method setFollowUpMode (line 575) | setFollowUpMode(mode: "all" | "one-at-a-time"): void { method getTheme (line 581) | getTheme(): string | undefined { method setTheme (line 585) | setTheme(theme: string): void { method getDefaultThinkingLevel (line 591) | getDefaultThinkingLevel(): "off" | "minimal" | "low" | "medium" | "hig... method setDefaultThinkingLevel (line 595) | setDefaultThinkingLevel(level: "off" | "minimal" | "low" | "medium" | ... method getTransport (line 601) | getTransport(): TransportSetting { method setTransport (line 605) | setTransport(transport: TransportSetting): void { method getCompactionEnabled (line 611) | getCompactionEnabled(): boolean { method setCompactionEnabled (line 615) | setCompactionEnabled(enabled: boolean): void { method getCompactionReserveTokens (line 624) | getCompactionReserveTokens(): number { method getCompactionKeepRecentTokens (line 628) | getCompactionKeepRecentTokens(): number { method getCompactionSettings (line 632) | getCompactionSettings(): { enabled: boolean; reserveTokens: number; ke... method getBranchSummarySettings (line 640) | getBranchSummarySettings(): { reserveTokens: number; skipPrompt: boole... method getBranchSummarySkipPrompt (line 647) | getBranchSummarySkipPrompt(): boolean { method getRetryEnabled (line 651) | getRetryEnabled(): boolean { method setRetryEnabled (line 655) | setRetryEnabled(enabled: boolean): void { method getRetrySettings (line 664) | getRetrySettings(): { enabled: boolean; maxRetries: number; baseDelayM... method getHideThinkingBlock (line 673) | getHideThinkingBlock(): boolean { method setHideThinkingBlock (line 677) | setHideThinkingBlock(hide: boolean): void { method getShellPath (line 683) | getShellPath(): string | undefined { method setShellPath (line 687) | setShellPath(path: string | undefined): void { method getQuietStartup (line 693) | getQuietStartup(): boolean { method setQuietStartup (line 697) | setQuietStartup(quiet: boolean): void { method getShellCommandPrefix (line 703) | getShellCommandPrefix(): string | undefined { method setShellCommandPrefix (line 707) | setShellCommandPrefix(prefix: string | undefined): void { method getNpmCommand (line 713) | getNpmCommand(): string[] | undefined { method setNpmCommand (line 717) | setNpmCommand(command: string[] | undefined): void { method getCollapseChangelog (line 723) | getCollapseChangelog(): boolean { method setCollapseChangelog (line 727) | setCollapseChangelog(collapse: boolean): void { method getPackages (line 733) | getPackages(): PackageSource[] { method setPackages (line 737) | setPackages(packages: PackageSource[]): void { method setProjectPackages (line 743) | setProjectPackages(packages: PackageSource[]): void { method getExtensionPaths (line 750) | getExtensionPaths(): string[] { method setExtensionPaths (line 754) | setExtensionPaths(paths: string[]): void { method setProjectExtensionPaths (line 760) | setProjectExtensionPaths(paths: string[]): void { method getSkillPaths (line 767) | getSkillPaths(): string[] { method setSkillPaths (line 771) | setSkillPaths(paths: string[]): void { method setProjectSkillPaths (line 777) | setProjectSkillPaths(paths: string[]): void { method getPromptTemplatePaths (line 784) | getPromptTemplatePaths(): string[] { method setPromptTemplatePaths (line 788) | setPromptTemplatePaths(paths: string[]): void { method setProjectPromptTemplatePaths (line 794) | setProjectPromptTemplatePaths(paths: string[]): void { method getThemePaths (line 801) | getThemePaths(): string[] { method setThemePaths (line 805) | setThemePaths(paths: string[]): void { method setProjectThemePaths (line 811) | setProjectThemePaths(paths: string[]): void { method getEnableSkillCommands (line 818) | getEnableSkillCommands(): boolean { method setEnableSkillCommands (line 822) | setEnableSkillCommands(enabled: boolean): void { method getThinkingBudgets (line 828) | getThinkingBudgets(): ThinkingBudgetsSettings | undefined { method getShowImages (line 832) | getShowImages(): boolean { method setShowImages (line 836) | setShowImages(show: boolean): void { method getClearOnShrink (line 845) | getClearOnShrink(): boolean { method setClearOnShrink (line 853) | setClearOnShrink(enabled: boolean): void { method getImageAutoResize (line 862) | getImageAutoResize(): boolean { method setImageAutoResize (line 866) | setImageAutoResize(enabled: boolean): void { method getBlockImages (line 875) | getBlockImages(): boolean { method setBlockImages (line 879) | setBlockImages(blocked: boolean): void { method getEnabledModels (line 888) | getEnabledModels(): string[] | undefined { method setEnabledModels (line 892) | setEnabledModels(patterns: string[] | undefined): void { method getDoubleEscapeAction (line 898) | getDoubleEscapeAction(): "fork" | "tree" | "none" { method setDoubleEscapeAction (line 902) | setDoubleEscapeAction(action: "fork" | "tree" | "none"): void { method getTreeFilterMode (line 908) | getTreeFilterMode(): "default" | "no-tools" | "user-only" | "labeled-o... method setTreeFilterMode (line 914) | setTreeFilterMode(mode: "default" | "no-tools" | "user-only" | "labele... method getShowHardwareCursor (line 920) | getShowHardwareCursor(): boolean { method setShowHardwareCursor (line 924) | setShowHardwareCursor(enabled: boolean): void { method getEditorPaddingX (line 930) | getEditorPaddingX(): number { method setEditorPaddingX (line 934) | setEditorPaddingX(padding: number): void { method getAutocompleteMaxVisible (line 940) | getAutocompleteMaxVisible(): number { method setAutocompleteMaxVisible (line 944) | setAutocompleteMaxVisible(maxVisible: number): void { method getCodeBlockIndent (line 950) | getCodeBlockIndent(): string { FILE: packages/coding-agent/src/core/skills.ts constant MAX_NAME_LENGTH (line 10) | const MAX_NAME_LENGTH = 64; constant MAX_DESCRIPTION_LENGTH (line 13) | const MAX_DESCRIPTION_LENGTH = 1024; constant IGNORE_FILE_NAMES (line 15) | const IGNORE_FILE_NAMES = [".gitignore", ".ignore", ".fdignore"]; type IgnoreMatcher (line 17) | type IgnoreMatcher = ReturnType; function toPosixPath (line 19) | function toPosixPath(p: string): string { function prefixIgnorePattern (line 23) | function prefixIgnorePattern(line: string, prefix: string): string | null { function addIgnoreRules (line 46) | function addIgnoreRules(ig: IgnoreMatcher, dir: string, rootDir: string)... type SkillFrontmatter (line 66) | interface SkillFrontmatter { type Skill (line 73) | interface Skill { type LoadSkillsResult (line 82) | interface LoadSkillsResult { function validateName (line 91) | function validateName(name: string, parentDirName: string): string[] { function validateDescription (line 120) | function validateDescription(description: string | undefined): string[] { type LoadSkillsFromDirOptions (line 132) | interface LoadSkillsFromDirOptions { function loadSkillsFromDir (line 147) | function loadSkillsFromDir(options: LoadSkillsFromDirOptions): LoadSkill... function loadSkillsFromDirInternal (line 152) | function loadSkillsFromDirInternal( function loadSkillFromFile (line 256) | function loadSkillFromFile( function formatSkillsForPrompt (line 314) | function formatSkillsForPrompt(skills: Skill[]): string { function escapeXml (line 342) | function escapeXml(str: string): string { type LoadSkillsOptions (line 351) | interface LoadSkillsOptions { function normalizePath (line 362) | function normalizePath(input: string): string { function resolveSkillPath (line 370) | function resolveSkillPath(p: string, cwd: string): string { function loadSkills (line 379) | function loadSkills(options: LoadSkillsOptions = {}): LoadSkillsResult { FILE: packages/coding-agent/src/core/slash-commands.ts type SlashCommandSource (line 1) | type SlashCommandSource = "extension" | "prompt" | "skill"; type SlashCommandLocation (line 3) | type SlashCommandLocation = "user" | "project" | "path"; type SlashCommandInfo (line 5) | interface SlashCommandInfo { type BuiltinSlashCommand (line 13) | interface BuiltinSlashCommand { constant BUILTIN_SLASH_COMMANDS (line 18) | const BUILTIN_SLASH_COMMANDS: ReadonlyArray = [ FILE: packages/coding-agent/src/core/system-prompt.ts type BuildSystemPromptOptions (line 19) | interface BuildSystemPromptOptions { function buildSystemPrompt (line 39) | function buildSystemPrompt(options: BuildSystemPromptOptions = {}): stri... FILE: packages/coding-agent/src/core/timings.ts constant ENABLED (line 6) | const ENABLED = process.env.PI_TIMING === "1"; function time (line 10) | function time(label: string): void { function printTimings (line 17) | function printTimings(): void { FILE: packages/coding-agent/src/core/tools/bash.ts function getTempFilePath (line 15) | function getTempFilePath(): string { type BashToolInput (line 25) | type BashToolInput = Static; type BashToolDetails (line 27) | interface BashToolDetails { type BashOperations (line 36) | interface BashOperations { function createLocalBashOperations (line 63) | function createLocalBashOperations(): BashOperations { type BashSpawnContext (line 146) | interface BashSpawnContext { type BashSpawnHook (line 152) | type BashSpawnHook = (context: BashSpawnContext) => BashSpawnContext; function resolveSpawnContext (line 154) | function resolveSpawnContext(command: string, cwd: string, spawnHook?: B... type BashToolOptions (line 164) | interface BashToolOptions { function createBashTool (line 173) | function createBashTool(cwd: string, options?: BashToolOptions): AgentTo... FILE: packages/coding-agent/src/core/tools/edit-diff.ts function detectLineEnding (line 11) | function detectLineEnding(content: string): "\r\n" | "\n" { function normalizeToLF (line 19) | function normalizeToLF(text: string): string { function restoreLineEndings (line 23) | function restoreLineEndings(text: string, ending: "\r\n" | "\n"): string { function normalizeForFuzzyMatch (line 34) | function normalizeForFuzzyMatch(text: string): string { type FuzzyMatchResult (line 57) | interface FuzzyMatchResult { function fuzzyFindText (line 79) | function fuzzyFindText(content: string, oldText: string): FuzzyMatchResu... function stripBom (line 120) | function stripBom(content: string): { bom: string; text: string } { function generateDiffString (line 128) | function generateDiffString( type EditDiffResult (line 230) | interface EditDiffResult { type EditDiffError (line 235) | interface EditDiffError { function computeEditDiff (line 243) | async function computeEditDiff( FILE: packages/coding-agent/src/core/tools/edit.ts type EditToolInput (line 23) | type EditToolInput = Static; type EditToolDetails (line 25) | interface EditToolDetails { type EditOperations (line 36) | interface EditOperations { type EditToolOptions (line 51) | interface EditToolOptions { function createEditTool (line 56) | function createEditTool(cwd: string, options?: EditToolOptions): AgentTo... FILE: packages/coding-agent/src/core/tools/file-mutation-queue.ts function getMutationQueueKey (line 6) | async function getMutationQueueKey(filePath: string): Promise { function withFileMutationQueue (line 19) | async function withFileMutationQueue(filePath: string, fn: () => Prom... FILE: packages/coding-agent/src/core/tools/find.ts function toPosixPath (line 11) | function toPosixPath(value: string): string { type FindToolInput (line 23) | type FindToolInput = Static; constant DEFAULT_LIMIT (line 25) | const DEFAULT_LIMIT = 1000; type FindToolDetails (line 27) | interface FindToolDetails { type FindOperations (line 36) | interface FindOperations { type FindToolOptions (line 51) | interface FindToolOptions { function createFindTool (line 56) | function createFindTool(cwd: string, options?: FindToolOptions): AgentTo... FILE: packages/coding-agent/src/core/tools/grep.ts type GrepToolInput (line 32) | type GrepToolInput = Static; constant DEFAULT_LIMIT (line 34) | const DEFAULT_LIMIT = 100; type GrepToolDetails (line 36) | interface GrepToolDetails { type GrepOperations (line 46) | interface GrepOperations { type GrepToolOptions (line 58) | interface GrepToolOptions { function createGrepTool (line 63) | function createGrepTool(cwd: string, options?: GrepToolOptions): AgentTo... FILE: packages/coding-agent/src/core/tools/index.ts type Tool (line 81) | type Tool = AgentTool; type ToolName (line 100) | type ToolName = keyof typeof allTools; type ToolsOptions (line 102) | interface ToolsOptions { function createCodingTools (line 112) | function createCodingTools(cwd: string, options?: ToolsOptions): Tool[] { function createReadOnlyTools (line 124) | function createReadOnlyTools(cwd: string, options?: ToolsOptions): Tool[] { function createAllTools (line 131) | function createAllTools(cwd: string, options?: ToolsOptions): Record; constant DEFAULT_LIMIT (line 15) | const DEFAULT_LIMIT = 500; type LsToolDetails (line 17) | interface LsToolDetails { type LsOperations (line 26) | interface LsOperations { type LsToolOptions (line 41) | interface LsToolOptions { function createLsTool (line 46) | function createLsTool(cwd: string, options?: LsToolOptions): AgentTool; type ReadToolDetails (line 19) | interface ReadToolDetails { type ReadOperations (line 27) | interface ReadOperations { type ReadToolOptions (line 42) | interface ReadToolOptions { function createReadTool (line 49) | function createReadTool(cwd: string, options?: ReadToolOptions): AgentTo... FILE: packages/coding-agent/src/core/tools/truncate.ts constant DEFAULT_MAX_LINES (line 11) | const DEFAULT_MAX_LINES = 2000; constant DEFAULT_MAX_BYTES (line 12) | const DEFAULT_MAX_BYTES = 50 * 1024; constant GREP_MAX_LINE_LENGTH (line 13) | const GREP_MAX_LINE_LENGTH = 500; type TruncationResult (line 15) | interface TruncationResult { type TruncationOptions (line 40) | interface TruncationOptions { function formatSize (line 50) | function formatSize(bytes: number): string { function truncateHead (line 67) | function truncateHead(content: string, options: TruncationOptions = {}):... function truncateTail (line 157) | function truncateTail(content: string, options: TruncationOptions = {}):... function truncateStringToBytesFromEnd (line 236) | function truncateStringToBytesFromEnd(str: string, maxBytes: number): st... function truncateLine (line 257) | function truncateLine( FILE: packages/coding-agent/src/core/tools/write.ts type WriteToolInput (line 13) | type WriteToolInput = Static; type WriteOperations (line 19) | interface WriteOperations { type WriteToolOptions (line 31) | interface WriteToolOptions { function createWriteTool (line 36) | function createWriteTool(cwd: string, options?: WriteToolOptions): Agent... FILE: packages/coding-agent/src/main.ts function readPipedStdin (line 39) | async function readPipedStdin(): Promise { function reportSettingsErrors (line 58) | function reportSettingsErrors(settingsManager: SettingsManager, context:... function isTruthyEnvFlag (line 68) | function isTruthyEnvFlag(value: string | undefined): boolean { type PackageCommand (line 73) | type PackageCommand = "install" | "remove" | "update" | "list"; type PackageCommandOptions (line 75) | interface PackageCommandOptions { function getPackageCommandUsage (line 83) | function getPackageCommandUsage(command: PackageCommand): string { function printPackageCommandHelp (line 96) | function printPackageCommandHelp(command: PackageCommand): void { function parsePackageCommand (line 152) | function parsePackageCommand(args: string[]): PackageCommandOptions | un... function handlePackageCommand (line 197) | async function handlePackageCommand(args: string[]): Promise { function prepareInitialMessage (line 312) | async function prepareInitialMessage( type ResolvedSession (line 334) | type ResolvedSession = function resolveSessionPath (line 344) | async function resolveSessionPath(sessionArg: string, cwd: string, sessi... function promptConfirm (line 372) | async function promptConfirm(message: string): Promise { function callSessionDirectoryHook (line 386) | async function callSessionDirectoryHook(extensions: LoadExtensionsResult... function validateForkFlags (line 411) | function validateForkFlags(parsed: Args): void { function forkSessionOrExit (line 427) | function forkSessionOrExit(sourcePath: string, cwd: string, sessionDir?:... function createSessionManager (line 437) | async function createSessionManager( function buildSessionOptions (line 503) | function buildSessionOptions( function handleConfigCommand (line 600) | async function handleConfigCommand(args: string[]): Promise { function main (line 623) | async function main(args: string[]) { FILE: packages/coding-agent/src/migrations.ts constant MIGRATION_GUIDE_URL (line 10) | const MIGRATION_GUIDE_URL = constant EXTENSIONS_DOC_URL (line 12) | const EXTENSIONS_DOC_URL = "https://github.com/badlogic/pi-mono/blob/mai... function migrateAuthToAuthJson (line 19) | function migrateAuthToAuthJson(): string[] { function migrateSessionsFromAgentRoot (line 82) | function migrateSessionsFromAgentRoot(): void { function migrateCommandsToPrompts (line 135) | function migrateCommandsToPrompts(baseDir: string, label: string): boole... function migrateToolsToBin (line 158) | function migrateToolsToBin(): void { function checkDeprecatedExtensionDirs (line 203) | function checkDeprecatedExtensionDirs(baseDir: string, label: string): s... function migrateExtensionSystem (line 238) | function migrateExtensionSystem(cwd: string): string[] { function showDeprecationWarnings (line 258) | async function showDeprecationWarnings(warnings: string[]): Promise { function runMigrations (line 286) | function runMigrations(cwd: string = process.cwd()): { FILE: packages/coding-agent/src/modes/interactive/components/armin.ts constant WIDTH (line 9) | const WIDTH = 31; constant HEIGHT (line 10) | const HEIGHT = 36; constant BITS (line 11) | const BITS = [ constant BYTES_PER_ROW (line 22) | const BYTES_PER_ROW = Math.ceil(WIDTH / 8); constant DISPLAY_HEIGHT (line 23) | const DISPLAY_HEIGHT = Math.ceil(HEIGHT / 2); type Effect (line 25) | type Effect = "typewriter" | "scanline" | "rain" | "fade" | "crt" | "gli... constant EFFECTS (line 27) | const EFFECTS: Effect[] = ["typewriter", "scanline", "rain", "fade", "cr... function getPixel (line 30) | function getPixel(x: number, y: number): boolean { function getChar (line 38) | function getChar(x: number, row: number): string { function buildFinalGrid (line 48) | function buildFinalGrid(): string[][] { class ArminComponent (line 60) | class ArminComponent implements Component { method constructor (line 72) | constructor(ui: TUI) { method invalidate (line 82) | invalidate(): void { method render (line 86) | render(width: number): string[] { method createEmptyGrid (line 112) | private createEmptyGrid(): string[][] { method initEffect (line 116) | private initEffect(): void { method startAnimation (line 180) | private startAnimation(): void { method stopAnimation (line 192) | private stopAnimation(): void { method tickEffect (line 199) | private tickEffect(): boolean { method tickTypewriter (line 220) | private tickTypewriter(): boolean { method tickScanline (line 234) | private tickScanline(): boolean { method tickRain (line 246) | private tickRain(): boolean { method tickFade (line 297) | private tickFade(): boolean { method tickCrt (line 310) | private tickCrt(): boolean { method tickGlitch (line 330) | private tickGlitch(): boolean { method tickDissolve (line 362) | private tickDissolve(): boolean { method updateDisplay (line 375) | private updateDisplay(): void { method dispose (line 379) | dispose(): void { FILE: packages/coding-agent/src/modes/interactive/components/assistant-message.ts class AssistantMessageComponent (line 8) | class AssistantMessageComponent extends Container { method constructor (line 14) | constructor( method invalidate (line 33) | override invalidate(): void { method setHideThinkingBlock (line 40) | setHideThinkingBlock(hide: boolean): void { method updateContent (line 44) | updateContent(message: AssistantMessage): void { FILE: packages/coding-agent/src/modes/interactive/components/bash-execution.ts constant PREVIEW_LINES (line 19) | const PREVIEW_LINES = 20; class BashExecutionComponent (line 21) | class BashExecutionComponent extends Container { method constructor (line 33) | constructor(command: string, ui: TUI, excludeFromContext = false) { method setExpanded (line 72) | setExpanded(expanded: boolean): void { method invalidate (line 77) | override invalidate(): void { method appendOutput (line 82) | appendOutput(chunk: string): void { method setComplete (line 100) | setComplete( method updateDisplay (line 121) | private updateDisplay(): void { method getOutput (line 200) | getOutput(): string { method getCommand (line 207) | getCommand(): string { FILE: packages/coding-agent/src/modes/interactive/components/bordered-loader.ts class BorderedLoader (line 7) | class BorderedLoader extends Container { method constructor (line 12) | constructor(tui: TUI, theme: Theme, message: string, options?: { cance... method signal (line 42) | get signal(): AbortSignal { method onAbort (line 49) | set onAbort(fn: (() => void) | undefined) { method handleInput (line 55) | handleInput(data: string): void { method dispose (line 61) | dispose(): void { FILE: packages/coding-agent/src/modes/interactive/components/branch-summary-message.ts class BranchSummaryMessageComponent (line 10) | class BranchSummaryMessageComponent extends Box { method constructor (line 15) | constructor(message: BranchSummaryMessage, markdownTheme: MarkdownThem... method setExpanded (line 22) | setExpanded(expanded: boolean): void { method invalidate (line 27) | override invalidate(): void { method updateDisplay (line 32) | private updateDisplay(): void { FILE: packages/coding-agent/src/modes/interactive/components/compaction-summary-message.ts class CompactionSummaryMessageComponent (line 10) | class CompactionSummaryMessageComponent extends Box { method constructor (line 15) | constructor(message: CompactionSummaryMessage, markdownTheme: Markdown... method setExpanded (line 22) | setExpanded(expanded: boolean): void { method invalidate (line 27) | override invalidate(): void { method updateDisplay (line 32) | private updateDisplay(): void { FILE: packages/coding-agent/src/modes/interactive/components/config-selector.ts type ResourceType (line 24) | type ResourceType = "extensions" | "skills" | "prompts" | "themes"; constant RESOURCE_TYPE_LABELS (line 26) | const RESOURCE_TYPE_LABELS: Record = { type ResourceItem (line 33) | interface ResourceItem { type ResourceSubgroup (line 43) | interface ResourceSubgroup { type ResourceGroup (line 49) | interface ResourceGroup { function getGroupLabel (line 58) | function getGroupLabel(metadata: PathMetadata): string { function buildGroups (line 69) | function buildGroups(resolved: ResolvedPaths): ResourceGroup[] { type FlatEntry (line 152) | type FlatEntry = class ConfigSelectorHeader (line 157) | class ConfigSelectorHeader implements Component { method invalidate (line 158) | invalidate(): void {} method render (line 160) | render(width: number): string[] { class ResourceList (line 175) | class ResourceList implements Component, Focusable { method focused (line 191) | get focused(): boolean { method focused (line 194) | set focused(value: boolean) { method constructor (line 199) | constructor(groups: ResourceGroup[], settingsManager: SettingsManager,... method buildFlatList (line 209) | private buildFlatList(): void { method findNextItem (line 225) | private findNextItem(fromIndex: number, direction: 1 | -1): number { method filterItems (line 236) | private filterItems(query: string): void { method selectFirstItem (line 287) | private selectFirstItem(): void { method updateItem (line 292) | updateItem(item: ResourceItem, enabled: boolean): void { method invalidate (line 306) | invalidate(): void {} method render (line 308) | render(width: number): string[] { method handleInput (line 357) | handleInput(data: string): void { method toggleResource (line 414) | private toggleResource(item: ResourceItem, enabled: boolean): void { method toggleTopLevelResource (line 422) | private toggleTopLevelResource(item: ResourceItem, enabled: boolean): ... method togglePackageResource (line 470) | private togglePackageResource(item: ResourceItem, enabled: boolean): v... method getTopLevelBaseDir (line 529) | private getTopLevelBaseDir(scope: "user" | "project"): string { method getResourcePattern (line 533) | private getResourcePattern(item: ResourceItem): string { method getPackageResourcePattern (line 539) | private getPackageResourcePattern(item: ResourceItem): string { class ConfigSelectorComponent (line 545) | class ConfigSelectorComponent extends Container implements Focusable { method focused (line 549) | get focused(): boolean { method focused (line 552) | set focused(value: boolean) { method constructor (line 557) | constructor( method getResourceList (line 589) | getResourceList(): ResourceList { FILE: packages/coding-agent/src/modes/interactive/components/countdown-timer.ts class CountdownTimer (line 7) | class CountdownTimer { method constructor (line 11) | constructor( method dispose (line 32) | dispose(): void { FILE: packages/coding-agent/src/modes/interactive/components/custom-editor.ts class CustomEditor (line 7) | class CustomEditor extends Editor { method constructor (line 18) | constructor(tui: TUI, theme: EditorTheme, keybindings: KeybindingsMana... method onAction (line 26) | onAction(action: AppKeybinding, handler: () => void): void { method handleInput (line 30) | handleInput(data: string): void { FILE: packages/coding-agent/src/modes/interactive/components/custom-message.ts class CustomMessageComponent (line 12) | class CustomMessageComponent extends Container { method constructor (line 20) | constructor( method setExpanded (line 38) | setExpanded(expanded: boolean): void { method invalidate (line 45) | override invalidate(): void { method rebuild (line 50) | private rebuild(): void { FILE: packages/coding-agent/src/modes/interactive/components/daxnuts.ts constant DAX_HEX (line 11) | const DAX_HEX = constant WIDTH (line 14) | const WIDTH = 32; constant HEIGHT (line 15) | const HEIGHT = 32; function parseImage (line 17) | function parseImage(): number[][][] { function rgb (line 33) | function rgb(r: number, g: number, b: number, bg = false): string { constant RESET (line 37) | const RESET = "\x1b[0m"; function buildImage (line 39) | function buildImage(): string[] { class DaxnutsComponent (line 57) | class DaxnutsComponent implements Component { method constructor (line 67) | constructor(ui: TUI) { method invalidate (line 73) | invalidate(): void { method startAnimation (line 77) | private startAnimation(): void { method stopAnimation (line 88) | private stopAnimation(): void { method render (line 95) | render(width: number): string[] { method dispose (line 161) | dispose(): void { FILE: packages/coding-agent/src/modes/interactive/components/diff.ts function parseDiffLine (line 8) | function parseDiffLine(line: string): { prefix: string; lineNum: string;... function replaceTabs (line 17) | function replaceTabs(text: string): string { function renderIntraLineDiff (line 26) | function renderIntraLineDiff(oldContent: string, newContent: string): { ... type RenderDiffOptions (line 68) | interface RenderDiffOptions { function renderDiff (line 79) | function renderDiff(diffText: string, _options: RenderDiffOptions = {}):... FILE: packages/coding-agent/src/modes/interactive/components/dynamic-border.ts class DynamicBorder (line 11) | class DynamicBorder implements Component { method constructor (line 14) | constructor(color: (str: string) => string = (str) => theme.fg("border... method invalidate (line 18) | invalidate(): void { method render (line 22) | render(width: number): string[] { FILE: packages/coding-agent/src/modes/interactive/components/extension-editor.ts class ExtensionEditorComponent (line 25) | class ExtensionEditorComponent extends Container implements Focusable { method focused (line 33) | get focused(): boolean { method focused (line 36) | set focused(value: boolean) { method constructor (line 41) | constructor( method handleInput (line 95) | handleInput(keyData: string): void { method openExternalEditor (line 113) | private openExternalEditor(): void { FILE: packages/coding-agent/src/modes/interactive/components/extension-input.ts type ExtensionInputOptions (line 11) | interface ExtensionInputOptions { class ExtensionInputComponent (line 16) | class ExtensionInputComponent extends Container implements Focusable { method focused (line 26) | get focused(): boolean { method focused (line 29) | set focused(value: boolean) { method constructor (line 34) | constructor( method handleInput (line 73) | handleInput(keyData: string): void { method dispose (line 84) | dispose(): void { FILE: packages/coding-agent/src/modes/interactive/components/extension-selector.ts type ExtensionSelectorOptions (line 12) | interface ExtensionSelectorOptions { class ExtensionSelectorComponent (line 17) | class ExtensionSelectorComponent extends Container { method constructor (line 27) | constructor( method updateList (line 77) | private updateList(): void { method handleInput (line 88) | handleInput(keyData: string): void { method dispose (line 104) | dispose(): void { FILE: packages/coding-agent/src/modes/interactive/components/footer.ts function sanitizeStatusText (line 10) | function sanitizeStatusText(text: string): string { function formatTokens (line 21) | function formatTokens(count: number): string { class FooterComponent (line 33) | class FooterComponent implements Component { method constructor (line 36) | constructor( method setAutoCompactEnabled (line 41) | setAutoCompactEnabled(enabled: boolean): void { method invalidate (line 49) | invalidate(): void { method dispose (line 57) | dispose(): void { method render (line 61) | render(width: number): string[] { FILE: packages/coding-agent/src/modes/interactive/components/keybinding-hints.ts function formatKeys (line 8) | function formatKeys(keys: KeyId[]): string { function keyText (line 14) | function keyText(keybinding: Keybinding): string { function keyHint (line 18) | function keyHint(keybinding: Keybinding, description: string): string { function rawKeyHint (line 22) | function rawKeyHint(key: string, description: string): string { FILE: packages/coding-agent/src/modes/interactive/components/login-dialog.ts class LoginDialogComponent (line 11) | class LoginDialogComponent extends Container implements Focusable { method focused (line 21) | get focused(): boolean { method focused (line 24) | set focused(value: boolean) { method constructor (line 29) | constructor( method signal (line 67) | get signal(): AbortSignal { method cancel (line 71) | private cancel(): void { method showAuth (line 84) | showAuth(url: string, instructions?: string): void { method showManualInput (line 108) | showManualInput(prompt: string): Promise { method showPrompt (line 125) | showPrompt(message: string, placeholder?: string): Promise { method showWaiting (line 152) | showWaiting(message: string): void { method showProgress (line 162) | showProgress(message: string): void { method handleInput (line 167) | handleInput(data: string): void { FILE: packages/coding-agent/src/modes/interactive/components/model-selector.ts type ModelItem (line 18) | interface ModelItem { type ScopedModelItem (line 24) | interface ScopedModelItem { type ModelScope (line 29) | type ModelScope = "all" | "scoped"; class ModelSelectorComponent (line 34) | class ModelSelectorComponent extends Container implements Focusable { method focused (line 39) | get focused(): boolean { method focused (line 42) | set focused(value: boolean) { method constructor (line 64) | constructor( method loadModels (line 137) | private async loadModels(): Promise { method sortModels (line 183) | private sortModels(models: ModelItem[]): ModelItem[] { method getScopeText (line 196) | private getScopeText(): string { method getScopeHintText (line 202) | private getScopeHintText(): string { method setScope (line 206) | private setScope(scope: ModelScope): void { method filterModels (line 217) | private filterModels(query: string): void { method updateList (line 229) | private updateList(): void { method handleInput (line 286) | handleInput(keyData: string): void { method handleSelect (line 328) | private handleSelect(model: Model): void { method getSearchInput (line 334) | getSearchInput(): Input { FILE: packages/coding-agent/src/modes/interactive/components/oauth-selector.ts class OAuthSelectorComponent (line 11) | class OAuthSelectorComponent extends Container { method constructor (line 20) | constructor( method loadProviders (line 58) | private loadProviders(): void { method updateList (line 62) | private updateList(): void { method handleInput (line 97) | handleInput(keyData: string): void { FILE: packages/coding-agent/src/modes/interactive/components/scoped-models-selector.ts type EnabledIds (line 17) | type EnabledIds = string[] | null; function isEnabled (line 19) | function isEnabled(enabledIds: EnabledIds, id: string): boolean { function toggle (line 23) | function toggle(enabledIds: EnabledIds, id: string): EnabledIds { function enableAll (line 30) | function enableAll(enabledIds: EnabledIds, allIds: string[], targetIds?:... function clearAll (line 40) | function clearAll(enabledIds: EnabledIds, allIds: string[], targetIds?: ... function move (line 48) | function move(enabledIds: EnabledIds, allIds: string[], id: string, delt... function getSortedIds (line 59) | function getSortedIds(enabledIds: EnabledIds, allIds: string[]): string[] { type ModelItem (line 65) | interface ModelItem { type ModelsConfig (line 71) | interface ModelsConfig { type ModelsCallbacks (line 78) | interface ModelsCallbacks { class ScopedModelsSelectorComponent (line 96) | class ScopedModelsSelectorComponent extends Container implements Focusab... method focused (line 106) | get focused(): boolean { method focused (line 109) | set focused(value: boolean) { method constructor (line 119) | constructor(config: ModelsConfig, callbacks: ModelsCallbacks) { method buildItems (line 157) | private buildItems(): ModelItem[] { method getFooterText (line 168) | private getFooterText(): string { method refresh (line 178) | private refresh(): void { method updateList (line 187) | private updateList(): void { method handleInput (line 226) | handleInput(data: string): void { method getSearchInput (line 343) | getSearchInput(): Input { FILE: packages/coding-agent/src/modes/interactive/components/session-selector-search.ts type SortMode (line 4) | type SortMode = "threaded" | "recent" | "relevance"; type NameFilter (line 6) | type NameFilter = "all" | "named"; type ParsedSearchQuery (line 8) | interface ParsedSearchQuery { type MatchResult (line 16) | interface MatchResult { function normalizeWhitespaceLower (line 22) | function normalizeWhitespaceLower(text: string): string { function getSessionSearchText (line 26) | function getSessionSearchText(session: SessionInfo): string { function hasSessionName (line 30) | function hasSessionName(session: SessionInfo): boolean { function matchesNameFilter (line 34) | function matchesNameFilter(session: SessionInfo, filter: NameFilter): bo... function parseSearchQuery (line 39) | function parseSearchQuery(query: string): ParsedSearchQuery { function matchSession (line 116) | function matchSession(session: SessionInfo, parsed: ParsedSearchQuery): ... function filterAndSortSessions (line 156) | function filterAndSortSessions( FILE: packages/coding-agent/src/modes/interactive/components/session-selector.ts type SessionScope (line 23) | type SessionScope = "current" | "all"; function shortenPath (line 25) | function shortenPath(path: string): string { function formatSessionDate (line 34) | function formatSessionDate(date: Date): string { class SessionSelectorHeader (line 50) | class SessionSelectorHeader implements Component { method constructor (line 63) | constructor(scope: SessionScope, sortMode: SortMode, nameFilter: NameF... method setScope (line 70) | setScope(scope: SessionScope): void { method setSortMode (line 74) | setSortMode(sortMode: SortMode): void { method setNameFilter (line 78) | setNameFilter(nameFilter: NameFilter): void { method setLoading (line 82) | setLoading(loading: boolean): void { method setProgress (line 88) | setProgress(loaded: number, total: number): void { method setShowPath (line 92) | setShowPath(showPath: boolean): void { method setShowRenameHint (line 96) | setShowRenameHint(show: boolean): void { method setConfirmingDeletePath (line 100) | setConfirmingDeletePath(path: string | null): void { method clearStatusTimeout (line 104) | private clearStatusTimeout(): void { method setStatusMessage (line 110) | setStatusMessage(msg: { type: "info" | "error"; message: string } | nu... method invalidate (line 122) | invalidate(): void {} method render (line 124) | render(width: number): string[] { type SessionTreeNode (line 184) | interface SessionTreeNode { type FlatSessionNode (line 190) | interface FlatSessionNode { function buildSessionTree (line 202) | function buildSessionTree(sessions: SessionInfo[]): SessionTreeNode[] { function flattenSessionTree (line 237) | function flattenSessionTree(roots: SessionTreeNode[]): FlatSessionNode[] { class SessionList (line 261) | class SessionList implements Component, Focusable { method getSelectedSessionPath (line 262) | public getSelectedSessionPath(): string | undefined { method focused (line 292) | get focused(): boolean { method focused (line 295) | set focused(value: boolean) { method constructor (line 300) | constructor( method setSortMode (line 329) | setSortMode(sortMode: SortMode): void { method setNameFilter (line 334) | setNameFilter(nameFilter: NameFilter): void { method setSessions (line 339) | setSessions(sessions: SessionInfo[], showCwd: boolean): void { method filterSessions (line 345) | private filterSessions(query: string): void { method setConfirmingDeletePath (line 367) | private setConfirmingDeletePath(path: string | null): void { method startDeleteConfirmationForSelectedSession (line 372) | private startDeleteConfirmationForSelectedSession(): void { method invalidate (line 385) | invalidate(): void {} method render (line 387) | render(width: number): string[] { method buildTreePrefix (line 495) | private buildTreePrefix(node: FlatSessionNode): string { method handleInput (line 505) | handleInput(keyData: string): void { type SessionsLoader (line 613) | type SessionsLoader = (onProgress?: SessionListProgress) => Promise { method loadScope (line 897) | private async loadScope(scope: SessionScope, reason: "initial" | "refr... method toggleSortMode (line 963) | private toggleSortMode(): void { method toggleNameFilter (line 971) | private toggleNameFilter(): void { method refreshSessionsAfterMutation (line 978) | private async refreshSessionsAfterMutation(): Promise { method toggleScope (line 982) | private toggleScope(): void { method getSessionList (line 1007) | getSessionList(): SessionList { FILE: packages/coding-agent/src/modes/interactive/components/settings-selector.ts constant SETTINGS_SUBMENU_SELECT_LIST_LAYOUT (line 17) | const SETTINGS_SUBMENU_SELECT_LIST_LAYOUT: SelectListLayoutOptions = { constant THINKING_DESCRIPTIONS (line 22) | const THINKING_DESCRIPTIONS: Record = { type SettingsConfig (line 31) | interface SettingsConfig { type SettingsCallbacks (line 55) | interface SettingsCallbacks { class SelectSubmenu (line 82) | class SelectSubmenu extends Container { method constructor (line 85) | constructor( method handleInput (line 141) | handleInput(data: string): void { class SettingsSelectorComponent (line 149) | class SettingsSelectorComponent extends Container { method constructor (line 152) | constructor(config: SettingsConfig, callbacks: SettingsCallbacks) { method getSettingsList (line 429) | getSettingsList(): SettingsList { FILE: packages/coding-agent/src/modes/interactive/components/show-images-selector.ts constant SHOW_IMAGES_SELECT_LIST_LAYOUT (line 5) | const SHOW_IMAGES_SELECT_LIST_LAYOUT: SelectListLayoutOptions = { class ShowImagesSelectorComponent (line 13) | class ShowImagesSelectorComponent extends Container { method constructor (line 16) | constructor(currentValue: boolean, onSelect: (show: boolean) => void, ... method getSelectList (line 47) | getSelectList(): SelectList { FILE: packages/coding-agent/src/modes/interactive/components/skill-invocation-message.ts class SkillInvocationMessageComponent (line 11) | class SkillInvocationMessageComponent extends Box { method constructor (line 16) | constructor(skillBlock: ParsedSkillBlock, markdownTheme: MarkdownTheme... method setExpanded (line 23) | setExpanded(expanded: boolean): void { method invalidate (line 28) | override invalidate(): void { method updateDisplay (line 33) | private updateDisplay(): void { FILE: packages/coding-agent/src/modes/interactive/components/theme-selector.ts constant THEME_SELECT_LIST_LAYOUT (line 5) | const THEME_SELECT_LIST_LAYOUT: SelectListLayoutOptions = { class ThemeSelectorComponent (line 13) | class ThemeSelectorComponent extends Container { method constructor (line 17) | constructor( method getSelectList (line 64) | getSelectList(): SelectList { FILE: packages/coding-agent/src/modes/interactive/components/thinking-selector.ts constant THINKING_SELECT_LIST_LAYOUT (line 6) | const THINKING_SELECT_LIST_LAYOUT: SelectListLayoutOptions = { constant LEVEL_DESCRIPTIONS (line 11) | const LEVEL_DESCRIPTIONS: Record = { class ThinkingSelectorComponent (line 23) | class ThinkingSelectorComponent extends Container { method constructor (line 26) | constructor( method getSelectList (line 71) | getSelectList(): SelectList { FILE: packages/coding-agent/src/modes/interactive/components/tool-execution.ts constant BASH_PREVIEW_LINES (line 27) | const BASH_PREVIEW_LINES = 5; constant WRITE_PARTIAL_FULL_HIGHLIGHT_LINES (line 30) | const WRITE_PARTIAL_FULL_HIGHLIGHT_LINES = 50; function shortenPath (line 35) | function shortenPath(path: unknown): string { function replaceTabs (line 47) | function replaceTabs(text: string): string { function normalizeDisplayText (line 55) | function normalizeDisplayText(text: string): string { function str (line 60) | function str(value: unknown): string | null { type ToolExecutionOptions (line 66) | interface ToolExecutionOptions { type WriteHighlightCache (line 70) | type WriteHighlightCache = { class ToolExecutionComponent (line 81) | class ToolExecutionComponent extends Container { method constructor (line 111) | constructor( method shouldUseBuiltInRenderer (line 149) | private shouldUseBuiltInRenderer(): boolean { method updateArgs (line 155) | updateArgs(args: any): void { method markExecutionStarted (line 163) | markExecutionStarted(): void { method ensureBashElapsedTimer (line 171) | private ensureBashElapsedTimer(): void { method stopBashElapsedTimer (line 180) | private stopBashElapsedTimer(): void { method getBashDurationMs (line 186) | private getBashDurationMs(): number | undefined { method formatDuration (line 191) | private formatDuration(ms: number): string { method highlightSingleLine (line 195) | private highlightSingleLine(line: string, lang: string): string { method refreshWriteHighlightPrefix (line 200) | private refreshWriteHighlightPrefix(cache: WriteHighlightCache): void { method rebuildWriteHighlightCacheFull (line 212) | private rebuildWriteHighlightCacheFull(rawPath: string | null, fileCon... method updateWriteHighlightCacheIncremental (line 230) | private updateWriteHighlightCacheIncremental(): void { method setArgsComplete (line 291) | setArgsComplete(): void { method maybeComputeEditDiff (line 306) | private maybeComputeEditDiff(): void { method updateResult (line 335) | updateResult( method maybeConvertImagesForKitty (line 368) | private maybeConvertImagesForKitty(): void { method setExpanded (line 395) | setExpanded(expanded: boolean): void { method setShowImages (line 400) | setShowImages(show: boolean): void { method invalidate (line 405) | override invalidate(): void { method render (line 410) | override render(width: number): string[] { method updateDisplay (line 417) | private updateDisplay(): void { method renderBashContent (line 549) | private renderBashContent(): void { method getTextOutput (line 636) | private getTextOutput(): string { method formatToolExecution (line 663) | private formatToolExecution(): string { FILE: packages/coding-agent/src/modes/interactive/components/tree-selector.ts type GutterInfo (line 19) | interface GutterInfo { type FlatNode (line 25) | interface FlatNode { type FilterMode (line 40) | type FilterMode = "default" | "no-tools" | "user-only" | "labeled-only" ... type ToolCallInfo (line 46) | interface ToolCallInfo { class TreeList (line 51) | class TreeList implements Component { method constructor (line 71) | constructor( method findNearestVisibleIndex (line 96) | private findNearestVisibleIndex(entryId: string | null): number { method buildActivePath (line 123) | private buildActivePath(): void { method flattenTree (line 143) | private flattenTree(roots: SessionTreeNode[]): FlatNode[] { method applyFilter (line 273) | private applyFilter(): void { method recalculateVisualStructure (line 377) | private recalculateVisualStructure(): void { method getSearchableText (line 503) | private getSearchableText(node: SessionTreeNode): string { method invalidate (line 560) | invalidate(): void {} method getSearchQuery (line 562) | getSearchQuery(): string { method getSelectedNode (line 566) | getSelectedNode(): SessionTreeNode | undefined { method updateNodeLabel (line 570) | updateNodeLabel(entryId: string, label: string | undefined): void { method getFilterLabel (line 579) | private getFilterLabel(): string { method render (line 594) | render(width: number): string[] { method getEntryDisplayText (line 689) | private getEntryDisplayText(node: SessionTreeNode, isSelected: boolean... method extractContent (line 775) | private extractContent(content: unknown): string { method hasTextContent (line 791) | private hasTextContent(content: unknown): boolean { method formatToolCall (line 804) | private formatToolCall(name: string, args: Record): s... method handleInput (line 862) | handleInput(keyData: string): void { method isFoldable (line 971) | private isFoldable(entryId: string): boolean { method findBranchSegmentStart (line 987) | private findBranchSegmentStart(direction: "up" | "down"): number { class SearchLine (line 1019) | class SearchLine implements Component { method constructor (line 1020) | constructor(private treeList: TreeList) {} method invalidate (line 1022) | invalidate(): void {} method render (line 1024) | render(width: number): string[] { method handleInput (line 1032) | handleInput(_keyData: string): void {} class LabelInput (line 1036) | class LabelInput implements Component, Focusable { method focused (line 1044) | get focused(): boolean { method focused (line 1047) | set focused(value: boolean) { method constructor (line 1052) | constructor(entryId: string, currentLabel: string | undefined) { method invalidate (line 1060) | invalidate(): void {} method render (line 1062) | render(width: number): string[] { method handleInput (line 1077) | handleInput(keyData: string): void { class TreeSelectorComponent (line 1093) | class TreeSelectorComponent extends Container implements Focusable { method focused (line 1102) | get focused(): boolean { method focused (line 1105) | set focused(value: boolean) { method constructor (line 1113) | constructor( method showLabelInput (line 1162) | private showLabelInput(entryId: string, currentLabel: string | undefin... method hideLabelInput (line 1179) | private hideLabelInput(): void { method handleInput (line 1186) | handleInput(keyData: string): void { method getTreeList (line 1194) | getTreeList(): TreeList { FILE: packages/coding-agent/src/modes/interactive/components/user-message-selector.ts type UserMessageItem (line 5) | interface UserMessageItem { class UserMessageList (line 14) | class UserMessageList implements Component { method constructor (line 21) | constructor(messages: UserMessageItem[]) { method invalidate (line 28) | invalidate(): void { method render (line 32) | render(width: number): string[] { method handleInput (line 80) | handleInput(keyData: string): void { class UserMessageSelectorComponent (line 109) | class UserMessageSelectorComponent extends Container { method constructor (line 112) | constructor(messages: UserMessageItem[], onSelect: (entryId: string) =... method getMessageList (line 140) | getMessageList(): UserMessageList { FILE: packages/coding-agent/src/modes/interactive/components/user-message.ts constant OSC133_ZONE_START (line 4) | const OSC133_ZONE_START = "\x1b]133;A\x07"; constant OSC133_ZONE_END (line 5) | const OSC133_ZONE_END = "\x1b]133;B\x07"; constant OSC133_ZONE_FINAL (line 6) | const OSC133_ZONE_FINAL = "\x1b]133;C\x07"; class UserMessageComponent (line 11) | class UserMessageComponent extends Container { method constructor (line 12) | constructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTh... method render (line 23) | override render(width: number): string[] { FILE: packages/coding-agent/src/modes/interactive/components/visual-truncate.ts type VisualTruncateResult (line 8) | interface VisualTruncateResult { function truncateToVisualLines (line 27) | function truncateToVisualLines( FILE: packages/coding-agent/src/modes/interactive/interactive-mode.ts type Expandable (line 114) | interface Expandable { function isExpandable (line 118) | function isExpandable(obj: unknown): obj is Expandable { type CompactionQueuedMessage (line 122) | type CompactionQueuedMessage = { type InteractiveModeOptions (line 130) | interface InteractiveModeOptions { class InteractiveMode (line 145) | class InteractiveMode { method agent (line 242) | private get agent() { method sessionManager (line 245) | private get sessionManager() { method settingsManager (line 248) | private get settingsManager() { method constructor (line 252) | constructor( method setupAutocomplete (line 289) | private setupAutocomplete(fdPath: string | undefined): void { method init (line 366) | async init(): Promise { method updateTerminalTitle (line 495) | private updateTerminalTitle(): void { method run (line 509) | async run(): Promise { method checkForNewVersion (line 585) | private async checkForNewVersion(): Promise { method checkForPackageUpdates (line 607) | private async checkForPackageUpdates(): Promise { method checkTmuxKeyboardSetup (line 625) | private async checkTmuxKeyboardSetup(): Promise { method getChangelogForDisplay (line 676) | private getChangelogForDisplay(): string | undefined { method getMarkdownThemeWithSettings (line 701) | private getMarkdownThemeWithSettings(): MarkdownTheme { method formatDisplayPath (line 712) | private formatDisplayPath(p: string): string { method getShortPath (line 727) | private getShortPath(fullPath: string, source: string): string { method getDisplaySourceInfo (line 744) | private getDisplaySourceInfo( method getScopeGroup (line 770) | private getScopeGroup(source: string, scope: string): "user" | "projec... method isPackageSource (line 777) | private isPackageSource(source: string): boolean { method buildScopeGroups (line 781) | private buildScopeGroups( method formatScopeGroups (line 815) | private formatScopeGroups( method findMetadata (line 849) | private findMetadata( method formatPathWithSource (line 871) | private formatPathWithSource( method formatDiagnostics (line 888) | private formatDiagnostics( method showLoadedResources (line 945) | private showLoadedResources(options?: { method initExtensions (line 1082) | private async initExtensions(): Promise { method getRegisteredToolDefinition (line 1183) | private getRegisteredToolDefinition(toolName: string) { method setupExtensionShortcuts (line 1192) | private setupExtensionShortcuts(extensionRunner: ExtensionRunner): void { method setExtensionStatus (line 1246) | private setExtensionStatus(key: string, text: string | undefined): void { method setExtensionWidget (line 1254) | private setExtensionWidget( method clearExtensionWidgets (line 1296) | private clearExtensionWidgets(): void { method resetExtensionUI (line 1308) | private resetExtensionUI(): void { method renderWidgets (line 1339) | private renderWidgets(): void { method renderWidgetContainer (line 1346) | private renderWidgetContainer( method setExtensionFooter (line 1372) | private setExtensionFooter( method setExtensionHeader (line 1405) | private setExtensionHeader(factory: ((tui: TUI, thm: Theme) => Compone... method addExtensionTerminalInputListener (line 1440) | private addExtensionTerminalInputListener( method clearExtensionTerminalInputListeners (line 1451) | private clearExtensionTerminalInputListeners(): void { method createExtensionUIContext (line 1461) | private createExtensionUIContext(): ExtensionUIContext { method showExtensionSelector (line 1521) | private showExtensionSelector( method hideExtensionSelector (line 1564) | private hideExtensionSelector(): void { method showExtensionConfirm (line 1576) | private async showExtensionConfirm( method showExtensionInput (line 1588) | private showExtensionInput( method hideExtensionInput (line 1631) | private hideExtensionInput(): void { method showExtensionEditor (line 1643) | private showExtensionEditor(title: string, prefill?: string): Promise<... method hideExtensionEditor (line 1670) | private hideExtensionEditor(): void { method setCustomEditorComponent (line 1682) | private setCustomEditorComponent( method showExtensionNotify (line 1751) | private showExtensionNotify(message: string, type?: "info" | "warning"... method showExtensionCustom (line 1762) | private async showExtensionCustom( method showExtensionError (line 1843) | private showExtensionError(extensionPath: string, error: string, stack... method setupKeyHandlers (line 1865) | private setupKeyHandlers(): void { method handleClipboardImagePaste (line 1931) | private async handleClipboardImagePaste(): Promise { method setupEditorSubmitHandler (line 1953) | private setupEditorSubmitHandler(): void { method subscribeToAgent (line 2124) | private subscribeToAgent(): void { method handleEvent (line 2130) | private async handleEvent(event: AgentSessionEvent): Promise { method getUserMessageText (line 2421) | private getUserMessageText(message: Message): string { method showStatus (line 2436) | private showStatus(message: string): void { method addMessageToChat (line 2456) | private addMessageToChat(message: AgentMessage, options?: { populateHi... method renderSessionContext (line 2551) | private renderSessionContext( method renderInitialMessages (line 2613) | renderInitialMessages(): void { method getUserInput (line 2630) | async getUserInput(): Promise { method rebuildChatFromMessages (line 2639) | private rebuildChatFromMessages(): void { method handleCtrlC (line 2649) | private handleCtrlC(): void { method handleCtrlD (line 2659) | private handleCtrlD(): void { method shutdown (line 2670) | private async shutdown(): Promise { method checkShutdownRequested (line 2697) | private async checkShutdownRequested(): Promise { method handleCtrlZ (line 2702) | private handleCtrlZ(): void { method handleFollowUp (line 2722) | private async handleFollowUp(): Promise { method handleDequeue (line 2753) | private handleDequeue(): void { method updateEditorBorderColor (line 2762) | private updateEditorBorderColor(): void { method cycleThinkingLevel (line 2772) | private cycleThinkingLevel(): void { method cycleModel (line 2783) | private async cycleModel(direction: "forward" | "backward"): Promise void) => { component: Compon... method showSettingsSelector (line 3144) | private showSettingsSelector(): void { method handleModelCommand (line 3278) | private async handleModelCommand(searchTerm?: string): Promise { method findExactModelMatch (line 3301) | private async findExactModelMatch(searchTerm: string): Promise[]> { method updateAvailableProviderCount (line 3320) | private async updateAvailableProviderCount(): Promise { method showModelSelector (line 3326) | private showModelSelector(initialSearchInput?: string): void { method showModelsSelector (line 3357) | private async showModelsSelector(): Promise { method showUserMessageSelector (line 3475) | private showUserMessageSelector(): void { method showTreeSelector (line 3510) | private showTreeSelector(initialSelectedId?: string): void { method showSessionSelector (line 3638) | private showSessionSelector(): void { method handleResumeSession (line 3673) | private async handleResumeSession(sessionPath: string): Promise { method showOAuthSelector (line 3697) | private async showOAuthSelector(mode: "login" | "logout"): Promise { method handleReloadCommand (line 3837) | private async handleReloadCommand(): Promise { method handleExportCommand (line 3914) | private async handleExportCommand(text: string): Promise { method handleImportCommand (line 3931) | private async handleImportCommand(text: string): Promise { method handleShareCommand (line 3975) | private async handleShareCommand(): Promise { method handleCopyCommand (line 4069) | private async handleCopyCommand(): Promise { method handleNameCommand (line 4084) | private handleNameCommand(text: string): void { method handleSessionCommand (line 4105) | private handleSessionCommand(): void { method handleChangelogCommand (line 4142) | private handleChangelogCommand(): void { method capitalizeKey (line 4166) | private capitalizeKey(key: string): string { method getAppKeyDisplay (line 4181) | private getAppKeyDisplay(action: AppKeybinding): string { method getEditorKeyDisplay (line 4188) | private getEditorKeyDisplay(action: Keybinding): string { method handleHotkeysCommand (line 4192) | private handleHotkeysCommand(): void { method handleClearCommand (line 4309) | private async handleClearCommand(): Promise { method handleDebugCommand (line 4334) | private handleDebugCommand(): void { method handleArminSaysHi (line 4367) | private handleArminSaysHi(): void { method handleDaxnuts (line 4373) | private handleDaxnuts(): void { method checkDaxnutsEasterEgg (line 4379) | private checkDaxnutsEasterEgg(model: { provider: string; id: string })... method handleBashCommand (line 4385) | private async handleBashCommand(command: string, excludeFromContext = ... method handleCompactCommand (line 4474) | private async handleCompactCommand(customInstructions?: string): Promi... method executeCompaction (line 4486) | private async executeCompaction(customInstructions?: string, isAuto = ... method stop (line 4542) | stop(): void { FILE: packages/coding-agent/src/modes/interactive/theme/theme.ts type ColorValue (line 19) | type ColorValue = Static; type ThemeJson (line 94) | type ThemeJson = Static; type ThemeColor (line 98) | type ThemeColor = type ThemeBg (line 145) | type ThemeBg = type ColorMode (line 153) | type ColorMode = "truecolor" | "256color"; function detectColorMode (line 159) | function detectColorMode(): ColorMode { function hexToRgb (line 186) | function hexToRgb(hex: string): { r: number; g: number; b: number } { constant CUBE_VALUES (line 201) | const CUBE_VALUES = [0, 95, 135, 175, 215, 255]; constant GRAY_VALUES (line 204) | const GRAY_VALUES = Array.from({ length: 24 }, (_, i) => 8 + i * 10); function findClosestCubeIndex (line 206) | function findClosestCubeIndex(value: number): number { function findClosestGrayIndex (line 219) | function findClosestGrayIndex(gray: number): number { function colorDistance (line 232) | function colorDistance(r1: number, g1: number, b1: number, r2: number, g... function rgbTo256 (line 240) | function rgbTo256(r: number, g: number, b: number): number { function hexTo256 (line 273) | function hexTo256(hex: string): number { function fgAnsi (line 278) | function fgAnsi(color: string | number, mode: ColorMode): string { function bgAnsi (line 293) | function bgAnsi(color: string | number, mode: ColorMode): string { function resolveVarRefs (line 308) | function resolveVarRefs( function resolveThemeColors (line 326) | function resolveThemeColors>( class Theme (line 341) | class Theme { method constructor (line 348) | constructor( method fg (line 367) | fg(color: ThemeColor, text: string): string { method bg (line 373) | bg(color: ThemeBg, text: string): string { method bold (line 379) | bold(text: string): string { method italic (line 383) | italic(text: string): string { method underline (line 387) | underline(text: string): string { method inverse (line 391) | inverse(text: string): string { method strikethrough (line 395) | strikethrough(text: string): string { method getFgAnsi (line 399) | getFgAnsi(color: ThemeColor): string { method getBgAnsi (line 405) | getBgAnsi(color: ThemeBg): string { method getColorMode (line 411) | getColorMode(): ColorMode { method getThinkingBorderColor (line 415) | getThinkingBorderColor(level: "off" | "minimal" | "low" | "medium" | "... method getBashModeBorderColor (line 435) | getBashModeBorderColor(): (str: string) => string { constant BUILTIN_THEMES (line 444) | let BUILTIN_THEMES: Record | undefined; function getBuiltinThemes (line 446) | function getBuiltinThemes(): Record { function getAvailableThemes (line 459) | function getAvailableThemes(): string[] { type ThemeInfo (line 476) | interface ThemeInfo { function getAvailableThemesWithPaths (line 481) | function getAvailableThemesWithPaths(): ThemeInfo[] { function parseThemeJson (line 512) | function parseThemeJson(label: string, json: unknown): ThemeJson { function parseThemeJsonContent (line 545) | function parseThemeJsonContent(label: string, content: string): ThemeJson { function loadThemeJson (line 555) | function loadThemeJson(name: string): ThemeJson { function createTheme (line 577) | function createTheme(themeJson: ThemeJson, mode?: ColorMode, sourcePath?... function loadThemeFromPath (line 603) | function loadThemeFromPath(themePath: string, mode?: ColorMode): Theme { function loadTheme (line 609) | function loadTheme(name: string, mode?: ColorMode): Theme { function getThemeByName (line 618) | function getThemeByName(name: string): Theme | undefined { function detectTerminalBackground (line 626) | function detectTerminalBackground(): "dark" | "light" { function getDefaultTheme (line 641) | function getDefaultTheme(): string { constant THEME_KEY (line 650) | const THEME_KEY = Symbol.for("@mariozechner/pi-coding-agent:theme"); method get (line 655) | get(_target, prop) { function setGlobalTheme (line 662) | function setGlobalTheme(t: Theme): void { function setRegisteredThemes (line 672) | function setRegisteredThemes(themes: Theme[]): void { function initTheme (line 681) | function initTheme(themeName?: string, enableWatcher: boolean = false): ... function setTheme (line 697) | function setTheme(name: string, enableWatcher: boolean = false): { succe... function setThemeInstance (line 720) | function setThemeInstance(themeInstance: Theme): void { function onThemeChange (line 729) | function onThemeChange(callback: () => void): void { function startThemeWatcher (line 733) | function startThemeWatcher(): void { function stopThemeWatcher (line 803) | function stopThemeWatcher(): void { function ansi256ToHex (line 824) | function ansi256ToHex(index: number): string { function getResolvedThemeColors (line 868) | function getResolvedThemeColors(themeName?: string): Record string>; function buildCliHighlightTheme (line 946) | function buildCliHighlightTheme(t: Theme): CliHighlightTheme { function getCliHighlightTheme (line 966) | function getCliHighlightTheme(t: Theme): CliHighlightTheme { function highlightCode (line 978) | function highlightCode(code: string, lang?: string): string[] { function getLanguageFromPath (line 996) | function getLanguageFromPath(filePath: string): string | undefined { function getMarkdownTheme (line 1064) | function getMarkdownTheme(): MarkdownTheme { function getSelectListTheme (line 1097) | function getSelectListTheme(): SelectListTheme { function getEditorTheme (line 1107) | function getEditorTheme(): EditorTheme { function getSettingsListTheme (line 1114) | function getSettingsListTheme(): import("@mariozechner/pi-tui").Settings... FILE: packages/coding-agent/src/modes/print-mode.ts type PrintModeOptions (line 15) | interface PrintModeOptions { function runPrintMode (line 30) | async function runPrintMode(session: AgentSession, options: PrintModeOpt... FILE: packages/coding-agent/src/modes/rpc/jsonl.ts function serializeJsonLine (line 10) | function serializeJsonLine(value: unknown): string { function attachJsonlLineReader (line 21) | function attachJsonlLineReader(stream: Readable, onLine: (line: string) ... FILE: packages/coding-agent/src/modes/rpc/rpc-client.ts type DistributiveOmit (line 21) | type DistributiveOmit = T extends unknown ? Omit; type RpcClientOptions (line 26) | interface RpcClientOptions { type ModelInfo (line 41) | interface ModelInfo { type RpcEventListener (line 48) | type RpcEventListener = (event: AgentEvent) => void; class RpcClient (line 54) | class RpcClient { method constructor (line 63) | constructor(private options: RpcClientOptions = {}) {} method start (line 68) | async start(): Promise { method stop (line 113) | async stop(): Promise { method onEvent (line 140) | onEvent(listener: RpcEventListener): () => void { method getStderr (line 153) | getStderr(): string { method prompt (line 166) | async prompt(message: string, images?: ImageContent[]): Promise { method steer (line 173) | async steer(message: string, images?: ImageContent[]): Promise { method followUp (line 180) | async followUp(message: string, images?: ImageContent[]): Promise { method abort (line 187) | async abort(): Promise { method newSession (line 196) | async newSession(parentSession?: string): Promise<{ cancelled: boolean... method getState (line 204) | async getState(): Promise { method setModel (line 212) | async setModel(provider: string, modelId: string): Promise<{ provider:... method cycleModel (line 220) | async cycleModel(): Promise<{ method getAvailableModels (line 232) | async getAvailableModels(): Promise { method setThinkingLevel (line 240) | async setThinkingLevel(level: ThinkingLevel): Promise { method cycleThinkingLevel (line 247) | async cycleThinkingLevel(): Promise<{ level: ThinkingLevel } | null> { method setSteeringMode (line 255) | async setSteeringMode(mode: "all" | "one-at-a-time"): Promise { method setFollowUpMode (line 262) | async setFollowUpMode(mode: "all" | "one-at-a-time"): Promise { method compact (line 269) | async compact(customInstructions?: string): Promise { method setAutoCompaction (line 277) | async setAutoCompaction(enabled: boolean): Promise { method setAutoRetry (line 284) | async setAutoRetry(enabled: boolean): Promise { method abortRetry (line 291) | async abortRetry(): Promise { method bash (line 298) | async bash(command: string): Promise { method abortBash (line 306) | async abortBash(): Promise { method getSessionStats (line 313) | async getSessionStats(): Promise { method exportHtml (line 321) | async exportHtml(outputPath?: string): Promise<{ path: string }> { method switchSession (line 330) | async switchSession(sessionPath: string): Promise<{ cancelled: boolean... method fork (line 339) | async fork(entryId: string): Promise<{ text: string; cancelled: boolea... method getForkMessages (line 347) | async getForkMessages(): Promise { method setSessionName (line 363) | async setSessionName(name: string): Promise { method getMessages (line 370) | async getMessages(): Promise { method getCommands (line 378) | async getCommands(): Promise { method waitForIdle (line 391) | waitForIdle(timeout = 60000): Promise { method collectEvents (line 411) | collectEvents(timeout = 60000): Promise { method promptAndWait (line 433) | async promptAndWait(message: string, images?: ImageContent[], timeout ... method handleLine (line 443) | private handleLine(line: string): void { method send (line 464) | private async send(command: RpcCommandBody): Promise { method getData (line 495) | private getData(response: RpcResponse): T { FILE: packages/coding-agent/src/modes/rpc/rpc-mode.ts function runRpcMode (line 45) | async function runRpcMode(session: AgentSession): Promise { FILE: packages/coding-agent/src/modes/rpc/rpc-types.ts type RpcCommand (line 18) | type RpcCommand = type RpcSlashCommand (line 74) | interface RpcSlashCommand { type RpcSessionState (line 91) | interface RpcSessionState { type RpcResponse (line 111) | type RpcResponse = type RpcExtensionUIRequest (line 212) | type RpcExtensionUIRequest = type RpcExtensionUIResponse (line 254) | type RpcExtensionUIResponse = type RpcCommandType (line 263) | type RpcCommandType = RpcCommand["type"]; FILE: packages/coding-agent/src/utils/changelog.ts type ChangelogEntry (line 3) | interface ChangelogEntry { function parseChangelog (line 14) | function parseChangelog(changelogPath: string): ChangelogEntry[] { function compareVersions (line 76) | function compareVersions(v1: ChangelogEntry, v2: ChangelogEntry): number { function getNewEntries (line 85) | function getNewEntries(entries: ChangelogEntry[], lastVersion: string): ... FILE: packages/coding-agent/src/utils/child-process.ts constant EXIT_STDIO_GRACE_MS (line 3) | const EXIT_STDIO_GRACE_MS = 100; function waitForChildProcess (line 13) | function waitForChildProcess(child: ChildProcess): Promise { FILE: packages/coding-agent/src/utils/clipboard-image.ts type ClipboardImage (line 10) | type ClipboardImage = { constant SUPPORTED_IMAGE_MIME_TYPES (line 15) | const SUPPORTED_IMAGE_MIME_TYPES = ["image/png", "image/jpeg", "image/we... constant DEFAULT_LIST_TIMEOUT_MS (line 17) | const DEFAULT_LIST_TIMEOUT_MS = 1000; constant DEFAULT_READ_TIMEOUT_MS (line 18) | const DEFAULT_READ_TIMEOUT_MS = 3000; constant DEFAULT_POWERSHELL_TIMEOUT_MS (line 19) | const DEFAULT_POWERSHELL_TIMEOUT_MS = 5000; constant DEFAULT_MAX_BUFFER_BYTES (line 20) | const DEFAULT_MAX_BUFFER_BYTES = 50 * 1024 * 1024; function isWaylandSession (line 22) | function isWaylandSession(env: NodeJS.ProcessEnv = process.env): boolean { function baseMimeType (line 26) | function baseMimeType(mimeType: string): string { function extensionForImageMimeType (line 30) | function extensionForImageMimeType(mimeType: string): string | null { function selectPreferredImageMimeType (line 45) | function selectPreferredImageMimeType(mimeTypes: string[]): string | null { function isSupportedImageMimeType (line 62) | function isSupportedImageMimeType(mimeType: string): boolean { function convertToPng (line 71) | async function convertToPng(bytes: Uint8Array): Promise { FILE: packages/coding-agent/src/utils/exif-orientation.ts type Photon (line 3) | type Photon = typeof import("@silvia-odwyer/photon-node"); function readOrientationFromTiff (line 5) | function readOrientationFromTiff(bytes: Uint8Array, tiffStart: number): ... function findJpegTiffOffset (line 39) | function findJpegTiffOffset(bytes: Uint8Array): number { function findWebpTiffOffset (line 65) | function findWebpTiffOffset(bytes: Uint8Array): number { function hasExifHeader (line 87) | function hasExifHeader(bytes: Uint8Array, offset: number): boolean { function getExifOrientation (line 98) | function getExifOrientation(bytes: Uint8Array): number { type DstIndexFn (line 124) | type DstIndexFn = (x: number, y: number, w: number, h: number) => number; function rotate90 (line 126) | function rotate90(photon: Photon, image: PhotonImageType, dstIndex: DstI... function applyExifOrientation (line 147) | function applyExifOrientation( FILE: packages/coding-agent/src/utils/frontmatter.ts type ParsedFrontmatter (line 3) | type ParsedFrontmatter> = { FILE: packages/coding-agent/src/utils/git.ts type GitSource (line 6) | type GitSource = { function splitRef (line 21) | function splitRef(url: string): { repo: string; ref?: string } { function parseGenericGitUrl (line 76) | function parseGenericGitUrl(url: string): GitSource | null { function parseGitUrl (line 134) | function parseGitUrl(source: string): GitSource | null { FILE: packages/coding-agent/src/utils/image-convert.ts function convertToPng (line 8) | async function convertToPng( FILE: packages/coding-agent/src/utils/image-resize.ts type ImageResizeOptions (line 5) | interface ImageResizeOptions { type ResizedImage (line 12) | interface ResizedImage { constant DEFAULT_MAX_BYTES (line 23) | const DEFAULT_MAX_BYTES = 4.5 * 1024 * 1024; constant DEFAULT_OPTIONS (line 25) | const DEFAULT_OPTIONS: Required = { function pickSmaller (line 33) | function pickSmaller( function resizeImage (line 53) | async function resizeImage(img: ImageContent, options?: ImageResizeOptio... function formatDimensionNote (line 228) | function formatDimensionNote(result: ResizedImage): string | undefined { FILE: packages/coding-agent/src/utils/mime.ts constant IMAGE_MIME_TYPES (line 4) | const IMAGE_MIME_TYPES = new Set(["image/jpeg", "image/png", "image/gif"... constant FILE_TYPE_SNIFF_BYTES (line 6) | const FILE_TYPE_SNIFF_BYTES = 4100; function detectSupportedImageMimeTypeFromFile (line 8) | async function detectSupportedImageMimeTypeFromFile(filePath: string): P... FILE: packages/coding-agent/src/utils/photon.ts type ReadFileSync (line 27) | type ReadFileSync = typeof fs.readFileSync; constant WASM_FILENAME (line 29) | const WASM_FILENAME = "photon_rs_bg.wasm"; function pathOrNull (line 35) | function pathOrNull(file: PathOrFileDescriptor): string | null { function getFallbackWasmPaths (line 45) | function getFallbackWasmPaths(): string[] { function patchPhotonWasmRead (line 54) | function patchPhotonWasmRead(): () => void { function loadPhoton (line 116) | async function loadPhoton(): Promise { FILE: packages/coding-agent/src/utils/tools-manager.ts constant TOOLS_DIR (line 11) | const TOOLS_DIR = getBinDir(); constant NETWORK_TIMEOUT_MS (line 12) | const NETWORK_TIMEOUT_MS = 10_000; constant DOWNLOAD_TIMEOUT_MS (line 13) | const DOWNLOAD_TIMEOUT_MS = 120_000; function isOfflineModeEnabled (line 15) | function isOfflineModeEnabled(): boolean { type ToolConfig (line 21) | interface ToolConfig { constant TOOLS (line 29) | const TOOLS: Record = { function commandExists (line 73) | function commandExists(cmd: string): boolean { function getToolPath (line 84) | function getToolPath(tool: "fd" | "rg"): string | null { function getLatestVersion (line 103) | async function getLatestVersion(repo: string): Promise { function downloadFile (line 118) | async function downloadFile(url: string, dest: string): Promise { function findBinaryRecursively (line 135) | function findBinaryRecursively(rootDir: string, binaryFileName: string):... function downloadTool (line 158) | async function downloadTool(tool: "fd" | "rg"): Promise { constant TERMUX_PACKAGES (line 237) | const TERMUX_PACKAGES: Record = { function ensureTool (line 244) | async function ensureTool(tool: "fd" | "rg", silent: boolean = false): P... FILE: packages/coding-agent/test/agent-session-branching.test.ts function createSession (line 44) | function createSession(noSession: boolean = false) { FILE: packages/coding-agent/test/agent-session-compaction.test.ts function createSession (line 48) | function createSession(inMemory = false) { FILE: packages/coding-agent/test/agent-session-concurrent.test.ts class MockAssistantStream (line 20) | class MockAssistantStream extends EventStream) { function toShPath (line 33) | function toShPath(value: string): string { method login (line 307) | async login() { method refreshToken (line 310) | async refreshToken(credentials) { method getApiKey (line 317) | getApiKey(credentials) { FILE: packages/coding-agent/test/bash-close-hang-windows.test.ts function toBashSingleQuotedArg (line 9) | function toBashSingleQuotedArg(value: string): string { function createInheritedStdioCommand (line 13) | function createInheritedStdioCommand(pidFile: string): string { function cleanupDetachedChild (line 28) | function cleanupDetachedChild(pidFile: string): void { function withTimeout (line 43) | async function withTimeout(promise: Promise, ms: number, onTimeout... function getTextOutput (line 63) | function getTextOutput(result: { content?: Array<{ type: string; text?: ... FILE: packages/coding-agent/test/block-images.test.ts constant TINY_PNG_BASE64 (line 10) | const TINY_PNG_BASE64 = FILE: packages/coding-agent/test/clipboard-image-bmp-conversion.test.ts function createTinyBmp1x1Red24bpp (line 10) | function createTinyBmp1x1Red24bpp(): Uint8Array { FILE: packages/coding-agent/test/clipboard-image.test.ts function spawnOk (line 26) | function spawnOk(stdout: Buffer): SpawnSyncReturns { function spawnError (line 37) | function spawnError(error: Error): SpawnSyncReturns { FILE: packages/coding-agent/test/compaction-extensions.test.ts constant API_KEY (line 26) | const API_KEY = process.env.ANTHROPIC_OAUTH_TOKEN || process.env.ANTHROP... function createExtension (line 48) | function createExtension( function createSession (line 86) | function createSession(extensions: Extension[]) { FILE: packages/coding-agent/test/compaction-summary-reasoning.test.ts function createModel (line 18) | function createModel(reasoning: boolean): Model<"anthropic-messages"> { FILE: packages/coding-agent/test/compaction-thinking-model.test.ts constant HAS_ANTIGRAVITY_AUTH (line 31) | const HAS_ANTIGRAVITY_AUTH = hasAuthForProvider("google-antigravity"); constant HAS_ANTHROPIC_AUTH (line 32) | const HAS_ANTHROPIC_AUTH = !!API_KEY; function createSession (line 59) | function createSession( function createSession (line 165) | function createSession(model: Model, thinkingLevel: ThinkingLevel =... FILE: packages/coding-agent/test/compaction.test.ts function loadLargeSessionEntries (line 32) | function loadLargeSessionEntries(): SessionEntry[] { function createMockUsage (line 40) | function createMockUsage(input: number, output: number, cacheRead = 0, c... function createUserMessage (line 51) | function createUserMessage(text: string): AgentMessage { function createAssistantMessage (line 55) | function createAssistantMessage(text: string, usage?: Usage): AssistantM... function resetEntryCounter (line 71) | function resetEntryCounter() { function createMessageEntry (line 81) | function createMessageEntry(message: AgentMessage): SessionMessageEntry { function createCompactionEntry (line 94) | function createCompactionEntry(summary: string, firstKeptEntryId: string... function createModelChangeEntry (line 109) | function createModelChangeEntry(provider: string, modelId: string): Mode... function createThinkingLevelEntry (line 123) | function createThinkingLevelEntry(thinkingLevel: string): ThinkingLevelC... FILE: packages/coding-agent/test/extensions-input-event.test.ts function createRunner (line 25) | async function createRunner(...extensions: string[]) { FILE: packages/coding-agent/test/file-mutation-queue.test.ts function delay (line 9) | function delay(ms: number): Promise { function createTempDir (line 15) | async function createTempDir(): Promise { FILE: packages/coding-agent/test/footer-data-provider.test.ts type WorktreeFixture (line 42) | type WorktreeFixture = { function createPlainReftableRepo (line 47) | function createPlainReftableRepo(tempDir: string): string { function createPlainRepo (line 54) | function createPlainRepo(tempDir: string): string { function createReftableWorktree (line 61) | function createReftableWorktree(tempDir: string): WorktreeFixture { function waitFor (line 80) | async function waitFor(condition: () => boolean, timeoutMs = 3000): Prom... FILE: packages/coding-agent/test/footer-width.test.ts type AssistantUsage (line 8) | type AssistantUsage = { function createSession (line 16) | function createSession(options: { function createFooterData (line 61) | function createFooterData(providerCount: number): ReadonlyFooterDataProv... FILE: packages/coding-agent/test/git-update.test.ts function git (line 19) | function git(args: string[], cwd: string): string { function createCommit (line 31) | function createCommit(repoDir: string, filename: string, content: string... function getCurrentCommit (line 39) | function getCurrentCommit(repoDir: string): string { function getFileContent (line 44) | function getFileContent(repoDir: string, filename: string): string { function setupRemoteAndInstall (line 91) | function setupRemoteAndInstall(sourceOverride?: string): void { FILE: packages/coding-agent/test/image-processing.test.ts constant TINY_PNG (line 10) | const TINY_PNG = constant TINY_JPEG (line 14) | const TINY_JPEG = FILE: packages/coding-agent/test/initial-message.test.ts function createArgs (line 5) | function createArgs(messages: string[] = []): Args { FILE: packages/coding-agent/test/interactive-mode-status.test.ts function renderLastLine (line 6) | function renderLastLine(container: Container, width = 120): string { function renderAll (line 12) | function renderAll(container: Container, width = 120): string { function createShowLoadedResourcesThis (line 116) | function createShowLoadedResourcesThis(options: { FILE: packages/coding-agent/test/keybindings-migration.test.ts function createAgentDir (line 16) | function createAgentDir(config: Record): string { FILE: packages/coding-agent/test/model-registry.test.ts function providerConfig (line 31) | function providerConfig( function writeModelsJson (line 52) | function writeModelsJson(providers: Record) { function providerWithApiKey (line 825) | function providerWithApiKey(apiKey: string) { FILE: packages/coding-agent/test/package-manager.test.ts function normalizeForMatch (line 8) | function normalizeForMatch(value: string): string { function pathEndsWith (line 12) | function pathEndsWith(actualPath: string, suffix: string): boolean { FILE: packages/coding-agent/test/rpc-example.ts function main (line 13) | async function main() { FILE: packages/coding-agent/test/sdk-codex-cache-probe-tool-loop.ts type Transport (line 24) | type Transport = "sse" | "websocket" | "auto"; type Args (line 26) | interface Args { type SubrequestRecord (line 33) | interface SubrequestRecord { constant DEFAULT_TURNS (line 42) | const DEFAULT_TURNS = 20; constant MIN_TURNS (line 43) | const MIN_TURNS = 20; constant MAX_TURNS (line 44) | const MAX_TURNS = 50; constant DEFAULT_MAX_TOKENS (line 45) | const DEFAULT_MAX_TOKENS = 64; function parseArgs (line 47) | function parseArgs(argv: string[]): Args { function printHelp (line 102) | function printHelp(): void { function estimateTokens (line 121) | function estimateTokens(text: string): number { function buildPrompt (line 125) | function buildPrompt(turn: number): string { function createMinimalResourceLoader (line 150) | function createMinimalResourceLoader(systemPrompt: string): ResourceLoad... function getAssistantText (line 165) | function getAssistantText(message: AssistantMessage): string { function deterministicProbeTool (line 178) | function deterministicProbeTool(): ToolDefinition { FILE: packages/coding-agent/test/session-info-modified-timestamp.test.ts function createSessionFile (line 10) | function createSessionFile(path: string): void { FILE: packages/coding-agent/test/session-manager/build-context.test.ts function msg (line 12) | function msg(id: string, parentId: string | null, role: "user" | "assist... function compaction (line 39) | function compaction(id: string, parentId: string | null, summary: string... function branchSummary (line 51) | function branchSummary(id: string, parentId: string | null, summary: str... function thinkingLevel (line 55) | function thinkingLevel(id: string, parentId: string | null, level: strin... function modelChange (line 59) | function modelChange(id: string, parentId: string | null, provider: stri... FILE: packages/coding-agent/test/session-selector-path-delete.test.ts type Deferred (line 8) | type Deferred = { function createDeferred (line 14) | function createDeferred(): Deferred { function flushPromises (line 24) | async function flushPromises(): Promise { function makeSession (line 30) | function makeSession(overrides: Partial & { id: string }): ... constant CTRL_D (line 44) | const CTRL_D = "\x04"; constant CTRL_BACKSPACE (line 45) | const CTRL_BACKSPACE = "\x1b[127;5u"; FILE: packages/coding-agent/test/session-selector-rename.test.ts function flushPromises (line 8) | async function flushPromises(): Promise { function makeSession (line 14) | function makeSession(overrides: Partial & { id: string }): ... constant CTRL_R (line 29) | const CTRL_R = "\x1b[114;5u"; FILE: packages/coding-agent/test/session-selector-search.test.ts function makeSession (line 5) | function makeSession( FILE: packages/coding-agent/test/streaming-render-debug.ts function sleep (line 39) | async function sleep(ms: number): Promise { function main (line 43) | async function main() { FILE: packages/coding-agent/test/test-theme-colors.ts function hexToRgb (line 6) | function hexToRgb(hex: string): [number, number, number] { function rgbToHex (line 11) | function rgbToHex(r: number, g: number, b: number): string { function rgbToHsl (line 24) | function rgbToHsl(r: number, g: number, b: number): [number, number, num... function hslToRgb (line 51) | function hslToRgb(h: number, s: number, l: number): [number, number, num... function getLuminance (line 73) | function getLuminance(r: number, g: number, b: number): number { function getContrast (line 81) | function getContrast(rgb: [number, number, number], bgLum: number): numb... function adjustColorToContrast (line 88) | function adjustColorToContrast(hex: string, targetContrast: number, agai... function fgAnsi (line 114) | function fgAnsi(hex: string): string { function cmdContrast (line 123) | function cmdContrast(targetContrast: number): void { function cmdTest (line 151) | function cmdTest(filePath: string): void { function cmdTheme (line 175) | function cmdTheme(themeName: string): void { FILE: packages/coding-agent/test/tool-execution-component.test.ts function createBaseToolDefinition (line 9) | function createBaseToolDefinition(): ToolDefinition { function createFakeTui (line 22) | function createFakeTui(): TUI { FILE: packages/coding-agent/test/tools.test.ts function getTextOutput (line 16) | function getTextOutput(result: any): string { FILE: packages/coding-agent/test/tree-selector.test.ts function userMessage (line 23) | function userMessage(id: string, parentId: string | null, content: strin... function assistantMessage (line 34) | function assistantMessage(id: string, parentId: string | null, text: str... function toolCallOnlyAssistant (line 61) | function toolCallOnlyAssistant(id: string, parentId: string | null): Ses... function modelChange (line 88) | function modelChange(id: string, parentId: string | null): ModelChangeEn... function buildTree (line 100) | function buildTree(entries: Array): SessionTreeNode[] { function buildBranchingTree (line 343) | function buildBranchingTree() { FILE: packages/coding-agent/test/utilities.ts constant API_KEY (line 24) | const API_KEY = process.env.ANTHROPIC_OAUTH_TOKEN || process.env.ANTHROP... constant AUTH_PATH (line 30) | const AUTH_PATH = join(homedir(), ".pi", "agent", "auth.json"); type ApiKeyCredential (line 32) | type ApiKeyCredential = { type OAuthCredentialEntry (line 37) | type OAuthCredentialEntry = { type AuthCredential (line 41) | type AuthCredential = ApiKeyCredential | OAuthCredentialEntry; type AuthStorageData (line 43) | type AuthStorageData = Record; function loadAuthStorage (line 45) | function loadAuthStorage(): AuthStorageData { function saveAuthStorage (line 57) | function saveAuthStorage(storage: AuthStorageData): void { function resolveApiKey (line 74) | async function resolveApiKey(provider: string): Promise = { function getImageMimeType (line 65) | function getImageMimeType(filename: string): string | undefined { function getMemory (line 69) | function getMemory(channelDir: string): string { function loadMomSkills (line 105) | function loadMomSkills(channelDir: string, workspacePath: string): Skill... function buildSystemPrompt (line 141) | function buildSystemPrompt( function truncate (line 331) | function truncate(text: string, maxLen: number): string { function extractToolResultText (line 336) | function extractToolResultText(result: unknown): string { function formatToolArgsForSlack (line 362) | function formatToolArgsForSlack(_toolName: string, args: Record... class WorkspaceSettingsStorage (line 150) | class WorkspaceSettingsStorage implements MomSettingsStorage { method constructor (line 153) | constructor(workspaceDir: string) { method withLock (line 157) | withLock(scope: "global" | "project", fn: (current: string | undefined... function createMomSettingsManager (line 178) | function createMomSettingsManager(workspaceDir: string): SettingsManager { FILE: packages/mom/src/download.ts type Message (line 3) | interface Message { function formatTs (line 12) | function formatTs(ts: string): string { function formatMessage (line 20) | function formatMessage(ts: string, user: string, text: string, indent = ... function downloadChannel (line 30) | async function downloadChannel(channelId: string, botToken: string): Pro... FILE: packages/mom/src/events.ts type ImmediateEvent (line 12) | interface ImmediateEvent { type OneShotEvent (line 18) | interface OneShotEvent { type PeriodicEvent (line 25) | interface PeriodicEvent { type MomEvent (line 33) | type MomEvent = ImmediateEvent | OneShotEvent | PeriodicEvent; constant DEBOUNCE_MS (line 39) | const DEBOUNCE_MS = 100; constant MAX_RETRIES (line 40) | const MAX_RETRIES = 3; constant RETRY_BASE_MS (line 41) | const RETRY_BASE_MS = 100; class EventsWatcher (line 43) | class EventsWatcher { method constructor (line 51) | constructor( method start (line 61) | start(): void { method stop (line 84) | stop(): void { method debounce (line 113) | private debounce(filename: string, fn: () => void): void { method scanExisting (line 127) | private scanExisting(): void { method handleFileChange (line 141) | private handleFileChange(filename: string): void { method handleDelete (line 157) | private handleDelete(filename: string): void { method cancelScheduled (line 165) | private cancelScheduled(filename: string): void { method handleFile (line 179) | private async handleFile(filename: string): Promise { method parseEvent (line 221) | private parseEvent(content: string, filename: string): MomEvent | null { method handleImmediate (line 258) | private handleImmediate(filename: string, event: ImmediateEvent): void { method handleOneShot (line 278) | private handleOneShot(filename: string, event: OneShotEvent): void { method handlePeriodic (line 301) | private handlePeriodic(filename: string, event: PeriodicEvent): void { method execute (line 318) | private execute(filename: string, event: MomEvent, deleteAfter: boolea... method deleteFile (line 359) | private deleteFile(filename: string): void { method sleep (line 372) | private sleep(ms: number): Promise { function createEventsWatcher (line 380) | function createEventsWatcher(workspaceDir: string, slack: SlackBot): Eve... FILE: packages/mom/src/log.ts type LogContext (line 3) | interface LogContext { function timestamp (line 9) | function timestamp(): string { function formatContext (line 17) | function formatContext(ctx: LogContext): string { function truncate (line 28) | function truncate(text: string, maxLen: number): string { function formatToolArgs (line 33) | function formatToolArgs(args: Record): string { function logUserMessage (line 72) | function logUserMessage(ctx: LogContext, text: string): void { function logToolStart (line 77) | function logToolStart(ctx: LogContext, toolName: string, label: string, ... function logToolSuccess (line 90) | function logToolSuccess(ctx: LogContext, toolName: string, durationMs: n... function logToolError (line 104) | function logToolError(ctx: LogContext, toolName: string, durationMs: num... function logResponseStart (line 117) | function logResponseStart(ctx: LogContext): void { function logThinking (line 121) | function logThinking(ctx: LogContext, thinking: string): void { function logResponse (line 131) | function logResponse(ctx: LogContext, text: string): void { function logDownloadStart (line 142) | function logDownloadStart(ctx: LogContext, filename: string, localPath: ... function logDownloadSuccess (line 147) | function logDownloadSuccess(ctx: LogContext, sizeKB: number): void { function logDownloadError (line 151) | function logDownloadError(ctx: LogContext, filename: string, error: stri... function logStopRequest (line 157) | function logStopRequest(ctx: LogContext): void { function logInfo (line 163) | function logInfo(message: string): void { function logWarning (line 167) | function logWarning(message: string, details?: string): void { function logAgentError (line 178) | function logAgentError(ctx: LogContext | "system", error: string): void { function logUsageSummary (line 189) | function logUsageSummary( function logStartup (line 244) | function logStartup(workingDir: string, sandbox: string): void { function logConnected (line 250) | function logConnected(): void { function logDisconnected (line 255) | function logDisconnected(): void { function logBackfillStart (line 260) | function logBackfillStart(channelCount: number): void { function logBackfillChannel (line 264) | function logBackfillChannel(channelName: string, messageCount: number): ... function logBackfillComplete (line 268) | function logBackfillComplete(totalMessages: number, durationMs: number):... FILE: packages/mom/src/main.ts constant MOM_SLACK_APP_TOKEN (line 16) | const MOM_SLACK_APP_TOKEN = process.env.MOM_SLACK_APP_TOKEN; constant MOM_SLACK_BOT_TOKEN (line 17) | const MOM_SLACK_BOT_TOKEN = process.env.MOM_SLACK_BOT_TOKEN; type ParsedArgs (line 19) | interface ParsedArgs { function parseArgs (line 25) | function parseArgs(): ParsedArgs { type ChannelState (line 85) | interface ChannelState { function getState (line 95) | function getState(channelId: string): ChannelState { function createSlackContext (line 114) | function createSlackContext(event: SlackEvent, slack: SlackBot, state: C... method isRunning (line 282) | isRunning(channelId: string): boolean { method handleStop (line 287) | async handleStop(channelId: string, slack: SlackBot): Promise { method handleEvent (line 299) | async handleEvent(event: SlackEvent, slack: SlackBot, isEvent?: boolean)... FILE: packages/mom/src/sandbox.ts type SandboxConfig (line 3) | type SandboxConfig = { type: "host" } | { type: "docker"; container: str... function parseSandboxArg (line 5) | function parseSandboxArg(value: string): SandboxConfig { function validateSandbox (line 21) | async function validateSandbox(config: SandboxConfig): Promise { function execSimple (line 51) | function execSimple(cmd: string, args: string[]): Promise { function createExecutor (line 72) | function createExecutor(config: SandboxConfig): Executor { type Executor (line 79) | interface Executor { type ExecOptions (line 93) | interface ExecOptions { type ExecResult (line 98) | interface ExecResult { class HostExecutor (line 104) | class HostExecutor implements Executor { method exec (line 105) | async exec(command: string, options?: ExecOptions): Promise { method getWorkspacePath (line 174) | getWorkspacePath(hostPath: string): string { class DockerExecutor (line 179) | class DockerExecutor implements Executor { method constructor (line 180) | constructor(private container: string) {} method exec (line 182) | async exec(command: string, options?: ExecOptions): Promise { method getWorkspacePath (line 189) | getWorkspacePath(_hostPath: string): string { function killProcessTree (line 195) | function killProcessTree(pid: number): void { function shellEscape (line 218) | function shellEscape(s: string): string { FILE: packages/mom/src/slack.ts type SlackEvent (line 12) | interface SlackEvent { type SlackUser (line 23) | interface SlackUser { type SlackChannel (line 29) | interface SlackChannel { type ChannelInfo (line 35) | interface ChannelInfo { type UserInfo (line 40) | interface UserInfo { type SlackContext (line 46) | interface SlackContext { type MomHandler (line 68) | interface MomHandler { type QueuedWork (line 92) | type QueuedWork = () => Promise; class ChannelQueue (line 94) | class ChannelQueue { method enqueue (line 98) | enqueue(work: QueuedWork): void { method size (line 103) | size(): number { method processNext (line 107) | private async processNext(): Promise { class SlackBot (line 125) | class SlackBot { method constructor (line 138) | constructor( method start (line 153) | async start(): Promise { method getUser (line 171) | getUser(userId: string): SlackUser | undefined { method getChannel (line 175) | getChannel(channelId: string): SlackChannel | undefined { method getAllUsers (line 179) | getAllUsers(): SlackUser[] { method getAllChannels (line 183) | getAllChannels(): SlackChannel[] { method postMessage (line 187) | async postMessage(channel: string, text: string): Promise { method updateMessage (line 192) | async updateMessage(channel: string, ts: string, text: string): Promis... method deleteMessage (line 196) | async deleteMessage(channel: string, ts: string): Promise { method postInThread (line 200) | async postInThread(channel: string, threadTs: string, text: string): P... method uploadFile (line 205) | async uploadFile(channel: string, filePath: string, title?: string): P... method logToFile (line 220) | logToFile(channel: string, entry: object): void { method logBotResponse (line 229) | logBotResponse(channel: string, text: string, ts: string): void { method enqueueEvent (line 248) | enqueueEvent(event: SlackEvent): boolean { method getQueue (line 263) | private getQueue(channelId: string): ChannelQueue { method setupEventHandlers (line 272) | private setupEventHandlers(): void { method logUserMessage (line 416) | private logUserMessage(event: SlackEvent): Attachment[] { method getExistingTimestamps (line 437) | private getExistingTimestamps(channelId: string): Set { method backfillChannel (line 453) | private async backfillChannel(channelId: string): Promise { method backfillAllChannels (line 529) | private async backfillAllChannels(): Promise { method fetchUsers (line 562) | private async fetchUsers(): Promise { method fetchChannels (line 580) | private async fetchChannels(): Promise { FILE: packages/mom/src/store.ts type Attachment (line 6) | interface Attachment { type LoggedMessage (line 11) | interface LoggedMessage { type ChannelStoreConfig (line 22) | interface ChannelStoreConfig { type PendingDownload (line 27) | interface PendingDownload { class ChannelStore (line 33) | class ChannelStore { method constructor (line 42) | constructor(config: ChannelStoreConfig) { method getChannelDir (line 55) | getChannelDir(channelId: string): string { method generateLocalFilename (line 66) | generateLocalFilename(originalName: string, timestamp: string): string { method processAttachments (line 78) | processAttachments( method logMessage (line 115) | async logMessage(channelId: string, message: LoggedMessage): Promise { method downloadAttachment (line 212) | private async downloadAttachment(localPath: string, url: string): Prom... FILE: packages/mom/src/tools/attach.ts function setUploadFunction (line 8) | function setUploadFunction(fn: (filePath: string, title?: string) => Pro... FILE: packages/mom/src/tools/bash.ts function getTempFilePath (line 13) | function getTempFilePath(): string { type BashToolDetails (line 24) | interface BashToolDetails { function createBashTool (line 29) | function createBashTool(executor: Executor): AgentTool { FILE: packages/mom/src/tools/edit.ts function generateDiffString (line 9) | function generateDiffString(oldContent: string, newContent: string, cont... function createEditTool (line 96) | function createEditTool(executor: Executor): AgentTool { function shellEscape (line 163) | function shellEscape(s: string): string { FILE: packages/mom/src/tools/index.ts function createMomTools (line 11) | function createMomTools(executor: Executor): AgentTool[] { FILE: packages/mom/src/tools/read.ts constant IMAGE_MIME_TYPES (line 11) | const IMAGE_MIME_TYPES: Record = { function isImageFile (line 22) | function isImageFile(filePath: string): string | null { type ReadToolDetails (line 34) | interface ReadToolDetails { function createReadTool (line 38) | function createReadTool(executor: Executor): AgentTool { function shellEscape (line 157) | function shellEscape(s: string): string { FILE: packages/mom/src/tools/truncate.ts constant DEFAULT_MAX_LINES (line 11) | const DEFAULT_MAX_LINES = 2000; constant DEFAULT_MAX_BYTES (line 12) | const DEFAULT_MAX_BYTES = 50 * 1024; type TruncationResult (line 14) | interface TruncationResult { type TruncationOptions (line 35) | interface TruncationOptions { function formatSize (line 45) | function formatSize(bytes: number): string { function truncateHead (line 62) | function truncateHead(content: string, options: TruncationOptions = {}):... function truncateTail (line 146) | function truncateTail(content: string, options: TruncationOptions = {}):... function truncateStringToBytesFromEnd (line 221) | function truncateStringToBytesFromEnd(str: string, maxBytes: number): st... FILE: packages/mom/src/tools/write.ts function createWriteTool (line 11) | function createWriteTool(executor: Executor): AgentTool string): string { method getDefaultInlineStyleContext (line 256) | private getDefaultInlineStyleContext(): InlineStyleContext { method renderToken (line 263) | private renderToken( method renderInlineTokens (line 415) | private renderInlineTokens(tokens: Token[], styleContext?: InlineStyle... method renderList (line 505) | private renderList( method renderListItem (line 561) | private renderListItem(tokens: Token[], parentDepth: number, styleCont... method getLongestWordWidth (line 612) | private getLongestWordWidth(text: string, maxWidth?: number): number { method wrapCellText (line 630) | private wrapCellText(text: string, maxWidth: number): string[] { method renderTable (line 638) | private renderTable( FILE: packages/tui/src/components/select-list.ts constant DEFAULT_PRIMARY_COLUMN_WIDTH (line 5) | const DEFAULT_PRIMARY_COLUMN_WIDTH = 32; constant PRIMARY_COLUMN_GAP (line 6) | const PRIMARY_COLUMN_GAP = 2; constant MIN_DESCRIPTION_WIDTH (line 7) | const MIN_DESCRIPTION_WIDTH = 10; type SelectItem (line 12) | interface SelectItem { type SelectListTheme (line 18) | interface SelectListTheme { type SelectListTruncatePrimaryContext (line 26) | interface SelectListTruncatePrimaryContext { type SelectListLayoutOptions (line 34) | interface SelectListLayoutOptions { class SelectList (line 40) | class SelectList implements Component { method constructor (line 52) | constructor(items: SelectItem[], maxVisible: number, theme: SelectList... method setFilter (line 60) | setFilter(filter: string): void { method setSelectedIndex (line 66) | setSelectedIndex(index: number): void { method invalidate (line 70) | invalidate(): void { method render (line 74) | render(width: number): string[] { method handleInput (line 112) | handleInput(keyData: string): void { method renderItem (line 139) | private renderItem( method getPrimaryColumnWidth (line 178) | private getPrimaryColumnWidth(): number { method getPrimaryColumnBounds (line 187) | private getPrimaryColumnBounds(): { min: number; max: number } { method truncatePrimary (line 199) | private truncatePrimary(item: SelectItem, isSelected: boolean, maxWidt... method getDisplayValue (line 214) | private getDisplayValue(item: SelectItem): string { method notifySelectionChange (line 218) | private notifySelectionChange(): void { method getSelectedItem (line 225) | getSelectedItem(): SelectItem | null { FILE: packages/tui/src/components/settings-list.ts type SettingItem (line 7) | interface SettingItem { type SettingsListTheme (line 22) | interface SettingsListTheme { type SettingsListOptions (line 30) | interface SettingsListOptions { class SettingsList (line 34) | class SettingsList implements Component { method constructor (line 49) | constructor( method updateValue (line 70) | updateValue(id: string, newValue: string): void { method invalidate (line 77) | invalidate(): void { method render (line 81) | render(width: number): string[] { method renderMainList (line 90) | private renderMainList(width: number): string[] { method handleInput (line 168) | handleInput(data: string): void { method activateItem (line 199) | private activateItem(): void { method closeSubmenu (line 223) | private closeSubmenu(): void { method applyFilter (line 232) | private applyFilter(query: string): void { method addHintLine (line 237) | private addHintLine(lines: string[], width: number): void { FILE: packages/tui/src/components/spacer.ts class Spacer (line 6) | class Spacer implements Component { method constructor (line 9) | constructor(lines: number = 1) { method setLines (line 13) | setLines(lines: number): void { method invalidate (line 17) | invalidate(): void { method render (line 21) | render(_width: number): string[] { FILE: packages/tui/src/components/text.ts class Text (line 7) | class Text implements Component { method constructor (line 18) | constructor(text: string = "", paddingX: number = 1, paddingY: number ... method setText (line 25) | setText(text: string): void { method setCustomBgFn (line 32) | setCustomBgFn(customBgFn?: (text: string) => string): void { method invalidate (line 39) | invalidate(): void { method render (line 45) | render(width: number): string[] { FILE: packages/tui/src/components/truncated-text.ts class TruncatedText (line 7) | class TruncatedText implements Component { method constructor (line 12) | constructor(text: string, paddingX: number = 0, paddingY: number = 0) { method invalidate (line 18) | invalidate(): void { method render (line 22) | render(width: number): string[] { FILE: packages/tui/src/editor-component.ts type EditorComponent (line 11) | interface EditorComponent extends Component { FILE: packages/tui/src/fuzzy.ts type FuzzyMatch (line 7) | interface FuzzyMatch { function fuzzyMatch (line 12) | function fuzzyMatch(query: string, text: string): FuzzyMatch { function fuzzyFilter (line 95) | function fuzzyFilter(items: T[], query: string, getText: (item: T) =>... FILE: packages/tui/src/keybindings.ts type Keybindings (line 7) | interface Keybindings { type Keybinding (line 44) | type Keybinding = keyof Keybindings; type KeybindingDefinition (line 46) | interface KeybindingDefinition { type KeybindingDefinitions (line 51) | type KeybindingDefinitions = Record; type KeybindingsConfig (line 52) | type KeybindingsConfig = Record; constant TUI_KEYBINDINGS (line 54) | const TUI_KEYBINDINGS = { type KeybindingConflict (line 136) | interface KeybindingConflict { function normalizeKeys (line 141) | function normalizeKeys(keys: KeyId | KeyId[] | undefined): KeyId[] { class KeybindingsManager (line 155) | class KeybindingsManager { method constructor (line 161) | constructor(definitions: KeybindingDefinitions, userBindings: Keybindi... method rebuild (line 167) | private rebuild(): void { method matches (line 203) | matches(data: string, keybinding: Keybinding): boolean { method getKeys (line 211) | getKeys(keybinding: Keybinding): KeyId[] { method getDefinition (line 215) | getDefinition(keybinding: Keybinding): KeybindingDefinition { method getConflicts (line 219) | getConflicts(): KeybindingConflict[] { method setUserBindings (line 223) | setUserBindings(userBindings: KeybindingsConfig): void { method getUserBindings (line 228) | getUserBindings(): KeybindingsConfig { method getResolvedBindings (line 232) | getResolvedBindings(): KeybindingsConfig { function setKeybindings (line 244) | function setKeybindings(keybindings: KeybindingsManager): void { function getKeybindings (line 248) | function getKeybindings(): KeybindingsManager { FILE: packages/tui/src/keys.ts function setKittyProtocolActive (line 31) | function setKittyProtocolActive(active: boolean): void { function isKittyProtocolActive (line 38) | function isKittyProtocolActive(): boolean { type Letter (line 46) | type Letter = type Digit (line 74) | type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"; type SymbolKey (line 76) | type SymbolKey = type SpecialKey (line 109) | type SpecialKey = type BaseKey (line 141) | type BaseKey = Letter | Digit | SymbolKey | SpecialKey; type KeyId (line 147) | type KeyId = constant SYMBOL_KEYS (line 261) | const SYMBOL_KEYS = new Set([ constant MODIFIERS (line 295) | const MODIFIERS = { constant LOCK_MASK (line 301) | const LOCK_MASK = 64 + 128; constant CODEPOINTS (line 303) | const CODEPOINTS = { constant ARROW_CODEPOINTS (line 312) | const ARROW_CODEPOINTS = { constant FUNCTIONAL_CODEPOINTS (line 319) | const FUNCTIONAL_CODEPOINTS = { constant LEGACY_KEY_SEQUENCES (line 328) | const LEGACY_KEY_SEQUENCES = { constant LEGACY_SHIFT_SEQUENCES (line 354) | const LEGACY_SHIFT_SEQUENCES = { constant LEGACY_CTRL_SEQUENCES (line 368) | const LEGACY_CTRL_SEQUENCES = { constant LEGACY_SEQUENCE_KEY_IDS (line 382) | const LEGACY_SEQUENCE_KEY_IDS: Record = { type LegacyModifierKey (line 443) | type LegacyModifierKey = keyof typeof LEGACY_SHIFT_SEQUENCES; type KeyEventType (line 465) | type KeyEventType = "press" | "repeat" | "release"; type ParsedKittySequence (line 467) | interface ParsedKittySequence { type ParsedModifyOtherKeysSequence (line 475) | interface ParsedModifyOtherKeysSequence { function isKeyRelease (line 487) | function isKeyRelease(data: string): boolean { function isKeyRepeat (line 517) | function isKeyRepeat(data: string): boolean { function parseEventType (line 539) | function parseEventType(eventTypeStr: string | undefined): KeyEventType { function parseKittySequence (line 547) | function parseKittySequence(data: string): ParsedKittySequence | null { function matchesKittySequence (line 613) | function matchesKittySequence(data: string, expectedCodepoint: number, e... function parseModifyOtherKeysSequence (line 647) | function parseModifyOtherKeysSequence(data: string): ParsedModifyOtherKe... function matchesModifyOtherKeys (line 660) | function matchesModifyOtherKeys(data: string, expectedKeycode: number, e... function isWindowsTerminalSession (line 666) | function isWindowsTerminalSession(): boolean { function matchesRawBackspace (line 681) | function matchesRawBackspace(data: string, expectedModifier: number): bo... function rawCtrlChar (line 700) | function rawCtrlChar(key: string): string | null { function isDigitKey (line 713) | function isDigitKey(key: string): boolean { function matchesPrintableModifyOtherKeys (line 717) | function matchesPrintableModifyOtherKeys(data: string, expectedKeycode: ... function formatKeyNameWithModifiers (line 722) | function formatKeyNameWithModifiers(keyName: string, modifier: number): ... function parseKeyId (line 733) | function parseKeyId(keyId: string): { key: string; ctrl: boolean; shift:... function matchesKey (line 761) | function matchesKey(data: string, keyId: KeyId): boolean { function formatParsedKey (line 1150) | function formatParsedKey(codepoint: number, modifier: number, baseLayout... function parseKey (line 1185) | function parseKey(data: string): string | undefined { constant KITTY_CSI_U_REGEX (line 1266) | const KITTY_CSI_U_REGEX = /^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?... constant KITTY_PRINTABLE_ALLOWED_MODIFIERS (line 1267) | const KITTY_PRINTABLE_ALLOWED_MODIFIERS = MODIFIERS.shift | LOCK_MASK; function decodeKittyPrintable (line 1283) | function decodeKittyPrintable(data: string): string | undefined { FILE: packages/tui/src/kill-ring.ts class KillRing (line 8) | class KillRing { method push (line 19) | push(text: string, opts: { prepend: boolean; accumulate?: boolean }): ... method peek (line 31) | peek(): string | undefined { method rotate (line 36) | rotate(): void { method length (line 43) | get length(): number { FILE: packages/tui/src/stdin-buffer.ts constant ESC (line 22) | const ESC = "\x1b"; constant BRACKETED_PASTE_START (line 23) | const BRACKETED_PASTE_START = "\x1b[200~"; constant BRACKETED_PASTE_END (line 24) | const BRACKETED_PASTE_END = "\x1b[201~"; function isCompleteSequence (line 29) | function isCompleteSequence(data: string): "complete" | "incomplete" | "... function isCompleteCsiSequence (line 84) | function isCompleteCsiSequence(data: string): "complete" | "incomplete" { function isCompleteOscSequence (line 132) | function isCompleteOscSequence(data: string): "complete" | "incomplete" { function isCompleteDcsSequence (line 150) | function isCompleteDcsSequence(data: string): "complete" | "incomplete" { function isCompleteApcSequence (line 168) | function isCompleteApcSequence(data: string): "complete" | "incomplete" { function extractCompleteSequences (line 184) | function extractCompleteSequences(buffer: string): { sequences: string[]... type StdinBufferOptions (line 226) | type StdinBufferOptions = { type StdinBufferEventMap (line 234) | type StdinBufferEventMap = { class StdinBuffer (line 243) | class StdinBuffer extends EventEmitter { method constructor (line 250) | constructor(options: StdinBufferOptions = {}) { method process (line 255) | public process(data: string | Buffer): void { method flush (line 354) | flush(): string[] { method clear (line 369) | clear(): void { method getBuffer (line 379) | getBuffer(): string { method destroy (line 383) | destroy(): void { FILE: packages/tui/src/terminal-image.ts type ImageProtocol (line 1) | type ImageProtocol = "kitty" | "iterm2" | null; type TerminalCapabilities (line 3) | interface TerminalCapabilities { type CellDimensions (line 9) | interface CellDimensions { type ImageDimensions (line 14) | interface ImageDimensions { type ImageRenderOptions (line 19) | interface ImageRenderOptions { function getCellDimensions (line 32) | function getCellDimensions(): CellDimensions { function setCellDimensions (line 36) | function setCellDimensions(dims: CellDimensions): void { function detectCapabilities (line 40) | function detectCapabilities(): TerminalCapabilities { function getCapabilities (line 73) | function getCapabilities(): TerminalCapabilities { function resetCapabilitiesCache (line 80) | function resetCapabilitiesCache(): void { constant KITTY_PREFIX (line 84) | const KITTY_PREFIX = "\x1b_G"; constant ITERM2_PREFIX (line 85) | const ITERM2_PREFIX = "\x1b]1337;File="; function isImageLine (line 87) | function isImageLine(line: string): boolean { function allocateImageId (line 101) | function allocateImageId(): number { function encodeKitty (line 106) | function encodeKitty( function deleteKittyImage (line 153) | function deleteKittyImage(imageId: number): string { function deleteAllKittyImages (line 161) | function deleteAllKittyImages(): string { function encodeITerm2 (line 165) | function encodeITerm2( function calculateImageRows (line 190) | function calculateImageRows( function getPngDimensions (line 202) | function getPngDimensions(base64Data: string): ImageDimensions | null { function getJpegDimensions (line 223) | function getJpegDimensions(base64Data: string): ImageDimensions | null { function getGifDimensions (line 266) | function getGifDimensions(base64Data: string): ImageDimensions | null { function getWebpDimensions (line 288) | function getWebpDimensions(base64Data: string): ImageDimensions | null { function getImageDimensions (line 327) | function getImageDimensions(base64Data: string, mimeType: string): Image... function renderImage (line 343) | function renderImage( function imageFallback (line 375) | function imageFallback(mimeType: string, dimensions?: ImageDimensions, f... FILE: packages/tui/src/terminal.ts type Terminal (line 11) | interface Terminal { class ProcessTerminal (line 55) | class ProcessTerminal implements Terminal { method kittyProtocolActive (line 65) | get kittyProtocolActive(): boolean { method start (line 69) | start(onInput: (data: string) => void, onResize: () => void): void { method setupStdinBuffer (line 113) | private setupStdinBuffer(): void { method queryAndEnableKittyProtocol (line 170) | private queryAndEnableKittyProtocol(): void { method enableWindowsVTInput (line 188) | private enableWindowsVTInput(): void { method drainInput (line 211) | async drainInput(maxMs = 1000, idleMs = 50): Promise { method stop (line 249) | stop(): void { method write (line 292) | write(data: string): void { method columns (line 303) | get columns(): number { method rows (line 307) | get rows(): number { method moveBy (line 311) | moveBy(lines: number): void { method hideCursor (line 322) | hideCursor(): void { method showCursor (line 326) | showCursor(): void { method clearLine (line 330) | clearLine(): void { method clearFromCursor (line 334) | clearFromCursor(): void { method clearScreen (line 338) | clearScreen(): void { method setTitle (line 342) | setTitle(title: string): void { FILE: packages/tui/src/tui.ts type Component (line 16) | interface Component { type InputListenerResult (line 42) | type InputListenerResult = { consume?: boolean; data?: string } | undefi... type InputListener (line 43) | type InputListener = (data: string) => InputListenerResult; type Focusable (line 51) | interface Focusable { function isFocusable (line 57) | function isFocusable(component: Component | null): component is Componen... constant CURSOR_MARKER (line 67) | const CURSOR_MARKER = "\x1b_pi:c\x07"; type OverlayAnchor (line 74) | type OverlayAnchor = type OverlayMargin (line 88) | interface OverlayMargin { type SizeValue (line 96) | type SizeValue = number | `${number}%`; function parseSizeValue (line 99) | function parseSizeValue(value: SizeValue | undefined, referenceSize: num... type OverlayOptions (line 114) | interface OverlayOptions { type OverlayHandle (line 155) | interface OverlayHandle { class Container (line 173) | class Container implements Component { method addChild (line 176) | addChild(component: Component): void { method removeChild (line 180) | removeChild(component: Component): void { method clear (line 187) | clear(): void { method invalidate (line 191) | invalidate(): void { method render (line 197) | render(width: number): string[] { class TUI (line 209) | class TUI extends Container { method constructor (line 241) | constructor(terminal: Terminal, showHardwareCursor?: boolean) { method fullRedraws (line 249) | get fullRedraws(): number { method getShowHardwareCursor (line 253) | getShowHardwareCursor(): boolean { method setShowHardwareCursor (line 257) | setShowHardwareCursor(enabled: boolean): void { method getClearOnShrink (line 266) | getClearOnShrink(): boolean { method setClearOnShrink (line 275) | setClearOnShrink(enabled: boolean): void { method setFocus (line 279) | setFocus(component: Component | null): void { method showOverlay (line 297) | showOverlay(component: Component, options?: OverlayOptions): OverlayHa... method hideOverlay (line 367) | hideOverlay(): void { method hasOverlay (line 380) | hasOverlay(): boolean { method isOverlayVisible (line 385) | private isOverlayVisible(entry: (typeof this.overlayStack)[number]): b... method getTopmostVisibleOverlay (line 394) | private getTopmostVisibleOverlay(): (typeof this.overlayStack)[number]... method invalidate (line 404) | override invalidate(): void { method start (line 409) | start(): void { method addInputListener (line 420) | addInputListener(listener: InputListener): () => void { method removeInputListener (line 427) | removeInputListener(listener: InputListener): void { method queryCellSize (line 431) | private queryCellSize(): void { method stop (line 442) | stop(): void { method requestRender (line 460) | requestRender(force = false): void { method handleInput (line 478) | private handleInput(data: string): void { method parseCellSizeResponse (line 536) | private parseCellSizeResponse(): string { method resolveOverlayLayout (line 582) | private resolveOverlayLayout( method resolveAnchorRow (line 682) | private resolveAnchorRow(anchor: OverlayAnchor, height: number, availH... method resolveAnchorCol (line 699) | private resolveAnchorCol(anchor: OverlayAnchor, width: number, availWi... method compositeOverlays (line 717) | private compositeOverlays(lines: string[], termWidth: number, termHeig... method applyLineResets (line 779) | private applyLineResets(lines: string[]): string[] { method compositeLineAt (line 791) | private compositeLineAt( method extractCursorPosition (line 849) | private extractCursorPosition(lines: string[], height: number): { row:... method doRender (line 869) | private doRender(): void { method positionHardwareCursor (line 1180) | private positionHardwareCursor(cursorPos: { row: number; col: number }... FILE: packages/tui/src/undo-stack.ts class UndoStack (line 7) | class UndoStack { method push (line 11) | push(state: S): void { method pop (line 16) | pop(): S | undefined { method clear (line 21) | clear(): void { method length (line 25) | get length(): number { FILE: packages/tui/src/utils.ts function getSegmenter (line 9) | function getSegmenter(): Intl.Segmenter { function couldBeEmoji (line 19) | function couldBeEmoji(segment: string): boolean { constant WIDTH_CACHE_SIZE (line 37) | const WIDTH_CACHE_SIZE = 512; function graphemeWidth (line 45) | function graphemeWidth(segment: string): number { function visibleWidth (line 88) | function visibleWidth(str: string): number { function extractAnsiCode (line 156) | function extractAnsiCode(str: string, pos: number): { code: string; leng... class AnsiCodeTracker (line 199) | class AnsiCodeTracker { method process (line 212) | process(ansiCode: string): void { method reset (line 336) | private reset(): void { method clear (line 350) | clear(): void { method getActiveCodes (line 354) | getActiveCodes(): string { method hasActiveCodes (line 371) | hasActiveCodes(): boolean { method getLineEndReset (line 391) | getLineEndReset(): string { function updateTrackerFromText (line 401) | function updateTrackerFromText(text: string, tracker: AnsiCodeTracker): ... function splitIntoTokensWithAnsi (line 417) | function splitIntoTokensWithAnsi(text: string): string[] { function wrapTextWithAnsi (line 476) | function wrapTextWithAnsi(text: string, width: number): string[] { function wrapSingleLine (line 498) | function wrapSingleLine(line: string, width: number): string[] { constant PUNCTUATION_REGEX (line 577) | const PUNCTUATION_REGEX = /[(){}[\]<>.,;:'"!?+\-=*/\\|&%^$#@~`]/; function isWhitespaceChar (line 582) | function isWhitespaceChar(char: string): boolean { function isPunctuationChar (line 589) | function isPunctuationChar(char: string): boolean { function breakLongWord (line 593) | function breakLongWord(word: string, width: number, tracker: AnsiCodeTra... function applyBackgroundToLine (line 670) | function applyBackgroundToLine(line: string, width: number, bgFn: (text:... function truncateToWidth (line 692) | function truncateToWidth( function sliceByColumn (line 774) | function sliceByColumn(line: string, startCol: number, length: number, s... function sliceWithWidth (line 779) | function sliceWithWidth( function extractSegments (line 834) | function extractSegments( FILE: packages/tui/test/autocomplete.test.ts type FolderStructure (line 20) | type FolderStructure = { FILE: packages/tui/test/editor.test.ts function createTestTUI (line 12) | function createTestTUI(cols = 80, rows = 24): TUI { function applyCompletion (line 17) | function applyCompletion( function pasteWithMarker (line 3117) | function pasteWithMarker(editor: Editor): string { FILE: packages/tui/test/image-test.ts method handleInput (line 47) | handleInput(data: string) { FILE: packages/tui/test/key-tester.ts class KeyLogger (line 9) | class KeyLogger implements Component { method constructor (line 14) | constructor(tui: TUI) { method handleInput (line 18) | handleInput(data: string): void { method invalidate (line 51) | invalidate(): void { method render (line 55) | render(width: number): string[] { FILE: packages/tui/test/keys.test.ts function withEnv (line 9) | function withEnv(name: string, value: string | undefined, fn: () => void... FILE: packages/tui/test/markdown.test.ts function getCellItalic (line 13) | function getCellItalic(terminal: VirtualTerminal, row: number, col: numb... class MarkdownWithInput (line 559) | class MarkdownWithInput implements Component { method constructor (line 562) | constructor(private readonly markdown: Markdown) {} method render (line 564) | render(width: number): string[] { method invalidate (line 570) | invalidate(): void { FILE: packages/tui/test/overlay-non-capturing.test.ts class StaticOverlay (line 7) | class StaticOverlay implements Component { method constructor (line 8) | constructor(private lines: string[]) {} method render (line 10) | render(): string[] { method invalidate (line 14) | invalidate(): void {} class EmptyContent (line 17) | class EmptyContent implements Component { method render (line 18) | render(): string[] { method invalidate (line 21) | invalidate(): void {} class FocusableOverlay (line 24) | class FocusableOverlay implements Component, Focusable { method constructor (line 28) | constructor(private lines: string[]) {} method handleInput (line 30) | handleInput(data: string): void { method render (line 34) | render(): string[] { method invalidate (line 38) | invalidate(): void {} function renderAndFlush (line 41) | async function renderAndFlush(tui: TUI, terminal: VirtualTerminal): Prom... FILE: packages/tui/test/overlay-options.test.ts class StaticOverlay (line 7) | class StaticOverlay implements Component { method constructor (line 8) | constructor( method render (line 13) | render(width: number): string[] { method invalidate (line 19) | invalidate(): void {} class EmptyContent (line 22) | class EmptyContent implements Component { method render (line 23) | render(): string[] { method invalidate (line 26) | invalidate(): void {} function renderAndFlush (line 29) | async function renderAndFlush(tui: TUI, terminal: VirtualTerminal): Prom... class StyledContent (line 84) | class StyledContent implements Component { method render (line 85) | render(width: number): string[] { method invalidate (line 89) | invalidate(): void {} class HyperlinkContent (line 147) | class HyperlinkContent implements Component { method render (line 148) | render(width: number): string[] { method invalidate (line 153) | invalidate(): void {} FILE: packages/tui/test/overlay-short-content.test.ts class SimpleContent (line 6) | class SimpleContent implements Component { method constructor (line 7) | constructor(private lines: string[]) {} method render (line 8) | render(): string[] { method invalidate (line 11) | invalidate() {} class SimpleOverlay (line 14) | class SimpleOverlay implements Component { method render (line 15) | render(): string[] { method invalidate (line 18) | invalidate() {} FILE: packages/tui/test/stdin-buffer.test.ts function processInput (line 27) | function processInput(data: string | Buffer): void { function wait (line 32) | async function wait(ms: number): Promise { FILE: packages/tui/test/tui-overlay-style-leak.test.ts class StaticLines (line 7) | class StaticLines implements Component { method constructor (line 8) | constructor(private readonly lines: string[]) {} method render (line 10) | render(): string[] { method invalidate (line 14) | invalidate(): void {} class StaticOverlay (line 17) | class StaticOverlay implements Component { method constructor (line 18) | constructor(private readonly line: string) {} method render (line 20) | render(): string[] { method invalidate (line 24) | invalidate(): void {} function getCellItalic (line 27) | function getCellItalic(terminal: VirtualTerminal, row: number, col: numb... function renderAndFlush (line 37) | async function renderAndFlush(tui: TUI, terminal: VirtualTerminal): Prom... FILE: packages/tui/test/tui-render.test.ts class TestComponent (line 7) | class TestComponent implements Component { method render (line 9) | render(_width: number): string[] { method invalidate (line 12) | invalidate(): void {} function getCellItalic (line 15) | function getCellItalic(terminal: VirtualTerminal, row: number, col: numb... FILE: packages/tui/test/viewport-overwrite-repro.ts class Lines (line 25) | class Lines implements Component { method set (line 28) | set(lines: string[]): void { method append (line 32) | append(lines: string[]): void { method render (line 36) | render(width: number): string[] { method invalidate (line 43) | invalidate(): void {} function streamLines (line 46) | async function streamLines(buffer: Lines, label: string, count: number, ... function main (line 54) | async function main(): Promise { FILE: packages/tui/test/virtual-terminal.ts class VirtualTerminal (line 11) | class VirtualTerminal implements Terminal { method constructor (line 18) | constructor(columns = 80, rows = 24) { method start (line 32) | start(onInput: (data: string) => void, onResize: () => void): void { method drainInput (line 39) | async drainInput(_maxMs?: number, _idleMs?: number): Promise { method stop (line 43) | stop(): void { method write (line 50) | write(data: string): void { method columns (line 54) | get columns(): number { method rows (line 58) | get rows(): number { method kittyProtocolActive (line 62) | get kittyProtocolActive(): boolean { method moveBy (line 67) | moveBy(lines: number): void { method hideCursor (line 78) | hideCursor(): void { method showCursor (line 82) | showCursor(): void { method clearLine (line 86) | clearLine(): void { method clearFromCursor (line 90) | clearFromCursor(): void { method clearScreen (line 94) | clearScreen(): void { method setTitle (line 98) | setTitle(title: string): void { method sendInput (line 108) | sendInput(data: string): void { method resize (line 117) | resize(columns: number, rows: number): void { method flush (line 129) | async flush(): Promise { method flushAndGetViewport (line 139) | async flushAndGetViewport(): Promise { method getViewport (line 148) | getViewport(): string[] { method getScrollBuffer (line 168) | getScrollBuffer(): string[] { method clear (line 188) | clear(): void { method reset (line 195) | reset(): void { method getCursorPosition (line 202) | getCursorPosition(): { x: number; y: number } { FILE: packages/web-ui/example/src/custom-messages.ts type SystemNotificationMessage (line 12) | interface SystemNotificationMessage { type CustomAgentMessages (line 22) | interface CustomAgentMessages { function registerCustomMessageRenderers (line 54) | function registerCustomMessageRenderers() { function createSystemNotification (line 62) | function createSystemNotification( function customConvertToLlm (line 82) | function customConvertToLlm(messages: AgentMessage[]): Message[] { FILE: packages/web-ui/example/src/main.ts function initApp (line 380) | async function initApp() { FILE: packages/web-ui/scripts/count-prompt-tokens.ts constant ANTHROPIC_API_KEY (line 8) | const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY; type TokenCountResponse (line 15) | interface TokenCountResponse { function countTokens (line 19) | async function countTokens(text: string): Promise { function main (line 47) | async function main() { FILE: packages/web-ui/src/ChatPanel.ts constant BREAKPOINT (line 15) | const BREAKPOINT = 800; class ChatPanel (line 18) | class ChatPanel extends LitElement { method createRenderRoot (line 32) | createRenderRoot() { method connectedCallback (line 36) | override connectedCallback() { method disconnectedCallback (line 51) | override disconnectedCallback() { method setAgent (line 56) | async setAgent( method render (line 159) | render() { FILE: packages/web-ui/src/components/AgentInterface.ts class AgentInterface (line 20) | class AgentInterface extends LitElement { method setInput (line 49) | public setInput(text: string, attachments?: Attachment[]) { method setAutoScroll (line 60) | public setAutoScroll(enabled: boolean) { method createRenderRoot (line 64) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method willUpdate (line 68) | override willUpdate(changedProperties: Map) { method connectedCallback (line 77) | override async connectedCallback() { method disconnectedCallback (line 111) | override disconnectedCallback() { method setupSessionSubscription (line 130) | private setupSessionSubscription() { method sendMessage (line 215) | public async sendMessage(input: string, attachments?: Attachment[]) { method renderMessages (line 264) | private renderMessages() { method renderStats (line 299) | private renderStats() { method render (line 348) | override render() { FILE: packages/web-ui/src/components/AttachmentTile.ts class AttachmentTile (line 11) | class AttachmentTile extends LitElement { method createRenderRoot (line 16) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 20) | override connectedCallback(): void { method render (line 30) | override render() { FILE: packages/web-ui/src/components/ConsoleBlock.ts class ConsoleBlock (line 8) | class ConsoleBlock extends LitElement { method createRenderRoot (line 13) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 17) | override connectedCallback(): void { method copy (line 22) | private async copy() { method updated (line 34) | override updated() { method render (line 42) | override render() { FILE: packages/web-ui/src/components/CustomProviderCard.ts class CustomProviderCard (line 8) | class CustomProviderCard extends LitElement { method createRenderRoot (line 16) | protected createRenderRoot() { method renderStatus (line 20) | private renderStatus(): TemplateResult { method render (line 52) | render(): TemplateResult { FILE: packages/web-ui/src/components/ExpandableSection.ts class ExpandableSection (line 11) | class ExpandableSection extends LitElement { method createRenderRoot (line 17) | protected createRenderRoot() { method connectedCallback (line 21) | override connectedCallback() { method render (line 30) | override render(): TemplateResult { FILE: packages/web-ui/src/components/Input.ts type InputType (line 6) | type InputType = "text" | "email" | "password" | "number" | "url" | "tel... type InputSize (line 7) | type InputSize = "sm" | "md" | "lg"; type InputProps (line 9) | interface InputProps extends BaseComponentProps { FILE: packages/web-ui/src/components/MessageEditor.ts class MessageEditor (line 15) | class MessageEditor extends LitElement { method value (line 20) | get value() { method value (line 24) | set value(val: string) { method createRenderRoot (line 52) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method handleFilesSelected (line 132) | private async handleFilesSelected(e: Event) { method removeFile (line 167) | private removeFile(fileId: string) { method firstUpdated (line 228) | override firstUpdated() { method render (line 235) | override render() { FILE: packages/web-ui/src/components/MessageList.ts class MessageList (line 11) | class MessageList extends LitElement { method createRenderRoot (line 18) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 22) | override connectedCallback(): void { method buildRenderItems (line 27) | private buildRenderItems() { method render (line 83) | override render() { FILE: packages/web-ui/src/components/Messages.ts type UserMessageWithAttachments (line 18) | type UserMessageWithAttachments = { type ArtifactMessage (line 26) | interface ArtifactMessage { type CustomAgentMessages (line 36) | interface CustomAgentMessages { class UserMessage (line 43) | class UserMessage extends LitElement { method createRenderRoot (line 46) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 50) | override connectedCallback(): void { method render (line 55) | override render() { class AssistantMessage (line 85) | class AssistantMessage extends LitElement { method createRenderRoot (line 95) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 99) | override connectedCallback(): void { method render (line 104) | override render() { class ToolMessageDebugView (line 171) | class ToolMessageDebugView extends LitElement { method createRenderRoot (line 176) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 180) | override connectedCallback(): void { method pretty (line 185) | private pretty(value: unknown): { content: string; isJson: boolean } { method render (line 197) | override render() { class ToolMessage (line 227) | class ToolMessage extends LitElement { method createRenderRoot (line 235) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 239) | override connectedCallback(): void { method render (line 244) | override render() { class AbortedMessage (line 280) | class AbortedMessage extends LitElement { method createRenderRoot (line 281) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 285) | override connectedCallback(): void { method render (line 290) | protected override render(): unknown { function convertAttachments (line 307) | function convertAttachments(attachments: Attachment[]): (TextContent | I... function isUserMessageWithAttachments (line 329) | function isUserMessageWithAttachments(msg: AgentMessage): msg is UserMes... function isArtifactMessage (line 336) | function isArtifactMessage(msg: AgentMessage): msg is ArtifactMessage { function defaultConvertToLlm (line 348) | function defaultConvertToLlm(messages: AgentMessage[]): Message[] { FILE: packages/web-ui/src/components/ProviderKeyInput.ts constant TEST_MODELS (line 12) | const TEST_MODELS: Record = { class ProviderKeyInput (line 25) | class ProviderKeyInput extends LitElement { method createRenderRoot (line 33) | protected createRenderRoot() { method connectedCallback (line 37) | override async connectedCallback() { method checkKeyStatus (line 42) | private async checkKeyStatus() { method testApiKey (line 51) | private async testApiKey(provider: string, apiKey: string): Promise string; type PrepareHtmlOptions (line 31) | interface PrepareHtmlOptions { function escapeScriptContent (line 43) | function escapeScriptContent(code: string): string { class SandboxIframe (line 48) | class SandboxIframe extends LitElement { method createRenderRoot (line 58) | createRenderRoot() { method connectedCallback (line 62) | override connectedCallback() { method disconnectedCallback (line 66) | override disconnectedCallback() { method loadContent (line 81) | public loadContent( method loadViaSandboxUrl (line 136) | private loadViaSandboxUrl(sandboxId: string, completeHtml: string): vo... method loadViaSrcdoc (line 207) | private loadViaSrcdoc(sandboxId: string, completeHtml: string): void { method execute (line 241) | public async execute( method validateHtml (line 415) | private validateHtml(html: string): string | null { method prepareHtmlDocument (line 436) | public prepareHtmlDocument( method getRuntimeScript (line 530) | private getRuntimeScript( FILE: packages/web-ui/src/components/StreamingMessageContainer.ts class StreamingMessageContainer (line 6) | class StreamingMessageContainer extends LitElement { method createRenderRoot (line 18) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 22) | override connectedCallback(): void { method setMessage (line 28) | public setMessage(message: AgentMessage | null, immediate = false) { method render (line 63) | override render() { FILE: packages/web-ui/src/components/ThinkingBlock.ts class ThinkingBlock (line 7) | class ThinkingBlock extends LitElement { method createRenderRoot (line 12) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 16) | override connectedCallback(): void { method toggleExpanded (line 21) | private toggleExpanded() { method render (line 25) | override render() { FILE: packages/web-ui/src/components/message-renderer-registry.ts type MessageRole (line 5) | type MessageRole = AgentMessage["role"]; type MessageRenderer (line 8) | interface MessageRenderer { function registerMessageRenderer (line 15) | function registerMessageRenderer( function getMessageRenderer (line 22) | function getMessageRenderer(role: MessageRole): MessageRenderer | undefi... function renderMessage (line 26) | function renderMessage(message: AgentMessage): TemplateResult | undefined { FILE: packages/web-ui/src/components/sandbox/ArtifactsRuntimeProvider.ts type ArtifactsPanelLike (line 8) | interface ArtifactsPanelLike { type AgentLike (line 15) | interface AgentLike { class ArtifactsRuntimeProvider (line 26) | class ArtifactsRuntimeProvider implements SandboxRuntimeProvider { method constructor (line 27) | constructor( method getData (line 33) | getData(): Record { method getRuntime (line 42) | getRuntime(): (sandboxId: string) => void { method handleMessage (line 138) | async handleMessage(message: any, respond: (response: any) => void): P... method getDescription (line 216) | getDescription(): string { FILE: packages/web-ui/src/components/sandbox/AttachmentsRuntimeProvider.ts class AttachmentsRuntimeProvider (line 12) | class AttachmentsRuntimeProvider implements SandboxRuntimeProvider { method constructor (line 13) | constructor(private attachments: Attachment[]) {} method getData (line 15) | getData(): Record { method getRuntime (line 28) | getRuntime(): (sandboxId: string) => void { method getDescription (line 63) | getDescription(): string { FILE: packages/web-ui/src/components/sandbox/ConsoleRuntimeProvider.ts type ConsoleLog (line 3) | interface ConsoleLog { class ConsoleRuntimeProvider (line 16) | class ConsoleRuntimeProvider implements SandboxRuntimeProvider { method getData (line 21) | getData(): Record { method getDescription (line 26) | getDescription(): string { method getRuntime (line 30) | getRuntime(): (sandboxId: string) => void { method handleMessage (line 137) | async handleMessage(message: any, respond: (response: any) => void): P... method getLogs (line 160) | getLogs(): ConsoleLog[] { method isCompleted (line 167) | isCompleted(): boolean { method getCompletionError (line 174) | getCompletionError(): { message: string; stack: string } | null { method reset (line 181) | reset(): void { FILE: packages/web-ui/src/components/sandbox/FileDownloadRuntimeProvider.ts type DownloadableFile (line 3) | interface DownloadableFile { class FileDownloadRuntimeProvider (line 17) | class FileDownloadRuntimeProvider implements SandboxRuntimeProvider { method getData (line 20) | getData(): Record { method getRuntime (line 25) | getRuntime(): (sandboxId: string) => void { method handleMessage (line 80) | async handleMessage(message: any, respond: (response: any) => void): P... method getFiles (line 96) | getFiles(): DownloadableFile[] { method reset (line 103) | reset(): void { method getDescription (line 107) | getDescription(): string { FILE: packages/web-ui/src/components/sandbox/RuntimeMessageBridge.ts type MessageType (line 6) | type MessageType = "request-response" | "fire-and-forget"; type RuntimeMessageBridgeOptions (line 8) | interface RuntimeMessageBridgeOptions { class RuntimeMessageBridge (line 14) | class RuntimeMessageBridge { method generateBridgeCode (line 19) | static generateBridgeCode(options: RuntimeMessageBridgeOptions): string { method generateSandboxBridge (line 27) | private static generateSandboxBridge(sandboxId: string): string { method generateUserScriptBridge (line 67) | private static generateUserScriptBridge(sandboxId: string): string { FILE: packages/web-ui/src/components/sandbox/RuntimeMessageRouter.ts type MessageConsumer (line 9) | interface MessageConsumer { type SandboxContext (line 20) | interface SandboxContext { class RuntimeMessageRouter (line 41) | class RuntimeMessageRouter { method registerSandbox (line 52) | registerSandbox(sandboxId: string, providers: SandboxRuntimeProvider[]... method setSandboxIframe (line 69) | setSandboxIframe(sandboxId: string, iframe: HTMLIFrameElement): void { method unregisterSandbox (line 80) | unregisterSandbox(sandboxId: string): void { method addConsumer (line 103) | addConsumer(sandboxId: string, consumer: MessageConsumer): void { method removeConsumer (line 113) | removeConsumer(sandboxId: string, consumer: MessageConsumer): void { method setupListener (line 123) | private setupListener(): void { constant RUNTIME_MESSAGE_ROUTER (line 216) | const RUNTIME_MESSAGE_ROUTER = new RuntimeMessageRouter(); FILE: packages/web-ui/src/components/sandbox/SandboxRuntimeProvider.ts type SandboxRuntimeProvider (line 5) | interface SandboxRuntimeProvider { FILE: packages/web-ui/src/dialogs/ApiKeyPromptDialog.ts class ApiKeyPromptDialog (line 10) | class ApiKeyPromptDialog extends DialogBase { method prompt (line 19) | static async prompt(provider: string): Promise { method connectedCallback (line 29) | override async connectedCallback() { method disconnectedCallback (line 48) | override disconnectedCallback() { method close (line 56) | override close() { method renderContent (line 63) | protected override renderContent() { FILE: packages/web-ui/src/dialogs/AttachmentOverlay.ts type FileType (line 13) | type FileType = "image" | "pdf" | "docx" | "pptx" | "excel" | "text"; class AttachmentOverlay (line 15) | class AttachmentOverlay extends LitElement { method createRenderRoot (line 25) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method open (line 29) | static open(attachment: Attachment, onClose?: () => void) { method setupEventListeners (line 37) | private setupEventListeners() { method close (line 46) | private close() { method getFileType (line 55) | private getFileType(): FileType { method getFileTypeLabel (line 77) | private getFileTypeLabel(): string { method cleanup (line 120) | private cleanup() { method render (line 130) | override render() { method renderToggle (line 170) | private renderToggle() { method renderContent (line 194) | private renderContent() { method renderFileContent (line 211) | private renderFileContent() { method updated (line 274) | override async updated(changedProperties: Map) { method renderPdf (line 303) | private async renderPdf() { method renderDocx (line 383) | private async renderDocx() { method renderExcel (line 484) | private async renderExcel() { method renderExcelSheet (line 559) | private renderExcelSheet(worksheet: any, sheetName: string): HTMLEleme... method base64ToArrayBuffer (line 600) | private base64ToArrayBuffer(base64: string): ArrayBuffer { method renderExtractedText (line 609) | private async renderExtractedText() { FILE: packages/web-ui/src/dialogs/CustomProviderDialog.ts class CustomProviderDialog (line 14) | class CustomProviderDialog extends DialogBase { method open (line 30) | static async open( method initializeFromProvider (line 45) | private initializeFromProvider() { method updateDefaultBaseUrl (line 64) | private updateDefaultBaseUrl() { method isAutoDiscoveryType (line 80) | private isAutoDiscoveryType(): boolean { method testConnection (line 84) | private async testConnection() { method save (line 113) | private async save() { method renderContent (line 143) | protected override renderContent(): TemplateResult { FILE: packages/web-ui/src/dialogs/ModelSelector.ts function subsequenceScore (line 24) | function subsequenceScore(query: string, text: string): number { class ModelSelector (line 50) | class ModelSelector extends DialogBase { method open (line 68) | static async open( method firstUpdated (line 83) | override async firstUpdated(changedProperties: PropertyValues): Promis... method loadCustomProviders (line 138) | private async loadCustomProviders() { method formatTokens (line 185) | private formatTokens(tokens: number): string { method handleSelect (line 191) | private handleSelect(model: Model) { method getFilteredModels (line 198) | private getFilteredModels(): Array<{ provider: string; id: string; mod... method scrollToSelected (line 265) | private scrollToSelected() { method renderContent (line 277) | protected override renderContent(): TemplateResult { FILE: packages/web-ui/src/dialogs/PersistentStorageDialog.ts class PersistentStorageDialog (line 9) | class PersistentStorageDialog extends DialogBase { method request (line 21) | static async request(): Promise { method handleGrant (line 64) | private handleGrant() { method handleDeny (line 72) | private handleDeny() { method close (line 80) | override close() { method renderContent (line 87) | protected override renderContent() { FILE: packages/web-ui/src/dialogs/ProvidersModelsTab.ts class ProvidersModelsTab (line 19) | class ProvidersModelsTab extends SettingsTab { method connectedCallback (line 26) | override async connectedCallback() { method loadCustomProviders (line 31) | private async loadCustomProviders() { method getTabName (line 52) | getTabName(): string { method checkProviderStatus (line 56) | private async checkProviderStatus(provider: CustomProvider) { method renderKnownProviders (line 74) | private renderKnownProviders(): TemplateResult { method renderCustomProviders (line 92) | private renderCustomProviders(): TemplateResult { method addCustomProvider (line 150) | private async addCustomProvider(type: CustomProviderType) { method editProvider (line 157) | private async editProvider(provider: CustomProvider) { method refreshProvider (line 164) | private async refreshProvider(provider: CustomProvider) { method deleteProvider (line 188) | private async deleteProvider(provider: CustomProvider) { method render (line 203) | render(): TemplateResult { FILE: packages/web-ui/src/dialogs/SessionListDialog.ts class SessionListDialog (line 11) | class SessionListDialog extends DialogBase { method open (line 23) | static async open(onSelect: (sessionId: string) => void, onDelete?: (s... method loadSessions (line 31) | private async loadSessions() { method handleDelete (line 44) | private async handleDelete(sessionId: string, event: Event) { method close (line 65) | override close() { method handleSelect (line 76) | private handleSelect(sessionId: string) { method formatDate (line 84) | private formatDate(isoString: string): string { method renderContent (line 101) | protected override renderContent() { FILE: packages/web-ui/src/dialogs/SettingsDialog.ts method createRenderRoot (line 16) | protected createRenderRoot() { class ApiKeysTab (line 23) | class ApiKeysTab extends SettingsTab { method getTabName (line 24) | getTabName(): string { method render (line 28) | render(): TemplateResult { class ProxyTab (line 44) | class ProxyTab extends SettingsTab { method connectedCallback (line 48) | override async connectedCallback() { method saveProxySettings (line 63) | private async saveProxySettings() { method getTabName (line 73) | getTabName(): string { method render (line 77) | render(): TemplateResult { class SettingsDialog (line 116) | class SettingsDialog extends LitElement { method createRenderRoot (line 121) | protected createRenderRoot() { method open (line 127) | static async open(tabs: SettingsTab[], onClose?: () => void) { method setActiveTab (line 135) | private setActiveTab(index: number) { method renderSidebarItem (line 139) | private renderSidebarItem(tab: SettingsTab, index: number): TemplateRe... method renderMobileTab (line 155) | private renderMobileTab(tab: SettingsTab, index: number): TemplateResu... method render (line 169) | render() { FILE: packages/web-ui/src/prompts/prompts.ts constant ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RW (line 150) | const ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RW = ` constant ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RO (line 195) | const ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RO = ` constant ATTACHMENTS_RUNTIME_DESCRIPTION (line 234) | const ATTACHMENTS_RUNTIME_DESCRIPTION = ` constant EXTRACT_DOCUMENT_DESCRIPTION (line 271) | const EXTRACT_DOCUMENT_DESCRIPTION = `# Extract Document FILE: packages/web-ui/src/storage/app-storage.ts class AppStorage (line 11) | class AppStorage { method constructor (line 18) | constructor( method getQuotaInfo (line 32) | async getQuotaInfo(): Promise<{ usage: number; quota: number; percent:... method requestPersistence (line 36) | async requestPersistence(): Promise { function getAppStorage (line 48) | function getAppStorage(): AppStorage { function setAppStorage (line 58) | function setAppStorage(storage: AppStorage): void { FILE: packages/web-ui/src/storage/backends/indexeddb-storage-backend.ts class IndexedDBStorageBackend (line 7) | class IndexedDBStorageBackend implements StorageBackend { method constructor (line 10) | constructor(private config: IndexedDBConfig) {} method getDB (line 12) | private async getDB(): Promise { method promisifyRequest (line 48) | private promisifyRequest(request: IDBRequest): Promise { method get (line 55) | async get(storeName: string, key: string): Promise(storeName: string, key: string, value: T): Prom... method delete (line 76) | async delete(storeName: string, key: string): Promise { method keys (line 83) | async keys(storeName: string, prefix?: string): Promise { method getAllFromIndex (line 99) | async getAllFromIndex( method clear (line 127) | async clear(storeName: string): Promise { method has (line 134) | async has(storeName: string, key: string): Promise { method transaction (line 142) | async transaction( method getQuotaInfo (line 175) | async getQuotaInfo(): Promise<{ usage: number; quota: number; percent:... method requestPersistence (line 187) | async requestPersistence(): Promise { FILE: packages/web-ui/src/storage/store.ts method setBackend (line 19) | setBackend(backend: StorageBackend): void { method getBackend (line 27) | protected getBackend(): StorageBackend { FILE: packages/web-ui/src/storage/stores/custom-providers-store.ts type AutoDiscoveryProviderType (line 5) | type AutoDiscoveryProviderType = "ollama" | "llama.cpp" | "vllm" | "lmst... type CustomProviderType (line 7) | type CustomProviderType = type CustomProvider (line 13) | interface CustomProvider { class CustomProvidersStore (line 28) | class CustomProvidersStore extends Store { method getConfig (line 29) | getConfig(): StoreConfig { method get (line 35) | async get(id: string): Promise { method set (line 39) | async set(provider: CustomProvider): Promise { method delete (line 43) | async delete(id: string): Promise { method getAll (line 47) | async getAll(): Promise { method has (line 59) | async has(id: string): Promise { FILE: packages/web-ui/src/storage/stores/provider-keys-store.ts class ProviderKeysStore (line 7) | class ProviderKeysStore extends Store { method getConfig (line 8) | getConfig(): StoreConfig { method get (line 14) | async get(provider: string): Promise { method set (line 18) | async set(provider: string, key: string): Promise { method delete (line 22) | async delete(provider: string): Promise { method list (line 26) | async list(): Promise { method has (line 30) | async has(provider: string): Promise { FILE: packages/web-ui/src/storage/stores/sessions-store.ts class SessionsStore (line 9) | class SessionsStore extends Store { method getConfig (line 10) | getConfig(): StoreConfig { method getMetadataConfig (line 22) | static getMetadataConfig(): StoreConfig { method save (line 30) | async save(data: SessionData, metadata: SessionMetadata): Promise { method get (line 37) | async get(id: string): Promise { method getMetadata (line 41) | async getMetadata(id: string): Promise { method getAllMetadata (line 45) | async getAllMetadata(): Promise { method delete (line 50) | async delete(id: string): Promise { method deleteSession (line 58) | async deleteSession(id: string): Promise { method updateTitle (line 62) | async updateTitle(id: string, title: string): Promise { method getQuotaInfo (line 77) | async getQuotaInfo(): Promise<{ usage: number; quota: number; percent:... method requestPersistence (line 81) | async requestPersistence(): Promise { method saveSession (line 86) | async saveSession( method loadSession (line 124) | async loadSession(id: string): Promise { method getLatestSessionId (line 128) | async getLatestSessionId(): Promise { FILE: packages/web-ui/src/storage/stores/settings-store.ts class SettingsStore (line 7) | class SettingsStore extends Store { method getConfig (line 8) | getConfig(): StoreConfig { method get (line 15) | async get(key: string): Promise { method set (line 19) | async set(key: string, value: T): Promise { method delete (line 23) | async delete(key: string): Promise { method list (line 27) | async list(): Promise { method clear (line 31) | async clear(): Promise { FILE: packages/web-ui/src/storage/types.ts type StorageTransaction (line 7) | interface StorageTransaction { type StorageBackend (line 29) | interface StorageBackend { type SessionMetadata (line 94) | interface SessionMetadata { type SessionData (line 147) | interface SessionData { type IndexedDBConfig (line 173) | interface IndexedDBConfig { type StoreConfig (line 185) | interface StoreConfig { type IndexConfig (line 199) | interface IndexConfig { FILE: packages/web-ui/src/tools/artifacts/ArtifactElement.ts method createRenderRoot (line 6) | protected override createRenderRoot(): HTMLElement | DocumentFragment { FILE: packages/web-ui/src/tools/artifacts/ArtifactPill.ts function ArtifactPill (line 6) | function ArtifactPill(filename: string, artifactsPanel?: ArtifactsPanel)... FILE: packages/web-ui/src/tools/artifacts/Console.ts type LogEntry (line 10) | interface LogEntry { class Console (line 16) | class Console extends LitElement { method createRenderRoot (line 22) | protected createRenderRoot() { method updated (line 26) | override updated() { method getLogsText (line 33) | private getLogsText(): string { method render (line 37) | override render(): TemplateResult { FILE: packages/web-ui/src/tools/artifacts/DocxArtifact.ts class DocxArtifact (line 9) | class DocxArtifact extends ArtifactElement { method content (line 13) | get content(): string { method content (line 17) | set content(value: string) { method createRenderRoot (line 23) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 27) | override connectedCallback(): void { method base64ToArrayBuffer (line 33) | private base64ToArrayBuffer(base64: string): ArrayBuffer { method decodeBase64 (line 51) | private decodeBase64(): Uint8Array { method getHeaderButtons (line 68) | public getHeaderButtons() { method updated (line 81) | override async updated(changedProperties: Map) { method renderDocx (line 89) | private async renderDocx() { method render (line 189) | override render(): TemplateResult { type HTMLElementTagNameMap (line 210) | interface HTMLElementTagNameMap { FILE: packages/web-ui/src/tools/artifacts/ExcelArtifact.ts class ExcelArtifact (line 9) | class ExcelArtifact extends ArtifactElement { method content (line 13) | get content(): string { method content (line 17) | set content(value: string) { method createRenderRoot (line 23) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 27) | override connectedCallback(): void { method base64ToArrayBuffer (line 33) | private base64ToArrayBuffer(base64: string): ArrayBuffer { method decodeBase64 (line 51) | private decodeBase64(): Uint8Array { method getMimeType (line 68) | private getMimeType(): string { method getHeaderButtons (line 74) | public getHeaderButtons() { method updated (line 87) | override async updated(changedProperties: Map) { method renderExcel (line 95) | private async renderExcel() { method renderExcelSheet (line 166) | private renderExcelSheet(worksheet: any, sheetName: string): HTMLEleme... method render (line 207) | override render(): TemplateResult { type HTMLElementTagNameMap (line 228) | interface HTMLElementTagNameMap { FILE: packages/web-ui/src/tools/artifacts/GenericArtifact.ts class GenericArtifact (line 8) | class GenericArtifact extends ArtifactElement { method content (line 11) | get content(): string { method content (line 15) | set content(value: string) { method createRenderRoot (line 20) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 24) | override connectedCallback(): void { method decodeBase64 (line 30) | private decodeBase64(): Uint8Array { method getMimeType (line 47) | private getMimeType(): string { method getHeaderButtons (line 70) | public getHeaderButtons() { method render (line 83) | override render(): TemplateResult { type HTMLElementTagNameMap (line 114) | interface HTMLElementTagNameMap { FILE: packages/web-ui/src/tools/artifacts/HtmlArtifact.ts class HtmlArtifact (line 22) | class HtmlArtifact extends ArtifactElement { method setViewMode (line 36) | private setViewMode(mode: "preview" | "code") { method getHeaderButtons (line 40) | public getHeaderButtons() { method content (line 80) | override set content(value: string) { method executeContent (line 94) | public executeContent(html: string) { method content (line 139) | override get content(): string { method disconnectedCallback (line 143) | override disconnectedCallback() { method firstUpdated (line 150) | override firstUpdated() { method updated (line 157) | override updated(changedProperties: Map) { method renderPdf (line 105) | private async renderPdf() { method render (line 177) | override render(): TemplateResult { type HTMLElementTagNameMap (line 198) | interface HTMLElementTagNameMap { FILE: packages/web-ui/src/tools/artifacts/SvgArtifact.ts class SvgArtifact (line 12) | class SvgArtifact extends ArtifactElement { method content (line 16) | override get content(): string { method content (line 19) | override set content(value: string) { method createRenderRoot (line 26) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method setViewMode (line 30) | private setViewMode(mode: "preview" | "code") { method getHeaderButtons (line 34) | public getHeaderButtons() { method render (line 55) | override render() { type HTMLElementTagNameMap (line 75) | interface HTMLElementTagNameMap { FILE: packages/web-ui/src/tools/artifacts/TextArtifact.ts constant CODE_EXTENSIONS (line 11) | const CODE_EXTENSIONS = [ class TextArtifact (line 58) | class TextArtifact extends ArtifactElement { method content (line 62) | override get content(): string { method content (line 65) | override set content(value: string) { method createRenderRoot (line 70) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method isCode (line 74) | private isCode(): boolean { method getLanguageFromExtension (line 79) | private getLanguageFromExtension(ext: string): string { method getMimeType (line 92) | private getMimeType(): string { method getHeaderButtons (line 99) | public getHeaderButtons() { method render (line 118) | override render() { type HTMLElementTagNameMap (line 145) | interface HTMLElementTagNameMap { FILE: packages/web-ui/src/tools/artifacts/artifacts-tool-renderer.ts function getTextOutput (line 15) | function getTextOutput(result: ToolResultMessage | undefined): stri... function getLanguageFromFilename (line 26) | function getLanguageFromFilename(filename?: string): string { class ArtifactsToolRenderer (line 62) | class ArtifactsToolRenderer implements ToolRenderer; class ArtifactsPanel (line 54) | class ArtifactsPanel extends LitElement { method artifacts (line 76) | get artifacts() { method getHtmlArtifactRuntimeProviders (line 81) | private getHtmlArtifactRuntimeProviders(): SandboxRuntimeProvider[] { method createRenderRoot (line 103) | protected override createRenderRoot(): HTMLElement | DocumentFragment { method connectedCallback (line 107) | override connectedCallback(): void { method disconnectedCallback (line 126) | override disconnectedCallback() { method getFileType (line 132) | private getFileType( method getOrCreateArtifactElement (line 181) | private getOrCreateArtifactElement(filename: string, content: string):... method showArtifact (line 240) | private showArtifact(filename: string) { method openArtifact (line 263) | public openArtifact(filename: string) { method tool (line 272) | public get tool(): AgentTool { method reconstructFromMessages (line 294) | public async reconstructFromMessages( method executeCommand (line 415) | private async executeCommand( method waitForHtmlExecution (line 439) | private async waitForHtmlExecution(filename: string): Promise { method reloadAllHtmlArtifacts (line 456) | private reloadAllHtmlArtifacts() { method createArtifact (line 467) | private async createArtifact( method updateArtifact (line 508) | private async updateArtifact( method rewriteArtifact (line 552) | private async rewriteArtifact( method getArtifact (line 592) | private getArtifact(params: ArtifactsParams): string { method deleteArtifact (line 602) | private deleteArtifact(params: ArtifactsParams): string { method getLogs (line 639) | private getLogs(params: ArtifactsParams): string { method render (line 654) | override render(): TemplateResult { type HTMLElementTagNameMap (line 710) | interface HTMLElementTagNameMap { FILE: packages/web-ui/src/tools/extract-document.ts type ExtractDocumentParams (line 23) | type ExtractDocumentParams = Static; type ExtractDocumentResult (line 25) | interface ExtractDocumentResult { function createExtractDocumentTool (line 36) | function createExtractDocumentTool(): AgentTool; type JavaScriptReplResult (line 118) | interface JavaScriptReplResult { function createJavaScriptReplTool (line 128) | function createJavaScriptReplTool(): AgentTool { method render (line 14) | render(params: BashParams | undefined, result: ToolResultMessage { FILE: packages/web-ui/src/utils/attachment-utils.ts type Attachment (line 11) | interface Attachment { function loadAttachment (line 29) | async function loadAttachment( function processPdf (line 203) | async function processPdf( function generatePdfPreview (line 239) | async function generatePdfPreview(pdf: PDFDocumentProxy): Promise { function clearAuthToken (line 20) | async function clearAuthToken() { FILE: packages/web-ui/src/utils/format.ts function formatCost (line 4) | function formatCost(cost: number): string { function formatModelCost (line 8) | function formatModelCost(cost: any): string { function formatUsage (line 25) | function formatUsage(usage: Usage) { function formatTokenCount (line 38) | function formatTokenCount(count: number): string { FILE: packages/web-ui/src/utils/i18n.ts type i18nMessages (line 4) | interface i18nMessages extends MiniLitRequiredMessages { FILE: packages/web-ui/src/utils/model-discovery.ts function discoverOllamaModels (line 11) | async function discoverOllamaModels(baseUrl: string, _apiKey?: string): ... function discoverLlamaCppModels (line 85) | async function discoverLlamaCppModels(baseUrl: string, apiKey?: string):... function discoverVLLMModels (line 147) | async function discoverVLLMModels(baseUrl: string, apiKey?: string): Pro... function discoverLMStudioModels (line 209) | async function discoverLMStudioModels(baseUrl: string, _apiKey?: string)... function discoverModels (line 262) | async function discoverModels( FILE: packages/web-ui/src/utils/proxy-utils.ts function shouldUseProxyForProvider (line 19) | function shouldUseProxyForProvider(provider: string, apiKey: string): bo... function applyProxyIfNeeded (line 61) | function applyProxyIfNeeded(model: Model, apiKey: stri... function isCorsError (line 94) | function isCorsError(error: unknown): boolean { function createStreamFn (line 127) | function createStreamFn(getProxyUrl: () => Promise) { FILE: scripts/cost.ts function encodeSessionDir (line 32) | function encodeSessionDir(dir: string): string { type DayCost (line 52) | interface DayCost { type Stats (line 61) | interface Stats { FILE: scripts/oss-weekend.mjs constant TIME_ZONE (line 5) | const TIME_ZONE = "Europe/Berlin"; constant DEFAULT_README_PATHS (line 6) | const DEFAULT_README_PATHS = ["README.md", "packages/coding-agent/README... constant DEFAULT_STATE_PATH (line 7) | const DEFAULT_STATE_PATH = ".github/oss-weekend.json"; constant MARKER_START (line 8) | const MARKER_START = ""; constant MARKER_END (line 9) | const MARKER_END = ""; constant DISCORD_URL (line 10) | const DISCORD_URL = "https://discord.com/invite/3cU7Bz4UPx"; function parseArgs (line 12) | function parseArgs(argv) { function getOption (line 34) | function getOption(name, cliOptions, envName, fallback) { function isTruthy (line 44) | function isTruthy(value) { function escapeRegExp (line 48) | function escapeRegExp(value) { function formatLongDate (line 52) | function formatLongDate(date) { function parseDateInput (line 62) | function parseDateInput(value) { function buildBanner (line 72) | function buildBanner(now, endDate) { function upsertBanner (line 91) | function upsertBanner(readme, now, endDate) { function removeBanner (line 105) | function removeBanner(readme) { function parseReadmePaths (line 114) | function parseReadmePaths(cliOptions) { function buildState (line 124) | function buildState(now, endDateInput, endDate) { function readOptionalFile (line 140) | async function readOptionalFile(path) { function runCommand (line 151) | function runCommand(command, args, options = {}) { function quoteArg (line 155) | function quoteArg(arg) { function formatCommand (line 159) | function formatCommand(command, args) { function hasStagedChanges (line 163) | function hasStagedChanges(paths) { function runGitOperations (line 172) | function runGitOperations(mode, paths, dryRun) { function printUsage (line 218) | function printUsage() { function main (line 241) | async function main() { FILE: scripts/release.mjs constant BUMP_TYPE (line 21) | const BUMP_TYPE = process.argv[2]; function run (line 28) | function run(cmd, options = {}) { function getVersion (line 41) | function getVersion() { function getChangelogs (line 46) | function getChangelogs() { function updateChangelogsForRelease (line 54) | function updateChangelogsForRelease(version) { function addUnreleasedSection (line 75) | function addUnreleasedSection() { FILE: scripts/session-transcripts.ts constant MAX_CHARS_PER_FILE (line 20) | const MAX_CHARS_PER_FILE = 100_000; function cwdToSessionDir (line 22) | function cwdToSessionDir(cwd: string): string { function extractTextContent (line 27) | function extractTextContent(content: string | Array<{ type: string; text... function parseSession (line 37) | function parseSession(filePath: string): string[] { constant MAX_DISPLAY_WIDTH (line 58) | const MAX_DISPLAY_WIDTH = 100; function truncateLine (line 60) | function truncateLine(text: string, maxWidth: number): string { type JsonEvent (line 66) | interface JsonEvent { function runSubagent (line 78) | function runSubagent(prompt: string, cwd: string): Promise<{ success: bo... function main (line 143) | async function main() {