@ai-agent-forge/agent-forge 0.88.2 → 0.88.3

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 (453) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +1 -1
  3. package/bundled-plugins/agent-loop-policy/agent-forge.json +1 -1
  4. package/bundled-plugins/agent-loop-policy/plugin.json +1 -1
  5. package/bundled-plugins/coding-tools/agent-forge.json +1 -1
  6. package/bundled-plugins/coding-tools/plugin.json +1 -1
  7. package/bundled-plugins/compaction-policy/agent-forge.json +1 -1
  8. package/bundled-plugins/compaction-policy/plugin.json +1 -1
  9. package/bundled-plugins/overflow-policy/agent-forge.json +1 -1
  10. package/bundled-plugins/overflow-policy/plugin.json +1 -1
  11. package/bundled-plugins/provider-failover/agent-forge.json +1 -1
  12. package/bundled-plugins/provider-failover/plugin.json +1 -1
  13. package/bundled-plugins/retry-policy/agent-forge.json +1 -1
  14. package/bundled-plugins/retry-policy/plugin.json +1 -1
  15. package/dist/artifacts/paged-read.d.ts +6 -1
  16. package/dist/artifacts/paged-read.d.ts.map +1 -1
  17. package/dist/artifacts/paged-read.js.map +1 -1
  18. package/dist/bundle/.build-manifest.json +240 -230
  19. package/dist/bundle/chunks/{anthropic-messages-PLAKXR73.js → anthropic-messages-3FJHRAJL.js} +2 -2
  20. package/dist/bundle/chunks/anthropic.js +1 -1
  21. package/dist/bundle/chunks/{azure-openai-responses-OUWQ2AZD.js → azure-openai-responses-GCL47IDS.js} +1 -1
  22. package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
  23. package/dist/bundle/chunks/{chunk-6F5JWGKE.js → chunk-32YDZI4J.js} +1 -1
  24. package/dist/bundle/chunks/{chunk-LSP24WNH.js → chunk-755VNWIF.js} +12 -12
  25. package/dist/bundle/chunks/{chunk-HTC5K5SM.js → chunk-B42Y2VME.js} +94 -89
  26. package/dist/bundle/chunks/{chunk-DRQDKNXA.js → chunk-BVVSHK6W.js} +1 -1
  27. package/dist/bundle/chunks/{chunk-6R7UI4IY.js → chunk-QDLOMKF6.js} +1 -1
  28. package/dist/bundle/chunks/{chunk-44I47ACN.js → chunk-V3ACW7VD.js} +1 -1
  29. package/dist/bundle/chunks/{google-generative-ai-DLII6DAT.js → google-generative-ai-6BMXWA44.js} +1 -1
  30. package/dist/bundle/chunks/{google-vertex-G7BZL7GM.js → google-vertex-6H7NLRTK.js} +1 -1
  31. package/dist/bundle/chunks/image-resize-worker.js +1 -1
  32. package/dist/bundle/chunks/{mistral-conversations-JXUK24ID.js → mistral-conversations-IXUHSFSJ.js} +1 -1
  33. package/dist/bundle/chunks/{openai-codex-responses-5GSGFIPG.js → openai-codex-responses-YHUAEVCM.js} +1 -1
  34. package/dist/bundle/chunks/openai-codex.js +1 -1
  35. package/dist/bundle/chunks/{openai-completions-EI2I6DTG.js → openai-completions-ULQCFC72.js} +1 -1
  36. package/dist/bundle/chunks/openai-responses-NLLAJDPS.js +2 -0
  37. package/dist/bundle/chunks/{openrouter-images-G4GQRUSG.js → openrouter-images-GZZQZXMS.js} +1 -1
  38. package/dist/bundle/chunks/openrouter.js +1 -1
  39. package/dist/bundle/chunks/{pi-messages-PWU2VJMR.js → pi-messages-EJTI2EJ3.js} +1 -1
  40. package/dist/bundle/chunks/virtual-modules-TQWEGNNZ.js +5 -0
  41. package/dist/bundle/cli.js +1 -1
  42. package/dist/bundle/client.js +1 -1
  43. package/dist/bundle/index.js +1 -1
  44. package/dist/bundle/rpc-entry.js +1 -1
  45. package/dist/cli/args.d.ts +0 -1
  46. package/dist/cli/args.d.ts.map +1 -1
  47. package/dist/cli/args.js +1 -4
  48. package/dist/cli/args.js.map +1 -1
  49. package/dist/cli/config-selector.d.ts.map +1 -1
  50. package/dist/cli/config-selector.js +1 -1
  51. package/dist/cli/config-selector.js.map +1 -1
  52. package/dist/cli/experimental/cli.d.ts +3 -3
  53. package/dist/cli/experimental/cli.d.ts.map +1 -1
  54. package/dist/cli/experimental/cli.js +2 -2
  55. package/dist/cli/experimental/cli.js.map +1 -1
  56. package/dist/cli/experimental/commands/agent-forge.d.ts +15 -0
  57. package/dist/cli/experimental/commands/agent-forge.d.ts.map +1 -0
  58. package/dist/cli/experimental/commands/{pi.js → agent-forge.js} +4 -4
  59. package/dist/cli/experimental/commands/agent-forge.js.map +1 -0
  60. package/dist/cli/startup-ui.d.ts.map +1 -1
  61. package/dist/cli/startup-ui.js +1 -1
  62. package/dist/cli/startup-ui.js.map +1 -1
  63. package/dist/config.d.ts +4 -4
  64. package/dist/config.d.ts.map +1 -1
  65. package/dist/config.js +7 -7
  66. package/dist/config.js.map +1 -1
  67. package/dist/core/agent-forge-manifest.d.ts +7 -0
  68. package/dist/core/agent-forge-manifest.d.ts.map +1 -0
  69. package/dist/core/{pi-manifest.js → agent-forge-manifest.js} +4 -4
  70. package/dist/core/agent-forge-manifest.js.map +1 -0
  71. package/dist/core/agent-session-compaction.d.ts +1 -1
  72. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  73. package/dist/core/agent-session-compaction.js +3 -3
  74. package/dist/core/agent-session-compaction.js.map +1 -1
  75. package/dist/core/agent-session-lifecycle.d.ts.map +1 -1
  76. package/dist/core/agent-session-lifecycle.js +12 -1
  77. package/dist/core/agent-session-lifecycle.js.map +1 -1
  78. package/dist/core/agent-session-projection.d.ts.map +1 -1
  79. package/dist/core/agent-session-projection.js +3 -3
  80. package/dist/core/agent-session-projection.js.map +1 -1
  81. package/dist/core/agent-session-services.d.ts +1 -1
  82. package/dist/core/agent-session-services.d.ts.map +1 -1
  83. package/dist/core/agent-session-services.js +1 -1
  84. package/dist/core/agent-session-services.js.map +1 -1
  85. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  86. package/dist/core/compaction/branch-summarization.js +1 -1
  87. package/dist/core/compaction/branch-summarization.js.map +1 -1
  88. package/dist/core/experimental.d.ts.map +1 -1
  89. package/dist/core/experimental.js +1 -3
  90. package/dist/core/experimental.js.map +1 -1
  91. package/dist/core/extensions/capability-runtime-store.d.ts +20 -1
  92. package/dist/core/extensions/capability-runtime-store.d.ts.map +1 -1
  93. package/dist/core/extensions/capability-runtime-store.js +67 -0
  94. package/dist/core/extensions/capability-runtime-store.js.map +1 -1
  95. package/dist/core/extensions/capability-runtime-types.d.ts +14 -0
  96. package/dist/core/extensions/capability-runtime-types.d.ts.map +1 -1
  97. package/dist/core/extensions/capability-runtime-types.js +7 -1
  98. package/dist/core/extensions/capability-runtime-types.js.map +1 -1
  99. package/dist/core/extensions/capability-runtime.d.ts.map +1 -1
  100. package/dist/core/extensions/capability-runtime.js +144 -42
  101. package/dist/core/extensions/capability-runtime.js.map +1 -1
  102. package/dist/core/extensions/virtual-modules.d.ts.map +1 -1
  103. package/dist/core/extensions/virtual-modules.js +6 -1
  104. package/dist/core/extensions/virtual-modules.js.map +1 -1
  105. package/dist/core/facade/coding-agent-facade.d.ts +1 -1
  106. package/dist/core/facade/coding-agent-facade.d.ts.map +1 -1
  107. package/dist/core/facade/coding-agent-facade.js +1 -1
  108. package/dist/core/facade/coding-agent-facade.js.map +1 -1
  109. package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts +1 -1
  110. package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts.map +1 -1
  111. package/dist/core/i18n/locales/zh-cn/core-contract-final.js +3 -3
  112. package/dist/core/i18n/locales/zh-cn/core-contract-final.js.map +1 -1
  113. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.d.ts.map +1 -1
  114. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js +1 -1
  115. package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js.map +1 -1
  116. package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -1
  117. package/dist/core/i18n/locales/zh-cn/core-errors.js +1 -1
  118. package/dist/core/i18n/locales/zh-cn/core-errors.js.map +1 -1
  119. package/dist/core/i18n/locales/zh-cn/tui-components-misc.d.ts.map +1 -1
  120. package/dist/core/i18n/locales/zh-cn/tui-components-misc.js +2 -0
  121. package/dist/core/i18n/locales/zh-cn/tui-components-misc.js.map +1 -1
  122. package/dist/core/model-resolver.d.ts +2 -0
  123. package/dist/core/model-resolver.d.ts.map +1 -1
  124. package/dist/core/model-resolver.js +4 -1
  125. package/dist/core/model-resolver.js.map +1 -1
  126. package/dist/core/package-resource-collection.d.ts.map +1 -1
  127. package/dist/core/package-resource-collection.js +5 -5
  128. package/dist/core/package-resource-collection.js.map +1 -1
  129. package/dist/core/provider-composer.d.ts.map +1 -1
  130. package/dist/core/provider-composer.js +3 -3
  131. package/dist/core/provider-composer.js.map +1 -1
  132. package/dist/core/resource-loader.d.ts.map +1 -1
  133. package/dist/core/resource-loader.js +1 -1
  134. package/dist/core/resource-loader.js.map +1 -1
  135. package/dist/core/sdk.d.ts +1 -1
  136. package/dist/core/sdk.d.ts.map +1 -1
  137. package/dist/core/sdk.js +6 -7
  138. package/dist/core/sdk.js.map +1 -1
  139. package/dist/core/session-manager.d.ts.map +1 -1
  140. package/dist/core/session-manager.js +4 -4
  141. package/dist/core/session-manager.js.map +1 -1
  142. package/dist/core/settings-manager.d.ts.map +1 -1
  143. package/dist/core/settings-manager.js +5 -10
  144. package/dist/core/settings-manager.js.map +1 -1
  145. package/dist/core/timings.d.ts.map +1 -1
  146. package/dist/core/timings.js +1 -3
  147. package/dist/core/timings.js.map +1 -1
  148. package/dist/core/tools/render-utils.d.ts +1 -1
  149. package/dist/core/tools/render-utils.d.ts.map +1 -1
  150. package/dist/core/tools/render-utils.js.map +1 -1
  151. package/dist/core/tools/tool-definition.d.ts +1 -1
  152. package/dist/core/tools/tool-definition.d.ts.map +1 -1
  153. package/dist/core/tools/tool-definition.js.map +1 -1
  154. package/dist/core/trace-retention.d.ts +16 -1
  155. package/dist/core/trace-retention.d.ts.map +1 -1
  156. package/dist/core/trace-retention.js +43 -20
  157. package/dist/core/trace-retention.js.map +1 -1
  158. package/dist/export-html/ansi-to-html.d.ts.map +1 -0
  159. package/dist/export-html/ansi-to-html.js.map +1 -0
  160. package/dist/{core/export-html → export-html}/index.d.ts +1 -1
  161. package/dist/export-html/index.d.ts.map +1 -0
  162. package/dist/{core/export-html → export-html}/index.js +5 -5
  163. package/dist/export-html/index.js.map +1 -0
  164. package/dist/{core/export-html → export-html}/tool-renderer.d.ts +2 -2
  165. package/dist/export-html/tool-renderer.d.ts.map +1 -0
  166. package/dist/export-html/tool-renderer.js.map +1 -0
  167. package/dist/{modes/interactive → host}/model-catalog-refresh.d.ts +1 -1
  168. package/dist/host/model-catalog-refresh.d.ts.map +1 -0
  169. package/dist/{modes/interactive → host}/model-catalog-refresh.js +1 -1
  170. package/dist/host/model-catalog-refresh.js.map +1 -0
  171. package/dist/index.d.ts +5 -5
  172. package/dist/index.d.ts.map +1 -1
  173. package/dist/index.js +12 -12
  174. package/dist/index.js.map +1 -1
  175. package/dist/main.d.ts.map +1 -1
  176. package/dist/main.js +25 -14
  177. package/dist/main.js.map +1 -1
  178. package/dist/modes/interactive/components/agents-view.d.ts.map +1 -1
  179. package/dist/modes/interactive/components/agents-view.js +1 -1
  180. package/dist/modes/interactive/components/agents-view.js.map +1 -1
  181. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  182. package/dist/modes/interactive/components/armin.js +1 -1
  183. package/dist/modes/interactive/components/armin.js.map +1 -1
  184. package/dist/modes/interactive/components/assistant-message.d.ts +3 -0
  185. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  186. package/dist/modes/interactive/components/assistant-message.js +83 -24
  187. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  188. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  189. package/dist/modes/interactive/components/bash-execution.js +1 -1
  190. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  191. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  192. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  193. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  194. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  195. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  196. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  197. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  198. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  199. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  200. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  201. package/dist/modes/interactive/components/config-selector.js +1 -1
  202. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  203. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  204. package/dist/modes/interactive/components/custom-entry.js +1 -1
  205. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  206. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  207. package/dist/modes/interactive/components/custom-message.js +1 -1
  208. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  209. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  210. package/dist/modes/interactive/components/daxnuts.js +1 -1
  211. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  212. package/dist/modes/interactive/components/dialog-editor.d.ts.map +1 -1
  213. package/dist/modes/interactive/components/dialog-editor.js +1 -1
  214. package/dist/modes/interactive/components/dialog-editor.js.map +1 -1
  215. package/dist/modes/interactive/components/dialog-input.d.ts.map +1 -1
  216. package/dist/modes/interactive/components/dialog-input.js +1 -1
  217. package/dist/modes/interactive/components/dialog-input.js.map +1 -1
  218. package/dist/modes/interactive/components/dialog-selector.d.ts.map +1 -1
  219. package/dist/modes/interactive/components/dialog-selector.js +1 -1
  220. package/dist/modes/interactive/components/dialog-selector.js.map +1 -1
  221. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  222. package/dist/modes/interactive/components/diff.js +1 -1
  223. package/dist/modes/interactive/components/diff.js.map +1 -1
  224. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  225. package/dist/modes/interactive/components/dynamic-border.js +1 -1
  226. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  227. package/dist/modes/interactive/components/first-time-setup.d.ts +1 -1
  228. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  229. package/dist/modes/interactive/components/first-time-setup.js +1 -1
  230. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  231. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  232. package/dist/modes/interactive/components/footer.js +1 -1
  233. package/dist/modes/interactive/components/footer.js.map +1 -1
  234. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  235. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  236. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  237. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  238. package/dist/modes/interactive/components/login-dialog.js +1 -1
  239. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  240. package/dist/modes/interactive/components/mermaid.d.ts +1 -1
  241. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  242. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  243. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  244. package/dist/modes/interactive/components/model-selector.js +2 -2
  245. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  246. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  247. package/dist/modes/interactive/components/oauth-selector.js +1 -1
  248. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  249. package/dist/modes/interactive/components/plugin-manager-entry.d.ts.map +1 -1
  250. package/dist/modes/interactive/components/plugin-manager-entry.js +1 -1
  251. package/dist/modes/interactive/components/plugin-manager-entry.js.map +1 -1
  252. package/dist/modes/interactive/components/plugin-selection-entry.d.ts.map +1 -1
  253. package/dist/modes/interactive/components/plugin-selection-entry.js +1 -1
  254. package/dist/modes/interactive/components/plugin-selection-entry.js.map +1 -1
  255. package/dist/modes/interactive/components/queue-manager-selector.d.ts.map +1 -1
  256. package/dist/modes/interactive/components/queue-manager-selector.js +1 -1
  257. package/dist/modes/interactive/components/queue-manager-selector.js.map +1 -1
  258. package/dist/modes/interactive/components/render-types.d.ts +1 -1
  259. package/dist/modes/interactive/components/render-types.d.ts.map +1 -1
  260. package/dist/modes/interactive/components/render-types.js.map +1 -1
  261. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  262. package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
  263. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  264. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  265. package/dist/modes/interactive/components/session-selector.js +2 -2
  266. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  267. package/dist/modes/interactive/components/settings-selector.d.ts +1 -1
  268. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  269. package/dist/modes/interactive/components/settings-selector.js +1 -1
  270. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  271. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  272. package/dist/modes/interactive/components/settings-submenu.js +1 -1
  273. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  274. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  275. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  276. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  277. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  278. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  279. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  280. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  281. package/dist/modes/interactive/components/status-indicator.js +1 -1
  282. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  283. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  284. package/dist/modes/interactive/components/theme-selector.js +1 -1
  285. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  286. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  287. package/dist/modes/interactive/components/thinking-selector.js +1 -1
  288. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  289. package/dist/modes/interactive/components/tool-execution.d.ts +2 -0
  290. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  291. package/dist/modes/interactive/components/tool-execution.js +96 -4
  292. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  293. package/dist/modes/interactive/components/tool-run-group.d.ts.map +1 -1
  294. package/dist/modes/interactive/components/tool-run-group.js +1 -1
  295. package/dist/modes/interactive/components/tool-run-group.js.map +1 -1
  296. package/dist/modes/interactive/components/tree-list.d.ts.map +1 -1
  297. package/dist/modes/interactive/components/tree-list.js +1 -1
  298. package/dist/modes/interactive/components/tree-list.js.map +1 -1
  299. package/dist/modes/interactive/components/tree-render.d.ts.map +1 -1
  300. package/dist/modes/interactive/components/tree-render.js +1 -1
  301. package/dist/modes/interactive/components/tree-render.js.map +1 -1
  302. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  303. package/dist/modes/interactive/components/tree-selector.js +1 -1
  304. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  305. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  306. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  307. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  308. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  309. package/dist/modes/interactive/components/user-message.js +1 -1
  310. package/dist/modes/interactive/components/user-message.js.map +1 -1
  311. package/dist/modes/interactive/components/workflow-view.d.ts.map +1 -1
  312. package/dist/modes/interactive/components/workflow-view.js +1 -1
  313. package/dist/modes/interactive/components/workflow-view.js.map +1 -1
  314. package/dist/modes/interactive/interactive-auth.d.ts +1 -1
  315. package/dist/modes/interactive/interactive-auth.d.ts.map +1 -1
  316. package/dist/modes/interactive/interactive-auth.js +1 -1
  317. package/dist/modes/interactive/interactive-auth.js.map +1 -1
  318. package/dist/modes/interactive/interactive-commands.d.ts +123 -6
  319. package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
  320. package/dist/modes/interactive/interactive-commands.js +691 -4
  321. package/dist/modes/interactive/interactive-commands.js.map +1 -1
  322. package/dist/modes/interactive/interactive-events.d.ts +174 -0
  323. package/dist/modes/interactive/interactive-events.d.ts.map +1 -0
  324. package/dist/modes/interactive/interactive-events.js +704 -0
  325. package/dist/modes/interactive/interactive-events.js.map +1 -0
  326. package/dist/modes/interactive/interactive-format.d.ts.map +1 -1
  327. package/dist/modes/interactive/interactive-format.js +1 -1
  328. package/dist/modes/interactive/interactive-format.js.map +1 -1
  329. package/dist/modes/interactive/interactive-lifecycle.d.ts +94 -0
  330. package/dist/modes/interactive/interactive-lifecycle.d.ts.map +1 -0
  331. package/dist/modes/interactive/interactive-lifecycle.js +177 -0
  332. package/dist/modes/interactive/interactive-lifecycle.js.map +1 -0
  333. package/dist/modes/interactive/interactive-mode.d.ts +240 -133
  334. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  335. package/dist/modes/interactive/interactive-mode.js +251 -2159
  336. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  337. package/dist/modes/interactive/interactive-queues.d.ts +96 -0
  338. package/dist/modes/interactive/interactive-queues.d.ts.map +1 -0
  339. package/dist/modes/interactive/interactive-queues.js +183 -0
  340. package/dist/modes/interactive/interactive-queues.js.map +1 -0
  341. package/dist/modes/interactive/interactive-selectors.d.ts +95 -5
  342. package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -1
  343. package/dist/modes/interactive/interactive-selectors.js +517 -6
  344. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  345. package/dist/modes/interactive/startup-services.d.ts +31 -0
  346. package/dist/modes/interactive/startup-services.d.ts.map +1 -0
  347. package/dist/modes/interactive/startup-services.js +123 -0
  348. package/dist/modes/interactive/startup-services.js.map +1 -0
  349. package/dist/modes/memory-preheat.d.ts +11 -0
  350. package/dist/modes/memory-preheat.d.ts.map +1 -0
  351. package/dist/modes/memory-preheat.js +20 -0
  352. package/dist/modes/memory-preheat.js.map +1 -0
  353. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  354. package/dist/modes/rpc/rpc-mode.js +3 -1
  355. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  356. package/dist/remote/server-assembly.d.ts.map +1 -1
  357. package/dist/remote/server-assembly.js +7 -2
  358. package/dist/remote/server-assembly.js.map +1 -1
  359. package/dist/suites/builtin-suites.d.ts.map +1 -0
  360. package/dist/suites/builtin-suites.js.map +1 -0
  361. package/dist/suites/resolved-agent-profile.d.ts.map +1 -0
  362. package/dist/suites/resolved-agent-profile.js.map +1 -0
  363. package/dist/suites/suite-lifecycle.d.ts.map +1 -0
  364. package/dist/suites/suite-lifecycle.js.map +1 -0
  365. package/dist/suites/suite-loader.d.ts.map +1 -0
  366. package/dist/suites/suite-loader.js.map +1 -0
  367. package/dist/{modes/interactive/theme → theme}/dark.json +1 -1
  368. package/dist/{modes/interactive/theme → theme}/light.json +1 -1
  369. package/dist/{modes/interactive/theme → theme}/theme-controller.d.ts +1 -1
  370. package/dist/theme/theme-controller.d.ts.map +1 -0
  371. package/dist/{modes/interactive/theme → theme}/theme-controller.js +1 -1
  372. package/dist/theme/theme-controller.js.map +1 -0
  373. package/dist/{modes/interactive/theme → theme}/theme.d.ts +1 -1
  374. package/dist/theme/theme.d.ts.map +1 -0
  375. package/dist/{modes/interactive/theme → theme}/theme.js +5 -5
  376. package/dist/theme/theme.js.map +1 -0
  377. package/docs/compaction.md +7 -7
  378. package/docs/environment-variables.md +10 -4
  379. package/docs/keybindings.md +3 -3
  380. package/docs/models.md +17 -17
  381. package/docs/packages.md +1 -1
  382. package/docs/prompt-templates.md +1 -1
  383. package/docs/rpc.md +2 -2
  384. package/docs/sdk.md +5 -5
  385. package/docs/session-format.md +3 -3
  386. package/docs/settings.md +15 -1
  387. package/docs/shell-aliases.md +1 -1
  388. package/docs/skills.md +1 -1
  389. package/docs/terminal-setup.md +17 -17
  390. package/docs/themes.md +5 -5
  391. package/docs/tmux.md +4 -4
  392. package/docs/tui.md +1 -1
  393. package/docs/usage.md +292 -292
  394. package/docs/windows.md +1 -1
  395. package/examples/extensions/bash-spawn-hook/index.ts +1 -1
  396. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  397. package/examples/extensions/mcp-stdio/index.d.ts +64 -0
  398. package/examples/extensions/mcp-stdio/index.d.ts.map +1 -0
  399. package/examples/extensions/mcp-stdio/index.js +292 -0
  400. package/examples/extensions/mcp-stdio/index.js.map +1 -0
  401. package/examples/extensions/with-deps/package-lock.json +2 -2
  402. package/examples/extensions/with-deps/package.json +1 -6
  403. package/examples/extensions/with-deps/plugin.json +1 -1
  404. package/package.json +2 -2
  405. package/dist/bundle/chunks/openai-responses-AUJQ3NWT.js +0 -2
  406. package/dist/bundle/chunks/virtual-modules-MRXD3RWG.js +0 -5
  407. package/dist/cli/experimental/commands/pi.d.ts +0 -15
  408. package/dist/cli/experimental/commands/pi.d.ts.map +0 -1
  409. package/dist/cli/experimental/commands/pi.js.map +0 -1
  410. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  411. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  412. package/dist/core/export-html/index.d.ts.map +0 -1
  413. package/dist/core/export-html/index.js.map +0 -1
  414. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  415. package/dist/core/export-html/tool-renderer.js.map +0 -1
  416. package/dist/core/pi-manifest.d.ts +0 -7
  417. package/dist/core/pi-manifest.d.ts.map +0 -1
  418. package/dist/core/pi-manifest.js.map +0 -1
  419. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +0 -1
  420. package/dist/modes/interactive/model-catalog-refresh.js.map +0 -1
  421. package/dist/modes/interactive/theme/theme-controller.d.ts.map +0 -1
  422. package/dist/modes/interactive/theme/theme-controller.js.map +0 -1
  423. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  424. package/dist/modes/interactive/theme/theme.js.map +0 -1
  425. package/dist/profiles/builtin-suites.d.ts.map +0 -1
  426. package/dist/profiles/builtin-suites.js.map +0 -1
  427. package/dist/profiles/resolved-agent-profile.d.ts.map +0 -1
  428. package/dist/profiles/resolved-agent-profile.js.map +0 -1
  429. package/dist/profiles/suite-lifecycle.d.ts.map +0 -1
  430. package/dist/profiles/suite-lifecycle.js.map +0 -1
  431. package/dist/profiles/suite-loader.d.ts.map +0 -1
  432. package/dist/profiles/suite-loader.js.map +0 -1
  433. package/dist/utils/deprecation.d.ts +0 -4
  434. package/dist/utils/deprecation.d.ts.map +0 -1
  435. package/dist/utils/deprecation.js +0 -13
  436. package/dist/utils/deprecation.js.map +0 -1
  437. /package/dist/{core/export-html → export-html}/ansi-to-html.d.ts +0 -0
  438. /package/dist/{core/export-html → export-html}/ansi-to-html.js +0 -0
  439. /package/dist/{core/export-html → export-html}/template.css +0 -0
  440. /package/dist/{core/export-html → export-html}/template.html +0 -0
  441. /package/dist/{core/export-html → export-html}/template.js +0 -0
  442. /package/dist/{core/export-html → export-html}/tool-renderer.js +0 -0
  443. /package/dist/{core/export-html → export-html}/vendor/highlight.min.js +0 -0
  444. /package/dist/{core/export-html → export-html}/vendor/marked.min.js +0 -0
  445. /package/dist/{profiles → suites}/builtin-suites.d.ts +0 -0
  446. /package/dist/{profiles → suites}/builtin-suites.js +0 -0
  447. /package/dist/{profiles → suites}/resolved-agent-profile.d.ts +0 -0
  448. /package/dist/{profiles → suites}/resolved-agent-profile.js +0 -0
  449. /package/dist/{profiles → suites}/suite-lifecycle.d.ts +0 -0
  450. /package/dist/{profiles → suites}/suite-lifecycle.js +0 -0
  451. /package/dist/{profiles → suites}/suite-loader.d.ts +0 -0
  452. /package/dist/{profiles → suites}/suite-loader.js +0 -0
  453. /package/dist/{modes/interactive/theme → theme}/theme-schema.json +0 -0
