@bastani/atomic 0.9.16-alpha.9 → 0.9.16

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 (191) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/README.md +4 -4
  3. package/dist/builtin/intercom/CHANGELOG.md +42 -0
  4. package/dist/builtin/intercom/README.md +18 -17
  5. package/dist/builtin/intercom/broker/broker.ts +43 -18
  6. package/dist/builtin/intercom/broker/client.ts +138 -7
  7. package/dist/builtin/intercom/broker/group-isolation.ts +3 -3
  8. package/dist/builtin/intercom/broker/group-membership.ts +55 -0
  9. package/dist/builtin/intercom/broker/presence-handler.ts +62 -50
  10. package/dist/builtin/intercom/broker/send-handler.ts +2 -3
  11. package/dist/builtin/intercom/group.ts +40 -0
  12. package/dist/builtin/intercom/index.bundle.mjs +490 -183
  13. package/dist/builtin/intercom/package.json +2 -2
  14. package/dist/builtin/intercom/skills/intercom/SKILL.md +16 -10
  15. package/dist/builtin/intercom/types.ts +24 -2
  16. package/dist/builtin/mcp/index.bundle.mjs +202 -52
  17. package/dist/builtin/mcp/package.json +2 -2
  18. package/dist/builtin/subagents/CHANGELOG.md +51 -0
  19. package/dist/builtin/subagents/README.md +3 -3
  20. package/dist/builtin/subagents/agents/code-simplifier.md +1 -1
  21. package/dist/builtin/subagents/agents/codebase-analyzer.md +1 -1
  22. package/dist/builtin/subagents/agents/codebase-locator.md +1 -1
  23. package/dist/builtin/subagents/agents/codebase-online-researcher.md +1 -1
  24. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +1 -1
  25. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +1 -1
  26. package/dist/builtin/subagents/agents/codebase-research-locator.md +1 -1
  27. package/dist/builtin/subagents/agents/debugger.md +1 -1
  28. package/dist/builtin/subagents/agents/worker.md +1 -1
  29. package/dist/builtin/subagents/package.json +3 -3
  30. package/dist/builtin/subagents/src/extension/index.bundle.mjs +422 -140
  31. package/dist/builtin/web-access/index.bundle.mjs +202 -52
  32. package/dist/builtin/web-access/package.json +2 -2
  33. package/dist/builtin/workflows/CHANGELOG.md +70 -0
  34. package/dist/builtin/workflows/README.md +2 -2
  35. package/dist/builtin/workflows/builtin/{chunk-h5e65g7g.js → chunk-3y1hmzw6.js} +36 -6
  36. package/dist/builtin/workflows/builtin/{chunk-nqr34qp3.js → chunk-6rbajjf5.js} +7 -1
  37. package/dist/builtin/workflows/builtin/{chunk-qe6bfpbd.js → chunk-bz1c9732.js} +15 -3
  38. package/dist/builtin/workflows/builtin/{chunk-8v8wmb7z.js → chunk-dattsgxg.js} +1 -1
  39. package/dist/builtin/workflows/builtin/{chunk-17zk6ffd.js → chunk-gdx0avpx.js} +355 -67
  40. package/dist/builtin/workflows/builtin/{chunk-rbnj9621.js → chunk-w9c7rkrk.js} +1 -1
  41. package/dist/builtin/workflows/builtin/goal.js +3 -3
  42. package/dist/builtin/workflows/builtin/index.js +5 -5
  43. package/dist/builtin/workflows/builtin/open-claude-design.js +2 -2
  44. package/dist/builtin/workflows/builtin/ralph.js +3 -3
  45. package/dist/builtin/workflows/package.json +2 -2
  46. package/dist/builtin/workflows/src/extension/index.bundle.mjs +531 -143
  47. package/dist/builtin/workflows/src/index.js +212 -72
  48. package/dist/cli/args.js +6 -6
  49. package/dist/cli/args.js.map +1 -1
  50. package/dist/cli/config-selector.d.ts.map +1 -1
  51. package/dist/cli/config-selector.js +2 -1
  52. package/dist/cli/config-selector.js.map +1 -1
  53. package/dist/cli/session-picker.d.ts +2 -1
  54. package/dist/cli/session-picker.d.ts.map +1 -1
  55. package/dist/cli/session-picker.js +3 -2
  56. package/dist/cli/session-picker.js.map +1 -1
  57. package/dist/cli/startup-ui.d.ts.map +1 -1
  58. package/dist/cli/startup-ui.js +2 -1
  59. package/dist/cli/startup-ui.js.map +1 -1
  60. package/dist/core/agent-session-methods.d.ts +1 -0
  61. package/dist/core/agent-session-methods.d.ts.map +1 -1
  62. package/dist/core/agent-session-methods.js.map +1 -1
  63. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  64. package/dist/core/agent-session-post-tool-compaction.js +3 -6
  65. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  66. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  67. package/dist/core/agent-session-prompt.js +3 -1
  68. package/dist/core/agent-session-prompt.js.map +1 -1
  69. package/dist/core/agent-session-services.d.ts.map +1 -1
  70. package/dist/core/agent-session-services.js +6 -3
  71. package/dist/core/agent-session-services.js.map +1 -1
  72. package/dist/core/agent-session-state.d.ts.map +1 -1
  73. package/dist/core/agent-session-state.js +7 -5
  74. package/dist/core/agent-session-state.js.map +1 -1
  75. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  76. package/dist/core/agent-session-tool-hooks.js +37 -23
  77. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  78. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  79. package/dist/core/agent-session-tool-registry.js +9 -2
  80. package/dist/core/agent-session-tool-registry.js.map +1 -1
  81. package/dist/core/agent-session.d.ts +2 -0
  82. package/dist/core/agent-session.d.ts.map +1 -1
  83. package/dist/core/agent-session.js +2 -0
  84. package/dist/core/agent-session.js.map +1 -1
  85. package/dist/core/builtin-packages.d.ts +4 -0
  86. package/dist/core/builtin-packages.d.ts.map +1 -1
  87. package/dist/core/builtin-packages.js +22 -1
  88. package/dist/core/builtin-packages.js.map +1 -1
  89. package/dist/core/callback-activity.d.ts.map +1 -1
  90. package/dist/core/callback-activity.js +6 -3
  91. package/dist/core/callback-activity.js.map +1 -1
  92. package/dist/core/extensions/loader-core.d.ts +1 -0
  93. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  94. package/dist/core/extensions/loader-core.js +11 -1
  95. package/dist/core/extensions/loader-core.js.map +1 -1
  96. package/dist/core/extensions/loader.d.ts +1 -1
  97. package/dist/core/extensions/loader.d.ts.map +1 -1
  98. package/dist/core/extensions/loader.js +1 -1
  99. package/dist/core/extensions/loader.js.map +1 -1
  100. package/dist/core/extensions/runner-registries.d.ts.map +1 -1
  101. package/dist/core/extensions/runner-registries.js +9 -4
  102. package/dist/core/extensions/runner-registries.js.map +1 -1
  103. package/dist/core/extensions/runner-shortcuts.d.ts.map +1 -1
  104. package/dist/core/extensions/runner-shortcuts.js +1 -0
  105. package/dist/core/extensions/runner-shortcuts.js.map +1 -1
  106. package/dist/core/keybindings.d.ts +5 -0
  107. package/dist/core/keybindings.d.ts.map +1 -1
  108. package/dist/core/keybindings.js +4 -0
  109. package/dist/core/keybindings.js.map +1 -1
  110. package/dist/core/mandatory-resource-loader.d.ts +6 -0
  111. package/dist/core/mandatory-resource-loader.d.ts.map +1 -0
  112. package/dist/core/mandatory-resource-loader.js +94 -0
  113. package/dist/core/mandatory-resource-loader.js.map +1 -0
  114. package/dist/core/mandatory-runtime-tools.d.ts +10 -0
  115. package/dist/core/mandatory-runtime-tools.d.ts.map +1 -0
  116. package/dist/core/mandatory-runtime-tools.js +31 -0
  117. package/dist/core/mandatory-runtime-tools.js.map +1 -0
  118. package/dist/core/model-resolver-defaults.js +1 -1
  119. package/dist/core/model-resolver-defaults.js.map +1 -1
  120. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  121. package/dist/core/resource-loader-reload.js +24 -13
  122. package/dist/core/resource-loader-reload.js.map +1 -1
  123. package/dist/core/sdk.d.ts.map +1 -1
  124. package/dist/core/sdk.js +2 -0
  125. package/dist/core/sdk.js.map +1 -1
  126. package/dist/core/settings-manager-ui-accessors.d.ts +4 -1
  127. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  128. package/dist/core/settings-manager-ui-accessors.js +22 -0
  129. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  130. package/dist/core/settings-types.d.ts +4 -0
  131. package/dist/core/settings-types.d.ts.map +1 -1
  132. package/dist/core/settings-types.js.map +1 -1
  133. package/dist/core/slash-commands.js +1 -1
  134. package/dist/core/slash-commands.js.map +1 -1
  135. package/dist/main-session.d.ts.map +1 -1
  136. package/dist/main-session.js +3 -2
  137. package/dist/main-session.js.map +1 -1
  138. package/dist/main.d.ts.map +1 -1
  139. package/dist/main.js +6 -0
  140. package/dist/main.js.map +1 -1
  141. package/dist/modes/interactive/components/fast-mode-selector.js +2 -2
  142. package/dist/modes/interactive/components/fast-mode-selector.js.map +1 -1
  143. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  144. package/dist/modes/interactive/components/settings-selector-handlers.js +3 -0
  145. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  146. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  147. package/dist/modes/interactive/components/settings-selector-items.js +7 -0
  148. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  149. package/dist/modes/interactive/components/settings-selector-types.d.ts +2 -0
  150. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  151. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  152. package/dist/modes/interactive/interactive-agent-events.js +2 -1
  153. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  154. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  155. package/dist/modes/interactive/interactive-deferred-startup.js +1 -0
  156. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  157. package/dist/modes/interactive/interactive-input-handling.js +3 -0
  158. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  159. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  160. package/dist/modes/interactive/interactive-mode-base.js +15 -1
  161. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  162. package/dist/modes/interactive/interactive-mode-surface.d.ts +6 -1
  163. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  164. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  165. package/dist/modes/interactive/interactive-selectors.js +6 -1
  166. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  167. package/dist/modes/interactive/interactive-session-runtime.js +3 -0
  168. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  169. package/dist/modes/interactive/interactive-slash-commands.js +7 -12
  170. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  171. package/dist/modes/interactive/interactive-tui.d.ts +1 -0
  172. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
  173. package/dist/modes/interactive/interactive-tui.js +16 -0
  174. package/dist/modes/interactive/interactive-tui.js.map +1 -1
  175. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  176. package/dist/modes/rpc/rpc-session-binding.js +2 -0
  177. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  178. package/docs/compaction.md +1 -1
  179. package/docs/environment-variables.md +2 -0
  180. package/docs/extensions.md +1 -1
  181. package/docs/intercom.md +29 -24
  182. package/docs/keybindings.md +5 -2
  183. package/docs/packages.md +1 -1
  184. package/docs/providers.md +2 -2
  185. package/docs/sdk.md +9 -7
  186. package/docs/settings.md +9 -3
  187. package/docs/subagents.md +2 -2
  188. package/docs/usage.md +7 -6
  189. package/docs/workflows.md +11 -7
  190. package/npm-shrinkwrap.json +59 -77
  191. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"settings-selector-types.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-selector-types.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-selector-types.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Api, Model, Transport } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\nimport type {\n\tDefaultProjectTrust,\n\tFullscreenExitOutput,\n\tMermaidRenderingMode,\n\tWarningSettings,\n} from \"../../../core/settings-manager.ts\";\nimport type { TerminalTheme } from \"../theme/theme.ts\";\n\nexport type QueueDeliveryMode = \"all\" | \"one-at-a-time\";\nexport type DoubleEscapeAction = \"fork\" | \"tree\" | \"none\";\nexport type TreeFilterMode = \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\nexport interface SettingsConfig {\n\tautoCompact: boolean;\n\tshowImages: boolean;\n\timageWidthCells: number;\n\tautoResizeImages: boolean;\n\tblockImages: boolean;\n\tenableSkillCommands: boolean;\n\tsteeringMode: QueueDeliveryMode;\n\tfollowUpMode: QueueDeliveryMode;\n\ttransport: Transport;\n\thttpIdleTimeoutMs: number;\n\tbashInterceptorEnabled: boolean;\n\tthinkingLevel: ThinkingLevel;\n\tavailableThinkingLevels: ThinkingLevel[];\n\tavailableDefaultModels?: Model<Api>[];\n\tmodelThinkingLevels?: Record<string, ThinkingLevel>;\n\tcurrentTheme: string;\n\tterminalTheme: TerminalTheme;\n\tavailableThemes: string[];\n\thideThinkingBlock: boolean;\n\tmermaidRenderingMode: MermaidRenderingMode;\n\tlatexRenderingEnabled: boolean;\n\tcollapseChangelog: boolean;\n\tenableInstallTelemetry: boolean;\n\tdoubleEscapeAction: DoubleEscapeAction;\n\ttreeFilterMode: TreeFilterMode;\n\tshowHardwareCursor: boolean;\n\tfullscreenScrollbar: ScrollViewScrollbar;\n\tfullscreenExitOutput: FullscreenExitOutput;\n\teditorPaddingX: number;\n\toutputPad: 0 | 1;\n\tshowCacheMissNotices: boolean;\n\tautocompleteMaxVisible: number;\n\tquietStartup: boolean;\n\tdefaultProjectTrust: DefaultProjectTrust;\n\tclearOnShrink: boolean;\n\tshowTerminalProgress: boolean;\n\twarnings: WarningSettings;\n}\n\nexport interface SettingsCallbacks {\n\tonAutoCompactChange: (enabled: boolean) => void;\n\tonShowImagesChange: (enabled: boolean) => void;\n\tonImageWidthCellsChange: (width: number) => void;\n\tonAutoResizeImagesChange: (enabled: boolean) => void;\n\tonBlockImagesChange: (blocked: boolean) => void;\n\tonEnableSkillCommandsChange: (enabled: boolean) => void;\n\tonSteeringModeChange: (mode: QueueDeliveryMode) => void;\n\tonFollowUpModeChange: (mode: QueueDeliveryMode) => void;\n\tonTransportChange: (transport: Transport) => void;\n\tonHttpIdleTimeoutChange: (timeoutMs: number) => void;\n\tonBashInterceptorEnabledChange: (enabled: boolean) => void;\n\tonThinkingLevelChange: (level: ThinkingLevel) => void;\n\tonModelThinkingLevelChange?: (provider: string, modelId: string, level: ThinkingLevel) => void;\n\tonModelThinkingLevelRemove?: (provider: string, modelId: string) => void;\n\tonThemeChange: (theme: string) => void;\n\tonThemePreview?: (theme: string) => void;\n\tonHideThinkingBlockChange: (hidden: boolean) => void;\n\tonMermaidRenderingModeChange: (mode: MermaidRenderingMode) => void;\n\tonLatexRenderingEnabledChange: (enabled: boolean) => void;\n\tonCollapseChangelogChange: (collapsed: boolean) => void;\n\tonEnableInstallTelemetryChange: (enabled: boolean) => void;\n\tonDoubleEscapeActionChange: (action: DoubleEscapeAction) => void;\n\tonTreeFilterModeChange: (mode: TreeFilterMode) => void;\n\tonShowHardwareCursorChange: (enabled: boolean) => void;\n\tonFullscreenScrollbarChange: (mode: ScrollViewScrollbar) => void;\n\tonFullscreenExitOutputChange: (output: FullscreenExitOutput) => void;\n\tonEditorPaddingXChange: (padding: number) => void;\n\tonOutputPadChange: (padding: 0 | 1) => void;\n\tonShowCacheMissNoticesChange: (enabled: boolean) => void;\n\tonAutocompleteMaxVisibleChange: (maxVisible: number) => void;\n\tonQuietStartupChange: (enabled: boolean) => void;\n\tonDefaultProjectTrustChange: (defaultProjectTrust: DefaultProjectTrust) => void;\n\tonClearOnShrinkChange: (enabled: boolean) => void;\n\tonShowTerminalProgressChange: (enabled: boolean) => void;\n\tonWarningsChange: (warnings: WarningSettings) => void;\n\tonCancel: () => void;\n}\n"]}
