@qduc/term2 0.20.0 → 0.22.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 (896) hide show
  1. package/dist/agent.d.ts +2 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +176 -102
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.d.ts +1 -1
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +144 -41
  8. package/dist/app.js.map +1 -1
  9. package/dist/cli.js +197 -38
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/guarded-settings-command.d.ts.map +1 -1
  12. package/dist/commands/guarded-settings-command.js +33 -5
  13. package/dist/commands/guarded-settings-command.js.map +1 -1
  14. package/dist/commands/mode-commands.d.ts +17 -12
  15. package/dist/commands/mode-commands.d.ts.map +1 -1
  16. package/dist/commands/mode-commands.js +68 -44
  17. package/dist/commands/mode-commands.js.map +1 -1
  18. package/dist/components/InputBox.js +2 -3
  19. package/dist/components/InputBox.js.map +1 -1
  20. package/dist/components/common/MenuContainer.d.ts +5 -0
  21. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  22. package/dist/components/common/MenuContainer.js +13 -3
  23. package/dist/components/common/MenuContainer.js.map +1 -1
  24. package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
  25. package/dist/components/input/ApplicationInputSurface.js +4 -0
  26. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  27. package/dist/components/input/MenuSurface.d.ts.map +1 -1
  28. package/dist/components/input/MenuSurface.js +13 -2
  29. package/dist/components/input/MenuSurface.js.map +1 -1
  30. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  31. package/dist/components/input/ModelMenuSession.js +67 -16
  32. package/dist/components/input/ModelMenuSession.js.map +1 -1
  33. package/dist/components/input/ProfileMenuSession.d.ts +16 -0
  34. package/dist/components/input/ProfileMenuSession.d.ts.map +1 -0
  35. package/dist/components/input/ProfileMenuSession.js +64 -0
  36. package/dist/components/input/ProfileMenuSession.js.map +1 -0
  37. package/dist/components/input/SettingsMenuSession.d.ts.map +1 -1
  38. package/dist/components/input/SettingsMenuSession.js +56 -17
  39. package/dist/components/input/SettingsMenuSession.js.map +1 -1
  40. package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
  41. package/dist/components/input/SettingsValueMenuSession.js +33 -3
  42. package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
  43. package/dist/components/input/determine-active-menu.d.ts +3 -0
  44. package/dist/components/input/determine-active-menu.d.ts.map +1 -1
  45. package/dist/components/input/determine-active-menu.js +6 -1
  46. package/dist/components/input/determine-active-menu.js.map +1 -1
  47. package/dist/components/input/menu-registry.d.ts.map +1 -1
  48. package/dist/components/input/menu-registry.js +2 -0
  49. package/dist/components/input/menu-registry.js.map +1 -1
  50. package/dist/components/input/menu-types.d.ts +5 -1
  51. package/dist/components/input/menu-types.d.ts.map +1 -1
  52. package/dist/components/input/triggers.d.ts +1 -0
  53. package/dist/components/input/triggers.d.ts.map +1 -1
  54. package/dist/components/input/triggers.js +28 -2
  55. package/dist/components/input/triggers.js.map +1 -1
  56. package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
  57. package/dist/components/layout/BackgroundTaskManager.js +6 -2
  58. package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
  59. package/dist/components/layout/BackgroundTasksPanel.d.ts +0 -1
  60. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  61. package/dist/components/layout/BackgroundTasksPanel.js +4 -104
  62. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  63. package/dist/components/layout/Banner.d.ts.map +1 -1
  64. package/dist/components/layout/Banner.js +10 -5
  65. package/dist/components/layout/Banner.js.map +1 -1
  66. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  67. package/dist/components/layout/StatusBar.js +25 -12
  68. package/dist/components/layout/StatusBar.js.map +1 -1
  69. package/dist/components/menu/ModelSelectionMenu.d.ts +10 -0
  70. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  71. package/dist/components/menu/ModelSelectionMenu.js +85 -16
  72. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  73. package/dist/components/menu/ProfileSelectionMenu.d.ts +12 -0
  74. package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -0
  75. package/dist/components/menu/ProfileSelectionMenu.js +49 -0
  76. package/dist/components/menu/ProfileSelectionMenu.js.map +1 -0
  77. package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
  78. package/dist/components/menu/ResumeSelectionMenu.js +9 -19
  79. package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
  80. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  81. package/dist/components/menu/SettingsSelectionMenu.js +4 -32
  82. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  83. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  84. package/dist/components/menu/SettingsValueSelectionMenu.js +12 -5
  85. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  86. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  87. package/dist/components/menu/SkillSelectionMenu.js +3 -6
  88. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  89. package/dist/components/menu/SlashCommandMenu.d.ts +8 -0
  90. package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
  91. package/dist/components/menu/SlashCommandMenu.js +16 -6
  92. package/dist/components/menu/SlashCommandMenu.js.map +1 -1
  93. package/dist/components/menu/StandaloneModelPickerApp.d.ts +40 -0
  94. package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -0
  95. package/dist/components/menu/StandaloneModelPickerApp.js +106 -0
  96. package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -0
  97. package/dist/components/menu/settings-value-formatter.d.ts +11 -0
  98. package/dist/components/menu/settings-value-formatter.d.ts.map +1 -0
  99. package/dist/components/menu/settings-value-formatter.js +214 -0
  100. package/dist/components/menu/settings-value-formatter.js.map +1 -0
  101. package/dist/components/message/ChatMessage.js +1 -1
  102. package/dist/components/message/ChatMessage.js.map +1 -1
  103. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  104. package/dist/components/message/CommandMessage.js +22 -17
  105. package/dist/components/message/CommandMessage.js.map +1 -1
  106. package/dist/components/message/MessageList.d.ts.map +1 -1
  107. package/dist/components/message/MessageList.js +28 -11
  108. package/dist/components/message/MessageList.js.map +1 -1
  109. package/dist/components/message/RunCodeRenderer.d.ts +16 -0
  110. package/dist/components/message/RunCodeRenderer.d.ts.map +1 -0
  111. package/dist/components/message/RunCodeRenderer.js +25 -0
  112. package/dist/components/message/RunCodeRenderer.js.map +1 -0
  113. package/dist/components/message/command-message-helpers.d.ts +35 -5
  114. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  115. package/dist/components/message/command-message-helpers.js +85 -0
  116. package/dist/components/message/command-message-helpers.js.map +1 -1
  117. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  118. package/dist/components/prompt/ApprovalPrompt.js +12 -21
  119. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  120. package/dist/components/theme.d.ts +1 -0
  121. package/dist/components/theme.d.ts.map +1 -1
  122. package/dist/components/theme.js +1 -0
  123. package/dist/components/theme.js.map +1 -1
  124. package/dist/context/InputContext.d.ts +1 -1
  125. package/dist/context/InputContext.d.ts.map +1 -1
  126. package/dist/context/InputContext.js +8 -0
  127. package/dist/context/InputContext.js.map +1 -1
  128. package/dist/contracts/session-rollover.d.ts +9 -1
  129. package/dist/contracts/session-rollover.d.ts.map +1 -1
  130. package/dist/contracts/streamed-model-turn.d.ts +26 -2
  131. package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
  132. package/dist/gateway/gateway.d.ts.map +1 -1
  133. package/dist/gateway/gateway.js +19 -23
  134. package/dist/gateway/gateway.js.map +1 -1
  135. package/dist/gateway/launcher-seam.d.ts.map +1 -1
  136. package/dist/gateway/launcher-seam.js +2 -19
  137. package/dist/gateway/launcher-seam.js.map +1 -1
  138. package/dist/gateway/settings-rpc.d.ts +1 -1
  139. package/dist/gateway/settings-rpc.d.ts.map +1 -1
  140. package/dist/gateway/settings-rpc.js +2 -0
  141. package/dist/gateway/settings-rpc.js.map +1 -1
  142. package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
  143. package/dist/hooks/conversation-ui-reducer.js +5 -2
  144. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  145. package/dist/hooks/settings-completion-config.d.ts +1 -1
  146. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  147. package/dist/hooks/settings-completion-config.js +16 -110
  148. package/dist/hooks/settings-completion-config.js.map +1 -1
  149. package/dist/hooks/settings-completion-logic.d.ts +1 -1
  150. package/dist/hooks/settings-completion-logic.d.ts.map +1 -1
  151. package/dist/hooks/settings-completion-logic.js.map +1 -1
  152. package/dist/hooks/use-app-commands.d.ts +3 -1
  153. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  154. package/dist/hooks/use-app-commands.js +21 -14
  155. package/dist/hooks/use-app-commands.js.map +1 -1
  156. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
  157. package/dist/hooks/use-app-keyboard-shortcuts.js +33 -20
  158. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
  159. package/dist/hooks/use-conversation.d.ts +5 -2
  160. package/dist/hooks/use-conversation.d.ts.map +1 -1
  161. package/dist/hooks/use-conversation.js +108 -17
  162. package/dist/hooks/use-conversation.js.map +1 -1
  163. package/dist/hooks/use-handoff-flow.d.ts +1 -0
  164. package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
  165. package/dist/hooks/use-handoff-flow.js +19 -12
  166. package/dist/hooks/use-handoff-flow.js.map +1 -1
  167. package/dist/hooks/use-model-selection.d.ts +33 -4
  168. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  169. package/dist/hooks/use-model-selection.js +204 -114
  170. package/dist/hooks/use-model-selection.js.map +1 -1
  171. package/dist/hooks/use-profile-selection.d.ts +34 -0
  172. package/dist/hooks/use-profile-selection.d.ts.map +1 -0
  173. package/dist/hooks/use-profile-selection.js +103 -0
  174. package/dist/hooks/use-profile-selection.js.map +1 -0
  175. package/dist/hooks/use-resume-selection.d.ts +2 -0
  176. package/dist/hooks/use-resume-selection.d.ts.map +1 -1
  177. package/dist/hooks/use-resume-selection.js +11 -9
  178. package/dist/hooks/use-resume-selection.js.map +1 -1
  179. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  180. package/dist/hooks/use-settings-completion.js +1 -6
  181. package/dist/hooks/use-settings-completion.js.map +1 -1
  182. package/dist/hooks/use-settings-value-completion.d.ts +1 -8
  183. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  184. package/dist/hooks/use-settings-value-completion.js +20 -94
  185. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  186. package/dist/hooks/use-skill-selection.d.ts +5 -3
  187. package/dist/hooks/use-skill-selection.d.ts.map +1 -1
  188. package/dist/hooks/use-skill-selection.js +8 -6
  189. package/dist/hooks/use-skill-selection.js.map +1 -1
  190. package/dist/hooks/use-standalone-model-picker.d.ts +64 -0
  191. package/dist/hooks/use-standalone-model-picker.d.ts.map +1 -0
  192. package/dist/hooks/use-standalone-model-picker.js +310 -0
  193. package/dist/hooks/use-standalone-model-picker.js.map +1 -0
  194. package/dist/lib/agent-client.d.ts +17 -1
  195. package/dist/lib/agent-client.d.ts.map +1 -1
  196. package/dist/lib/agent-client.js +211 -55
  197. package/dist/lib/agent-client.js.map +1 -1
  198. package/dist/lib/agent-configuration.d.ts +12 -3
  199. package/dist/lib/agent-configuration.d.ts.map +1 -1
  200. package/dist/lib/agent-configuration.js +27 -11
  201. package/dist/lib/agent-configuration.js.map +1 -1
  202. package/dist/lib/agent-factory.d.ts +3 -0
  203. package/dist/lib/agent-factory.d.ts.map +1 -1
  204. package/dist/lib/agent-factory.js +110 -46
  205. package/dist/lib/agent-factory.js.map +1 -1
  206. package/dist/lib/ask-user-answer-store.d.ts +1 -0
  207. package/dist/lib/ask-user-answer-store.d.ts.map +1 -1
  208. package/dist/lib/ask-user-answer-store.js +3 -0
  209. package/dist/lib/ask-user-answer-store.js.map +1 -1
  210. package/dist/lib/harness-input-idle.d.ts +10 -0
  211. package/dist/lib/harness-input-idle.d.ts.map +1 -1
  212. package/dist/lib/harness-input-idle.js +47 -5
  213. package/dist/lib/harness-input-idle.js.map +1 -1
  214. package/dist/lib/tool-invoke.d.ts +1 -0
  215. package/dist/lib/tool-invoke.d.ts.map +1 -1
  216. package/dist/lib/tool-invoke.js +1 -0
  217. package/dist/lib/tool-invoke.js.map +1 -1
  218. package/dist/non-interactive.d.ts +23 -0
  219. package/dist/non-interactive.d.ts.map +1 -1
  220. package/dist/non-interactive.js +231 -37
  221. package/dist/non-interactive.js.map +1 -1
  222. package/dist/prompts/background-shell.d.ts.map +1 -1
  223. package/dist/prompts/background-shell.js +4 -2
  224. package/dist/prompts/background-shell.js.map +1 -1
  225. package/dist/prompts/background-shell.ts +4 -2
  226. package/dist/prompts/codex.md +1 -3
  227. package/dist/prompts/fragments/gpt-6-astra.md +13 -0
  228. package/dist/prompts/gpt-5-modern.md +1 -3
  229. package/dist/prompts/gpt-5.4-mini.md +0 -2
  230. package/dist/prompts/gpt-5.5.md +0 -2
  231. package/dist/prompts/gpt-5.6.md +0 -1
  232. package/dist/prompts/lite.md +1 -6
  233. package/dist/prompts/memory.md +2 -2
  234. package/dist/prompts/orchestrator.md +4 -4
  235. package/dist/prompts/prefix-quality.test.ts +8 -5
  236. package/dist/prompts/prompt-constructor.d.ts +7 -6
  237. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  238. package/dist/prompts/prompt-constructor.js +17 -7
  239. package/dist/prompts/prompt-constructor.js.map +1 -1
  240. package/dist/prompts/prompt-constructor.test.ts +250 -52
  241. package/dist/prompts/prompt-constructor.ts +27 -13
  242. package/dist/prompts/prompt-profiles.d.ts.map +1 -1
  243. package/dist/prompts/prompt-profiles.js +6 -0
  244. package/dist/prompts/prompt-profiles.js.map +1 -1
  245. package/dist/prompts/prompt-profiles.test.ts +6 -4
  246. package/dist/prompts/prompt-profiles.ts +6 -0
  247. package/dist/prompts/session-browser.md +5 -1
  248. package/dist/prompts/shell-auto-approval.d.ts +2 -2
  249. package/dist/prompts/shell-auto-approval.d.ts.map +1 -1
  250. package/dist/prompts/shell-auto-approval.js +19 -16
  251. package/dist/prompts/shell-auto-approval.js.map +1 -1
  252. package/dist/prompts/shell-auto-approval.ts +19 -16
  253. package/dist/prompts/subagent-delegation.js +3 -3
  254. package/dist/prompts/subagent-delegation.js.map +1 -1
  255. package/dist/prompts/subagent-delegation.test.ts +3 -3
  256. package/dist/prompts/subagent-delegation.ts +3 -3
  257. package/dist/prompts/subagents/librarian.md +4 -4
  258. package/dist/prompts/subagents/worker-prompt.test.ts +7 -0
  259. package/dist/prompts/tool-surface-guidance.d.ts +4 -0
  260. package/dist/prompts/tool-surface-guidance.d.ts.map +1 -0
  261. package/dist/prompts/tool-surface-guidance.js +19 -0
  262. package/dist/prompts/tool-surface-guidance.js.map +1 -0
  263. package/dist/prompts/tool-surface-guidance.ts +20 -0
  264. package/dist/providers/aborted-stream-recorder.js +2 -1
  265. package/dist/providers/aborted-stream-recorder.js.map +1 -1
  266. package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
  267. package/dist/providers/ai-sdk-streamed-model.js +7 -0
  268. package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
  269. package/dist/providers/codex-compact.d.ts +2 -0
  270. package/dist/providers/codex-compact.d.ts.map +1 -1
  271. package/dist/providers/codex-compact.js +14 -0
  272. package/dist/providers/codex-compact.js.map +1 -1
  273. package/dist/providers/codex-responses-model.d.ts +23 -3
  274. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  275. package/dist/providers/codex-responses-model.js +193 -44
  276. package/dist/providers/codex-responses-model.js.map +1 -1
  277. package/dist/providers/codex-turn-converter.d.ts.map +1 -1
  278. package/dist/providers/codex-turn-converter.js +21 -4
  279. package/dist/providers/codex-turn-converter.js.map +1 -1
  280. package/dist/providers/codex.provider.d.ts +2 -0
  281. package/dist/providers/codex.provider.d.ts.map +1 -1
  282. package/dist/providers/codex.provider.js +4 -2
  283. package/dist/providers/codex.provider.js.map +1 -1
  284. package/dist/providers/fetch/logging-middleware.d.ts.map +1 -1
  285. package/dist/providers/fetch/logging-middleware.js +22 -2
  286. package/dist/providers/fetch/logging-middleware.js.map +1 -1
  287. package/dist/providers/grok.provider.d.ts.map +1 -1
  288. package/dist/providers/grok.provider.js +5 -2
  289. package/dist/providers/grok.provider.js.map +1 -1
  290. package/dist/providers/model-catalog/catalog.generated.d.ts +453 -309
  291. package/dist/providers/model-catalog/catalog.generated.d.ts.map +1 -1
  292. package/dist/providers/model-catalog/catalog.generated.js +453 -309
  293. package/dist/providers/model-catalog/catalog.generated.js.map +1 -1
  294. package/dist/providers/openai-chat-completions-model.js +119 -50
  295. package/dist/providers/openai-chat-completions-model.js.map +1 -1
  296. package/dist/providers/openai-responses-model.d.ts.map +1 -1
  297. package/dist/providers/openai-responses-model.js +131 -15
  298. package/dist/providers/openai-responses-model.js.map +1 -1
  299. package/dist/providers/opencode-session.d.ts.map +1 -1
  300. package/dist/providers/opencode-session.js +5 -0
  301. package/dist/providers/opencode-session.js.map +1 -1
  302. package/dist/providers/openrouter.provider.js +8 -1
  303. package/dist/providers/openrouter.provider.js.map +1 -1
  304. package/dist/providers/registry.d.ts +1 -1
  305. package/dist/providers/registry.d.ts.map +1 -1
  306. package/dist/providers/responses-websocket-sessions.d.ts +10 -0
  307. package/dist/providers/responses-websocket-sessions.d.ts.map +1 -1
  308. package/dist/providers/responses-websocket-sessions.js +9 -4
  309. package/dist/providers/responses-websocket-sessions.js.map +1 -1
  310. package/dist/providers/retrying-model.d.ts +2 -1
  311. package/dist/providers/retrying-model.d.ts.map +1 -1
  312. package/dist/providers/retrying-model.js +14 -2
  313. package/dist/providers/retrying-model.js.map +1 -1
  314. package/dist/services/agent-runtime/application-run-loop.d.ts +11 -2
  315. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  316. package/dist/services/agent-runtime/application-run-loop.js +128 -24
  317. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  318. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.d.ts +2 -3
  319. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.d.ts.map +1 -1
  320. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js +18 -9
  321. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js.map +1 -1
  322. package/dist/services/agent-runtime/context-compaction/index.d.ts +2 -0
  323. package/dist/services/agent-runtime/context-compaction/index.d.ts.map +1 -1
  324. package/dist/services/agent-runtime/context-compaction/index.js +30 -4
  325. package/dist/services/agent-runtime/context-compaction/index.js.map +1 -1
  326. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts +3 -0
  327. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
  328. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +15 -9
  329. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
  330. package/dist/services/agent-runtime/generation-guard.d.ts +25 -1
  331. package/dist/services/agent-runtime/generation-guard.d.ts.map +1 -1
  332. package/dist/services/agent-runtime/generation-guard.js +105 -1
  333. package/dist/services/agent-runtime/generation-guard.js.map +1 -1
  334. package/dist/services/agent-runtime/tool-invocation-context.d.ts +12 -0
  335. package/dist/services/agent-runtime/tool-invocation-context.d.ts.map +1 -1
  336. package/dist/services/agent-runtime/workflow/workflow-evaluator.d.ts +7 -1
  337. package/dist/services/agent-runtime/workflow/workflow-evaluator.d.ts.map +1 -1
  338. package/dist/services/agent-runtime/workflow/workflow-evaluator.js +78 -183
  339. package/dist/services/agent-runtime/workflow/workflow-evaluator.js.map +1 -1
  340. package/dist/services/agent-runtime/workflow/workflow-sandbox.d.ts +4 -3
  341. package/dist/services/agent-runtime/workflow/workflow-sandbox.d.ts.map +1 -1
  342. package/dist/services/agent-runtime/workflow/workflow-sandbox.js +9 -7
  343. package/dist/services/agent-runtime/workflow/workflow-sandbox.js.map +1 -1
  344. package/dist/services/agent-runtime/workflow/workflow-types.d.ts +1 -1
  345. package/dist/services/agent-runtime/workflow/workflow-types.d.ts.map +1 -1
  346. package/dist/services/agent-runtime/workflow/workflow-types.js.map +1 -1
  347. package/dist/services/agent-stream.d.ts +2 -0
  348. package/dist/services/agent-stream.d.ts.map +1 -1
  349. package/dist/services/agent-stream.js.map +1 -1
  350. package/dist/services/approval/approval-decision-executor.d.ts +2 -1
  351. package/dist/services/approval/approval-decision-executor.d.ts.map +1 -1
  352. package/dist/services/approval/approval-decision-executor.js +22 -116
  353. package/dist/services/approval/approval-decision-executor.js.map +1 -1
  354. package/dist/services/approval/approval-decision-policy.js +2 -2
  355. package/dist/services/approval/approval-decision-policy.js.map +1 -1
  356. package/dist/services/approval/approval-descriptor.d.ts +10 -0
  357. package/dist/services/approval/approval-descriptor.d.ts.map +1 -0
  358. package/dist/services/approval/approval-descriptor.js +23 -0
  359. package/dist/services/approval/approval-descriptor.js.map +1 -0
  360. package/dist/services/approval/approval-flow-coordinator.d.ts +2 -1
  361. package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
  362. package/dist/services/approval/approval-flow-coordinator.js +2 -1
  363. package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
  364. package/dist/services/approval/approval-grant-executor.d.ts +25 -0
  365. package/dist/services/approval/approval-grant-executor.d.ts.map +1 -0
  366. package/dist/services/approval/approval-grant-executor.js +125 -0
  367. package/dist/services/approval/approval-grant-executor.js.map +1 -0
  368. package/dist/services/approval/background-subagent-approval-controller.d.ts +2 -1
  369. package/dist/services/approval/background-subagent-approval-controller.d.ts.map +1 -1
  370. package/dist/services/approval/background-subagent-approval-controller.js.map +1 -1
  371. package/dist/services/approval/nested-approval-owner.d.ts +52 -0
  372. package/dist/services/approval/nested-approval-owner.d.ts.map +1 -0
  373. package/dist/services/approval/nested-approval-owner.js +194 -0
  374. package/dist/services/approval/nested-approval-owner.js.map +1 -0
  375. package/dist/services/approval/non-interactive-approval-policy.js +1 -1
  376. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  377. package/dist/services/approval/shell-auto-approval-evaluator.d.ts +5 -1
  378. package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
  379. package/dist/services/approval/shell-auto-approval-evaluator.js +44 -22
  380. package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
  381. package/dist/services/approval/shell-auto-approval-resolver.d.ts +5 -0
  382. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  383. package/dist/services/approval/shell-auto-approval-resolver.js +121 -20
  384. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  385. package/dist/services/approval/tool-approval-batch-coordinator.d.ts +10 -3
  386. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  387. package/dist/services/approval/tool-approval-batch-coordinator.js +36 -8
  388. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  389. package/dist/services/approval/tool-approval-policy-registry.d.ts +13 -0
  390. package/dist/services/approval/tool-approval-policy-registry.d.ts.map +1 -1
  391. package/dist/services/approval/tool-approval-policy-registry.js +16 -1
  392. package/dist/services/approval/tool-approval-policy-registry.js.map +1 -1
  393. package/dist/services/conversation/conversation-adapter-factory.d.ts +3 -1
  394. package/dist/services/conversation/conversation-adapter-factory.d.ts.map +1 -1
  395. package/dist/services/conversation/conversation-adapter-factory.js +3 -3
  396. package/dist/services/conversation/conversation-adapter-factory.js.map +1 -1
  397. package/dist/services/conversation/conversation-adapter.d.ts +3 -2
  398. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  399. package/dist/services/conversation/conversation-adapter.js +34 -32
  400. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  401. package/dist/services/conversation/conversation-decoder.d.ts.map +1 -1
  402. package/dist/services/conversation/conversation-decoder.js +6 -2
  403. package/dist/services/conversation/conversation-decoder.js.map +1 -1
  404. package/dist/services/conversation/conversation-orchestrator.d.ts +11 -0
  405. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  406. package/dist/services/conversation/conversation-orchestrator.js +79 -43
  407. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  408. package/dist/services/conversation/conversation-persistence.d.ts +35 -0
  409. package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
  410. package/dist/services/conversation/conversation-persistence.js +162 -19
  411. package/dist/services/conversation/conversation-persistence.js.map +1 -1
  412. package/dist/services/conversation/conversation-replay.d.ts +2 -0
  413. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  414. package/dist/services/conversation/conversation-replay.js +71 -57
  415. package/dist/services/conversation/conversation-replay.js.map +1 -1
  416. package/dist/services/conversation/conversation-result-builder.d.ts +3 -0
  417. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  418. package/dist/services/conversation/conversation-result-builder.js +48 -27
  419. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  420. package/dist/services/conversation/conversation-runtime-factory.d.ts +5 -0
  421. package/dist/services/conversation/conversation-runtime-factory.d.ts.map +1 -1
  422. package/dist/services/conversation/conversation-runtime-factory.js +1 -0
  423. package/dist/services/conversation/conversation-runtime-factory.js.map +1 -1
  424. package/dist/services/conversation/conversation-service.d.ts +14 -3
  425. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  426. package/dist/services/conversation/conversation-service.js +104 -32
  427. package/dist/services/conversation/conversation-service.js.map +1 -1
  428. package/dist/services/conversation/session-browser.d.ts +35 -23
  429. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  430. package/dist/services/conversation/session-browser.js +338 -67
  431. package/dist/services/conversation/session-browser.js.map +1 -1
  432. package/dist/services/conversation/session-index/session-index-database.d.ts +138 -0
  433. package/dist/services/conversation/session-index/session-index-database.d.ts.map +1 -0
  434. package/dist/services/conversation/session-index/session-index-database.js +684 -0
  435. package/dist/services/conversation/session-index/session-index-database.js.map +1 -0
  436. package/dist/services/conversation/session-index/session-index-schema.d.ts +35 -0
  437. package/dist/services/conversation/session-index/session-index-schema.d.ts.map +1 -0
  438. package/dist/services/conversation/session-index/session-index-schema.js +156 -0
  439. package/dist/services/conversation/session-index/session-index-schema.js.map +1 -0
  440. package/dist/services/conversation/session-index/session-index-service.d.ts +30 -0
  441. package/dist/services/conversation/session-index/session-index-service.d.ts.map +1 -0
  442. package/dist/services/conversation/session-index/session-index-service.js +234 -0
  443. package/dist/services/conversation/session-index/session-index-service.js.map +1 -0
  444. package/dist/services/conversation/session-index/session-index-worker-client.d.ts +36 -0
  445. package/dist/services/conversation/session-index/session-index-worker-client.d.ts.map +1 -0
  446. package/dist/services/conversation/session-index/session-index-worker-client.js +143 -0
  447. package/dist/services/conversation/session-index/session-index-worker-client.js.map +1 -0
  448. package/dist/services/conversation/session-index/session-index-worker.d.ts +56 -0
  449. package/dist/services/conversation/session-index/session-index-worker.d.ts.map +1 -0
  450. package/dist/services/conversation/session-index/session-index-worker.js +96 -0
  451. package/dist/services/conversation/session-index/session-index-worker.js.map +1 -0
  452. package/dist/services/conversation/session-search-helpers.d.ts +4 -0
  453. package/dist/services/conversation/session-search-helpers.d.ts.map +1 -0
  454. package/dist/services/conversation/session-search-helpers.js +13 -0
  455. package/dist/services/conversation/session-search-helpers.js.map +1 -0
  456. package/dist/services/conversation-agent-client.d.ts +8 -0
  457. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  458. package/dist/services/execution-context.js +2 -2
  459. package/dist/services/execution-context.js.map +1 -1
  460. package/dist/services/handoff/handoff-session.d.ts +2 -0
  461. package/dist/services/handoff/handoff-session.d.ts.map +1 -1
  462. package/dist/services/handoff/handoff-session.js +19 -3
  463. package/dist/services/handoff/handoff-session.js.map +1 -1
  464. package/dist/services/hooks/hook-event-factory.d.ts +2 -1
  465. package/dist/services/hooks/hook-event-factory.d.ts.map +1 -1
  466. package/dist/services/hooks/hook-event-factory.js +2 -1
  467. package/dist/services/hooks/hook-event-factory.js.map +1 -1
  468. package/dist/services/logging/conversation-log-events.d.ts +30 -3
  469. package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
  470. package/dist/services/logging/conversation-log-events.js +1 -4
  471. package/dist/services/logging/conversation-log-events.js.map +1 -1
  472. package/dist/services/logging/conversation-log-writer.d.ts.map +1 -1
  473. package/dist/services/logging/conversation-log-writer.js +50 -26
  474. package/dist/services/logging/conversation-log-writer.js.map +1 -1
  475. package/dist/services/logging/logging-service.d.ts +1 -0
  476. package/dist/services/logging/logging-service.d.ts.map +1 -1
  477. package/dist/services/logging/logging-service.js +6 -2
  478. package/dist/services/logging/logging-service.js.map +1 -1
  479. package/dist/services/logging/provider-traffic.d.ts +29 -2
  480. package/dist/services/logging/provider-traffic.d.ts.map +1 -1
  481. package/dist/services/logging/provider-traffic.js +251 -21
  482. package/dist/services/logging/provider-traffic.js.map +1 -1
  483. package/dist/services/memory/memory-capabilities.d.ts.map +1 -1
  484. package/dist/services/memory/memory-capabilities.js +17 -5
  485. package/dist/services/memory/memory-capabilities.js.map +1 -1
  486. package/dist/services/memory/memory-store.d.ts +17 -0
  487. package/dist/services/memory/memory-store.d.ts.map +1 -1
  488. package/dist/services/memory/memory-store.js +71 -26
  489. package/dist/services/memory/memory-store.js.map +1 -1
  490. package/dist/services/mode-notices.d.ts +12 -9
  491. package/dist/services/mode-notices.d.ts.map +1 -1
  492. package/dist/services/mode-notices.js +83 -54
  493. package/dist/services/mode-notices.js.map +1 -1
  494. package/dist/services/model-service.d.ts +64 -4
  495. package/dist/services/model-service.d.ts.map +1 -1
  496. package/dist/services/model-service.js +303 -21
  497. package/dist/services/model-service.js.map +1 -1
  498. package/dist/services/models/model-catalog-session.d.ts +6 -0
  499. package/dist/services/models/model-catalog-session.d.ts.map +1 -1
  500. package/dist/services/models/model-catalog-session.js +18 -10
  501. package/dist/services/models/model-catalog-session.js.map +1 -1
  502. package/dist/services/models/model-favorites.d.ts +56 -0
  503. package/dist/services/models/model-favorites.d.ts.map +1 -0
  504. package/dist/services/models/model-favorites.js +93 -0
  505. package/dist/services/models/model-favorites.js.map +1 -0
  506. package/dist/services/models/model-listing.d.ts +97 -0
  507. package/dist/services/models/model-listing.d.ts.map +1 -0
  508. package/dist/services/models/model-listing.js +129 -0
  509. package/dist/services/models/model-listing.js.map +1 -0
  510. package/dist/services/models/model-nicknames.d.ts +113 -0
  511. package/dist/services/models/model-nicknames.d.ts.map +1 -0
  512. package/dist/services/models/model-nicknames.js +182 -0
  513. package/dist/services/models/model-nicknames.js.map +1 -0
  514. package/dist/services/models/model-picker-host.d.ts +72 -0
  515. package/dist/services/models/model-picker-host.d.ts.map +1 -0
  516. package/dist/services/models/model-picker-host.js +83 -0
  517. package/dist/services/models/model-picker-host.js.map +1 -0
  518. package/dist/services/models/model-resolution.d.ts +120 -0
  519. package/dist/services/models/model-resolution.d.ts.map +1 -0
  520. package/dist/services/models/model-resolution.js +521 -0
  521. package/dist/services/models/model-resolution.js.map +1 -0
  522. package/dist/services/models/reasoning-effort.d.ts +20 -0
  523. package/dist/services/models/reasoning-effort.d.ts.map +1 -0
  524. package/dist/services/models/reasoning-effort.js +28 -0
  525. package/dist/services/models/reasoning-effort.js.map +1 -0
  526. package/dist/services/models/unified-model-catalog.d.ts +4 -0
  527. package/dist/services/models/unified-model-catalog.d.ts.map +1 -0
  528. package/dist/services/models/unified-model-catalog.js +54 -0
  529. package/dist/services/models/unified-model-catalog.js.map +1 -0
  530. package/dist/services/plan-mode-interceptor.d.ts.map +1 -1
  531. package/dist/services/plan-mode-interceptor.js +5 -6
  532. package/dist/services/plan-mode-interceptor.js.map +1 -1
  533. package/dist/services/profiles/active-profile.d.ts +5 -0
  534. package/dist/services/profiles/active-profile.d.ts.map +1 -0
  535. package/dist/services/profiles/active-profile.js +33 -0
  536. package/dist/services/profiles/active-profile.js.map +1 -0
  537. package/dist/services/profiles/index.d.ts +9 -0
  538. package/dist/services/profiles/index.d.ts.map +1 -0
  539. package/dist/services/profiles/index.js +9 -0
  540. package/dist/services/profiles/index.js.map +1 -0
  541. package/dist/services/profiles/labels.d.ts +7 -0
  542. package/dist/services/profiles/labels.d.ts.map +1 -0
  543. package/dist/services/profiles/labels.js +22 -0
  544. package/dist/services/profiles/labels.js.map +1 -0
  545. package/dist/services/profiles/legacy-adapter.d.ts +28 -0
  546. package/dist/services/profiles/legacy-adapter.d.ts.map +1 -0
  547. package/dist/services/profiles/legacy-adapter.js +69 -0
  548. package/dist/services/profiles/legacy-adapter.js.map +1 -0
  549. package/dist/services/profiles/profile-transition.d.ts +48 -0
  550. package/dist/services/profiles/profile-transition.d.ts.map +1 -0
  551. package/dist/services/profiles/profile-transition.js +109 -0
  552. package/dist/services/profiles/profile-transition.js.map +1 -0
  553. package/dist/services/profiles/registry.d.ts +17 -0
  554. package/dist/services/profiles/registry.d.ts.map +1 -0
  555. package/dist/services/profiles/registry.js +147 -0
  556. package/dist/services/profiles/registry.js.map +1 -0
  557. package/dist/services/profiles/resolver.d.ts +10 -0
  558. package/dist/services/profiles/resolver.d.ts.map +1 -0
  559. package/dist/services/profiles/resolver.js +573 -0
  560. package/dist/services/profiles/resolver.js.map +1 -0
  561. package/dist/services/profiles/schema.d.ts +960 -0
  562. package/dist/services/profiles/schema.d.ts.map +1 -0
  563. package/dist/services/profiles/schema.js +196 -0
  564. package/dist/services/profiles/schema.js.map +1 -0
  565. package/dist/services/profiles/types.d.ts +224 -0
  566. package/dist/services/profiles/types.d.ts.map +1 -0
  567. package/dist/services/profiles/types.js +9 -0
  568. package/dist/services/profiles/types.js.map +1 -0
  569. package/dist/services/retry/committed-tool-continuation.d.ts +5 -0
  570. package/dist/services/retry/committed-tool-continuation.d.ts.map +1 -1
  571. package/dist/services/retry/committed-tool-continuation.js +6 -3
  572. package/dist/services/retry/committed-tool-continuation.js.map +1 -1
  573. package/dist/services/retry/provider-failure-classification.d.ts +16 -0
  574. package/dist/services/retry/provider-failure-classification.d.ts.map +1 -1
  575. package/dist/services/retry/provider-failure-classification.js +45 -0
  576. package/dist/services/retry/provider-failure-classification.js.map +1 -1
  577. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  578. package/dist/services/retry/retry-classifier.js +13 -10
  579. package/dist/services/retry/retry-classifier.js.map +1 -1
  580. package/dist/services/retry/retry-error-classification.d.ts +7 -0
  581. package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
  582. package/dist/services/retry/retry-error-classification.js +32 -9
  583. package/dist/services/retry/retry-error-classification.js.map +1 -1
  584. package/dist/services/retry/retry-recovery-budget.d.ts +26 -1
  585. package/dist/services/retry/retry-recovery-budget.d.ts.map +1 -1
  586. package/dist/services/retry/retry-recovery-budget.js +33 -1
  587. package/dist/services/retry/retry-recovery-budget.js.map +1 -1
  588. package/dist/services/runtime-setting-router.d.ts.map +1 -1
  589. package/dist/services/runtime-setting-router.js +76 -23
  590. package/dist/services/runtime-setting-router.js.map +1 -1
  591. package/dist/services/sandboxed-code-host/host-types.d.ts +135 -0
  592. package/dist/services/sandboxed-code-host/host-types.d.ts.map +1 -0
  593. package/dist/services/sandboxed-code-host/host-types.js +6 -0
  594. package/dist/services/sandboxed-code-host/host-types.js.map +1 -0
  595. package/dist/services/sandboxed-code-host/host-worker.d.ts +9 -0
  596. package/dist/services/sandboxed-code-host/host-worker.d.ts.map +1 -0
  597. package/dist/services/sandboxed-code-host/host-worker.js +351 -0
  598. package/dist/services/sandboxed-code-host/host-worker.js.map +1 -0
  599. package/dist/services/sandboxed-code-host/sandbox.d.ts +16 -0
  600. package/dist/services/sandboxed-code-host/sandbox.d.ts.map +1 -0
  601. package/dist/services/sandboxed-code-host/sandbox.js +21 -0
  602. package/dist/services/sandboxed-code-host/sandbox.js.map +1 -0
  603. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts +17 -0
  604. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts.map +1 -0
  605. package/dist/services/sandboxed-code-host/sandboxed-code-host.js +347 -0
  606. package/dist/services/sandboxed-code-host/sandboxed-code-host.js.map +1 -0
  607. package/dist/services/service-interfaces.d.ts +32 -0
  608. package/dist/services/service-interfaces.d.ts.map +1 -1
  609. package/dist/services/session/background-task-control.d.ts +3 -1
  610. package/dist/services/session/background-task-control.d.ts.map +1 -1
  611. package/dist/services/session/background-task-control.js +4 -0
  612. package/dist/services/session/background-task-control.js.map +1 -1
  613. package/dist/services/session/continuation-plan-applier.d.ts +2 -1
  614. package/dist/services/session/continuation-plan-applier.d.ts.map +1 -1
  615. package/dist/services/session/continuation-plan-applier.js.map +1 -1
  616. package/dist/services/session/continuation-recovery-handler.d.ts +2 -1
  617. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  618. package/dist/services/session/continuation-recovery-handler.js +49 -5
  619. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  620. package/dist/services/session/initial-input-preparer.d.ts +2 -1
  621. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  622. package/dist/services/session/initial-input-preparer.js +2 -1
  623. package/dist/services/session/initial-input-preparer.js.map +1 -1
  624. package/dist/services/session/initial-turn-recovery-handler.d.ts +2 -1
  625. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  626. package/dist/services/session/initial-turn-recovery-handler.js +55 -20
  627. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  628. package/dist/services/session/post-execute-pending-registry.d.ts +2 -1
  629. package/dist/services/session/post-execute-pending-registry.d.ts.map +1 -1
  630. package/dist/services/session/post-execute-pending-registry.js +3 -2
  631. package/dist/services/session/post-execute-pending-registry.js.map +1 -1
  632. package/dist/services/session/session-client-factory.d.ts +4 -0
  633. package/dist/services/session/session-client-factory.d.ts.map +1 -1
  634. package/dist/services/session/session-client-factory.js +12 -4
  635. package/dist/services/session/session-client-factory.js.map +1 -1
  636. package/dist/services/session/session-composition.d.ts +26 -2
  637. package/dist/services/session/session-composition.d.ts.map +1 -1
  638. package/dist/services/session/session-composition.js +97 -18
  639. package/dist/services/session/session-composition.js.map +1 -1
  640. package/dist/services/session/session-continuity-reset.d.ts +2 -1
  641. package/dist/services/session/session-continuity-reset.d.ts.map +1 -1
  642. package/dist/services/session/session-continuity-reset.js +5 -2
  643. package/dist/services/session/session-continuity-reset.js.map +1 -1
  644. package/dist/services/session/session-identity.d.ts +20 -0
  645. package/dist/services/session/session-identity.d.ts.map +1 -0
  646. package/dist/services/session/session-identity.js +43 -0
  647. package/dist/services/session/session-identity.js.map +1 -0
  648. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  649. package/dist/services/session/session-input-planner.js +2 -9
  650. package/dist/services/session/session-input-planner.js.map +1 -1
  651. package/dist/services/session/session-lifecycle.d.ts +5 -1
  652. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  653. package/dist/services/session/session-lifecycle.js +5 -1
  654. package/dist/services/session/session-lifecycle.js.map +1 -1
  655. package/dist/services/session/session-manager.d.ts.map +1 -1
  656. package/dist/services/session/session-manager.js +4 -1
  657. package/dist/services/session/session-manager.js.map +1 -1
  658. package/dist/services/session/session-stream-processor.d.ts +2 -1
  659. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  660. package/dist/services/session/session-stream-processor.js +5 -4
  661. package/dist/services/session/session-stream-processor.js.map +1 -1
  662. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -1
  663. package/dist/services/session/test-helpers/conversation-session-fixtures.js +14 -9
  664. package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -1
  665. package/dist/services/session/turn-coordinator.d.ts +2 -1
  666. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  667. package/dist/services/session/turn-coordinator.js +3 -0
  668. package/dist/services/session/turn-coordinator.js.map +1 -1
  669. package/dist/services/session/turn-workflow.d.ts +4 -1
  670. package/dist/services/session/turn-workflow.d.ts.map +1 -1
  671. package/dist/services/session/turn-workflow.js +58 -21
  672. package/dist/services/session/turn-workflow.js.map +1 -1
  673. package/dist/services/session-rollover/session-rollover-brief.d.ts +9 -1
  674. package/dist/services/session-rollover/session-rollover-brief.d.ts.map +1 -1
  675. package/dist/services/session-rollover/session-rollover-brief.js +18 -3
  676. package/dist/services/session-rollover/session-rollover-brief.js.map +1 -1
  677. package/dist/services/settings/setting-schema-utils.d.ts +2 -0
  678. package/dist/services/settings/setting-schema-utils.d.ts.map +1 -1
  679. package/dist/services/settings/setting-schema-utils.js +15 -27
  680. package/dist/services/settings/setting-schema-utils.js.map +1 -1
  681. package/dist/services/settings/settings-persistence.js +1 -1
  682. package/dist/services/settings/settings-persistence.js.map +1 -1
  683. package/dist/services/settings/settings-schema.d.ts +132 -15
  684. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  685. package/dist/services/settings/settings-schema.js +133 -32
  686. package/dist/services/settings/settings-schema.js.map +1 -1
  687. package/dist/services/settings/settings-service.d.ts +3 -1
  688. package/dist/services/settings/settings-service.d.ts.map +1 -1
  689. package/dist/services/settings/settings-service.js +88 -91
  690. package/dist/services/settings/settings-service.js.map +1 -1
  691. package/dist/services/settings/settings-sources.d.ts +207 -0
  692. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  693. package/dist/services/settings/settings-sources.js +61 -1
  694. package/dist/services/settings/settings-sources.js.map +1 -1
  695. package/dist/services/settings/settings-ui-metadata.d.ts +27 -0
  696. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -0
  697. package/dist/services/settings/settings-ui-metadata.js +283 -0
  698. package/dist/services/settings/settings-ui-metadata.js.map +1 -0
  699. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +12 -2
  700. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  701. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +61 -0
  702. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  703. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  704. package/dist/services/subagents/execution-runner.js +8 -0
  705. package/dist/services/subagents/execution-runner.js.map +1 -1
  706. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  707. package/dist/services/subagents/mentor-runner.js +5 -2
  708. package/dist/services/subagents/mentor-runner.js.map +1 -1
  709. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  710. package/dist/services/subagents/role-loader.js +4 -0
  711. package/dist/services/subagents/role-loader.js.map +1 -1
  712. package/dist/services/subagents/subagent-client-types.d.ts +7 -0
  713. package/dist/services/subagents/subagent-client-types.d.ts.map +1 -1
  714. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  715. package/dist/services/subagents/subagent-manager.js +4 -1
  716. package/dist/services/subagents/subagent-manager.js.map +1 -1
  717. package/dist/services/subagents/subagent-notification-store.d.ts +12 -2
  718. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
  719. package/dist/services/subagents/subagent-notification-store.js +14 -5
  720. package/dist/services/subagents/subagent-notification-store.js.map +1 -1
  721. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -1
  722. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js +2 -1
  723. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -1
  724. package/dist/services/subagents/tool-policy.d.ts +8 -0
  725. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  726. package/dist/services/subagents/tool-policy.js +299 -56
  727. package/dist/services/subagents/tool-policy.js.map +1 -1
  728. package/dist/services/subagents/types.d.ts +2 -1
  729. package/dist/services/subagents/types.d.ts.map +1 -1
  730. package/dist/services/subagents/types.js.map +1 -1
  731. package/dist/services/tool-toggles.d.ts +20 -0
  732. package/dist/services/tool-toggles.d.ts.map +1 -0
  733. package/dist/services/tool-toggles.js +115 -0
  734. package/dist/services/tool-toggles.js.map +1 -0
  735. package/dist/slash-commands.d.ts +3 -0
  736. package/dist/slash-commands.d.ts.map +1 -1
  737. package/dist/slash-commands.js.map +1 -1
  738. package/dist/test-helpers/conversation-session-with-adapter.d.ts +1 -1
  739. package/dist/test-helpers/conversation-session-with-adapter.d.ts.map +1 -1
  740. package/dist/test-helpers/conversation-session-with-adapter.js +6 -1
  741. package/dist/test-helpers/conversation-session-with-adapter.js.map +1 -1
  742. package/dist/test-helpers/vitest-cache-isolation.d.ts +2 -0
  743. package/dist/test-helpers/vitest-cache-isolation.d.ts.map +1 -0
  744. package/dist/test-helpers/vitest-cache-isolation.js +17 -0
  745. package/dist/test-helpers/vitest-cache-isolation.js.map +1 -0
  746. package/dist/tools/agent/activate-skill.d.ts.map +1 -1
  747. package/dist/tools/agent/activate-skill.js +1 -0
  748. package/dist/tools/agent/activate-skill.js.map +1 -1
  749. package/dist/tools/agent/configure-task-check-in.d.ts +2 -0
  750. package/dist/tools/agent/configure-task-check-in.d.ts.map +1 -1
  751. package/dist/tools/agent/configure-task-check-in.js +15 -6
  752. package/dist/tools/agent/configure-task-check-in.js.map +1 -1
  753. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  754. package/dist/tools/agent/run-subagent-async.js +16 -12
  755. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  756. package/dist/tools/file/apply-patch.d.ts +2 -15
  757. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  758. package/dist/tools/file/apply-patch.js +171 -108
  759. package/dist/tools/file/apply-patch.js.map +1 -1
  760. package/dist/tools/file/code-context.d.ts.map +1 -1
  761. package/dist/tools/file/code-context.js +40 -5
  762. package/dist/tools/file/code-context.js.map +1 -1
  763. package/dist/tools/file/create-file.d.ts.map +1 -1
  764. package/dist/tools/file/create-file.js +13 -8
  765. package/dist/tools/file/create-file.js.map +1 -1
  766. package/dist/tools/file/glob.d.ts.map +1 -1
  767. package/dist/tools/file/glob.js +49 -11
  768. package/dist/tools/file/glob.js.map +1 -1
  769. package/dist/tools/file/grep.d.ts.map +1 -1
  770. package/dist/tools/file/grep.js +32 -8
  771. package/dist/tools/file/grep.js.map +1 -1
  772. package/dist/tools/file/read-file.d.ts.map +1 -1
  773. package/dist/tools/file/read-file.js +109 -6
  774. package/dist/tools/file/read-file.js.map +1 -1
  775. package/dist/tools/file/search-replace.js +4 -4
  776. package/dist/tools/file/search-replace.js.map +1 -1
  777. package/dist/tools/file/upstream-apply-patch.d.ts +31 -0
  778. package/dist/tools/file/upstream-apply-patch.d.ts.map +1 -0
  779. package/dist/tools/file/upstream-apply-patch.js +126 -0
  780. package/dist/tools/file/upstream-apply-patch.js.map +1 -0
  781. package/dist/tools/format-helpers.d.ts +2 -0
  782. package/dist/tools/format-helpers.d.ts.map +1 -1
  783. package/dist/tools/format-helpers.js.map +1 -1
  784. package/dist/tools/memory/memory-tools.d.ts.map +1 -1
  785. package/dist/tools/memory/memory-tools.js +19 -1
  786. package/dist/tools/memory/memory-tools.js.map +1 -1
  787. package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -1
  788. package/dist/tools/session-browser/session-browser-tools.js +33 -7
  789. package/dist/tools/session-browser/session-browser-tools.js.map +1 -1
  790. package/dist/tools/session-rollover/session-rollover-tool.d.ts.map +1 -1
  791. package/dist/tools/session-rollover/session-rollover-tool.js +18 -3
  792. package/dist/tools/session-rollover/session-rollover-tool.js.map +1 -1
  793. package/dist/tools/system/run-code/index.d.ts +2 -0
  794. package/dist/tools/system/run-code/index.d.ts.map +1 -0
  795. package/dist/tools/system/run-code/index.js +2 -0
  796. package/dist/tools/system/run-code/index.js.map +1 -0
  797. package/dist/tools/system/run-code/run-code-telemetry.d.ts +92 -0
  798. package/dist/tools/system/run-code/run-code-telemetry.d.ts.map +1 -0
  799. package/dist/tools/system/run-code/run-code-telemetry.js +189 -0
  800. package/dist/tools/system/run-code/run-code-telemetry.js.map +1 -0
  801. package/dist/tools/system/run-code/run-code.d.ts +98 -0
  802. package/dist/tools/system/run-code/run-code.d.ts.map +1 -0
  803. package/dist/tools/system/run-code/run-code.js +1078 -0
  804. package/dist/tools/system/run-code/run-code.js.map +1 -0
  805. package/dist/tools/system/run-code/tools-header.d.ts +25 -0
  806. package/dist/tools/system/run-code/tools-header.d.ts.map +1 -0
  807. package/dist/tools/system/run-code/tools-header.js +136 -0
  808. package/dist/tools/system/run-code/tools-header.js.map +1 -0
  809. package/dist/tools/system/shell.d.ts.map +1 -1
  810. package/dist/tools/system/shell.js +66 -11
  811. package/dist/tools/system/shell.js.map +1 -1
  812. package/dist/tools/system/worktree.js +2 -2
  813. package/dist/tools/system/worktree.js.map +1 -1
  814. package/dist/tools/types.d.ts +39 -2
  815. package/dist/tools/types.d.ts.map +1 -1
  816. package/dist/tools/types.js.map +1 -1
  817. package/dist/tools/utils.d.ts +10 -0
  818. package/dist/tools/utils.d.ts.map +1 -1
  819. package/dist/tools/utils.js +13 -0
  820. package/dist/tools/utils.js.map +1 -1
  821. package/dist/tools/web/web-fetch.d.ts.map +1 -1
  822. package/dist/tools/web/web-fetch.js +14 -6
  823. package/dist/tools/web/web-fetch.js.map +1 -1
  824. package/dist/tools/web/web-search.d.ts.map +1 -1
  825. package/dist/tools/web/web-search.js +2 -1
  826. package/dist/tools/web/web-search.js.map +1 -1
  827. package/dist/utils/ai/model-settings.d.ts.map +1 -1
  828. package/dist/utils/ai/model-settings.js +0 -47
  829. package/dist/utils/ai/model-settings.js.map +1 -1
  830. package/dist/utils/ai/token-usage.d.ts +7 -0
  831. package/dist/utils/ai/token-usage.d.ts.map +1 -1
  832. package/dist/utils/ai/token-usage.js +6 -2
  833. package/dist/utils/ai/token-usage.js.map +1 -1
  834. package/dist/utils/conversation/apply-conversation-result.d.ts.map +1 -1
  835. package/dist/utils/conversation/apply-conversation-result.js +13 -0
  836. package/dist/utils/conversation/apply-conversation-result.js.map +1 -1
  837. package/dist/utils/conversation/conversation-utils.d.ts.map +1 -1
  838. package/dist/utils/conversation/conversation-utils.js +54 -1
  839. package/dist/utils/conversation/conversation-utils.js.map +1 -1
  840. package/dist/utils/conversation/message-buffer.d.ts +16 -0
  841. package/dist/utils/conversation/message-buffer.d.ts.map +1 -1
  842. package/dist/utils/conversation/message-buffer.js +33 -0
  843. package/dist/utils/conversation/message-buffer.js.map +1 -1
  844. package/dist/utils/output/bound-tool-result.d.ts +23 -0
  845. package/dist/utils/output/bound-tool-result.d.ts.map +1 -1
  846. package/dist/utils/output/bound-tool-result.js +27 -0
  847. package/dist/utils/output/bound-tool-result.js.map +1 -1
  848. package/dist/utils/output/trim-tool-output.d.ts +1 -1
  849. package/dist/utils/output/trim-tool-output.d.ts.map +1 -1
  850. package/dist/utils/output/trim-tool-output.js +20 -0
  851. package/dist/utils/output/trim-tool-output.js.map +1 -1
  852. package/dist/utils/resume-list.d.ts +2 -0
  853. package/dist/utils/resume-list.d.ts.map +1 -1
  854. package/dist/utils/resume-list.js +7 -14
  855. package/dist/utils/resume-list.js.map +1 -1
  856. package/dist/utils/settings-command.d.ts +8 -0
  857. package/dist/utils/settings-command.d.ts.map +1 -1
  858. package/dist/utils/settings-command.js +138 -37
  859. package/dist/utils/settings-command.js.map +1 -1
  860. package/dist/utils/shell/execute-shell.d.ts +18 -0
  861. package/dist/utils/shell/execute-shell.d.ts.map +1 -1
  862. package/dist/utils/shell/execute-shell.js +48 -6
  863. package/dist/utils/shell/execute-shell.js.map +1 -1
  864. package/dist/utils/shell/shell-output.d.ts +7 -1
  865. package/dist/utils/shell/shell-output.d.ts.map +1 -1
  866. package/dist/utils/shell/shell-output.js +37 -7
  867. package/dist/utils/shell/shell-output.js.map +1 -1
  868. package/dist/utils/streaming/streaming-session-factory.d.ts +9 -0
  869. package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
  870. package/dist/utils/streaming/streaming-session-factory.js +13 -1
  871. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  872. package/dist/utils/streaming/streaming-speed-tracker.d.ts +15 -0
  873. package/dist/utils/streaming/streaming-speed-tracker.d.ts.map +1 -1
  874. package/dist/utils/streaming/streaming-speed-tracker.js +18 -1
  875. package/dist/utils/streaming/streaming-speed-tracker.js.map +1 -1
  876. package/dist/utils/tool-args-display.d.ts +21 -0
  877. package/dist/utils/tool-args-display.d.ts.map +1 -0
  878. package/dist/utils/tool-args-display.js +34 -0
  879. package/dist/utils/tool-args-display.js.map +1 -0
  880. package/dist/utils/value-suggestions.d.ts +4 -10
  881. package/dist/utils/value-suggestions.d.ts.map +1 -1
  882. package/dist/utils/value-suggestions.js +77 -144
  883. package/dist/utils/value-suggestions.js.map +1 -1
  884. package/dist/utils/worker-bootstrap.d.ts +3 -0
  885. package/dist/utils/worker-bootstrap.d.ts.map +1 -0
  886. package/dist/utils/worker-bootstrap.js +7 -0
  887. package/dist/utils/worker-bootstrap.js.map +1 -0
  888. package/dist/utils/worker-cwd-preload.cjs +23 -0
  889. package/dist/utils/worker-cwd-preload.cjs.map +1 -0
  890. package/dist/utils/worker-cwd-preload.d.cts +2 -0
  891. package/dist/utils/worker-cwd-preload.d.cts.map +1 -0
  892. package/package.json +7 -4
  893. package/dist/services/agent-runtime/workflow/workflow-worker.d.ts +0 -4
  894. package/dist/services/agent-runtime/workflow/workflow-worker.d.ts.map +0 -1
  895. package/dist/services/agent-runtime/workflow/workflow-worker.js +0 -55
  896. package/dist/services/agent-runtime/workflow/workflow-worker.js.map +0 -1
