@qduc/term2 0.22.0 → 0.23.0

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 (426) hide show
  1. package/dist/agent.d.ts +1 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +18 -10
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +19 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/cli.js +26 -0
  9. package/dist/cli.js.map +1 -1
  10. package/dist/components/common/MenuContainer.d.ts +10 -0
  11. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  12. package/dist/components/common/MenuContainer.js +53 -29
  13. package/dist/components/common/MenuContainer.js.map +1 -1
  14. package/dist/components/input/ApplicationInputSurface.js +1 -1
  15. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  16. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  17. package/dist/components/input/ModelMenuSession.js +7 -21
  18. package/dist/components/input/ModelMenuSession.js.map +1 -1
  19. package/dist/components/input/SettingsMenuSession.d.ts.map +1 -1
  20. package/dist/components/input/SettingsMenuSession.js +8 -5
  21. package/dist/components/input/SettingsMenuSession.js.map +1 -1
  22. package/dist/components/input/SubagentPoolMenuSession.d.ts +9 -0
  23. package/dist/components/input/SubagentPoolMenuSession.d.ts.map +1 -0
  24. package/dist/components/input/{MentorPoolMenuSession.js → SubagentPoolMenuSession.js} +21 -17
  25. package/dist/components/input/SubagentPoolMenuSession.js.map +1 -0
  26. package/dist/components/input/menu-controller.d.ts.map +1 -1
  27. package/dist/components/input/menu-controller.js +4 -3
  28. package/dist/components/input/menu-controller.js.map +1 -1
  29. package/dist/components/input/menu-registry.js +2 -2
  30. package/dist/components/input/menu-registry.js.map +1 -1
  31. package/dist/components/input/menu-types.d.ts +5 -1
  32. package/dist/components/input/menu-types.d.ts.map +1 -1
  33. package/dist/components/input/triggers.d.ts.map +1 -1
  34. package/dist/components/input/triggers.js +10 -7
  35. package/dist/components/input/triggers.js.map +1 -1
  36. package/dist/components/layout/Banner.d.ts.map +1 -1
  37. package/dist/components/layout/Banner.js +4 -1
  38. package/dist/components/layout/Banner.js.map +1 -1
  39. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  40. package/dist/components/layout/StatusBar.js +10 -17
  41. package/dist/components/layout/StatusBar.js.map +1 -1
  42. package/dist/components/menu/ModelSelectionMenu.js +2 -2
  43. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  44. package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -1
  45. package/dist/components/menu/ProfileSelectionMenu.js +12 -12
  46. package/dist/components/menu/ProfileSelectionMenu.js.map +1 -1
  47. package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
  48. package/dist/components/menu/ResumeSelectionMenu.js +10 -10
  49. package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
  50. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  51. package/dist/components/menu/SettingsSelectionMenu.js +3 -1
  52. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  53. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  54. package/dist/components/menu/SkillSelectionMenu.js +10 -10
  55. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  56. package/dist/components/menu/StandaloneModelPickerApp.d.ts +3 -3
  57. package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -1
  58. package/dist/components/menu/StandaloneModelPickerApp.js +9 -10
  59. package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -1
  60. package/dist/components/menu/SubagentPoolSelectionMenu.d.ts +19 -0
  61. package/dist/components/menu/SubagentPoolSelectionMenu.d.ts.map +1 -0
  62. package/dist/components/menu/{MentorPoolSelectionMenu.js → SubagentPoolSelectionMenu.js} +29 -15
  63. package/dist/components/menu/SubagentPoolSelectionMenu.js.map +1 -0
  64. package/dist/components/message/MessageList.d.ts +2 -1
  65. package/dist/components/message/MessageList.d.ts.map +1 -1
  66. package/dist/components/message/MessageList.js +12 -38
  67. package/dist/components/message/MessageList.js.map +1 -1
  68. package/dist/context/InputContext.d.ts +1 -1
  69. package/dist/context/InputContext.d.ts.map +1 -1
  70. package/dist/context/InputContext.js +2 -2
  71. package/dist/context/InputContext.js.map +1 -1
  72. package/dist/contracts/conversation-items.d.ts +4 -0
  73. package/dist/contracts/conversation-items.d.ts.map +1 -1
  74. package/dist/contracts/provider-input.d.ts +2 -0
  75. package/dist/contracts/provider-input.d.ts.map +1 -1
  76. package/dist/contracts/provider-input.js.map +1 -1
  77. package/dist/gateway/assertion.d.ts +1 -1
  78. package/dist/gateway/assertion.d.ts.map +1 -1
  79. package/dist/gateway/contracts.d.ts +13 -3
  80. package/dist/gateway/contracts.d.ts.map +1 -1
  81. package/dist/gateway/contracts.js +56 -0
  82. package/dist/gateway/contracts.js.map +1 -1
  83. package/dist/gateway/gateway.d.ts +40 -1
  84. package/dist/gateway/gateway.d.ts.map +1 -1
  85. package/dist/gateway/gateway.js +1319 -76
  86. package/dist/gateway/gateway.js.map +1 -1
  87. package/dist/gateway/persistence/admission-persistence.d.ts +3 -3
  88. package/dist/gateway/persistence/admission-persistence.d.ts.map +1 -1
  89. package/dist/gateway/persistence/admission-persistence.js +25 -11
  90. package/dist/gateway/persistence/admission-persistence.js.map +1 -1
  91. package/dist/gateway/persistence/contracts.d.ts +5 -3
  92. package/dist/gateway/persistence/contracts.d.ts.map +1 -1
  93. package/dist/gateway/persistence/contracts.js +13 -0
  94. package/dist/gateway/persistence/contracts.js.map +1 -1
  95. package/dist/gateway/persistence/interaction-checkpoint.d.ts +5 -0
  96. package/dist/gateway/persistence/interaction-checkpoint.d.ts.map +1 -1
  97. package/dist/gateway/persistence/interaction-checkpoint.js +22 -0
  98. package/dist/gateway/persistence/interaction-checkpoint.js.map +1 -1
  99. package/dist/gateway/persistence/projection.d.ts.map +1 -1
  100. package/dist/gateway/persistence/projection.js +4 -1
  101. package/dist/gateway/persistence/projection.js.map +1 -1
  102. package/dist/gateway/persistence/session-index.d.ts +1 -1
  103. package/dist/gateway/persistence/session-index.d.ts.map +1 -1
  104. package/dist/gateway/persistence/session-index.js +2 -2
  105. package/dist/gateway/persistence/session-index.js.map +1 -1
  106. package/dist/gateway/persistence/session-snapshot.d.ts +32 -0
  107. package/dist/gateway/persistence/session-snapshot.d.ts.map +1 -0
  108. package/dist/gateway/persistence/session-snapshot.js +50 -0
  109. package/dist/gateway/persistence/session-snapshot.js.map +1 -0
  110. package/dist/gateway/runtime-factory.d.ts +37 -1
  111. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  112. package/dist/gateway/runtime-factory.js +155 -24
  113. package/dist/gateway/runtime-factory.js.map +1 -1
  114. package/dist/gateway/safe-log.d.ts +1 -1
  115. package/dist/gateway/safe-log.d.ts.map +1 -1
  116. package/dist/gateway/safe-log.js +5 -46
  117. package/dist/gateway/safe-log.js.map +1 -1
  118. package/dist/gateway/serve-args.d.ts +53 -0
  119. package/dist/gateway/serve-args.d.ts.map +1 -0
  120. package/dist/gateway/serve-args.js +172 -0
  121. package/dist/gateway/serve-args.js.map +1 -0
  122. package/dist/gateway/serve.d.ts +79 -0
  123. package/dist/gateway/serve.d.ts.map +1 -0
  124. package/dist/gateway/serve.js +375 -0
  125. package/dist/gateway/serve.js.map +1 -0
  126. package/dist/gateway/server-session.d.ts +9 -0
  127. package/dist/gateway/server-session.d.ts.map +1 -1
  128. package/dist/gateway/server-session.js +142 -26
  129. package/dist/gateway/server-session.js.map +1 -1
  130. package/dist/gateway/server.d.ts.map +1 -1
  131. package/dist/gateway/server.js +13 -2
  132. package/dist/gateway/server.js.map +1 -1
  133. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  134. package/dist/hooks/use-slash-commands.js +19 -13
  135. package/dist/hooks/use-slash-commands.js.map +1 -1
  136. package/dist/hooks/use-subagent-pool-selection.d.ts +115 -0
  137. package/dist/hooks/use-subagent-pool-selection.d.ts.map +1 -0
  138. package/dist/hooks/{use-mentor-pool-selection.js → use-subagent-pool-selection.js} +168 -100
  139. package/dist/hooks/use-subagent-pool-selection.js.map +1 -0
  140. package/dist/lib/agent-client.d.ts +3 -0
  141. package/dist/lib/agent-client.d.ts.map +1 -1
  142. package/dist/lib/agent-client.js +7 -0
  143. package/dist/lib/agent-client.js.map +1 -1
  144. package/dist/lib/agent-configuration.d.ts +1 -0
  145. package/dist/lib/agent-configuration.d.ts.map +1 -1
  146. package/dist/lib/agent-configuration.js +3 -0
  147. package/dist/lib/agent-configuration.js.map +1 -1
  148. package/dist/lib/agent-factory.d.ts +2 -0
  149. package/dist/lib/agent-factory.d.ts.map +1 -1
  150. package/dist/lib/agent-factory.js +5 -0
  151. package/dist/lib/agent-factory.js.map +1 -1
  152. package/dist/lib/subagent-bridge.d.ts +5 -0
  153. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  154. package/dist/lib/subagent-bridge.js +5 -0
  155. package/dist/lib/subagent-bridge.js.map +1 -1
  156. package/dist/lib/tool-selection-policy.d.ts +2 -0
  157. package/dist/lib/tool-selection-policy.d.ts.map +1 -1
  158. package/dist/lib/tool-selection-policy.js +6 -1
  159. package/dist/lib/tool-selection-policy.js.map +1 -1
  160. package/dist/prompts/explorer-delegation-contract.test.ts +1 -1
  161. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  162. package/dist/prompts/prompt-constructor.js +1 -0
  163. package/dist/prompts/prompt-constructor.js.map +1 -1
  164. package/dist/prompts/prompt-constructor.test.ts +3 -0
  165. package/dist/prompts/prompt-constructor.ts +1 -0
  166. package/dist/prompts/prompt-profiles.d.ts.map +1 -1
  167. package/dist/prompts/prompt-profiles.js +3 -2
  168. package/dist/prompts/prompt-profiles.js.map +1 -1
  169. package/dist/prompts/prompt-profiles.ts +4 -2
  170. package/dist/prompts/subagent-delegation.d.ts +2 -1
  171. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  172. package/dist/prompts/subagent-delegation.js +10 -5
  173. package/dist/prompts/subagent-delegation.js.map +1 -1
  174. package/dist/prompts/subagent-delegation.test.ts +10 -3
  175. package/dist/prompts/subagent-delegation.ts +16 -4
  176. package/dist/prompts/subagents/librarian.md +26 -21
  177. package/dist/prompts/subagents/reviewer.md +33 -0
  178. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  179. package/dist/services/agent-runtime/application-run-loop.js +10 -5
  180. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  181. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts +9 -0
  182. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
  183. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +6 -0
  184. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
  185. package/dist/services/agent-runtime/model-resolver.d.ts +6 -0
  186. package/dist/services/agent-runtime/model-resolver.d.ts.map +1 -1
  187. package/dist/services/agent-runtime/model-resolver.js +18 -26
  188. package/dist/services/agent-runtime/model-resolver.js.map +1 -1
  189. package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
  190. package/dist/services/approval/non-interactive-approval-policy.js +2 -1
  191. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  192. package/dist/services/approval/shell-auto-approval-evaluator.js +2 -2
  193. package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
  194. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  195. package/dist/services/conversation/conversation-orchestrator.js +42 -22
  196. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  197. package/dist/services/conversation/conversation-service.d.ts +28 -0
  198. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  199. package/dist/services/conversation/conversation-service.js +95 -27
  200. package/dist/services/conversation/conversation-service.js.map +1 -1
  201. package/dist/services/conversation/run-item-normalizer.d.ts.map +1 -1
  202. package/dist/services/conversation/run-item-normalizer.js +3 -0
  203. package/dist/services/conversation/run-item-normalizer.js.map +1 -1
  204. package/dist/services/conversation/session-browser.d.ts +5 -0
  205. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  206. package/dist/services/conversation/session-browser.js +94 -31
  207. package/dist/services/conversation/session-browser.js.map +1 -1
  208. package/dist/services/conversation/session-index/session-index-database.d.ts +1 -0
  209. package/dist/services/conversation/session-index/session-index-database.d.ts.map +1 -1
  210. package/dist/services/conversation/session-index/session-index-database.js +6 -4
  211. package/dist/services/conversation/session-index/session-index-database.js.map +1 -1
  212. package/dist/services/conversation/session-index/session-index-schema.d.ts +1 -1
  213. package/dist/services/conversation/session-index/session-index-schema.d.ts.map +1 -1
  214. package/dist/services/conversation/session-index/session-index-schema.js +2 -1
  215. package/dist/services/conversation/session-index/session-index-schema.js.map +1 -1
  216. package/dist/services/conversation-agent-client.d.ts +3 -0
  217. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  218. package/dist/services/memory/memory-capabilities.d.ts.map +1 -1
  219. package/dist/services/memory/memory-capabilities.js +2 -5
  220. package/dist/services/memory/memory-capabilities.js.map +1 -1
  221. package/dist/services/models/model-picker-host.d.ts +4 -4
  222. package/dist/services/models/model-picker-host.d.ts.map +1 -1
  223. package/dist/services/models/model-picker-host.js +9 -6
  224. package/dist/services/models/model-picker-host.js.map +1 -1
  225. package/dist/services/plan-mode-interceptor.js +2 -2
  226. package/dist/services/plan-mode-interceptor.js.map +1 -1
  227. package/dist/services/sandboxed-code-host/host-types.d.ts +12 -1
  228. package/dist/services/sandboxed-code-host/host-types.d.ts.map +1 -1
  229. package/dist/services/sandboxed-code-host/host-types.js.map +1 -1
  230. package/dist/services/sandboxed-code-host/host-worker.d.ts.map +1 -1
  231. package/dist/services/sandboxed-code-host/host-worker.js +146 -31
  232. package/dist/services/sandboxed-code-host/host-worker.js.map +1 -1
  233. package/dist/services/sandboxed-code-host/sandbox.d.ts +6 -1
  234. package/dist/services/sandboxed-code-host/sandbox.d.ts.map +1 -1
  235. package/dist/services/sandboxed-code-host/sandbox.js +5 -0
  236. package/dist/services/sandboxed-code-host/sandbox.js.map +1 -1
  237. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts +3 -3
  238. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts.map +1 -1
  239. package/dist/services/sandboxed-code-host/sandboxed-code-host.js +173 -22
  240. package/dist/services/sandboxed-code-host/sandboxed-code-host.js.map +1 -1
  241. package/dist/services/session/session-access-state.d.ts +5 -1
  242. package/dist/services/session/session-access-state.d.ts.map +1 -1
  243. package/dist/services/session/session-access-state.js +8 -1
  244. package/dist/services/session/session-access-state.js.map +1 -1
  245. package/dist/services/session/session-client-factory.d.ts +1 -0
  246. package/dist/services/session/session-client-factory.d.ts.map +1 -1
  247. package/dist/services/session/session-client-factory.js +1 -1
  248. package/dist/services/session/session-client-factory.js.map +1 -1
  249. package/dist/services/session/session-composition.d.ts +22 -4
  250. package/dist/services/session/session-composition.d.ts.map +1 -1
  251. package/dist/services/session/session-composition.js +9 -5
  252. package/dist/services/session/session-composition.js.map +1 -1
  253. package/dist/services/settings/ancillary-settings-migration.d.ts.map +1 -1
  254. package/dist/services/settings/ancillary-settings-migration.js +8 -1
  255. package/dist/services/settings/ancillary-settings-migration.js.map +1 -1
  256. package/dist/services/settings/settings-schema.d.ts +12 -40
  257. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  258. package/dist/services/settings/settings-schema.js +27 -53
  259. package/dist/services/settings/settings-schema.js.map +1 -1
  260. package/dist/services/settings/settings-sources.d.ts +0 -3
  261. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  262. package/dist/services/settings/settings-sources.js +0 -3
  263. package/dist/services/settings/settings-sources.js.map +1 -1
  264. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
  265. package/dist/services/settings/settings-ui-metadata.js +3 -3
  266. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  267. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +1 -1
  268. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  269. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +5 -8
  270. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  271. package/dist/services/subagents/nested-runner.d.ts +3 -0
  272. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  273. package/dist/services/subagents/nested-runner.js +31 -4
  274. package/dist/services/subagents/nested-runner.js.map +1 -1
  275. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  276. package/dist/services/subagents/role-loader.js +7 -12
  277. package/dist/services/subagents/role-loader.js.map +1 -1
  278. package/dist/services/subagents/runtime.d.ts +3 -0
  279. package/dist/services/subagents/runtime.d.ts.map +1 -1
  280. package/dist/services/subagents/runtime.js +35 -3
  281. package/dist/services/subagents/runtime.js.map +1 -1
  282. package/dist/services/subagents/subagent-async-registry.d.ts +10 -1
  283. package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
  284. package/dist/services/subagents/subagent-async-registry.js +21 -4
  285. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  286. package/dist/services/subagents/subagent-manager.d.ts +3 -0
  287. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  288. package/dist/services/subagents/subagent-manager.js.map +1 -1
  289. package/dist/services/subagents/subagent-pool-config.d.ts +39 -0
  290. package/dist/services/subagents/subagent-pool-config.d.ts.map +1 -0
  291. package/dist/services/subagents/subagent-pool-config.js +84 -0
  292. package/dist/services/subagents/subagent-pool-config.js.map +1 -0
  293. package/dist/services/subagents/subagent-role-pool-selector.d.ts +29 -0
  294. package/dist/services/subagents/subagent-role-pool-selector.d.ts.map +1 -0
  295. package/dist/services/subagents/subagent-role-pool-selector.js +56 -0
  296. package/dist/services/subagents/subagent-role-pool-selector.js.map +1 -0
  297. package/dist/services/subagents/tool-policy.d.ts +13 -0
  298. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  299. package/dist/services/subagents/tool-policy.js +36 -4
  300. package/dist/services/subagents/tool-policy.js.map +1 -1
  301. package/dist/services/subagents/types.d.ts +1 -1
  302. package/dist/services/subagents/types.d.ts.map +1 -1
  303. package/dist/services/subagents/types.js +1 -1
  304. package/dist/services/subagents/types.js.map +1 -1
  305. package/dist/test-helpers/outside-sandbox-temp-dir.d.ts +2 -0
  306. package/dist/test-helpers/outside-sandbox-temp-dir.d.ts.map +1 -0
  307. package/dist/test-helpers/outside-sandbox-temp-dir.js +38 -0
  308. package/dist/test-helpers/outside-sandbox-temp-dir.js.map +1 -0
  309. package/dist/tools/agent/configure-task-check-in.d.ts +2 -0
  310. package/dist/tools/agent/configure-task-check-in.d.ts.map +1 -1
  311. package/dist/tools/agent/configure-task-check-in.js +3 -0
  312. package/dist/tools/agent/configure-task-check-in.js.map +1 -1
  313. package/dist/tools/agent/run-explorer.d.ts +6 -0
  314. package/dist/tools/agent/run-explorer.d.ts.map +1 -0
  315. package/dist/tools/agent/run-explorer.js +58 -0
  316. package/dist/tools/agent/run-explorer.js.map +1 -0
  317. package/dist/tools/agent/run-subagent-async.d.ts +2 -0
  318. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  319. package/dist/tools/agent/run-subagent-async.js +3 -3
  320. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  321. package/dist/tools/agent/run-subagent.d.ts +2 -2
  322. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  323. package/dist/tools/agent/run-subagent.js +8 -6
  324. package/dist/tools/agent/run-subagent.js.map +1 -1
  325. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  326. package/dist/tools/file/apply-patch.js +7 -2
  327. package/dist/tools/file/apply-patch.js.map +1 -1
  328. package/dist/tools/file/create-file.d.ts.map +1 -1
  329. package/dist/tools/file/create-file.js +4 -0
  330. package/dist/tools/file/create-file.js.map +1 -1
  331. package/dist/tools/file/edit-healing.d.ts.map +1 -1
  332. package/dist/tools/file/edit-healing.js +1 -4
  333. package/dist/tools/file/edit-healing.js.map +1 -1
  334. package/dist/tools/file/glob.d.ts.map +1 -1
  335. package/dist/tools/file/glob.js +6 -0
  336. package/dist/tools/file/glob.js.map +1 -1
  337. package/dist/tools/file/patch-healing.d.ts.map +1 -1
  338. package/dist/tools/file/patch-healing.js +1 -4
  339. package/dist/tools/file/patch-healing.js.map +1 -1
  340. package/dist/tools/file/search-replace.d.ts.map +1 -1
  341. package/dist/tools/file/search-replace.js +7 -5
  342. package/dist/tools/file/search-replace.js.map +1 -1
  343. package/dist/tools/format-helpers.d.ts +5 -0
  344. package/dist/tools/format-helpers.d.ts.map +1 -1
  345. package/dist/tools/format-helpers.js.map +1 -1
  346. package/dist/tools/memory/memory-tools.d.ts +0 -1
  347. package/dist/tools/memory/memory-tools.d.ts.map +1 -1
  348. package/dist/tools/memory/memory-tools.js +1 -116
  349. package/dist/tools/memory/memory-tools.js.map +1 -1
  350. package/dist/tools/scripted-return-contract.d.ts +24 -0
  351. package/dist/tools/scripted-return-contract.d.ts.map +1 -0
  352. package/dist/tools/scripted-return-contract.js +36 -0
  353. package/dist/tools/scripted-return-contract.js.map +1 -0
  354. package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -1
  355. package/dist/tools/session-browser/session-browser-tools.js +21 -8
  356. package/dist/tools/session-browser/session-browser-tools.js.map +1 -1
  357. package/dist/tools/system/run-code/index.d.ts +3 -0
  358. package/dist/tools/system/run-code/index.d.ts.map +1 -1
  359. package/dist/tools/system/run-code/index.js +3 -0
  360. package/dist/tools/system/run-code/index.js.map +1 -1
  361. package/dist/tools/system/run-code/run-code-execution.d.ts +56 -0
  362. package/dist/tools/system/run-code/run-code-execution.d.ts.map +1 -0
  363. package/dist/tools/system/run-code/run-code-execution.js +68 -0
  364. package/dist/tools/system/run-code/run-code-execution.js.map +1 -0
  365. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts +20 -0
  366. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts.map +1 -0
  367. package/dist/tools/system/run-code/run-code-runtime-contract.js +2 -0
  368. package/dist/tools/system/run-code/run-code-runtime-contract.js.map +1 -0
  369. package/dist/tools/system/run-code/run-code-runtime.d.ts +99 -0
  370. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -0
  371. package/dist/tools/system/run-code/run-code-runtime.js +719 -0
  372. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -0
  373. package/dist/tools/system/run-code/run-code-telemetry.d.ts +12 -10
  374. package/dist/tools/system/run-code/run-code-telemetry.d.ts.map +1 -1
  375. package/dist/tools/system/run-code/run-code-telemetry.js +48 -72
  376. package/dist/tools/system/run-code/run-code-telemetry.js.map +1 -1
  377. package/dist/tools/system/run-code/run-code.d.ts +22 -59
  378. package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
  379. package/dist/tools/system/run-code/run-code.js +118 -784
  380. package/dist/tools/system/run-code/run-code.js.map +1 -1
  381. package/dist/tools/system/run-code/tools-header.d.ts +16 -4
  382. package/dist/tools/system/run-code/tools-header.d.ts.map +1 -1
  383. package/dist/tools/system/run-code/tools-header.js +32 -16
  384. package/dist/tools/system/run-code/tools-header.js.map +1 -1
  385. package/dist/tools/system/shell.d.ts +3 -0
  386. package/dist/tools/system/shell.d.ts.map +1 -1
  387. package/dist/tools/system/shell.js +13 -3
  388. package/dist/tools/system/shell.js.map +1 -1
  389. package/dist/tools/types.d.ts +12 -4
  390. package/dist/tools/types.d.ts.map +1 -1
  391. package/dist/tools/types.js.map +1 -1
  392. package/dist/utils/ai/model-settings.d.ts +6 -0
  393. package/dist/utils/ai/model-settings.d.ts.map +1 -1
  394. package/dist/utils/ai/model-settings.js +7 -1
  395. package/dist/utils/ai/model-settings.js.map +1 -1
  396. package/dist/utils/ai/token-usage.d.ts +4 -5
  397. package/dist/utils/ai/token-usage.d.ts.map +1 -1
  398. package/dist/utils/ai/token-usage.js +3 -3
  399. package/dist/utils/ai/token-usage.js.map +1 -1
  400. package/dist/utils/conversation/conversation-utils.d.ts.map +1 -1
  401. package/dist/utils/conversation/conversation-utils.js +3 -0
  402. package/dist/utils/conversation/conversation-utils.js.map +1 -1
  403. package/dist/utils/conversation/static-commit-policy.d.ts +38 -0
  404. package/dist/utils/conversation/static-commit-policy.d.ts.map +1 -0
  405. package/dist/utils/conversation/static-commit-policy.js +76 -0
  406. package/dist/utils/conversation/static-commit-policy.js.map +1 -0
  407. package/dist/utils/settings-command.d.ts.map +1 -1
  408. package/dist/utils/settings-command.js +2 -1
  409. package/dist/utils/settings-command.js.map +1 -1
  410. package/dist/utils/shell/sandbox/sandbox-policy.d.ts +2 -0
  411. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -1
  412. package/dist/utils/shell/sandbox/sandbox-policy.js +1 -1
  413. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -1
  414. package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
  415. package/dist/utils/streaming/streaming-session-factory.js +22 -22
  416. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  417. package/package.json +1 -1
  418. package/dist/components/input/MentorPoolMenuSession.d.ts +0 -9
  419. package/dist/components/input/MentorPoolMenuSession.d.ts.map +0 -1
  420. package/dist/components/input/MentorPoolMenuSession.js.map +0 -1
  421. package/dist/components/menu/MentorPoolSelectionMenu.d.ts +0 -13
  422. package/dist/components/menu/MentorPoolSelectionMenu.d.ts.map +0 -1
  423. package/dist/components/menu/MentorPoolSelectionMenu.js.map +0 -1
  424. package/dist/hooks/use-mentor-pool-selection.d.ts +0 -103
  425. package/dist/hooks/use-mentor-pool-selection.d.ts.map +0 -1
  426. package/dist/hooks/use-mentor-pool-selection.js.map +0 -1