1
+ {"version":3,"file":"settings-selector-types.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Api, Model, Transport } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\nimport type {\n\tDefaultProjectTrust,\n\tFullscreenExitOutput,\n\tMermaidRenderingMode,\n\tWarningSettings,\n} from \"../../../core/settings-manager.ts\";\nimport type { TerminalTheme } from \"../theme/theme.ts\";\n\nexport type QueueDeliveryMode = \"all\" | \"one-at-a-time\";\nexport type DoubleEscapeAction = \"fork\" | \"tree\" | \"none\";\nexport type TreeFilterMode = \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\nexport interface SettingsConfig {\n\tautoCompact: boolean;\n\tshowImages: boolean;\n\timageWidthCells: number;\n\tautoResizeImages: boolean;\n\tblockImages: boolean;\n\tenableSkillCommands: boolean;\n\tsteeringMode: QueueDeliveryMode;\n\tfollowUpMode: QueueDeliveryMode;\n\ttransport: Transport;\n\thttpIdleTimeoutMs: number;\n\tbashInterceptorEnabled: boolean;\n\tthinkingLevel: ThinkingLevel;\n\tavailableThinkingLevels: ThinkingLevel[];\n\tavailableDefaultModels?: Model<Api>[];\n\tmodelThinkingLevels?: Record<string, ThinkingLevel>;\n\tcurrentTheme: string;\n\tterminalTheme: TerminalTheme;\n\tavailableThemes: string[];\n\thideThinkingBlock: boolean;\n\tmermaidRenderingMode: MermaidRenderingMode;\n\tlatexRenderingEnabled: boolean;\n\tcollapseChangelog: boolean;\n\tenableInstallTelemetry: boolean;\n\tdoubleEscapeAction: DoubleEscapeAction;\n\ttreeFilterMode: TreeFilterMode;\n\tshowHardwareCursor: boolean;\n\tfullscreenScrollbar: ScrollViewScrollbar;\n\tfullscreenExitOutput: FullscreenExitOutput;\n\tfullscreenCopyOnSelect: boolean;\n\teditorPaddingX: number;\n\toutputPad: 0 | 1;\n\tshowCacheMissNotices: boolean;\n\tautocompleteMaxVisible: number;\n\tquietStartup: boolean;\n\tdefaultProjectTrust: DefaultProjectTrust;\n\tclearOnShrink: boolean;\n\tshowTerminalProgress: boolean;\n\twarnings: WarningSettings;\n}\n\nexport interface SettingsCallbacks {\n\tonAutoCompactChange: (enabled: boolean) => void;\n\tonShowImagesChange: (enabled: boolean) => void;\n\tonImageWidthCellsChange: (width: number) => void;\n\tonAutoResizeImagesChange: (enabled: boolean) => void;\n\tonBlockImagesChange: (blocked: boolean) => void;\n\tonEnableSkillCommandsChange: (enabled: boolean) => void;\n\tonSteeringModeChange: (mode: QueueDeliveryMode) => void;\n\tonFollowUpModeChange: (mode: QueueDeliveryMode) => void;\n\tonTransportChange: (transport: Transport) => void;\n\tonHttpIdleTimeoutChange: (timeoutMs: number) => void;\n\tonBashInterceptorEnabledChange: (enabled: boolean) => void;\n\tonThinkingLevelChange: (level: ThinkingLevel) => void;\n\tonModelThinkingLevelChange?: (provider: string, modelId: string, level: ThinkingLevel) => void;\n\tonModelThinkingLevelRemove?: (provider: string, modelId: string) => void;\n\tonThemeChange: (theme: string) => void;\n\tonThemePreview?: (theme: string) => void;\n\tonHideThinkingBlockChange: (hidden: boolean) => void;\n\tonMermaidRenderingModeChange: (mode: MermaidRenderingMode) => void;\n\tonLatexRenderingEnabledChange: (enabled: boolean) => void;\n\tonCollapseChangelogChange: (collapsed: boolean) => void;\n\tonEnableInstallTelemetryChange: (enabled: boolean) => void;\n\tonDoubleEscapeActionChange: (action: DoubleEscapeAction) => void;\n\tonTreeFilterModeChange: (mode: TreeFilterMode) => void;\n\tonShowHardwareCursorChange: (enabled: boolean) => void;\n\tonFullscreenScrollbarChange: (mode: ScrollViewScrollbar) => void;\n\tonFullscreenExitOutputChange: (output: FullscreenExitOutput) => void;\n\tonFullscreenCopyOnSelectChange: (enabled: boolean) => void;\n\tonEditorPaddingXChange: (padding: number) => void;\n\tonOutputPadChange: (padding: 0 | 1) => void;\n\tonShowCacheMissNoticesChange: (enabled: boolean) => void;\n\tonAutocompleteMaxVisibleChange: (maxVisible: number) => void;\n\tonQuietStartupChange: (enabled: boolean) => void;\n\tonDefaultProjectTrustChange: (defaultProjectTrust: DefaultProjectTrust) => void;\n\tonClearOnShrinkChange: (enabled: boolean) => void;\n\tonShowTerminalProgressChange: (enabled: boolean) => void;\n\tonWarningsChange: (warnings: WarningSettings) => void;\n\tonCancel: () => void;\n}\n"]}
@@ -306,7 +306,8 @@ InteractiveModeBase.prototype.handleEvent = async function (event) {
306
306
  else if (event.reason === "manual") {
307
307
  this.manualCompactionTakeoverPending = false;
308
308
  }
309
- if (!manualTakeoverPending && this.settingsManager.getShowTerminalProgress()) {
309
+ const resumesActiveRun = event.midTurn && !event.aborted && !event.errorMessage && !manualTakeoverPending;
310
+ if (!manualTakeoverPending && !resumesActiveRun && this.settingsManager.getShowTerminalProgress()) {
310
311
  this.ui.terminal.setProgress(false);
311
312
  }
312
313
  if (!manualTakeoverPending && this.autoCompactionEscapeHandlerSaved) {
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-agent-events.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-agent-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAExF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAEN,yBAAyB,EACzB,cAAc,EACd,OAAO,EACP,MAAM,EAEN,2BAA2B,EAC3B,MAAM,EACN,IAAI,EACJ,sBAAsB,EACtB,KAAK,GACL,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAE9G,SAAS,mBAAmB,CAC3B,IAAyB,EACzB,QAAgB,EAChB,UAAkB,EAClB,IAAa;IAEb,MAAM,OAAO,GAAG;QACf,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;QAChD,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;KAC1D,CAAC;IACF,OAAO,IAAI,CAAC,WAAW,YAAY,0BAA0B;QAC5D,CAAC,CAAC,IAAI,4BAA4B,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAC7F,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CACvB;QACF,CAAC,CAAC,IAAI,sBAAsB,CAC1B,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,OAAO,EACP,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,EAC1C,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAC5B,CAAC;AACL,CAAC;AAED,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,GAAG;IAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,WAEhD,KAAgD;IAEhD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAEzB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,aAAa;YACjB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,EAAE,CAAC;gBACpD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,+DAA+D;YAC/D,kEAAkE;YAClE,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACtD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACrC,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC9B,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACnD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QAEP,KAAK,YAAY,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,2BAA2B,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,IAAI,cAAc,IAAI,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;oBAChG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACvC,0DAA0D;gBAC1D,qEAAqE;gBACrE,mEAAmE;gBACnE,sEAAsE;gBACtE,qEAAqE;gBACrE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7B,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,UAAU,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,cAAc;YAClB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QAEP,KAAK,sBAAsB;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QAEP,KAAK,eAAe;YACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM;QAEP,KAAK,wBAAwB;YAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM;QAEP,KAAK,gBAAgB;YACpB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1E,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QAEP,KAAK,eAAe;YACnB,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACpC,MAAM;QAEP,KAAK,eAAe;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,oCAAoC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CACtF,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CACpC,CAAC;gBACF,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;oBACpF,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtC,CAAC;gBACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;gBACpC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,yBAAyB,CACtD,SAAS,EACT,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,4BAA4B,EAAE,EACnC,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,uBAAuB,EAAE,EAC9B,IAAI,EACJ,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,CAC/C,CAAC;gBACF,IAAI,CAAC,gBAAgB,GAAG,8BAA8B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACrD,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;gBACnE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC;YACD,MAAM;QAEP,KAAK,gBAAgB,EAAE,CAAC;YACvB,iEAAiE;YACjE,0DAA0D;YAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC5E,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;gBAEnE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;oBACrD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;4BACxC,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;4BACzF,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;4BAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;4BACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACP,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;4BACpD,IAAI,SAAS,EAAE,CAAC;gCACf,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;4BACzC,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,aAAa;YACjB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,MAAM;YACzC,IAAI,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACnE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC;gBACtC,IAAI,YAAgC,CAAC;gBACrC,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACpD,MAAM,oBAAoB,GACzB,IAAI,CAAC,gBAAgB,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,KAAK,qBAAqB;wBACjG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY;wBACpC,CAAC,CAAC,SAAS,CAAC;oBACd,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC/C,YAAY;wBACX,oBAAoB;4BACpB,CAAC,YAAY,GAAG,CAAC;gCAChB,CAAC,CAAC,iBAAiB,YAAY,iBAAiB,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCAC7E,CAAC,CAAC,mBAAmB,CAAC,CAAC;oBACzB,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,YAAY,CAAC;gBACnD,CAAC;gBACD,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBAEpE,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;oBACpG,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnB,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,IAAI,OAAO,CAAC;oBAC9D,CAAC;oBACD,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;wBACzD,SAAS,CAAC,YAAY,CAAC;4BACtB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;4BAC/C,OAAO,EAAE,IAAI;yBACb,CAAC,CAAC;oBACJ,CAAC;oBACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACP,kEAAkE;oBAClE,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;wBACzD,SAAS,CAAC,eAAe,EAAE,CAAC;oBAC7B,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;gBACpC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,EAAE,CAAC;gBAC1F,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE;oBAC7E,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;iBAClF,CAAC,CAAC;gBACH,IAAI,IAAI,EAAE,CAAC;oBACV,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;wBAC9B,CAAC,CAAC,qBAAqB;wBACvB,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY;4BAC5B,CAAC,CAAC,yBAAyB;4BAC3B,CAAC,CAAC,EAAE,CAAC;oBACP,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC1B,IAAI,IAAI,CACP,KAAK,CAAC,EAAE,CACP,SAAS,EACT,oBAAoB,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,uBAAuB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACpH,EACD,CAAC,EACD,CAAC,CACD,CACD,CAAC;gBACH,CAAC;YACF,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QAEP,KAAK,sBAAsB,EAAE,CAAC;YAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpF,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;YACD,SAAS,CAAC,oBAAoB,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,uBAAuB,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;gBACzE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,oBAAoB,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,WAAW,EAAE,CAAC;YAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACnD,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,EAAE,CAAC;gBAC7E,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC7B,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACxD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;gBACpC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACvE,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAEpC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,kBAAkB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,EAAE,CAAC;gBACpD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,uEAAuE;YACvE,mEAAmE;YACnE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;YACvC,CAAC;YACD,gEAAgE;YAChE,qEAAqE;YACrE,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC;gBAC5C,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC/D,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,EAAE;gBAClC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAChC,CAAC,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC;YAC1D,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;YAC7D,MAAM,KAAK,GACV,KAAK,CAAC,MAAM,KAAK,QAAQ;gBACxB,CAAC,CAAC,yBAAyB,UAAU,EAAE;gBACvC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,sBAAsB,UAAU,EAAE,CAAC;YACvG,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,CAClD,IAAI,CAAC,EAAE,EACP,SAAS,EACT,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EACxE,KAAK,CACL,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,gBAAgB,EAAE,CAAC;YACvB,MAAM,qBAAqB,GAC1B,KAAK,CAAC,MAAM,KAAK,QAAQ;gBACzB,CAAC,KAAK,CAAC,qBAAqB,KAAK,IAAI;oBACpC,IAAI,CAAC,+BAA+B;oBACpC,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC;YAC9C,IAAI,qBAAqB,EAAE,CAAC;gBAC3B,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;YAC7C,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,+BAA+B,GAAG,KAAK,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,EAAE,CAAC;gBAC9E,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,gCAAgC,EAAE,CAAC;gBACrE,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC;gBAC/D,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAC;gBAC7C,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAC;YAC/C,CAAC;YACD,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACzD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;gBACtC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC7B,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;gBACxC,CAAC;qBAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACnC,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAChD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC3B,IAAI,CAAC,uBAAuB,CAAC,EAAE,0BAA0B,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3E,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;oBAAE,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,CAAC;iBAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACzD,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpF,CAAC;YACF,CAAC;YACD,8DAA8D;YAC9D,mEAAmE;YACnE,6DAA6D;YAC7D,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACtF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,qBAAqB;gBAAE,KAAK,IAAI,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7G,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,+BAA+B,CAAC;QACrC,KAAK,mCAAmC,CAAC;QACzC,KAAK,8BAA8B;YAClC,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM;QAEP,KAAK,kBAAkB,EAAE,CAAC;YACzB,+BAA+B;YAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,EAAE;gBAClC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3B,CAAC,CAAC;YACF,uBAAuB;YACvB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CACxC,aAAa,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,QAAQ,OAAO,SAAS,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC;YAC3G,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAC5B,IAAI,CAAC,EAAE,EACP,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EACzC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EACjC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAC7C,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACvC,KAAK,CAAC,OAAO,EACb,IAAI,CAAC,EAAE,EACP,CAAC,OAAO,EAAE,EAAE;gBACX,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC,EACD,GAAG,EAAE;gBACJ,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YACjC,CAAC,CACD,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,sBAAsB,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,MAAM,CAC/B,IAAI,CAAC,EAAE,EACP,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EACzC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EACjC,qBAAqB,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,CACnD,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,oBAAoB,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QACD,KAAK,gBAAgB,EAAE,CAAC;YACvB,yBAAyB;YACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACtD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACrC,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YACjC,CAAC;YACD,cAAc;YACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC7B,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,mEAAmE;YACnE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,sBAAsB,KAAK,CAAC,OAAO,cAAc,KAAK,CAAC,UAAU,IAAI,eAAe,EAAE,CAAC,CAAC;YACxG,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;QAED,KAAK,sBAAsB,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM;QACP,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAqC,OAAgB;IACvG,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,UAAU,GACf,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAClC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACvE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC","sourcesContent":["import { CACHE_TTL_MS, detectCacheMiss } from \"../../core/cache-stats.ts\";\nimport { IsolatedInteractiveRuntime } from \"../interactive-engine/isolated-runtime.ts\";\nimport { RemoteToolExecutionComponent } from \"../interactive-engine/remote-renderer.ts\";\nimport type { JsonAgentSessionEvent } from \"../json-event.ts\";\nimport { AtomicWorkingLoader } from \"./components/atomic-working-status.ts\";\nimport { mountIdleStatus } from \"./components/idle-status.ts\";\nimport { appendNewChildrenBeforeAttachedChild } from \"./interactive-child-ordering.ts\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\ttype AgentSessionEvent,\n\tAssistantMessageComponent,\n\tCountdownTimer,\n\tkeyText,\n\tLoader,\n\ttype Message,\n\tpickWhimsicalWorkingMessage,\n\tSpacer,\n\tText,\n\tToolExecutionComponent,\n\ttheme,\n} from \"./interactive-mode-deps.ts\";\nimport { handleSummarizationRetryEvent } from \"./interactive-summarization-retry-events.ts\";\nimport { applyAssistantMessageDelta, beginStreamingAssistantMessage } from \"./streaming-assistant-message.ts\";\n\nfunction createToolComponent(\n\tmode: InteractiveModeBase,\n\ttoolName: string,\n\ttoolCallId: string,\n\targs: unknown,\n): ToolExecutionComponent | RemoteToolExecutionComponent {\n\tconst options = {\n\t\tshowImages: mode.settingsManager.getShowImages(),\n\t\timageWidthCells: mode.settingsManager.getImageWidthCells(),\n\t};\n\treturn mode.runtimeHost instanceof IsolatedInteractiveRuntime\n\t\t? new RemoteToolExecutionComponent(toolName, toolCallId, args, options, mode.runtimeHost, () =>\n\t\t\t\tmode.ui.requestRender(),\n\t\t\t)\n\t\t: new ToolExecutionComponent(\n\t\t\t\ttoolName,\n\t\t\t\ttoolCallId,\n\t\t\t\targs,\n\t\t\t\toptions,\n\t\t\t\tmode.getRegisteredToolDefinition(toolName),\n\t\t\t\tmode.ui,\n\t\t\t\tmode.sessionManager.getCwd(),\n\t\t\t);\n}\n\nInteractiveModeBase.prototype.subscribeToAgent = function (this: InteractiveModeBase): void {\n\tthis.unsubscribe = this.session.subscribe(async (event) => {\n\t\tawait this.handleEvent(event);\n\t});\n};\n\nInteractiveModeBase.prototype.handleEvent = async function (\n\tthis: InteractiveModeBase,\n\tevent: AgentSessionEvent | JsonAgentSessionEvent,\n): Promise<void> {\n\tif (!this.isInitialized) {\n\t\tawait this.init();\n\t}\n\n\tthis.footer.invalidate();\n\n\tswitch (event.type) {\n\t\tcase \"agent_start\":\n\t\t\tthis.pendingTools.clear();\n\t\t\tif (this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(true);\n\t\t\t}\n\t\t\t// Restore main escape handler if retry handler is still active\n\t\t\t// (retry success event fires later, but we need main handler now)\n\t\t\tif (this.retryEscapeHandler) {\n\t\t\t\tthis.defaultEditor.onEscape = this.retryEscapeHandler;\n\t\t\t\tthis.retryEscapeHandler = undefined;\n\t\t\t}\n\t\t\tif (this.retryCountdown) {\n\t\t\t\tthis.retryCountdown.dispose();\n\t\t\t\tthis.retryCountdown = undefined;\n\t\t\t}\n\t\t\tif (this.retryLoader) {\n\t\t\t\tthis.retryLoader.stop();\n\t\t\t\tthis.retryLoader = undefined;\n\t\t\t}\n\t\t\tif (this.fallbackLoader) {\n\t\t\t\tthis.fallbackLoader.stop();\n\t\t\t\tthis.fallbackLoader = undefined;\n\t\t\t}\n\t\t\tthis.stopWorkingLoader();\n\t\t\tif (this.workingVisible) {\n\t\t\t\tthis.loadingAnimation = this.createWorkingLoader();\n\t\t\t\tthis.statusContainer.addChild(this.loadingAnimation);\n\t\t\t}\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"turn_start\": {\n\t\t\tthis.workingMessage = pickWhimsicalWorkingMessage();\n\t\t\tif (this.loadingAnimation) {\n\t\t\t\tif (\"resetForTurn\" in this.loadingAnimation) this.loadingAnimation.resetForTurn(this.workingMessage);\n\t\t\t\telse this.loadingAnimation.setMessage(this.workingMessage);\n\t\t\t} else if (!this.autoCompactionLoader) {\n\t\t\t\t// Post-tool compaction interposes this turn_start between\n\t\t\t\t// compaction_start and compaction_end. Mounting generic Working here\n\t\t\t\t// would evict the factual compaction status from the shared status\n\t\t\t\t// container and leave a stale `loadingAnimation` that then blocks the\n\t\t\t\t// restore at compaction_end, hiding all activity until the next run.\n\t\t\t\tthis.showWorkingLoaderNow();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"turn_end\": {\n\t\t\tthis.workingMessage = undefined;\n\t\t\tthis.stopWorkingLoader();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"queue_update\":\n\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"session_info_changed\":\n\t\t\tthis.updateTerminalTitle();\n\t\t\tthis.footer.invalidate();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"model_changed\":\n\t\t\tthis.refreshBuiltInHeader();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tbreak;\n\n\t\tcase \"thinking_level_changed\":\n\t\t\tthis.footer.invalidate();\n\t\t\tthis.refreshBuiltInHeader();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tbreak;\n\n\t\tcase \"entry_appended\":\n\t\t\tif (event.entry.type === \"custom\") this.addCustomEntryToChat(event.entry);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"agent_settled\":\n\t\t\tawait this.checkShutdownRequested();\n\t\t\tbreak;\n\n\t\tcase \"message_start\":\n\t\t\tif (event.message.role === \"custom\") {\n\t\t\t\tappendNewChildrenBeforeAttachedChild(this.chatContainer, this.streamingComponent, () =>\n\t\t\t\t\tthis.addMessageToChat(event.message),\n\t\t\t\t);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t} else if (event.message.role === \"user\") {\n\t\t\t\tif (!this.consumeDeferredRenderedUserInput(this.getUserMessageText(event.message))) {\n\t\t\t\t\tthis.addMessageToChat(event.message);\n\t\t\t\t}\n\t\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\t\tthis.ui.requestRender();\n\t\t\t} else if (event.message.role === \"assistant\") {\n\t\t\t\tthis.streamingComponent = new AssistantMessageComponent(\n\t\t\t\t\tundefined,\n\t\t\t\t\tthis.hideThinkingBlock,\n\t\t\t\t\tthis.getMarkdownThemeWithSettings(),\n\t\t\t\t\tthis.hiddenThinkingLabel,\n\t\t\t\t\tthis.outputPad,\n\t\t\t\t\tthis.getMarkdownTransformers(),\n\t\t\t\t\ttrue,\n\t\t\t\t\tthis.settingsManager.getLatexRenderingEnabled(),\n\t\t\t\t);\n\t\t\t\tthis.streamingMessage = beginStreamingAssistantMessage(event.message);\n\t\t\t\tthis.chatContainer.addChild(this.streamingComponent);\n\t\t\t\tthis.streamingComponent.updateContent(this.streamingMessage, true);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"message_update\": {\n\t\t\t// `message_start` seeds the stream, ordered deltas build it, and\n\t\t\t// `message_end` supplies the authoritative final message.\n\t\t\tif (this.streamingMessage) {\n\t\t\t\tapplyAssistantMessageDelta(this.streamingMessage, event.assistantMessageEvent);\n\t\t\t}\n\t\t\tif (this.streamingComponent && this.streamingMessage?.role === \"assistant\") {\n\t\t\t\tthis.streamingComponent.updateContent(this.streamingMessage, true);\n\n\t\t\t\tfor (const content of this.streamingMessage.content) {\n\t\t\t\t\tif (content.type === \"toolCall\") {\n\t\t\t\t\t\tif (!this.pendingTools.has(content.id)) {\n\t\t\t\t\t\t\tconst component = createToolComponent(this, content.name, content.id, content.arguments);\n\t\t\t\t\t\t\tcomponent.setExpanded(this.toolOutputExpanded);\n\t\t\t\t\t\t\tthis.chatContainer.addChild(component);\n\t\t\t\t\t\t\tthis.pendingTools.set(content.id, component);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst component = this.pendingTools.get(content.id);\n\t\t\t\t\t\t\tif (component) {\n\t\t\t\t\t\t\t\tcomponent.updateArgs(content.arguments);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"message_end\":\n\t\t\tif (event.message.role === \"user\") break;\n\t\t\tif (this.streamingComponent && event.message.role === \"assistant\") {\n\t\t\t\tthis.streamingMessage = event.message;\n\t\t\t\tlet errorMessage: string | undefined;\n\t\t\t\tif (this.streamingMessage.stopReason === \"aborted\") {\n\t\t\t\t\tconst existingAbortMessage =\n\t\t\t\t\t\tthis.streamingMessage.errorMessage && this.streamingMessage.errorMessage !== \"Request was aborted\"\n\t\t\t\t\t\t\t? this.streamingMessage.errorMessage\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\tconst retryAttempt = this.session.retryAttempt;\n\t\t\t\t\terrorMessage =\n\t\t\t\t\t\texistingAbortMessage ??\n\t\t\t\t\t\t(retryAttempt > 0\n\t\t\t\t\t\t\t? `Aborted after ${retryAttempt} retry attempt${retryAttempt > 1 ? \"s\" : \"\"}`\n\t\t\t\t\t\t\t: \"Operation aborted\");\n\t\t\t\t\tthis.streamingMessage.errorMessage = errorMessage;\n\t\t\t\t}\n\t\t\t\tthis.streamingComponent.updateContent(this.streamingMessage, false);\n\n\t\t\t\tif (this.streamingMessage.stopReason === \"aborted\" || this.streamingMessage.stopReason === \"error\") {\n\t\t\t\t\tif (!errorMessage) {\n\t\t\t\t\t\terrorMessage = this.streamingMessage.errorMessage || \"Error\";\n\t\t\t\t\t}\n\t\t\t\t\tfor (const [, component] of this.pendingTools.entries()) {\n\t\t\t\t\t\tcomponent.updateResult({\n\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: errorMessage }],\n\t\t\t\t\t\t\tisError: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.pendingTools.clear();\n\t\t\t\t} else {\n\t\t\t\t\t// Args are now complete - trigger diff computation for edit tools\n\t\t\t\t\tfor (const [, component] of this.pendingTools.entries()) {\n\t\t\t\t\t\tcomponent.setArgsComplete();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.streamingComponent = undefined;\n\t\t\t\tthis.streamingMessage = undefined;\n\t\t\t\tthis.footer.invalidate();\n\t\t\t}\n\t\t\tif (event.message.role === \"assistant\" && this.settingsManager.getShowCacheMissNotices()) {\n\t\t\t\tconst miss = detectCacheMiss(this.sessionManager.getEntries(), event.message, {\n\t\t\t\t\tgetModel: (provider, model) => this.session.modelRuntime.getModel(provider, model),\n\t\t\t\t});\n\t\t\t\tif (miss) {\n\t\t\t\t\tconst cause = miss.modelChanged\n\t\t\t\t\t\t? \" after model switch\"\n\t\t\t\t\t\t: miss.idleMs >= CACHE_TTL_MS\n\t\t\t\t\t\t\t? \" after cache TTL expiry\"\n\t\t\t\t\t\t\t: \"\";\n\t\t\t\t\tthis.chatContainer.addChild(\n\t\t\t\t\t\tnew Text(\n\t\t\t\t\t\t\ttheme.fg(\n\t\t\t\t\t\t\t\t\"warning\",\n\t\t\t\t\t\t\t\t`Prompt cache miss${cause}: ${miss.missedTokens.toLocaleString()} tokens re-billed ($${miss.missedCost.toFixed(3)})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"tool_execution_start\": {\n\t\t\tlet component = this.pendingTools.get(event.toolCallId);\n\t\t\tif (!component) {\n\t\t\t\tcomponent = createToolComponent(this, event.toolName, event.toolCallId, event.args);\n\t\t\t\tcomponent.setExpanded(this.toolOutputExpanded);\n\t\t\t\tthis.chatContainer.addChild(component);\n\t\t\t\tthis.pendingTools.set(event.toolCallId, component);\n\t\t\t}\n\t\t\tcomponent.markExecutionStarted();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"tool_execution_update\": {\n\t\t\tconst component = this.pendingTools.get(event.toolCallId);\n\t\t\tif (component) {\n\t\t\t\tcomponent.updateResult({ ...event.partialResult, isError: false }, true);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"tool_execution_end\": {\n\t\t\tconst component = this.pendingTools.get(event.toolCallId);\n\t\t\tif (component) {\n\t\t\t\tcomponent.updateResult({ ...event.result, isError: event.isError });\n\t\t\t\tthis.pendingTools.delete(event.toolCallId);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"agent_end\": {\n\t\t\tconst compactionInProgress = this.compactionActive;\n\t\t\tif (!compactionInProgress && this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(false);\n\t\t\t}\n\t\t\tif (this.loadingAnimation) {\n\t\t\t\tthis.loadingAnimation.stop();\n\t\t\t\tthis.loadingAnimation = undefined;\n\t\t\t\tthis.statusContainer.clear();\n\t\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\t}\n\t\t\tif (this.streamingComponent) {\n\t\t\t\tthis.chatContainer.removeChild(this.streamingComponent);\n\t\t\t\tthis.streamingComponent = undefined;\n\t\t\t\tthis.streamingMessage = undefined;\n\t\t\t}\n\t\t\tthis.pendingTools.clear();\n\t\t\tif (this.compactionQueuedMessages.length > 0 && !compactionInProgress) {\n\t\t\t\tvoid this.session.agent.waitForIdle().then(() => this.flushCompactionQueue({ willRetry: false }));\n\t\t\t}\n\n\t\t\tawait this.checkShutdownRequested();\n\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"compaction_start\": {\n\t\t\tif (this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(true);\n\t\t\t}\n\t\t\t// Release any loader left behind by an earlier start before mounting a\n\t\t\t// new one; dropping the reference alone leaks its animation timer.\n\t\t\tif (this.autoCompactionLoader) {\n\t\t\t\tthis.autoCompactionLoader.stop();\n\t\t\t\tthis.autoCompactionLoader = undefined;\n\t\t\t}\n\t\t\t// Keep editor active; submissions are queued during compaction.\n\t\t\t// Never clobber an already-saved handler with our own abort closure.\n\t\t\tif (!this.autoCompactionEscapeHandlerSaved) {\n\t\t\t\tthis.autoCompactionEscapeHandler = this.defaultEditor.onEscape;\n\t\t\t\tthis.autoCompactionEscapeHandlerSaved = true;\n\t\t\t}\n\t\t\tthis.defaultEditor.onEscape = () => {\n\t\t\t\tthis.session.abortCompaction();\n\t\t\t};\n\t\t\tthis.stopWorkingLoader();\n\t\t\tconst cancelHint = `(${keyText(\"app.interrupt\")} Cancel)`;\n\t\t\tconst isOverflowAutoCompaction = event.reason === \"overflow\";\n\t\t\tconst label =\n\t\t\t\tevent.reason === \"manual\"\n\t\t\t\t\t? `Compacting context... ${cancelHint}`\n\t\t\t\t\t: `${isOverflowAutoCompaction ? \"Context overflow detected. \" : \"\"}Auto-compacting... ${cancelHint}`;\n\t\t\tthis.autoCompactionLoader = new AtomicWorkingLoader(\n\t\t\t\tthis.ui,\n\t\t\t\tundefined,\n\t\t\t\t(text) => theme.fg(isOverflowAutoCompaction ? \"warning\" : \"muted\", text),\n\t\t\t\tlabel,\n\t\t\t);\n\t\t\tthis.statusContainer.addChild(this.autoCompactionLoader);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"compaction_end\": {\n\t\t\tconst manualTakeoverPending =\n\t\t\t\tevent.reason !== \"manual\" &&\n\t\t\t\t(event.manualTakeoverPending === true ||\n\t\t\t\t\tthis.manualCompactionTakeoverPending ||\n\t\t\t\t\tthis.session.compactionReason === \"manual\");\n\t\t\tif (manualTakeoverPending) {\n\t\t\t\tthis.manualCompactionTakeoverPending = true;\n\t\t\t} else if (event.reason === \"manual\") {\n\t\t\t\tthis.manualCompactionTakeoverPending = false;\n\t\t\t}\n\t\t\tif (!manualTakeoverPending && this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(false);\n\t\t\t}\n\t\t\tif (!manualTakeoverPending && this.autoCompactionEscapeHandlerSaved) {\n\t\t\t\tthis.defaultEditor.onEscape = this.autoCompactionEscapeHandler;\n\t\t\t\tthis.autoCompactionEscapeHandler = undefined;\n\t\t\t\tthis.autoCompactionEscapeHandlerSaved = false;\n\t\t\t}\n\t\t\tif (!manualTakeoverPending && this.autoCompactionLoader) {\n\t\t\t\tthis.autoCompactionLoader.stop();\n\t\t\t\tthis.autoCompactionLoader = undefined;\n\t\t\t\tthis.statusContainer.clear();\n\t\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\t}\n\t\t\tif (event.aborted) {\n\t\t\t\tif (event.reason === \"manual\") {\n\t\t\t\t\tthis.showError(\"Compaction cancelled\");\n\t\t\t\t} else if (!manualTakeoverPending) {\n\t\t\t\t\tthis.showStatus(\"Auto-compaction cancelled\");\n\t\t\t\t}\n\t\t\t} else if (event.result && !event.errorMessage) {\n\t\t\t\tthis.chatContainer.clear();\n\t\t\t\tthis.rebuildChatFromMessages({ suppressCompactionBoundary: event.result });\n\t\t\t\tthis.addCompactionBoundaryToChat(event.result);\n\t\t\t\tif (event.result.usage) this.addCompactionCostNotice(\"compaction\", event.result.usage);\n\t\t\t\tthis.footer.invalidate();\n\t\t\t} else if (event.errorMessage && !manualTakeoverPending) {\n\t\t\t\tif (event.reason === \"manual\") {\n\t\t\t\t\tthis.showError(event.errorMessage);\n\t\t\t\t} else {\n\t\t\t\t\tthis.chatContainer.addChild(new Spacer(1));\n\t\t\t\t\tthis.chatContainer.addChild(new Text(theme.fg(\"error\", event.errorMessage), 1, 0));\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Post-tool compaction resumes the same active run, so no new\n\t\t\t// agent_start event will recreate the working loader. A successful\n\t\t\t// no-op carries no `result` and still continues that stream.\n\t\t\tif (event.midTurn && !event.aborted && !event.errorMessage && !manualTakeoverPending) {\n\t\t\t\tthis.showWorkingLoaderNow();\n\t\t\t}\n\t\t\tif (!event.midTurn && !manualTakeoverPending) void this.flushCompactionQueue({ willRetry: event.willRetry });\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"summarization_retry_scheduled\":\n\t\tcase \"summarization_retry_attempt_start\":\n\t\tcase \"summarization_retry_finished\":\n\t\t\thandleSummarizationRetryEvent(this, event);\n\t\t\tbreak;\n\n\t\tcase \"auto_retry_start\": {\n\t\t\t// Set up escape to abort retry\n\t\t\tthis.retryEscapeHandler = this.defaultEditor.onEscape;\n\t\t\tthis.defaultEditor.onEscape = () => {\n\t\t\t\tthis.session.abortRetry();\n\t\t\t};\n\t\t\t// Show retry indicator\n\t\t\tthis.statusContainer.clear();\n\t\t\tthis.retryCountdown?.dispose();\n\t\t\tconst retryMessage = (seconds: number) =>\n\t\t\t\t`Retrying (${event.attempt}/${event.maxAttempts}) in ${seconds}s... (${keyText(\"app.interrupt\")} Cancel)`;\n\t\t\tthis.retryLoader = new Loader(\n\t\t\t\tthis.ui,\n\t\t\t\t(spinner) => theme.fg(\"warning\", spinner),\n\t\t\t\t(text) => theme.fg(\"muted\", text),\n\t\t\t\tretryMessage(Math.ceil(event.delayMs / 1000)),\n\t\t\t);\n\t\t\tthis.retryCountdown = new CountdownTimer(\n\t\t\t\tevent.delayMs,\n\t\t\t\tthis.ui,\n\t\t\t\t(seconds) => {\n\t\t\t\t\tthis.retryLoader?.setMessage(retryMessage(seconds));\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tthis.retryCountdown = undefined;\n\t\t\t\t},\n\t\t\t);\n\t\t\tthis.statusContainer.addChild(this.retryLoader);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"model_fallback_start\": {\n\t\t\tthis.statusContainer.clear();\n\t\t\tif (this.fallbackLoader) {\n\t\t\t\tthis.fallbackLoader.stop();\n\t\t\t\tthis.fallbackLoader = undefined;\n\t\t\t}\n\t\t\tthis.fallbackLoader = new Loader(\n\t\t\t\tthis.ui,\n\t\t\t\t(spinner) => theme.fg(\"warning\", spinner),\n\t\t\t\t(text) => theme.fg(\"muted\", text),\n\t\t\t\t`Falling back from ${event.from} to ${event.to}...`,\n\t\t\t);\n\t\t\tthis.statusContainer.addChild(this.fallbackLoader);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"model_fallback_end\": {\n\t\t\tif (this.fallbackLoader) {\n\t\t\t\tthis.fallbackLoader.stop();\n\t\t\t\tthis.fallbackLoader = undefined;\n\t\t\t}\n\t\t\tthis.statusContainer.clear();\n\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\t\tcase \"auto_retry_end\": {\n\t\t\t// Restore escape handler\n\t\t\tif (this.retryEscapeHandler) {\n\t\t\t\tthis.defaultEditor.onEscape = this.retryEscapeHandler;\n\t\t\t\tthis.retryEscapeHandler = undefined;\n\t\t\t}\n\t\t\tif (this.retryCountdown) {\n\t\t\t\tthis.retryCountdown.dispose();\n\t\t\t\tthis.retryCountdown = undefined;\n\t\t\t}\n\t\t\t// Stop loader\n\t\t\tif (this.retryLoader) {\n\t\t\t\tthis.retryLoader.stop();\n\t\t\t\tthis.retryLoader = undefined;\n\t\t\t\tthis.statusContainer.clear();\n\t\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\t}\n\t\t\t// Show error only on final failure (success shows normal response)\n\t\t\tif (!event.success) {\n\t\t\t\tthis.showError(`Retry failed after ${event.attempt} attempts: ${event.finalError || \"Unknown error\"}`);\n\t\t\t}\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"agent_continue_error\": {\n\t\t\tthis.stopWorkingLoader();\n\t\t\tthis.showError(event.errorMessage);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\nInteractiveModeBase.prototype.getUserMessageText = function (this: InteractiveModeBase, message: Message): string {\n\tif (message.role !== \"user\") return \"\";\n\tconst textBlocks =\n\t\ttypeof message.content === \"string\"\n\t\t\t? [{ type: \"text\", text: message.content }]\n\t\t\t: message.content.filter((c: { type: string }) => c.type === \"text\");\n\treturn textBlocks.map((c) => (c as { text: string }).text).join(\"\");\n};\n"]}
1
+ {"version":3,"file":"interactive-agent-events.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-agent-events.ts"],"names":[],"mappings":"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","sourcesContent":["import { CACHE_TTL_MS, detectCacheMiss } from \"../../core/cache-stats.ts\";\nimport { IsolatedInteractiveRuntime } from \"../interactive-engine/isolated-runtime.ts\";\nimport { RemoteToolExecutionComponent } from \"../interactive-engine/remote-renderer.ts\";\nimport type { JsonAgentSessionEvent } from \"../json-event.ts\";\nimport { AtomicWorkingLoader } from \"./components/atomic-working-status.ts\";\nimport { mountIdleStatus } from \"./components/idle-status.ts\";\nimport { appendNewChildrenBeforeAttachedChild } from \"./interactive-child-ordering.ts\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\ttype AgentSessionEvent,\n\tAssistantMessageComponent,\n\tCountdownTimer,\n\tkeyText,\n\tLoader,\n\ttype Message,\n\tpickWhimsicalWorkingMessage,\n\tSpacer,\n\tText,\n\tToolExecutionComponent,\n\ttheme,\n} from \"./interactive-mode-deps.ts\";\nimport { handleSummarizationRetryEvent } from \"./interactive-summarization-retry-events.ts\";\nimport { applyAssistantMessageDelta, beginStreamingAssistantMessage } from \"./streaming-assistant-message.ts\";\n\nfunction createToolComponent(\n\tmode: InteractiveModeBase,\n\ttoolName: string,\n\ttoolCallId: string,\n\targs: unknown,\n): ToolExecutionComponent | RemoteToolExecutionComponent {\n\tconst options = {\n\t\tshowImages: mode.settingsManager.getShowImages(),\n\t\timageWidthCells: mode.settingsManager.getImageWidthCells(),\n\t};\n\treturn mode.runtimeHost instanceof IsolatedInteractiveRuntime\n\t\t? new RemoteToolExecutionComponent(toolName, toolCallId, args, options, mode.runtimeHost, () =>\n\t\t\t\tmode.ui.requestRender(),\n\t\t\t)\n\t\t: new ToolExecutionComponent(\n\t\t\t\ttoolName,\n\t\t\t\ttoolCallId,\n\t\t\t\targs,\n\t\t\t\toptions,\n\t\t\t\tmode.getRegisteredToolDefinition(toolName),\n\t\t\t\tmode.ui,\n\t\t\t\tmode.sessionManager.getCwd(),\n\t\t\t);\n}\n\nInteractiveModeBase.prototype.subscribeToAgent = function (this: InteractiveModeBase): void {\n\tthis.unsubscribe = this.session.subscribe(async (event) => {\n\t\tawait this.handleEvent(event);\n\t});\n};\n\nInteractiveModeBase.prototype.handleEvent = async function (\n\tthis: InteractiveModeBase,\n\tevent: AgentSessionEvent | JsonAgentSessionEvent,\n): Promise<void> {\n\tif (!this.isInitialized) {\n\t\tawait this.init();\n\t}\n\n\tthis.footer.invalidate();\n\n\tswitch (event.type) {\n\t\tcase \"agent_start\":\n\t\t\tthis.pendingTools.clear();\n\t\t\tif (this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(true);\n\t\t\t}\n\t\t\t// Restore main escape handler if retry handler is still active\n\t\t\t// (retry success event fires later, but we need main handler now)\n\t\t\tif (this.retryEscapeHandler) {\n\t\t\t\tthis.defaultEditor.onEscape = this.retryEscapeHandler;\n\t\t\t\tthis.retryEscapeHandler = undefined;\n\t\t\t}\n\t\t\tif (this.retryCountdown) {\n\t\t\t\tthis.retryCountdown.dispose();\n\t\t\t\tthis.retryCountdown = undefined;\n\t\t\t}\n\t\t\tif (this.retryLoader) {\n\t\t\t\tthis.retryLoader.stop();\n\t\t\t\tthis.retryLoader = undefined;\n\t\t\t}\n\t\t\tif (this.fallbackLoader) {\n\t\t\t\tthis.fallbackLoader.stop();\n\t\t\t\tthis.fallbackLoader = undefined;\n\t\t\t}\n\t\t\tthis.stopWorkingLoader();\n\t\t\tif (this.workingVisible) {\n\t\t\t\tthis.loadingAnimation = this.createWorkingLoader();\n\t\t\t\tthis.statusContainer.addChild(this.loadingAnimation);\n\t\t\t}\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"turn_start\": {\n\t\t\tthis.workingMessage = pickWhimsicalWorkingMessage();\n\t\t\tif (this.loadingAnimation) {\n\t\t\t\tif (\"resetForTurn\" in this.loadingAnimation) this.loadingAnimation.resetForTurn(this.workingMessage);\n\t\t\t\telse this.loadingAnimation.setMessage(this.workingMessage);\n\t\t\t} else if (!this.autoCompactionLoader) {\n\t\t\t\t// Post-tool compaction interposes this turn_start between\n\t\t\t\t// compaction_start and compaction_end. Mounting generic Working here\n\t\t\t\t// would evict the factual compaction status from the shared status\n\t\t\t\t// container and leave a stale `loadingAnimation` that then blocks the\n\t\t\t\t// restore at compaction_end, hiding all activity until the next run.\n\t\t\t\tthis.showWorkingLoaderNow();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"turn_end\": {\n\t\t\tthis.workingMessage = undefined;\n\t\t\tthis.stopWorkingLoader();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"queue_update\":\n\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"session_info_changed\":\n\t\t\tthis.updateTerminalTitle();\n\t\t\tthis.footer.invalidate();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"model_changed\":\n\t\t\tthis.refreshBuiltInHeader();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tbreak;\n\n\t\tcase \"thinking_level_changed\":\n\t\t\tthis.footer.invalidate();\n\t\t\tthis.refreshBuiltInHeader();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tbreak;\n\n\t\tcase \"entry_appended\":\n\t\t\tif (event.entry.type === \"custom\") this.addCustomEntryToChat(event.entry);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"agent_settled\":\n\t\t\tawait this.checkShutdownRequested();\n\t\t\tbreak;\n\n\t\tcase \"message_start\":\n\t\t\tif (event.message.role === \"custom\") {\n\t\t\t\tappendNewChildrenBeforeAttachedChild(this.chatContainer, this.streamingComponent, () =>\n\t\t\t\t\tthis.addMessageToChat(event.message),\n\t\t\t\t);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t} else if (event.message.role === \"user\") {\n\t\t\t\tif (!this.consumeDeferredRenderedUserInput(this.getUserMessageText(event.message))) {\n\t\t\t\t\tthis.addMessageToChat(event.message);\n\t\t\t\t}\n\t\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\t\tthis.ui.requestRender();\n\t\t\t} else if (event.message.role === \"assistant\") {\n\t\t\t\tthis.streamingComponent = new AssistantMessageComponent(\n\t\t\t\t\tundefined,\n\t\t\t\t\tthis.hideThinkingBlock,\n\t\t\t\t\tthis.getMarkdownThemeWithSettings(),\n\t\t\t\t\tthis.hiddenThinkingLabel,\n\t\t\t\t\tthis.outputPad,\n\t\t\t\t\tthis.getMarkdownTransformers(),\n\t\t\t\t\ttrue,\n\t\t\t\t\tthis.settingsManager.getLatexRenderingEnabled(),\n\t\t\t\t);\n\t\t\t\tthis.streamingMessage = beginStreamingAssistantMessage(event.message);\n\t\t\t\tthis.chatContainer.addChild(this.streamingComponent);\n\t\t\t\tthis.streamingComponent.updateContent(this.streamingMessage, true);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"message_update\": {\n\t\t\t// `message_start` seeds the stream, ordered deltas build it, and\n\t\t\t// `message_end` supplies the authoritative final message.\n\t\t\tif (this.streamingMessage) {\n\t\t\t\tapplyAssistantMessageDelta(this.streamingMessage, event.assistantMessageEvent);\n\t\t\t}\n\t\t\tif (this.streamingComponent && this.streamingMessage?.role === \"assistant\") {\n\t\t\t\tthis.streamingComponent.updateContent(this.streamingMessage, true);\n\n\t\t\t\tfor (const content of this.streamingMessage.content) {\n\t\t\t\t\tif (content.type === \"toolCall\") {\n\t\t\t\t\t\tif (!this.pendingTools.has(content.id)) {\n\t\t\t\t\t\t\tconst component = createToolComponent(this, content.name, content.id, content.arguments);\n\t\t\t\t\t\t\tcomponent.setExpanded(this.toolOutputExpanded);\n\t\t\t\t\t\t\tthis.chatContainer.addChild(component);\n\t\t\t\t\t\t\tthis.pendingTools.set(content.id, component);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst component = this.pendingTools.get(content.id);\n\t\t\t\t\t\t\tif (component) {\n\t\t\t\t\t\t\t\tcomponent.updateArgs(content.arguments);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"message_end\":\n\t\t\tif (event.message.role === \"user\") break;\n\t\t\tif (this.streamingComponent && event.message.role === \"assistant\") {\n\t\t\t\tthis.streamingMessage = event.message;\n\t\t\t\tlet errorMessage: string | undefined;\n\t\t\t\tif (this.streamingMessage.stopReason === \"aborted\") {\n\t\t\t\t\tconst existingAbortMessage =\n\t\t\t\t\t\tthis.streamingMessage.errorMessage && this.streamingMessage.errorMessage !== \"Request was aborted\"\n\t\t\t\t\t\t\t? this.streamingMessage.errorMessage\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\tconst retryAttempt = this.session.retryAttempt;\n\t\t\t\t\terrorMessage =\n\t\t\t\t\t\texistingAbortMessage ??\n\t\t\t\t\t\t(retryAttempt > 0\n\t\t\t\t\t\t\t? `Aborted after ${retryAttempt} retry attempt${retryAttempt > 1 ? \"s\" : \"\"}`\n\t\t\t\t\t\t\t: \"Operation aborted\");\n\t\t\t\t\tthis.streamingMessage.errorMessage = errorMessage;\n\t\t\t\t}\n\t\t\t\tthis.streamingComponent.updateContent(this.streamingMessage, false);\n\n\t\t\t\tif (this.streamingMessage.stopReason === \"aborted\" || this.streamingMessage.stopReason === \"error\") {\n\t\t\t\t\tif (!errorMessage) {\n\t\t\t\t\t\terrorMessage = this.streamingMessage.errorMessage || \"Error\";\n\t\t\t\t\t}\n\t\t\t\t\tfor (const [, component] of this.pendingTools.entries()) {\n\t\t\t\t\t\tcomponent.updateResult({\n\t\t\t\t\t\t\tcontent: [{ type: \"text\", text: errorMessage }],\n\t\t\t\t\t\t\tisError: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.pendingTools.clear();\n\t\t\t\t} else {\n\t\t\t\t\t// Args are now complete - trigger diff computation for edit tools\n\t\t\t\t\tfor (const [, component] of this.pendingTools.entries()) {\n\t\t\t\t\t\tcomponent.setArgsComplete();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.streamingComponent = undefined;\n\t\t\t\tthis.streamingMessage = undefined;\n\t\t\t\tthis.footer.invalidate();\n\t\t\t}\n\t\t\tif (event.message.role === \"assistant\" && this.settingsManager.getShowCacheMissNotices()) {\n\t\t\t\tconst miss = detectCacheMiss(this.sessionManager.getEntries(), event.message, {\n\t\t\t\t\tgetModel: (provider, model) => this.session.modelRuntime.getModel(provider, model),\n\t\t\t\t});\n\t\t\t\tif (miss) {\n\t\t\t\t\tconst cause = miss.modelChanged\n\t\t\t\t\t\t? \" after model switch\"\n\t\t\t\t\t\t: miss.idleMs >= CACHE_TTL_MS\n\t\t\t\t\t\t\t? \" after cache TTL expiry\"\n\t\t\t\t\t\t\t: \"\";\n\t\t\t\t\tthis.chatContainer.addChild(\n\t\t\t\t\t\tnew Text(\n\t\t\t\t\t\t\ttheme.fg(\n\t\t\t\t\t\t\t\t\"warning\",\n\t\t\t\t\t\t\t\t`Prompt cache miss${cause}: ${miss.missedTokens.toLocaleString()} tokens re-billed ($${miss.missedCost.toFixed(3)})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\n\t\tcase \"tool_execution_start\": {\n\t\t\tlet component = this.pendingTools.get(event.toolCallId);\n\t\t\tif (!component) {\n\t\t\t\tcomponent = createToolComponent(this, event.toolName, event.toolCallId, event.args);\n\t\t\t\tcomponent.setExpanded(this.toolOutputExpanded);\n\t\t\t\tthis.chatContainer.addChild(component);\n\t\t\t\tthis.pendingTools.set(event.toolCallId, component);\n\t\t\t}\n\t\t\tcomponent.markExecutionStarted();\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"tool_execution_update\": {\n\t\t\tconst component = this.pendingTools.get(event.toolCallId);\n\t\t\tif (component) {\n\t\t\t\tcomponent.updateResult({ ...event.partialResult, isError: false }, true);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"tool_execution_end\": {\n\t\t\tconst component = this.pendingTools.get(event.toolCallId);\n\t\t\tif (component) {\n\t\t\t\tcomponent.updateResult({ ...event.result, isError: event.isError });\n\t\t\t\tthis.pendingTools.delete(event.toolCallId);\n\t\t\t\tthis.ui.requestRender();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"agent_end\": {\n\t\t\tconst compactionInProgress = this.compactionActive;\n\t\t\tif (!compactionInProgress && this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(false);\n\t\t\t}\n\t\t\tif (this.loadingAnimation) {\n\t\t\t\tthis.loadingAnimation.stop();\n\t\t\t\tthis.loadingAnimation = undefined;\n\t\t\t\tthis.statusContainer.clear();\n\t\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\t}\n\t\t\tif (this.streamingComponent) {\n\t\t\t\tthis.chatContainer.removeChild(this.streamingComponent);\n\t\t\t\tthis.streamingComponent = undefined;\n\t\t\t\tthis.streamingMessage = undefined;\n\t\t\t}\n\t\t\tthis.pendingTools.clear();\n\t\t\tif (this.compactionQueuedMessages.length > 0 && !compactionInProgress) {\n\t\t\t\tvoid this.session.agent.waitForIdle().then(() => this.flushCompactionQueue({ willRetry: false }));\n\t\t\t}\n\n\t\t\tawait this.checkShutdownRequested();\n\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"compaction_start\": {\n\t\t\tif (this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(true);\n\t\t\t}\n\t\t\t// Release any loader left behind by an earlier start before mounting a\n\t\t\t// new one; dropping the reference alone leaks its animation timer.\n\t\t\tif (this.autoCompactionLoader) {\n\t\t\t\tthis.autoCompactionLoader.stop();\n\t\t\t\tthis.autoCompactionLoader = undefined;\n\t\t\t}\n\t\t\t// Keep editor active; submissions are queued during compaction.\n\t\t\t// Never clobber an already-saved handler with our own abort closure.\n\t\t\tif (!this.autoCompactionEscapeHandlerSaved) {\n\t\t\t\tthis.autoCompactionEscapeHandler = this.defaultEditor.onEscape;\n\t\t\t\tthis.autoCompactionEscapeHandlerSaved = true;\n\t\t\t}\n\t\t\tthis.defaultEditor.onEscape = () => {\n\t\t\t\tthis.session.abortCompaction();\n\t\t\t};\n\t\t\tthis.stopWorkingLoader();\n\t\t\tconst cancelHint = `(${keyText(\"app.interrupt\")} Cancel)`;\n\t\t\tconst isOverflowAutoCompaction = event.reason === \"overflow\";\n\t\t\tconst label =\n\t\t\t\tevent.reason === \"manual\"\n\t\t\t\t\t? `Compacting context... ${cancelHint}`\n\t\t\t\t\t: `${isOverflowAutoCompaction ? \"Context overflow detected. \" : \"\"}Auto-compacting... ${cancelHint}`;\n\t\t\tthis.autoCompactionLoader = new AtomicWorkingLoader(\n\t\t\t\tthis.ui,\n\t\t\t\tundefined,\n\t\t\t\t(text) => theme.fg(isOverflowAutoCompaction ? \"warning\" : \"muted\", text),\n\t\t\t\tlabel,\n\t\t\t);\n\t\t\tthis.statusContainer.addChild(this.autoCompactionLoader);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"compaction_end\": {\n\t\t\tconst manualTakeoverPending =\n\t\t\t\tevent.reason !== \"manual\" &&\n\t\t\t\t(event.manualTakeoverPending === true ||\n\t\t\t\t\tthis.manualCompactionTakeoverPending ||\n\t\t\t\t\tthis.session.compactionReason === \"manual\");\n\t\t\tif (manualTakeoverPending) {\n\t\t\t\tthis.manualCompactionTakeoverPending = true;\n\t\t\t} else if (event.reason === \"manual\") {\n\t\t\t\tthis.manualCompactionTakeoverPending = false;\n\t\t\t}\n\t\t\tconst resumesActiveRun = event.midTurn && !event.aborted && !event.errorMessage && !manualTakeoverPending;\n\t\t\tif (!manualTakeoverPending && !resumesActiveRun && this.settingsManager.getShowTerminalProgress()) {\n\t\t\t\tthis.ui.terminal.setProgress(false);\n\t\t\t}\n\t\t\tif (!manualTakeoverPending && this.autoCompactionEscapeHandlerSaved) {\n\t\t\t\tthis.defaultEditor.onEscape = this.autoCompactionEscapeHandler;\n\t\t\t\tthis.autoCompactionEscapeHandler = undefined;\n\t\t\t\tthis.autoCompactionEscapeHandlerSaved = false;\n\t\t\t}\n\t\t\tif (!manualTakeoverPending && this.autoCompactionLoader) {\n\t\t\t\tthis.autoCompactionLoader.stop();\n\t\t\t\tthis.autoCompactionLoader = undefined;\n\t\t\t\tthis.statusContainer.clear();\n\t\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\t}\n\t\t\tif (event.aborted) {\n\t\t\t\tif (event.reason === \"manual\") {\n\t\t\t\t\tthis.showError(\"Compaction cancelled\");\n\t\t\t\t} else if (!manualTakeoverPending) {\n\t\t\t\t\tthis.showStatus(\"Auto-compaction cancelled\");\n\t\t\t\t}\n\t\t\t} else if (event.result && !event.errorMessage) {\n\t\t\t\tthis.chatContainer.clear();\n\t\t\t\tthis.rebuildChatFromMessages({ suppressCompactionBoundary: event.result });\n\t\t\t\tthis.addCompactionBoundaryToChat(event.result);\n\t\t\t\tif (event.result.usage) this.addCompactionCostNotice(\"compaction\", event.result.usage);\n\t\t\t\tthis.footer.invalidate();\n\t\t\t} else if (event.errorMessage && !manualTakeoverPending) {\n\t\t\t\tif (event.reason === \"manual\") {\n\t\t\t\t\tthis.showError(event.errorMessage);\n\t\t\t\t} else {\n\t\t\t\t\tthis.chatContainer.addChild(new Spacer(1));\n\t\t\t\t\tthis.chatContainer.addChild(new Text(theme.fg(\"error\", event.errorMessage), 1, 0));\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Post-tool compaction resumes the same active run, so no new\n\t\t\t// agent_start event will recreate the working loader. A successful\n\t\t\t// no-op carries no `result` and still continues that stream.\n\t\t\tif (event.midTurn && !event.aborted && !event.errorMessage && !manualTakeoverPending) {\n\t\t\t\tthis.showWorkingLoaderNow();\n\t\t\t}\n\t\t\tif (!event.midTurn && !manualTakeoverPending) void this.flushCompactionQueue({ willRetry: event.willRetry });\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"summarization_retry_scheduled\":\n\t\tcase \"summarization_retry_attempt_start\":\n\t\tcase \"summarization_retry_finished\":\n\t\t\thandleSummarizationRetryEvent(this, event);\n\t\t\tbreak;\n\n\t\tcase \"auto_retry_start\": {\n\t\t\t// Set up escape to abort retry\n\t\t\tthis.retryEscapeHandler = this.defaultEditor.onEscape;\n\t\t\tthis.defaultEditor.onEscape = () => {\n\t\t\t\tthis.session.abortRetry();\n\t\t\t};\n\t\t\t// Show retry indicator\n\t\t\tthis.statusContainer.clear();\n\t\t\tthis.retryCountdown?.dispose();\n\t\t\tconst retryMessage = (seconds: number) =>\n\t\t\t\t`Retrying (${event.attempt}/${event.maxAttempts}) in ${seconds}s... (${keyText(\"app.interrupt\")} Cancel)`;\n\t\t\tthis.retryLoader = new Loader(\n\t\t\t\tthis.ui,\n\t\t\t\t(spinner) => theme.fg(\"warning\", spinner),\n\t\t\t\t(text) => theme.fg(\"muted\", text),\n\t\t\t\tretryMessage(Math.ceil(event.delayMs / 1000)),\n\t\t\t);\n\t\t\tthis.retryCountdown = new CountdownTimer(\n\t\t\t\tevent.delayMs,\n\t\t\t\tthis.ui,\n\t\t\t\t(seconds) => {\n\t\t\t\t\tthis.retryLoader?.setMessage(retryMessage(seconds));\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tthis.retryCountdown = undefined;\n\t\t\t\t},\n\t\t\t);\n\t\t\tthis.statusContainer.addChild(this.retryLoader);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"model_fallback_start\": {\n\t\t\tthis.statusContainer.clear();\n\t\t\tif (this.fallbackLoader) {\n\t\t\t\tthis.fallbackLoader.stop();\n\t\t\t\tthis.fallbackLoader = undefined;\n\t\t\t}\n\t\t\tthis.fallbackLoader = new Loader(\n\t\t\t\tthis.ui,\n\t\t\t\t(spinner) => theme.fg(\"warning\", spinner),\n\t\t\t\t(text) => theme.fg(\"muted\", text),\n\t\t\t\t`Falling back from ${event.from} to ${event.to}...`,\n\t\t\t);\n\t\t\tthis.statusContainer.addChild(this.fallbackLoader);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"model_fallback_end\": {\n\t\t\tif (this.fallbackLoader) {\n\t\t\t\tthis.fallbackLoader.stop();\n\t\t\t\tthis.fallbackLoader = undefined;\n\t\t\t}\n\t\t\tthis.statusContainer.clear();\n\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\t\tcase \"auto_retry_end\": {\n\t\t\t// Restore escape handler\n\t\t\tif (this.retryEscapeHandler) {\n\t\t\t\tthis.defaultEditor.onEscape = this.retryEscapeHandler;\n\t\t\t\tthis.retryEscapeHandler = undefined;\n\t\t\t}\n\t\t\tif (this.retryCountdown) {\n\t\t\t\tthis.retryCountdown.dispose();\n\t\t\t\tthis.retryCountdown = undefined;\n\t\t\t}\n\t\t\t// Stop loader\n\t\t\tif (this.retryLoader) {\n\t\t\t\tthis.retryLoader.stop();\n\t\t\t\tthis.retryLoader = undefined;\n\t\t\t\tthis.statusContainer.clear();\n\t\t\t\tmountIdleStatus(this.statusContainer, this.settingsManager.getClearOnShrink());\n\t\t\t}\n\t\t\t// Show error only on final failure (success shows normal response)\n\t\t\tif (!event.success) {\n\t\t\t\tthis.showError(`Retry failed after ${event.attempt} attempts: ${event.finalError || \"Unknown error\"}`);\n\t\t\t}\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"agent_continue_error\": {\n\t\t\tthis.stopWorkingLoader();\n\t\t\tthis.showError(event.errorMessage);\n\t\t\tthis.ui.requestRender();\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\nInteractiveModeBase.prototype.getUserMessageText = function (this: InteractiveModeBase, message: Message): string {\n\tif (message.role !== \"user\") return \"\";\n\tconst textBlocks =\n\t\ttypeof message.content === \"string\"\n\t\t\t? [{ type: \"text\", text: message.content }]\n\t\t\t: message.content.filter((c: { type: string }) => c.type === \"text\");\n\treturn textBlocks.map((c) => (c as { text: string }).text).join(\"\");\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-deferred-startup.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-deferred-startup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAYjE,MAAM,WAAW,mBAAmB;IACnC,sBAAsB,EAAE,OAAO,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa5F;AAqED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCtF"}
1
+ {"version":3,"file":"interactive-deferred-startup.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-deferred-startup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAYjE,MAAM,WAAW,mBAAmB;IACnC,sBAAsB,EAAE,OAAO,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa5F;AAsED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCtF"}
@@ -32,6 +32,7 @@ InteractiveModeBase.prototype.completeDeferredStartup = async function () {
32
32
  try {
33
33
  await this.bindCurrentSessionExtensions();
34
34
  await this.session.reload({ reason: "startup" });
35
+ this.applyRuntimeSettings();
35
36
  // Initial transcript rows precede deferred extension loading, so rebuild them
36
37
  // against the new extension registry before releasing startup output.
37
38
  this.rebuildChatFromMessages();
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-deferred-startup.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-deferred-startup.ts"],"names":[],"mappings":"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","sourcesContent":["import { modelsAreEqual } from \"@bastani/pi-ai/compat\";\nimport { loadAllHighlightLanguages } from \"../../utils/syntax-highlight.ts\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\ttype Container,\n\tfindInitialModel,\n\tformatNoModelsAvailableMessage,\n\trecordTimeSinceReset,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n\tsetRegisteredThemes,\n} from \"./interactive-mode-deps.ts\";\nimport { releaseStartupChatOutput } from \"./interactive-startup-chat-container.ts\";\n\nexport interface DeferredStartupMode {\n\tdeferredStartupPending: boolean;\n\tdeferredStartupPromise: Promise<void> | undefined;\n\tcompleteDeferredStartup(): Promise<void>;\n}\n\nexport async function ensureDeferredStartupComplete(mode: DeferredStartupMode): Promise<void> {\n\tif (!mode.deferredStartupPending && !mode.deferredStartupPromise) return;\n\tconst startupPromise = mode.deferredStartupPromise ?? Promise.resolve().then(() => mode.completeDeferredStartup());\n\tmode.deferredStartupPromise = startupPromise;\n\ttry {\n\t\tawait startupPromise;\n\t} catch {\n\t\tmode.deferredStartupPending = false;\n\t} finally {\n\t\tif (mode.deferredStartupPromise === startupPromise && !mode.deferredStartupPending) {\n\t\t\tmode.deferredStartupPromise = undefined;\n\t\t}\n\t}\n}\n\nInteractiveModeBase.prototype.ensureDeferredStartupComplete = async function (\n\tthis: InteractiveModeBase,\n): Promise<void> {\n\tawait ensureDeferredStartupComplete(this);\n};\n\n/**\n * Finishes a startup where extension loading was deferred so the TUI could\n * paint immediately. Loads extension code via session.reload(), then applies\n * the same post-load UI wiring as /reload and discloses loaded resources.\n */\nInteractiveModeBase.prototype.completeDeferredStartup = async function (this: InteractiveModeBase): Promise<void> {\n\ttry {\n\t\tawait this.bindCurrentSessionExtensions();\n\t\tawait this.session.reload({ reason: \"startup\" });\n\t\t// Initial transcript rows precede deferred extension loading, so rebuild them\n\t\t// against the new extension registry before releasing startup output.\n\t\tthis.rebuildChatFromMessages();\n\n\t\t// A prompt turn keeps its own working loader mounted from submit until\n\t\t// `agent_start` or `compaction_start` takes over; tearing it down here\n\t\t// would leave the rest of startup and prompt preflight with no indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\trecordTimeSinceReset(\"deferred-extension-load\");\n\n\t\tsetRegisteredThemes(this.session.resourceLoader.getThemes().themes);\n\t\tawait this.themeController.applyFromSettings();\n\t\tthis.setupAutocompleteProvider();\n\t\tthis.setupExtensionShortcuts(this.session.extensionRunner);\n\t\tawait applyDeferredModelScope(this);\n\t\tawait this.retryDeferredModelRestore(this.startupNoticesContainer);\n\t\tthis.showLoadedResources({\n\t\t\tforce: true,\n\t\t\tshowDiagnosticsWhenQuiet: true,\n\t\t\ttargetContainer: this.resourceDisclosureContainer,\n\t\t});\n\t\t// Keep the subscription warning after the RESOURCES disclosure.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t\tthis.showStartupNoticesIfNeeded(this.startupNoticesContainer);\n\t\tconst modelsJsonError = this.session.modelRuntime.getError();\n\t\tif (modelsJsonError) {\n\t\t\tthis.showError(`models.json error: ${modelsJsonError}`);\n\t\t}\n\t\tvoid this.updateAvailableProviderCount().catch(() => {});\n\t\tthis.updateEditorBorderColor();\n\t\tthis.ui.requestRender();\n\t\tvoid loadAllHighlightLanguages().then(() => this.ui.requestRender());\n\t} catch (error) {\n\t\t// Same ownership rule as the success path: this catch swallows the error,\n\t\t// so prompt preflight continues and must keep its indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\tthis.showError(`Extension loading failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t// The RESOURCES disclosure will not render; surface the held warning.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t} finally {\n\t\t// Extension loading has either produced the disclosure or definitively\n\t\t// failed, so startup ordering is resolved before any prompt can run.\n\t\treleaseStartupChatOutput(this);\n\t}\n};\n\nexport async function applyDeferredModelScope(mode: InteractiveModeBase): Promise<void> {\n\tconst patterns = mode.options.deferredModelScopePatterns;\n\tif (!patterns || patterns.length === 0) {\n\t\treturn;\n\t}\n\n\tconst { scopedModels, diagnostics } = await resolveModelScopeWithDiagnostics(patterns, mode.session.modelRuntime);\n\tfor (const diagnostic of diagnostics) {\n\t\tmode.showWarning(diagnostic.message);\n\t}\n\tmode.session.setScopedModels(scopedModels);\n\n\tif (mode.sessionManager.buildSessionContext().messages.length > 0 || scopedModels.length === 0) {\n\t\treturn;\n\t}\n\n\tconst currentModel = mode.session.model;\n\tif (currentModel && scopedModels.some((scoped) => modelsAreEqual(scoped.model, currentModel))) {\n\t\treturn;\n\t}\n\n\tconst savedProvider = mode.settingsManager.getDefaultProvider();\n\tconst savedModelId = mode.settingsManager.getDefaultModel();\n\tconst savedModel =\n\t\tsavedProvider && savedModelId ? mode.session.modelRuntime.getModel(savedProvider, savedModelId) : undefined;\n\tconst preferred = savedModel ? scopedModels.find((scoped) => modelsAreEqual(scoped.model, savedModel)) : undefined;\n\tconst nextScopedModel = preferred ?? scopedModels[0];\n\tif (mode.session.modelRuntime.hasConfiguredAuth(nextScopedModel.model.provider)) {\n\t\tawait mode.session.setModel(nextScopedModel.model);\n\t\tif (nextScopedModel.thinkingLevel && !mode.options.deferredModelScopePreserveThinking) {\n\t\t\tmode.session.setThinkingLevel(nextScopedModel.thinkingLevel);\n\t\t}\n\t}\n}\n\n/**\n * Session-restored models and complete settings defaults may depend on an\n * extension provider. Re-evaluate them after deferred registration finishes,\n * then surface only the final warning state.\n */\nInteractiveModeBase.prototype.retryDeferredModelRestore = async function (\n\tthis: InteractiveModeBase,\n\ttargetContainer?: Container,\n): Promise<void> {\n\tconst preliminaryFallbackMessage = this.options.modelFallbackMessage;\n\tif (!preliminaryFallbackMessage) return;\n\n\tconst savedModel = this.sessionManager.buildSessionContext().model;\n\tif (!savedModel && this.session.model && this.session.modelRuntime.hasConfiguredAuth(this.session.model.provider)) {\n\t\treturn;\n\t}\n\tif (savedModel) {\n\t\tconst restoredModel = await resolveRestoredModelReference(\n\t\t\tsavedModel.provider,\n\t\t\tsavedModel.modelId,\n\t\t\tthis.session.modelRuntime,\n\t\t);\n\t\tif (restoredModel && this.session.modelRuntime.hasConfiguredAuth(restoredModel.provider)) {\n\t\t\tawait this.session.setModel(restoredModel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n\t\treturn;\n\t}\n\n\tconst defaultProvider = this.settingsManager.getDefaultProvider();\n\tconst defaultModelId = this.settingsManager.getDefaultModel();\n\tif (defaultProvider && defaultModelId) {\n\t\tconst result = await findInitialModel({\n\t\t\tscopedModels: [],\n\t\t\tisContinuing: false,\n\t\t\tdefaultProvider,\n\t\t\tdefaultModelId,\n\t\t\tdefaultThinkingLevel: this.settingsManager.getDefaultThinkingLevel(),\n\t\t\tmodelRuntime: this.session.modelRuntime,\n\t\t});\n\t\tif (result.model) {\n\t\t\tawait this.session.setModel(result.model);\n\t\t\tthis.session.setThinkingLevel(result.thinkingLevel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(result.fallbackMessage ?? formatNoModelsAvailableMessage(), targetContainer);\n\t\treturn;\n\t}\n\n\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n};\n"]}
1
+ {"version":3,"file":"interactive-deferred-startup.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-deferred-startup.ts"],"names":[],"mappings":"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","sourcesContent":["import { modelsAreEqual } from \"@bastani/pi-ai/compat\";\nimport { loadAllHighlightLanguages } from \"../../utils/syntax-highlight.ts\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\ttype Container,\n\tfindInitialModel,\n\tformatNoModelsAvailableMessage,\n\trecordTimeSinceReset,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n\tsetRegisteredThemes,\n} from \"./interactive-mode-deps.ts\";\nimport { releaseStartupChatOutput } from \"./interactive-startup-chat-container.ts\";\n\nexport interface DeferredStartupMode {\n\tdeferredStartupPending: boolean;\n\tdeferredStartupPromise: Promise<void> | undefined;\n\tcompleteDeferredStartup(): Promise<void>;\n}\n\nexport async function ensureDeferredStartupComplete(mode: DeferredStartupMode): Promise<void> {\n\tif (!mode.deferredStartupPending && !mode.deferredStartupPromise) return;\n\tconst startupPromise = mode.deferredStartupPromise ?? Promise.resolve().then(() => mode.completeDeferredStartup());\n\tmode.deferredStartupPromise = startupPromise;\n\ttry {\n\t\tawait startupPromise;\n\t} catch {\n\t\tmode.deferredStartupPending = false;\n\t} finally {\n\t\tif (mode.deferredStartupPromise === startupPromise && !mode.deferredStartupPending) {\n\t\t\tmode.deferredStartupPromise = undefined;\n\t\t}\n\t}\n}\n\nInteractiveModeBase.prototype.ensureDeferredStartupComplete = async function (\n\tthis: InteractiveModeBase,\n): Promise<void> {\n\tawait ensureDeferredStartupComplete(this);\n};\n\n/**\n * Finishes a startup where extension loading was deferred so the TUI could\n * paint immediately. Loads extension code via session.reload(), then applies\n * the same post-load UI wiring as /reload and discloses loaded resources.\n */\nInteractiveModeBase.prototype.completeDeferredStartup = async function (this: InteractiveModeBase): Promise<void> {\n\ttry {\n\t\tawait this.bindCurrentSessionExtensions();\n\t\tawait this.session.reload({ reason: \"startup\" });\n\t\tthis.applyRuntimeSettings();\n\t\t// Initial transcript rows precede deferred extension loading, so rebuild them\n\t\t// against the new extension registry before releasing startup output.\n\t\tthis.rebuildChatFromMessages();\n\n\t\t// A prompt turn keeps its own working loader mounted from submit until\n\t\t// `agent_start` or `compaction_start` takes over; tearing it down here\n\t\t// would leave the rest of startup and prompt preflight with no indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\trecordTimeSinceReset(\"deferred-extension-load\");\n\n\t\tsetRegisteredThemes(this.session.resourceLoader.getThemes().themes);\n\t\tawait this.themeController.applyFromSettings();\n\t\tthis.setupAutocompleteProvider();\n\t\tthis.setupExtensionShortcuts(this.session.extensionRunner);\n\t\tawait applyDeferredModelScope(this);\n\t\tawait this.retryDeferredModelRestore(this.startupNoticesContainer);\n\t\tthis.showLoadedResources({\n\t\t\tforce: true,\n\t\t\tshowDiagnosticsWhenQuiet: true,\n\t\t\ttargetContainer: this.resourceDisclosureContainer,\n\t\t});\n\t\t// Keep the subscription warning after the RESOURCES disclosure.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t\tthis.showStartupNoticesIfNeeded(this.startupNoticesContainer);\n\t\tconst modelsJsonError = this.session.modelRuntime.getError();\n\t\tif (modelsJsonError) {\n\t\t\tthis.showError(`models.json error: ${modelsJsonError}`);\n\t\t}\n\t\tvoid this.updateAvailableProviderCount().catch(() => {});\n\t\tthis.updateEditorBorderColor();\n\t\tthis.ui.requestRender();\n\t\tvoid loadAllHighlightLanguages().then(() => this.ui.requestRender());\n\t} catch (error) {\n\t\t// Same ownership rule as the success path: this catch swallows the error,\n\t\t// so prompt preflight continues and must keep its indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\tthis.showError(`Extension loading failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t// The RESOURCES disclosure will not render; surface the held warning.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t} finally {\n\t\t// Extension loading has either produced the disclosure or definitively\n\t\t// failed, so startup ordering is resolved before any prompt can run.\n\t\treleaseStartupChatOutput(this);\n\t}\n};\n\nexport async function applyDeferredModelScope(mode: InteractiveModeBase): Promise<void> {\n\tconst patterns = mode.options.deferredModelScopePatterns;\n\tif (!patterns || patterns.length === 0) {\n\t\treturn;\n\t}\n\n\tconst { scopedModels, diagnostics } = await resolveModelScopeWithDiagnostics(patterns, mode.session.modelRuntime);\n\tfor (const diagnostic of diagnostics) {\n\t\tmode.showWarning(diagnostic.message);\n\t}\n\tmode.session.setScopedModels(scopedModels);\n\n\tif (mode.sessionManager.buildSessionContext().messages.length > 0 || scopedModels.length === 0) {\n\t\treturn;\n\t}\n\n\tconst currentModel = mode.session.model;\n\tif (currentModel && scopedModels.some((scoped) => modelsAreEqual(scoped.model, currentModel))) {\n\t\treturn;\n\t}\n\n\tconst savedProvider = mode.settingsManager.getDefaultProvider();\n\tconst savedModelId = mode.settingsManager.getDefaultModel();\n\tconst savedModel =\n\t\tsavedProvider && savedModelId ? mode.session.modelRuntime.getModel(savedProvider, savedModelId) : undefined;\n\tconst preferred = savedModel ? scopedModels.find((scoped) => modelsAreEqual(scoped.model, savedModel)) : undefined;\n\tconst nextScopedModel = preferred ?? scopedModels[0];\n\tif (mode.session.modelRuntime.hasConfiguredAuth(nextScopedModel.model.provider)) {\n\t\tawait mode.session.setModel(nextScopedModel.model);\n\t\tif (nextScopedModel.thinkingLevel && !mode.options.deferredModelScopePreserveThinking) {\n\t\t\tmode.session.setThinkingLevel(nextScopedModel.thinkingLevel);\n\t\t}\n\t}\n}\n\n/**\n * Session-restored models and complete settings defaults may depend on an\n * extension provider. Re-evaluate them after deferred registration finishes,\n * then surface only the final warning state.\n */\nInteractiveModeBase.prototype.retryDeferredModelRestore = async function (\n\tthis: InteractiveModeBase,\n\ttargetContainer?: Container,\n): Promise<void> {\n\tconst preliminaryFallbackMessage = this.options.modelFallbackMessage;\n\tif (!preliminaryFallbackMessage) return;\n\n\tconst savedModel = this.sessionManager.buildSessionContext().model;\n\tif (!savedModel && this.session.model && this.session.modelRuntime.hasConfiguredAuth(this.session.model.provider)) {\n\t\treturn;\n\t}\n\tif (savedModel) {\n\t\tconst restoredModel = await resolveRestoredModelReference(\n\t\t\tsavedModel.provider,\n\t\t\tsavedModel.modelId,\n\t\t\tthis.session.modelRuntime,\n\t\t);\n\t\tif (restoredModel && this.session.modelRuntime.hasConfiguredAuth(restoredModel.provider)) {\n\t\t\tawait this.session.setModel(restoredModel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n\t\treturn;\n\t}\n\n\tconst defaultProvider = this.settingsManager.getDefaultProvider();\n\tconst defaultModelId = this.settingsManager.getDefaultModel();\n\tif (defaultProvider && defaultModelId) {\n\t\tconst result = await findInitialModel({\n\t\t\tscopedModels: [],\n\t\t\tisContinuing: false,\n\t\t\tdefaultProvider,\n\t\t\tdefaultModelId,\n\t\t\tdefaultThinkingLevel: this.settingsManager.getDefaultThinkingLevel(),\n\t\t\tmodelRuntime: this.session.modelRuntime,\n\t\t});\n\t\tif (result.model) {\n\t\t\tawait this.session.setModel(result.model);\n\t\t\tthis.session.setThinkingLevel(result.thinkingLevel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(result.fallbackMessage ?? formatNoModelsAvailableMessage(), targetContainer);\n\t\treturn;\n\t}\n\n\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n};\n"]}
@@ -106,6 +106,9 @@ InteractiveModeBase.prototype.setupKeyHandlers = function () {
106
106
  });
