@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,21 @@
1
+ import { type FC } from 'react';
2
+ import type { AssistantFrameProps, BannerView, UserMessageView } from '../types.js';
3
+ /**
4
+ * One line, no box: `term² v0.30.0 · Codex/gpt-5.6-luna (high)`, then a pill only
5
+ * when the mode is not the default. On a narrow terminal the version is the first
6
+ * thing to go, and if the rest still does not fit the model moves to its own line.
7
+ */
8
+ export declare const RailBanner: FC<BannerView>;
9
+ /**
10
+ * No background band: a band only works against the terminal background it was
11
+ * tuned for, whereas bold text behind an accent prompt reads on any. A long
12
+ * message wraps under its first word, not under the `❯`.
13
+ */
14
+ export declare const RailUserMessage: FC<UserMessageView>;
15
+ /**
16
+ * Answers and reasoning are printed bare, flush left. Reasoning is already
17
+ * quieter (its own colour from the container), and indenting only it would need
18
+ * a gutter that `assistantGutter` cannot declare per kind.
19
+ */
20
+ export declare const RailAssistantFrame: FC<AssistantFrameProps>;
21
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../source/skins/rail/messages.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoBpF;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,UAAU,CA+ErC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,eAAe,CAgB/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,CAAqC,CAAC"}
@@ -0,0 +1,90 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { useTheme } from '../../components/theme.js';
4
+ import { useTerminalColumns } from '../../hooks/use-terminal-columns.js';
5
+ import { MODEL_LABEL_MAX } from '../shared/limits.js';
6
+ import { cells } from './parts.js';
7
+ const truncateModel = (name) => name.length > MODEL_LABEL_MAX ? `${name.slice(0, MODEL_LABEL_MAX - 1)}…` : name;
8
+ /**
9
+ * A small pill. Under `mono` the badge colour is undefined, so the pill is drawn
10
+ * inverted instead: a mode must never be invisible just because there is no colour.
11
+ */
12
+ const Badge = ({ mode }) => {
13
+ const theme = useTheme();
14
+ const background = theme.modeBadge[mode];
15
+ return (React.createElement(Text, { backgroundColor: background, color: theme.modeBadgeForeground, inverse: background === undefined, bold: true }, ` ${mode} `));
16
+ };
17
+ /**
18
+ * One line, no box: `term² v0.30.0 · Codex/gpt-5.6-luna (high)`, then a pill only
19
+ * when the mode is not the default. On a narrow terminal the version is the first
20
+ * thing to go, and if the rest still does not fit the model moves to its own line.
21
+ */
22
+ export const RailBanner = ({ version, mode, mentor, providerLabel, model, reasoningEffort, mentorModel, mentorReasoningEffort, }) => {
23
+ const theme = useTheme();
24
+ const columns = useTerminalColumns();
25
+ const effort = reasoningEffort !== 'none' ? ` (${reasoningEffort})` : '';
26
+ const modelText = `${providerLabel}/${model ? truncateModel(model) : '—'}${effort}`;
27
+ const mentorEffort = mentorReasoningEffort !== 'none' ? ` (${mentorReasoningEffort})` : '';
28
+ const mentorText = mentor && mentorModel ? `${truncateModel(mentorModel)}${mentorEffort}` : '';
29
+ const badges = [...(mode !== 'STANDARD' ? [mode] : []), ...(mentor ? ['MENTOR'] : [])];
30
+ const badgeWidth = badges.reduce((total, badge) => total + cells(badge) + 3, 0);
31
+ const versionText = `v${version}`;
32
+ const brandWidth = cells('term²');
33
+ const tailWidth = 3 + cells(modelText) + (mentorText ? 1 + cells(mentorText) : 0) + badgeWidth;
34
+ const withVersion = brandWidth + 1 + cells(versionText) + tailWidth;
35
+ const showVersion = withVersion <= columns;
36
+ const oneLine = showVersion || brandWidth + tailWidth <= columns;
37
+ const brand = (React.createElement(React.Fragment, null,
38
+ React.createElement(Text, { color: theme.accent, bold: true }, "term\u00B2"),
39
+ showVersion && React.createElement(Text, { color: theme.textMuted },
40
+ " ",
41
+ versionText)));
42
+ const separator = React.createElement(Text, { color: theme.textSubtle }, " \u00B7 ");
43
+ const modelNode = (React.createElement(React.Fragment, null,
44
+ React.createElement(Text, { color: theme.textMuted }, providerLabel),
45
+ React.createElement(Text, { color: theme.textSubtle }, "/"),
46
+ React.createElement(Text, { color: theme.accent }, model ? truncateModel(model) : '—'),
47
+ effort && React.createElement(Text, { color: theme.textSubtle }, effort)));
48
+ const badgeNodes = badges.map((badge) => (React.createElement(Text, { key: badge },
49
+ ' ',
50
+ React.createElement(Badge, { mode: badge }))));
51
+ const mentorNode = mentorText ? React.createElement(Text, { color: theme.accentAlt },
52
+ " ",
53
+ mentorText) : null;
54
+ if (oneLine) {
55
+ return (React.createElement(Box, { marginBottom: 1 },
56
+ React.createElement(Text, null,
57
+ brand,
58
+ separator,
59
+ modelNode,
60
+ badgeNodes,
61
+ mentorNode)));
62
+ }
63
+ return (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
64
+ React.createElement(Text, null,
65
+ brand,
66
+ badgeNodes),
67
+ React.createElement(Text, null,
68
+ modelNode,
69
+ mentorNode)));
70
+ };
71
+ /**
72
+ * No background band: a band only works against the terminal background it was
73
+ * tuned for, whereas bold text behind an accent prompt reads on any. A long
74
+ * message wraps under its first word, not under the `❯`.
75
+ */
76
+ export const RailUserMessage = ({ text }) => {
77
+ const theme = useTheme();
78
+ return (React.createElement(Box, null,
79
+ React.createElement(Box, { width: 2, flexShrink: 0 },
80
+ React.createElement(Text, { color: theme.accent, bold: true }, "\u276F")),
81
+ React.createElement(Box, { flexShrink: 1 },
82
+ React.createElement(Text, { bold: true, color: theme.userText }, text))));
83
+ };
84
+ /**
85
+ * Answers and reasoning are printed bare, flush left. Reasoning is already
86
+ * quieter (its own colour from the container), and indenting only it would need
87
+ * a gutter that `assistantGutter` cannot declare per kind.
88
+ */
89
+ export const RailAssistantFrame = ({ children }) => React.createElement(React.Fragment, null, children);
90
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../source/skins/rail/messages.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type FC, type ReactNode } from 'react';
2
+ /** Thin, for a calm tool call. */
3
+ export declare const RAIL_THIN = "\u258E";
4
+ /** Heavier, for a call that failed or an approval that needs a decision. */
5
+ export declare const RAIL_HEAVY = "\u258C";
6
+ /** The heaviest, reserved for the riskiest approval class. */
7
+ export declare const RAIL_SOLID = "\u2588";
8
+ /**
9
+ * A rail down the left of its children, one glyph per line, sized by Yoga so it
10
+ * follows wrapped lines and resizes with the terminal. It costs two columns: the
11
+ * glyph and one column of padding, which every caller accounts for.
12
+ */
13
+ export declare const Rail: FC<{
14
+ glyph: string;
15
+ color: string | undefined;
16
+ children: ReactNode;
17
+ }>;
18
+ /**
19
+ * A one-cell-tall horizontal rule. In `mono` there is no colour to make it recede,
20
+ * so it is dimmed instead of drawn at full weight.
21
+ */
22
+ export declare const Hairline: FC;
23
+ /** Columns a string occupies, for the single-cell glyphs this skin is built from. */
24
+ export declare const cells: (value: string) => number;
25
+ //# sourceMappingURL=parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../source/skins/rail/parts.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBvD,kCAAkC;AAClC,eAAO,MAAM,SAAS,WAAM,CAAC;AAC7B,4EAA4E;AAC5E,eAAO,MAAM,UAAU,WAAM,CAAC;AAC9B,8DAA8D;AAC9D,eAAO,MAAM,UAAU,WAAM,CAAC;AAE9B;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAgBtF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,EActB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,MAAkC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { Box } from 'ink';
3
+ import { useTheme } from '../../components/theme.js';
4
+ /** A border style that draws only its left edge, as one repeated glyph: the rail. */
5
+ const railStyle = (glyph) => ({
6
+ topLeft: '',
7
+ top: '',
8
+ topRight: '',
9
+ right: '',
10
+ bottomRight: '',
11
+ bottom: '',
12
+ bottomLeft: '',
13
+ left: glyph,
14
+ });
15
+ /** Thin, for a calm tool call. */
16
+ export const RAIL_THIN = '▎';
17
+ /** Heavier, for a call that failed or an approval that needs a decision. */
18
+ export const RAIL_HEAVY = '▌';
19
+ /** The heaviest, reserved for the riskiest approval class. */
20
+ export const RAIL_SOLID = '█';
21
+ /**
22
+ * A rail down the left of its children, one glyph per line, sized by Yoga so it
23
+ * follows wrapped lines and resizes with the terminal. It costs two columns: the
24
+ * glyph and one column of padding, which every caller accounts for.
25
+ */
26
+ export const Rail = ({ glyph, color, children, }) => (React.createElement(Box, { flexDirection: "column", borderStyle: railStyle(glyph), borderColor: color, borderTop: false, borderBottom: false, borderRight: false, paddingLeft: 1 }, children));
27
+ /**
28
+ * A one-cell-tall horizontal rule. In `mono` there is no colour to make it recede,
29
+ * so it is dimmed instead of drawn at full weight.
30
+ */
31
+ export const Hairline = () => {
32
+ const theme = useTheme();
33
+ return (React.createElement(Box, { width: "100%", borderStyle: "single", borderColor: theme.border, borderDimColor: theme.border === undefined, borderTop: true, borderBottom: false, borderLeft: false, borderRight: false }));
34
+ };
35
+ /** Columns a string occupies, for the single-cell glyphs this skin is built from. */
36
+ export const cells = (value) => Array.from(value).length;
37
+ //# sourceMappingURL=parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../../source/skins/rail/parts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,qFAAqF;AACrF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,KAAK;CACZ,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,4EAA4E;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,8DAA8D;AAC9D,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAE9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAA0E,CAAC,EAC1F,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,EAAE,CAAC,CACJ,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,EAC7B,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,KAAK,EACnB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAE,CAAC,IAEb,QAAQ,CACL,CACP,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAO,GAAG,EAAE;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,CACL,oBAAC,GAAG,IACF,KAAK,EAAC,MAAM,EACZ,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,KAAK,CAAC,MAAM,EACzB,cAAc,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,EAC1C,SAAS,QACT,YAAY,EAAE,KAAK,EACnB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,GAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type FC } from 'react';
2
+ import type { StatusView } from '../types.js';
3
+ /**
4
+ * One line when nothing is wrong: `Sandboxed · codex/gpt-5.6-luna high · ctx ▰▰▰▱▱ 84% · $0.12`.
5
+ * A second line appears only for an alert or provider quota. Low-priority
6
+ * segments drop by their `tier` as the terminal narrows; whatever must stay and
7
+ * still does not fit wraps onto another line rather than being cut.
8
+ */
9
+ export declare const RailStatusBar: FC<StatusView>;
10
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../source/skins/rail/status.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAyD,UAAU,EAAE,MAAM,aAAa,CAAC;AA8JrG;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,UAAU,CAyCxC,CAAC"}
@@ -0,0 +1,147 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { GLYPH_WARNING, useTheme } from '../../components/theme.js';
4
+ import { CONTEXT_DANGER_PERCENT, CONTEXT_WARN_PERCENT, contextTone, gaugeBar } from '../shared/gauge.js';
5
+ import { cells } from './parts.js';
6
+ const GAUGE_CELLS = 5;
7
+ const SEPARATOR = ' · ';
8
+ const SEPARATOR_WIDTH = cells(SEPARATOR);
9
+ const widthOf = (item) => item.parts.reduce((total, part) => total + cells(part.text), 0);
10
+ function segment(view, overrides = {}) {
11
+ if (!view.text)
12
+ return undefined;
13
+ return {
14
+ id: view.id,
15
+ parts: [{ text: view.text.trim(), tone: view.tone, bold: view.bold }],
16
+ tier: view.tier,
17
+ ...overrides,
18
+ };
19
+ }
20
+ /**
21
+ * `ctx ▰▰▰▱▱ 84%`, quiet until it matters. At 75% the number turns bold and warm;
22
+ * at 90% a `▲` is added, so a nearly-full context is noticed in `mono` too. A
23
+ * context that is filling up is never dropped for space.
24
+ */
25
+ function contextItem(percent, fallback) {
26
+ if (percent === undefined)
27
+ return fallback && segment(fallback);
28
+ const tone = contextTone(percent);
29
+ const hot = percent >= CONTEXT_WARN_PERCENT;
30
+ const danger = percent >= CONTEXT_DANGER_PERCENT;
31
+ return {
32
+ id: 'context',
33
+ tier: hot ? undefined : fallback?.tier,
34
+ parts: [
35
+ { text: 'ctx ', tone: 'textSubtle' },
36
+ { text: `${gaugeBar(percent, GAUGE_CELLS)} ${percent}%${danger ? ` ${GLYPH_WARNING}` : ''}`, tone, bold: hot },
37
+ ],
38
+ };
39
+ }
40
+ /** `gpt-5.6-luna high`: the effort is a quiet suffix of the model, not its own segment. */
41
+ const stripLeadingDot = (text) => text.replace(/^[\s·]+/, '');
42
+ /** The segments this skin shows, in its own order: where, how safe, which model, then the numbers. */
43
+ function buildItems({ config, metrics, gauges }) {
44
+ const byId = (list, id) => list.find((view) => view.id === id);
45
+ const items = [];
46
+ const sshMarker = byId(config, 'ssh-marker');
47
+ const sshDetail = byId(config, 'ssh-detail');
48
+ items.push(sshMarker && segment(sshMarker));
49
+ items.push(sshDetail && segment(sshDetail, { glue: true }));
50
+ const safety = byId(config, 'safety');
51
+ const mode = byId(config, 'mode');
52
+ const queue = byId(config, 'queue');
53
+ const model = byId(config, 'provider-model');
54
+ const reasoning = byId(config, 'reasoning');
55
+ const mentor = byId(config, 'mentor');
56
+ items.push(safety && segment(safety));
57
+ items.push(mode && segment(mode));
58
+ items.push(queue && segment(queue));
59
+ items.push(model && segment(model));
60
+ items.push(reasoning && segment({ ...reasoning, text: stripLeadingDot(reasoning.text), tone: 'textSubtle' }, { glue: true }));
61
+ items.push(mentor && segment(mentor));
62
+ items.push(contextItem(gauges.contextPercent, byId(metrics, 'context')));
63
+ const cost = byId(metrics, 'cost');
64
+ const cache = byId(metrics, 'cache');
65
+ const speed = byId(metrics, 'speed');
66
+ items.push(cost && segment(cost));
67
+ items.push(cache && segment(cache));
68
+ items.push(speed && segment({ ...speed, text: speed.text.replace(/^\((.*)\)$/, '$1') }));
69
+ return items.filter((item) => item !== undefined);
70
+ }
71
+ const separatorBefore = (items, index) => index === 0 ? 0 : items[index].glue ? 1 : SEPARATOR_WIDTH;
72
+ const totalWidth = (items) => items.reduce((total, item, index) => total + separatorBefore(items, index) + widthOf(item), 0);
73
+ /** Drops the lowest-tier items one at a time until the line fits, or only never-dropped ones remain. */
74
+ function fitItems(items, budget) {
75
+ let kept = items;
76
+ while (totalWidth(kept) > budget) {
77
+ const droppable = kept.filter((item) => item.tier !== undefined);
78
+ if (droppable.length === 0)
79
+ break;
80
+ // Lowest tier first; among equals the one furthest right, which is the least important by position.
81
+ const lowest = Math.min(...droppable.map((item) => item.tier));
82
+ const victim = [...droppable].reverse().find((item) => item.tier === lowest);
83
+ kept = kept.filter((item) => item !== victim);
84
+ // A glued item belongs to the item before it: if that was the victim, the glue has nothing to attach to.
85
+ if (kept[0]?.glue)
86
+ kept = [{ ...kept[0], glue: false }, ...kept.slice(1)];
87
+ }
88
+ return kept;
89
+ }
90
+ const ItemText = ({ item }) => {
91
+ const theme = useTheme();
92
+ return (React.createElement(React.Fragment, null, item.parts.map((part, index) => (React.createElement(Text, { key: index, color: part.tone ? theme[part.tone] : undefined, bold: part.bold }, part.text)))));
93
+ };
94
+ /** `5H ▰▰▱▱▱ 42%→3h`: a window of provider quota as a mini gauge. */
95
+ const QuotaGauge = ({ window }) => {
96
+ const theme = useTheme();
97
+ const tone = theme[contextTone(window.percent)];
98
+ return (React.createElement(Text, null,
99
+ React.createElement(Text, { color: theme.textSubtle },
100
+ window.label,
101
+ " "),
102
+ React.createElement(Text, { color: tone },
103
+ gaugeBar(window.percent, GAUGE_CELLS),
104
+ " ",
105
+ window.percent,
106
+ "%"),
107
+ window.resetText ? React.createElement(Text, { color: theme.textSubtle },
108
+ "\u2192",
109
+ window.resetText) : null));
110
+ };
111
+ const Alert = ({ alert }) => {
112
+ const theme = useTheme();
113
+ return (React.createElement(Text, null, alert.parts.map((part, index) => (React.createElement(Text, { key: index, color: theme[part.tone], bold: part.bold }, part.text)))));
114
+ };
115
+ /**
116
+ * One line when nothing is wrong: `Sandboxed · codex/gpt-5.6-luna high · ctx ▰▰▰▱▱ 84% · $0.12`.
117
+ * A second line appears only for an alert or provider quota. Low-priority
118
+ * segments drop by their `tier` as the terminal narrows; whatever must stay and
119
+ * still does not fit wraps onto another line rather than being cut.
120
+ */
121
+ export const RailStatusBar = (view) => {
122
+ const theme = useTheme();
123
+ const { columns, alerts, quotaText, gauges } = view;
124
+ const kept = fitItems(buildItems(view), Math.max(1, columns));
125
+ const hasQuota = gauges.quotaWindows.length > 0 || quotaText !== '';
126
+ // Units, not items, are what wraps: an effort stays beside its model. The
127
+ // separator trails its unit, so a wrapped line never begins with a dot.
128
+ const units = [];
129
+ for (const item of kept) {
130
+ if (item.glue && units.length > 0)
131
+ units[units.length - 1].push(item);
132
+ else
133
+ units.push([item]);
134
+ }
135
+ return (React.createElement(Box, { flexDirection: "column", width: "100%" },
136
+ React.createElement(Box, { flexWrap: "wrap", columnGap: 1 }, units.map((unit, unitIndex) => (React.createElement(Text, { key: unit[0].id },
137
+ unit.map((item, itemIndex) => (React.createElement(React.Fragment, { key: item.id },
138
+ itemIndex > 0 && ' ',
139
+ React.createElement(ItemText, { item: item })))),
140
+ unitIndex < units.length - 1 && React.createElement(Text, { color: theme.textSubtle }, " \u00B7"))))),
141
+ (alerts.length > 0 || hasQuota) && (React.createElement(Box, { flexWrap: "wrap", columnGap: 2 },
142
+ alerts.map((alert) => (React.createElement(Alert, { key: alert.id, alert: alert }))),
143
+ gauges.quotaWindows.length > 0
144
+ ? gauges.quotaWindows.map((window) => React.createElement(QuotaGauge, { key: window.label, window: window }))
145
+ : quotaText && React.createElement(Text, { color: theme.textSubtle }, quotaText)))));
146
+ };
147
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../source/skins/rail/status.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type FC } from 'react';
2
+ import type { ToolFrameProps, ToolGroupSummaryView, ToolHeaderProps } from '../types.js';
3
+ /**
4
+ * Standard display: a thin rail, coloured by status, down the whole call so the
5
+ * output reads as belonging to its header. A failed call gets a heavier rail, so it
6
+ * differs in shape and not only in colour.
7
+ *
8
+ * Concise calls are single lines and stay bare, except a failed one: its error
9
+ * text follows the header as extra lines, and the rail is what ties them to it
10
+ * (and makes a failure the one thing in a quiet transcript that is indented).
11
+ */
12
+ export declare const RailToolFrame: FC<ToolFrameProps>;
13
+ /**
14
+ * Glyph, the tool's name in muted type, then the action. The name is shown for
15
+ * standard calls and for shell commands, where a bare command would otherwise have
16
+ * no label; in concise mode the other tools' actions already begin with a verb
17
+ * ("Read", "Searched") and a second label would only cost columns.
18
+ *
19
+ * The text wraps under the action, not under the glyph, so a long command stays
20
+ * a block.
21
+ */
22
+ export declare const RailToolHeader: FC<ToolHeaderProps>;
23
+ /**
24
+ * One quiet line for a run of calls. A partly-failed run keeps its green marker,
25
+ * because most of it succeeded; the line below carries the bad news.
26
+ */
27
+ export declare const RailToolGroupSummary: FC<ToolGroupSummaryView>;
28
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../source/skins/rail/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;AAkBzF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,cAAc,CAS5C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,eAAe,CA4C9C,CAAC;AAwBF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,CAKzD,CAAC"}
@@ -0,0 +1,85 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { TOOL_STATUS_GLYPH, useTheme } from '../../components/theme.js';
4
+ import { BRAILLE_SPINNER, useSpinnerFrame } from '../shared/spinner.js';
5
+ import { RAIL_HEAVY, RAIL_THIN, Rail } from './parts.js';
6
+ /**
7
+ * The status glyph. A running call shows a spinner instead of the static `◐`;
8
+ * the hook lives here, the smallest component that draws the glyph, and only
9
+ * ticks while the call is actually running.
10
+ */
11
+ const ToolGlyph = ({ status }) => {
12
+ const theme = useTheme();
13
+ const frame = useSpinnerFrame(BRAILLE_SPINNER, status === 'running');
14
+ return (React.createElement(Text, { color: theme.toolStatus[status], bold: true }, status === 'running' ? frame : TOOL_STATUS_GLYPH[status]));
15
+ };
16
+ /**
17
+ * Standard display: a thin rail, coloured by status, down the whole call so the
18
+ * output reads as belonging to its header. A failed call gets a heavier rail, so it
19
+ * differs in shape and not only in colour.
20
+ *
21
+ * Concise calls are single lines and stay bare, except a failed one: its error
22
+ * text follows the header as extra lines, and the rail is what ties them to it
23
+ * (and makes a failure the one thing in a quiet transcript that is indented).
24
+ */
25
+ export const RailToolFrame = ({ status, display, children }) => {
26
+ const theme = useTheme();
27
+ const failed = status === 'failed' || status === 'rejected';
28
+ if (display !== 'standard' && !failed)
29
+ return React.createElement(React.Fragment, null, children);
30
+ return (React.createElement(Rail, { glyph: failed ? RAIL_HEAVY : RAIL_THIN, color: theme.toolStatus[status] }, children));
31
+ };
32
+ /**
33
+ * Glyph, the tool's name in muted type, then the action. The name is shown for
34
+ * standard calls and for shell commands, where a bare command would otherwise have
35
+ * no label; in concise mode the other tools' actions already begin with a verb
36
+ * ("Read", "Searched") and a second label would only cost columns.
37
+ *
38
+ * The text wraps under the action, not under the glyph, so a long command stays
39
+ * a block.
40
+ */
41
+ export const RailToolHeader = ({ status, display, toolName, nested, action, meta, trailing, textColor, }) => {
42
+ const theme = useTheme();
43
+ if (nested) {
44
+ return (React.createElement(Box, null,
45
+ React.createElement(Text, { wrap: "truncate", color: theme.textSubtle },
46
+ React.createElement(Text, { color: theme.toolStatus[status], bold: true }, TOOL_STATUS_GLYPH[status]),
47
+ ' ',
48
+ action,
49
+ meta)));
50
+ }
51
+ const isShell = toolName === undefined || toolName === 'shell';
52
+ const label = display === 'standard' || isShell ? toolName ?? 'shell' : undefined;
53
+ return (React.createElement(Box, null,
54
+ React.createElement(Box, { width: 2, flexShrink: 0 },
55
+ React.createElement(ToolGlyph, { status: status })),
56
+ React.createElement(Box, { flexShrink: 1 },
57
+ React.createElement(Text, { color: textColor },
58
+ label && React.createElement(Text, { color: theme.textSubtle },
59
+ label,
60
+ " "),
61
+ action,
62
+ meta,
63
+ trailing))));
64
+ };
65
+ const GROUP_MARKER_KIND = {
66
+ completed: 'completed',
67
+ partial: 'completed',
68
+ failed: 'failed',
69
+ };
70
+ const SummaryLine = ({ kind, text }) => {
71
+ const theme = useTheme();
72
+ return (React.createElement(Box, null,
73
+ React.createElement(Box, { width: 2, flexShrink: 0 },
74
+ React.createElement(Text, { color: theme.toolStatus[kind], bold: true }, TOOL_STATUS_GLYPH[kind])),
75
+ React.createElement(Box, { flexShrink: 1 },
76
+ React.createElement(Text, { color: theme.textSubtle }, text))));
77
+ };
78
+ /**
79
+ * One quiet line for a run of calls. A partly-failed run keeps its green marker,
80
+ * because most of it succeeded; the line below carries the bad news.
81
+ */
82
+ export const RailToolGroupSummary = ({ status, summary, failures }) => (React.createElement(Box, { flexDirection: "column" },
83
+ React.createElement(SummaryLine, { kind: GROUP_MARKER_KIND[status], text: summary }),
84
+ failures !== '' && status !== 'failed' && React.createElement(SummaryLine, { kind: "failed", text: failures })));
85
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../source/skins/rail/tools.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SkinName } from './names.js';
2
+ import type { Skin } from './types.js';
3
+ /** Every skin by name. A test pins this to `SKIN_NAMES`, so a skin cannot be selectable without being registered. */
4
+ export declare const SKINS: Readonly<Record<SkinName, Skin>>;
5
+ export declare const getSkin: (name: SkinName) => Skin;
6
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../source/skins/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,qHAAqH;AACrH,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAMlD,CAAC;AAEF,eAAO,MAAM,OAAO,SAAU,QAAQ,KAAG,IAAmB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { cardsSkin } from './cards/index.js';
2
+ import { classicSkin } from './classic/index.js';
3
+ import { ledgerSkin } from './ledger/index.js';
4
+ import { railSkin } from './rail/index.js';
5
+ import { zenSkin } from './zen/index.js';
6
+ /** Every skin by name. A test pins this to `SKIN_NAMES`, so a skin cannot be selectable without being registered. */
7
+ export const SKINS = {
8
+ classic: classicSkin,
9
+ rail: railSkin,
10
+ cards: cardsSkin,
11
+ ledger: ledgerSkin,
12
+ zen: zenSkin,
13
+ };
14
+ export const getSkin = (name) => SKINS[name];
15
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../source/skins/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,qHAAqH;AACrH,MAAM,CAAC,MAAM,KAAK,GAAqC;IACrD,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAc,EAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ColorRole } from '../../theme/palettes.js';
2
+ /** Context usage at which a gauge turns from quiet to a warning, then to danger. */
3
+ export declare const CONTEXT_WARN_PERCENT = 75;
4
+ export declare const CONTEXT_DANGER_PERCENT = 90;
5
+ /**
6
+ * The colour role for a usage percentage. Quiet until it matters: the point of a
7
+ * gauge is that a nearly-full context is noticed *before* a compaction or a stall,
8
+ * so every skin uses the same thresholds. An unknown percentage stays quiet.
9
+ */
10
+ export declare function contextTone(percent: number | undefined): ColorRole;
11
+ /**
12
+ * A fixed-width bar, `▰▰▰▱▱▱`, always exactly `cells` columns wide. Both glyphs are
13
+ * single-cell, and a non-zero percentage always fills at least one cell, so "a
14
+ * little" is never drawn as "none".
15
+ */
16
+ export declare function gaugeBar(percent: number, cells: number): string;
17
+ //# sourceMappingURL=gauge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gauge.d.ts","sourceRoot":"","sources":["../../../source/skins/shared/gauge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAKlE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK/D"}
@@ -0,0 +1,29 @@
1
+ /** Context usage at which a gauge turns from quiet to a warning, then to danger. */
2
+ export const CONTEXT_WARN_PERCENT = 75;
3
+ export const CONTEXT_DANGER_PERCENT = 90;
4
+ /**
5
+ * The colour role for a usage percentage. Quiet until it matters: the point of a
6
+ * gauge is that a nearly-full context is noticed *before* a compaction or a stall,
7
+ * so every skin uses the same thresholds. An unknown percentage stays quiet.
8
+ */
9
+ export function contextTone(percent) {
10
+ if (percent === undefined)
11
+ return 'textSubtle';
12
+ if (percent >= CONTEXT_DANGER_PERCENT)
13
+ return 'danger';
14
+ if (percent >= CONTEXT_WARN_PERCENT)
15
+ return 'warning';
16
+ return 'textSubtle';
17
+ }
18
+ /**
19
+ * A fixed-width bar, `▰▰▰▱▱▱`, always exactly `cells` columns wide. Both glyphs are
20
+ * single-cell, and a non-zero percentage always fills at least one cell, so "a
21
+ * little" is never drawn as "none".
22
+ */
23
+ export function gaugeBar(percent, cells) {
24
+ const clamped = Math.min(100, Math.max(0, percent));
25
+ const raw = Math.round((clamped / 100) * cells);
26
+ const filled = clamped > 0 ? Math.max(1, raw) : 0;
27
+ return '▰'.repeat(filled) + '▱'.repeat(cells - filled);
28
+ }
29
+ //# sourceMappingURL=gauge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gauge.js","sourceRoot":"","sources":["../../../source/skins/shared/gauge.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC/C,IAAI,OAAO,IAAI,sBAAsB;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,OAAO,IAAI,oBAAoB;QAAE,OAAO,SAAS,CAAC;IACtD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAa;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Longest model name a banner or status line prints before truncating with an ellipsis. */
2
+ export declare const MODEL_LABEL_MAX = 34;
3
+ //# sourceMappingURL=limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../../source/skins/shared/limits.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,eAAO,MAAM,eAAe,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Longest model name a banner or status line prints before truncating with an ellipsis. */
2
+ export const MODEL_LABEL_MAX = 34;
3
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../../source/skins/shared/limits.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC"}