@code-yeongyu/senpi 2026.9.26 → 2026.9.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/bun-runtime.d.ts +18 -2
  3. package/dist/bun-runtime.d.ts.map +1 -1
  4. package/dist/bun-runtime.js +60 -8
  5. package/dist/bun-runtime.js.map +1 -1
  6. package/dist/bundle/chunks/{app-server-command-ZRCKWY2X.js → app-server-command-7WEJGW7D.js} +1 -1
  7. package/dist/bundle/chunks/bun-extension-importer-R4HXF3GD.js +14 -0
  8. package/dist/bundle/chunks/{chunk-QGC46CGK.js → chunk-3QCAGZFO.js} +17 -16
  9. package/dist/bundle/chunks/chunk-HCXLCGMF.js +8 -0
  10. package/dist/bundle/chunks/{chunk-OZCB6BP3.js → chunk-HH3D5ZYA.js} +3 -3
  11. package/dist/bundle/chunks/chunk-W3D3ZYDS.js +2 -0
  12. package/dist/bundle/chunks/{cli-main-H6JAXAXV.js → cli-main-YLZ4MMLV.js} +1 -1
  13. package/dist/bundle/chunks/{interactive-host-runtime-YI75GFD5.js → interactive-host-runtime-6WY6424X.js} +1 -1
  14. package/dist/bundle/chunks/{interactive-mode-HM7UQYRC.js → interactive-mode-6AHR5TEM.js} +1 -1
  15. package/dist/bundle/chunks/{multi-session-host-7YX2I7UK.js → multi-session-host-5IWJEFDF.js} +1 -1
  16. package/dist/bundle/chunks/{package-manager-cli-3ISYTEL2.js → package-manager-cli-FZKBCLWV.js} +1 -1
  17. package/dist/bundle/chunks/{rpc-mode-6PY4TN5F.js → rpc-mode-JSCHAE6O.js} +1 -1
  18. package/dist/bundle/chunks/session-worker.js +117 -116
  19. package/dist/bundle/cli.js +1 -1
  20. package/dist/bundle/index.js +1 -1
  21. package/dist/bundle/rpc-entry.js +1 -1
  22. package/dist/core/agent-session.d.ts.map +1 -1
  23. package/dist/core/agent-session.js +10 -5
  24. package/dist/core/agent-session.js.map +1 -1
  25. package/dist/core/extensions/bun-extension-importer.d.ts.map +1 -1
  26. package/dist/core/extensions/bun-extension-importer.js +10 -4
  27. package/dist/core/extensions/bun-extension-importer.js.map +1 -1
  28. package/dist/core/extensions/bun-extension-registry.js +6 -5
  29. package/dist/core/extensions/bun-extension-registry.js.map +1 -1
  30. package/dist/core/messages.d.ts.map +1 -1
  31. package/dist/core/messages.js +4 -2
  32. package/dist/core/messages.js.map +1 -1
  33. package/dist/core/provider-rejected-images.d.ts +18 -0
  34. package/dist/core/provider-rejected-images.d.ts.map +1 -0
  35. package/dist/core/provider-rejected-images.js +107 -0
  36. package/dist/core/provider-rejected-images.js.map +1 -0
  37. package/dist/core/session-title-generator.d.ts.map +1 -1
  38. package/dist/core/session-title-generator.js +21 -3
  39. package/dist/core/session-title-generator.js.map +1 -1
  40. package/dist/core/session-title-reasoning.d.ts +14 -0
  41. package/dist/core/session-title-reasoning.d.ts.map +1 -0
  42. package/dist/core/session-title-reasoning.js +31 -0
  43. package/dist/core/session-title-reasoning.js.map +1 -0
  44. package/dist/core/tools/path-utils.d.ts.map +1 -1
  45. package/dist/core/tools/path-utils.js +13 -0
  46. package/dist/core/tools/path-utils.js.map +1 -1
  47. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  48. package/dist/modes/interactive/interactive-mode.js +2 -0
  49. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  50. package/dist/modes/interactive/runtime-notice-presenter.d.ts +8 -0
  51. package/dist/modes/interactive/runtime-notice-presenter.d.ts.map +1 -0
  52. package/dist/modes/interactive/runtime-notice-presenter.js +69 -0
  53. package/dist/modes/interactive/runtime-notice-presenter.js.map +1 -0
  54. package/dist/modes/interactive/runtime-notice.d.ts +50 -0
  55. package/dist/modes/interactive/runtime-notice.d.ts.map +1 -0
  56. package/dist/modes/interactive/runtime-notice.js +104 -0
  57. package/dist/modes/interactive/runtime-notice.js.map +1 -0
  58. package/docs/environment-variables.md +2 -0
  59. package/docs/quickstart.md +7 -1
  60. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +12 -0
  61. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  62. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  63. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  64. package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
  65. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  66. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  67. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  68. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  69. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  70. package/node_modules/@earendil-works/pi-pty/native/prebuilds/darwin-arm64/senpi_pty.darwin-arm64.node +0 -0
  71. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  72. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  73. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  74. package/package.json +7 -7
  75. package/dist/bundle/chunks/bun-extension-importer-H4IJCWWQ.js +0 -14
  76. package/dist/bundle/chunks/chunk-34HMVB33.js +0 -2
  77. package/dist/bundle/chunks/chunk-T3JBT2IK.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"session-title-generator.js","sourceRoot":"","sources":["../../src/core/session-title-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StreamFn } from \"@earendil-works/pi-agent-core\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tContext,\n\tModel,\n\tSimpleStreamOptions,\n\tTextContent,\n} from \"@earendil-works/pi-ai/compat\";\nimport { completeSimple, type RetryPolicy, retryAssistantCall } from \"@earendil-works/pi-ai/compat\";\n\ninterface SessionTitleAuth {\n\treadonly apiKey?: string;\n\treadonly headers?: Record<string, string>;\n\treadonly extraBody?: Record<string, unknown>;\n\treadonly env?: Record<string, string>;\n}\n\ninterface GenerateSessionTitleOptions {\n\treadonly firstPrompt: string;\n\treadonly model: Model<Api>;\n\treadonly auth: SessionTitleAuth;\n\treadonly sessionId: string;\n\treadonly baseOptions?: SimpleStreamOptions;\n\treadonly signal?: AbortSignal;\n\treadonly streamFn?: StreamFn;\n\treadonly retry?: RetryPolicy;\n}\n\nconst TITLE_SYSTEM_PROMPT = `Generate a concise title for this coding-agent session.\n\nRules:\n- Use 3 to 6 words.\n- Prefer concrete nouns and verbs from the user's task.\n- Do not include quotes, punctuation at the end, markdown, or explanations.\n- If the input is only a greeting, acknowledgement, or too vague to title, return <title>none</title>.\n- Respond only as <title>Session Title</title>.`;\n\nconst LOW_SIGNAL_PROMPTS = new Set([\n\t\"hi\",\n\t\"hello\",\n\t\"hey\",\n\t\"yo\",\n\t\"thanks\",\n\t\"thank you\",\n\t\"ok\",\n\t\"okay\",\n\t\"k\",\n\t\"yes\",\n\t\"no\",\n\t\"yep\",\n\t\"nope\",\n]);\n\nconst MAX_TITLE_RETRIES = 1;\nconst MAX_TITLE_RETRY_DELAY_MS = 2000;\n\n/**\n * Narrow the user's retry budget for cosmetic background title generation.\n *\n * A title is not worth the full agent-turn budget: the default policy would\n * keep hitting an already-overloaded provider for ~14s while the user's real\n * turn competes for the same capacity, and a custom `baseDelayMs` could stall\n * it far longer. One retry recovers the common single-blip case; a title that\n * still fails is regenerated at the next turn end anyway. `enabled` stays the\n * user's call, and a smaller configured budget is never inflated.\n */\nexport function sessionTitleRetryPolicy(settings: RetryPolicy): RetryPolicy {\n\treturn {\n\t\tenabled: settings.enabled,\n\t\tmaxRetries: Math.min(settings.maxRetries, MAX_TITLE_RETRIES),\n\t\tbaseDelayMs: Math.min(settings.baseDelayMs, MAX_TITLE_RETRY_DELAY_MS),\n\t};\n}\n\nexport function shouldSkipSessionTitle(text: string): boolean {\n\tconst normalized = text.replace(/\\s+/g, \" \").trim().toLowerCase();\n\tif (normalized.length === 0) return true;\n\tif (normalized.startsWith(\"/\")) return true;\n\treturn LOW_SIGNAL_PROMPTS.has(normalized);\n}\n\nexport async function generateSessionTitle(options: GenerateSessionTitleOptions): Promise<string | undefined> {\n\tif (shouldSkipSessionTitle(options.firstPrompt)) {\n\t\treturn undefined;\n\t}\n\n\t// Titles are cosmetic background work: honor the caller's retry policy so a\n\t// single transient provider error (e.g. a 529 overloaded stream) does not\n\t// surface as a scary runtime error. Mirrors completeSummarization().\n\tconst response = await retryAssistantCall(\n\t\t() =>\n\t\t\tcompleteTitle(\n\t\t\t\toptions.model,\n\t\t\t\tbuildTitleContext(options.firstPrompt),\n\t\t\t\tbuildTitleOptions(options),\n\t\t\t\toptions.streamFn,\n\t\t\t),\n\t\toptions.retry,\n\t\toptions.signal,\n\t);\n\tif (response.stopReason === \"error\") {\n\t\tthrow new Error(humanizeProviderError(response.errorMessage ?? \"Session title generation failed\"));\n\t}\n\treturn parseSessionTitle(response);\n}\n\nfunction buildTitleContext(firstPrompt: string): Context {\n\treturn {\n\t\tsystemPrompt: TITLE_SYSTEM_PROMPT,\n\t\tmessages: [\n\t\t\t{\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [{ type: \"text\", text: firstPrompt }],\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t},\n\t\t],\n\t};\n}\n\nfunction buildTitleOptions(options: GenerateSessionTitleOptions): SimpleStreamOptions {\n\tconst titleOptions: SimpleStreamOptions = {\n\t\t...options.baseOptions,\n\t\tsessionId: options.sessionId,\n\t\tcacheRetention: options.model.cacheRetention === \"none\" ? \"none\" : \"short\",\n\t\tmaxTokens: 64,\n\t};\n\tif (options.auth.apiKey !== undefined) {\n\t\ttitleOptions.apiKey = options.auth.apiKey;\n\t}\n\tif (options.auth.headers !== undefined) {\n\t\ttitleOptions.headers = options.auth.headers;\n\t}\n\tif (options.auth.extraBody !== undefined) {\n\t\ttitleOptions.extraBody = options.auth.extraBody;\n\t}\n\tif (options.auth.env !== undefined) {\n\t\ttitleOptions.env = options.auth.env;\n\t}\n\tif (options.signal !== undefined) {\n\t\ttitleOptions.signal = options.signal;\n\t}\n\treturn titleOptions;\n}\n\nasync function completeTitle(\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions: SimpleStreamOptions,\n\tstreamFn?: StreamFn,\n): Promise<AssistantMessage> {\n\tif (streamFn === undefined) {\n\t\treturn completeSimple(model, context, options);\n\t}\n\tconst stream = await streamFn(model, context, options);\n\treturn stream.result();\n}\n\nfunction parseSessionTitle(message: AssistantMessage): string | undefined {\n\tconst text = message.content\n\t\t.filter((part): part is TextContent => part.type === \"text\")\n\t\t.map((part) => part.text)\n\t\t.join(\"\")\n\t\t.trim();\n\tconst match = text.match(/<title>\\s*([\\s\\S]*?)\\s*<\\/title>/i);\n\tconst rawTitle = match?.[1];\n\tif (rawTitle === undefined) {\n\t\treturn undefined;\n\t}\n\tconst title = sanitizeTitle(rawTitle);\n\tif (!title || title.toLowerCase() === \"none\") {\n\t\treturn undefined;\n\t}\n\treturn title;\n}\n\n/**\n * Reduce a raw provider error payload (e.g. an Anthropic `{\"type\":\"error\",...}`\n * body, optionally prefixed with an HTTP status code) to a short human-readable\n * line while keeping the error type and request id for follow-up. Non-JSON and\n * unrecognized payloads pass through unchanged.\n */\nexport function humanizeProviderError(raw: string): string {\n\t// `formatProviderError` (packages/ai/src/utils/error-body.ts) emits\n\t// `<status>: <body>` or `<prefix> (<status>): <body>`; Anthropic SSE error\n\t// events arrive as the bare JSON body.\n\tconst statusPrefix = raw.trim().match(/^(?:.*?\\((\\d{3})\\)|(\\d{3}))\\s*:\\s*(?=\\{)/);\n\tconst status = statusPrefix?.[1] ?? statusPrefix?.[2];\n\tconst bodyText = statusPrefix ? raw.trim().slice(statusPrefix[0].length) : raw.trim();\n\tif (!bodyText.startsWith(\"{\")) {\n\t\treturn raw;\n\t}\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(bodyText);\n\t} catch {\n\t\treturn raw;\n\t}\n\tconst body = asRecord(parsed);\n\tif (!body) {\n\t\treturn raw;\n\t}\n\tconst nested = asRecord(body.error);\n\tconst message = asNonEmptyString(nested?.message) ?? asNonEmptyString(body.message) ?? asNonEmptyString(body.error);\n\tif (message === undefined) {\n\t\treturn raw;\n\t}\n\tconst details: string[] = [];\n\tconst errorType = asNonEmptyString(nested?.type) ?? asNonEmptyString(body.type);\n\tif (errorType && errorType !== \"error\") {\n\t\tdetails.push(errorType);\n\t}\n\tif (status) {\n\t\tdetails.push(`HTTP ${status}`);\n\t}\n\tconst requestId = asNonEmptyString(body.request_id);\n\tif (requestId) {\n\t\tdetails.push(`request ${requestId}`);\n\t}\n\treturn details.length > 0 ? `${message} (${details.join(\", \")})` : message;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value)\n\t\t? (value as Record<string, unknown>)\n\t\t: undefined;\n}\n\nfunction asNonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction sanitizeTitle(text: string): string {\n\treturn text\n\t\t.replace(/\\u001b\\][^\\u0007]*(?:\\u0007|\\u001b\\\\)/g, \"\")\n\t\t.replace(/\\u001b\\[[0-?]*[ -/]*[@-~]/g, \"\")\n\t\t.replace(/\\u001b[\\u0020-\\u002f]*[\\u0030-\\u007e]/g, \"\")\n\t\t.replace(/[\\r\\n]+/g, \" \")\n\t\t.replace(/[\\u0000-\\u001f\\u007f-\\u009f]+/g, \" \")\n\t\t.replace(/\\s+/g, \" \")\n\t\t.replace(/^[\"'`]+|[\"'`.!?]+$/g, \"\")\n\t\t.trim()\n\t\t.slice(0, 80)\n\t\t.trim();\n}\n"]}