@@ -2,18 +2,31 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { z } from 'zod';
3
3
  import { useInputContext } from '../context/InputContext.js';
4
4
  import { SETTING_KEYS } from '../services/settings/settings-service.js';
5
- import { filterModels } from '../services/model-service.js';
6
- import { ModelCatalogSession } from '../services/models/model-catalog-session.js';
5
+ import { ModelCatalogSession, orderedProviderIds } from '../services/models/model-catalog-session.js';
7
6
  import { loadProviderItems } from '../providers/provider-service.js';
8
- import { resolveProviderCredentials } from '../utils/ai/provider-credentials.js';
9
7
  import { useSelection } from './use-selection.js';
10
- export const MENTOR_POOL_REASONING_EFFORTS = ['default', 'none', 'minimal', 'low', 'medium', 'high', 'xhigh'];
11
- const mentorPoolEntrySchema = z.object({
8
+ import { filterUnifiedModels, mergeUnifiedModels } from '../services/models/unified-model-catalog.js';
9
+ import { getProviderIds } from '../providers/index.js';
10
+ import { getFavoriteModelInfos, serializeFavorite } from '../services/models/model-favorites.js';
11
+ import { getSubagentPoolFallbackProviderKey } from '../services/subagents/subagent-pool-config.js';
12
+ export const SUBAGENT_POOL_REASONING_EFFORTS = [
13
+ 'default',
14
+ 'none',
15
+ 'minimal',
16
+ 'low',
17
+ 'medium',
18
+ 'high',
19
+ 'xhigh',
20
+ ];
21
+ const subagentPoolEntrySchema = z.object({
12
22
  model: z.string().min(1, 'Model is required'),
13
23
  provider: z.string().min(1, 'Provider cannot be empty').optional(),
14
- reasoningEffort: z.enum(MENTOR_POOL_REASONING_EFFORTS).optional(),
24
+ reasoningEffort: z.enum(SUBAGENT_POOL_REASONING_EFFORTS).optional(),
15
25
  });
16
- const mentorPoolSchema = z.array(mentorPoolEntrySchema).max(8, 'Mentor pool cannot contain more than 8 entries');
26
+ const MAX_SUBAGENT_POOL_ENTRIES = 8;
27
+ const subagentPoolSchema = (roleLabel) => z
28
+ .array(subagentPoolEntrySchema)
29
+ .max(MAX_SUBAGENT_POOL_ENTRIES, `${roleLabel} pool cannot contain more than 8 entries`);
17
30
  const noOpLoggingService = {
18
31
  info: () => { },
19
32
  warn: () => { },
@@ -24,14 +37,21 @@ const noOpLoggingService = {
24
37
  getCorrelationId: () => undefined,
25
38
  clearCorrelationId: () => { },
26
39
  };
27
- const cloneEntries = (value) => {
28
- const parsed = mentorPoolSchema.safeParse(value);
40
+ // Tier model pools persist plain model-id strings (a bare string normalizes
41
+ // to a single-entry pool); the editor surfaces them as {model} entries.
42
+ const tierPoolSchema = z.preprocess((value) => value === undefined || value === null || value === '' ? undefined : Array.isArray(value) ? value : [value], z.array(z.string().min(1)).max(MAX_SUBAGENT_POOL_ENTRIES));
43
+ const cloneEntries = (value, roleLabel, entryShape) => {
44
+ if (entryShape === 'models') {
45
+ const parsed = tierPoolSchema.safeParse(value);
46
+ return parsed.success ? parsed.data.map((model) => ({ model })) : [];
47
+ }
48
+ const parsed = subagentPoolSchema(roleLabel).safeParse(value);
29
49
  return parsed.success ? parsed.data.map((entry) => ({ ...entry })) : [];
30
50
  };
31
- export function formatMentorPoolProvider(provider) {
32
- return provider || 'Inherit mentor provider';
51
+ export function formatSubagentPoolProvider(provider, roleLabel) {
52
+ return provider || `Inherit ${roleLabel.toLowerCase()} provider`;
33
53
  }
34
- export function formatMentorPoolReasoning(reasoningEffort) {
54
+ export function formatSubagentPoolReasoning(reasoningEffort, roleLabel) {
35
55
  switch (reasoningEffort) {
36
56
  case 'none':
37
57
  return 'None';
@@ -46,12 +66,12 @@ export function formatMentorPoolReasoning(reasoningEffort) {
46
66
  case 'xhigh':
47
67
  return 'Extra high';
48
68
  case undefined:
49
- return 'Inherit mentor reasoning';
69
+ return `Inherit ${roleLabel.toLowerCase()} reasoning`;
50
70
  case 'default':
51
71
  return 'Provider default';
52
72
  }
53
73
  }
54
- export function mergeMentorPoolModels({ catalogModels, entries, provider, currentModel, }) {
74
+ export function mergeSubagentPoolModels({ catalogModels, entries, provider, currentModel, }) {
55
75
  const catalogIds = new Set(catalogModels.map((model) => model.id));
56
76
  const suggestedIds = new Set();
57
77
  const suggestions = [];
@@ -64,33 +84,33 @@ export function mergeMentorPoolModels({ catalogModels, entries, provider, curren
64
84
  addSuggestion(currentModel, 'Current model (not in catalog)');
65
85
  for (const entry of entries) {
66
86
  if (entry.provider === undefined || entry.provider === provider)
67
- addSuggestion(entry.model, 'In mentor pool');
87
+ addSuggestion(entry.model, 'In pool');
68
88
  }
69
89
  return [...suggestions, ...catalogModels];
70
90
  }
71
- export function resolveMentorPoolModelSelection(models, selectedIndex, typedModel) {
91
+ export function resolveSubagentPoolModelSelection(models, selectedIndex, typedModel) {
72
92
  return models[selectedIndex]?.id ?? typedModel.trim();
73
93
  }
74
- /** Starting provider tab for the mentor-pool model browser. */
75
- export function resolveMentorPoolBrowseProvider({ draftProvider, mentorProvider, agentProvider, }) {
76
- return draftProvider || mentorProvider || agentProvider || '';
94
+ /** Starting provider for custom pool model rows. */
95
+ export function resolveSubagentPoolBrowseProvider({ draftProvider, roleProvider, agentProvider, }) {
96
+ return draftProvider || roleProvider || agentProvider || '';
77
97
  }
78
- /** Apply a model catalog pick: pin both model id and the active provider tab. */
79
- export function applyMentorPoolModelPick(draft, model, provider) {
98
+ /** Apply a model catalog pick: pin both model id and its provider. */
99
+ export function applySubagentPoolModelPick(draft, model, provider) {
80
100
  return {
81
101
  ...draft,
82
102
  model,
83
103
  ...(provider ? { provider } : {}),
84
104
  };
85
105
  }
86
- export function formatMentorPoolEntry(entry) {
106
+ export function formatSubagentPoolEntry(entry) {
87
107
  const provider = entry.provider ? ` @ ${entry.provider}` : '';
88
108
  const effort = entry.reasoningEffort && entry.reasoningEffort !== 'default' ? ` (${entry.reasoningEffort})` : '';
89
109
  return `${entry.model}${provider}${effort}`;
90
110
  }
91
- export function buildMentorPoolListItems(entries) {
111
+ export function buildSubagentPoolListItems(entries) {
92
112
  const actions = [];
93
- if (entries.length < 8)
113
+ if (entries.length < MAX_SUBAGENT_POOL_ENTRIES)
94
114
  actions.push({ kind: 'action', action: 'add', label: 'Add Entry' });
95
115
  if (entries.length > 1)
96
116
  actions.push({ kind: 'action', action: 'reorder', label: 'Reorder Entries' });
@@ -105,7 +125,9 @@ export function buildMentorPoolListItems(entries) {
105
125
  ...actions,
106
126
  ];
107
127
  }
108
- export function useMentorPoolSelection(settingsService, active, loggingService) {
128
+ export function useSubagentPoolSelection(settingsService, active, loggingService, config) {
129
+ const { settingKey, roleLabel, entryShape } = config;
130
+ const fallbackProviderKey = config.fallbackProviderKey ?? getSubagentPoolFallbackProviderKey(settingKey);
109
131
  const { input, setInput, replaceInput } = useInputContext();
110
132
  const [phase, setPhase] = useState('list');
111
133
  const [entries, setEntries] = useState([]);
@@ -118,44 +140,60 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
118
140
  const [errorMessage, setErrorMessage] = useState(null);
119
141
  const [fieldErrors, setFieldErrors] = useState({});
120
142
  const catalogSession = useMemo(() => new ModelCatalogSession({ settingsService, loggingService: loggingService ?? noOpLoggingService }), [loggingService, settingsService]);
121
- const [catalogModels, setCatalogModels] = useState([]);
143
+ const [catalogs, setCatalogs] = useState(new Map());
122
144
  const [modelLoading, setModelLoading] = useState(false);
123
145
  const [modelError, setModelError] = useState(null);
124
146
  const [modelSelectedIndex, setModelSelectedIndex] = useState(0);
125
147
  const [modelScrollOffset, setModelScrollOffset] = useState(0);
126
148
  const [modelRefreshKey, setModelRefreshKey] = useState(0);
127
- /** Provider tab currently browsed in the model menu (independent of draft until pick). */
149
+ const [modelTab, setModelTab] = useState('all');
128
150
  const [browsingProvider, setBrowsingProvider] = useState(null);
129
151
  const settingsServiceRef = useRef(settingsService);
130
152
  settingsServiceRef.current = settingsService;
131
- const fallbackModelProvider = resolveMentorPoolBrowseProvider({
153
+ const roleProvider = fallbackProviderKey
154
+ ? settingsService.get(fallbackProviderKey)
155
+ : undefined;
156
+ const fallbackModelProvider = resolveSubagentPoolBrowseProvider({
132
157
  draftProvider: draft?.provider,
133
- mentorProvider: settingsService.get(SETTING_KEYS.AGENT_MENTOR_PROVIDER),
158
+ roleProvider,
134
159
  agentProvider: settingsService.get(SETTING_KEYS.AGENT_PROVIDER),
135
160
  });
136
161
  const modelProvider = browsingProvider ?? fallbackModelProvider;
137
- const modelItems = useMemo(() => mergeMentorPoolModels({
138
- catalogModels,
139
- entries,
140
- provider: modelProvider,
141
- currentModel: draft?.model ?? '',
142
- }), [catalogModels, draft?.model, entries, modelProvider]);
143
- const filteredModels = useMemo(() => filterModels(modelItems, input), [input, modelItems]);
162
+ const providerIds = useMemo(() => orderedProviderIds(settingsService, getProviderIds()), [settingsService, modelRefreshKey]);
163
+ const favoriteModels = useMemo(() => getFavoriteModelInfos(settingsService), [settingsService, modelRefreshKey]);
164
+ const favoriteKeys = useMemo(() => new Set(favoriteModels.map((model) => serializeFavorite(model.provider, model.id))), [favoriteModels]);
165
+ const modelItems = useMemo(() => {
166
+ const unified = mergeUnifiedModels(providerIds, catalogs, favoriteModels);
167
+ return mergeSubagentPoolModels({
168
+ catalogModels: unified,
169
+ entries,
170
+ provider: fallbackModelProvider,
171
+ currentModel: draft?.model ?? '',
172
+ });
173
+ }, [catalogs, draft?.model, entries, fallbackModelProvider, favoriteModels, providerIds]);
174
+ const filteredModels = useMemo(() => filterUnifiedModels(modelTab === 'favorites'
175
+ ? modelItems.filter((model) => favoriteKeys.has(serializeFavorite(model.provider, model.id)))
176
+ : modelItems, input, undefined), [favoriteKeys, input, modelItems, modelTab]);
144
177
  const activeItems = useMemo(() => {
145
178
  if (phase === 'list') {
146
- return buildMentorPoolListItems(entries);
179
+ return buildSubagentPoolListItems(entries);
147
180
  }
148
181
  if (phase === 'edit_fields') {
149
182
  if (!draft)
150
183
  return [];
151
184
  return [
152
185
  { kind: 'field', field: 'model', label: 'Model', detail: draft.model || '<empty>' },
153
- { kind: 'field', field: 'provider', label: 'Provider', detail: formatMentorPoolProvider(draft.provider) },
186
+ {
187
+ kind: 'field',
188
+ field: 'provider',
189
+ label: 'Provider',
190
+ detail: formatSubagentPoolProvider(draft.provider, roleLabel),
191
+ },
154
192
  {
155
193
  kind: 'field',
156
194
  field: 'reasoning',
157
195
  label: 'Reasoning',
158
- detail: formatMentorPoolReasoning(draft.reasoningEffort),
196
+ detail: formatSubagentPoolReasoning(draft.reasoningEffort, roleLabel),
159
197
  },
160
198
  { kind: 'action', action: 'save', label: 'Save Changes' },
161
199
  { kind: 'action', action: 'cancel', label: 'Cancel' },
@@ -163,17 +201,17 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
163
201
  }
164
202
  if (phase === 'edit_provider') {
165
203
  return [
166
- { kind: 'provider', id: '', label: 'Inherit (use mentor provider)' },
204
+ { kind: 'provider', id: '', label: `Inherit (use ${roleLabel.toLowerCase()} provider)` },
167
205
  ...providerItems.map((provider) => ({ kind: 'provider', id: provider.id, label: provider.label })),
168
206
  ];
169
207
  }
170
208
  if (phase === 'edit_reasoning') {
171
209
  return [
172
- { kind: 'reasoning', value: undefined, label: formatMentorPoolReasoning() },
173
- ...MENTOR_POOL_REASONING_EFFORTS.map((value) => ({
210
+ { kind: 'reasoning', value: undefined, label: formatSubagentPoolReasoning(undefined, roleLabel) },
211
+ ...SUBAGENT_POOL_REASONING_EFFORTS.map((value) => ({
174
212
  kind: 'reasoning',
175
213
  value,
176
- label: formatMentorPoolReasoning(value),
214
+ label: formatSubagentPoolReasoning(value, roleLabel),
177
215
  })),
178
216
  ];
179
217
  }
@@ -195,13 +233,13 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
195
233
  entry,
196
234
  label: entry.model,
197
235
  }));
198
- }, [draft, entries, phase, providerItems, reorderList]);
236
+ }, [draft, entries, phase, providerItems, reorderList, roleLabel]);
199
237
  const selection = useSelection(activeItems);
200
238
  useEffect(() => {
201
239
  if (!active)
202
240
  return;
203
241
  const currentSettingsService = settingsServiceRef.current;
204
- const loaded = cloneEntries(currentSettingsService.get(SETTING_KEYS.AGENT_MENTOR_POOL));
242
+ const loaded = cloneEntries(currentSettingsService.get(settingKey), roleLabel, entryShape);
205
243
  setEntries(loaded);
206
244
  setProviderItems(loadProviderItems(currentSettingsService));
207
245
  setPhase('list');
@@ -212,30 +250,37 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
212
250
  setDiscardFromPhase(null);
213
251
  setErrorMessage(null);
214
252
  setFieldErrors({});
215
- }, [active]);
253
+ }, [active, entryShape, roleLabel, settingKey]);
216
254
  useEffect(() => {
217
- if (!active || phase !== 'edit_model' || !modelProvider)
255
+ if (!active || phase !== 'edit_model' || providerIds.length === 0)
218
256
  return;
219
257
  /* eslint-disable react-hooks/set-state-in-effect */
220
- const credentials = resolveProviderCredentials(settingsService, modelProvider);
221
- const cachedModels = catalogSession.getCached(modelProvider);
222
- setCatalogModels(cachedModels ?? []);
258
+ const cached = new Map(providerIds.map((provider) => [provider, catalogSession.getCached(provider) ?? []]));
259
+ setCatalogs(cached);
223
260
  setModelSelectedIndex(0);
224
261
  setModelScrollOffset(0);
225
262
  setModelError(null);
226
- if (credentials.required && !credentials.configured) {
227
- setModelLoading(false);
228
- return;
229
- }
230
263
  catalogSession.begin();
231
264
  let disposed = false;
232
265
  const load = async () => {
233
- setModelLoading(!cachedModels);
266
+ setModelLoading(true);
234
267
  try {
235
- const result = await catalogSession.load(modelProvider);
236
- if (disposed || result.kind === 'stale')
268
+ const results = await Promise.allSettled(providerIds.map(async (provider) => ({ provider, result: await catalogSession.load(provider) })));
269
+ if (disposed)
237
270
  return;
238
- setCatalogModels(result.models);
271
+ const next = new Map(cached);
272
+ const failures = [];
273
+ for (const result of results) {
274
+ if (result.status === 'fulfilled' && result.value.result.kind !== 'stale') {
275
+ next.set(result.value.provider, result.value.result.models);
276
+ }
277
+ else if (result.status === 'rejected') {
278
+ failures.push(String(result.reason));
279
+ }
280
+ }
281
+ setCatalogs(next);
282
+ if (failures.length > 0)
283
+ setModelError('Some providers failed: ' + failures.join(', '));
239
284
  }
240
285
  catch (error) {
241
286
  if (!disposed)
@@ -251,7 +296,7 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
251
296
  disposed = true;
252
297
  };
253
298
  /* eslint-enable react-hooks/set-state-in-effect */
254
- }, [active, catalogSession, modelProvider, modelRefreshKey, phase, settingsService]);
299
+ }, [active, catalogSession, modelRefreshKey, phase, providerIds]);
255
300
  useEffect(() => {
256
301
  // Changing the search text starts a new list navigation session.
257
302
  // eslint-disable-next-line react-hooks/set-state-in-effect
@@ -274,21 +319,23 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
274
319
  useEffect(() => {
275
320
  selection.setSelectedIndex(0);
276
321
  }, [phase, selection.setSelectedIndex]);
277
- const resolveBrowseProvider = useCallback((draftProvider) => resolveMentorPoolBrowseProvider({
322
+ const resolveBrowseProvider = useCallback((draftProvider) => resolveSubagentPoolBrowseProvider({
278
323
  draftProvider,
279
- mentorProvider: settingsService.get(SETTING_KEYS.AGENT_MENTOR_PROVIDER),
324
+ roleProvider: fallbackProviderKey
325
+ ? settingsService.get(fallbackProviderKey)
326
+ : undefined,
280
327
  agentProvider: settingsService.get(SETTING_KEYS.AGENT_PROVIDER),
281
- }), [settingsService]);
328
+ }), [fallbackProviderKey, settingsService]);
282
329
  const openDraft = useCallback((entry, index) => {
283
330
  setDraft(entry ? { ...entry, _isNew: false } : { model: '', _isNew: true });
284
331
  setEditingIndex(index);
285
332
  setDraftModified(false);
286
333
  setErrorMessage(null);
287
334
  setFieldErrors({});
288
- // New entries jump straight into the model menu (with provider tabs) so
289
- // the user picks model + provider in one step instead of a separate
290
- // provider field first.
291
- if (entry === null) {
335
+ // Model-only pools (tiers) always edit through the model menu; rich
336
+ // pools jump there for new entries so the user picks model + provider
337
+ // in one step instead of a separate provider field first.
338
+ if (entry === null || entryShape === 'models') {
292
339
  setBrowsingProvider(resolveBrowseProvider(undefined));
293
340
  setPhase('edit_model');
294
341
  replaceInput('');
@@ -298,11 +345,11 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
298
345
  setPhase('edit_fields');
299
346
  setInput('');
300
347
  }
301
- }, [replaceInput, resolveBrowseProvider, setInput]);
348
+ }, [entryShape, replaceInput, resolveBrowseProvider, setInput]);
302
349
  const saveDraft = useCallback(() => {
303
350
  if (!draft)
304
351
  return;
305
- const result = mentorPoolEntrySchema.safeParse({
352
+ const result = subagentPoolEntrySchema.safeParse({
306
353
  model: draft.model.trim(),
307
354
  ...(draft.provider === undefined ? {} : { provider: draft.provider.trim() }),
308
355
  ...(draft.reasoningEffort === undefined ? {} : { reasoningEffort: draft.reasoningEffort }),
@@ -353,7 +400,9 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
353
400
  if (item.field === 'model') {
354
401
  setBrowsingProvider(resolveBrowseProvider(draft.provider));
355
402
  setPhase('edit_model');
356
- replaceInput(draft.model);
403
+ // Open with an empty filter; the existing model remains in the draft
404
+ // and is only replaced if the user explicitly selects another row.
405
+ replaceInput('');
357
406
  }
358
407
  else if (item.field === 'provider') {
359
408
  setPhase('edit_provider');
@@ -362,7 +411,9 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
362
411
  }
363
412
  else {
364
413
  setPhase('edit_reasoning');
365
- selection.setSelectedIndex(draft.reasoningEffort === undefined ? 0 : MENTOR_POOL_REASONING_EFFORTS.indexOf(draft.reasoningEffort) + 1);
414
+ selection.setSelectedIndex(draft.reasoningEffort === undefined
415
+ ? 0
416
+ : SUBAGENT_POOL_REASONING_EFFORTS.indexOf(draft.reasoningEffort) + 1);
366
417
  setInput('');
367
418
  }
368
419
  }
@@ -387,7 +438,7 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
387
438
  }
388
439
  if (phase === 'edit_reasoning' && item.kind === 'reasoning' && draft) {
389
440
  // Keep an explicitly stored `default` distinct from an omitted value:
390
- // the runner treats an omitted value as falling back to the mentor
441
+ // the runner treats an omitted value as falling back to the role
391
442
  // setting, while `default` uses the provider default.
392
443
  setDraft({ ...draft, reasoningEffort: item.value });
393
444
  setDraftModified(true);
@@ -447,7 +498,7 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
447
498
  setPhase('confirm_delete');
448
499
  selection.setSelectedIndex(1);
449
500
  }, [activeItems, phase, selection.selectedIndex, selection.setSelectedIndex]);
450
- const saveModel = useCallback((value) => {
501
+ const saveModel = useCallback((value, provider) => {
451
502
  if (phase !== 'edit_model' || !draft)
452
503
  return false;
453
504
  const model = value.trim();
@@ -456,9 +507,29 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
456
507
  setErrorMessage('Fix the highlighted fields before saving.');
457
508
  return false;
458
509
  }
459
- // Pin the active provider tab with the model so the separate "Select
460
- // Provider" step is optional (only needed for Inherit).
461
- setDraft(applyMentorPoolModelPick(draft, model, modelProvider));
510
+ if (entryShape === 'models') {
511
+ // Model-only pools commit immediately: there is no provider or
512
+ // reasoning field to review afterwards — the tier's own provider
513
+ // and reasoning settings apply.
514
+ const next = { model };
515
+ setEntries((current) => {
516
+ if (draft._isNew || editingIndex === null)
517
+ return [...current, next];
518
+ return current.map((entry, index) => (index === editingIndex ? next : entry));
519
+ });
520
+ setDraft(null);
521
+ setEditingIndex(null);
522
+ setDraftModified(true);
523
+ setFieldErrors({});
524
+ setErrorMessage(null);
525
+ setBrowsingProvider(null);
526
+ setPhase('list');
527
+ selection.setSelectedIndex(0);
528
+ setInput('');
529
+ return true;
530
+ }
531
+ // Pin the provider belonging to the selected unified row.
532
+ setDraft(applySubagentPoolModelPick(draft, model, provider));
462
533
  setDraftModified(true);
463
534
  setFieldErrors({});
464
535
  setErrorMessage(null);
@@ -467,8 +538,11 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
467
538
  selection.setSelectedIndex(0);
468
539
  setInput('');
469
540
  return true;
470
- }, [draft, modelProvider, phase, setInput, selection.setSelectedIndex]);
471
- const selectModel = useCallback((typedValue) => saveModel(resolveMentorPoolModelSelection(filteredModels, modelSelectedIndex, typedValue)), [filteredModels, modelSelectedIndex, saveModel]);
541
+ }, [draft, editingIndex, entryShape, phase, setInput, selection.setSelectedIndex]);
542
+ const selectModel = useCallback((typedValue) => {
543
+ const selected = filteredModels[modelSelectedIndex];
544
+ return saveModel(resolveSubagentPoolModelSelection(filteredModels, modelSelectedIndex, typedValue), selected?.provider ?? modelProvider);
545
+ }, [filteredModels, modelProvider, modelSelectedIndex, saveModel]);
472
546
  const moveModelUp = useCallback(() => {
473
547
  setModelSelectedIndex((index) => filteredModels.length === 0 ? 0 : index > 0 ? index - 1 : filteredModels.length - 1);
474
548
  }, [filteredModels.length]);
@@ -480,25 +554,15 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
480
554
  const pageModelUp = useCallback(() => setModelSelectedIndex((index) => Math.max(0, index - 10)), []);
481
555
  const pageModelDown = useCallback(() => setModelSelectedIndex((index) => Math.min(Math.max(0, filteredModels.length - 1), index + 10)), [filteredModels.length]);
482
556
  const refreshModels = useCallback(() => {
483
- if (!modelProvider)
484
- return;
485
- catalogSession.refresh(modelProvider);
557
+ for (const provider of providerIds)
558
+ catalogSession.refresh(provider);
486
559
  setModelRefreshKey((key) => key + 1);
487
- }, [catalogSession, modelProvider]);
488
- const toggleModelProvider = useCallback((direction = 'next') => {
489
- if (phase !== 'edit_model')
490
- return;
491
- const next = catalogSession.nextProvider(modelProvider || null, direction);
492
- if (!next || next === modelProvider)
493
- return;
494
- const cachedModels = catalogSession.getCached(next);
495
- setCatalogModels(cachedModels ?? []);
560
+ }, [catalogSession, providerIds]);
561
+ const switchModelTab = useCallback(() => {
562
+ setModelTab((tab) => (tab === 'all' ? 'favorites' : 'all'));
496
563
  setModelSelectedIndex(0);
497
564
  setModelScrollOffset(0);
498
- setModelLoading(!cachedModels);
499
- setModelError(null);
500
- setBrowsingProvider(next);
501
- }, [catalogSession, modelProvider, phase]);
565
+ }, []);
502
566
  const movePoolUp = useCallback(() => {
503
567
  if (phase !== 'reorder' || selection.selectedIndex <= 0)
504
568
  return;
@@ -581,12 +645,14 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
581
645
  }
582
646
  }, [discardFromPhase, draft, draftModified, phase, setInput, selection.setSelectedIndex]);
583
647
  const saveIntent = useCallback((frameId) => {
584
- const result = mentorPoolSchema.safeParse(entries);
648
+ // Tier model pools persist plain model-id strings.
649
+ const value = entryShape === 'models' ? entries.map((entry) => entry.model) : entries;
650
+ const result = entryShape === 'models' ? tierPoolSchema.safeParse(value) : subagentPoolSchema(roleLabel).safeParse(entries);
585
651
  if (!result.success) {
586
- setErrorMessage(result.error.issues[0]?.message ?? 'Invalid mentor pool');
652
+ setErrorMessage(result.error.issues[0]?.message ?? `Invalid ${roleLabel.toLowerCase()} pool`);
587
653
  return null;
588
654
  }
589
- const persistence = settingsService.isRuntimeModifiable(SETTING_KEYS.AGENT_MENTOR_POOL) ? 'runtime' : 'restart';
655
+ const persistence = settingsService.isRuntimeModifiable(settingKey) ? 'runtime' : 'restart';
590
656
  return {
591
657
  stack: { type: 'keep' },
592
658
  intent: {
@@ -594,11 +660,11 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
594
660
  sourceFrameId: frameId,
595
661
  intent: {
596
662
  type: 'apply-settings',
597
- changes: [{ key: SETTING_KEYS.AGENT_MENTOR_POOL, value: result.data, persistence }],
663
+ changes: [{ key: settingKey, value, persistence }],
598
664
  },
599
665
  },
600
666
  };
601
- }, [entries, settingsService]);
667
+ }, [entries, entryShape, roleLabel, settingKey, settingsService]);
602
668
  return {
603
669
  phase,
604
670
  entries,
@@ -610,6 +676,8 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
610
676
  errorMessage,
611
677
  fieldErrors,
612
678
  modelProvider,
679
+ modelTab,
680
+ modelQuery: input,
613
681
  filteredModels,
614
682
  modelLoading,
615
683
  modelError,
@@ -626,7 +694,7 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
626
694
  pageModelUp,
627
695
  pageModelDown,
628
696
  refreshModels,
629
- toggleModelProvider,
697
+ switchModelTab,
630
698
  moveUp: selection.moveUp,
631
699
  moveDown: selection.moveDown,
632
700
  moveHome: selection.moveHome,
@@ -639,4 +707,4 @@ export function useMentorPoolSelection(settingsService, active, loggingService)
639
707
  saveIntent,
640
708
  };
641
709
  }
642
- //# sourceMappingURL=use-mentor-pool-selection.js.map
710
+ //# sourceMappingURL=use-subagent-pool-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-subagent-pool-selection.js","sourceRoot":"","sources":["../../source/hooks/use-subagent-pool-selection.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,7 @@ export declare class AgentClient {
46
46
  setBackgroundSubagentEventSink(sink: ((event: ConversationEvent) => void) | null): void;
47
47
  /** Session-owned queue/control delivery for pauses from adopted child runs. */
48
48
  setBackgroundSubagentApprovalPauseSink(sink: BackgroundSubagentApprovalPauseSink | null): void;
49
+ answerBackgroundSubagentQuestion(runId: string, messageId: string, answer: string): boolean;
49
50
  requestSessionRollover(request: SessionRolloverRequest): SessionRolloverRequestOutcome;
50
51
  consumeSessionRolloverRequest(): SessionRolloverConsumption;
51
52
  /** Exact nested-tool state shared with the subagent runtime's tool factory. */
@@ -77,6 +78,8 @@ export declare class AgentClient {
77
78
  sessionBrowser?: import('../services/conversation/session-browser.js').SessionBrowser;
78
79
  /** Supplied only by an owned root session client. */
79
80
  requestCapture?: ProviderRequestCapture;
81
+ /** Explicit gateway read-only posture; omitted for CLI sessions. */
82
+ readOnly?: boolean;
80
83
  };
81
84
  /** Test seam: inject a pre-built SubagentBridge instead of creating one. */
82
85
  subagentBridge?: SubagentBridge;