@@ -2,23 +2,31 @@
2
2
  * Interactive mode for the coding agent.
3
3
  * Handles TUI rendering and user interaction, delegating business logic to AgentSession.
4
4
  */
5
- import type { ThinkingLevel } from "@agent-forge/agent-core";
5
+ import type { AgentMessage, ThinkingLevel } from "@agent-forge/agent-core";
6
6
  import { type AuthEvent, type AuthPrompt } from "@agent-forge/ai";
7
- import type { Api, ImageContent, Model } from "@agent-forge/ai/compat";
8
- import type { AutocompleteProvider, EditorComponent, Terminal, WheelScrollLines } from "@agent-forge/tui";
7
+ import type { Api, AssistantMessage, ImageContent, Message, Model } from "@agent-forge/ai/compat";
8
+ import type { AutocompleteProvider, EditorComponent, MarkdownTheme, Terminal, WheelScrollLines } from "@agent-forge/tui";
9
9
  import { type Component, Container, type TUI, TuiAltScreen, TuiMainScreen } from "@agent-forge/tui";
10
- import { type AgentSessionRuntime } from "../../core/agent-session-runtime.ts";
10
+ import type { AgentSession, AgentSessionEvent } from "../../core/agent-session.ts";
11
+ import type { AgentSessionRuntime } from "../../core/agent-session-runtime.ts";
11
12
  import type { AgentSessionRuntimeDiagnostic } from "../../core/agent-session-services.ts";