1
+ {"version":3,"file":"session-title-generator.js","sourceRoot":"","sources":["../../src/core/session-title-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StreamFn } from \"@earendil-works/pi-agent-core\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tContext,\n\tModel,\n\tSimpleStreamOptions,\n\tTextContent,\n\tThinkingLevel,\n} from \"@earendil-works/pi-ai/compat\";\nimport { completeSimple, type RetryPolicy, retryAssistantCall } from \"@earendil-works/pi-ai/compat\";\nimport { initialTitleReasoning, mandatoryReasoningRetryLevel } from \"./session-title-reasoning.ts\";\n\ninterface SessionTitleAuth {\n\treadonly apiKey?: string;\n\treadonly headers?: Record<string, string>;\n\treadonly extraBody?: Record<string, unknown>;\n\treadonly env?: Record<string, string>;\n}\n\ninterface GenerateSessionTitleOptions {\n\treadonly firstPrompt: string;\n\treadonly model: Model<Api>;\n\treadonly auth: SessionTitleAuth;\n\treadonly sessionId: string;\n\treadonly baseOptions?: SimpleStreamOptions;\n\treadonly signal?: AbortSignal;\n\treadonly streamFn?: StreamFn;\n\treadonly retry?: RetryPolicy;\n}\n\nconst TITLE_SYSTEM_PROMPT = `Generate a concise title for this coding-agent session.\n\nRules:\n- Use 3 to 6 words.\n- Prefer concrete nouns and verbs from the user's task.\n- Do not include quotes, punctuation at the end, markdown, or explanations.\n- If the input is only a greeting, acknowledgement, or too vague to title, return <title>none</title>.\n- Respond only as <title>Session Title</title>.`;\n\nconst LOW_SIGNAL_PROMPTS = new Set([\n\t\"hi\",\n\t\"hello\",\n\t\"hey\",\n\t\"yo\",\n\t\"thanks\",\n\t\"thank you\",\n\t\"ok\",\n\t\"okay\",\n\t\"k\",\n\t\"yes\",\n\t\"no\",\n\t\"yep\",\n\t\"nope\",\n]);\n\nconst TITLE_MAX_TOKENS = 64;\n// Reasoning tokens count against the completion budget, so a title that must reason needs room\n// for the thinking and the `<title>` answer.\nconst REASONING_TITLE_MAX_TOKENS = 1024;\n\nconst MAX_TITLE_RETRIES = 1;\nconst MAX_TITLE_RETRY_DELAY_MS = 2000;\n\n/**\n * Narrow the user's retry budget for cosmetic background title generation.\n *\n * A title is not worth the full agent-turn budget: the default policy would\n * keep hitting an already-overloaded provider for ~14s while the user's real\n * turn competes for the same capacity, and a custom `baseDelayMs` could stall\n * it far longer. One retry recovers the common single-blip case; a title that\n * still fails is regenerated at the next turn end anyway. `enabled` stays the\n * user's call, and a smaller configured budget is never inflated.\n */\nexport function sessionTitleRetryPolicy(settings: RetryPolicy): RetryPolicy {\n\treturn {\n\t\tenabled: settings.enabled,\n\t\tmaxRetries: Math.min(settings.maxRetries, MAX_TITLE_RETRIES),\n\t\tbaseDelayMs: Math.min(settings.baseDelayMs, MAX_TITLE_RETRY_DELAY_MS),\n\t};\n}\n\nexport function shouldSkipSessionTitle(text: string): boolean {\n\tconst normalized = text.replace(/\\s+/g, \" \").trim().toLowerCase();\n\tif (normalized.length === 0) return true;\n\tif (normalized.startsWith(\"/\")) return true;\n\treturn LOW_SIGNAL_PROMPTS.has(normalized);\n}\n\nexport async function generateSessionTitle(options: GenerateSessionTitleOptions): Promise<string | undefined> {\n\tif (shouldSkipSessionTitle(options.firstPrompt)) {\n\t\treturn undefined;\n\t}\n\n\t// Titles are cosmetic background work: honor the caller's retry policy so a\n\t// single transient provider error (e.g. a 529 overloaded stream) does not\n\t// surface as a scary runtime error. Mirrors completeSummarization().\n\tconst reasoning = initialTitleReasoning(options.model);\n\tlet response = await requestTitle(options, reasoning);\n\tconst retryReasoning =\n\t\tresponse.stopReason === \"error\"\n\t\t\t? mandatoryReasoningRetryLevel(options.model, reasoning, response.errorMessage)\n\t\t\t: undefined;\n\tif (retryReasoning !== undefined) {\n\t\tresponse = await requestTitle(options, retryReasoning);\n\t}\n\tif (response.stopReason === \"error\") {\n\t\tthrow new Error(humanizeProviderError(response.errorMessage ?? \"Session title generation failed\"));\n\t}\n\treturn parseSessionTitle(response);\n}\n\nfunction requestTitle(\n\toptions: GenerateSessionTitleOptions,\n\treasoning: ThinkingLevel | undefined,\n): Promise<AssistantMessage> {\n\treturn retryAssistantCall(\n\t\t() =>\n\t\t\tcompleteTitle(\n\t\t\t\toptions.model,\n\t\t\t\tbuildTitleContext(options.firstPrompt),\n\t\t\t\tbuildTitleOptions(options, reasoning),\n\t\t\t\toptions.streamFn,\n\t\t\t),\n\t\toptions.retry,\n\t\toptions.signal,\n\t);\n}\n\nfunction buildTitleContext(firstPrompt: string): Context {\n\treturn {\n\t\tsystemPrompt: TITLE_SYSTEM_PROMPT,\n\t\tmessages: [\n\t\t\t{\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [{ type: \"text\", text: firstPrompt }],\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t},\n\t\t],\n\t};\n}\n\nfunction buildTitleOptions(\n\toptions: GenerateSessionTitleOptions,\n\treasoning: ThinkingLevel | undefined,\n): SimpleStreamOptions {\n\tconst titleOptions: SimpleStreamOptions = {\n\t\t...options.baseOptions,\n\t\tsessionId: options.sessionId,\n\t\tcacheRetention: options.model.cacheRetention === \"none\" ? \"none\" : \"short\",\n\t\tmaxTokens: reasoning === undefined ? TITLE_MAX_TOKENS : REASONING_TITLE_MAX_TOKENS,\n\t};\n\tif (reasoning !== undefined) {\n\t\ttitleOptions.reasoning = reasoning;\n\t}\n\tif (options.auth.apiKey !== undefined) {\n\t\ttitleOptions.apiKey = options.auth.apiKey;\n\t}\n\tif (options.auth.headers !== undefined) {\n\t\ttitleOptions.headers = options.auth.headers;\n\t}\n\tif (options.auth.extraBody !== undefined) {\n\t\ttitleOptions.extraBody = options.auth.extraBody;\n\t}\n\tif (options.auth.env !== undefined) {\n\t\ttitleOptions.env = options.auth.env;\n\t}\n\tif (options.signal !== undefined) {\n\t\ttitleOptions.signal = options.signal;\n\t}\n\treturn titleOptions;\n}\n\nasync function completeTitle(\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions: SimpleStreamOptions,\n\tstreamFn?: StreamFn,\n): Promise<AssistantMessage> {\n\tif (streamFn === undefined) {\n\t\treturn completeSimple(model, context, options);\n\t}\n\tconst stream = await streamFn(model, context, options);\n\treturn stream.result();\n}\n\nfunction parseSessionTitle(message: AssistantMessage): string | undefined {\n\tconst text = message.content\n\t\t.filter((part): part is TextContent => part.type === \"text\")\n\t\t.map((part) => part.text)\n\t\t.join(\"\")\n\t\t.trim();\n\tconst match = text.match(/<title>\\s*([\\s\\S]*?)\\s*<\\/title>/i);\n\tconst rawTitle = match?.[1];\n\tif (rawTitle === undefined) {\n\t\treturn undefined;\n\t}\n\tconst title = sanitizeTitle(rawTitle);\n\tif (!title || title.toLowerCase() === \"none\") {\n\t\treturn undefined;\n\t}\n\treturn title;\n}\n\n/**\n * Reduce a raw provider error payload (e.g. an Anthropic `{\"type\":\"error\",...}`\n * body, optionally prefixed with an HTTP status code) to a short human-readable\n * line while keeping the error type and request id for follow-up. Non-JSON and\n * unrecognized payloads pass through unchanged.\n */\nexport function humanizeProviderError(raw: string): string {\n\t// `formatProviderError` (packages/ai/src/utils/error-body.ts) emits\n\t// `<status>: <body>` or `<prefix> (<status>): <body>`; Anthropic SSE error\n\t// events arrive as the bare JSON body.\n\tconst statusPrefix = raw.trim().match(/^(?:.*?\\((\\d{3})\\)|(\\d{3}))\\s*:\\s*(?=\\{)/);\n\tconst status = statusPrefix?.[1] ?? statusPrefix?.[2];\n\tconst bodyText = statusPrefix ? raw.trim().slice(statusPrefix[0].length) : raw.trim();\n\tif (!bodyText.startsWith(\"{\")) {\n\t\treturn raw;\n\t}\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(bodyText);\n\t} catch {\n\t\treturn raw;\n\t}\n\tconst body = asRecord(parsed);\n\tif (!body) {\n\t\treturn raw;\n\t}\n\tconst nested = asRecord(body.error);\n\tconst message = asNonEmptyString(nested?.message) ?? asNonEmptyString(body.message) ?? asNonEmptyString(body.error);\n\tif (message === undefined) {\n\t\treturn raw;\n\t}\n\tconst details: string[] = [];\n\tconst errorType = asNonEmptyString(nested?.type) ?? asNonEmptyString(body.type);\n\tif (errorType && errorType !== \"error\") {\n\t\tdetails.push(errorType);\n\t}\n\tif (status) {\n\t\tdetails.push(`HTTP ${status}`);\n\t}\n\tconst requestId = asNonEmptyString(body.request_id);\n\tif (requestId) {\n\t\tdetails.push(`request ${requestId}`);\n\t}\n\treturn details.length > 0 ? `${message} (${details.join(\", \")})` : message;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value)\n\t\t? (value as Record<string, unknown>)\n\t\t: undefined;\n}\n\nfunction asNonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction sanitizeTitle(text: string): string {\n\treturn text\n\t\t.replace(/\\u001b\\][^\\u0007]*(?:\\u0007|\\u001b\\\\)/g, \"\")\n\t\t.replace(/\\u001b\\[[0-?]*[ -/]*[@-~]/g, \"\")\n\t\t.replace(/\\u001b[\\u0020-\\u002f]*[\\u0030-\\u007e]/g, \"\")\n\t\t.replace(/[\\r\\n]+/g, \" \")\n\t\t.replace(/[\\u0000-\\u001f\\u007f-\\u009f]+/g, \" \")\n\t\t.replace(/\\s+/g, \" \")\n\t\t.replace(/^[\"'`]+|[\"'`.!?]+$/g, \"\")\n\t\t.trim()\n\t\t.slice(0, 80)\n\t\t.trim();\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import type { Api, Model, ThinkingLevel } from "@earendil-works/pi-ai/compat";
2
+ /**
3
+ * Reasoning level for the first title request. Titles stay reasoning-free unless the catalog
4
+ * says the model cannot turn reasoning off; then the lowest supported level is requested, because
5
+ * an unset level maps to the provider's "disabled" value, which those endpoints reject with 400.
6
+ */
7
+ export declare function initialTitleReasoning(model: Model<Api>): ThinkingLevel | undefined;
8
+ /**
9
+ * Reasoning level for one retry after a reasoning-free title request was rejected because the
10
+ * endpoint mandates reasoning, which means its catalog entry is stale. `low` is the effort every
11
+ * such endpoint seen so far accepts, clamped to what the catalog still allows.
12
+ */
13
+ export declare function mandatoryReasoningRetryLevel(model: Model<Api>, sentReasoning: ThinkingLevel | undefined, errorMessage: string | undefined): ThinkingLevel | undefined;
14
+ //# sourceMappingURL=session-title-reasoning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-title-reasoning.d.ts","sourceRoot":"","sources":["../../src/core/session-title-reasoning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAsB,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAKlG;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,SAAS,CAKlF;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC9B,aAAa,GAAG,SAAS,CAI3B"}
@@ -0,0 +1,31 @@
1
+ import { clampThinkingLevel, getSupportedThinkingLevels } from "@earendil-works/pi-ai/compat";
2
+ const REASONING_MANDATORY_ERROR = /reasoning is mandatory/i;
3
+ /**
4
+ * Reasoning level for the first title request. Titles stay reasoning-free unless the catalog
5
+ * says the model cannot turn reasoning off; then the lowest supported level is requested, because
6
+ * an unset level maps to the provider's "disabled" value, which those endpoints reject with 400.
7
+ */
8
+ export function initialTitleReasoning(model) {
9
+ if (!model.reasoning)
10
+ return undefined;
11
+ const levels = getSupportedThinkingLevels(model);
12
+ if (levels.includes("off"))
13
+ return undefined;
14
+ return asReasoningLevel(levels[0]);
15
+ }
16
+ /**
17
+ * Reasoning level for one retry after a reasoning-free title request was rejected because the
18
+ * endpoint mandates reasoning, which means its catalog entry is stale. `low` is the effort every
19
+ * such endpoint seen so far accepts, clamped to what the catalog still allows.
20
+ */
21
+ export function mandatoryReasoningRetryLevel(model, sentReasoning, errorMessage) {
22
+ if (sentReasoning !== undefined || errorMessage === undefined)
23
+ return undefined;
24
+ if (!REASONING_MANDATORY_ERROR.test(errorMessage))
25
+ return undefined;
26
+ return asReasoningLevel(clampThinkingLevel(model, "low"));
27
+ }
28
+ function asReasoningLevel(level) {
29
+ return level === undefined || level === "off" ? undefined : level;
30
+ }
31
+ //# sourceMappingURL=session-title-reasoning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-title-reasoning.js","sourceRoot":"","sources":["../../src/core/session-title-reasoning.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE9F,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACtD,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC3C,KAAiB,EACjB,aAAwC,EACxC,YAAgC;IAEhC,IAAI,aAAa,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqC;IAC9D,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACnE,CAAC","sourcesContent":["import type { Api, Model, ModelThinkingLevel, ThinkingLevel } from \"@earendil-works/pi-ai/compat\";\nimport { clampThinkingLevel, getSupportedThinkingLevels } from \"@earendil-works/pi-ai/compat\";\n\nconst REASONING_MANDATORY_ERROR = /reasoning is mandatory/i;\n\n/**\n * Reasoning level for the first title request. Titles stay reasoning-free unless the catalog\n * says the model cannot turn reasoning off; then the lowest supported level is requested, because\n * an unset level maps to the provider's \"disabled\" value, which those endpoints reject with 400.\n */\nexport function initialTitleReasoning(model: Model<Api>): ThinkingLevel | undefined {\n\tif (!model.reasoning) return undefined;\n\tconst levels = getSupportedThinkingLevels(model);\n\tif (levels.includes(\"off\")) return undefined;\n\treturn asReasoningLevel(levels[0]);\n}\n\n/**\n * Reasoning level for one retry after a reasoning-free title request was rejected because the\n * endpoint mandates reasoning, which means its catalog entry is stale. `low` is the effort every\n * such endpoint seen so far accepts, clamped to what the catalog still allows.\n */\nexport function mandatoryReasoningRetryLevel(\n\tmodel: Model<Api>,\n\tsentReasoning: ThinkingLevel | undefined,\n\terrorMessage: string | undefined,\n): ThinkingLevel | undefined {\n\tif (sentReasoning !== undefined || errorMessage === undefined) return undefined;\n\tif (!REASONING_MANDATORY_ERROR.test(errorMessage)) return undefined;\n\treturn asReasoningLevel(clampThinkingLevel(model, \"low\"));\n}\n\nfunction asReasoningLevel(level: ModelThinkingLevel | undefined): ThinkingLevel | undefined {\n\treturn level === undefined || level === \"off\" ? undefined : level;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/core/tools/path-utils.ts"],"names":[],"mappings":"AA8BA,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAgCrE;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCzF"}
1
+ {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/core/tools/path-utils.ts"],"names":[],"mappings":"AAoCA,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAqCrE;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCzF"}
@@ -14,6 +14,11 @@ function tryCurlyQuoteVariant(filePath) {
14
14
  // Users typically type U+0027 (straight apostrophe)
15
15
  return filePath.replace(/'/g, "\u2019");
16
16
  }
17
+ // Windows Explorer "Copy as path" wraps the path in double quotes (senpi#2170).
18
+ function unquotedPath(filePath) {
19
+ const match = /^@?(["'])(.+)\1$/.exec(filePath.trim());
20
+ return match?.[2];
21
+ }
17
22
  function fileExists(filePath) {
18
23
  try {
19
24
  accessSync(filePath, constants.F_OK);
@@ -47,6 +52,10 @@ export function resolveReadPath(filePath, cwd) {
47
52
  if (fileExists(resolved)) {
48
53
  return resolved;
49
54
  }
55
+ const unquoted = unquotedPath(filePath);
56
+ if (unquoted !== undefined) {
57
+ return resolveReadPath(unquoted, cwd);
58
+ }
50
59
  // Try macOS AM/PM variant (narrow no-break space before AM/PM)
51
60
  const amPmVariant = tryMacOSScreenshotPath(resolved);
52
61
  if (amPmVariant !== resolved && fileExists(amPmVariant)) {
@@ -74,6 +83,10 @@ export async function resolveReadPathAsync(filePath, cwd) {
74
83
  if (await pathExists(resolved)) {
75
84
  return resolved;
76
85
  }
86
+ const unquoted = unquotedPath(filePath);
87
+ if (unquoted !== undefined) {
88
+ return resolveReadPathAsync(unquoted, cwd);
89
+ }
77
90
  // Try macOS AM/PM variant (narrow no-break space before AM/PM)
78
91
  const amPmVariant = tryMacOSScreenshotPath(resolved);
79
92
  if (amPmVariant !== resolved && (await pathExists(amPmVariant))) {
@@ -1 +1 @@
1
- {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../../src/core/tools/path-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { accessSync, constants } from \"node:fs\";\nimport { access } from \"node:fs/promises\";\nimport { normalizePath, resolvePath } from \"../../utils/paths.ts\";\n\nconst NARROW_NO_BREAK_SPACE = \"\\u202F\";\n\nfunction tryMacOSScreenshotPath(filePath: string): string {\n\treturn filePath.replace(/ (AM|PM)\\./gi, `${NARROW_NO_BREAK_SPACE}$1.`);\n}\n\nfunction tryNFDVariant(filePath: string): string {\n\t// macOS stores filenames in NFD (decomposed) form, try converting user input to NFD\n\treturn filePath.normalize(\"NFD\");\n}\n\nfunction tryCurlyQuoteVariant(filePath: string): string {\n\t// macOS uses U+2019 (right single quotation mark) in screenshot names like \"Capture d'écran\"\n\t// Users typically type U+0027 (straight apostrophe)\n\treturn filePath.replace(/'/g, \"\\u2019\");\n}\n\nfunction fileExists(filePath: string): boolean {\n\ttry {\n\t\taccessSync(filePath, constants.F_OK);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport async function pathExists(filePath: string): Promise<boolean> {\n\ttry {\n\t\tawait access(filePath, constants.F_OK);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function expandPath(filePath: string): string {\n\treturn normalizePath(filePath, { normalizeUnicodeSpaces: true, stripAtPrefix: true });\n}\n\n/**\n * Resolve a path relative to the given cwd.\n * Handles ~ expansion and absolute paths.\n */\nexport function resolveToCwd(filePath: string, cwd: string): string {\n\treturn resolvePath(filePath, cwd, { normalizeUnicodeSpaces: true, stripAtPrefix: true });\n}\n\nexport function resolveReadPath(filePath: string, cwd: string): string {\n\tconst resolved = resolveToCwd(filePath, cwd);\n\n\tif (fileExists(resolved)) {\n\t\treturn resolved;\n\t}\n\n\t// Try macOS AM/PM variant (narrow no-break space before AM/PM)\n\tconst amPmVariant = tryMacOSScreenshotPath(resolved);\n\tif (amPmVariant !== resolved && fileExists(amPmVariant)) {\n\t\treturn amPmVariant;\n\t}\n\n\t// Try NFD variant (macOS stores filenames in NFD form)\n\tconst nfdVariant = tryNFDVariant(resolved);\n\tif (nfdVariant !== resolved && fileExists(nfdVariant)) {\n\t\treturn nfdVariant;\n\t}\n\n\t// Try curly quote variant (macOS uses U+2019 in screenshot names)\n\tconst curlyVariant = tryCurlyQuoteVariant(resolved);\n\tif (curlyVariant !== resolved && fileExists(curlyVariant)) {\n\t\treturn curlyVariant;\n\t}\n\n\t// Try combined NFD + curly quote (for French macOS screenshots like \"Capture d'écran\")\n\tconst nfdCurlyVariant = tryCurlyQuoteVariant(nfdVariant);\n\tif (nfdCurlyVariant !== resolved && fileExists(nfdCurlyVariant)) {\n\t\treturn nfdCurlyVariant;\n\t}\n\n\treturn resolved;\n}\n\nexport async function resolveReadPathAsync(filePath: string, cwd: string): Promise<string> {\n\tconst resolved = resolveToCwd(filePath, cwd);\n\n\tif (await pathExists(resolved)) {\n\t\treturn resolved;\n\t}\n\n\t// Try macOS AM/PM variant (narrow no-break space before AM/PM)\n\tconst amPmVariant = tryMacOSScreenshotPath(resolved);\n\tif (amPmVariant !== resolved && (await pathExists(amPmVariant))) {\n\t\treturn amPmVariant;\n\t}\n\n\t// Try NFD variant (macOS stores filenames in NFD form)\n\tconst nfdVariant = tryNFDVariant(resolved);\n\tif (nfdVariant !== resolved && (await pathExists(nfdVariant))) {\n\t\treturn nfdVariant;\n\t}\n\n\t// Try curly quote variant (macOS uses U+2019 in screenshot names)\n\tconst curlyVariant = tryCurlyQuoteVariant(resolved);\n\tif (curlyVariant !== resolved && (await pathExists(curlyVariant))) {\n\t\treturn curlyVariant;\n\t}\n\n\t// Try combined NFD + curly quote (for French macOS screenshots like \"Capture d'écran\")\n\tconst nfdCurlyVariant = tryCurlyQuoteVariant(nfdVariant);\n\tif (nfdCurlyVariant !== resolved && (await pathExists(nfdCurlyVariant))) {\n\t\treturn nfdCurlyVariant;\n\t}\n\n\treturn resolved;\n}\n"]}
1
+ {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../../src/core/tools/path-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { accessSync, constants } from \"node:fs\";\nimport { access } from \"node:fs/promises\";\nimport { normalizePath, resolvePath } from \"../../utils/paths.ts\";\n\nconst NARROW_NO_BREAK_SPACE = \"\\u202F\";\n\nfunction tryMacOSScreenshotPath(filePath: string): string {\n\treturn filePath.replace(/ (AM|PM)\\./gi, `${NARROW_NO_BREAK_SPACE}$1.`);\n}\n\nfunction tryNFDVariant(filePath: string): string {\n\t// macOS stores filenames in NFD (decomposed) form, try converting user input to NFD\n\treturn filePath.normalize(\"NFD\");\n}\n\nfunction tryCurlyQuoteVariant(filePath: string): string {\n\t// macOS uses U+2019 (right single quotation mark) in screenshot names like \"Capture d'écran\"\n\t// Users typically type U+0027 (straight apostrophe)\n\treturn filePath.replace(/'/g, \"\\u2019\");\n}\n\n// Windows Explorer \"Copy as path\" wraps the path in double quotes (senpi#2170).\nfunction unquotedPath(filePath: string): string | undefined {\n\tconst match = /^@?([\"'])(.+)\\1$/.exec(filePath.trim());\n\treturn match?.[2];\n}\n\nfunction fileExists(filePath: string): boolean {\n\ttry {\n\t\taccessSync(filePath, constants.F_OK);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport async function pathExists(filePath: string): Promise<boolean> {\n\ttry {\n\t\tawait access(filePath, constants.F_OK);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function expandPath(filePath: string): string {\n\treturn normalizePath(filePath, { normalizeUnicodeSpaces: true, stripAtPrefix: true });\n}\n\n/**\n * Resolve a path relative to the given cwd.\n * Handles ~ expansion and absolute paths.\n */\nexport function resolveToCwd(filePath: string, cwd: string): string {\n\treturn resolvePath(filePath, cwd, { normalizeUnicodeSpaces: true, stripAtPrefix: true });\n}\n\nexport function resolveReadPath(filePath: string, cwd: string): string {\n\tconst resolved = resolveToCwd(filePath, cwd);\n\n\tif (fileExists(resolved)) {\n\t\treturn resolved;\n\t}\n\n\tconst unquoted = unquotedPath(filePath);\n\tif (unquoted !== undefined) {\n\t\treturn resolveReadPath(unquoted, cwd);\n\t}\n\n\t// Try macOS AM/PM variant (narrow no-break space before AM/PM)\n\tconst amPmVariant = tryMacOSScreenshotPath(resolved);\n\tif (amPmVariant !== resolved && fileExists(amPmVariant)) {\n\t\treturn amPmVariant;\n\t}\n\n\t// Try NFD variant (macOS stores filenames in NFD form)\n\tconst nfdVariant = tryNFDVariant(resolved);\n\tif (nfdVariant !== resolved && fileExists(nfdVariant)) {\n\t\treturn nfdVariant;\n\t}\n\n\t// Try curly quote variant (macOS uses U+2019 in screenshot names)\n\tconst curlyVariant = tryCurlyQuoteVariant(resolved);\n\tif (curlyVariant !== resolved && fileExists(curlyVariant)) {\n\t\treturn curlyVariant;\n\t}\n\n\t// Try combined NFD + curly quote (for French macOS screenshots like \"Capture d'écran\")\n\tconst nfdCurlyVariant = tryCurlyQuoteVariant(nfdVariant);\n\tif (nfdCurlyVariant !== resolved && fileExists(nfdCurlyVariant)) {\n\t\treturn nfdCurlyVariant;\n\t}\n\n\treturn resolved;\n}\n\nexport async function resolveReadPathAsync(filePath: string, cwd: string): Promise<string> {\n\tconst resolved = resolveToCwd(filePath, cwd);\n\n\tif (await pathExists(resolved)) {\n\t\treturn resolved;\n\t}\n\n\tconst unquoted = unquotedPath(filePath);\n\tif (unquoted !== undefined) {\n\t\treturn resolveReadPathAsync(unquoted, cwd);\n\t}\n\n\t// Try macOS AM/PM variant (narrow no-break space before AM/PM)\n\tconst amPmVariant = tryMacOSScreenshotPath(resolved);\n\tif (amPmVariant !== resolved && (await pathExists(amPmVariant))) {\n\t\treturn amPmVariant;\n\t}\n\n\t// Try NFD variant (macOS stores filenames in NFD form)\n\tconst nfdVariant = tryNFDVariant(resolved);\n\tif (nfdVariant !== resolved && (await pathExists(nfdVariant))) {\n\t\treturn nfdVariant;\n\t}\n\n\t// Try curly quote variant (macOS uses U+2019 in screenshot names)\n\tconst curlyVariant = tryCurlyQuoteVariant(resolved);\n\tif (curlyVariant !== resolved && (await pathExists(curlyVariant))) {\n\t\treturn curlyVariant;\n\t}\n\n\t// Try combined NFD + curly quote (for French macOS screenshots like \"Capture d'écran\")\n\tconst nfdCurlyVariant = tryCurlyQuoteVariant(nfdVariant);\n\tif (nfdCurlyVariant !== resolved && (await pathExists(nfdCurlyVariant))) {\n\t\treturn nfdCurlyVariant;\n\t}\n\n\treturn resolved;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQjF,OAAO,KAAK,EAAoB,YAAY,EAAW,KAAK,EAAsB,MAAM,8BAA8B,CAAC;AAsDvH,OAAO,EACN,KAAK,iBAAiB,EAItB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,mBAAmB,EAAkC,MAAM,qCAAqC,CAAC;AAC/G,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AA2BrE,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAsBzG,OAAO,EAAqB,cAAc,EAAiC,MAAM,+BAA+B,CAAC;AACjH,OAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAkGpF,OAAO,EAAc,KAAK,iBAAiB,EAA0B,MAAM,kBAAkB,CAAC;AAkE9F,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AA8ExF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO,CAE3F;AAwJD,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAatF;AAUD,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAuDjC,KAAK,8BAA8B,GAAG;IACrC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,MAAM,IAAI,IAAI,CAAC;CACf,CAAC;AAmBF,yFAAyF;AACzF,qBAAa,4BAA4B;IACxC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAE1E,YAAY,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,8BAA8B,EAEnE;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1B;IAED,0GAA0G;IAC1G,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG;QACtC,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QAC5C,iBAAiB,EAAE,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;KAC3E,CAgBA;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMnC;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEnC;IAED,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAO1C;CACD;AAED,6FAA6F;AAC7F,UAAU,oBAAoB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAmFD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qGAAqG;IACrG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IACpC,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA+ED,qBAAa,eAAe;IAC3B,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAO9C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,wBAAwB,CAAY;IAC5C,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,wBAAwB,CAAY;IAC5C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,sBAAsB,CAA4B;IAC1D,OAAO,CAAC,oBAAoB,CAAmC;IAC/D,OAAO,CAAC,4BAA4B,CAAqC;IACzE,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,qBAAqB,CAAC,CAAa;IAC3C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAC,CAAwC;IAChE,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;IACpE;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAmC;IACxD;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B,CAAC,CAAiB;IACrD,OAAO,CAAC,qBAAqB,CAA0C;IACvE,OAAO,CAAC,8BAA8B,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,uBAAuB,CAAkD;IACjF,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAiB;IAC5D,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,gCAAgC,CAAiC;IACzE,OAAO,CAAC,8BAA8B,CAAiC;IACvE,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,sBAAsB,CAAiC;IAE/D,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,iCAAiC,CAAS;IAGlD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,wBAAwB,CAAS;IAGzC,OAAO,CAAC,kBAAkB,CAAoD;IAC9E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgD;IACtF,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAG9D,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,sBAAsB;IAG9B,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAGxC;IAGH,OAAO,CAAC,aAAa,CAA6B;IAGlD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,qBAAqB,CAAyB;IAGtD,OAAO,CAAC,UAAU,CAAS;IAG3B,OAAO,CAAC,aAAa,CAAiD;IAGtE,OAAO,CAAC,qBAAqB,CAAgC;IAG7D,OAAO,CAAC,2BAA2B,CAAC,CAAa;IACjD,OAAO,CAAC,8BAA8B,CAAS;IAC/C;;;;OAIG;IACH,OAAO,CAAC,kCAAkC,CAAS;IACnD,OAAO,CAAC,0BAA0B,CAAM;IAGxC,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,+BAA+B,CAAS;IAChD,OAAO,CAAC,8BAA8B,CAAyD;IAG/F,OAAO,CAAC,wBAAwB,CAAiC;IACjE,OAAO,CAAC,0BAA0B,CAAiC;IACnE,OAAO,CAAC,kCAAkC,CAAuD;IACjG,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,CAAC,yBAAyB,CAAK;IAGtC,OAAO,CAAC,iBAAiB,CAAS;IAGlC,OAAO,CAAC,iBAAiB,CAAqD;IAC9E,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,mBAAmB,CAA8E;IACzG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAc;IACrD,OAAO,CAAC,sBAAsB,CAAqB;IACnD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAAa;IACvC,OAAO,CAAC,uBAAuB,CAAC,CAAa;IAC7C,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,KAAK,aAAa,GAExB;IACD,OAAO,CAAC,mCAAmC,CAGtC;IAGL,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,oBAAoB,CAAa;IAGzC,OAAO,CAAC,YAAY,CAA6D;IAGjF,OAAO,CAAC,eAAe,CAAY;IAGnC,OAAO,CAAC,aAAa,CAAoC;IAGzD,OAAO,CAAC,YAAY,CAA6D;IAEjF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAEhC;IACF,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,eAAe,CAA6B;IAKpD,OAAO,KAAK,OAAO,GAElB;IACD,OAAO,KAAK,cAAc,GAEzB;IACD,OAAO,KAAK,eAAe,GAE1B;IAED,YAAY,WAAW,EAAE,mBAAmB,EAAE,OAAO,GAAE,sBAA2B,EA0GjF;IAED,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,oCAAoC;IAe5C,OAAO,CAAC,8BAA8B;IAqFtC,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,0BAA0B;IA8BlC,OAAO,KAAK,iBAAiB,GAG5B;IAED,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,aAAa;IA2Df,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAyM1B;IAED;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAwHzB;YAEa,sBAAsB;YAItB,cAAc;YAId,sBAAsB;IAoDpC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,8BAA8B;IAItC,OAAO,CAAC,+BAA+B;IASvC,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,wBAAwB;YAIlB,wBAAwB;IAiCtC,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,kCAAkC;IA2B1C,OAAO,CAAC,yBAAyB;IA8BjC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,mBAAmB;IA6O3B;;OAEG;YACW,4BAA4B;IA4G1C,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,oBAAoB;YA6Bd,oBAAoB;YA+BpB,uBAAuB;IAQrC,OAAO,CAAC,yBAAyB;IAoBjC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;YA6EjB,qBAAqB;YASrB,mBAAmB;IAyHjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,8BAA8B;IAgBtC,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,0BAA0B;IAsClC,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+C1B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IA6CxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAE9C;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,qCAAqC;IAO7C,OAAO,CAAC,oCAAoC;IAK5C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,wBAAwB;IA0EhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6C7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;YACW,oBAAoB;YASpB,0BAA0B;IAQxC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsD3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B,uFAAuF;IACvF,OAAO,CAAC,iBAAiB;IAqDzB,gFAAgF;IAChF,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,oBAAoB;IAQ5B,oFAAoF;IACpF,OAAO,CAAC,qBAAqB;IAwC7B,OAAO,CAAC,gBAAgB;YAcV,mBAAmB;IA+DjC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAkHhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B,oGAAoG;YACtF,mBAAmB;IAgFjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,gBAAgB;YAyGV,qBAAqB;YAcrB,oBAAoB;IAqClC,kFAAkF;IAClF,OAAO,CAAC,qBAAqB;IAkB7B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,mBAAmB;IAa3B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,wBAAwB;IA4QhC,OAAO,CAAC,gBAAgB;YAMV,WAAW;IA4qBzB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,qCAAqC;IAM7C,OAAO,CAAC,mCAAmC;IA0B3C,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB;IAS1B,qDAAqD;IACrD,OAAO,CAAC,qBAAqB;IAa7B;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,qBAAqB;IAwC7B,OAAO,CAAC,gBAAgB;IA0HxB,OAAO,CAAC,yBAAyB;IAgEjC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,4BAA4B;IAoCpC,OAAO,CAAC,kBAAkB;IAyE1B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,6BAA6B;IA0BrC;;;;OAIG;IACH,2FAA2F;IAC3F,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,kBAAkB;IAgB1B,qBAAqB,IAAI,IAAI,CAmB5B;IAED,OAAO,CAAC,iCAAiC;IAoBnC,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAYlD;IAOD,OAAO,CAAC,0BAA0B;IAwBlC,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;IAKnB;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAS;YAEjB,QAAQ;IA6CtB,OAAO,CAAC,qBAAqB;IAiB7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa;IA0CrB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;YACW,sBAAsB;IAKpC,OAAO,CAAC,sBAAsB;IAuD9B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,WAAW;YAyCL,cAAc;IAsE5B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;YAgBjB,kBAAkB;YAWlB,UAAU;IAmCxB,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,6BAA6B;YAqBvB,wBAAwB;IA0BtC,WAAW,IAAI,IAAI,CAGlB;IAED,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CASpC;IAED,OAAO,CAAC,iBAAiB;IAKzB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAkBpC;IAED,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAIxC;IAED,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAUnD;IAED,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAI7D;IAED,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,0BAA0B,CAAA;KAAE,CAAC,GAAG,IAAI,CAExG;IAED,wBAAwB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI,CAWzG;IAED,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAUtD;IAED;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAwDtB,OAAO,CAAC,4BAA4B;IAmBpC,OAAO,CAAC,6BAA6B;IAuBrC;;;;;;;;OAQG;YACW,0BAA0B;IAmBxC,OAAO,CAAC,sBAAsB;IAsB9B;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,kBAAkB;YAUZ,oBAAoB;IA8GlC,6DAA6D;IAC7D,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,qBAAqB;IAO7B;;;OAGG;IACH,OAAO,CAAC,YAAY;YA6BN,oBAAoB;YAuQpB,kBAAkB;YAelB,mBAAmB;YAkCnB,iBAAiB;YAyBjB,0BAA0B;YAe1B,wBAAwB;YAcxB,8BAA8B;YAS9B,sBAAsB;IA+BpC,0GAA0G;IAC1G,OAAO,CAAC,4BAA4B;YAStB,uCAAuC;IA8BrD,OAAO,CAAC,wCAAwC;IA0BhD,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,iBAAiB;YAiCX,0BAA0B;IAuCxC,OAAO,CAAC,wBAAwB;YA0HlB,uBAAuB;YAuCvB,kBAAkB;IAqBhC,OAAO,CAAC,gBAAgB;YA6DV,4BAA4B;IA2C1C,8GAA8G;IAC9G,OAAO,CAAC,kCAAkC;YAe5B,yBAAyB;YAoBzB,iBAAiB;IAiF/B,OAAO,CAAC,mBAAmB;YAsCb,mBAAmB;IAwCjC,OAAO,CAAC,uBAAuB;YAgCjB,wBAAwB;IAetC,OAAO,CAAC,wBAAwB;YAalB,kBAAkB;YAkClB,kBAAkB;IAUhC,OAAO,CAAC,yBAAyB;IA0DjC,OAAO,CAAC,yBAAyB;YA2CnB,iBAAiB;YA4DjB,8BAA8B;IA2G5C,OAAO,CAAC,qBAAqB;YA2Bf,qBAAqB;IA0CnC,OAAO,CAAC,cAAc;YAiCR,cAAc;IAwB5B,OAAO,CAAC,gBAAgB;YAaV,aAAa;YAYb,eAAe;IAyB7B,6FAA6F;IAC7F,OAAO,CAAC,gBAAgB;YASV,mBAAmB;YAwHnB,mBAAmB;IAkBjC,OAAO,CAAC,sBAAsB;YA6BhB,mBAAmB;YA4CnB,kBAAkB;YAoGlB,iBAAiB;IA+B/B,sFAAsF;YACxE,mBAAmB;IASjC,oEAAoE;YACtD,gBAAgB;IAW9B,iFAAiF;IACjF,OAAO,CAAC,sBAAsB;YAiBhB,mBAAmB;YAUnB,oBAAoB;IAgElC,OAAO,CAAC,sBAAsB;IAsB9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,oBAAoB;YAyHd,kBAAkB;IAehC,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,qBAAqB;YAMf,iBAAiB;YAuFjB,oBAAoB;IAkBlC,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAiCvE;CACD"}
@@ -110,6 +110,7 @@ import { getModelSearchText } from "./model-search.js";
110
110
  import { isNetworkProviderError, isNetworkProviderMessage, ProviderErrorPresentation, } from "./provider-error-presentation.js";
111
111
  import { replayAssistantTools } from "./replay-assistant-tools.js";
112
112
  import { isRiskyMainModel, RISKY_MAIN_MODEL_WARNING } from "./risky-main-model-warning.js";
113
+ import { maybeShowRuntimeNotice } from "./runtime-notice-presenter.js";
113
114
  import { DEFAULT_SMOOTH_FPS, StreamingRevealController } from "./streaming-reveal.js";
114
115
  import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getSelectListTheme, getThemeByName, onThemeChange, setRegisteredThemes, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
115
116
  import { InteractiveThemeController } from "./theme/theme-controller.js";
@@ -1268,6 +1269,7 @@ export class InteractiveMode {
1268
1269
  }
1269
1270
  this.showRiskyMainModelWarning(this.session.model);
1270
1271
  void this.maybeWarnAboutAnthropicSubscriptionAuth();
1272
+ maybeShowRuntimeNotice((spec) => this.showNoticeBox(spec));
1271
1273
  // Process initial messages
1272
1274
  if (initialMessage) {
1273
1275
  try {