107
107
  this.defaultEditor.onAction("app.message.followUp", () => this.handleFollowUp());
108
108
  this.defaultEditor.onAction("app.message.dequeue", () => this.handleDequeue());
109
+ this.defaultEditor.onAction("app.message.copy", () => {
110
+ void this.handleCopyCommand({ preferSelection: true });
111
+ });
109
112
  this.defaultEditor.onAction("app.session.new", () => this.handleClearCommand());
110
113
  this.defaultEditor.onAction("app.session.tree", () => this.showTreeSelector());
111
114
  this.defaultEditor.onAction("app.session.fork", () => this.showUserMessageSelector());
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-input-handling.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-input-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACN,yCAAyC,EACzC,iCAAiC,EACjC,0BAA0B,GAC1B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,sCAAsC,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,UAAU,6BAA6B,CAAC,IAAyB;IACtE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAC7B,IAAI,CAAC,aAAa,YAAY,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CACrG,CAAC;IACF,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,qBAAqB,CAAC,IAAI,EAAE;QAC3B,6EAA6E;QAC7E,YAAY,EAAE,eAAe;QAC7B,aAAa,EAAE,gBAAgB;QAC/B,kBAAkB;QAClB,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;QAC7E,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;QACtC,4BAA4B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC;QACxE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1E,sBAAsB,EAAE,GAAG,EAAE,CAC5B,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE;YACxC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;YACtC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ;SACrD,CAAC;QACH,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;QACpF,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/B,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,8BAA8B,EAAE,GAAG,EAAE,CAAC,yCAAyC,CAAC,IAAI,CAAC,WAAW,CAAC;QACjG,iBAAiB,EAAE,GAAG,EAAE;YACvB,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;KAC5C,CAAC,CACF,CAAC;AACH,CAAC;AAED,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,GAAG;IAChD,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACpC,0EAA0E;IAC1E,8DAA8D;IAC9D,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,EAAE;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO;QAC7F,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC7G,+BAA+B,CAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1C,qFAAqF;YACrF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;YAC5D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;oBACrC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACzB,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAChC,CAAC;oBACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IAEF,+BAA+B;IAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC1D,KAAK,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC3D,KAAK,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACpD,KAAK,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACvD,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACjF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAEpF,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChC,CAAC;IACF,CAAC,CAAC;IAEF,qDAAqD;IACrD,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,EAAE;QACtC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAClC,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,yBAAyB,GAAG,KAAK;IAC9D,MAAM,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE;QAC7E,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;KACnD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,0BAA0B,GAAG,UAAqC,IAAY;IAC3G,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACP,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACF,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,yBAAyB,GAAG;IACzD,IAAI,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,IAAI;SACtB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAE,EAAE,CAClD,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,gFAAgF;IAChF,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,iBAAiB,GACtB,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAE/D,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,WAAW,GAAG,WAAW,CAAC;IAC9B,IACC,WAAW,KAAK,SAAS;QACzB,WAAW,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EACzD,CAAC;QACF,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9F,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,gBAAgB,CACf,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,EAChC,IAAI,CAAC,mBAAmB,EACxB,CAAC,KAAK,EAAE,EAAE;QACT,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC/B,CAAC,EACD,CAAC,MAAM,EAAE,EAAE;QACV,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC;IACxC,CAAC,CACD,CAAC;IACF,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,0BAA0B,GAAG,KAAK;IAC/D,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAClD,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE;YAAE,MAAM;IACzE,CAAC;AACF,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,yBAAyB,GAAG,UAEzD,aAAqB;IAErB,IAAI,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,KAAK,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO;IAC3E,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;IAE1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;AACF,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,wBAAwB,GAAG;IACxD,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACpD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;QAClD,CAAC;QACD,sEAAsE;QACtE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,uCAAuC;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,IAAI,IAAI,CAAC;QACzE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3F,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxB,OAAO;QACR,CAAC;QACD,IAAI,CAAC;YACJ,kBAAkB;YAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBAC3C,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAC1C,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBAC3C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC9F,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAChC,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC;gBAC/E,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAChC,OAAO;YACR,CAAC;YACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACzB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;oBACpC,OAAO;gBACR,CAAC;gBACD,2EAA2E;gBAC3E,oEAAoE;gBACpE,MAAM,mBAAmB,GACxB,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,UAAU,CAAC;gBAC/F,IAAI,IAAI,CAAC,+BAA+B,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC7F,IAAI,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;oBACzD,OAAO;gBACR,CAAC;gBACD,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAClC,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACjC,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACR,CAAC;YACD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,gBAAgB,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO;YACR,CAAC;YACD,mEAAmE;YACnE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzE,IAAI,OAAO,EAAE,CAAC;oBACb,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBAChC,IAAI,CAAC,WAAW,CAAC,sDAAsD,CAAC,CAAC;wBACzE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC1B,OAAO;oBACR,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;oBACjC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,OAAO;gBACR,CAAC;YACF,CAAC;YAED,yEAAyE;YACzE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;oBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACxB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO;YACR,CAAC;YAED,iDAAiD;YACjD,iGAAiG;YACjG,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACpE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChE,IAAI,CAAC,4BAA4B,EAAE,CAAC;gBACpC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;gBACxB,OAAO;YACR,CAAC;YAED,4BAA4B;YAC5B,kDAAkD;YAClD,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,wEAAwE;YACxE,uEAAuE;YACvE,4CAA4C;YAC5C,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;YAEnD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC7E,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,yBAAyB,EAAE,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { yieldToEventLoop } from \"../../utils/event-loop.ts\";\nimport {\n\tinteractiveEngineNeedsExplicitTermination,\n\tinterruptBlockedInteractiveEngine,\n\tterminateInteractiveEngine,\n} from \"../interactive-engine/extension-ui-bridge.ts\";\nimport {\n\tdismissRemoteProxy,\n\tremoteEngineProxyOwner,\n\tremoteProxyHandlesCtrlC,\n} from \"../interactive-engine/remote-input-ownership.ts\";\nimport { StartupIdentityComponent } from \"./components/startup-identity.ts\";\nimport { COMPACTION_ALREADY_IN_PROGRESS_WARNING } from \"./interactive-bash-compact.ts\";\nimport { routeGlobalClearInput } from \"./interactive-global-clear.ts\";\nimport { isPhysicalCtrlC, isPhysicalEscape, isSafetyKeyRelease } from \"./interactive-key-identity.ts\";\nimport { InteractiveModeBase, seedStartupInput } from \"./interactive-mode-base.ts\";\nimport { pasteClipboardImageToEditor, recordTimeSinceReset } from \"./interactive-mode-deps.ts\";\nimport { pauseAndAbortInteractiveSession } from \"./interactive-pause.ts\";\nimport { restoreFailedSubmissionDraft } from \"./interactive-prompt-restore.ts\";\n\nexport function registerStartupInputListeners(mode: InteractiveModeBase): void {\n\tmode.addTuiInputListener(() =>\n\t\tmode.builtInHeader instanceof StartupIdentityComponent ? void mode.builtInHeader.settle() : undefined,\n\t);\n\tmode.addTuiInputListener((data) =>\n\t\trouteGlobalClearInput(data, {\n\t\t\t// Physical identity first: safety routing must survive an `app.clear` remap.\n\t\t\tmatchesCtrlC: isPhysicalCtrlC,\n\t\t\tmatchesEscape: isPhysicalEscape,\n\t\t\tisSafetyKeyRelease,\n\t\t\tmatchesClear: (candidate) => mode.keybindings.matches(candidate, \"app.clear\"),\n\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\tblockingInlineCustomUiActive: () => mode.blockingInlineCustomUiDepth > 0,\n\t\t\teditorOwnsInput: () => mode.editorContainer.children.includes(mode.editor),\n\t\t\tremoteEngineProxyOwner: () =>\n\t\t\t\tremoteEngineProxyOwner(mode.runtimeHost, {\n\t\t\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\t\t\tinlineComponents: () => mode.editorContainer.children,\n\t\t\t\t}),\n\t\t\tremoteProxyHandlesCtrlC: (owner) => remoteProxyHandlesCtrlC(mode.runtimeHost, owner),\n\t\t\tonRemoteProxyDismiss: (owner) => {\n\t\t\t\tdismissRemoteProxy(mode.runtimeHost, owner);\n\t\t\t},\n\t\t\tengineNeedsExplicitTermination: () => interactiveEngineNeedsExplicitTermination(mode.runtimeHost),\n\t\t\tonEngineTerminate: () => {\n\t\t\t\tterminateInteractiveEngine(mode.runtimeHost);\n\t\t\t},\n\t\t\tonClear: () => mode.handleCtrlC(),\n\t\t\trequestRender: () => mode.ui.requestRender(),\n\t\t}),\n\t);\n}\n\nInteractiveModeBase.prototype.setupKeyHandlers = function (this: InteractiveModeBase): void {\n\tregisterStartupInputListeners(this);\n\t// Set up handlers on defaultEditor - they use this.editor for text access\n\t// so they work correctly regardless of which editor is active\n\tthis.defaultEditor.onEscape = () => {\n\t\tif (!this.session.isStreaming && interruptBlockedInteractiveEngine(this.runtimeHost)) return;\n\t\tif (this.session.isStreaming || this.session.agent.hasQueuedMessages() || this.session.queuedMessagesPaused) {\n\t\t\tpauseAndAbortInteractiveSession(this, { restoreQueuedMessages: true });\n\t\t} else if (this.session.isBashRunning) {\n\t\t\tthis.session.abortBash();\n\t\t} else if (this.isBashMode) {\n\t\t\tthis.editor.setText(\"\");\n\t\t\tthis.isBashMode = false;\n\t\t\tthis.updateEditorBorderColor();\n\t\t} else if (!this.editor.getText().trim()) {\n\t\t\t// Double-escape with empty editor triggers /tree, /fork, or nothing based on setting\n\t\t\tconst action = this.settingsManager.getDoubleEscapeAction();\n\t\t\tif (action !== \"none\") {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tif (now - this.lastEscapeTime < 500) {\n\t\t\t\t\tif (action === \"tree\") {\n\t\t\t\t\t\tthis.showTreeSelector();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\t\t}\n\t\t\t\t\tthis.lastEscapeTime = 0;\n\t\t\t\t} else {\n\t\t\t\t\tthis.lastEscapeTime = now;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Register app action handlers\n\tthis.defaultEditor.onAction(\"app.clear\", () => this.handleCtrlC());\n\tthis.defaultEditor.onCtrlD = () => this.handleCtrlD();\n\tthis.defaultEditor.onAction(\"app.suspend\", () => this.handleCtrlZ());\n\tthis.defaultEditor.onAction(\"app.thinking.cycle\", () => this.cycleThinkingLevel());\n\tthis.defaultEditor.onAction(\"app.model.cycleForward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"forward\");\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.model.cycleBackward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"backward\");\n\t\t})();\n\t});\n\n\t// Global debug handler on TUI (works regardless of focus)\n\tthis.ui.onDebug = () => this.handleDebugCommand();\n\tthis.defaultEditor.onAction(\"app.model.select\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tthis.showModelSelector();\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.tools.expand\", () => this.toggleToolOutputExpansion());\n\tthis.defaultEditor.onAction(\"app.thinking.toggle\", () => this.toggleThinkingBlockVisibility());\n\tthis.defaultEditor.onAction(\"app.editor.external\", () => {\n\t\tvoid this.openExternalEditor();\n\t});\n\tthis.defaultEditor.onAction(\"app.message.followUp\", () => this.handleFollowUp());\n\tthis.defaultEditor.onAction(\"app.message.dequeue\", () => this.handleDequeue());\n\tthis.defaultEditor.onAction(\"app.session.new\", () => this.handleClearCommand());\n\tthis.defaultEditor.onAction(\"app.session.tree\", () => this.showTreeSelector());\n\tthis.defaultEditor.onAction(\"app.session.fork\", () => this.showUserMessageSelector());\n\tthis.defaultEditor.onAction(\"app.session.resume\", () => this.showSessionSelector());\n\n\tthis.defaultEditor.onChange = (text: string) => {\n\t\tconst wasBashMode = this.isBashMode;\n\t\tthis.isBashMode = text.trimStart().startsWith(\"!\");\n\t\tif (wasBashMode !== this.isBashMode) {\n\t\t\tthis.updateEditorBorderColor();\n\t\t}\n\t};\n\n\t// Handle clipboard image paste (triggered on Ctrl+V)\n\tthis.defaultEditor.onPasteImage = () => {\n\t\tthis.handleClipboardImagePaste();\n\t};\n};\n\nInteractiveModeBase.prototype.handleClipboardImagePaste = async function (this: InteractiveModeBase): Promise<void> {\n\tawait pasteClipboardImageToEditor(this.editor, () => this.ui.requestRender(), {\n\t\tshowWarning: (message) => this.showWarning(message),\n\t});\n};\n\nInteractiveModeBase.prototype.deliverStartupReplayPrompt = function (this: InteractiveModeBase, text: string): void {\n\tif (this.onInputCallback) {\n\t\tif (!text.startsWith(\"/\")) {\n\t\t\tthis.renderDeferredUserInput(text);\n\t\t}\n\t\tconst callback = this.onInputCallback;\n\t\tthis.onInputCallback = undefined;\n\t\tcallback({ text, draft: text });\n\t} else {\n\t\tthis.pendingUserInputs.push({ text, draft: text });\n\t}\n};\n\nInteractiveModeBase.prototype.recoverCookedStartupInput = function (this: InteractiveModeBase): boolean {\n\tif (this.startupCookedInputRecovered || this.pendingUserInputs.length > 0) return true;\n\tconst text = this.editor.getText();\n\tconst cookedLines = text\n\t\t.split(/\\r?\\n/)\n\t\t.map((line) => line.trim())\n\t\t.filter(Boolean);\n\tconst isCommandLike = (line: string | undefined) =>\n\t\tline !== undefined && (line.startsWith(\"/\") || line.startsWith(\"!\"));\n\t// A raw startup capture distinguishes drafts from Enter-terminated submissions.\n\t// Never reinterpret its visible command-like draft (including a bare \"/\") as\n\t// submitted merely because header/chat initialization is now draining input.\n\tconst singleCommandLike =\n\t\tthis.options.startupInputCapture === undefined && cookedLines.length === 1 && isCommandLike(cookedLines[0]);\n\tif (cookedLines.length < 2 && !singleCommandLike) return false;\n\n\tthis.startupCookedInputRecovered = true;\n\tconst activeInput = this.startupReplayActiveInput?.trim();\n\tlet draftText = \"\";\n\tlet submissions = cookedLines;\n\tif (\n\t\tactiveInput === undefined &&\n\t\tcookedLines.length > 1 &&\n\t\t!isCommandLike(cookedLines[cookedLines.length - 1]) &&\n\t\t(!isCommandLike(cookedLines[0]) || cookedLines.length > 2)\n\t) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t} else if (activeInput && cookedLines.length > 1 && !isCommandLike(cookedLines[cookedLines.length - 1])) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t}\n\tif (submissions.length === 0) return true;\n\n\tif (activeInput) {\n\t\tconst queuedSubmissions = submissions[0] === activeInput ? submissions.slice(1) : submissions;\n\t\tthis.editor.setText(draftText);\n\t\tthis.startupReplayInputs.push(...queuedSubmissions);\n\t\treturn true;\n\t}\n\n\tthis.editor.setText(\"\");\n\tseedStartupInput(\n\t\tthis.pendingUserInputs,\n\t\tthis.editor,\n\t\t{ text: draftText, submissions },\n\t\tthis.startupReplayInputs,\n\t\t(draft) => {\n\t\t\tthis.startupDraftText = draft;\n\t\t},\n\t\t(active) => {\n\t\t\tthis.startupReplayActiveInput = active;\n\t\t},\n\t);\n\treturn true;\n};\n\nInteractiveModeBase.prototype.drainStartupReplayCommands = async function (this: InteractiveModeBase): Promise<void> {\n\twhile (this.pendingUserInputs.length === 0 && this.startupReplayActiveInput) {\n\t\tconst activeInput = this.startupReplayActiveInput;\n\t\tawait this.defaultEditor.onSubmit?.(activeInput);\n\t\tif (this.editor.getText().trim() === activeInput.trim()) {\n\t\t\tthis.editor.setText(\"\");\n\t\t}\n\t\tif (this.startupReplayActiveInput?.trim() === activeInput.trim()) break;\n\t}\n};\n\nInteractiveModeBase.prototype.advanceStartupInputReplay = function (\n\tthis: InteractiveModeBase,\n\tsubmittedText: string,\n): void {\n\tif (this.startupReplayActiveInput?.trim() !== submittedText.trim()) return;\n\tthis.startupReplayActiveInput = undefined;\n\n\twhile (this.startupReplayInputs.length > 0) {\n\t\tconst nextInput = this.startupReplayInputs.shift();\n\t\tif (nextInput === undefined) break;\n\t\tconst trimmed = nextInput.trimStart();\n\t\tif (trimmed.startsWith(\"/\") || trimmed.startsWith(\"!\")) {\n\t\t\tthis.startupReplayActiveInput = nextInput.trim();\n\t\t\tthis.editor.setText(this.startupReplayActiveInput);\n\t\t\tthis.ui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tthis.deliverStartupReplayPrompt(nextInput);\n\t}\n\n\tif (this.startupDraftText !== undefined) {\n\t\tthis.editor.setText(this.startupDraftText);\n\t\tthis.startupDraftText = undefined;\n\t\tthis.ui.requestRender();\n\t}\n};\n\nInteractiveModeBase.prototype.setupEditorSubmitHandler = function (this: InteractiveModeBase): void {\n\tthis.defaultEditor.onSubmit = async (text: string) => {\n\t\tif (!this.firstSubmitRecorded) {\n\t\t\tthis.firstSubmitRecorded = true;\n\t\t\trecordTimeSinceReset(\"interactive-first-submit\");\n\t\t}\n\t\t// pi-tui trims, expands pastes, and clears the editor before it calls\n\t\t// onSubmit, so the callback argument is already reduced. Prefer the buffer\n\t\t// CustomEditor snapshotted for this very dispatch, which is what the user\n\t\t// actually had, and fall back to the argument for other editors and for\n\t\t// tests that invoke onSubmit directly.\n\t\tconst submittedDraft = this.defaultEditor.takeSubmittedDraft?.() ?? text;\n\t\ttext = text.trim();\n\t\tif (!text) return;\n\n\t\tif (this.startupReplayActiveInput && this.startupReplayActiveInput.trim() !== text.trim()) {\n\t\t\tthis.startupReplayInputs.push(text);\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t\tthis.editor.setText(\"\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\t// Handle commands\n\t\t\tif (text === \"/settings\") {\n\t\t\t\tthis.showSettingsSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fast\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.showFastModeSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/scoped-models\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tthis.showModelsSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/model\" || text.startsWith(\"/model \")) {\n\t\t\t\tconst searchTerm = text.startsWith(\"/model \") ? text.slice(7).trim() : undefined;\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleModelCommand(searchTerm);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/thinking\" || text.startsWith(\"/thinking \")) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tthis.handleThinkingCommand(text.startsWith(\"/thinking \") ? text.slice(10).trim() : undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/export\" || text.startsWith(\"/export \")) {\n\t\t\t\tawait this.handleExportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/import\" || text.startsWith(\"/import \")) {\n\t\t\t\tawait this.handleImportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/share\") {\n\t\t\t\tawait this.handleShareCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/copy\") {\n\t\t\t\tawait this.handleCopyCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/name\" || text.startsWith(\"/name \")) {\n\t\t\t\tthis.handleNameCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/session\") {\n\t\t\t\tthis.handleSessionCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/changelog\") {\n\t\t\t\tthis.handleChangelogCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/atomic\" || text.startsWith(\"/atomic \")) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/hotkeys\") {\n\t\t\t\tthis.handleHotkeysCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fork\") {\n\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/clone\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleCloneCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/tree\") {\n\t\t\t\tthis.showTreeSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/trust\") {\n\t\t\t\tthis.showTrustSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/login(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleLoginCommand(text.slice(\"/login\".length).trim() || undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/logout\") {\n\t\t\t\tthis.showOAuthSelector(\"logout\");\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/new\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleClearCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/compact(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tif (text !== \"/compact\") {\n\t\t\t\t\tthis.showWarning(\"Usage: /compact\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// A manual request can take over automatic compaction, but a second manual\n\t\t\t\t// compaction or branch summary still has no safe independent owner.\n\t\t\t\tconst automaticCompaction =\n\t\t\t\t\tthis.session.compactionReason === \"threshold\" || this.session.compactionReason === \"overflow\";\n\t\t\t\tif (this.manualCompactionTakeoverPending || (this.compactionActive && !automaticCompaction)) {\n\t\t\t\t\tthis.showWarning(COMPACTION_ALREADY_IN_PROGRESS_WARNING);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait this.handleCompactCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/reload\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleReloadCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/debug\") {\n\t\t\t\tthis.handleDebugCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/arminsayshi\") {\n\t\t\t\tthis.handleArminSaysHi();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/dementedelves\") {\n\t\t\t\tthis.handleDementedDelves();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/resume\") {\n\t\t\t\tthis.showSessionSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/quit\" || text === \"/exit\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.shutdown();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (text.startsWith(\"/\") && this.deferredStartupPending) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\tawait yieldToEventLoop();\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Handle bash command (! for normal, !! for excluded from context)\n\t\t\tif (text.startsWith(\"!\")) {\n\t\t\t\tconst isExcluded = text.startsWith(\"!!\");\n\t\t\t\tconst command = isExcluded ? text.slice(2).trim() : text.slice(1).trim();\n\t\t\t\tif (command) {\n\t\t\t\t\tif (this.session.isBashRunning) {\n\t\t\t\t\t\tthis.showWarning(\"A bash command is already running. esc cancel first.\");\n\t\t\t\t\t\tthis.editor.setText(text);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tawait this.handleBashCommand(command, isExcluded);\n\t\t\t\t\tthis.isBashMode = false;\n\t\t\t\t\tthis.updateEditorBorderColor();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Queue input during compaction (extension commands execute immediately)\n\t\t\tif (this.compactionActive) {\n\t\t\t\tif (this.isExtensionCommand(text)) {\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\t\tawait this.session.prompt(text);\n\t\t\t\t} else {\n\t\t\t\t\tthis.queueCompactionMessage(text, \"steer\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If streaming, use prompt() with steer behavior\n\t\t\t// This handles extension commands (execute immediately), prompt template expansion, and queueing\n\t\t\tif (this.session.isStreaming && !this.session.queuedMessagesPaused) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text, { streamingBehavior: \"steer\" });\n\t\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Normal message submission\n\t\t\t// First, move any pending bash components to chat\n\t\t\tthis.flushPendingBashComponents();\n\t\t\t// The draft travels with this submission, never through shared state: a\n\t\t\t// later submission whose trimmed text is identical must not be able to\n\t\t\t// claim, or clear, this one's exact buffer.\n\t\t\tconst submission = { text, draft: submittedDraft };\n\n\t\t\tif (this.onInputCallback) {\n\t\t\t\tif (!text.startsWith(\"/\")) {\n\t\t\t\t\tthis.renderDeferredUserInput(text);\n\t\t\t\t}\n\t\t\t\tthis.onInputCallback(submission);\n\t\t\t} else {\n\t\t\t\tthis.pendingUserInputs.push(submission);\n\t\t\t}\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t} catch (error) {\n\t\t\t// Direct dispatch branches above hand text straight to the engine and\n\t\t\t// never reach runUserPromptTurn(), so this is the only place their send\n\t\t\t// failures can put the draft back. Anything else is not ours to absorb.\n\t\t\tif (!restoreFailedSubmissionDraft(this, error, submittedDraft)) throw error;\n\t\t} finally {\n\t\t\tthis.advanceStartupInputReplay?.(text);\n\t\t}\n\t};\n};\n"]}
1
+ {"version":3,"file":"interactive-input-handling.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-input-handling.ts"],"names":[],"mappings":"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","sourcesContent":["import { yieldToEventLoop } from \"../../utils/event-loop.ts\";\nimport {\n\tinteractiveEngineNeedsExplicitTermination,\n\tinterruptBlockedInteractiveEngine,\n\tterminateInteractiveEngine,\n} from \"../interactive-engine/extension-ui-bridge.ts\";\nimport {\n\tdismissRemoteProxy,\n\tremoteEngineProxyOwner,\n\tremoteProxyHandlesCtrlC,\n} from \"../interactive-engine/remote-input-ownership.ts\";\nimport { StartupIdentityComponent } from \"./components/startup-identity.ts\";\nimport { COMPACTION_ALREADY_IN_PROGRESS_WARNING } from \"./interactive-bash-compact.ts\";\nimport { routeGlobalClearInput } from \"./interactive-global-clear.ts\";\nimport { isPhysicalCtrlC, isPhysicalEscape, isSafetyKeyRelease } from \"./interactive-key-identity.ts\";\nimport { InteractiveModeBase, seedStartupInput } from \"./interactive-mode-base.ts\";\nimport { pasteClipboardImageToEditor, recordTimeSinceReset } from \"./interactive-mode-deps.ts\";\nimport { pauseAndAbortInteractiveSession } from \"./interactive-pause.ts\";\nimport { restoreFailedSubmissionDraft } from \"./interactive-prompt-restore.ts\";\n\nexport function registerStartupInputListeners(mode: InteractiveModeBase): void {\n\tmode.addTuiInputListener(() =>\n\t\tmode.builtInHeader instanceof StartupIdentityComponent ? void mode.builtInHeader.settle() : undefined,\n\t);\n\tmode.addTuiInputListener((data) =>\n\t\trouteGlobalClearInput(data, {\n\t\t\t// Physical identity first: safety routing must survive an `app.clear` remap.\n\t\t\tmatchesCtrlC: isPhysicalCtrlC,\n\t\t\tmatchesEscape: isPhysicalEscape,\n\t\t\tisSafetyKeyRelease,\n\t\t\tmatchesClear: (candidate) => mode.keybindings.matches(candidate, \"app.clear\"),\n\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\tblockingInlineCustomUiActive: () => mode.blockingInlineCustomUiDepth > 0,\n\t\t\teditorOwnsInput: () => mode.editorContainer.children.includes(mode.editor),\n\t\t\tremoteEngineProxyOwner: () =>\n\t\t\t\tremoteEngineProxyOwner(mode.runtimeHost, {\n\t\t\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\t\t\tinlineComponents: () => mode.editorContainer.children,\n\t\t\t\t}),\n\t\t\tremoteProxyHandlesCtrlC: (owner) => remoteProxyHandlesCtrlC(mode.runtimeHost, owner),\n\t\t\tonRemoteProxyDismiss: (owner) => {\n\t\t\t\tdismissRemoteProxy(mode.runtimeHost, owner);\n\t\t\t},\n\t\t\tengineNeedsExplicitTermination: () => interactiveEngineNeedsExplicitTermination(mode.runtimeHost),\n\t\t\tonEngineTerminate: () => {\n\t\t\t\tterminateInteractiveEngine(mode.runtimeHost);\n\t\t\t},\n\t\t\tonClear: () => mode.handleCtrlC(),\n\t\t\trequestRender: () => mode.ui.requestRender(),\n\t\t}),\n\t);\n}\n\nInteractiveModeBase.prototype.setupKeyHandlers = function (this: InteractiveModeBase): void {\n\tregisterStartupInputListeners(this);\n\t// Set up handlers on defaultEditor - they use this.editor for text access\n\t// so they work correctly regardless of which editor is active\n\tthis.defaultEditor.onEscape = () => {\n\t\tif (!this.session.isStreaming && interruptBlockedInteractiveEngine(this.runtimeHost)) return;\n\t\tif (this.session.isStreaming || this.session.agent.hasQueuedMessages() || this.session.queuedMessagesPaused) {\n\t\t\tpauseAndAbortInteractiveSession(this, { restoreQueuedMessages: true });\n\t\t} else if (this.session.isBashRunning) {\n\t\t\tthis.session.abortBash();\n\t\t} else if (this.isBashMode) {\n\t\t\tthis.editor.setText(\"\");\n\t\t\tthis.isBashMode = false;\n\t\t\tthis.updateEditorBorderColor();\n\t\t} else if (!this.editor.getText().trim()) {\n\t\t\t// Double-escape with empty editor triggers /tree, /fork, or nothing based on setting\n\t\t\tconst action = this.settingsManager.getDoubleEscapeAction();\n\t\t\tif (action !== \"none\") {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tif (now - this.lastEscapeTime < 500) {\n\t\t\t\t\tif (action === \"tree\") {\n\t\t\t\t\t\tthis.showTreeSelector();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\t\t}\n\t\t\t\t\tthis.lastEscapeTime = 0;\n\t\t\t\t} else {\n\t\t\t\t\tthis.lastEscapeTime = now;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Register app action handlers\n\tthis.defaultEditor.onAction(\"app.clear\", () => this.handleCtrlC());\n\tthis.defaultEditor.onCtrlD = () => this.handleCtrlD();\n\tthis.defaultEditor.onAction(\"app.suspend\", () => this.handleCtrlZ());\n\tthis.defaultEditor.onAction(\"app.thinking.cycle\", () => this.cycleThinkingLevel());\n\tthis.defaultEditor.onAction(\"app.model.cycleForward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"forward\");\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.model.cycleBackward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"backward\");\n\t\t})();\n\t});\n\n\t// Global debug handler on TUI (works regardless of focus)\n\tthis.ui.onDebug = () => this.handleDebugCommand();\n\tthis.defaultEditor.onAction(\"app.model.select\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tthis.showModelSelector();\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.tools.expand\", () => this.toggleToolOutputExpansion());\n\tthis.defaultEditor.onAction(\"app.thinking.toggle\", () => this.toggleThinkingBlockVisibility());\n\tthis.defaultEditor.onAction(\"app.editor.external\", () => {\n\t\tvoid this.openExternalEditor();\n\t});\n\tthis.defaultEditor.onAction(\"app.message.followUp\", () => this.handleFollowUp());\n\tthis.defaultEditor.onAction(\"app.message.dequeue\", () => this.handleDequeue());\n\tthis.defaultEditor.onAction(\"app.message.copy\", () => {\n\t\tvoid this.handleCopyCommand({ preferSelection: true });\n\t});\n\tthis.defaultEditor.onAction(\"app.session.new\", () => this.handleClearCommand());\n\tthis.defaultEditor.onAction(\"app.session.tree\", () => this.showTreeSelector());\n\tthis.defaultEditor.onAction(\"app.session.fork\", () => this.showUserMessageSelector());\n\tthis.defaultEditor.onAction(\"app.session.resume\", () => this.showSessionSelector());\n\n\tthis.defaultEditor.onChange = (text: string) => {\n\t\tconst wasBashMode = this.isBashMode;\n\t\tthis.isBashMode = text.trimStart().startsWith(\"!\");\n\t\tif (wasBashMode !== this.isBashMode) {\n\t\t\tthis.updateEditorBorderColor();\n\t\t}\n\t};\n\n\t// Handle clipboard image paste (triggered on Ctrl+V)\n\tthis.defaultEditor.onPasteImage = () => {\n\t\tthis.handleClipboardImagePaste();\n\t};\n};\n\nInteractiveModeBase.prototype.handleClipboardImagePaste = async function (this: InteractiveModeBase): Promise<void> {\n\tawait pasteClipboardImageToEditor(this.editor, () => this.ui.requestRender(), {\n\t\tshowWarning: (message) => this.showWarning(message),\n\t});\n};\n\nInteractiveModeBase.prototype.deliverStartupReplayPrompt = function (this: InteractiveModeBase, text: string): void {\n\tif (this.onInputCallback) {\n\t\tif (!text.startsWith(\"/\")) {\n\t\t\tthis.renderDeferredUserInput(text);\n\t\t}\n\t\tconst callback = this.onInputCallback;\n\t\tthis.onInputCallback = undefined;\n\t\tcallback({ text, draft: text });\n\t} else {\n\t\tthis.pendingUserInputs.push({ text, draft: text });\n\t}\n};\n\nInteractiveModeBase.prototype.recoverCookedStartupInput = function (this: InteractiveModeBase): boolean {\n\tif (this.startupCookedInputRecovered || this.pendingUserInputs.length > 0) return true;\n\tconst text = this.editor.getText();\n\tconst cookedLines = text\n\t\t.split(/\\r?\\n/)\n\t\t.map((line) => line.trim())\n\t\t.filter(Boolean);\n\tconst isCommandLike = (line: string | undefined) =>\n\t\tline !== undefined && (line.startsWith(\"/\") || line.startsWith(\"!\"));\n\t// A raw startup capture distinguishes drafts from Enter-terminated submissions.\n\t// Never reinterpret its visible command-like draft (including a bare \"/\") as\n\t// submitted merely because header/chat initialization is now draining input.\n\tconst singleCommandLike =\n\t\tthis.options.startupInputCapture === undefined && cookedLines.length === 1 && isCommandLike(cookedLines[0]);\n\tif (cookedLines.length < 2 && !singleCommandLike) return false;\n\n\tthis.startupCookedInputRecovered = true;\n\tconst activeInput = this.startupReplayActiveInput?.trim();\n\tlet draftText = \"\";\n\tlet submissions = cookedLines;\n\tif (\n\t\tactiveInput === undefined &&\n\t\tcookedLines.length > 1 &&\n\t\t!isCommandLike(cookedLines[cookedLines.length - 1]) &&\n\t\t(!isCommandLike(cookedLines[0]) || cookedLines.length > 2)\n\t) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t} else if (activeInput && cookedLines.length > 1 && !isCommandLike(cookedLines[cookedLines.length - 1])) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t}\n\tif (submissions.length === 0) return true;\n\n\tif (activeInput) {\n\t\tconst queuedSubmissions = submissions[0] === activeInput ? submissions.slice(1) : submissions;\n\t\tthis.editor.setText(draftText);\n\t\tthis.startupReplayInputs.push(...queuedSubmissions);\n\t\treturn true;\n\t}\n\n\tthis.editor.setText(\"\");\n\tseedStartupInput(\n\t\tthis.pendingUserInputs,\n\t\tthis.editor,\n\t\t{ text: draftText, submissions },\n\t\tthis.startupReplayInputs,\n\t\t(draft) => {\n\t\t\tthis.startupDraftText = draft;\n\t\t},\n\t\t(active) => {\n\t\t\tthis.startupReplayActiveInput = active;\n\t\t},\n\t);\n\treturn true;\n};\n\nInteractiveModeBase.prototype.drainStartupReplayCommands = async function (this: InteractiveModeBase): Promise<void> {\n\twhile (this.pendingUserInputs.length === 0 && this.startupReplayActiveInput) {\n\t\tconst activeInput = this.startupReplayActiveInput;\n\t\tawait this.defaultEditor.onSubmit?.(activeInput);\n\t\tif (this.editor.getText().trim() === activeInput.trim()) {\n\t\t\tthis.editor.setText(\"\");\n\t\t}\n\t\tif (this.startupReplayActiveInput?.trim() === activeInput.trim()) break;\n\t}\n};\n\nInteractiveModeBase.prototype.advanceStartupInputReplay = function (\n\tthis: InteractiveModeBase,\n\tsubmittedText: string,\n): void {\n\tif (this.startupReplayActiveInput?.trim() !== submittedText.trim()) return;\n\tthis.startupReplayActiveInput = undefined;\n\n\twhile (this.startupReplayInputs.length > 0) {\n\t\tconst nextInput = this.startupReplayInputs.shift();\n\t\tif (nextInput === undefined) break;\n\t\tconst trimmed = nextInput.trimStart();\n\t\tif (trimmed.startsWith(\"/\") || trimmed.startsWith(\"!\")) {\n\t\t\tthis.startupReplayActiveInput = nextInput.trim();\n\t\t\tthis.editor.setText(this.startupReplayActiveInput);\n\t\t\tthis.ui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tthis.deliverStartupReplayPrompt(nextInput);\n\t}\n\n\tif (this.startupDraftText !== undefined) {\n\t\tthis.editor.setText(this.startupDraftText);\n\t\tthis.startupDraftText = undefined;\n\t\tthis.ui.requestRender();\n\t}\n};\n\nInteractiveModeBase.prototype.setupEditorSubmitHandler = function (this: InteractiveModeBase): void {\n\tthis.defaultEditor.onSubmit = async (text: string) => {\n\t\tif (!this.firstSubmitRecorded) {\n\t\t\tthis.firstSubmitRecorded = true;\n\t\t\trecordTimeSinceReset(\"interactive-first-submit\");\n\t\t}\n\t\t// pi-tui trims, expands pastes, and clears the editor before it calls\n\t\t// onSubmit, so the callback argument is already reduced. Prefer the buffer\n\t\t// CustomEditor snapshotted for this very dispatch, which is what the user\n\t\t// actually had, and fall back to the argument for other editors and for\n\t\t// tests that invoke onSubmit directly.\n\t\tconst submittedDraft = this.defaultEditor.takeSubmittedDraft?.() ?? text;\n\t\ttext = text.trim();\n\t\tif (!text) return;\n\n\t\tif (this.startupReplayActiveInput && this.startupReplayActiveInput.trim() !== text.trim()) {\n\t\t\tthis.startupReplayInputs.push(text);\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t\tthis.editor.setText(\"\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\t// Handle commands\n\t\t\tif (text === \"/settings\") {\n\t\t\t\tthis.showSettingsSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fast\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.showFastModeSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/scoped-models\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tthis.showModelsSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/model\" || text.startsWith(\"/model \")) {\n\t\t\t\tconst searchTerm = text.startsWith(\"/model \") ? text.slice(7).trim() : undefined;\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleModelCommand(searchTerm);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/thinking\" || text.startsWith(\"/thinking \")) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tthis.handleThinkingCommand(text.startsWith(\"/thinking \") ? text.slice(10).trim() : undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/export\" || text.startsWith(\"/export \")) {\n\t\t\t\tawait this.handleExportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/import\" || text.startsWith(\"/import \")) {\n\t\t\t\tawait this.handleImportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/share\") {\n\t\t\t\tawait this.handleShareCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/copy\") {\n\t\t\t\tawait this.handleCopyCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/name\" || text.startsWith(\"/name \")) {\n\t\t\t\tthis.handleNameCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/session\") {\n\t\t\t\tthis.handleSessionCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/changelog\") {\n\t\t\t\tthis.handleChangelogCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/atomic\" || text.startsWith(\"/atomic \")) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/hotkeys\") {\n\t\t\t\tthis.handleHotkeysCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fork\") {\n\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/clone\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleCloneCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/tree\") {\n\t\t\t\tthis.showTreeSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/trust\") {\n\t\t\t\tthis.showTrustSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/login(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleLoginCommand(text.slice(\"/login\".length).trim() || undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/logout\") {\n\t\t\t\tthis.showOAuthSelector(\"logout\");\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/new\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleClearCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/compact(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tif (text !== \"/compact\") {\n\t\t\t\t\tthis.showWarning(\"Usage: /compact\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// A manual request can take over automatic compaction, but a second manual\n\t\t\t\t// compaction or branch summary still has no safe independent owner.\n\t\t\t\tconst automaticCompaction =\n\t\t\t\t\tthis.session.compactionReason === \"threshold\" || this.session.compactionReason === \"overflow\";\n\t\t\t\tif (this.manualCompactionTakeoverPending || (this.compactionActive && !automaticCompaction)) {\n\t\t\t\t\tthis.showWarning(COMPACTION_ALREADY_IN_PROGRESS_WARNING);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait this.handleCompactCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/reload\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleReloadCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/debug\") {\n\t\t\t\tthis.handleDebugCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/arminsayshi\") {\n\t\t\t\tthis.handleArminSaysHi();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/dementedelves\") {\n\t\t\t\tthis.handleDementedDelves();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/resume\") {\n\t\t\t\tthis.showSessionSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/quit\" || text === \"/exit\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.shutdown();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (text.startsWith(\"/\") && this.deferredStartupPending) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\tawait yieldToEventLoop();\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Handle bash command (! for normal, !! for excluded from context)\n\t\t\tif (text.startsWith(\"!\")) {\n\t\t\t\tconst isExcluded = text.startsWith(\"!!\");\n\t\t\t\tconst command = isExcluded ? text.slice(2).trim() : text.slice(1).trim();\n\t\t\t\tif (command) {\n\t\t\t\t\tif (this.session.isBashRunning) {\n\t\t\t\t\t\tthis.showWarning(\"A bash command is already running. esc cancel first.\");\n\t\t\t\t\t\tthis.editor.setText(text);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tawait this.handleBashCommand(command, isExcluded);\n\t\t\t\t\tthis.isBashMode = false;\n\t\t\t\t\tthis.updateEditorBorderColor();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Queue input during compaction (extension commands execute immediately)\n\t\t\tif (this.compactionActive) {\n\t\t\t\tif (this.isExtensionCommand(text)) {\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\t\tawait this.session.prompt(text);\n\t\t\t\t} else {\n\t\t\t\t\tthis.queueCompactionMessage(text, \"steer\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If streaming, use prompt() with steer behavior\n\t\t\t// This handles extension commands (execute immediately), prompt template expansion, and queueing\n\t\t\tif (this.session.isStreaming && !this.session.queuedMessagesPaused) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text, { streamingBehavior: \"steer\" });\n\t\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Normal message submission\n\t\t\t// First, move any pending bash components to chat\n\t\t\tthis.flushPendingBashComponents();\n\t\t\t// The draft travels with this submission, never through shared state: a\n\t\t\t// later submission whose trimmed text is identical must not be able to\n\t\t\t// claim, or clear, this one's exact buffer.\n\t\t\tconst submission = { text, draft: submittedDraft };\n\n\t\t\tif (this.onInputCallback) {\n\t\t\t\tif (!text.startsWith(\"/\")) {\n\t\t\t\t\tthis.renderDeferredUserInput(text);\n\t\t\t\t}\n\t\t\t\tthis.onInputCallback(submission);\n\t\t\t} else {\n\t\t\t\tthis.pendingUserInputs.push(submission);\n\t\t\t}\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t} catch (error) {\n\t\t\t// Direct dispatch branches above hand text straight to the engine and\n\t\t\t// never reach runUserPromptTurn(), so this is the only place their send\n\t\t\t// failures can put the draft back. Anything else is not ours to absorb.\n\t\t\tif (!restoreFailedSubmissionDraft(this, error, submittedDraft)) throw error;\n\t\t} finally {\n\t\t\tthis.advanceStartupInputReplay?.(text);\n\t\t}\n\t};\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode-base.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode-base.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode-base.ts"],"names":[],"mappings":"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"}