13
+ import type { CacheMiss } from "../../core/cache-stats.ts";
12
14
  import type { InteractionDialogOptions, InteractionHostV1 } from "../../core/extensions/index.ts";
13
15
  import type { ModelAuthRuntime } from "../../core/facade/coding-agent-facade.ts";
14
16
  import { type CodingAgentFacadeV1, type CodingAgentRuntimeFacadeV1 } from "../../core/facade/index.ts";
15
17
  import { FooterDataProvider } from "../../core/footer-data-provider.ts";
16
- import { KeybindingsManager } from "../../core/keybindings.ts";
17
- import type { ThemeMetaV1 } from "../../core/resource-loader.ts";
18
+ import { type AppKeybinding, KeybindingsManager } from "../../core/keybindings.ts";
19
+ import { type MissingSessionCwdError } from "../../core/session-cwd.ts";
20
+ import type { SessionEntry } from "../../core/session-manager.ts";
18
21
  import type { FullscreenExitOutput, SettingsManager, TuiMode } from "../../core/settings-manager.ts";
19
22
  import type { SourceInfo } from "../../core/source-info.ts";
23
+ import type { ModelCatalogRuntime } from "../../host/model-catalog-refresh.ts";
20
24
  import type { MetricsSnapshotV1, ObservabilityMetricsOptions } from "../../plugins/observability-types.ts";
