@qduc/term2 0.30.0 → 0.31.1

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 (732) hide show
  1. package/dist/acp-v2/serve.d.ts.map +1 -1
  2. package/dist/acp-v2/serve.js +6 -6
  3. package/dist/acp-v2/serve.js.map +1 -1
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +3 -6
  6. package/dist/agent.js.map +1 -1
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +46 -22
  9. package/dist/app.js.map +1 -1
  10. package/dist/build-info.json +2 -2
  11. package/dist/cli.js +53 -46
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/model-command.d.ts.map +1 -1
  14. package/dist/commands/model-command.js +4 -8
  15. package/dist/commands/model-command.js.map +1 -1
  16. package/dist/components/ErrorBoundary.d.ts +1 -1
  17. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  18. package/dist/components/ErrorBoundary.js +28 -23
  19. package/dist/components/ErrorBoundary.js.map +1 -1
  20. package/dist/components/InputBox.d.ts.map +1 -1
  21. package/dist/components/InputBox.js +124 -32
  22. package/dist/components/InputBox.js.map +1 -1
  23. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  24. package/dist/components/MarkdownRenderer.js +31 -28
  25. package/dist/components/MarkdownRenderer.js.map +1 -1
  26. package/dist/components/common/Divider.d.ts.map +1 -1
  27. package/dist/components/common/Divider.js +5 -2
  28. package/dist/components/common/Divider.js.map +1 -1
  29. package/dist/components/common/MenuContainer.d.ts +6 -20
  30. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  31. package/dist/components/common/MenuContainer.js +24 -40
  32. package/dist/components/common/MenuContainer.js.map +1 -1
  33. package/dist/components/common/ScrollableTabBar.d.ts.map +1 -1
  34. package/dist/components/common/ScrollableTabBar.js +6 -5
  35. package/dist/components/common/ScrollableTabBar.js.map +1 -1
  36. package/dist/components/common/SelectionMarker.d.ts +16 -0
  37. package/dist/components/common/SelectionMarker.d.ts.map +1 -0
  38. package/dist/components/common/SelectionMarker.js +20 -0
  39. package/dist/components/common/SelectionMarker.js.map +1 -0
  40. package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
  41. package/dist/components/input/ApplicationInputSurface.js +3 -1
  42. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  43. package/dist/components/input/FirstRunSetupPrompt.d.ts.map +1 -1
  44. package/dist/components/input/FirstRunSetupPrompt.js +8 -6
  45. package/dist/components/input/FirstRunSetupPrompt.js.map +1 -1
  46. package/dist/components/input/MenuSurface.d.ts.map +1 -1
  47. package/dist/components/input/MenuSurface.js +4 -3
  48. package/dist/components/input/MenuSurface.js.map +1 -1
  49. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  50. package/dist/components/input/ModelMenuSession.js +10 -14
  51. package/dist/components/input/ModelMenuSession.js.map +1 -1
  52. package/dist/components/input/PendingQueueList.d.ts +3 -0
  53. package/dist/components/input/PendingQueueList.d.ts.map +1 -1
  54. package/dist/components/input/PendingQueueList.js +9 -8
  55. package/dist/components/input/PendingQueueList.js.map +1 -1
  56. package/dist/components/input/SettingsMenuSession.d.ts.map +1 -1
  57. package/dist/components/input/SettingsMenuSession.js +0 -2
  58. package/dist/components/input/SettingsMenuSession.js.map +1 -1
  59. package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
  60. package/dist/components/input/SettingsValueMenuSession.js +3 -2
  61. package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
  62. package/dist/components/input/SubagentPoolMenuSession.d.ts.map +1 -1
  63. package/dist/components/input/SubagentPoolMenuSession.js +0 -2
  64. package/dist/components/input/SubagentPoolMenuSession.js.map +1 -1
  65. package/dist/components/input/menu-types.d.ts +0 -2
  66. package/dist/components/input/menu-types.d.ts.map +1 -1
  67. package/dist/components/input/triggers.d.ts.map +1 -1
  68. package/dist/components/input/triggers.js +0 -2
  69. package/dist/components/input/triggers.js.map +1 -1
  70. package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
  71. package/dist/components/layout/BackgroundTaskManager.js +113 -107
  72. package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
  73. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  74. package/dist/components/layout/BackgroundTasksPanel.js +26 -28
  75. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  76. package/dist/components/layout/Banner.d.ts.map +1 -1
  77. package/dist/components/layout/Banner.js +7 -51
  78. package/dist/components/layout/Banner.js.map +1 -1
  79. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  80. package/dist/components/layout/BottomArea.js +14 -34
  81. package/dist/components/layout/BottomArea.js.map +1 -1
  82. package/dist/components/layout/DiffView.d.ts.map +1 -1
  83. package/dist/components/layout/DiffView.js +8 -7
  84. package/dist/components/layout/DiffView.js.map +1 -1
  85. package/dist/components/layout/StatusBar.d.ts +8 -0
  86. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  87. package/dist/components/layout/StatusBar.js +199 -294
  88. package/dist/components/layout/StatusBar.js.map +1 -1
  89. package/dist/components/menu/CopyMenu.d.ts.map +1 -1
  90. package/dist/components/menu/CopyMenu.js +16 -13
  91. package/dist/components/menu/CopyMenu.js.map +1 -1
  92. package/dist/components/menu/McpSelectionMenu.d.ts.map +1 -1
  93. package/dist/components/menu/McpSelectionMenu.js +8 -7
  94. package/dist/components/menu/McpSelectionMenu.js.map +1 -1
  95. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  96. package/dist/components/menu/ModelSelectionMenu.js +21 -20
  97. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  98. package/dist/components/menu/PathSelectionMenu.d.ts.map +1 -1
  99. package/dist/components/menu/PathSelectionMenu.js +5 -4
  100. package/dist/components/menu/PathSelectionMenu.js.map +1 -1
  101. package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -1
  102. package/dist/components/menu/ProfileSelectionMenu.js +17 -20
  103. package/dist/components/menu/ProfileSelectionMenu.js.map +1 -1
  104. package/dist/components/menu/ProviderSelectionMenu.d.ts.map +1 -1
  105. package/dist/components/menu/ProviderSelectionMenu.js +37 -36
  106. package/dist/components/menu/ProviderSelectionMenu.js.map +1 -1
  107. package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
  108. package/dist/components/menu/ResumeSelectionMenu.js +21 -22
  109. package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
  110. package/dist/components/menu/RewindMenu.d.ts.map +1 -1
  111. package/dist/components/menu/RewindMenu.js +5 -4
  112. package/dist/components/menu/RewindMenu.js.map +1 -1
  113. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  114. package/dist/components/menu/SettingsSelectionMenu.js +15 -14
  115. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  116. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  117. package/dist/components/menu/SettingsValueSelectionMenu.js +15 -14
  118. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  119. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  120. package/dist/components/menu/SkillSelectionMenu.js +17 -18
  121. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  122. package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
  123. package/dist/components/menu/SlashCommandMenu.js +5 -4
  124. package/dist/components/menu/SlashCommandMenu.js.map +1 -1
  125. package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -1
  126. package/dist/components/menu/StandaloneModelPickerApp.js +3 -2
  127. package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -1
  128. package/dist/components/menu/SubagentPoolSelectionMenu.d.ts.map +1 -1
  129. package/dist/components/menu/SubagentPoolSelectionMenu.js +26 -24
  130. package/dist/components/menu/SubagentPoolSelectionMenu.js.map +1 -1
  131. package/dist/components/menu/settings-value-formatter.d.ts +3 -1
  132. package/dist/components/menu/settings-value-formatter.d.ts.map +1 -1
  133. package/dist/components/menu/settings-value-formatter.js +24 -35
  134. package/dist/components/menu/settings-value-formatter.js.map +1 -1
  135. package/dist/components/message/ChatMessage.d.ts.map +1 -1
  136. package/dist/components/message/ChatMessage.js +11 -7
  137. package/dist/components/message/ChatMessage.js.map +1 -1
  138. package/dist/components/message/CodeContextSearchRenderer.d.ts.map +1 -1
  139. package/dist/components/message/CodeContextSearchRenderer.js +14 -11
  140. package/dist/components/message/CodeContextSearchRenderer.js.map +1 -1
  141. package/dist/components/message/CommandGroupSummary.d.ts.map +1 -1
  142. package/dist/components/message/CommandGroupSummary.js +8 -36
  143. package/dist/components/message/CommandGroupSummary.js.map +1 -1
  144. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  145. package/dist/components/message/CommandMessage.js +313 -329
  146. package/dist/components/message/CommandMessage.js.map +1 -1
  147. package/dist/components/message/GrepRenderer.d.ts.map +1 -1
  148. package/dist/components/message/GrepRenderer.js +12 -9
  149. package/dist/components/message/GrepRenderer.js.map +1 -1
  150. package/dist/components/message/MemoryRenderer.d.ts.map +1 -1
  151. package/dist/components/message/MemoryRenderer.js +45 -38
  152. package/dist/components/message/MemoryRenderer.js.map +1 -1
  153. package/dist/components/message/ReadFileRenderer.d.ts.map +1 -1
  154. package/dist/components/message/ReadFileRenderer.js +20 -16
  155. package/dist/components/message/ReadFileRenderer.js.map +1 -1
  156. package/dist/components/message/RunCodeRenderer.d.ts.map +1 -1
  157. package/dist/components/message/RunCodeRenderer.js +19 -14
  158. package/dist/components/message/RunCodeRenderer.js.map +1 -1
  159. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  160. package/dist/components/message/SubagentActivityMessage.js +15 -15
  161. package/dist/components/message/SubagentActivityMessage.js.map +1 -1
  162. package/dist/components/message/WebFetchRenderer.d.ts.map +1 -1
  163. package/dist/components/message/WebFetchRenderer.js +16 -13
  164. package/dist/components/message/WebFetchRenderer.js.map +1 -1
  165. package/dist/components/message/WebSearchRenderer.d.ts.map +1 -1
  166. package/dist/components/message/WebSearchRenderer.js +20 -16
  167. package/dist/components/message/WebSearchRenderer.js.map +1 -1
  168. package/dist/components/message/command-message-helpers.d.ts +2 -2
  169. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  170. package/dist/components/prompt/ApprovalPrompt.d.ts +12 -1
  171. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  172. package/dist/components/prompt/ApprovalPrompt.js +100 -147
  173. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  174. package/dist/components/prompt/ConfirmPrompt.d.ts.map +1 -1
  175. package/dist/components/prompt/ConfirmPrompt.js +7 -4
  176. package/dist/components/prompt/ConfirmPrompt.js.map +1 -1
  177. package/dist/components/prompt/QueuePausedPrompt.d.ts.map +1 -1
  178. package/dist/components/prompt/QueuePausedPrompt.js +7 -4
  179. package/dist/components/prompt/QueuePausedPrompt.js.map +1 -1
  180. package/dist/components/theme.d.ts +10 -52
  181. package/dist/components/theme.d.ts.map +1 -1
  182. package/dist/components/theme.js +11 -68
  183. package/dist/components/theme.js.map +1 -1
  184. package/dist/context/InputContext.d.ts +17 -0
  185. package/dist/context/InputContext.d.ts.map +1 -1
  186. package/dist/context/InputContext.js +12 -0
  187. package/dist/context/InputContext.js.map +1 -1
  188. package/dist/gateway/gateway.d.ts.map +1 -1
  189. package/dist/gateway/gateway.js +31 -11
  190. package/dist/gateway/gateway.js.map +1 -1
  191. package/dist/gateway/launcher-seam.js +2 -2
  192. package/dist/gateway/launcher-seam.js.map +1 -1
  193. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  194. package/dist/gateway/runtime-factory.js +2 -3
  195. package/dist/gateway/runtime-factory.js.map +1 -1
  196. package/dist/gateway/settings-rpc.d.ts +5 -2
  197. package/dist/gateway/settings-rpc.d.ts.map +1 -1
  198. package/dist/gateway/settings-rpc.js +6 -4
  199. package/dist/gateway/settings-rpc.js.map +1 -1
  200. package/dist/hooks/conversation-ui-reducer.d.ts +5 -2
  201. package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
  202. package/dist/hooks/conversation-ui-reducer.js +9 -2
  203. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  204. package/dist/hooks/settings-completion-config.d.ts +0 -2
  205. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  206. package/dist/hooks/settings-completion-config.js +4 -23
  207. package/dist/hooks/settings-completion-config.js.map +1 -1
  208. package/dist/hooks/use-app-commands.d.ts +1 -1
  209. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  210. package/dist/hooks/use-app-keyboard-shortcuts.d.ts +6 -1
  211. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
  212. package/dist/hooks/use-app-keyboard-shortcuts.js +17 -11
  213. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
  214. package/dist/hooks/use-conversation-settings.d.ts +3 -2
  215. package/dist/hooks/use-conversation-settings.d.ts.map +1 -1
  216. package/dist/hooks/use-conversation-settings.js +4 -4
  217. package/dist/hooks/use-conversation-settings.js.map +1 -1
  218. package/dist/hooks/use-conversation.d.ts +2 -1
  219. package/dist/hooks/use-conversation.d.ts.map +1 -1
  220. package/dist/hooks/use-conversation.js +5 -5
  221. package/dist/hooks/use-conversation.js.map +1 -1
  222. package/dist/hooks/use-first-run-setup.d.ts +1 -2
  223. package/dist/hooks/use-first-run-setup.d.ts.map +1 -1
  224. package/dist/hooks/use-first-run-setup.js +7 -17
  225. package/dist/hooks/use-first-run-setup.js.map +1 -1
  226. package/dist/hooks/use-grok-credit-usage.js +1 -1
  227. package/dist/hooks/use-grok-credit-usage.js.map +1 -1
  228. package/dist/hooks/use-handoff-flow.d.ts +1 -1
  229. package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
  230. package/dist/hooks/use-handoff-flow.js +3 -3
  231. package/dist/hooks/use-handoff-flow.js.map +1 -1
  232. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  233. package/dist/hooks/use-model-selection.js +6 -8
  234. package/dist/hooks/use-model-selection.js.map +1 -1
  235. package/dist/hooks/use-opencode-go-usage.js +1 -1
  236. package/dist/hooks/use-opencode-go-usage.js.map +1 -1
  237. package/dist/hooks/use-runtime-settings.d.ts +2 -2
  238. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  239. package/dist/hooks/use-runtime-settings.js +3 -3
  240. package/dist/hooks/use-runtime-settings.js.map +1 -1
  241. package/dist/hooks/use-standalone-model-picker.d.ts.map +1 -1
  242. package/dist/hooks/use-standalone-model-picker.js +7 -6
  243. package/dist/hooks/use-standalone-model-picker.js.map +1 -1
  244. package/dist/hooks/use-subagent-pool-selection.d.ts +9 -16
  245. package/dist/hooks/use-subagent-pool-selection.d.ts.map +1 -1
  246. package/dist/hooks/use-subagent-pool-selection.js +15 -33
  247. package/dist/hooks/use-subagent-pool-selection.js.map +1 -1
  248. package/dist/lib/agent-client.d.ts +4 -5
  249. package/dist/lib/agent-client.d.ts.map +1 -1
  250. package/dist/lib/agent-client.js +6 -12
  251. package/dist/lib/agent-client.js.map +1 -1
  252. package/dist/lib/agent-configuration.d.ts +3 -4
  253. package/dist/lib/agent-configuration.d.ts.map +1 -1
  254. package/dist/lib/agent-configuration.js +19 -33
  255. package/dist/lib/agent-configuration.js.map +1 -1
  256. package/dist/lib/agent-factory.d.ts +4 -3
  257. package/dist/lib/agent-factory.d.ts.map +1 -1
  258. package/dist/lib/agent-factory.js +6 -3
  259. package/dist/lib/agent-factory.js.map +1 -1
  260. package/dist/non-interactive.d.ts.map +1 -1
  261. package/dist/non-interactive.js +4 -4
  262. package/dist/non-interactive.js.map +1 -1
  263. package/dist/providers/codex.provider.js +1 -1
  264. package/dist/providers/codex.provider.js.map +1 -1
  265. package/dist/providers/grok.provider.js +1 -1
  266. package/dist/providers/grok.provider.js.map +1 -1
  267. package/dist/providers/model-catalog/catalog.generated.d.ts +239 -171
  268. package/dist/providers/model-catalog/catalog.generated.d.ts.map +1 -1
  269. package/dist/providers/model-catalog/catalog.generated.js +238 -179
  270. package/dist/providers/model-catalog/catalog.generated.js.map +1 -1
  271. package/dist/providers/model-catalog/generate-catalog.d.ts.map +1 -1
  272. package/dist/providers/model-catalog/generate-catalog.js +13 -5
  273. package/dist/providers/model-catalog/generate-catalog.js.map +1 -1
  274. package/dist/providers/openai-chat-completions-model.d.ts.map +1 -1
  275. package/dist/providers/openai-chat-completions-model.js +5 -2
  276. package/dist/providers/openai-chat-completions-model.js.map +1 -1
  277. package/dist/providers/openai-compatible-lazy.js +1 -1
  278. package/dist/providers/openai-compatible-lazy.js.map +1 -1
  279. package/dist/providers/openai.provider.js +1 -1
  280. package/dist/providers/openai.provider.js.map +1 -1
  281. package/dist/providers/openrouter.provider.js +1 -1
  282. package/dist/providers/openrouter.provider.js.map +1 -1
  283. package/dist/providers/provider-service.d.ts.map +1 -1
  284. package/dist/providers/provider-service.js +6 -7
  285. package/dist/providers/provider-service.js.map +1 -1
  286. package/dist/scripts/eval-auto-approval/runner.js +2 -3
  287. package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
  288. package/dist/scripts/eval-context-compaction/runner.js +1 -2
  289. package/dist/scripts/eval-context-compaction/runner.js.map +1 -1
  290. package/dist/services/agent-runtime/model-resolver.d.ts +4 -13
  291. package/dist/services/agent-runtime/model-resolver.d.ts.map +1 -1
  292. package/dist/services/agent-runtime/model-resolver.js +9 -39
  293. package/dist/services/agent-runtime/model-resolver.js.map +1 -1
  294. package/dist/services/approval/background-subagent-approval-controller.d.ts +1 -0
  295. package/dist/services/approval/background-subagent-approval-controller.d.ts.map +1 -1
  296. package/dist/services/approval/background-subagent-approval-controller.js +3 -0
  297. package/dist/services/approval/background-subagent-approval-controller.js.map +1 -1
  298. package/dist/services/approval/background-subagent-approval-queue.d.ts +5 -0
  299. package/dist/services/approval/background-subagent-approval-queue.d.ts.map +1 -1
  300. package/dist/services/approval/background-subagent-approval-queue.js +18 -2
  301. package/dist/services/approval/background-subagent-approval-queue.js.map +1 -1
  302. package/dist/services/control-socket/control-session-port.js +6 -6
  303. package/dist/services/control-socket/control-session-port.js.map +1 -1
  304. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  305. package/dist/services/conversation/conversation-adapter.js +32 -6
  306. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  307. package/dist/services/conversation/conversation-admission-workflow.d.ts +2 -0
  308. package/dist/services/conversation/conversation-admission-workflow.d.ts.map +1 -1
  309. package/dist/services/conversation/conversation-admission-workflow.js +1 -1
  310. package/dist/services/conversation/conversation-admission-workflow.js.map +1 -1
  311. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  312. package/dist/services/conversation/conversation-orchestrator.js +41 -21
  313. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  314. package/dist/services/conversation/conversation-orchestrator.types.d.ts +4 -3
  315. package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
  316. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  317. package/dist/services/conversation/conversation-replay.js +9 -0
  318. package/dist/services/conversation/conversation-replay.js.map +1 -1
  319. package/dist/services/conversation/conversation-service.d.ts +2 -3
  320. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  321. package/dist/services/conversation/conversation-service.js +20 -11
  322. package/dist/services/conversation/conversation-service.js.map +1 -1
  323. package/dist/services/conversation-agent-client.d.ts +2 -1
  324. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  325. package/dist/services/cost/model-cost.d.ts +6 -0
  326. package/dist/services/cost/model-cost.d.ts.map +1 -1
  327. package/dist/services/cost/model-cost.js +12 -0
  328. package/dist/services/cost/model-cost.js.map +1 -1
  329. package/dist/services/cost/pricing.d.ts +1 -1
  330. package/dist/services/cost/pricing.d.ts.map +1 -1
  331. package/dist/services/cost/pricing.js +5 -5
  332. package/dist/services/cost/pricing.js.map +1 -1
  333. package/dist/services/handoff/handoff-session.d.ts +1 -1
  334. package/dist/services/handoff/handoff-session.d.ts.map +1 -1
  335. package/dist/services/handoff/handoff-session.js +10 -12
  336. package/dist/services/handoff/handoff-session.js.map +1 -1
  337. package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
  338. package/dist/services/logging/conversation-log-events.js +1 -2
  339. package/dist/services/logging/conversation-log-events.js.map +1 -1
  340. package/dist/services/model-service.js +1 -1
  341. package/dist/services/model-service.js.map +1 -1
  342. package/dist/services/models/model-picker-host.d.ts.map +1 -1
  343. package/dist/services/models/model-picker-host.js +9 -5
  344. package/dist/services/models/model-picker-host.js.map +1 -1
  345. package/dist/services/models/model-resolution.d.ts +2 -2
  346. package/dist/services/models/model-resolution.d.ts.map +1 -1
  347. package/dist/services/models/model-resolution.js +8 -2
  348. package/dist/services/models/model-resolution.js.map +1 -1
  349. package/dist/services/queue/queue-controller.d.ts +3 -0
  350. package/dist/services/queue/queue-controller.d.ts.map +1 -1
  351. package/dist/services/queue/queue-controller.js +53 -5
  352. package/dist/services/queue/queue-controller.js.map +1 -1
  353. package/dist/services/runtime-setting-router.d.ts +2 -2
  354. package/dist/services/runtime-setting-router.d.ts.map +1 -1
  355. package/dist/services/runtime-setting-router.js +8 -17
  356. package/dist/services/runtime-setting-router.js.map +1 -1
  357. package/dist/services/session/session-client-factory.js +1 -1
  358. package/dist/services/session/session-client-factory.js.map +1 -1
  359. package/dist/services/session/session-composition.d.ts +4 -1
  360. package/dist/services/session/session-composition.d.ts.map +1 -1
  361. package/dist/services/session/session-composition.js +70 -17
  362. package/dist/services/session/session-composition.js.map +1 -1
  363. package/dist/services/session/session-input-planner.js +2 -2
  364. package/dist/services/session/session-input-planner.js.map +1 -1
  365. package/dist/services/session/session-manager.d.ts.map +1 -1
  366. package/dist/services/session/session-manager.js +4 -2
  367. package/dist/services/session/session-manager.js.map +1 -1
  368. package/dist/services/session/session-runtime-controller.d.ts +2 -4
  369. package/dist/services/session/session-runtime-controller.d.ts.map +1 -1
  370. package/dist/services/session/session-runtime-controller.js +2 -14
  371. package/dist/services/session/session-runtime-controller.js.map +1 -1
  372. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -1
  373. package/dist/services/session/test-helpers/conversation-session-fixtures.js +5 -2
  374. package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -1
  375. package/dist/services/settings/ancillary-settings-migration.d.ts +1 -1
  376. package/dist/services/settings/ancillary-settings-migration.d.ts.map +1 -1
  377. package/dist/services/settings/ancillary-settings-migration.js +4 -37
  378. package/dist/services/settings/ancillary-settings-migration.js.map +1 -1
  379. package/dist/services/settings/model-selection.d.ts +7 -0
  380. package/dist/services/settings/model-selection.d.ts.map +1 -0
  381. package/dist/services/settings/model-selection.js +6 -0
  382. package/dist/services/settings/model-selection.js.map +1 -0
  383. package/dist/services/settings/persisted-selection-migration.d.ts +9 -0
  384. package/dist/services/settings/persisted-selection-migration.d.ts.map +1 -0
  385. package/dist/services/settings/persisted-selection-migration.js +109 -0
  386. package/dist/services/settings/persisted-selection-migration.js.map +1 -0
  387. package/dist/services/settings/setting-schema-utils.d.ts.map +1 -1
  388. package/dist/services/settings/setting-schema-utils.js +5 -2
  389. package/dist/services/settings/setting-schema-utils.js.map +1 -1
  390. package/dist/services/settings/settings-env.d.ts.map +1 -1
  391. package/dist/services/settings/settings-env.js +0 -2
  392. package/dist/services/settings/settings-env.js.map +1 -1
  393. package/dist/services/settings/settings-merger.d.ts.map +1 -1
  394. package/dist/services/settings/settings-merger.js +12 -5
  395. package/dist/services/settings/settings-merger.js.map +1 -1
  396. package/dist/services/settings/settings-persistence.d.ts +1 -0
  397. package/dist/services/settings/settings-persistence.d.ts.map +1 -1
  398. package/dist/services/settings/settings-persistence.js +23 -5
  399. package/dist/services/settings/settings-persistence.js.map +1 -1
  400. package/dist/services/settings/settings-schema.d.ts +96 -118
  401. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  402. package/dist/services/settings/settings-schema.js +70 -177
  403. package/dist/services/settings/settings-schema.js.map +1 -1
  404. package/dist/services/settings/settings-service.d.ts +2 -1
  405. package/dist/services/settings/settings-service.d.ts.map +1 -1
  406. package/dist/services/settings/settings-service.js +31 -10
  407. package/dist/services/settings/settings-service.js.map +1 -1
  408. package/dist/services/settings/settings-service.mock.js +2 -2
  409. package/dist/services/settings/settings-service.mock.js.map +1 -1
  410. package/dist/services/settings/settings-sources.d.ts +3 -20
  411. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  412. package/dist/services/settings/settings-sources.js +3 -20
  413. package/dist/services/settings/settings-sources.js.map +1 -1
  414. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
  415. package/dist/services/settings/settings-ui-metadata.js +6 -24
  416. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  417. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +6 -6
  418. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  419. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +10 -29
  420. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  421. package/dist/services/shell/background-shell-output-store.d.ts +4 -2
  422. package/dist/services/shell/background-shell-output-store.d.ts.map +1 -1
  423. package/dist/services/shell/background-shell-output-store.js +9 -8
  424. package/dist/services/shell/background-shell-output-store.js.map +1 -1
  425. package/dist/services/shell/background-shell-watches.d.ts.map +1 -1
  426. package/dist/services/shell/background-shell-watches.js +20 -9
  427. package/dist/services/shell/background-shell-watches.js.map +1 -1
  428. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  429. package/dist/services/subagents/mentor-runner.js +10 -6
  430. package/dist/services/subagents/mentor-runner.js.map +1 -1
  431. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  432. package/dist/services/subagents/role-loader.js +9 -17
  433. package/dist/services/subagents/role-loader.js.map +1 -1
  434. package/dist/services/subagents/subagent-async-registry.js +2 -2
  435. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  436. package/dist/services/subagents/subagent-pool-config.d.ts +0 -6
  437. package/dist/services/subagents/subagent-pool-config.d.ts.map +1 -1
  438. package/dist/services/subagents/subagent-pool-config.js +1 -22
  439. package/dist/services/subagents/subagent-pool-config.js.map +1 -1
  440. package/dist/services/subagents/subagent-role-pool-selector.d.ts +1 -2
  441. package/dist/services/subagents/subagent-role-pool-selector.d.ts.map +1 -1
  442. package/dist/services/subagents/subagent-role-pool-selector.js +4 -10
  443. package/dist/services/subagents/subagent-role-pool-selector.js.map +1 -1
  444. package/dist/services/subagents/subagent-run-control.d.ts.map +1 -1
  445. package/dist/services/subagents/subagent-run-control.js +3 -2
  446. package/dist/services/subagents/subagent-run-control.js.map +1 -1
  447. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -1
  448. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js +8 -2
  449. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -1
  450. package/dist/services/subagents/utils.d.ts +1 -1
  451. package/dist/services/subagents/utils.d.ts.map +1 -1
  452. package/dist/services/subagents/utils.js +5 -4
  453. package/dist/services/subagents/utils.js.map +1 -1
  454. package/dist/skins/SkinContext.d.ts +18 -0
  455. package/dist/skins/SkinContext.d.ts.map +1 -0
  456. package/dist/skins/SkinContext.js +23 -0
  457. package/dist/skins/SkinContext.js.map +1 -0
  458. package/dist/skins/cards/activity.d.ts +8 -0
  459. package/dist/skins/cards/activity.d.ts.map +1 -0
  460. package/dist/skins/cards/activity.js +23 -0
  461. package/dist/skins/cards/activity.js.map +1 -0
  462. package/dist/skins/cards/approval.d.ts +15 -0
  463. package/dist/skins/cards/approval.d.ts.map +1 -0
  464. package/dist/skins/cards/approval.js +64 -0
  465. package/dist/skins/cards/approval.js.map +1 -0
  466. package/dist/skins/cards/body.d.ts +14 -0
  467. package/dist/skins/cards/body.d.ts.map +1 -0
  468. package/dist/skins/cards/body.js +65 -0
  469. package/dist/skins/cards/body.js.map +1 -0
  470. package/dist/skins/cards/card.d.ts +28 -0
  471. package/dist/skins/cards/card.d.ts.map +1 -0
  472. package/dist/skins/cards/card.js +37 -0
  473. package/dist/skins/cards/card.js.map +1 -0
  474. package/dist/skins/cards/index.d.ts +9 -0
  475. package/dist/skins/cards/index.d.ts.map +1 -0
  476. package/dist/skins/cards/index.js +41 -0
  477. package/dist/skins/cards/index.js.map +1 -0
  478. package/dist/skins/cards/live-region.d.ts +16 -0
  479. package/dist/skins/cards/live-region.d.ts.map +1 -0
  480. package/dist/skins/cards/live-region.js +83 -0
  481. package/dist/skins/cards/live-region.js.map +1 -0
  482. package/dist/skins/cards/measure.d.ts +17 -0
  483. package/dist/skins/cards/measure.d.ts.map +1 -0
  484. package/dist/skins/cards/measure.js +29 -0
  485. package/dist/skins/cards/measure.js.map +1 -0
  486. package/dist/skins/cards/messages.d.ts +23 -0
  487. package/dist/skins/cards/messages.d.ts.map +1 -0
  488. package/dist/skins/cards/messages.js +80 -0
  489. package/dist/skins/cards/messages.js.map +1 -0
  490. package/dist/skins/cards/status.d.ts +9 -0
  491. package/dist/skins/cards/status.d.ts.map +1 -0
  492. package/dist/skins/cards/status.js +205 -0
  493. package/dist/skins/cards/status.js.map +1 -0
  494. package/dist/skins/cards/tools.d.ts +21 -0
  495. package/dist/skins/cards/tools.d.ts.map +1 -0
  496. package/dist/skins/cards/tools.js +101 -0
  497. package/dist/skins/cards/tools.js.map +1 -0
  498. package/dist/skins/cards/width.d.ts +4 -0
  499. package/dist/skins/cards/width.d.ts.map +1 -0
  500. package/dist/skins/cards/width.js +32 -0
  501. package/dist/skins/cards/width.js.map +1 -0
  502. package/dist/skins/classic/approval.d.ts +19 -0
  503. package/dist/skins/classic/approval.d.ts.map +1 -0
  504. package/dist/skins/classic/approval.js +50 -0
  505. package/dist/skins/classic/approval.js.map +1 -0
  506. package/dist/skins/classic/index.d.ts +7 -0
  507. package/dist/skins/classic/index.d.ts.map +1 -0
  508. package/dist/skins/classic/index.js +39 -0
  509. package/dist/skins/classic/index.js.map +1 -0
  510. package/dist/skins/classic/live-region.d.ts +19 -0
  511. package/dist/skins/classic/live-region.d.ts.map +1 -0
  512. package/dist/skins/classic/live-region.js +71 -0
  513. package/dist/skins/classic/live-region.js.map +1 -0
  514. package/dist/skins/classic/menu.d.ts +5 -0
  515. package/dist/skins/classic/menu.d.ts.map +1 -0
  516. package/dist/skins/classic/menu.js +20 -0
  517. package/dist/skins/classic/menu.js.map +1 -0
  518. package/dist/skins/classic/messages.d.ts +13 -0
  519. package/dist/skins/classic/messages.d.ts.map +1 -0
  520. package/dist/skins/classic/messages.js +65 -0
  521. package/dist/skins/classic/messages.js.map +1 -0
  522. package/dist/skins/classic/question.d.ts +5 -0
  523. package/dist/skins/classic/question.d.ts.map +1 -0
  524. package/dist/skins/classic/question.js +33 -0
  525. package/dist/skins/classic/question.js.map +1 -0
  526. package/dist/skins/classic/status.d.ts +10 -0
  527. package/dist/skins/classic/status.d.ts.map +1 -0
  528. package/dist/skins/classic/status.js +158 -0
  529. package/dist/skins/classic/status.js.map +1 -0
  530. package/dist/skins/classic/subagent.d.ts +5 -0
  531. package/dist/skins/classic/subagent.d.ts.map +1 -0
  532. package/dist/skins/classic/subagent.js +14 -0
  533. package/dist/skins/classic/subagent.js.map +1 -0
  534. package/dist/skins/classic/tool-section.d.ts +8 -0
  535. package/dist/skins/classic/tool-section.d.ts.map +1 -0
  536. package/dist/skins/classic/tool-section.js +20 -0
  537. package/dist/skins/classic/tool-section.js.map +1 -0
  538. package/dist/skins/classic/tools.d.ts +19 -0
  539. package/dist/skins/classic/tools.d.ts.map +1 -0
  540. package/dist/skins/classic/tools.js +72 -0
  541. package/dist/skins/classic/tools.js.map +1 -0
  542. package/dist/skins/ledger/activity.d.ts +6 -0
  543. package/dist/skins/ledger/activity.d.ts.map +1 -0
  544. package/dist/skins/ledger/activity.js +18 -0
  545. package/dist/skins/ledger/activity.js.map +1 -0
  546. package/dist/skins/ledger/approval.d.ts +17 -0
  547. package/dist/skins/ledger/approval.d.ts.map +1 -0
  548. package/dist/skins/ledger/approval.js +67 -0
  549. package/dist/skins/ledger/approval.js.map +1 -0
  550. package/dist/skins/ledger/body.d.ts +11 -0
  551. package/dist/skins/ledger/body.d.ts.map +1 -0
  552. package/dist/skins/ledger/body.js +77 -0
  553. package/dist/skins/ledger/body.js.map +1 -0
  554. package/dist/skins/ledger/chip.d.ts +27 -0
  555. package/dist/skins/ledger/chip.d.ts.map +1 -0
  556. package/dist/skins/ledger/chip.js +25 -0
  557. package/dist/skins/ledger/chip.js.map +1 -0
  558. package/dist/skins/ledger/index.d.ts +11 -0
  559. package/dist/skins/ledger/index.d.ts.map +1 -0
  560. package/dist/skins/ledger/index.js +44 -0
  561. package/dist/skins/ledger/index.js.map +1 -0
  562. package/dist/skins/ledger/live-region.d.ts +20 -0
  563. package/dist/skins/ledger/live-region.d.ts.map +1 -0
  564. package/dist/skins/ledger/live-region.js +89 -0
  565. package/dist/skins/ledger/live-region.js.map +1 -0
  566. package/dist/skins/ledger/messages.d.ts +17 -0
  567. package/dist/skins/ledger/messages.d.ts.map +1 -0
  568. package/dist/skins/ledger/messages.js +62 -0
  569. package/dist/skins/ledger/messages.js.map +1 -0
  570. package/dist/skins/ledger/status.d.ts +10 -0
  571. package/dist/skins/ledger/status.d.ts.map +1 -0
  572. package/dist/skins/ledger/status.js +302 -0
  573. package/dist/skins/ledger/status.js.map +1 -0
  574. package/dist/skins/ledger/tools.d.ts +20 -0
  575. package/dist/skins/ledger/tools.d.ts.map +1 -0
  576. package/dist/skins/ledger/tools.js +101 -0
  577. package/dist/skins/ledger/tools.js.map +1 -0
  578. package/dist/skins/names.d.ts +10 -0
  579. package/dist/skins/names.d.ts.map +1 -0
  580. package/dist/skins/names.js +9 -0
  581. package/dist/skins/names.js.map +1 -0
  582. package/dist/skins/rail/activity.d.ts +8 -0
  583. package/dist/skins/rail/activity.d.ts.map +1 -0
  584. package/dist/skins/rail/activity.js +23 -0
  585. package/dist/skins/rail/activity.js.map +1 -0
  586. package/dist/skins/rail/approval.d.ts +16 -0
  587. package/dist/skins/rail/approval.d.ts.map +1 -0
  588. package/dist/skins/rail/approval.js +45 -0
  589. package/dist/skins/rail/approval.js.map +1 -0
  590. package/dist/skins/rail/body.d.ts +19 -0
  591. package/dist/skins/rail/body.d.ts.map +1 -0
  592. package/dist/skins/rail/body.js +69 -0
  593. package/dist/skins/rail/body.js.map +1 -0
  594. package/dist/skins/rail/index.d.ts +12 -0
  595. package/dist/skins/rail/index.d.ts.map +1 -0
  596. package/dist/skins/rail/index.js +44 -0
  597. package/dist/skins/rail/index.js.map +1 -0
  598. package/dist/skins/rail/live-region.d.ts +19 -0
  599. package/dist/skins/rail/live-region.d.ts.map +1 -0
  600. package/dist/skins/rail/live-region.js +88 -0
  601. package/dist/skins/rail/live-region.js.map +1 -0
  602. package/dist/skins/rail/messages.d.ts +21 -0
  603. package/dist/skins/rail/messages.d.ts.map +1 -0
  604. package/dist/skins/rail/messages.js +90 -0
  605. package/dist/skins/rail/messages.js.map +1 -0
  606. package/dist/skins/rail/parts.d.ts +25 -0
  607. package/dist/skins/rail/parts.d.ts.map +1 -0
  608. package/dist/skins/rail/parts.js +37 -0
  609. package/dist/skins/rail/parts.js.map +1 -0
  610. package/dist/skins/rail/status.d.ts +10 -0
  611. package/dist/skins/rail/status.d.ts.map +1 -0
  612. package/dist/skins/rail/status.js +147 -0
  613. package/dist/skins/rail/status.js.map +1 -0
  614. package/dist/skins/rail/tools.d.ts +28 -0
  615. package/dist/skins/rail/tools.d.ts.map +1 -0
  616. package/dist/skins/rail/tools.js +85 -0
  617. package/dist/skins/rail/tools.js.map +1 -0
  618. package/dist/skins/registry.d.ts +6 -0
  619. package/dist/skins/registry.d.ts.map +1 -0
  620. package/dist/skins/registry.js +15 -0
  621. package/dist/skins/registry.js.map +1 -0
  622. package/dist/skins/shared/gauge.d.ts +17 -0
  623. package/dist/skins/shared/gauge.d.ts.map +1 -0
  624. package/dist/skins/shared/gauge.js +29 -0
  625. package/dist/skins/shared/gauge.js.map +1 -0
  626. package/dist/skins/shared/limits.d.ts +3 -0
  627. package/dist/skins/shared/limits.d.ts.map +1 -0
  628. package/dist/skins/shared/limits.js +3 -0
  629. package/dist/skins/shared/limits.js.map +1 -0
  630. package/dist/skins/shared/spinner.d.ts +14 -0
  631. package/dist/skins/shared/spinner.d.ts.map +1 -0
  632. package/dist/skins/shared/spinner.js +25 -0
  633. package/dist/skins/shared/spinner.js.map +1 -0
  634. package/dist/skins/testing/conformance.d.ts +8 -0
  635. package/dist/skins/testing/conformance.d.ts.map +1 -0
  636. package/dist/skins/testing/conformance.js +34 -0
  637. package/dist/skins/testing/conformance.js.map +1 -0
  638. package/dist/skins/testing/scenes.d.ts +45 -0
  639. package/dist/skins/testing/scenes.d.ts.map +1 -0
  640. package/dist/skins/testing/scenes.js +465 -0
  641. package/dist/skins/testing/scenes.js.map +1 -0
  642. package/dist/skins/types.d.ts +294 -0
  643. package/dist/skins/types.d.ts.map +1 -0
  644. package/dist/skins/types.js +10 -0
  645. package/dist/skins/types.js.map +1 -0
  646. package/dist/skins/zen/activity.d.ts +7 -0
  647. package/dist/skins/zen/activity.d.ts.map +1 -0
  648. package/dist/skins/zen/activity.js +22 -0
  649. package/dist/skins/zen/activity.js.map +1 -0
  650. package/dist/skins/zen/approval.d.ts +20 -0
  651. package/dist/skins/zen/approval.d.ts.map +1 -0
  652. package/dist/skins/zen/approval.js +67 -0
  653. package/dist/skins/zen/approval.js.map +1 -0
  654. package/dist/skins/zen/body.d.ts +14 -0
  655. package/dist/skins/zen/body.d.ts.map +1 -0
  656. package/dist/skins/zen/body.js +82 -0
  657. package/dist/skins/zen/body.js.map +1 -0
  658. package/dist/skins/zen/index.d.ts +12 -0
  659. package/dist/skins/zen/index.d.ts.map +1 -0
  660. package/dist/skins/zen/index.js +44 -0
  661. package/dist/skins/zen/index.js.map +1 -0
  662. package/dist/skins/zen/live-region.d.ts +21 -0
  663. package/dist/skins/zen/live-region.d.ts.map +1 -0
  664. package/dist/skins/zen/live-region.js +77 -0
  665. package/dist/skins/zen/live-region.js.map +1 -0
  666. package/dist/skins/zen/messages.d.ts +27 -0
  667. package/dist/skins/zen/messages.d.ts.map +1 -0
  668. package/dist/skins/zen/messages.js +81 -0
  669. package/dist/skins/zen/messages.js.map +1 -0
  670. package/dist/skins/zen/status.d.ts +11 -0
  671. package/dist/skins/zen/status.d.ts.map +1 -0
  672. package/dist/skins/zen/status.js +177 -0
  673. package/dist/skins/zen/status.js.map +1 -0
  674. package/dist/skins/zen/style.d.ts +26 -0
  675. package/dist/skins/zen/style.d.ts.map +1 -0
  676. package/dist/skins/zen/style.js +14 -0
  677. package/dist/skins/zen/style.js.map +1 -0
  678. package/dist/skins/zen/tools.d.ts +23 -0
  679. package/dist/skins/zen/tools.d.ts.map +1 -0
  680. package/dist/skins/zen/tools.js +81 -0
  681. package/dist/skins/zen/tools.js.map +1 -0
  682. package/dist/skins/zen/width.d.ts +12 -0
  683. package/dist/skins/zen/width.d.ts.map +1 -0
  684. package/dist/skins/zen/width.js +27 -0
  685. package/dist/skins/zen/width.js.map +1 -0
  686. package/dist/theme/ThemeContext.d.ts +26 -0
  687. package/dist/theme/ThemeContext.d.ts.map +1 -0
  688. package/dist/theme/ThemeContext.js +24 -0
  689. package/dist/theme/ThemeContext.js.map +1 -0
  690. package/dist/theme/detect-terminal-background.d.ts +29 -0
  691. package/dist/theme/detect-terminal-background.d.ts.map +1 -0
  692. package/dist/theme/detect-terminal-background.js +72 -0
  693. package/dist/theme/detect-terminal-background.js.map +1 -0
  694. package/dist/theme/palettes.d.ts +84 -0
  695. package/dist/theme/palettes.d.ts.map +1 -0
  696. package/dist/theme/palettes.js +175 -0
  697. package/dist/theme/palettes.js.map +1 -0
  698. package/dist/theme/resolve-theme.d.ts +44 -0
  699. package/dist/theme/resolve-theme.d.ts.map +1 -0
  700. package/dist/theme/resolve-theme.js +72 -0
  701. package/dist/theme/resolve-theme.js.map +1 -0
  702. package/dist/tools/file/create-file.js +1 -1
  703. package/dist/tools/file/create-file.js.map +1 -1
  704. package/dist/tools/file/edit-healing.js +1 -1
  705. package/dist/tools/file/edit-healing.js.map +1 -1
  706. package/dist/tools/file/patch-healing.js +1 -1
  707. package/dist/tools/file/patch-healing.js.map +1 -1
  708. package/dist/tools/system/run-code/run-code-execution.d.ts +7 -0
  709. package/dist/tools/system/run-code/run-code-execution.d.ts.map +1 -1
  710. package/dist/tools/system/run-code/run-code-execution.js.map +1 -1
  711. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts +2 -0
  712. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts.map +1 -1
  713. package/dist/tools/system/run-code/run-code-runtime.d.ts +2 -1
  714. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
  715. package/dist/tools/system/run-code/run-code-runtime.js +110 -12
  716. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
  717. package/dist/tools/system/run-code/run-code.js +15 -8
  718. package/dist/tools/system/run-code/run-code.js.map +1 -1
  719. package/dist/utils/ai/model-settings.d.ts +0 -2
  720. package/dist/utils/ai/model-settings.d.ts.map +1 -1
  721. package/dist/utils/ai/model-settings.js +2 -11
  722. package/dist/utils/ai/model-settings.js.map +1 -1
  723. package/dist/utils/settings-command.d.ts.map +1 -1
  724. package/dist/utils/settings-command.js +25 -24
  725. package/dist/utils/settings-command.js.map +1 -1
  726. package/dist/utils/shell/execute-shell.js +1 -1
  727. package/dist/utils/shell/execute-shell.js.map +1 -1
  728. package/dist/utils/value-suggestions.d.ts +0 -2
  729. package/dist/utils/value-suggestions.d.ts.map +1 -1
  730. package/dist/utils/value-suggestions.js +15 -63
  731. package/dist/utils/value-suggestions.js.map +1 -1
  732. package/package.json +3 -4