@@ -0,0 +1,521 @@
1
+ import { createInterface } from 'node:readline';
2
+ import { getProvider, getProviderIds } from '../../providers/index.js';
3
+ import { getModelCacheFilePath, matchTier, peekCachedModels, rankModelMatch, } from '../model-service.js';
4
+ import { scoreSubsequence } from '../../utils/subsequence-filter.js';
5
+ import { collectProviderModelsConcurrently, loadProviderModelGroup } from './model-listing.js';
6
+ import { orderedProviderIds } from './model-catalog-session.js';
7
+ import { HARNESS_IDLE_ENV } from '../../lib/harness-input-idle.js';
8
+ import { getFavoriteModelInfos } from './model-favorites.js';
9
+ import { findNicknameMatch } from './model-nicknames.js';
10
+ import { stripReasoningEffortSuffix } from './reasoning-effort.js';
11
+ // Re-exported for the existing importers of this module; the definitions live
12
+ // in reasoning-effort.ts so model-nicknames can share them without a cycle.
13
+ export { VALID_REASONING_EFFORTS } from './reasoning-effort.js';
14
+ /**
15
+ * Parse a raw `--model` flag string, separating optional thinking suffix
16
+ * (":<thinking>") and optional provider prefix ("<provider>/<id>").
17
+ */
18
+ export function parseModelFlag(rawModelFlag, options) {
19
+ const trimmed = rawModelFlag.trim();
20
+ // 1. Extract thinking suffix (e.g. :high, :low, :medium)
21
+ const { value: withoutThinking, reasoningEffort } = stripReasoningEffortSuffix(trimmed);
22
+ const rawPattern = withoutThinking;
23
+ // 2. Extract provider prefix
24
+ if (options?.providerFlag) {
25
+ return {
26
+ provider: options.providerFlag,
27
+ pattern: withoutThinking,
28
+ reasoningEffort,
29
+ rawPattern,
30
+ };
31
+ }
32
+ const slashIdx = withoutThinking.indexOf('/');
33
+ if (slashIdx !== -1) {
34
+ const prefix = withoutThinking.slice(0, slashIdx).toLowerCase();
35
+ const known = options?.knownProviders ?? getProviderIds();
36
+ if (known.map((k) => k.toLowerCase()).includes(prefix)) {
37
+ return {
38
+ provider: prefix,
39
+ pattern: withoutThinking.slice(slashIdx + 1).trim(),
40
+ reasoningEffort,
41
+ rawPattern,
42
+ };
43
+ }
44
+ }
45
+ return {
46
+ provider: undefined,
47
+ pattern: withoutThinking,
48
+ reasoningEffort,
49
+ rawPattern,
50
+ };
51
+ }
52
+ /**
53
+ * Match parsed model pattern against loaded provider model groups.
54
+ * Exact matches take strict precedence over partial/fuzzy matches, and an
55
+ * exact match of the flag exactly as typed (including any provider-style
56
+ * prefix) takes precedence over the split provider+pattern reading, so a
57
+ * literal aggregator id like `anthropic/claude-3.5-sonnet` is never
58
+ * reinterpreted when the vendor name collides with a provider id.
59
+ */
60
+ export function matchModels(groups, parsed) {
61
+ const patternLower = parsed.pattern.toLowerCase();
62
+ const rawPatternLower = parsed.rawPattern.toLowerCase();
63
+ // Stage 0: The id exactly as typed. When the raw flag (prefix included) is a
64
+ // real model id somewhere, use it verbatim instead of the split reading.
65
+ const asTypedMatches = [];
66
+ for (const group of groups) {
67
+ for (const model of group.models) {
68
+ if (model.id.toLowerCase() === rawPatternLower) {
69
+ asTypedMatches.push({ provider: group.provider, model });
70
+ }
71
+ }
72
+ }
73
+ if (asTypedMatches.length > 0) {
74
+ return { exact: true, matches: asTypedMatches };
75
+ }
76
+ // Stage 1: Exact matches on the stripped pattern
77
+ const exactMatches = [];
78
+ for (const group of groups) {
79
+ if (parsed.provider && group.provider.toLowerCase() !== parsed.provider.toLowerCase()) {
80
+ // Check if rawPattern matches a slash model id in another provider (e.g. openrouter)
81
+ for (const model of group.models) {
82
+ if (model.id.toLowerCase() === rawPatternLower) {
83
+ exactMatches.push({ provider: group.provider, model });
84
+ }
85
+ }
86
+ continue;
87
+ }
88
+ for (const model of group.models) {
89
+ if (model.id.toLowerCase() === patternLower || model.id.toLowerCase() === rawPatternLower) {
90
+ exactMatches.push({ provider: group.provider, model });
91
+ }
92
+ }
93
+ }
94
+ if (exactMatches.length > 0) {
95
+ return { exact: true, matches: exactMatches };
96
+ }
97
+ const ranked = [];
98
+ const trimmed = parsed.pattern.trim();
99
+ groups.forEach((group, groupIndex) => {
100
+ if (parsed.provider) {
101
+ if (group.provider.toLowerCase() !== parsed.provider.toLowerCase()) {
102
+ return;
103
+ }
104
+ for (const model of group.models) {
105
+ const rank = rankModelMatch(model, trimmed);
106
+ if (rank) {
107
+ ranked.push({ match: { provider: group.provider, model }, tier: rank.tier, score: rank.score, groupIndex });
108
+ }
109
+ }
110
+ return;
111
+ }
112
+ // No provider specified: a provider-name match pulls in the whole group,
113
+ // ranked by how well the provider name itself matched.
114
+ const providerScore = scoreSubsequence(trimmed, group.provider);
115
+ if (providerScore !== -Infinity) {
116
+ const tier = matchTier(trimmed, group.provider);
117
+ for (const model of group.models) {
118
+ ranked.push({ match: { provider: group.provider, model }, tier, score: providerScore, groupIndex });
119
+ }
120
+ return;
121
+ }
122
+ for (const model of group.models) {
123
+ const rank = rankModelMatch(model, trimmed);
124
+ if (rank) {
125
+ ranked.push({ match: { provider: group.provider, model }, tier: rank.tier, score: rank.score, groupIndex });
126
+ }
127
+ }
128
+ });
129
+ ranked.sort((a, b) => {
130
+ if (a.tier !== b.tier)
131
+ return a.tier - b.tier;
132
+ if (a.score !== b.score)
133
+ return b.score - a.score;
134
+ return a.groupIndex - b.groupIndex;
135
+ });
136
+ return { exact: false, matches: ranked.map((r) => r.match) };
137
+ }
138
+ /**
139
+ * Format matching models as a numbered list grouped by provider,
140
+ * matching `--list-models` style with sequential 1-based numbering.
141
+ */
142
+ export function formatDisambiguationPrompt(matches, groups) {
143
+ const lines = [];
144
+ const labelByProvider = new Map();
145
+ for (const group of groups) {
146
+ const label = group.label ?? getProvider(group.provider)?.label;
147
+ if (label && label !== group.provider) {
148
+ labelByProvider.set(group.provider, label);
149
+ }
150
+ }
151
+ const byProvider = new Map();
152
+ for (const match of matches) {
153
+ const list = byProvider.get(match.provider) ?? [];
154
+ list.push(match);
155
+ byProvider.set(match.provider, list);
156
+ }
157
+ let index = 1;
158
+ for (const [provider, list] of byProvider) {
159
+ const label = labelByProvider.get(provider);
160
+ const header = label ? `${provider} (${label}):` : `${provider}:`;
161
+ lines.push(header);
162
+ for (const match of list) {
163
+ const model = match.model;
164
+ const name = model.name && model.name !== model.id ? ` ${model.name}` : '';
165
+ lines.push(` ${index}) ${model.id}${name}`);
166
+ index++;
167
+ }
168
+ }
169
+ return lines.join('\n');
170
+ }
171
+ /**
172
+ * Interactive prompt for disambiguating multiple matching models.
173
+ */
174
+ export async function promptForDisambiguation(matches, groups, pattern, prompter, streams) {
175
+ const formatted = formatDisambiguationPrompt(matches, groups);
176
+ const promptText = `Multiple models match "${pattern}":\n\n${formatted}\n\nSelect a model [1-${matches.length}]: `;
177
+ if (prompter) {
178
+ const answer = await prompter(promptText);
179
+ if (!answer)
180
+ return null;
181
+ const num = parseInt(answer.trim(), 10);
182
+ if (!Number.isNaN(num) && num >= 1 && num <= matches.length) {
183
+ return matches[num - 1];
184
+ }
185
+ return null;
186
+ }
187
+ const input = streams?.input ?? process.stdin;
188
+ // Prompts go to stderr by default: stdout carries structured output (--json
189
+ // NDJSON, pipes) and must stay machine-readable.
190
+ const output = streams?.output ?? process.stderr;
191
+ const rl = createInterface({ input, output });
192
+ try {
193
+ output.write(`Multiple models match "${pattern}":\n\n${formatted}\n\n`);
194
+ while (true) {
195
+ const answer = await new Promise((resolve) => {
196
+ rl.question(`Select a model [1-${matches.length}]: `, (res) => resolve(res));
197
+ rl.once('close', () => resolve(null));
198
+ });
199
+ if (answer === null)
200
+ return null;
201
+ const num = parseInt(answer.trim(), 10);
202
+ if (!Number.isNaN(num) && num >= 1 && num <= matches.length) {
203
+ return matches[num - 1];
204
+ }
205
+ output.write(`Please enter a number between 1 and ${matches.length}.\n`);
206
+ }
207
+ }
208
+ finally {
209
+ rl.close();
210
+ }
211
+ }
212
+ /** Groups flat ModelInfo rows by provider, preserving first-seen provider order. */
213
+ function groupModelInfosByProvider(models) {
214
+ const order = [];
215
+ const byProvider = new Map();
216
+ for (const model of models) {
217
+ if (!byProvider.has(model.provider)) {
218
+ byProvider.set(model.provider, []);
219
+ order.push(model.provider);
220
+ }
221
+ byProvider.get(model.provider).push(model);
222
+ }
223
+ return order.map((provider) => ({ provider, models: byProvider.get(provider) }));
224
+ }
225
+ /**
226
+ * Resolves `--model <pattern>` against the model catalog with exact match
227
+ * precedence, partial/fuzzy matching, and interactive disambiguation when needed.
228
+ */
229
+ export async function resolveModelFlag(deps) {
230
+ const knownProviders = deps.knownProviders ?? getProviderIds();
231
+ const parsed = parseModelFlag(deps.modelFlag, {
232
+ providerFlag: deps.providerFlag,
233
+ knownProviders,
234
+ });
235
+ // Isolated black-box provider harnesses replay wire turns and do not mock catalog endpoints
236
+ if (process.env[HARNESS_IDLE_ENV] && deps.prompter === undefined && deps.interactivePicker === undefined) {
237
+ return {
238
+ status: 'passthrough',
239
+ modelId: parsed.rawPattern,
240
+ provider: parsed.provider,
241
+ reasoningEffort: parsed.reasoningEffort,
242
+ };
243
+ }
244
+ // Explicit --provider is the user deliberately scoping the search (it also
245
+ // sets agent.provider for the session), so it narrows PERMANENTLY: a miss
246
+ // there errors out rather than silently resolving to a provider the user
247
+ // didn't name. A provider-style prefix parsed out of the flag itself (e.g.
248
+ // the `anthropic/` in `anthropic/claude-3.5-sonnet` on an aggregator) is a
249
+ // different thing — it's just the best first guess, and the full id may
250
+ // turn out to be a literal model id on some other provider, so a miss
251
+ // there widens to the rest of the candidate space instead of giving up.
252
+ const explicitProvider = Boolean(deps.providerFlag && parsed.provider);
253
+ // Nicknames resolve first — before favorites and before any provider
254
+ // catalog loads: reading `agent.modelNicknames` is a settings read, not a
255
+ // fetch, so an exact hit costs zero network work. Precedence is exact
256
+ // nickname > favorite > exact real model id: favorites already shadowed
257
+ // exact real ids before nicknames existed (the favorites fast path below is
258
+ // unchanged), so the nickname check slots in directly in front of it. A
259
+ // real id shadowed by a nickname stays reachable as `provider/id`; a
260
+ // nickname equal to a registered provider id is rejected at creation and
261
+ // excluded at lookup, so `-m openai` can never be hijacked by a nickname.
262
+ // A nickname whose target has vanished from a warm cache does not hard-fail:
263
+ // like a vanished favorite, it falls through to the full search with a
264
+ // warning instead of resolving to a model the provider will reject.
265
+ const nicknameHit = findNicknameMatch(deps.settingsService, parsed.pattern, {
266
+ providerScope: parsed.provider,
267
+ knownProviders,
268
+ });
269
+ let nicknameVanishedWarning;
270
+ if (nicknameHit) {
271
+ const warmCache = peekCachedModels(nicknameHit.provider);
272
+ const vanished = warmCache !== undefined && !warmCache.some((m) => m.id === nicknameHit.modelId);
273
+ if (!vanished) {
274
+ return {
275
+ status: 'resolved',
276
+ modelId: nicknameHit.modelId,
277
+ provider: nicknameHit.provider,
278
+ // An inline `-m op:low` suffix overrides the effort stored on the
279
+ // nickname target (`op -> ...:high`).
280
+ reasoningEffort: parsed.reasoningEffort ?? nicknameHit.reasoningEffort,
281
+ };
282
+ }
283
+ nicknameVanishedWarning = `warning: nicknamed model "${nicknameHit.modelId}" is no longer in ${nicknameHit.provider}'s cached catalog; falling back to full search.`;
284
+ }
285
+ // Favorites resolve BEFORE any provider catalog loads: reading
286
+ // `agent.favoriteModels` is a settings read, not a fetch, so a hit here
287
+ // costs zero network work. Only favorites for the explicitly-scoped
288
+ // provider are eligible when --provider narrows permanently, mirroring the
289
+ // catalog path below; a slash-prefix guess (not --provider) doesn't narrow
290
+ // the same way, since the full raw pattern might still be a literal id
291
+ // favorited under a different provider.
292
+ const allFavorites = getFavoriteModelInfos(deps.settingsService);
293
+ const eligibleFavorites = explicitProvider
294
+ ? allFavorites.filter((m) => m.provider.toLowerCase() === parsed.provider.toLowerCase())
295
+ : allFavorites;
296
+ let favoriteVanishedWarning;
297
+ if (eligibleFavorites.length > 0) {
298
+ const favoriteGroups = groupModelInfosByProvider(eligibleFavorites);
299
+ const favoriteMatch = matchModels(favoriteGroups, parsed);
300
+ // Only an UNAMBIGUOUS favorite hit short-circuits; zero or multiple
301
+ // matches fall through to the full catalog-backed search below (multiple
302
+ // favorite matches get the normal, complete disambiguation prompt rather
303
+ // than a guess restricted to favorites).
304
+ if (favoriteMatch.matches.length === 1) {
305
+ const hit = favoriteMatch.matches[0];
306
+ // Read-only peek at whatever's already warm for that provider (memory
307
+ // or non-expired disk cache) — never a fetch. If the cache is warm and
308
+ // no longer lists this id, the favorite has gone stale (removed
309
+ // upstream); fall back to the full search instead of resolving to a
310
+ // model the provider will reject. A cold/absent cache can't disprove
311
+ // the favorite, so it's trusted as-is — that's the latency win.
312
+ const warmCache = peekCachedModels(hit.provider);
313
+ const vanished = warmCache !== undefined && !warmCache.some((m) => m.id === hit.model.id);
314
+ if (!vanished) {
315
+ return {
316
+ status: 'resolved',
317
+ modelId: hit.model.id,
318
+ provider: hit.provider,
319
+ reasoningEffort: parsed.reasoningEffort,
320
+ };
321
+ }
322
+ favoriteVanishedWarning = `warning: favorite model "${hit.model.id}" is no longer in ${hit.provider}'s cached catalog; falling back to full search.`;
323
+ }
324
+ }
325
+ const loaderDeps = {
326
+ settingsService: deps.settingsService,
327
+ loggingService: deps.loggingService,
328
+ fetcher: deps.fetcher,
329
+ };
330
+ // Full candidate space, in provider-priority order. `deps.providerIds`, when
331
+ // supplied, replaces this entirely (tests use it to pin the universe of
332
+ // providers without touching credential lookups).
333
+ const fullOrder = deps.providerIds ?? orderedProviderIds(deps.settingsService, knownProviders);
334
+ let order;
335
+ if (explicitProvider) {
336
+ // Deliberately ignores `fullOrder`/`deps.providerIds` beyond this one id:
337
+ // even a test-supplied candidate space listing other providers must not
338
+ // leak into the load when the user explicitly scoped to one provider.
339
+ order = [parsed.provider];
340
+ }
341
+ else if (parsed.provider) {
342
+ const rest = fullOrder.filter((id) => id.toLowerCase() !== parsed.provider.toLowerCase());
343
+ order = [parsed.provider, ...rest];
344
+ }
345
+ else {
346
+ order = fullOrder;
347
+ }
348
+ // Walk lazily: load just the first (highest-priority) provider and stop
349
+ // there if it already produced an exact match — `--model gpt-5.4` should
350
+ // never touch a provider's catalog it didn't need. Only when that first
351
+ // load comes up empty of exact matches do we widen, and we do that widen
352
+ // concurrently since a fuzzy/cross-provider sweep needs every remaining
353
+ // catalog anyway and gains nothing from doing it one at a time. Explicit
354
+ // --provider never reaches this widen branch at all (see above).
355
+ let groups = [];
356
+ if (order.length > 0) {
357
+ const [firstId, ...restIds] = order;
358
+ const firstGroup = await loadProviderModelGroup(loaderDeps, firstId);
359
+ groups = [firstGroup];
360
+ if (!explicitProvider && restIds.length > 0) {
361
+ const probe = matchModels(groups, parsed);
362
+ const hasEarlyExactMatch = probe.exact && probe.matches.length > 0;
363
+ if (!hasEarlyExactMatch) {
364
+ const restGroups = await collectProviderModelsConcurrently(loaderDeps, restIds);
365
+ groups = [firstGroup, ...restGroups];
366
+ }
367
+ else {
368
+ // The first provider already resolved an exact match, so a full
369
+ // network load of the rest would only be there to rule out a
370
+ // same-id collision — not worth giving back the latency win early
371
+ // exit was built for. Instead, peek whatever's ALREADY warm (memory
372
+ // cache, or a non-expired disk cache) for the providers we chose not
373
+ // to load: read-only, no fetch, costs nothing when cold. If one of
374
+ // them already has this exact id, fold it in so the normal
375
+ // multiple-matches path asks the user instead of silently picking
376
+ // the first provider tried. Accepted residual limitation: a
377
+ // collision sitting on a provider whose cache is cold or expired
378
+ // goes undetected — that's intentional, not a bug, since ruling it
379
+ // out would require the network fetch this path exists to avoid.
380
+ const peekedGroups = [];
381
+ for (const id of restIds) {
382
+ const models = peekCachedModels(id);
383
+ if (models && models.length > 0) {
384
+ const label = getProvider(id)?.label;
385
+ peekedGroups.push({ provider: id, ...(label ? { label } : {}), models });
386
+ }
387
+ }
388
+ if (peekedGroups.length > 0) {
389
+ groups = [firstGroup, ...peekedGroups];
390
+ }
391
+ }
392
+ }
393
+ }
394
+ // Only providers we actually attempted to load can have failed; a provider
395
+ // skipped entirely by the early-exit/narrow-first strategy above must not
396
+ // appear here; do not let the laziness optimization hide a real outage on a
397
+ // provider that was loaded.
398
+ const warnings = [
399
+ ...(nicknameVanishedWarning ? [nicknameVanishedWarning] : []),
400
+ ...(favoriteVanishedWarning ? [favoriteVanishedWarning] : []),
401
+ ...groups.filter((group) => group.error !== undefined).map((group) => `warning: ${group.provider}: ${group.error}`),
402
+ ];
403
+ const totalLoadedModels = groups.reduce((acc, g) => acc + g.models.length, 0);
404
+ // If providers yielded 0 models, pass through rather than blocking startup
405
+ if (totalLoadedModels === 0) {
406
+ return {
407
+ status: 'passthrough',
408
+ // Fail open with the flag as typed, matching pre-resolution behavior.
409
+ modelId: parsed.rawPattern,
410
+ provider: parsed.provider,
411
+ reasoningEffort: parsed.reasoningEffort,
412
+ ...(warnings.length > 0 ? { warnings } : {}),
413
+ };
414
+ }
415
+ const { matches } = matchModels(groups, parsed);
416
+ if (matches.length === 0) {
417
+ // If the target provider failed to fetch its catalog or yielded 0 models, allow passthrough
418
+ if (parsed.provider) {
419
+ const targetGroup = groups.find((g) => g.provider.toLowerCase() === parsed.provider.toLowerCase());
420
+ if (targetGroup?.error || targetGroup?.models.length === 0) {
421
+ return {
422
+ status: 'passthrough',
423
+ modelId: parsed.rawPattern,
424
+ provider: parsed.provider,
425
+ reasoningEffort: parsed.reasoningEffort,
426
+ ...(warnings.length > 0 ? { warnings } : {}),
427
+ };
428
+ }
429
+ if (targetGroup) {
430
+ const cacheFilePath = getModelCacheFilePath(targetGroup.provider);
431
+ if (deps.interactivePicker) {
432
+ const picked = await deps.interactivePicker({
433
+ initialQuery: parsed.pattern,
434
+ lockProvider: explicitProvider ? parsed.provider : undefined,
435
+ bannerLines: [
436
+ `No models match "${deps.modelFlag}".`,
437
+ `The cached catalog for ${targetGroup.provider} may be stale — delete ${cacheFilePath} to refetch.`,
438
+ ],
439
+ });
440
+ if (!picked)
441
+ return { status: 'cancelled', error: 'Cancelled.' };
442
+ return {
443
+ status: 'resolved',
444
+ modelId: picked.modelId,
445
+ provider: picked.provider,
446
+ reasoningEffort: parsed.reasoningEffort,
447
+ ...(warnings.length > 0 ? { warnings } : {}),
448
+ };
449
+ }
450
+ return {
451
+ status: 'no_match',
452
+ error: `Error: No models match "${deps.modelFlag}". The cached catalog for ${targetGroup.provider} may be stale — delete ${cacheFilePath} to refetch.`,
453
+ };
454
+ }
455
+ }
456
+ if (deps.interactivePicker) {
457
+ const picked = await deps.interactivePicker({
458
+ initialQuery: parsed.pattern,
459
+ lockProvider: explicitProvider ? parsed.provider : undefined,
460
+ bannerLines: [`No models match "${deps.modelFlag}".`],
461
+ });
462
+ if (!picked)
463
+ return { status: 'cancelled', error: 'Cancelled.' };
464
+ return {
465
+ status: 'resolved',
466
+ modelId: picked.modelId,
467
+ provider: picked.provider,
468
+ reasoningEffort: parsed.reasoningEffort,
469
+ ...(warnings.length > 0 ? { warnings } : {}),
470
+ };
471
+ }
472
+ return {
473
+ status: 'no_match',
474
+ error: `Error: No models match "${deps.modelFlag}".`,
475
+ };
476
+ }
477
+ if (matches.length === 1) {
478
+ return {
479
+ status: 'resolved',
480
+ modelId: matches[0].model.id,
481
+ provider: matches[0].provider,
482
+ reasoningEffort: parsed.reasoningEffort,
483
+ ...(warnings.length > 0 ? { warnings } : {}),
484
+ };
485
+ }
486
+ // Ambiguous match: disambiguate. The interactive picker, when available,
487
+ // replaces the readline prompt entirely and browses the FULL catalog
488
+ // (seeded with the typed pattern) rather than only the ambiguous subset,
489
+ // since it lets the user keep narrowing past what --model alone matched.
490
+ if (deps.interactivePicker) {
491
+ const picked = await deps.interactivePicker({
492
+ initialQuery: parsed.pattern,
493
+ initialProvider: matches[0].provider,
494
+ lockProvider: explicitProvider ? parsed.provider : undefined,
495
+ });
496
+ if (!picked)
497
+ return { status: 'cancelled', error: 'Cancelled.' };
498
+ return {
499
+ status: 'resolved',
500
+ modelId: picked.modelId,
501
+ provider: picked.provider,
502
+ reasoningEffort: parsed.reasoningEffort,
503
+ ...(warnings.length > 0 ? { warnings } : {}),
504
+ };
505
+ }
506
+ const selected = await promptForDisambiguation(matches, groups, deps.modelFlag, deps.prompter, deps.streams);
507
+ if (!selected) {
508
+ return {
509
+ status: 'cancelled',
510
+ error: 'Cancelled.',
511
+ };
512
+ }
513
+ return {
514
+ status: 'resolved',
515
+ modelId: selected.model.id,
516
+ provider: selected.provider,
517
+ reasoningEffort: parsed.reasoningEffort,
518
+ ...(warnings.length > 0 ? { warnings } : {}),
519
+ };
520
+ }
521
+ //# sourceMappingURL=model-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-resolution.js","sourceRoot":"","sources":["../../../source/services/models/model-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,iCAAiC,EAAE,sBAAsB,EAA2B,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAqB,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAqC,MAAM,uBAAuB,CAAC;AAEtG,8EAA8E;AAC9E,4EAA4E;AAC5E,OAAO,EAAE,uBAAuB,EAAqC,MAAM,uBAAuB,CAAC;AAsEnG;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,YAAoB,EACpB,OAA8D;IAE9D,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IAEpC,yDAAyD;IACzD,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACxF,MAAM,UAAU,GAAG,eAAe,CAAC;IAEnC,6BAA6B;IAC7B,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,YAAY;YAC9B,OAAO,EAAE,eAAe;YACxB,eAAe;YACf,UAAU;SACX,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,CAAC;QAC1D,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO;gBACL,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;gBACnD,eAAe;gBACf,UAAU;aACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,eAAe;QACxB,eAAe;QACf,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,MAA4B,EAC5B,MAAuB;IAEvB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAExD,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,cAAc,GAAiB,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC/C,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAClD,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAiB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACtF,qFAAqF;YACrF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;oBAC/C,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC1F,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAChD,CAAC;IAOD,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEtC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACnC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnE,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,uDAAuD;QACvD,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAClD,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAqB,EAAE,MAA4B;IAC5F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAChE,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YAC7C,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAqB,EACrB,MAA4B,EAC5B,OAAe,EACf,QAAuD,EACvD,OAA2E;IAE3E,MAAM,SAAS,GAAG,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,0BAA0B,OAAO,SAAS,SAAS,yBAAyB,OAAO,CAAC,MAAM,KAAK,CAAC;IAEnH,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5D,OAAO,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC9C,4EAA4E;IAC5E,iDAAiD;IACjD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,0BAA0B,OAAO,SAAS,SAAS,MAAM,CAAC,CAAC;QACxE,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;gBAC1D,EAAE,CAAC,QAAQ,CAAC,qBAAqB,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7E,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5D,OAAO,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,uCAAuC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,yBAAyB,CAAC,MAAmB;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAYtC;IACC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE;QAC5C,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc;KACf,CAAC,CAAC;IAEH,4FAA4F;IAC5F,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACzG,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvE,qEAAqE;IACrE,0EAA0E;IAC1E,sEAAsE;IACtE,wEAAwE;IACxE,4EAA4E;IAC5E,wEAAwE;IACxE,qEAAqE;IACrE,yEAAyE;IACzE,0EAA0E;IAC1E,6EAA6E;IAC7E,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE;QAC1E,aAAa,EAAE,MAAM,CAAC,QAAQ;QAC9B,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,uBAA2C,CAAC;IAEhD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;QACjG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,kEAAkE;gBAClE,sCAAsC;gBACtC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,WAAW,CAAC,eAAe;aACvE,CAAC;QACJ,CAAC;QACD,uBAAuB,GAAG,6BAA6B,WAAW,CAAC,OAAO,qBAAqB,WAAW,CAAC,QAAQ,iDAAiD,CAAC;IACvK,CAAC;IAED,+DAA+D;IAC/D,wEAAwE;IACxE,oEAAoE;IACpE,2EAA2E;IAC3E,2EAA2E;IAC3E,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,gBAAgB;QACxC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,QAAS,CAAC,WAAW,EAAE,CAAC;QACzF,CAAC,CAAC,YAAY,CAAC;IAEjB,IAAI,uBAA2C,CAAC;IAEhD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC1D,oEAAoE;QACpE,yEAAyE;QACzE,yEAAyE;QACzE,yCAAyC;QACzC,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,sEAAsE;YACtE,uEAAuE;YACvE,gEAAgE;YAChE,oEAAoE;YACpE,qEAAqE;YACrE,gEAAgE;YAChE,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;oBACrB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,eAAe,EAAE,MAAM,CAAC,eAAe;iBACxC,CAAC;YACJ,CAAC;YACD,uBAAuB,GAAG,4BAA4B,GAAG,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,CAAC,QAAQ,iDAAiD,CAAC;QACvJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;IAEF,6EAA6E;IAC7E,wEAAwE;IACxE,kDAAkD;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAE/F,IAAI,KAAe,CAAC;IACpB,IAAI,gBAAgB,EAAE,CAAC;QACrB,0EAA0E;QAC1E,wEAAwE;QACxE,sEAAsE;QACtE,KAAK,GAAG,CAAC,MAAM,CAAC,QAAS,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,QAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3F,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,iEAAiE;IACjE,IAAI,MAAM,GAAyB,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;QAEtB,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnE,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,MAAM,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAChF,MAAM,GAAG,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,6DAA6D;gBAC7D,kEAAkE;gBAClE,oEAAoE;gBACpE,qEAAqE;gBACrE,mEAAmE;gBACnE,2DAA2D;gBAC3D,kEAAkE;gBAClE,4DAA4D;gBAC5D,iEAAiE;gBACjE,mEAAmE;gBACnE,iEAAiE;gBACjE,MAAM,YAAY,GAAyB,EAAE,CAAC;gBAC9C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;oBACpC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;wBACrC,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;gBACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,GAAG,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,4BAA4B;IAC5B,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;KACpH,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE9E,2EAA2E;IAC3E,IAAI,iBAAiB,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,sEAAsE;YACtE,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,4FAA4F;QAC5F,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,QAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACpG,IAAI,WAAW,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3D,OAAO;oBACL,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,MAAM,CAAC,UAAU;oBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7C,CAAC;YACJ,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,aAAa,GAAG,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;wBAC1C,YAAY,EAAE,MAAM,CAAC,OAAO;wBAC5B,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;wBAC5D,WAAW,EAAE;4BACX,oBAAoB,IAAI,CAAC,SAAS,IAAI;4BACtC,0BAA0B,WAAW,CAAC,QAAQ,0BAA0B,aAAa,cAAc;yBACpG;qBACF,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM;wBAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;oBACjE,OAAO;wBACL,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,eAAe,EAAE,MAAM,CAAC,eAAe;wBACvC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC7C,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,2BAA2B,IAAI,CAAC,SAAS,6BAA6B,WAAW,CAAC,QAAQ,0BAA0B,aAAa,cAAc;iBACvJ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC1C,YAAY,EAAE,MAAM,CAAC,OAAO;gBAC5B,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC5D,WAAW,EAAE,CAAC,oBAAoB,IAAI,CAAC,SAAS,IAAI,CAAC;aACtD,CAAC,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACjE,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,2BAA2B,IAAI,CAAC,SAAS,IAAI;SACrD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAC5B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,qEAAqE;IACrE,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC1C,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;YACpC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC7D,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7G,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The reasoning-effort vocabulary and the ":<effort>" suffix rule shared by
3
+ * --model flag parsing and nickname-target parsing. Kept in its own module so
4
+ * model-nicknames can reuse the exact same suffix semantics without importing
5
+ * model-resolution (which imports model-nicknames for the resolution fast
6
+ * path).
7
+ */
8
+ export declare const VALID_REASONING_EFFORTS: readonly ['default', 'none', 'minimal', 'low', 'medium', 'high', 'xhigh'];
9
+ export type ModelSettingsReasoningEffort = (typeof VALID_REASONING_EFFORTS)[number];
10
+ /**
11
+ * Splits a trailing ":<effort>" suffix off a raw model-flag string or
12
+ * nickname-target string. Only a recognized effort is stripped; any other
13
+ * colon suffix (e.g. ":batch") stays part of the id, matching the
14
+ * fail-open behavior of --model parsing.
15
+ */
16
+ export declare function stripReasoningEffortSuffix(trimmed: string): {
17
+ value: string;
18
+ reasoningEffort?: ModelSettingsReasoningEffort;
19
+ };
20
+ //# sourceMappingURL=reasoning-effort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-effort.d.ts","sourceRoot":"","sources":["../../../source/services/models/reasoning-effort.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,YAAI,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAEjH,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAChD,CAYA"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The reasoning-effort vocabulary and the ":<effort>" suffix rule shared by
3
+ * --model flag parsing and nickname-target parsing. Kept in its own module so
4
+ * model-nicknames can reuse the exact same suffix semantics without importing
5
+ * model-resolution (which imports model-nicknames for the resolution fast
6
+ * path).
7
+ */
8
+ export const VALID_REASONING_EFFORTS = ['default', 'none', 'minimal', 'low', 'medium', 'high', 'xhigh'];
9
+ /**
10
+ * Splits a trailing ":<effort>" suffix off a raw model-flag string or
11
+ * nickname-target string. Only a recognized effort is stripped; any other
12
+ * colon suffix (e.g. ":batch") stays part of the id, matching the
13
+ * fail-open behavior of --model parsing.
14
+ */
15
+ export function stripReasoningEffortSuffix(trimmed) {
16
+ const colonIdx = trimmed.lastIndexOf(':');
17
+ if (colonIdx !== -1) {
18
+ const potentialEffort = trimmed.slice(colonIdx + 1).toLowerCase();
19
+ if (VALID_REASONING_EFFORTS.includes(potentialEffort)) {
20
+ return {
21
+ value: trimmed.slice(0, colonIdx).trim(),
22
+ reasoningEffort: potentialEffort,
23
+ };
24
+ }
25
+ }
26
+ return { value: trimmed, reasoningEffort: undefined };
27
+ }
28
+ //# sourceMappingURL=reasoning-effort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-effort.js","sourceRoot":"","sources":["../../../source/services/models/reasoning-effort.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAIjH;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IAIxD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClE,IAAK,uBAA6C,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7E,OAAO;gBACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;gBACxC,eAAe,EAAE,eAA+C;aACjE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ModelInfo } from '../model-service.js';
2
+ export declare function mergeUnifiedModels(providerIds: readonly string[], catalogs: ReadonlyMap<string, readonly ModelInfo[]>, favorites: readonly ModelInfo[]): ModelInfo[];
3
+ export declare function filterUnifiedModels(models: readonly ModelInfo[], modelQuery: string, providerQuery?: string): ModelInfo[];
4
+ //# sourceMappingURL=unified-model-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-model-catalog.d.ts","sourceRoot":"","sources":["../../../source/services/models/unified-model-catalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGnE,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC,EACnD,SAAS,EAAE,SAAS,SAAS,EAAE,GAC9B,SAAS,EAAE,CAyBb;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,SAAS,EAAE,CAqBb"}