21
- import { type LatestRelease } from "../../utils/version-check.ts";
25
+ import { Theme } from "../../theme/theme.ts";
26
+ import { InteractiveThemeController } from "../../theme/theme-controller.ts";
27
+ import type { LatestRelease } from "../../utils/version-check.ts";
28
+ import { AssistantMessageComponent } from "./components/assistant-message.ts";
29
+ import type { BashExecutionComponent } from "./components/bash-execution.ts";
22
30
  import { CustomEditor } from "./components/custom-editor.ts";
23
31
  import type { DialogEditorComponent } from "./components/dialog-editor.ts";
24
32
  import type { DialogInputComponent } from "./components/dialog-input.ts";
@@ -26,35 +34,26 @@ import type { DialogSelectorComponent } from "./components/dialog-selector.ts";
26
34
  import { FooterComponent } from "./components/footer.ts";
27
35
  import type { LoginDialogComponent } from "./components/login-dialog.ts";
28
36
  import type { AuthSelectorProvider } from "./components/oauth-selector.ts";
29
- import { type WorkingIndicatorOptions } from "./components/status-indicator.ts";
37
+ import type { MarkdownTransformer } from "./components/render-types.ts";
38
+ import { type StatusIndicator, type WorkingIndicatorOptions } from "./components/status-indicator.ts";
39
+ import type { ToolExecutionComponent } from "./components/tool-execution.ts";
40
+ import type { ToolRunGroupComponent } from "./components/tool-run-group.ts";
30
41
  import * as authFlow from "./interactive-auth.ts";