@@ -0,0 +1,41 @@
1
+ import { CardsShellActivity, CardsTaskPanel, CARDS_TASK_PANEL_GUTTER } from './activity.js';
2
+ import { CardsMenuFrame, CardsQuestionPrompt, CardsSubagentFeed, CardsToolSection } from './body.js';
3
+ import { classicSkin } from '../classic/index.js';
4
+ import { CardsApprovalChoices, CardsApprovalFrame } from './approval.js';
5
+ import { CardsHints, CardsInputFrame, CardsLiveDivider, CardsPromptMarker, CardsWorkingIndicator, } from './live-region.js';
6
+ import { ASSISTANT_GUTTER, CardsAssistantFrame, CardsBanner, CardsUserMessage } from './messages.js';
7
+ import { CardsStatusBar } from './status.js';
8
+ import { CardsToolFrame, CardsToolGroupSummary, CardsToolHeader } from './tools.js';
9
+ /**
10
+ * "Cards": the banner, each user turn, each standard-display tool call, the input and
11
+ * the approval are rounded boxes; answers stay bare text; status is a row of pills;
12
+ * approval options are button chips. Concise tool calls are deliberately not carded,
13
+ * so a long run of them stays a list.
14
+ */
15
+ export const cardsSkin = {
16
+ ...classicSkin,
17
+ name: 'cards',
18
+ taskPanelGutter: CARDS_TASK_PANEL_GUTTER,
19
+ assistantGutter: ASSISTANT_GUTTER,
20
+ Banner: CardsBanner,
21
+ UserMessage: CardsUserMessage,
22
+ AssistantFrame: CardsAssistantFrame,
23
+ ToolFrame: CardsToolFrame,
24
+ ToolHeader: CardsToolHeader,
25
+ ToolGroupSummary: CardsToolGroupSummary,
26
+ WorkingIndicator: CardsWorkingIndicator,
27
+ LiveDivider: CardsLiveDivider,
28
+ PromptMarker: CardsPromptMarker,
29
+ InputFrame: CardsInputFrame,
30
+ Hints: CardsHints,
31
+ ShellActivity: CardsShellActivity,
32
+ TaskPanel: CardsTaskPanel,
33
+ ApprovalFrame: CardsApprovalFrame,
34
+ ApprovalChoices: CardsApprovalChoices,
35
+ QuestionPrompt: CardsQuestionPrompt,
36
+ SubagentFeed: CardsSubagentFeed,
37
+ ToolSection: CardsToolSection,
38
+ MenuFrame: CardsMenuFrame,
39
+ StatusBar: CardsStatusBar,
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/skins/cards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,GAAG,WAAW;IACd,IAAI,EAAE,OAAO;IACb,eAAe,EAAE,uBAAuB;IACxC,eAAe,EAAE,gBAAgB;IACjC,MAAM,EAAE,WAAW;IACnB,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,mBAAmB;IACnC,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,eAAe;IAC3B,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE,UAAU;IACjB,aAAa,EAAE,kBAAkB;IACjC,SAAS,EAAE,cAAc;IACzB,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;CAC1B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type FC } from 'react';
2
+ import type { HintsProps, InputFrameProps, PromptMarkerProps, WorkingIndicatorView } from '../types.js';
3
+ /** Spinner, then what the agent is doing and for how long. The same facts the classic line gives. */
4
+ export declare const CardsWorkingIndicator: FC<WorkingIndicatorView>;
5
+ /** The input card is the structure, so there is no rule between history and the live controls. */
6
+ export declare const CardsLiveDivider: FC;
7
+ export declare const CardsPromptMarker: FC<PromptMarkerProps>;
8
+ /**
9
+ * A rounded card around the marker and the editable input, drawn in the active-border
10
+ * colour. The input sizes itself to the terminal width less four columns, which is
11
+ * exactly what a border and a column of padding on each side take.
12
+ */
13
+ export declare const CardsInputFrame: FC<InputFrameProps>;
14
+ /** Quiet key hints, `·`-separated, with the key itself carrying the weight. */
15
+ export declare const CardsHints: FC<HintsProps>;
16
+ //# sourceMappingURL=live-region.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-region.d.ts","sourceRoot":"","sources":["../../../source/skins/cards/live-region.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAcxG,qGAAqG;AACrG,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,oBAAoB,CA0C1D,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,EAAe,CAAC;AAE/C,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,iBAAiB,CAqBnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,eAAe,CAO/C,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,UAAU,CAerC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { useTheme } from '../../components/theme.js';
4
+ import { formatTokensPerSecond } from '../../utils/streaming/streaming-speed-tracker.js';
5
+ import { BRAILLE_SPINNER, useSpinnerFrame } from '../shared/spinner.js';
6
+ import { Card } from './card.js';
7
+ /** The only animated piece of the live region; it exists to keep the ticking out of its parent. */
8
+ const Spinner = () => {
9
+ const theme = useTheme();
10
+ const frame = useSpinnerFrame(BRAILLE_SPINNER, true);
11
+ return (React.createElement(Text, { color: theme.accent, bold: true }, frame));
12
+ };
13
+ /** Spinner, then what the agent is doing and for how long. The same facts the classic line gives. */
14
+ export const CardsWorkingIndicator = ({ phase, elapsedSeconds, tokensPerSecond, toolName, argumentChars, }) => {
15
+ const theme = useTheme();
16
+ const hasRate = tokensPerSecond != null && tokensPerSecond > 0;
17
+ const rate = hasRate ? formatTokensPerSecond(tokensPerSecond) : '';
18
+ let label;
19
+ if (phase === 'tool_call') {
20
+ label = (React.createElement(React.Fragment, null,
21
+ "Calling tool ",
22
+ toolName ? React.createElement(Text, { bold: true }, toolName) : '',
23
+ ' · ',
24
+ elapsedSeconds,
25
+ "s",
26
+ argumentChars != null ? ` (${argumentChars} chars` : '',
27
+ hasRate ? ` · ${rate}` : '',
28
+ argumentChars != null ? ')' : ''));
29
+ }
30
+ else if (phase === 'thinking') {
31
+ label = (React.createElement(React.Fragment, null,
32
+ "Thinking \u00B7 ",
33
+ elapsedSeconds,
34
+ "s",
35
+ hasRate ? ` (${rate})` : ''));
36
+ }
37
+ else {
38
+ label = hasRate ? `Generating · ${elapsedSeconds}s (${rate})` : `Processing · ${elapsedSeconds}s`;
39
+ }
40
+ return (React.createElement(Box, null,
41
+ React.createElement(Box, { flexShrink: 0, marginRight: 1 },
42
+ React.createElement(Spinner, null)),
43
+ React.createElement(Box, { flexShrink: 1 },
44
+ React.createElement(Text, { color: theme.textSubtle }, label))));
45
+ };
46
+ /** The input card is the structure, so there is no rule between history and the live controls. */
47
+ export const CardsLiveDivider = () => null;
48
+ export const CardsPromptMarker = ({ mode }) => {
49
+ const theme = useTheme();
50
+ if (mode === 'rejection') {
51
+ return (React.createElement(Text, { color: theme.warning, bold: true },
52
+ "Why?",
53
+ ' '));
54
+ }
55
+ if (mode === 'shell') {
56
+ return (React.createElement(Text, { color: theme.danger, bold: true },
57
+ "!",
58
+ ' '));
59
+ }
60
+ return (React.createElement(Text, { color: theme.accent, bold: true },
61
+ "\u276F",
62
+ ' '));
63
+ };
64
+ /**
65
+ * A rounded card around the marker and the editable input, drawn in the active-border
66
+ * colour. The input sizes itself to the terminal width less four columns, which is
67
+ * exactly what a border and a column of padding on each side take.
68
+ */
69
+ export const CardsInputFrame = ({ children }) => {
70
+ const theme = useTheme();
71
+ return (React.createElement(Card, { color: theme.borderActive },
72
+ React.createElement(Box, null, children)));
73
+ };
74
+ /** Quiet key hints, `·`-separated, with the key itself carrying the weight. */
75
+ export const CardsHints = ({ hints }) => {
76
+ const theme = useTheme();
77
+ return (React.createElement(Text, { color: theme.textSubtle }, hints.map(([key, action, keyColor], index) => (React.createElement(React.Fragment, { key: key },
78
+ index > 0 ? ' · ' : '',
79
+ React.createElement(Text, { color: keyColor ? theme[keyColor] : theme.textMuted, bold: true }, key),
80
+ ' ',
81
+ action)))));
82
+ };
83
+ //# sourceMappingURL=live-region.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-region.js","sourceRoot":"","sources":["../../../source/skins/cards/live-region.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type RefObject } from 'react';
2
+ import { type DOMElement } from 'ink';
3
+ /**
4
+ * The width, in columns, that the element this ref is attached to was actually given.
5
+ *
6
+ * Layouts that choose between forms (chips in a row or stacked, how many status pills fit)
7
+ * need the room they really have: the card's inner width, not the terminal's, and a
8
+ * terminal width is not always available to read (a one-shot render has no stdout). The
9
+ * width is measured in a layout effect, whose state update is applied before anything is
10
+ * painted, and `initial` is what is assumed for that first pass.
11
+ *
12
+ * `terminalColumns` is the caller's own reading of the terminal width. Its only job here is
13
+ * to re-run the measurement when the terminal is resized, since the element's width can
14
+ * change then and at no other time.
15
+ */
16
+ export declare function useMeasuredWidth(initial: number, terminalColumns: number): [RefObject<DOMElement | null>, number];
17
+ //# sourceMappingURL=measure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../source/skins/cards/measure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,CAYjH"}
@@ -0,0 +1,29 @@
1
+ import { useLayoutEffect, useRef, useState } from 'react';
2
+ import { measureElement } from 'ink';
3
+ /**
4
+ * The width, in columns, that the element this ref is attached to was actually given.
5
+ *
6
+ * Layouts that choose between forms (chips in a row or stacked, how many status pills fit)
7
+ * need the room they really have: the card's inner width, not the terminal's, and a
8
+ * terminal width is not always available to read (a one-shot render has no stdout). The
9
+ * width is measured in a layout effect, whose state update is applied before anything is
10
+ * painted, and `initial` is what is assumed for that first pass.
11
+ *
12
+ * `terminalColumns` is the caller's own reading of the terminal width. Its only job here is
13
+ * to re-run the measurement when the terminal is resized, since the element's width can
14
+ * change then and at no other time.
15
+ */
16
+ export function useMeasuredWidth(initial, terminalColumns) {
17
+ const ref = useRef(null);
18
+ const [width, setWidth] = useState(initial);
19
+ useLayoutEffect(() => {
20
+ if (!ref.current)
21
+ return;
22
+ const measured = measureElement(ref.current).width;
23
+ // The updater form lets React drop an unchanged width without scheduling another render.
24
+ if (measured > 0)
25
+ setWidth((current) => (current === measured ? current : measured));
26
+ }, [terminalColumns]);
27
+ return [ref, width];
28
+ }
29
+ //# sourceMappingURL=measure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../source/skins/cards/measure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAmB,MAAM,KAAK,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,eAAuB;IACvE,MAAM,GAAG,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE5C,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QACnD,yFAAyF;QACzF,IAAI,QAAQ,GAAG,CAAC;YAAE,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvF,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type FC } from 'react';
2
+ import type { AssistantFrameProps, BannerView, UserMessageView } from '../types.js';
3
+ /**
4
+ * Columns the assistant frame may take on the left: the reasoning rail and its space.
5
+ * Declared for both kinds, so an answer wraps two columns narrower than it strictly needs
6
+ * to; that is the price of one honest number, and it keeps reasoning's code blocks inside
7
+ * the terminal.
8
+ */
9
+ export declare const ASSISTANT_GUTTER = 2;
10
+ /**
11
+ * A small card that shrinks to its content: name and version on the border, the
12
+ * model on the first row, the mode (and mentor) badges beneath.
13
+ */
14
+ export declare const CardsBanner: FC<BannerView>;
15
+ /** The user's turn in a card of its own, in the accent colour, titled `you`. */
16
+ export declare const CardsUserMessage: FC<UserMessageView>;
17
+ /**
18
+ * Answers stay completely bare, flush left, so long markdown and code blocks read
19
+ * without a frame. Reasoning is subordinate: it sits behind a quiet dotted rail, which is
20
+ * also what marks it apart from an answer when there is no colour.
21
+ */
22
+ export declare const CardsAssistantFrame: FC<AssistantFrameProps>;
23
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../source/skins/cards/messages.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGpF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAelC;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,UAAU,CA+CtC,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,eAAe,CAchD,CAAC;AAaF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAkBvD,CAAC"}
@@ -0,0 +1,80 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { useTheme } from '../../components/theme.js';
4
+ import { MODEL_LABEL_MAX } from '../shared/limits.js';
5
+ import { Card } from './card.js';
6
+ /**
7
+ * Columns the assistant frame may take on the left: the reasoning rail and its space.
8
+ * Declared for both kinds, so an answer wraps two columns narrower than it strictly needs
9
+ * to; that is the price of one honest number, and it keeps reasoning's code blocks inside
10
+ * the terminal.
11
+ */
12
+ export const ASSISTANT_GUTTER = 2;
13
+ const truncateModel = (name) => name.length > MODEL_LABEL_MAX ? `${name.slice(0, MODEL_LABEL_MAX - 1)}…` : name;
14
+ const Badge = ({ mode }) => {
15
+ const theme = useTheme();
16
+ return (React.createElement(Text, { backgroundColor: theme.modeBadge[mode], color: theme.modeBadgeForeground, bold: true },
17
+ ' ',
18
+ mode,
19
+ ' '));
20
+ };
21
+ /**
22
+ * A small card that shrinks to its content: name and version on the border, the
23
+ * model on the first row, the mode (and mentor) badges beneath.
24
+ */
25
+ export const CardsBanner = ({ version, mode, mentor, providerLabel, model, reasoningEffort, mentorModel, mentorReasoningEffort, }) => {
26
+ const theme = useTheme();
27
+ return (React.createElement(Box, { flexDirection: "column", paddingTop: 1, marginBottom: 1 },
28
+ React.createElement(Card, { fit: true, color: theme.border, title: React.createElement(Text, { wrap: "truncate-end" },
29
+ React.createElement(Text, { color: theme.accent, bold: true }, "term\u00B2"),
30
+ React.createElement(Text, { color: theme.textMuted },
31
+ " v",
32
+ version)) },
33
+ React.createElement(Text, null,
34
+ React.createElement(Text, { color: theme.textMuted }, providerLabel),
35
+ React.createElement(Text, { color: theme.textSubtle }, "/"),
36
+ React.createElement(Text, { color: theme.accent, bold: true }, model ? truncateModel(model) : '—'),
37
+ reasoningEffort !== 'none' && React.createElement(Text, { color: theme.textSubtle },
38
+ " (",
39
+ reasoningEffort,
40
+ ")")),
41
+ React.createElement(Box, { flexWrap: "wrap", columnGap: 1 },
42
+ React.createElement(Badge, { mode: mode }),
43
+ mentor && React.createElement(Badge, { mode: "MENTOR" }),
44
+ mentor && mentorModel && (React.createElement(Text, null,
45
+ React.createElement(Text, { color: theme.textSubtle }, "mentor "),
46
+ React.createElement(Text, { color: theme.accentAlt }, truncateModel(mentorModel)),
47
+ mentorReasoningEffort !== 'none' && React.createElement(Text, { color: theme.textSubtle },
48
+ " (",
49
+ mentorReasoningEffort,
50
+ ")")))))));
51
+ };
52
+ /** The user's turn in a card of its own, in the accent colour, titled `you`. */
53
+ export const CardsUserMessage = ({ text }) => {
54
+ const theme = useTheme();
55
+ return (React.createElement(Card, { color: theme.accent, title: React.createElement(Text, { color: theme.accent, bold: true, wrap: "truncate-end" }, "you") },
56
+ React.createElement(Text, { color: theme.userText }, text)));
57
+ };
58
+ const REASONING_RAIL = {
59
+ topLeft: '',
60
+ top: '',
61
+ topRight: '',
62
+ left: '┆',
63
+ bottomLeft: '',
64
+ bottom: '',
65
+ bottomRight: '',
66
+ right: '',
67
+ };
68
+ /**
69
+ * Answers stay completely bare, flush left, so long markdown and code blocks read
70
+ * without a frame. Reasoning is subordinate: it sits behind a quiet dotted rail, which is
71
+ * also what marks it apart from an answer when there is no colour.
72
+ */
73
+ export const CardsAssistantFrame = ({ kind, children }) => {
74
+ const theme = useTheme();
75
+ if (kind === 'reasoning') {
76
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: REASONING_RAIL, borderTop: false, borderBottom: false, borderRight: false, borderColor: theme.textSubtle, paddingLeft: 1 }, children));
77
+ }
78
+ return React.createElement(React.Fragment, null, children);
79
+ };
80
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../source/skins/cards/messages.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type FC } from 'react';
2
+ import type { StatusView } from '../types.js';
3
+ /**
4
+ * A row of pills: safety, who is answering, then this turn's numbers (the context
5
+ * gauge, tokens, cache, cost). Everything that is not steady state, the alerts and the
6
+ * provider quota, sits on a second row that exists only while there is something to say.
7
+ */
8
+ export declare const CardsStatusBar: FC<StatusView>;
9
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../source/skins/cards/status.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAyD,UAAU,EAAE,MAAM,aAAa,CAAC;AA6NrG;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,UAAU,CA8CzC,CAAC"}
@@ -0,0 +1,205 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { GLYPH_WARNING, useTheme } from '../../components/theme.js';
4
+ import { contextTone, gaugeBar } from '../shared/gauge.js';
5
+ import { useMeasuredWidth } from './measure.js';
6
+ import { cells, clip } from './width.js';
7
+ /** Cells of a gauge bar in the context pill and in each quota pill. */
8
+ const CONTEXT_GAUGE_CELLS = 6;
9
+ const QUOTA_GAUGE_CELLS = 4;
10
+ /** Columns a pill spends on its own padding, and between neighbouring pills. */
11
+ const PILL_PADDING = 2;
12
+ const PILL_GAP = 1;
13
+ /** A pill's text is never clipped below this, however tight the row. */
14
+ const MIN_CLIPPED_TEXT = 6;
15
+ /** Roles that would be too faint on the pill surface are lifted one step, so text stays readable. */
16
+ const onSurface = (tone) => tone === undefined || tone === 'textSubtle' ? 'textMuted' : tone;
17
+ const segmentPiece = (segment, pill, overrides = {}) => ({
18
+ id: segment.id,
19
+ pill,
20
+ text: segment.text.trim().replace(/^·\s*/, ''),
21
+ tone: segment.tone,
22
+ bold: segment.bold,
23
+ tier: segment.tier,
24
+ ...overrides,
25
+ });
26
+ const findSegment = (list, id) => list.find((segment) => segment.id === id && segment.text);
27
+ function configPieces(view) {
28
+ const pieces = [];
29
+ const push = (id, pill, overrides = {}) => {
30
+ const segment = findSegment(view.config, id);
31
+ if (segment)
32
+ pieces.push(segmentPiece(segment, pill, overrides));
33
+ };
34
+ const safety = findSegment(view.config, 'safety');
35
+ if (safety) {
36
+ pieces.push(segmentPiece(safety, 'safety', {
37
+ // The marker is a shape as well as a colour: a diamond for "contained", a triangle for "not".
38
+ text: `${safety.tone === 'danger' ? GLYPH_WARNING : '◆'} ${safety.text.trim()}`,
39
+ }));
40
+ }
41
+ push('ssh-marker', 'ssh');
42
+ push('ssh-detail', 'ssh');
43
+ push('mode', 'mode');
44
+ push('queue', 'queue');
45
+ push('provider-model', 'model');
46
+ push('reasoning', 'model', { glue: ' · ' });
47
+ push('mentor', 'mentor');
48
+ const mentor = pieces.find((piece) => piece.id === 'mentor');
49
+ if (mentor)
50
+ mentor.text = `mentor ${mentor.text}`;
51
+ return pieces;
52
+ }
53
+ function metricPieces(view) {
54
+ const pieces = [];
55
+ const context = findSegment(view.metrics, 'context');
56
+ if (context) {
57
+ const percent = view.gauges.contextPercent;
58
+ if (percent === undefined) {
59
+ pieces.push(segmentPiece(context, 'context'));
60
+ }
61
+ else {
62
+ const clamped = Math.min(100, Math.max(0, percent));
63
+ pieces.push({
64
+ id: 'context',
65
+ pill: 'context',
66
+ text: `ctx ${gaugeBar(clamped, CONTEXT_GAUGE_CELLS)} ${percent}%`,
67
+ tone: contextTone(percent),
68
+ tier: context.tier,
69
+ });
70
+ // The used/window figure the bar summarises; first to go when the row is tight.
71
+ const detail = context.text.replace(/^ctx\s+/i, '').trim();
72
+ if (detail.includes('/')) {
73
+ pieces.push({ id: 'context-detail', pill: 'context', text: detail, tone: 'textMuted', tier: -1 });
74
+ }
75
+ }
76
+ }
77
+ const tokens = findSegment(view.metrics, 'tokens');
78
+ if (tokens)
79
+ pieces.push(segmentPiece(tokens, 'tokens'));
80
+ const speed = findSegment(view.metrics, 'speed');
81
+ if (speed)
82
+ pieces.push(segmentPiece(speed, 'tokens', { tone: 'textMuted' }));
83
+ const cache = findSegment(view.metrics, 'cache');
84
+ if (cache)
85
+ pieces.push(segmentPiece(cache, 'cache'));
86
+ const cost = findSegment(view.metrics, 'cost');
87
+ if (cost)
88
+ pieces.push(segmentPiece(cost, 'cost'));
89
+ return pieces;
90
+ }
91
+ function toPills(pieces, dropped) {
92
+ const pills = [];
93
+ for (const piece of pieces) {
94
+ if (dropped.has(piece.id))
95
+ continue;
96
+ const existing = pills.find((pill) => pill.id === piece.pill);
97
+ if (existing)
98
+ existing.pieces.push(piece);
99
+ else
100
+ pills.push({ id: piece.pill, pieces: [piece] });
101
+ }
102
+ return pills;
103
+ }
104
+ const pillText = (pill) => pill.pieces.reduce((out, piece, index) => (index === 0 ? piece.text : `${out}${piece.glue ?? ' '}${piece.text}`), '');
105
+ const rowWidth = (pills, framing) => pills.reduce((total, pill) => total + cells(pillText(pill)) + framing, 0) + Math.max(0, pills.length - 1) * PILL_GAP;
106
+ /**
107
+ * Fits a row to `budget` columns: drops pieces lowest tier first, exactly as the classic
108
+ * bar would, and only when that is not enough clips the longest remaining piece.
109
+ */
110
+ function fitRow(pieces, budget, framing) {
111
+ const dropped = new Set();
112
+ const order = pieces
113
+ .filter((piece) => piece.tier !== undefined)
114
+ .sort((a, b) => a.tier - b.tier)
115
+ .map((piece) => piece.id);
116
+ let pills = toPills(pieces, dropped);
117
+ for (const id of order) {
118
+ if (rowWidth(pills, framing) <= budget)
119
+ break;
120
+ dropped.add(id);
121
+ pills = toPills(pieces, dropped);
122
+ }
123
+ const working = pieces.filter((piece) => !dropped.has(piece.id)).map((piece) => ({ ...piece }));
124
+ for (let attempt = 0; attempt < 6; attempt += 1) {
125
+ pills = toPills(working, new Set());
126
+ const overflow = rowWidth(pills, framing) - budget;
127
+ if (overflow <= 0)
128
+ break;
129
+ const longest = working.reduce((best, piece) => (cells(piece.text) > cells(best.text) ? piece : best), working[0]);
130
+ if (!longest || cells(longest.text) <= MIN_CLIPPED_TEXT)
131
+ break;
132
+ longest.text = clip(longest.text, Math.max(MIN_CLIPPED_TEXT, cells(longest.text) - overflow));
133
+ }
134
+ return pills;
135
+ }
136
+ /** One pill: a quiet surface behind the text. With no colours at all, `‹ ›` stand in for the surface. */
137
+ const PillView = ({ pill }) => {
138
+ const theme = useTheme();
139
+ const surface = theme.codeBackground;
140
+ const frame = surface === undefined;
141
+ return (React.createElement(Text, { backgroundColor: surface, wrap: "truncate-end" },
142
+ frame ? '‹ ' : ' ',
143
+ pill.pieces.map((piece, index) => (React.createElement(React.Fragment, { key: piece.id },
144
+ index > 0 ? piece.glue ?? ' ' : '',
145
+ React.createElement(Text, { color: theme[onSurface(piece.tone)], bold: piece.bold }, piece.text)))),
146
+ frame ? ' ›' : ' '));
147
+ };
148
+ const Row = ({ pills }) => (React.createElement(Box, { flexWrap: "wrap", columnGap: PILL_GAP }, pills.map((pill) => (React.createElement(PillView, { key: pill.id, pill: pill })))));
149
+ const Alerts = ({ alerts }) => {
150
+ const theme = useTheme();
151
+ return (React.createElement(Box, { flexWrap: "wrap", columnGap: 2 }, alerts.map((alert) => (React.createElement(Text, { key: alert.id }, alert.parts.map((part, index) => (React.createElement(Text, { key: index, color: theme[part.tone], bold: part.bold }, part.text))))))));
152
+ };
153
+ const quotaPill = (window) => ({
154
+ id: `quota-${window.label}`,
155
+ pieces: [
156
+ {
157
+ id: `quota-${window.label}`,
158
+ pill: `quota-${window.label}`,
159
+ text: `${window.label} ${gaugeBar(window.percent, QUOTA_GAUGE_CELLS)} ${window.percent}%${window.resetText ? `→${window.resetText}` : ''}`,
160
+ tone: contextTone(window.percent),
161
+ },
162
+ ],
163
+ });
164
+ /**
165
+ * A row of pills: safety, who is answering, then this turn's numbers (the context
166
+ * gauge, tokens, cache, cost). Everything that is not steady state, the alerts and the
167
+ * provider quota, sits on a second row that exists only while there is something to say.
168
+ */
169
+ export const CardsStatusBar = ({ columns, config, metrics, alerts, quotaText, gauges }) => {
170
+ const framing = useTheme().codeBackground === undefined ? PILL_PADDING + 2 : PILL_PADDING;
171
+ // The row's real width is measured, since `columns` is the terminal's and not always known.
172
+ const [measureRef, measured] = useMeasuredWidth(columns, columns);
173
+ const budget = Math.max(1, measured);
174
+ const segments = { config, metrics, gauges };
175
+ const configPiecesAll = configPieces(segments);
176
+ const metricPiecesAll = metricPieces(segments);
177
+ const configFit = fitRow(configPiecesAll, budget, framing);
178
+ const metricsFit = fitRow(metricPiecesAll, budget, framing);
179
+ const fitsOnOneRow = configFit.length === 0 ||
180
+ metricsFit.length === 0 ||
181
+ rowWidth(configFit, framing) + PILL_GAP + rowWidth(metricsFit, framing) <= budget;
182
+ // Before giving the numbers a row of their own, see whether everything but the
183
+ // garnish (the used/window figure and the live rate) fits on one: a single row is
184
+ // the quieter bar, and those two are the least that is lost.
185
+ const essential = toPills([...configPiecesAll, ...metricPiecesAll].filter((piece) => piece.tier === undefined || piece.tier > 0), new Set());
186
+ const essentialFitsOnOneRow = rowWidth(essential, framing) <= budget;
187
+ const pillRows = fitsOnOneRow
188
+ ? [[...configFit, ...metricsFit]]
189
+ : essentialFitsOnOneRow
190
+ ? [essential]
191
+ : [configFit, metricsFit];
192
+ const quotaPills = gauges.quotaWindows.length > 0 ? gauges.quotaWindows.map(quotaPill) : [];
193
+ const hasSecondRow = alerts.length > 0 || quotaPills.length > 0 || quotaText !== '';
194
+ return (React.createElement(Box, { marginTop: 1, flexDirection: "column", width: "100%", ref: measureRef },
195
+ pillRows.map((pills) => (React.createElement(Row, { key: pills.map((pill) => pill.id).join(), pills: pills }))),
196
+ hasSecondRow && (React.createElement(Box, { flexDirection: "column" },
197
+ alerts.length > 0 && React.createElement(Alerts, { alerts: alerts }),
198
+ quotaPills.length > 0 ? React.createElement(Row, { pills: quotaPills }) : quotaText !== '' && React.createElement(QuotaText, { text: quotaText })))));
199
+ };
200
+ /** The container's own quota text, for providers whose windows arrive without structure. */
201
+ const QuotaText = ({ text }) => {
202
+ const theme = useTheme();
203
+ return React.createElement(Text, { color: theme.textMuted }, text);
204
+ };
205
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../source/skins/cards/status.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type FC } from 'react';
2
+ import type { ToolFrameProps, ToolGroupSummaryView, ToolHeaderProps } from '../types.js';
3
+ /**
4
+ * Standard display only: the header and the full output share one rounded card whose
5
+ * border is the status colour. Concise calls stay single bare lines, so a long run of
6
+ * calls reads as a list rather than a wall of boxes.
7
+ */
8
+ export declare const CardsToolFrame: FC<ToolFrameProps>;
9
+ /**
10
+ * The first row of a card: status glyph, then the tool name and action, with the
11
+ * glyph in its own column so a long command wraps underneath the action rather than
12
+ * under the glyph. Settled concise calls colour only the glyph and keep the text quiet.
13
+ */
14
+ export declare const CardsToolHeader: FC<ToolHeaderProps>;
15
+ /**
16
+ * One line for a run of calls. A partly-failed run keeps the neutral summary and the
17
+ * green marker, because most of what it did succeeded; the failure line beneath, with
18
+ * its own red marker, is what carries the bad news. Both lines wrap rather than clip.
19
+ */
20
+ export declare const CardsToolGroupSummary: FC<ToolGroupSummaryView>;
21
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../source/skins/cards/tools.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA6BzF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,cAAc,CAQ7C,CAAC;AAOF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,eAAe,CA2D/C,CAAC;AAQF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,oBAAoB,CAe1D,CAAC"}