42
+ import { type CommandHandlersHost } from "./interactive-commands.ts";
31
43
  import { type DialogUiHost } from "./interactive-dialog-ui.ts";
44
+ import * as eventsFlow from "./interactive-events.ts";
45
+ import * as lifecycleFlow from "./interactive-lifecycle.ts";
46
+ import * as queuesFlow from "./interactive-queues.ts";
32
47
  import * as selectorsFlow from "./interactive-selectors.ts";
33
- import { type ModelCatalogRuntime } from "./model-catalog-refresh.ts";
34
- import { Theme } from "./theme/theme.ts";
48
+ import { type StartupBackgroundCheckHost } from "./startup-services.ts";
49
+ export { buildRegisteredThemes } from "./interactive-commands.ts";
35
50
  export { mapLegacyDialogResultToOutcome } from "./interactive-dialog-ui.ts";
36
- /**
37
- * Rebuilds real Theme instances from the resource loader's ThemeMetaV1
38
- * projection for the theme registry (B-S2b v1). Registration points
39
- * (constructor, runtime session start, reload) need loadable instances —
40
- * setRegisteredThemes stores what it is given and getThemeByName returns the
41
- * registered instance first — while the loader surface now projects only
42
- * metadata. Re-loading is synchronous and deterministic per sourcePath;
43
- * theme names come from the same JSON the loader parsed, so meta.name ===
44
- * Theme.name and the registry keeps its own name-filter/dedupe semantics.
45
- *
46
- * Contract: a meta without a sourcePath (or one whose file no longer parses)
47
- * throws — themesOverride host inputs must always carry a loadable
48
- * sourcePath. This adds one extra parse per theme at registration time
49
- * (constructor / session start / reload, not per turn).
50
- */
51
- export declare function buildRegisteredThemes(themes: readonly ThemeMetaV1[]): Theme[];
52
51
  /**
53
52
  * Session read view consumed by formatResumeCommand: the subset of
54
53
  * session-manager reads the command needs. Satisfied by the runtime facade
55
54
  * (structural) and by real SessionManager instances.
56
55
  */
57
- interface ResumeCommandSessionReads {
56
+ export interface ResumeCommandSessionReads {
58
57
  isPersisted(): boolean;
59
58
  getSessionFile(): string | undefined;
60
59
  usesDefaultSessionDir(): boolean;
@@ -143,9 +142,10 @@ export declare class ProviderFailoverTicker {
143
142
  refresh(): void;
144
143
  dispose(): void;
145
144
  }
146
- export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHost, selectorsFlow.SelectorsHost {
145
+ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHost, selectorsFlow.SelectorsHost, StartupBackgroundCheckHost, CommandHandlersHost, queuesFlow.QueuesHost, lifecycleFlow.LifecycleHost, eventsFlow.EventsHost {
147
146
  private runtimeHost;
148
- private renderer;
147
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
148
+ renderer: TuiMainScreen | TuiAltScreen;
149
149
  /** Host-visible for ./interactive-dialog-ui.ts (S5 slice 2). */
150
150
  ui: TUI;
151
151
  private mainScreenRenderState;
@@ -155,8 +155,10 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
155
155
  private documentContainer;
156
156
  private transcriptScrollView;
157
157
  private fullscreenLayoutRoot;
158
- private pendingMessagesContainer;
159
- private statusContainer;
158
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
159
+ pendingMessagesContainer: Container;
160
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
161
+ statusContainer: Container;
160
162
  /** Host-visible for ./interactive-dialog-ui.ts (S5 slice 2). */
161
163
  defaultEditor: CustomEditor;
162
164
  /** Host-visible for ./interactive-dialog-ui.ts (S5 slice 2). */
@@ -176,8 +178,10 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
176
178
  * Re-renders the footer once per second while the provider failover breaker is
177
179
  * open (§4.7 Phase 3). Optional-typed to match the prototype-based test stubs
178
180
  * (constructor always assigns it on real instances).
181
+ *
182
+ * Host-visible for ./interactive-events.ts (拆分 slice 5): per-event refresh.
179
183
  */
180
- private failoverTicker;
184
+ failoverTicker: ProviderFailoverTicker | undefined;
181
185
  /** Host-visible for ./interactive-dialog-ui.ts (S5 slice 2). */
182
186
  footerContainer: Container;
183
187
  /** Host-visible for ./interactive-dialog-ui.ts (S5 slice 2). */
@@ -185,18 +189,23 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
185
189
  /** Host-visible for ./interactive-dialog-ui.ts (S5 slice 2). */
186
190
  keybindings: KeybindingsManager;
187
191
  private version;
188
- private isInitialized;
192
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
193
+ isInitialized: boolean;
189
194
  private onInputCallback?;
190
195
  private pendingUserInputs;
191
- private activeStatusIndicator;
196
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
197
+ activeStatusIndicator: StatusIndicator | undefined;
192
198
  private readonly idleStatus;
193
199
  private workingMessage;
194
- private workingVisible;
200
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
201
+ workingVisible: boolean;
195
202
  private workingIndicatorOptions;
196
203
  private readonly defaultWorkingMessage;
197
204
  private readonly defaultHiddenThinkingLabel;
198
- private hiddenThinkingLabel;
199
- private lastSigintTime;
205
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
206
+ hiddenThinkingLabel: string;
207
+ /** Host-visible for ./interactive-lifecycle.ts (拆分 slice 4): double-Ctrl+C exit window. */
208
+ lastSigintTime: number;
200
209
  private lastEscapeTime;
201
210
  private changelogMarkdown;
202
211
  private startupNoticesShown;
@@ -204,24 +213,41 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
204
213
  private lastStatusSpacer;
205
214
  private lastStatusText;
206
215
  private managedToolStatusStarted;
207
- private streamingComponent;
208
- private streamingMessage;
209
- private pendingTools;
210
- private activeToolRunGroup;
216
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
217
+ streamingComponent: AssistantMessageComponent | undefined;
218
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
219
+ streamingMessage: AssistantMessage | undefined;
220
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
221
+ pendingTools: Map<string, ToolExecutionComponent>;
222
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
223
+ activeToolRunGroup: ToolRunGroupComponent | undefined;
211
224
  /** Host-visible for ./interactive-dialog-ui.ts (S5 slice 2). */
212
225
  toolOutputExpanded: boolean;
213
- private hideThinkingBlock;
214
- private outputPad;
215
- private readonly mermaidMarkdownTransformer;
216
- private unsubscribe?;
217
- private signalCleanupHandlers;
226
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
227
+ hideThinkingBlock: boolean;
228
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
229
+ outputPad: number;
230
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
231
+ readonly mermaidMarkdownTransformer: MarkdownTransformer;
232
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
233
+ unsubscribe?: () => void;
234
+ /** Host-visible for ./interactive-lifecycle.ts (拆分 slice 4). */
235
+ signalCleanupHandlers: Array<() => void>;
218
236
  private isBashMode;
219
- private bashComponent;
220
- private pendingBashComponents;
221
- private autoCompactionEscapeHandler?;
222
- private retryEscapeHandler?;
223
- private compactionQueuedMessages;
224
- private shutdownRequested;
237
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
238
+ bashComponent: BashExecutionComponent | undefined;
239
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
240
+ pendingBashComponents: BashExecutionComponent[];
241
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
242
+ autoCompactionEscapeHandler?: () => void;
243
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
244
+ retryEscapeHandler?: () => void;
245
+ /** Host-visible for ./interactive-queues.ts (拆分 slice 3). */
246
+ compactionQueuedMessages: queuesFlow.CompactionQueuedMessage[];
247
+ /** Host-visible for ./interactive-lifecycle.ts (拆分 slice 4). */
248
+ shutdownRequested: boolean;
249
+ /** Host-visible for ./interactive-lifecycle.ts (拆分 slice 4): reentrancy guard. */
250
+ isShuttingDown: boolean;
225
251
  dialogSelector: DialogSelectorComponent | undefined;
226
252
  dialogInput: DialogInputComponent | undefined;
227
253
  dialogSelectorReplaced: (() => void) | undefined;
@@ -231,10 +257,13 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
231
257
  widgetContainerBelow: Container;
232
258
  headerContainer: Container;
233
259
  builtInHeader: Component | undefined;
234
- private options;
260
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
261
+ options: InteractiveModeOptions;
235
262
  private readonly onRightClickPaste;
236
- private themeController;
237
- private get session();
263
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
264
+ themeController: InteractiveThemeController;
265
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2): only the curated AgentSessionHostSurface (setTransport) is consumed there. */
266
+ get session(): AgentSession;
238
267
  /**
239
268
  * Constructor-injected settings (D-047): the TUI reads settings from the
240
269
  * host-provided manager, never from AgentSession. Internal collaboration
@@ -253,26 +282,32 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
253
282
  private showStartupNoticesIfNeeded;
254
283
  private mountInteractiveTui;
255
284
  private stopInteractiveTui;
256
- private switchTuiMode;
285
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
286
+ switchTuiMode(mode: TuiMode, restoreProgress?: boolean, startRenderer?: boolean): boolean;
257
287
  init(): Promise<void>;
258
288
  /**
259
289
  * Update terminal title with session name and cwd.
260
290
  */
261
- private updateTerminalTitle;
291
+ updateTerminalTitle(): void;
292
+ /** Host-visible for ./startup-services.ts. */
293
+ getVersion(): string;
294
+ /** Narrow cwd projection for startup background checks (D-048). */
295
+ getCwd(): string;
296
+ /** Live initialization read for late-arriving background checks. */
297
+ hasInitialized(): boolean;
262
298
  /**
263
299
  * Run the interactive mode. This is the main entry point.
264
300
  * Initializes the UI, shows warnings, processes initial messages, and starts the interactive loop.
265
301
  */
266
302
  run(): Promise<void>;
267
303
  private promptWithEmptyReplyRetry;
268
- private checkForPackageUpdates;
269
- private checkTmuxKeyboardSetup;
270
304
  /**
271
305
  * Get changelog entries to display on startup.
272
306
  * Only shows new entries since last seen version, skips for resumed sessions.
273
307
  */
274
308
  private getChangelogForDisplay;
275
- private getMarkdownThemeWithSettings;
309
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
310
+ getMarkdownThemeWithSettings(): MarkdownTheme;
276
311
  private formatDisplayPath;
277
312
  private formatContextPath;
278
313
  private getStartupExpansionState;
@@ -294,21 +329,34 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
294
329
  findSourceInfoForPath(p: string, sourceInfos: Map<string, SourceInfo>): SourceInfo | undefined;
295
330
  formatPathWithSource(p: string, sourceInfo?: SourceInfo): string;
296
331
  private formatDiagnostics;
297
- private showLoadedResources;
332
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
333
+ showLoadedResources(options?: {
334
+ force?: boolean;
335
+ showDiagnosticsWhenQuiet?: boolean;
336
+ }): void;
298
337
  private bindCurrentSessionExtensions;
299
- private applyFullscreenScrollbarSetting;
300
- private applyRuntimeSettings;
338
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
339
+ applyFullscreenScrollbarSetting(): void;
340
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
341
+ applyRuntimeSettings(): void;
301
342
  private rebindCurrentSession;
302
- private handleFatalRuntimeError;
343
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
344
+ handleFatalRuntimeError(prefix: string, error: unknown): Promise<never>;
303
345
  private renderCurrentSessionState;
304
346
  /**
305
347
  * Get a registered tool definition by name (for custom rendering).
306
- */
307
- private getRegisteredToolDefinition;
308
- private getMarkdownTransformers;
309
- private showStatusIndicator;
310
- private clearStatusIndicator;
311
- private showWorkingStatusIndicator;
348
+ *
349
+ * Host-visible for ./interactive-events.ts (拆分 slice 5).
350
+ */
351
+ getRegisteredToolDefinition(toolName: string): import("../../core/tools/tool-definition.ts").ToolDefinition<import("@agent-forge/ai").TSchema, unknown, unknown> | undefined;
352
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5). */
353
+ getMarkdownTransformers(): MarkdownTransformer[];
354
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
355
+ showStatusIndicator(indicator: StatusIndicator): void;
356
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
357
+ clearStatusIndicator(kind?: StatusIndicator["kind"]): void;
358
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5): turn_start working indicator. */
359
+ showWorkingStatusIndicator(): void;
312
360
  setWorkingVisible(visible: boolean): void;
313
361
  setWorkingIndicator(options?: WorkingIndicatorOptions): void;
314
362
  setHiddenThinkingLabel(label?: string): void;
@@ -317,7 +365,8 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
317
365
  * through ./interactive-dialog-ui.ts; restores the default when undefined.
318
366
  */
319
367
  setWorkingMessage(message: string | undefined): void;
320
- private resetDialogUI;
368
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
369
+ resetDialogUI(): void;
321
370
  /**
322
371
  * Apply a theme request from the extension UI host (implemented by
323
372
  * ./interactive-dialog-ui.ts), keeping the theme controller and settings
@@ -345,7 +394,8 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
345
394
  * Show a confirmation dialog for extensions.
346
395
  */
347
396
  showDialogConfirm(title: string, message: string, opts?: InteractionDialogOptions): Promise<boolean>;
348
- private promptForMissingSessionCwd;
397
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
398
+ promptForMissingSessionCwd(error: MissingSessionCwdError): Promise<string | undefined>;
349
399
  /**
350
400
  * Show a text input for extensions.
351
401
  */
@@ -385,10 +435,12 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
385
435
  */
386
436
  private dispatchEditorCommand;
387
437
  setEditorText(text: string): void;
438
+ /** Session subscription; implementation in ./interactive-events.ts (拆分 slice 5). */
388
439
  private subscribeToAgent;
389
- private handleEvent;
390
- /** Extract text content from a user message */
391
- private getUserMessageText;
440
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-events.ts. */
441
+ handleEvent(event: AgentSessionEvent): Promise<void>;
442
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-events.ts. */
443
+ getUserMessageText(message: Message): string;
392
444
  /** Show a managed-tool status update in the chat. */
393
445
  private showManagedToolStatus;
394
446
  /**
@@ -398,67 +450,93 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
398
450
  * we update the previous status line instead of appending new ones to avoid log spam.
399
451
  */
400
452
  showStatus(message: string): void;
401
- private addMessageToChat;
402
- private renderSessionItems;
453
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-events.ts. */
454
+ addMessageToChat(message: AgentMessage, options?: {
455
+ populateHistory?: boolean;
456
+ }): void;
457
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-events.ts. */
458
+ renderSessionItems(items: readonly eventsFlow.RenderSessionItem[], options?: {
459
+ updateFooter?: boolean;
460
+ populateHistory?: boolean;
461
+ }): void;
403
462
  /**
404
463
  * Render session entries to chat. Used for initial load and rebuild after compaction.
405
464
  * @param entries Compaction-aware session entries to render
406
465
  * @param options.updateFooter Update footer state
407
466
  * @param options.populateHistory Add user messages to editor history
467
+ *
468
+ * Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in
469
+ * ./interactive-events.ts.
408
470
  */
409
- private renderSessionEntries;
471
+ renderSessionEntries(entries: SessionEntry[], options?: {
472
+ updateFooter?: boolean;
473
+ populateHistory?: boolean;
474
+ }): void;
410
475
  /**
411
476
  * Render billing usage for a compaction or branch summary. The notice is derived
412
477
  * from persisted summary usage and is not stored as a separate session entry.
478
+ *
479
+ * Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in
480
+ * ./interactive-events.ts.
413
481
  */
414
- private addCompactionCostNotice;
415
- private static countDroppedThinkingBlocks;
416
- private maybeShowThinkingDropNotice;
482
+ addCompactionCostNotice(notice: eventsFlow.CompactionCostNotice): void;
483
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-events.ts. */
484
+ maybeShowThinkingDropNotice(message: AssistantMessage): void;
417
485
  /**
418
486
  * Show a transcript notice when a completed assistant message paid for a
419
487
  * significant cache miss. Only states observable facts: the miss itself,
420
488
  * a model switch, or an idle gap past the cache TTL.
489
+ *
490
+ * Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in
491
+ * ./interactive-events.ts.
421
492
  */
422
- private maybeShowCacheMissNotice;
423
- private addCacheMissNotice;
493
+ maybeShowCacheMissNotice(message: AssistantMessage): void;
494
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-events.ts. */
495
+ addCacheMissNotice(miss: CacheMiss): void;
424
496
  renderInitialMessages(): void;
425
497
  getUserInput(): Promise<string>;
426
- private rebuildChatFromMessages;
498
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1); implementation in ./interactive-events.ts (拆分 slice 5). */
499
+ rebuildChatFromMessages(): void;
500
+ /** Ctrl+C interrupt/exit grading; implementation in ./interactive-lifecycle.ts (拆分 slice 4). */
427
501
  private handleCtrlC;
502
+ /** Ctrl+D exit on empty editor; implementation in ./interactive-lifecycle.ts (拆分 slice 4). */
428
503
  private handleCtrlD;
429
504
  /**
430
505
  * Gracefully shutdown the agent.
431
506
  * Stops the TUI before emitting shutdown events so extension UI cleanup cannot
432
- * repaint the final frame while the process is exiting.
507
+ * repaint the final frame while the process is exiting; implementation in
508
+ * ./interactive-lifecycle.ts (拆分 slice 4).
433
509
  */
434
- private isShuttingDown;
435
510
  shutdown(options?: {
436
511
  fromSignal?: boolean;
437
512
  }): Promise<void>;
438
- private emergencyTerminalExit;
439
- /**
440
- * Last-resort handler for uncaught exceptions. The TUI puts stdin into raw
441
- * mode and hides the cursor; without this handler, an uncaught throw from
442
- * anywhere (e.g. an extension's async `ChildProcess.on("exit")` callback)
443
- * tears down the process while leaving the terminal in raw mode with no
444
- * cursor, requiring `stty sane && reset` to recover.
445
- *
446
- * Unlike emergencyTerminalExit, the terminal is still alive here, so we
447
- * call ui.stop() to restore cooked mode, the cursor, and disable bracketed
448
- * paste / Kitty / modifyOtherKeys sequences.
449
- */
450
- private uncaughtCrash;
451
- private checkShutdownRequested;
513
+ /** Host-visible for ./interactive-lifecycle.ts (拆分 slice 4): dead-terminal emergency exit. */
514
+ emergencyTerminalExit(): never;
515
+ /** Host-visible for ./interactive-lifecycle.ts (拆分 slice 4): uncaught-exception crash handler. */
516
+ uncaughtCrash(error: Error): never;
517
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-lifecycle.ts (拆分 slice 4). */
518
+ checkShutdownRequested(): Promise<void>;
519
+ /** Signal/stderr/uncaught registration; implementation in ./interactive-lifecycle.ts (拆分 slice 4). */
452
520
  private registerSignalHandlers;
453
- private unregisterSignalHandlers;
521
+ /** Host-visible for ./interactive-lifecycle.ts (拆分 slice 4): also called by the mode's stop(). */
522
+ unregisterSignalHandlers(): void;
523
+ /** Suspend to background (Ctrl+Z); implementation in ./interactive-lifecycle.ts (拆分 slice 4). */
454
524
  private handleCtrlZ;
455
- private handleFollowUp;
456
- private handleDequeue;
457
- /** /queue command host face (single-entry iron law): queues the given text for after the current run. A bare /queue cannot mirror the keybinding — the editor buffer is cleared on submit before the command runs — so it prints usage instead of silently doing nothing. */
525
+ /**
526
+ * Host-visible for ./interactive-lifecycle.ts (拆分 slice 4): the function
527
+ * stays resident in this module (D-041 §3.5 — resume hints are host TUI
528
+ * behavior, not a facade contract).
529
+ */
530
+ formatResumeCommand(session: ResumeCommandSessionReads): string | undefined;
531
+ /** Follow-up queue entry (Alt+Enter / /queue); implementation in ./interactive-queues.ts (拆分 slice 3). */
532
+ handleFollowUp(explicitText?: string): Promise<void>;
533
+ /** Dequeue restore (keybinding / /dequeue); implementation in ./interactive-queues.ts (拆分 slice 3). */
534
+ handleDequeue(): void;
535
+ /** /queue command host face (single-entry iron law); implementation in ./interactive-queues.ts (拆分 slice 3). */
458
536
  handleQueueCommand(text: string | undefined): Promise<void>;
459
- /** /dequeue command host face: restore queued messages back to the editor. */
537
+ /** /dequeue command host face; implementation in ./interactive-queues.ts (拆分 slice 3). */
460
538
  handleDequeueCommand(): void;
461
- /** /queue-list command host face: open the queued-message manager selector. Both queues empty is a status message, not an empty overlay. */
539
+ /** /queue-list command host face; implementation in ./interactive-queues.ts (拆分 slice 3). */
462
540
  handleQueueListCommand(): void;
463
541
  /** /editor command host face: edit the current input in an external editor. */
464
542
  handleEditorCommand(): Promise<void>;
@@ -472,19 +550,27 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
472
550
  * assistant turn's tool-run group (creating the group on first tool of
473
551
  * the turn) instead of the chat container directly. Collapsed groups
474
552
  * render one dim marker line for the whole turn.
553
+ *
554
+ * Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in
555
+ * ./interactive-events.ts.
475
556
  */
476
- private addToolToRunGroup;
557
+ addToolToRunGroup(component: ToolExecutionComponent): void;
477
558
  /**
478
559
  * Narrowing-safe faces for the active group inside renderSessionItems:
479
560
  * addToolToRunGroup may (re)assign this.activeToolRunGroup behind the
480
561
  * compiler's back, so group reads go through methods instead of the
481
562
  * narrowed property reference.
563
+ *
564
+ * Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in
565
+ * ./interactive-events.ts.
482
566
  */
483
- private noteResultInActiveToolRunGroup;
484
- private markActiveToolRunGroupComplete;
567
+ noteResultInActiveToolRunGroup(isError: boolean): void;
568
+ /** Host-visible for ./interactive-events.ts (拆分 slice 5); implementation in ./interactive-events.ts. */
569
+ markActiveToolRunGroupComplete(): void;
485
570
  setToolsExpanded(expanded: boolean): void;
486
571
  /** Update rendered assistant messages without rebuilding live tool components. */
487
- private updateThinkingBlockVisibility;
572
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
573
+ updateThinkingBlockVisibility(): void;
488
574
  private toggleThinkingBlockVisibility;
489
575
  private handleOpenExternalEditor;
490
576
  clearEditor(): void;
@@ -495,18 +581,37 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
495
581
  /**
496
582
  * Get all queued messages (read-only).
497
583
  * Combines session queue and compaction queue.
584
+ *
585
+ * Host-visible for ./interactive-queues.ts (拆分 slice 3): the merged read
586
+ * behind the pending-messages display.
498
587
  */
499
- private getAllQueuedMessages;
588
+ getAllQueuedMessages(): {
589
+ steering: string[];
590
+ followUp: string[];
591
+ };
500
592
  /**
501
593
  * Clear all queued messages and return their contents.
502
- * Clears both session queue and compaction queue.
594
+ * Clears both session queue and compaction queue; implementation in
595
+ * ./interactive-queues.ts (拆分 slice 3). Stays reachable from the mode's
596
+ * restoreQueuedMessagesToEditor.
503
597
  */
504
598
  private clearAllQueues;
505
- /** Host-visible for ./interactive-selectors.ts (queue manager close path). */
599
+ /** Host-visible for ./interactive-selectors.ts (queue manager close path) and ./interactive-events.ts (拆分 slice 3); implementation in ./interactive-queues.ts. */
506
600
  updatePendingMessagesDisplay(): void;
507
- private restoreQueuedMessagesToEditor;
508
- private queueCompactionMessage;
509
- private flushCompactionQueue;
601
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
602
+ restoreQueuedMessagesToEditor(options?: {
603
+ abort?: boolean;
604
+ /** Interrupt grading (设计 子代理运行时 §4.2): false aborts the turn
605
+ * without cancelling background agent tasks. */
606
+ cancelAgentTasks?: boolean;
607
+ currentText?: string;
608
+ }): number;
609
+ /** Host-visible for ./interactive-queues.ts (拆分 slice 3); implementation in ./interactive-queues.ts. */
610
+ queueCompactionMessage(text: string, mode: "steer" | "followUp"): void;
611
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2) and ./interactive-events.ts; implementation in ./interactive-queues.ts (拆分 slice 3). */
612
+ flushCompactionQueue(options?: {
613
+ willRetry?: boolean;
614
+ }): Promise<void>;
510
615
  /** Move pending bash components from pending area to chat */
511
616
  private flushPendingBashComponents;
512
617
  disposeActiveSelector(): void;
@@ -519,6 +624,7 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
519
624
  focus: Component;
520
625
  dispose?: () => void;
521
626
  }): void;
627
+ /** Settings selector; implementation in ./interactive-selectors.ts (拆分 slice 2). */
522
628
  showSettingsSelector(): void;
523
629
  /** /thinking command entry; implementation in ./interactive-selectors.ts (S5 slice 5). */
524
630
  handleThinkingCommand(searchTerm?: string): void;
@@ -548,7 +654,8 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
548
654
  * file's binding entry and cached per path — the selector refilters the
549
655
  * list on every keystroke.
550
656
  */
551
- private readSessionSuiteId;
657
+ /** Host-visible for ./interactive-selectors.ts (拆分 slice 2). */
658
+ readSessionSuiteId(sessionPath: string): string | undefined;
552
659
  /** /suite command entry; implementation in ./interactive-selectors.ts (S5 slice 5). */
553
660
  handleSuiteCommand(suiteId?: string): void;
554
661
  /** Suite list overlay; implementation in ./interactive-selectors.ts (S5 slice 5). */
@@ -577,23 +684,16 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
577
684
  showUserMessageSelector(): void;
578
685
  /** /clone command entry; implementation in ./interactive-selectors.ts (S5 slice 5). */
579
686
  handleCloneCommand(): Promise<void>;
580
- /**
581
- * Workflow overlay (§9 L2/L3): read-only panorama + transition log from
582
- * `workflow.state`/`workflow.transition` entries. Actions are forwarded to
583
- * the editor as reviewable text; the main agent executes them via
584
- * workflow_advance (rendering and execution stay separated).
585
- */
687
+ /** Workflow overlay; implementation in ./interactive-selectors.ts (拆分 slice 2). */
586
688
  showWorkflowView(): void;
587
- /**
588
- * Subagent session browser (/agents): read-only list + detail of this
589
- * session's subagent transcripts from the D-060 §3 on-disk store — the same
590
- * parent-scoped summary source as the subagent_list model tool (only this
591
- * session's children, newest first). Detail entries load lazily per
592
- * session; a failed load renders inside the view instead of throwing.
593
- */
689
+ /** Subagent session browser; implementation in ./interactive-selectors.ts (拆分 slice 2). */
594
690
  showAgentsView(): void;
691
+ /** Tree selector; implementation in ./interactive-selectors.ts (拆分 slice 2). */
595
692
  showTreeSelector(initialSelectedId?: string): void;
693
+ /** Session selector; implementation in ./interactive-selectors.ts (拆分 slice 2). */
596
694
  showSessionSelector(): void;
695
+ /** Queue manager overlay; implementation in ./interactive-selectors.ts (S5 slice 5). Host-visible for ./interactive-queues.ts (拆分 slice 3). */
696
+ showQueueManagerSelector(): void;
597
697
  private handleResumeSession;
598
698
  /**
599
699
  * Cross-suite resume detection (设计 §10.1 最小可用版): compare the loaded
@@ -603,8 +703,11 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
603
703
  * behavior). On a mismatch, record the fact for later debugging: an info
604
704
  * status line plus a `suite_mismatch` custom entry on the session. No
605
705
  * context serialization or conversion is attempted.
706
+ *
707
+ * Host-visible for ./interactive-selectors.ts (拆分 slice 2): also called
708
+ * from the startup/resume path on the mode, so it stays here.
606
709
  */
607
- private detectCrossSuiteResume;
710
+ detectCrossSuiteResume(): void;
608
711
  /**
609
712
  * Host-visible for ./interactive-auth.ts (D-048): narrow credential/provider
610
713
  * auth projection of the session's ModelRuntime through the stable facade.
@@ -685,8 +788,11 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
685
788
  handleChangelogCommand(): void;
686
789
  /**
687
790
  * Get capitalized display string for an app keybinding action.
791
+ *
792
+ * Host-visible for ./interactive-queues.ts (拆分 slice 3): the dequeue hint
793
+ * in the pending-messages display.
688
794
  */
689
- private getAppKeyDisplay;
795
+ getAppKeyDisplay(action: AppKeybinding): string;
690
796
  /**
691
797
  * Get capitalized display string for an editor keybinding action.
692
798
  */
@@ -696,7 +802,8 @@ export declare class InteractiveMode implements DialogUiHost, authFlow.AuthUiHos
696
802
  handleClearCommand(): Promise<void>;
697
803
  handleDebugCommand(): void;
698
804
  handleArminSaysHi(): void;
699
- private handleDaxnuts;
805
+ /** Host-visible for ./interactive-commands.ts (拆分 slice 1). */
806
+ handleDaxnuts(): void;
700
807
  /** Host-visible for ./interactive-auth.ts (S5 slice 3). */
701
808
  checkDaxnutsEasterEgg(model: {
702
809
  provider: string;