@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1023) hide show
  1. package/README.md +85 -5
  2. package/assets/claude-girl/claude-girl-happy.png +0 -0
  3. package/assets/claude-girl/claude-girl.png +0 -0
  4. package/assets/codex-girl/codex-girl-happy.png +0 -0
  5. package/assets/codex-girl/codex-girl.png +0 -0
  6. package/bin/dsh-tui.js +104 -18
  7. package/cordis.patch.yml +2 -0
  8. package/cordis.yml +2 -0
  9. package/guide/dsh-tui-guide/SKILL.md +4 -2
  10. package/guide/dsh-tui-guide/claude-backend.en.md +203 -0
  11. package/guide/dsh-tui-guide/claude-backend.md +161 -0
  12. package/guide/dsh-tui-guide/codex-backend.en.md +297 -0
  13. package/guide/dsh-tui-guide/codex-backend.md +257 -0
  14. package/guide/dsh-tui-guide/configuration.en.md +9 -2
  15. package/guide/dsh-tui-guide/configuration.md +9 -2
  16. package/guide/dsh-tui-guide/interaction.en.md +169 -27
  17. package/guide/dsh-tui-guide/interaction.md +115 -17
  18. package/guide/dsh-tui-guide/themes.en.md +24 -2
  19. package/guide/dsh-tui-guide/themes.md +21 -2
  20. package/guide/dsh-tui-guide/user-guide.en.md +38 -23
  21. package/guide/dsh-tui-guide/user-guide.md +22 -11
  22. package/guide/dsh-tui-guide/vscode.en.md +1 -0
  23. package/guide/dsh-tui-guide/vscode.md +1 -0
  24. package/lib/settings.json +139 -6
  25. package/lib/types/adapter/channel/state.d.ts.map +1 -1
  26. package/lib/types/adapter/channel/state.js +1 -0
  27. package/lib/types/adapter/channel/ui-policy.d.ts +17 -2
  28. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  29. package/lib/types/adapter/channel/ui-policy.js +29 -0
  30. package/lib/types/adapter/channel/ui.d.ts.map +1 -1
  31. package/lib/types/adapter/channel/ui.js +45 -5
  32. package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
  33. package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
  34. package/lib/types/adapter/ports/channel-display.d.ts +7 -1
  35. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
  36. package/lib/types/adapter/ports/channel-session.d.ts +5 -0
  37. package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
  38. package/lib/types/adapter/ports/channel-settings.d.ts +20 -0
  39. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  40. package/lib/types/adapter/ports/channel-ui.d.ts +183 -6
  41. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  42. package/lib/types/adapter/ports/channel-view.d.ts +477 -13
  43. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  44. package/lib/types/agent/backend.d.ts +168 -0
  45. package/lib/types/agent/backend.d.ts.map +1 -0
  46. package/lib/types/agent/backend.js +1 -0
  47. package/lib/types/agent/capabilities.d.ts +461 -0
  48. package/lib/types/agent/capabilities.d.ts.map +1 -0
  49. package/lib/types/agent/capabilities.js +1 -0
  50. package/lib/types/agent/events.d.ts +733 -0
  51. package/lib/types/agent/events.d.ts.map +1 -0
  52. package/lib/types/agent/events.js +2 -0
  53. package/lib/types/agent/index.d.ts +8 -0
  54. package/lib/types/agent/index.d.ts.map +1 -0
  55. package/lib/types/agent/index.js +7 -0
  56. package/lib/types/agent/messages.d.ts +52 -0
  57. package/lib/types/agent/messages.d.ts.map +1 -0
  58. package/lib/types/agent/messages.js +91 -0
  59. package/lib/types/agent/presentation.d.ts +29 -0
  60. package/lib/types/agent/presentation.d.ts.map +1 -0
  61. package/lib/types/agent/presentation.js +4 -0
  62. package/lib/types/agent/refs.d.ts +30 -0
  63. package/lib/types/agent/refs.d.ts.map +1 -0
  64. package/lib/types/agent/refs.js +39 -0
  65. package/lib/types/agent/session.d.ts +78 -0
  66. package/lib/types/agent/session.d.ts.map +1 -0
  67. package/lib/types/agent/session.js +1 -0
  68. package/lib/types/backends/claude/activity.d.ts +53 -0
  69. package/lib/types/backends/claude/activity.d.ts.map +1 -0
  70. package/lib/types/backends/claude/activity.js +103 -0
  71. package/lib/types/backends/claude/auth.d.ts +245 -0
  72. package/lib/types/backends/claude/auth.d.ts.map +1 -0
  73. package/lib/types/backends/claude/auth.js +503 -0
  74. package/lib/types/backends/claude/backend.d.ts +32 -0
  75. package/lib/types/backends/claude/backend.d.ts.map +1 -0
  76. package/lib/types/backends/claude/backend.js +296 -0
  77. package/lib/types/backends/claude/catalog.d.ts +17 -0
  78. package/lib/types/backends/claude/catalog.d.ts.map +1 -0
  79. package/lib/types/backends/claude/catalog.js +94 -0
  80. package/lib/types/backends/claude/channels.d.ts +63 -0
  81. package/lib/types/backends/claude/channels.d.ts.map +1 -0
  82. package/lib/types/backends/claude/channels.js +275 -0
  83. package/lib/types/backends/claude/contract.d.ts +37 -0
  84. package/lib/types/backends/claude/contract.d.ts.map +1 -0
  85. package/lib/types/backends/claude/contract.js +46 -0
  86. package/lib/types/backends/claude/controls.d.ts +134 -0
  87. package/lib/types/backends/claude/controls.d.ts.map +1 -0
  88. package/lib/types/backends/claude/controls.js +425 -0
  89. package/lib/types/backends/claude/dialogs.d.ts +62 -0
  90. package/lib/types/backends/claude/dialogs.d.ts.map +1 -0
  91. package/lib/types/backends/claude/dialogs.js +253 -0
  92. package/lib/types/backends/claude/flag-settings.d.ts +12 -0
  93. package/lib/types/backends/claude/flag-settings.d.ts.map +1 -0
  94. package/lib/types/backends/claude/flag-settings.js +49 -0
  95. package/lib/types/backends/claude/images.d.ts +49 -0
  96. package/lib/types/backends/claude/images.d.ts.map +1 -0
  97. package/lib/types/backends/claude/images.js +94 -0
  98. package/lib/types/backends/claude/index.d.ts +5 -0
  99. package/lib/types/backends/claude/index.d.ts.map +1 -0
  100. package/lib/types/backends/claude/index.js +4 -0
  101. package/lib/types/backends/claude/install.d.ts +15 -0
  102. package/lib/types/backends/claude/install.d.ts.map +1 -0
  103. package/lib/types/backends/claude/install.js +91 -0
  104. package/lib/types/backends/claude/modelEnv.d.ts +64 -0
  105. package/lib/types/backends/claude/modelEnv.d.ts.map +1 -0
  106. package/lib/types/backends/claude/modelEnv.js +199 -0
  107. package/lib/types/backends/claude/narrow.d.ts +10 -0
  108. package/lib/types/backends/claude/narrow.d.ts.map +1 -0
  109. package/lib/types/backends/claude/narrow.js +8 -0
  110. package/lib/types/backends/claude/older-history.d.ts +16 -0
  111. package/lib/types/backends/claude/older-history.d.ts.map +1 -0
  112. package/lib/types/backends/claude/older-history.js +101 -0
  113. package/lib/types/backends/claude/options.d.ts +181 -0
  114. package/lib/types/backends/claude/options.d.ts.map +1 -0
  115. package/lib/types/backends/claude/options.js +208 -0
  116. package/lib/types/backends/claude/permissions.d.ts +83 -0
  117. package/lib/types/backends/claude/permissions.d.ts.map +1 -0
  118. package/lib/types/backends/claude/permissions.js +331 -0
  119. package/lib/types/backends/claude/prefs.d.ts +55 -0
  120. package/lib/types/backends/claude/prefs.d.ts.map +1 -0
  121. package/lib/types/backends/claude/prefs.js +150 -0
  122. package/lib/types/backends/claude/process.d.ts +19 -0
  123. package/lib/types/backends/claude/process.d.ts.map +1 -0
  124. package/lib/types/backends/claude/process.js +156 -0
  125. package/lib/types/backends/claude/replay.d.ts +129 -0
  126. package/lib/types/backends/claude/replay.d.ts.map +1 -0
  127. package/lib/types/backends/claude/replay.js +505 -0
  128. package/lib/types/backends/claude/sdk-warnings.d.ts +23 -0
  129. package/lib/types/backends/claude/sdk-warnings.d.ts.map +1 -0
  130. package/lib/types/backends/claude/sdk-warnings.js +55 -0
  131. package/lib/types/backends/claude/sdk.d.ts +12 -0
  132. package/lib/types/backends/claude/sdk.d.ts.map +1 -0
  133. package/lib/types/backends/claude/sdk.js +34 -0
  134. package/lib/types/backends/claude/send-message.d.ts +54 -0
  135. package/lib/types/backends/claude/send-message.d.ts.map +1 -0
  136. package/lib/types/backends/claude/send-message.js +65 -0
  137. package/lib/types/backends/claude/session/auth.d.ts +47 -0
  138. package/lib/types/backends/claude/session/auth.d.ts.map +1 -0
  139. package/lib/types/backends/claude/session/auth.js +226 -0
  140. package/lib/types/backends/claude/session/channels.d.ts +82 -0
  141. package/lib/types/backends/claude/session/channels.d.ts.map +1 -0
  142. package/lib/types/backends/claude/session/channels.js +45 -0
  143. package/lib/types/backends/claude/session/input.d.ts +16 -0
  144. package/lib/types/backends/claude/session/input.d.ts.map +1 -0
  145. package/lib/types/backends/claude/session/input.js +64 -0
  146. package/lib/types/backends/claude/session/lifecycle.d.ts +6 -0
  147. package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -0
  148. package/lib/types/backends/claude/session/lifecycle.js +852 -0
  149. package/lib/types/backends/claude/session/store.d.ts +17 -0
  150. package/lib/types/backends/claude/session/store.d.ts.map +1 -0
  151. package/lib/types/backends/claude/session/store.js +122 -0
  152. package/lib/types/backends/claude/session/subagents.d.ts +13 -0
  153. package/lib/types/backends/claude/session/subagents.d.ts.map +1 -0
  154. package/lib/types/backends/claude/session/subagents.js +77 -0
  155. package/lib/types/backends/claude/session/types.d.ts +89 -0
  156. package/lib/types/backends/claude/session/types.d.ts.map +1 -0
  157. package/lib/types/backends/claude/session/types.js +1 -0
  158. package/lib/types/backends/claude/session.d.ts +4 -0
  159. package/lib/types/backends/claude/session.d.ts.map +1 -0
  160. package/lib/types/backends/claude/session.js +2 -0
  161. package/lib/types/backends/claude/side-query.d.ts +34 -0
  162. package/lib/types/backends/claude/side-query.d.ts.map +1 -0
  163. package/lib/types/backends/claude/side-query.js +116 -0
  164. package/lib/types/backends/claude/task-output.d.ts +13 -0
  165. package/lib/types/backends/claude/task-output.d.ts.map +1 -0
  166. package/lib/types/backends/claude/task-output.js +101 -0
  167. package/lib/types/backends/claude/tools.d.ts +45 -0
  168. package/lib/types/backends/claude/tools.d.ts.map +1 -0
  169. package/lib/types/backends/claude/tools.js +231 -0
  170. package/lib/types/backends/claude/transcript-file.d.ts +41 -0
  171. package/lib/types/backends/claude/transcript-file.d.ts.map +1 -0
  172. package/lib/types/backends/claude/transcript-file.js +195 -0
  173. package/lib/types/backends/claude/translate/attempts.d.ts +33 -0
  174. package/lib/types/backends/claude/translate/attempts.d.ts.map +1 -0
  175. package/lib/types/backends/claude/translate/attempts.js +243 -0
  176. package/lib/types/backends/claude/translate/content.d.ts +33 -0
  177. package/lib/types/backends/claude/translate/content.d.ts.map +1 -0
  178. package/lib/types/backends/claude/translate/content.js +91 -0
  179. package/lib/types/backends/claude/translate/core.d.ts +76 -0
  180. package/lib/types/backends/claude/translate/core.d.ts.map +1 -0
  181. package/lib/types/backends/claude/translate/core.js +447 -0
  182. package/lib/types/backends/claude/translate/events.d.ts +9 -0
  183. package/lib/types/backends/claude/translate/events.d.ts.map +1 -0
  184. package/lib/types/backends/claude/translate/events.js +77 -0
  185. package/lib/types/backends/claude/translate/lanes.d.ts +31 -0
  186. package/lib/types/backends/claude/translate/lanes.d.ts.map +1 -0
  187. package/lib/types/backends/claude/translate/lanes.js +177 -0
  188. package/lib/types/backends/claude/translate/messages.d.ts +36 -0
  189. package/lib/types/backends/claude/translate/messages.d.ts.map +1 -0
  190. package/lib/types/backends/claude/translate/messages.js +202 -0
  191. package/lib/types/backends/claude/translate/system.d.ts +40 -0
  192. package/lib/types/backends/claude/translate/system.d.ts.map +1 -0
  193. package/lib/types/backends/claude/translate/system.js +399 -0
  194. package/lib/types/backends/claude/translate/tasks.d.ts +19 -0
  195. package/lib/types/backends/claude/translate/tasks.d.ts.map +1 -0
  196. package/lib/types/backends/claude/translate/tasks.js +159 -0
  197. package/lib/types/backends/claude/translate/types.d.ts +114 -0
  198. package/lib/types/backends/claude/translate/types.d.ts.map +1 -0
  199. package/lib/types/backends/claude/translate/types.js +1 -0
  200. package/lib/types/backends/claude/translate.d.ts +9 -0
  201. package/lib/types/backends/claude/translate.d.ts.map +1 -0
  202. package/lib/types/backends/claude/translate.js +6 -0
  203. package/lib/types/backends/codex/auth/external-tokens.d.ts +66 -0
  204. package/lib/types/backends/codex/auth/external-tokens.d.ts.map +1 -0
  205. package/lib/types/backends/codex/auth/external-tokens.js +325 -0
  206. package/lib/types/backends/codex/auth/route.d.ts +14 -0
  207. package/lib/types/backends/codex/auth/route.d.ts.map +1 -0
  208. package/lib/types/backends/codex/auth/route.js +52 -0
  209. package/lib/types/backends/codex/auth/status.d.ts +16 -0
  210. package/lib/types/backends/codex/auth/status.d.ts.map +1 -0
  211. package/lib/types/backends/codex/auth/status.js +115 -0
  212. package/lib/types/backends/codex/backend.d.ts +58 -0
  213. package/lib/types/backends/codex/backend.d.ts.map +1 -0
  214. package/lib/types/backends/codex/backend.js +201 -0
  215. package/lib/types/backends/codex/catalog.d.ts +17 -0
  216. package/lib/types/backends/codex/catalog.d.ts.map +1 -0
  217. package/lib/types/backends/codex/catalog.js +128 -0
  218. package/lib/types/backends/codex/channels.d.ts +59 -0
  219. package/lib/types/backends/codex/channels.d.ts.map +1 -0
  220. package/lib/types/backends/codex/channels.js +274 -0
  221. package/lib/types/backends/codex/contract.d.ts +46 -0
  222. package/lib/types/backends/codex/contract.d.ts.map +1 -0
  223. package/lib/types/backends/codex/contract.js +80 -0
  224. package/lib/types/backends/codex/detect.d.ts +14 -0
  225. package/lib/types/backends/codex/detect.d.ts.map +1 -0
  226. package/lib/types/backends/codex/detect.js +90 -0
  227. package/lib/types/backends/codex/index.d.ts +6 -0
  228. package/lib/types/backends/codex/index.d.ts.map +1 -0
  229. package/lib/types/backends/codex/index.js +5 -0
  230. package/lib/types/backends/codex/modes.d.ts +16 -0
  231. package/lib/types/backends/codex/modes.d.ts.map +1 -0
  232. package/lib/types/backends/codex/modes.js +49 -0
  233. package/lib/types/backends/codex/narrow.d.ts +20 -0
  234. package/lib/types/backends/codex/narrow.d.ts.map +1 -0
  235. package/lib/types/backends/codex/narrow.js +18 -0
  236. package/lib/types/backends/codex/prefs.d.ts +42 -0
  237. package/lib/types/backends/codex/prefs.d.ts.map +1 -0
  238. package/lib/types/backends/codex/prefs.js +124 -0
  239. package/lib/types/backends/codex/protocol/index.d.ts +149 -0
  240. package/lib/types/backends/codex/protocol/index.d.ts.map +1 -0
  241. package/lib/types/backends/codex/protocol/index.js +130 -0
  242. package/lib/types/backends/codex/rpc/binary.d.ts +35 -0
  243. package/lib/types/backends/codex/rpc/binary.d.ts.map +1 -0
  244. package/lib/types/backends/codex/rpc/binary.js +174 -0
  245. package/lib/types/backends/codex/rpc/client.d.ts +72 -0
  246. package/lib/types/backends/codex/rpc/client.d.ts.map +1 -0
  247. package/lib/types/backends/codex/rpc/client.js +214 -0
  248. package/lib/types/backends/codex/rpc/hub.d.ts +105 -0
  249. package/lib/types/backends/codex/rpc/hub.d.ts.map +1 -0
  250. package/lib/types/backends/codex/rpc/hub.js +532 -0
  251. package/lib/types/backends/codex/rpc/transport.d.ts +39 -0
  252. package/lib/types/backends/codex/rpc/transport.d.ts.map +1 -0
  253. package/lib/types/backends/codex/rpc/transport.js +212 -0
  254. package/lib/types/backends/codex/session/activity.d.ts +18 -0
  255. package/lib/types/backends/codex/session/activity.d.ts.map +1 -0
  256. package/lib/types/backends/codex/session/activity.js +108 -0
  257. package/lib/types/backends/codex/session/approvals.d.ts +39 -0
  258. package/lib/types/backends/codex/session/approvals.d.ts.map +1 -0
  259. package/lib/types/backends/codex/session/approvals.js +477 -0
  260. package/lib/types/backends/codex/session/commands.d.ts +37 -0
  261. package/lib/types/backends/codex/session/commands.d.ts.map +1 -0
  262. package/lib/types/backends/codex/session/commands.js +141 -0
  263. package/lib/types/backends/codex/session/controls.d.ts +37 -0
  264. package/lib/types/backends/codex/session/controls.d.ts.map +1 -0
  265. package/lib/types/backends/codex/session/controls.js +303 -0
  266. package/lib/types/backends/codex/session/goals.d.ts +25 -0
  267. package/lib/types/backends/codex/session/goals.d.ts.map +1 -0
  268. package/lib/types/backends/codex/session/goals.js +97 -0
  269. package/lib/types/backends/codex/session/history.d.ts +52 -0
  270. package/lib/types/backends/codex/session/history.d.ts.map +1 -0
  271. package/lib/types/backends/codex/session/history.js +196 -0
  272. package/lib/types/backends/codex/session/images.d.ts +17 -0
  273. package/lib/types/backends/codex/session/images.d.ts.map +1 -0
  274. package/lib/types/backends/codex/session/images.js +138 -0
  275. package/lib/types/backends/codex/session/input.d.ts +75 -0
  276. package/lib/types/backends/codex/session/input.d.ts.map +1 -0
  277. package/lib/types/backends/codex/session/input.js +294 -0
  278. package/lib/types/backends/codex/session/plan-review.d.ts +19 -0
  279. package/lib/types/backends/codex/session/plan-review.d.ts.map +1 -0
  280. package/lib/types/backends/codex/session/plan-review.js +48 -0
  281. package/lib/types/backends/codex/session/prompts.d.ts +7 -0
  282. package/lib/types/backends/codex/session/prompts.d.ts.map +1 -0
  283. package/lib/types/backends/codex/session/prompts.js +47 -0
  284. package/lib/types/backends/codex/session/session.d.ts +12 -0
  285. package/lib/types/backends/codex/session/session.d.ts.map +1 -0
  286. package/lib/types/backends/codex/session/session.js +871 -0
  287. package/lib/types/backends/codex/session/side-query.d.ts +25 -0
  288. package/lib/types/backends/codex/session/side-query.d.ts.map +1 -0
  289. package/lib/types/backends/codex/session/side-query.js +121 -0
  290. package/lib/types/backends/codex/session/state.d.ts +57 -0
  291. package/lib/types/backends/codex/session/state.d.ts.map +1 -0
  292. package/lib/types/backends/codex/session/state.js +1 -0
  293. package/lib/types/backends/codex/session/subagents.d.ts +28 -0
  294. package/lib/types/backends/codex/session/subagents.d.ts.map +1 -0
  295. package/lib/types/backends/codex/session/subagents.js +286 -0
  296. package/lib/types/backends/codex/session/tasks.d.ts +25 -0
  297. package/lib/types/backends/codex/session/tasks.d.ts.map +1 -0
  298. package/lib/types/backends/codex/session/tasks.js +207 -0
  299. package/lib/types/backends/codex/session/tool-output.d.ts +9 -0
  300. package/lib/types/backends/codex/session/tool-output.d.ts.map +1 -0
  301. package/lib/types/backends/codex/session/tool-output.js +29 -0
  302. package/lib/types/backends/codex/translate/commands.d.ts +30 -0
  303. package/lib/types/backends/codex/translate/commands.d.ts.map +1 -0
  304. package/lib/types/backends/codex/translate/commands.js +103 -0
  305. package/lib/types/backends/codex/translate/events.d.ts +9 -0
  306. package/lib/types/backends/codex/translate/events.d.ts.map +1 -0
  307. package/lib/types/backends/codex/translate/events.js +71 -0
  308. package/lib/types/backends/codex/translate/items.d.ts +112 -0
  309. package/lib/types/backends/codex/translate/items.d.ts.map +1 -0
  310. package/lib/types/backends/codex/translate/items.js +375 -0
  311. package/lib/types/backends/codex/translate/live.d.ts +39 -0
  312. package/lib/types/backends/codex/translate/live.d.ts.map +1 -0
  313. package/lib/types/backends/codex/translate/live.js +315 -0
  314. package/lib/types/backends/codex/translate/notices.d.ts +27 -0
  315. package/lib/types/backends/codex/translate/notices.d.ts.map +1 -0
  316. package/lib/types/backends/codex/translate/notices.js +99 -0
  317. package/lib/types/backends/codex/translate/presentation.d.ts +49 -0
  318. package/lib/types/backends/codex/translate/presentation.d.ts.map +1 -0
  319. package/lib/types/backends/codex/translate/presentation.js +237 -0
  320. package/lib/types/backends/codex/translate/replay.d.ts +18 -0
  321. package/lib/types/backends/codex/translate/replay.d.ts.map +1 -0
  322. package/lib/types/backends/codex/translate/replay.js +33 -0
  323. package/lib/types/backends/codex/translate/usage.d.ts +29 -0
  324. package/lib/types/backends/codex/translate/usage.d.ts.map +1 -0
  325. package/lib/types/backends/codex/translate/usage.js +65 -0
  326. package/lib/types/backends/shared/atomic-file.d.ts +4 -0
  327. package/lib/types/backends/shared/atomic-file.d.ts.map +1 -0
  328. package/lib/types/backends/shared/atomic-file.js +52 -0
  329. package/lib/types/backends/shared/channel-tokens.d.ts +29 -0
  330. package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -0
  331. package/lib/types/backends/shared/channel-tokens.js +161 -0
  332. package/lib/types/backends/shared/display-path.d.ts +3 -0
  333. package/lib/types/backends/shared/display-path.d.ts.map +1 -0
  334. package/lib/types/backends/shared/display-path.js +12 -0
  335. package/lib/types/branding.d.ts +92 -0
  336. package/lib/types/branding.d.ts.map +1 -0
  337. package/lib/types/branding.js +117 -0
  338. package/lib/types/channel/activity.d.ts +53 -0
  339. package/lib/types/channel/activity.d.ts.map +1 -0
  340. package/lib/types/channel/activity.js +955 -0
  341. package/lib/types/channel/capabilities.d.ts +24 -0
  342. package/lib/types/channel/capabilities.d.ts.map +1 -0
  343. package/lib/types/channel/capabilities.js +57 -0
  344. package/lib/types/channel/channel-slug.d.ts +9 -0
  345. package/lib/types/channel/channel-slug.d.ts.map +1 -0
  346. package/lib/types/channel/channel-slug.js +15 -0
  347. package/lib/types/channel/channel-wizard.d.ts +30 -0
  348. package/lib/types/channel/channel-wizard.d.ts.map +1 -0
  349. package/lib/types/channel/channel-wizard.js +226 -0
  350. package/lib/types/channel/elicitation.d.ts +135 -0
  351. package/lib/types/channel/elicitation.d.ts.map +1 -0
  352. package/lib/types/channel/elicitation.js +360 -0
  353. package/lib/types/channel/goal-command.d.ts +49 -0
  354. package/lib/types/channel/goal-command.d.ts.map +1 -0
  355. package/lib/types/channel/goal-command.js +72 -0
  356. package/lib/types/channel/history-restore.d.ts +16 -0
  357. package/lib/types/channel/history-restore.d.ts.map +1 -0
  358. package/lib/types/channel/history-restore.js +214 -0
  359. package/lib/types/channel/interaction.d.ts +38 -0
  360. package/lib/types/channel/interaction.d.ts.map +1 -0
  361. package/lib/types/channel/interaction.js +110 -0
  362. package/lib/types/channel/job-format.d.ts +6 -0
  363. package/lib/types/channel/job-format.d.ts.map +1 -0
  364. package/lib/types/channel/job-format.js +12 -0
  365. package/lib/types/channel/live-output.d.ts +35 -0
  366. package/lib/types/channel/live-output.d.ts.map +1 -0
  367. package/lib/types/channel/live-output.js +74 -0
  368. package/lib/types/channel/model-capabilities.d.ts +10 -0
  369. package/lib/types/channel/model-capabilities.d.ts.map +1 -0
  370. package/lib/types/channel/model-capabilities.js +51 -0
  371. package/lib/types/channel/permissions.d.ts +155 -0
  372. package/lib/types/channel/permissions.d.ts.map +1 -0
  373. package/lib/types/channel/permissions.js +188 -0
  374. package/lib/types/channel/projection.d.ts +110 -0
  375. package/lib/types/channel/projection.d.ts.map +1 -0
  376. package/lib/types/channel/projection.js +1521 -0
  377. package/lib/types/channel/question-record.d.ts +76 -0
  378. package/lib/types/channel/question-record.d.ts.map +1 -0
  379. package/lib/types/channel/question-record.js +109 -0
  380. package/lib/types/channel/questions.d.ts +204 -0
  381. package/lib/types/channel/questions.d.ts.map +1 -0
  382. package/lib/types/channel/questions.js +286 -0
  383. package/lib/types/channel/sanitize.d.ts +49 -0
  384. package/lib/types/channel/sanitize.d.ts.map +1 -0
  385. package/lib/types/channel/sanitize.js +88 -0
  386. package/lib/types/channel/selection-record.d.ts +18 -0
  387. package/lib/types/channel/selection-record.d.ts.map +1 -0
  388. package/lib/types/channel/selection-record.js +45 -0
  389. package/lib/types/channel/side-prompts.d.ts +59 -0
  390. package/lib/types/channel/side-prompts.d.ts.map +1 -0
  391. package/lib/types/channel/side-prompts.js +127 -0
  392. package/lib/types/channel/transcript.d.ts +17 -0
  393. package/lib/types/channel/transcript.d.ts.map +1 -0
  394. package/lib/types/channel/transcript.js +19 -0
  395. package/lib/types/channel/usage.d.ts +48 -0
  396. package/lib/types/channel/usage.d.ts.map +1 -0
  397. package/lib/types/channel/usage.js +143 -0
  398. package/lib/types/commands.d.ts +147 -0
  399. package/lib/types/commands.d.ts.map +1 -1
  400. package/lib/types/commands.js +196 -2
  401. package/lib/types/components/AgentMessageComposer.d.ts +50 -0
  402. package/lib/types/components/AgentMessageComposer.d.ts.map +1 -0
  403. package/lib/types/components/AgentMessageComposer.js +159 -0
  404. package/lib/types/components/BtwPanel.d.ts +13 -12
  405. package/lib/types/components/BtwPanel.d.ts.map +1 -1
  406. package/lib/types/components/BtwPanel.js +35 -24
  407. package/lib/types/components/ChannelPicker.d.ts +40 -0
  408. package/lib/types/components/ChannelPicker.d.ts.map +1 -0
  409. package/lib/types/components/ChannelPicker.js +26 -0
  410. package/lib/types/components/Chat/JobCard.d.ts +29 -31
  411. package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
  412. package/lib/types/components/Chat/JobCard.js +31 -112
  413. package/lib/types/components/Chat/SubagentMessage.d.ts +4 -1
  414. package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
  415. package/lib/types/components/Chat/SubagentMessage.js +10 -3
  416. package/lib/types/components/ClaudeGirl.d.ts +27 -0
  417. package/lib/types/components/ClaudeGirl.d.ts.map +1 -0
  418. package/lib/types/components/ClaudeGirl.js +30 -0
  419. package/lib/types/components/CodeBlockFrame.d.ts +19 -0
  420. package/lib/types/components/CodeBlockFrame.d.ts.map +1 -0
  421. package/lib/types/components/CodeBlockFrame.js +138 -0
  422. package/lib/types/components/CommandSuggestions.d.ts +10 -1
  423. package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
  424. package/lib/types/components/CommandSuggestions.js +20 -3
  425. package/lib/types/components/ContextBarView.d.ts +2 -2
  426. package/lib/types/components/ContextBarView.d.ts.map +1 -1
  427. package/lib/types/components/ContextBarView.js +18 -8
  428. package/lib/types/components/EffortChargeGlyph.d.ts +1 -1
  429. package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -1
  430. package/lib/types/components/EffortChargeGlyph.js +3 -4
  431. package/lib/types/components/EffortInputBorder.d.ts +1 -2
  432. package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
  433. package/lib/types/components/EffortInputBorder.js +7 -4
  434. package/lib/types/components/EffortSlider.d.ts +5 -1
  435. package/lib/types/components/EffortSlider.d.ts.map +1 -1
  436. package/lib/types/components/EffortSlider.js +2 -2
  437. package/lib/types/components/EffortTierBadge.d.ts +1 -2
  438. package/lib/types/components/EffortTierBadge.d.ts.map +1 -1
  439. package/lib/types/components/EffortTierBadge.js +8 -5
  440. package/lib/types/components/GoalTodoPanel.d.ts +2 -1
  441. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  442. package/lib/types/components/GoalTodoPanel.js +11 -5
  443. package/lib/types/components/InlineMathParagraph.js +1 -1
  444. package/lib/types/components/JobsPanel.d.ts +8 -9
  445. package/lib/types/components/JobsPanel.d.ts.map +1 -1
  446. package/lib/types/components/JobsPanel.js +72 -13
  447. package/lib/types/components/KernelPicker.d.ts +28 -0
  448. package/lib/types/components/KernelPicker.d.ts.map +1 -0
  449. package/lib/types/components/KernelPicker.js +37 -0
  450. package/lib/types/components/LogoV2.d.ts +7 -1
  451. package/lib/types/components/LogoV2.d.ts.map +1 -1
  452. package/lib/types/components/LogoV2.js +120 -24
  453. package/lib/types/components/Markdown.d.ts +2 -1
  454. package/lib/types/components/Markdown.d.ts.map +1 -1
  455. package/lib/types/components/Markdown.js +37 -8
  456. package/lib/types/components/MathBlock.d.ts.map +1 -1
  457. package/lib/types/components/MathBlock.js +3 -1
  458. package/lib/types/components/MermaidDiagram.d.ts.map +1 -1
  459. package/lib/types/components/MermaidDiagram.js +7 -5
  460. package/lib/types/components/MessageList.d.ts +21 -3
  461. package/lib/types/components/MessageList.d.ts.map +1 -1
  462. package/lib/types/components/MessageList.js +62 -42
  463. package/lib/types/components/ModePicker.d.ts +20 -0
  464. package/lib/types/components/ModePicker.d.ts.map +1 -0
  465. package/lib/types/components/ModePicker.js +17 -0
  466. package/lib/types/components/PromptInput.d.ts +2 -2
  467. package/lib/types/components/PromptInput.d.ts.map +1 -1
  468. package/lib/types/components/PromptInput.js +308 -55
  469. package/lib/types/components/SdkInstallWizard.d.ts +44 -0
  470. package/lib/types/components/SdkInstallWizard.d.ts.map +1 -0
  471. package/lib/types/components/SdkInstallWizard.js +18 -0
  472. package/lib/types/components/SearchBox.d.ts +7 -8
  473. package/lib/types/components/SearchBox.d.ts.map +1 -1
  474. package/lib/types/components/SearchBox.js +18 -9
  475. package/lib/types/components/SplitDiffView.d.ts.map +1 -1
  476. package/lib/types/components/SplitDiffView.js +113 -6
  477. package/lib/types/components/StarPrompt.d.ts.map +1 -1
  478. package/lib/types/components/StarPrompt.js +5 -3
  479. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  480. package/lib/types/components/StreamingMarkdown.js +6 -4
  481. package/lib/types/components/SubagentCard.d.ts +2 -1
  482. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  483. package/lib/types/components/SubagentCard.js +25 -18
  484. package/lib/types/components/SubagentDashboard.d.ts +10 -6
  485. package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
  486. package/lib/types/components/SubagentDashboard.js +32 -21
  487. package/lib/types/components/SubagentDetailScene.d.ts +16 -1
  488. package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
  489. package/lib/types/components/SubagentDetailScene.js +196 -45
  490. package/lib/types/components/SyntaxText.d.ts.map +1 -1
  491. package/lib/types/components/SyntaxText.js +4 -1
  492. package/lib/types/components/TurnInterruptedRow.d.ts +3 -1
  493. package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -1
  494. package/lib/types/components/TurnInterruptedRow.js +6 -3
  495. package/lib/types/components/TurnUsageRow.d.ts +24 -0
  496. package/lib/types/components/TurnUsageRow.d.ts.map +1 -0
  497. package/lib/types/components/TurnUsageRow.js +46 -0
  498. package/lib/types/components/WorkingSpinner.d.ts +2 -1
  499. package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
  500. package/lib/types/components/WorkingSpinner.js +21 -4
  501. package/lib/types/components/approvals/ApprovalPanel.d.ts +36 -13
  502. package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
  503. package/lib/types/components/approvals/ApprovalPanel.js +173 -25
  504. package/lib/types/components/claudeGirlSprite.d.ts +18 -0
  505. package/lib/types/components/claudeGirlSprite.d.ts.map +1 -0
  506. package/lib/types/components/claudeGirlSprite.js +48 -0
  507. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  508. package/lib/types/components/design-system/ThemeProvider.js +46 -13
  509. package/lib/types/components/design-system/ThemedText.d.ts +3 -1
  510. package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
  511. package/lib/types/components/design-system/ThemedText.js +2 -2
  512. package/lib/types/components/diffPatch.d.ts +55 -0
  513. package/lib/types/components/diffPatch.d.ts.map +1 -0
  514. package/lib/types/components/diffPatch.js +142 -0
  515. package/lib/types/components/kernelCatalog.d.ts +48 -0
  516. package/lib/types/components/kernelCatalog.d.ts.map +1 -0
  517. package/lib/types/components/kernelCatalog.js +53 -0
  518. package/lib/types/components/launchpadActions.d.ts +13 -6
  519. package/lib/types/components/launchpadActions.d.ts.map +1 -1
  520. package/lib/types/components/launchpadActions.js +26 -4
  521. package/lib/types/components/launchpadParams.d.ts +101 -0
  522. package/lib/types/components/launchpadParams.d.ts.map +1 -0
  523. package/lib/types/components/launchpadParams.js +171 -0
  524. package/lib/types/components/maidPortrait.d.ts +37 -5
  525. package/lib/types/components/maidPortrait.d.ts.map +1 -1
  526. package/lib/types/components/maidPortrait.js +73 -54
  527. package/lib/types/components/messages/AgentMessageFlow.d.ts +20 -0
  528. package/lib/types/components/messages/AgentMessageFlow.d.ts.map +1 -0
  529. package/lib/types/components/messages/AgentMessageFlow.js +37 -0
  530. package/lib/types/components/messages/AssistantThinkingMessage.d.ts +6 -1
  531. package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
  532. package/lib/types/components/messages/AssistantThinkingMessage.js +29 -5
  533. package/lib/types/components/messages/AssistantToolUseMessage.d.ts +11 -2
  534. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  535. package/lib/types/components/messages/AssistantToolUseMessage.js +289 -36
  536. package/lib/types/components/messages/TranscriptLeaves.d.ts +85 -0
  537. package/lib/types/components/messages/TranscriptLeaves.d.ts.map +1 -0
  538. package/lib/types/components/messages/TranscriptLeaves.js +74 -0
  539. package/lib/types/components/messages/agentTeam.d.ts +69 -0
  540. package/lib/types/components/messages/agentTeam.d.ts.map +1 -0
  541. package/lib/types/components/messages/agentTeam.js +53 -0
  542. package/lib/types/components/messages/liveOutputLines.d.ts +33 -0
  543. package/lib/types/components/messages/liveOutputLines.d.ts.map +1 -0
  544. package/lib/types/components/messages/liveOutputLines.js +100 -0
  545. package/lib/types/components/messages/subagentTranscript.d.ts +146 -0
  546. package/lib/types/components/messages/subagentTranscript.d.ts.map +1 -0
  547. package/lib/types/components/messages/subagentTranscript.js +304 -0
  548. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +16 -1
  549. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  550. package/lib/types/components/questions/AskUserQuestionPanel.js +76 -6
  551. package/lib/types/components/questions/PlanReviewPanel.d.ts +8 -3
  552. package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
  553. package/lib/types/components/questions/PlanReviewPanel.js +11 -6
  554. package/lib/types/components/questions/ProviderModelEditor.d.ts +12 -0
  555. package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -0
  556. package/lib/types/components/questions/ProviderModelEditor.js +266 -0
  557. package/lib/types/components/shimmer.d.ts +26 -0
  558. package/lib/types/components/shimmer.d.ts.map +1 -1
  559. package/lib/types/components/shimmer.js +26 -0
  560. package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -1
  561. package/lib/types/components/sidePanel/InfoPanel.js +13 -8
  562. package/lib/types/components/sidePanel/PanelBar.d.ts +0 -24
  563. package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
  564. package/lib/types/components/sidePanel/PanelBar.js +55 -77
  565. package/lib/types/components/sidePanel/PanelStore.d.ts +3 -1
  566. package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
  567. package/lib/types/components/sidePanel/PanelStore.js +8 -4
  568. package/lib/types/components/sidePanel/SidePanelColumn.d.ts +3 -10
  569. package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
  570. package/lib/types/components/sidePanel/SidePanelColumn.js +9 -12
  571. package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -1
  572. package/lib/types/components/sidePanel/TrajectoryPanel.js +78 -14
  573. package/lib/types/components/sidePanel/agentViewStore.d.ts +20 -0
  574. package/lib/types/components/sidePanel/agentViewStore.d.ts.map +1 -0
  575. package/lib/types/components/sidePanel/agentViewStore.js +26 -0
  576. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +50 -0
  577. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -0
  578. package/lib/types/components/sidePanel/btw/BtwComposer.js +45 -0
  579. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +13 -0
  580. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -0
  581. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +147 -0
  582. package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +14 -0
  583. package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -0
  584. package/lib/types/components/sidePanel/btw/BtwThreadScene.js +131 -0
  585. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +30 -0
  586. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -0
  587. package/lib/types/components/sidePanel/btw/BtwThreadView.js +87 -0
  588. package/lib/types/components/sidePanel/btw/threads.d.ts +111 -0
  589. package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -0
  590. package/lib/types/components/sidePanel/btw/threads.js +302 -0
  591. package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
  592. package/lib/types/components/sidePanel/builtinPanels.js +70 -30
  593. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +4 -46
  594. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -1
  595. package/lib/types/components/sidePanel/companion/CompanionPanel.js +19 -55
  596. package/lib/types/components/sidePanel/companion/mood.d.ts +32 -0
  597. package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -1
  598. package/lib/types/components/sidePanel/companion/mood.js +44 -0
  599. package/lib/types/components/sidePanel/companion/skins.d.ts +34 -0
  600. package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
  601. package/lib/types/components/sidePanel/companion/skins.js +203 -29
  602. package/lib/types/components/splashFonts.d.ts +17 -9
  603. package/lib/types/components/splashFonts.d.ts.map +1 -1
  604. package/lib/types/components/splashFonts.js +119 -15
  605. package/lib/types/components/splashLayout.d.ts.map +1 -1
  606. package/lib/types/components/splashLayout.js +3 -1
  607. package/lib/types/components/subagentDetailMemory.d.ts +17 -0
  608. package/lib/types/components/subagentDetailMemory.d.ts.map +1 -0
  609. package/lib/types/components/subagentDetailMemory.js +28 -0
  610. package/lib/types/components/trajectory/Inspector.d.ts.map +1 -1
  611. package/lib/types/components/trajectory/Inspector.js +9 -0
  612. package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
  613. package/lib/types/components/trajectory/Ledger.js +7 -1
  614. package/lib/types/components/trajectory/scope.d.ts +64 -0
  615. package/lib/types/components/trajectory/scope.d.ts.map +1 -0
  616. package/lib/types/components/trajectory/scope.js +88 -0
  617. package/lib/types/components/trajectory/useTrajectoryScope.d.ts +42 -0
  618. package/lib/types/components/trajectory/useTrajectoryScope.d.ts.map +1 -0
  619. package/lib/types/components/trajectory/useTrajectoryScope.js +86 -0
  620. package/lib/types/customTheme.d.ts +4 -6
  621. package/lib/types/customTheme.d.ts.map +1 -1
  622. package/lib/types/customTheme.js +6 -8
  623. package/lib/types/dsh-adapter/approvals.d.ts +18 -5
  624. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
  625. package/lib/types/dsh-adapter/approvals.js +17 -4
  626. package/lib/types/dsh-adapter/backend/session.d.ts +64 -0
  627. package/lib/types/dsh-adapter/backend/session.d.ts.map +1 -0
  628. package/lib/types/dsh-adapter/backend/session.js +291 -0
  629. package/lib/types/dsh-adapter/backend/translate.d.ts +58 -0
  630. package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -0
  631. package/lib/types/dsh-adapter/backend/translate.js +467 -0
  632. package/lib/types/dsh-adapter/backends.d.ts +49 -0
  633. package/lib/types/dsh-adapter/backends.d.ts.map +1 -0
  634. package/lib/types/dsh-adapter/backends.js +124 -0
  635. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +16 -0
  636. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
  637. package/lib/types/dsh-adapter/channel/action-readiness.js +109 -0
  638. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +2 -2
  639. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
  640. package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -2
  641. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
  642. package/lib/types/dsh-adapter/channel/background-action.js +7 -5
  643. package/lib/types/dsh-adapter/channel/binding-events.d.ts +19 -9
  644. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  645. package/lib/types/dsh-adapter/channel/binding-events.js +58 -135
  646. package/lib/types/dsh-adapter/channel/binding.d.ts +61 -14
  647. package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
  648. package/lib/types/dsh-adapter/channel/binding.js +102 -35
  649. package/lib/types/dsh-adapter/channel/command-completions.d.ts +3 -0
  650. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
  651. package/lib/types/dsh-adapter/channel/command-completions.js +33 -4
  652. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
  653. package/lib/types/dsh-adapter/channel/compaction.js +3 -2
  654. package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
  655. package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
  656. package/lib/types/dsh-adapter/channel/composer-images.js +4 -3
  657. package/lib/types/dsh-adapter/channel/core/actions.d.ts +39 -0
  658. package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -0
  659. package/lib/types/dsh-adapter/channel/core/actions.js +152 -0
  660. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +145 -0
  661. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -0
  662. package/lib/types/dsh-adapter/channel/core/binding-feed.js +289 -0
  663. package/lib/types/dsh-adapter/channel/core/compose.d.ts +217 -0
  664. package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -0
  665. package/lib/types/dsh-adapter/channel/core/compose.js +938 -0
  666. package/lib/types/dsh-adapter/channel/core/files.d.ts +57 -0
  667. package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -0
  668. package/lib/types/dsh-adapter/channel/core/files.js +45 -0
  669. package/lib/types/dsh-adapter/channel/core/host.d.ts +55 -0
  670. package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -0
  671. package/lib/types/dsh-adapter/channel/core/host.js +116 -0
  672. package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +46 -0
  673. package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -0
  674. package/lib/types/dsh-adapter/channel/core/local-actions.js +117 -0
  675. package/lib/types/dsh-adapter/channel/core/local-images.d.ts +20 -0
  676. package/lib/types/dsh-adapter/channel/core/local-images.d.ts.map +1 -0
  677. package/lib/types/dsh-adapter/channel/core/local-images.js +147 -0
  678. package/lib/types/dsh-adapter/channel/core/reports.d.ts +12 -0
  679. package/lib/types/dsh-adapter/channel/core/reports.d.ts.map +1 -0
  680. package/lib/types/dsh-adapter/channel/core/reports.js +77 -0
  681. package/lib/types/dsh-adapter/channel/core/session-controls.d.ts +39 -0
  682. package/lib/types/dsh-adapter/channel/core/session-controls.d.ts.map +1 -0
  683. package/lib/types/dsh-adapter/channel/core/session-controls.js +219 -0
  684. package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +174 -0
  685. package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -0
  686. package/lib/types/dsh-adapter/channel/core/session-switch.js +390 -0
  687. package/lib/types/dsh-adapter/channel/core/sessions.d.ts +40 -0
  688. package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -0
  689. package/lib/types/dsh-adapter/channel/core/sessions.js +268 -0
  690. package/lib/types/dsh-adapter/channel/decisions.d.ts +4 -3
  691. package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -1
  692. package/lib/types/dsh-adapter/channel/decisions.js +4 -4
  693. package/lib/types/dsh-adapter/channel/emitter.d.ts +15 -2
  694. package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -1
  695. package/lib/types/dsh-adapter/channel/emitter.js +5 -3
  696. package/lib/types/dsh-adapter/channel/extensions.d.ts +36 -0
  697. package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -0
  698. package/lib/types/dsh-adapter/channel/extensions.js +714 -0
  699. package/lib/types/dsh-adapter/channel/ide-selection.d.ts +1 -10
  700. package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -1
  701. package/lib/types/dsh-adapter/channel/ide-selection.js +4 -46
  702. package/lib/types/dsh-adapter/channel/input-actions.d.ts +27 -4
  703. package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -1
  704. package/lib/types/dsh-adapter/channel/input-actions.js +240 -21
  705. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +21 -5
  706. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
  707. package/lib/types/dsh-adapter/channel/input-delivery.js +65 -27
  708. package/lib/types/dsh-adapter/channel/local-actions.d.ts +10 -32
  709. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
  710. package/lib/types/dsh-adapter/channel/local-actions.js +10 -78
  711. package/lib/types/dsh-adapter/channel/local-fs.d.ts +3 -0
  712. package/lib/types/dsh-adapter/channel/local-fs.d.ts.map +1 -0
  713. package/lib/types/dsh-adapter/channel/local-fs.js +46 -0
  714. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +3 -3
  715. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
  716. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +2 -2
  717. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
  718. package/lib/types/dsh-adapter/channel/model-actions.d.ts +3 -3
  719. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
  720. package/lib/types/dsh-adapter/channel/model-actions.js +38 -5
  721. package/lib/types/dsh-adapter/channel/model-switch.d.ts +2 -2
  722. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
  723. package/lib/types/dsh-adapter/channel/model-switch.js +9 -6
  724. package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
  725. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
  726. package/lib/types/dsh-adapter/channel/preferences.js +16 -0
  727. package/lib/types/dsh-adapter/channel/projection.d.ts +16 -13
  728. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  729. package/lib/types/dsh-adapter/channel/projection.js +38 -1143
  730. package/lib/types/dsh-adapter/channel/question-record.d.ts +3 -75
  731. package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -1
  732. package/lib/types/dsh-adapter/channel/question-record.js +3 -107
  733. package/lib/types/dsh-adapter/channel/session-activity.d.ts +9 -0
  734. package/lib/types/dsh-adapter/channel/session-activity.d.ts.map +1 -0
  735. package/lib/types/dsh-adapter/channel/session-activity.js +42 -0
  736. package/lib/types/dsh-adapter/channel/session-adoption.d.ts +4 -4
  737. package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
  738. package/lib/types/dsh-adapter/channel/session-adoption.js +3 -1
  739. package/lib/types/dsh-adapter/channel/session-fork.d.ts +1 -1
  740. package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
  741. package/lib/types/dsh-adapter/channel/session-fork.js +2 -1
  742. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +7 -3
  743. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
  744. package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -1
  745. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -9
  746. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  747. package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
  748. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
  749. package/lib/types/dsh-adapter/channel/session-reset.js +4 -0
  750. package/lib/types/dsh-adapter/channel/session-resume.d.ts +5 -10
  751. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  752. package/lib/types/dsh-adapter/channel/session-resume.js +74 -113
  753. package/lib/types/dsh-adapter/channel/session-rewind.d.ts +4 -4
  754. package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
  755. package/lib/types/dsh-adapter/channel/session-rewind.js +7 -6
  756. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +4 -4
  757. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
  758. package/lib/types/dsh-adapter/channel/session-tree-actions.js +8 -7
  759. package/lib/types/dsh-adapter/channel/settings-host.d.ts +1 -1
  760. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  761. package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
  762. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +5 -1
  763. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
  764. package/lib/types/dsh-adapter/channel/skill-catalog.js +2 -2
  765. package/lib/types/dsh-adapter/channel/state.d.ts +72 -1
  766. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  767. package/lib/types/dsh-adapter/channel/state.js +7 -3
  768. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +58 -3
  769. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  770. package/lib/types/dsh-adapter/channel/subagent-projection.js +153 -9
  771. package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts +114 -0
  772. package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts.map +1 -0
  773. package/lib/types/dsh-adapter/channel/subagent-transcript.js +279 -0
  774. package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -15
  775. package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
  776. package/lib/types/dsh-adapter/channel/transcript.js +17 -21
  777. package/lib/types/dsh-adapter/channel/types.d.ts +16 -7
  778. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  779. package/lib/types/dsh-adapter/channel/usage.d.ts +3 -23
  780. package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
  781. package/lib/types/dsh-adapter/channel/usage.js +5 -111
  782. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
  783. package/lib/types/dsh-adapter/channel/workspace-actions.js +2 -1
  784. package/lib/types/dsh-adapter/channel.d.ts +17 -8
  785. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  786. package/lib/types/dsh-adapter/channel.js +24 -1059
  787. package/lib/types/dsh-adapter/context-occupancy.d.ts +6 -1
  788. package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
  789. package/lib/types/dsh-adapter/context-occupancy.js +6 -1
  790. package/lib/types/dsh-adapter/decision-guard.d.ts +24 -0
  791. package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
  792. package/lib/types/dsh-adapter/decision-guard.js +44 -0
  793. package/lib/types/dsh-adapter/extension-events.d.ts +4 -1
  794. package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
  795. package/lib/types/dsh-adapter/extension-events.js +22 -10
  796. package/lib/types/dsh-adapter/index.d.ts +41 -3
  797. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  798. package/lib/types/dsh-adapter/index.js +28 -1
  799. package/lib/types/dsh-adapter/jobs.d.ts +5 -3
  800. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  801. package/lib/types/dsh-adapter/jobs.js +53 -14
  802. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -16
  803. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
  804. package/lib/types/dsh-adapter/migrate/parse/jsonl.js +3 -29
  805. package/lib/types/dsh-adapter/oauth-credential-source.d.ts +34 -0
  806. package/lib/types/dsh-adapter/oauth-credential-source.d.ts.map +1 -0
  807. package/lib/types/dsh-adapter/oauth-credential-source.js +66 -0
  808. package/lib/types/dsh-adapter/plugin.d.ts +38 -2
  809. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  810. package/lib/types/dsh-adapter/plugin.js +546 -110
  811. package/lib/types/dsh-adapter/provider-model-capabilities.d.ts +10 -0
  812. package/lib/types/dsh-adapter/provider-model-capabilities.d.ts.map +1 -0
  813. package/lib/types/dsh-adapter/provider-model-capabilities.js +80 -0
  814. package/lib/types/dsh-adapter/providerWizard.d.ts +8 -2
  815. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  816. package/lib/types/dsh-adapter/providerWizard.js +118 -52
  817. package/lib/types/dsh-adapter/questions.d.ts +29 -124
  818. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  819. package/lib/types/dsh-adapter/questions.js +33 -267
  820. package/lib/types/dsh-adapter/recap.d.ts +3 -15
  821. package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
  822. package/lib/types/dsh-adapter/recap.js +3 -46
  823. package/lib/types/dsh-adapter/sanitize.d.ts +4 -44
  824. package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -1
  825. package/lib/types/dsh-adapter/sanitize.js +4 -84
  826. package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +3 -1
  827. package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -1
  828. package/lib/types/dsh-adapter/session-mount-heartbeat.js +4 -2
  829. package/lib/types/dsh-adapter/sessions/digest.d.ts +18 -3
  830. package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
  831. package/lib/types/dsh-adapter/sessions/digest.js +60 -27
  832. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  833. package/lib/types/dsh-adapter/sessions/list.js +6 -4
  834. package/lib/types/dsh-adapter/sessions/recovery.d.ts +2 -2
  835. package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -1
  836. package/lib/types/dsh-adapter/sessions/recovery.js +23 -14
  837. package/lib/types/dsh-adapter/sessions/store.d.ts +2 -0
  838. package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
  839. package/lib/types/dsh-adapter/sessions/store.js +1 -0
  840. package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
  841. package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
  842. package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
  843. package/lib/types/dsh-adapter/sideQuestion.js +3 -13
  844. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  845. package/lib/types/dsh-adapter/subagents.js +7 -0
  846. package/lib/types/dsh-adapter/themes.d.ts +1 -1
  847. package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
  848. package/lib/types/dsh-adapter/trajectory/agent-source.d.ts +84 -0
  849. package/lib/types/dsh-adapter/trajectory/agent-source.d.ts.map +1 -0
  850. package/lib/types/dsh-adapter/trajectory/agent-source.js +601 -0
  851. package/lib/types/dsh-adapter/trajectory/guards.d.ts +31 -1
  852. package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
  853. package/lib/types/dsh-adapter/trajectory/guards.js +28 -0
  854. package/lib/types/dsh-adapter/trajectory/index.d.ts +3 -1
  855. package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -1
  856. package/lib/types/dsh-adapter/trajectory/index.js +1 -0
  857. package/lib/types/dsh-adapter/trajectory/inspect.d.ts +7 -0
  858. package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
  859. package/lib/types/dsh-adapter/trajectory/inspect.js +70 -2
  860. package/lib/types/dsh-adapter/trajectory/projection.d.ts +4 -0
  861. package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
  862. package/lib/types/dsh-adapter/trajectory/projection.js +36 -0
  863. package/lib/types/dsh-adapter/trajectory/types.d.ts +13 -0
  864. package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
  865. package/lib/types/effortPrefs.d.ts +7 -0
  866. package/lib/types/effortPrefs.d.ts.map +1 -1
  867. package/lib/types/effortPrefs.js +11 -2
  868. package/lib/types/handoffAck.d.ts +57 -0
  869. package/lib/types/handoffAck.d.ts.map +1 -0
  870. package/lib/types/handoffAck.js +154 -0
  871. package/lib/types/handoffEvents.d.ts +52 -0
  872. package/lib/types/handoffEvents.d.ts.map +1 -0
  873. package/lib/types/handoffEvents.js +128 -0
  874. package/lib/types/i18n.d.ts +3189 -68
  875. package/lib/types/i18n.d.ts.map +1 -1
  876. package/lib/types/i18n.js +855 -9
  877. package/lib/types/ink/colorize.d.ts.map +1 -1
  878. package/lib/types/ink/colorize.js +8 -2
  879. package/lib/types/ink/components/AlternateScreen.d.ts +12 -1
  880. package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
  881. package/lib/types/ink/components/AlternateScreen.js +25 -4
  882. package/lib/types/ink/components/App.d.ts +5 -1
  883. package/lib/types/ink/components/App.d.ts.map +1 -1
  884. package/lib/types/ink/components/App.js +52 -5
  885. package/lib/types/ink/components/Image.d.ts +8 -1
  886. package/lib/types/ink/components/Image.d.ts.map +1 -1
  887. package/lib/types/ink/components/Image.js +2 -2
  888. package/lib/types/ink/components/Text.d.ts +8 -1
  889. package/lib/types/ink/components/Text.d.ts.map +1 -1
  890. package/lib/types/ink/components/Text.js +11 -1
  891. package/lib/types/ink/dom.d.ts.map +1 -1
  892. package/lib/types/ink/dom.js +75 -3
  893. package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
  894. package/lib/types/ink/hooks/use-input.js +9 -4
  895. package/lib/types/ink/ink.d.ts.map +1 -1
  896. package/lib/types/ink/ink.js +8 -2
  897. package/lib/types/ink/kitty-graphics.d.ts +7 -2
  898. package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
  899. package/lib/types/ink/kitty-graphics.js +15 -7
  900. package/lib/types/ink/node-cache.d.ts +15 -1
  901. package/lib/types/ink/node-cache.d.ts.map +1 -1
  902. package/lib/types/ink/node-cache.js +4 -1
  903. package/lib/types/ink/output.d.ts.map +1 -1
  904. package/lib/types/ink/output.js +2 -0
  905. package/lib/types/ink/parse-keypress.d.ts +13 -0
  906. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  907. package/lib/types/ink/parse-keypress.js +438 -19
  908. package/lib/types/ink/reconciler.d.ts.map +1 -1
  909. package/lib/types/ink/reconciler.js +9 -0
  910. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  911. package/lib/types/ink/render-node-to-output.js +200 -4
  912. package/lib/types/ink/render-stats.d.ts +35 -0
  913. package/lib/types/ink/render-stats.d.ts.map +1 -0
  914. package/lib/types/ink/render-stats.js +53 -0
  915. package/lib/types/ink/sixel-codec.d.ts +11 -1
  916. package/lib/types/ink/sixel-codec.d.ts.map +1 -1
  917. package/lib/types/ink/sixel-codec.js +10 -3
  918. package/lib/types/ink/sixel-graphics.js +2 -2
  919. package/lib/types/ink/styles.d.ts +46 -0
  920. package/lib/types/ink/styles.d.ts.map +1 -1
  921. package/lib/types/ink/terminal-image.d.ts +7 -0
  922. package/lib/types/ink/terminal-image.d.ts.map +1 -1
  923. package/lib/types/ink/terminal-querier.d.ts +1 -1
  924. package/lib/types/ink/terminal-querier.js +4 -4
  925. package/lib/types/ink/text-decoration.d.ts +49 -0
  926. package/lib/types/ink/text-decoration.d.ts.map +1 -0
  927. package/lib/types/ink/text-decoration.js +235 -0
  928. package/lib/types/ink/update-overflow-guard.d.ts +9 -0
  929. package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
  930. package/lib/types/ink/update-overflow-guard.js +41 -0
  931. package/lib/types/ink/wrap-text.d.ts.map +1 -1
  932. package/lib/types/ink/wrap-text.js +5 -1
  933. package/lib/types/kernelPrefs.d.ts +51 -0
  934. package/lib/types/kernelPrefs.d.ts.map +1 -0
  935. package/lib/types/kernelPrefs.js +126 -0
  936. package/lib/types/modelRecents.d.ts +10 -2
  937. package/lib/types/modelRecents.d.ts.map +1 -1
  938. package/lib/types/modelRecents.js +20 -7
  939. package/lib/types/screens/AgentTranscriptScene.d.ts +42 -0
  940. package/lib/types/screens/AgentTranscriptScene.d.ts.map +1 -0
  941. package/lib/types/screens/AgentTranscriptScene.js +269 -0
  942. package/lib/types/screens/Chat.d.ts +45 -7
  943. package/lib/types/screens/Chat.d.ts.map +1 -1
  944. package/lib/types/screens/Chat.js +625 -113
  945. package/lib/types/screens/Launchpad.d.ts +24 -7
  946. package/lib/types/screens/Launchpad.d.ts.map +1 -1
  947. package/lib/types/screens/Launchpad.js +147 -28
  948. package/lib/types/screens/SessionSupervisor.d.ts +3 -3
  949. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  950. package/lib/types/screens/SessionSupervisor.js +69 -5
  951. package/lib/types/screens/Settings.d.ts.map +1 -1
  952. package/lib/types/screens/Settings.js +211 -7
  953. package/lib/types/screens/StatusLine.d.ts +40 -1
  954. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  955. package/lib/types/screens/StatusLine.js +131 -19
  956. package/lib/types/screens/StatusMetrics.d.ts +53 -17
  957. package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
  958. package/lib/types/screens/StatusMetrics.js +141 -30
  959. package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
  960. package/lib/types/screens/TrajectoryScene.js +74 -12
  961. package/lib/types/screens/chat/backendCommands.d.ts +37 -0
  962. package/lib/types/screens/chat/backendCommands.d.ts.map +1 -0
  963. package/lib/types/screens/chat/backendCommands.js +51 -0
  964. package/lib/types/screens/chat/useBackendChannels.d.ts +20 -0
  965. package/lib/types/screens/chat/useBackendChannels.d.ts.map +1 -0
  966. package/lib/types/screens/chat/useBackendChannels.js +117 -0
  967. package/lib/types/screens/chat/useKernelPicker.d.ts +23 -0
  968. package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -0
  969. package/lib/types/screens/chat/useKernelPicker.js +72 -0
  970. package/lib/types/screens/chatOverlay.d.ts +32 -2
  971. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  972. package/lib/types/screens/chatOverlay.js +9 -0
  973. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -1
  974. package/lib/types/screens/sessionSupervisor/useForeignSessions.js +5 -1
  975. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +14 -0
  976. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  977. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -22
  978. package/lib/types/sessionHistory.d.ts +18 -1
  979. package/lib/types/sessionHistory.d.ts.map +1 -1
  980. package/lib/types/sessionHistory.js +46 -4
  981. package/lib/types/sessionPins.d.ts +7 -0
  982. package/lib/types/sessionPins.d.ts.map +1 -1
  983. package/lib/types/sessionPins.js +9 -0
  984. package/lib/types/sessions/resumeFailure.d.ts.map +1 -1
  985. package/lib/types/sessions/resumeFailure.js +2 -1
  986. package/lib/types/settings/definitions.d.ts +74 -0
  987. package/lib/types/settings/definitions.d.ts.map +1 -1
  988. package/lib/types/settings/definitions.js +50 -4
  989. package/lib/types/terminal-utils/hyperlink.d.ts +2 -2
  990. package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -1
  991. package/lib/types/terminal-utils/hyperlink.js +21 -4
  992. package/lib/types/terminal-utils/markdown.d.ts +34 -6
  993. package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
  994. package/lib/types/terminal-utils/markdown.js +257 -66
  995. package/lib/types/theme.d.ts +49 -8
  996. package/lib/types/theme.d.ts.map +1 -1
  997. package/lib/types/theme.js +514 -18
  998. package/lib/types/tips.js +2 -2
  999. package/lib/types/trajectory/effortIgnition.d.ts +25 -7
  1000. package/lib/types/trajectory/effortIgnition.d.ts.map +1 -1
  1001. package/lib/types/trajectory/effortIgnition.js +106 -34
  1002. package/lib/types/trajectory/window.d.ts +26 -0
  1003. package/lib/types/trajectory/window.d.ts.map +1 -0
  1004. package/lib/types/trajectory/window.js +27 -0
  1005. package/lib/types/tuiDisplayPrefs.d.ts +38 -1
  1006. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  1007. package/lib/types/tuiDisplayPrefs.js +45 -1
  1008. package/lib/types/update.d.ts +88 -3
  1009. package/lib/types/update.d.ts.map +1 -1
  1010. package/lib/types/update.js +285 -18
  1011. package/lib/types/utils/crashDetail.d.ts +56 -0
  1012. package/lib/types/utils/crashDetail.d.ts.map +1 -0
  1013. package/lib/types/utils/crashDetail.js +175 -0
  1014. package/lib/types/utils/imageResize.d.ts +9 -23
  1015. package/lib/types/utils/imageResize.d.ts.map +1 -1
  1016. package/lib/types/utils/imageResize.js +24 -20
  1017. package/lib/types/utils/inputPaste.d.ts +9 -8
  1018. package/lib/types/utils/inputPaste.d.ts.map +1 -1
  1019. package/lib/types/utils/inputPaste.js +53 -16
  1020. package/lib/types/utils/jsonl.d.ts +24 -0
  1021. package/lib/types/utils/jsonl.d.ts.map +1 -0
  1022. package/lib/types/utils/jsonl.js +36 -0
  1023. package/package.json +18 -2
@@ -0,0 +1,852 @@
1
+ import { t } from '../../../i18n.js';
2
+ import { CLAUDE_BACKEND_ID, CLI_CAPABILITY, cliVersionDrift, VALIDATED_CLI_VERSIONS, VALIDATED_SDK_VERSION } from '../contract.js';
3
+ import { isAuthFailure, CLAUDE_OAUTH_PROVIDER } from '../auth.js';
4
+ import { accountView } from '../controls.js';
5
+ import { buildQueryOptions } from '../options.js';
6
+ import { createClaudeDialogBridge, SUPPORTED_DIALOG_KINDS } from '../dialogs.js';
7
+ import { createClaudeActivityPublisher } from '../activity.js';
8
+ import { createClaudePermissionBridge, WITHDRAWN_MESSAGE } from '../permissions.js';
9
+ import { createStderrSink } from '../process.js';
10
+ import { memoryClaudePrefs } from '../prefs.js';
11
+ import { fileClaudeChannels } from '../channels.js';
12
+ import { fileClaudeChannelTokens } from '../../shared/channel-tokens.js';
13
+ import { createClaudeTranscriptHistory } from '../older-history.js';
14
+ import { join } from 'node:path';
15
+ import { DATA_DIR } from '../../../utils/paths.js';
16
+ import { envSlotsServeModel, mergedModelEnv } from '../modelEnv.js';
17
+ import { claudeConfigDir } from '../transcript-file.js';
18
+ import { CLAUDE_IMAGE_LIMITS, claudeImageBlocks } from '../images.js';
19
+ import { createClaudeSideQuery } from '../side-query.js';
20
+ import { writeFlagSettingsFile } from '../flag-settings.js';
21
+ import { createClaudeTranslator } from '../translate.js';
22
+ import { errorText, rec } from '../narrow.js';
23
+ import { accountLines, authSourceLabel, createSessionAuth } from './auth.js';
24
+ import { createSessionControls } from './channels.js';
25
+ import { createInbox, priorityOf, wakeOf } from './input.js';
26
+ import { createSessionStore } from './store.js';
27
+ import { sessionTaskCapabilities } from './subagents.js';
28
+ const REAL_CLOCK = {
29
+ setTimeout: (callback, ms) => {
30
+ const handle = setTimeout(callback, ms);
31
+ handle.unref();
32
+ return handle;
33
+ },
34
+ clearTimeout: handle => { clearTimeout(handle); },
35
+ };
36
+ /** The CLI's answer to `resume` of a session it has no transcript for. */
37
+ const NO_CONVERSATION = /No conversation found with session ID/iu;
38
+ /** Open one session: start the query, wait for its handshake, start the
39
+ * consumer loop. Throws (after cleaning up) when the CLI cannot start. */
40
+ export async function openClaudeSession(input) {
41
+ // The replayed history goes to the channel once (`history()`) and is then
42
+ // let go: a long transcript's events must not live as long as the session.
43
+ const { resume, ...deps } = input;
44
+ const resumed = resume !== undefined;
45
+ const compactedFrom = resume?.compactedFrom;
46
+ let replayHistory = resume?.events;
47
+ /** The CLI's current session id: the opened one until a
48
+ * `conversation_reset` moves the CLI to a new one. */
49
+ let currentSessionId = deps.sessionId;
50
+ /** A reset was seen; the next frame naming another id adopts it. */
51
+ let resetPending = false;
52
+ const clock = deps.clock ?? REAL_CLOCK;
53
+ const forceSettleMs = deps.forceSettleMs ?? 30_000;
54
+ const prefs = deps.prefs ?? memoryClaudePrefs();
55
+ // The relay channel profiles: the file store under ~/.dsh-tui by default,
56
+ // injectable like prefs (tests run an in-memory store).
57
+ const channels = deps.channels ?? fileClaudeChannels(join(DATA_DIR, 'backends', 'claude'), message => deps.host.debug(message));
58
+ // The channel-token seam: ~/.dsh/.credentials.yaml by default (the
59
+ // /provider precedent), injectable for tests.
60
+ const channelTokens = deps.channelTokens ?? fileClaudeChannelTokens(undefined, message => deps.host.debug(message));
61
+ const listeners = new Set();
62
+ /** Batches produced before the channel subscribed (handshake, start notices). */
63
+ const backlog = [];
64
+ let status = 'starting';
65
+ let disposing = false;
66
+ let settlingPrompts = false;
67
+ let disposePromise;
68
+ let cliVersion;
69
+ let cliCapabilities = [];
70
+ /** `system/init.apiKeySource`: the CLI's own account of its credential. */
71
+ let apiKeySource;
72
+ /** `accountInfo()` once fetched (never surfaces the email). */
73
+ let account;
74
+ let forceTimer;
75
+ /** The credential plan the live query runs on. */
76
+ let authPlan = deps.auth?.plan ?? { source: 'claude-login', env: deps.env };
77
+ /** The CLI's config directory under the live plan's environment. */
78
+ const configDir = () => claudeConfigDir(authPlan.env.CLAUDE_CONFIG_DIR === undefined ? process.env : authPlan.env);
79
+ /** The model-routing env the CLI child applies (modelEnv.ts), read per
80
+ * run so a reconnect's renewed plan counts. */
81
+ const childModelEnv = () => mergedModelEnv(configDir(), authPlan.env, new Set(Object.keys(authPlan.settings?.env ?? {})));
82
+ let authFailed = false;
83
+ /**
84
+ * The CLI wrote this session's transcript (an input started, or a turn
85
+ * reported its result). Until then a restart must create the session with
86
+ * the same id: `resume` of an id the CLI has no transcript for fails its
87
+ * handshake ("No conversation found").
88
+ */
89
+ let persisted = resumed;
90
+ /** What this session pushed, by input uuid, until the CLI starts it: a
91
+ * reconnect re-delivers what the old CLI never started. */
92
+ const pushed = new Map();
93
+ /** Callers waiting for the open turn to close (a deferred `/login`). */
94
+ const idleWaiters = [];
95
+ /** No turn open and nothing queued the CLI would start next. */
96
+ const idle = () => !translator.turnOpen && translator.unstartedInputs().length === 0;
97
+ const settleIdleWaiters = (error) => {
98
+ if (error === undefined && !idle())
99
+ return;
100
+ for (const waiter of idleWaiters.splice(0)) {
101
+ if (error === undefined)
102
+ waiter.resolve();
103
+ else
104
+ waiter.reject(error);
105
+ }
106
+ };
107
+ const translator = createClaudeTranslator({
108
+ cwd: deps.cwd,
109
+ userRows: 'lifecycle',
110
+ debug: deps.host.debug,
111
+ // A resumed session continues the replay's numbering and task table.
112
+ ...(resume === undefined ? {} : { start: { ...resume.start, ...(resume.tasks === undefined || resume.tasks.length === 0 ? {} : { tasks: resume.tasks }) } }),
113
+ });
114
+ translator.noteMode(deps.start.mode);
115
+ // The working line's publisher (activity.ts): folded from the translator's
116
+ // own state after every batch, never from a second parse of the stream. A
117
+ // parked permission/dialog prompt is the waiting phase; the fold dedupes,
118
+ // so folding after every emit publishes only real changes.
119
+ const activityPublisher = createClaudeActivityPublisher();
120
+ const publishActivity = () => {
121
+ activityPublisher.fold(translator.activityState(), asking || dialogsOpen);
122
+ };
123
+ const emit = (events, wake = 'sync', duringDispose = false) => {
124
+ if (disposing && !duringDispose)
125
+ return;
126
+ if (events.length === 0)
127
+ return;
128
+ const meta = { replay: false, wake };
129
+ if (listeners.size === 0) {
130
+ backlog.push([events, meta]);
131
+ publishActivity();
132
+ return;
133
+ }
134
+ for (const listener of [...listeners]) {
135
+ try {
136
+ listener(events, meta);
137
+ }
138
+ catch (error) {
139
+ deps.host.debug(`claude: listener failed (${errorText(error)})`);
140
+ }
141
+ }
142
+ publishActivity();
143
+ };
144
+ const clearForceTimer = () => {
145
+ if (forceTimer === undefined)
146
+ return;
147
+ clock.clearTimeout(forceTimer);
148
+ forceTimer = undefined;
149
+ };
150
+ /** Prompts are parked: the session needs the user. Only
151
+ * transitions are announced; the CLI's own `session_state_changed`
152
+ * frames say the same and are idempotent with these. */
153
+ let asking = false;
154
+ const bridge = createClaudePermissionBridge({
155
+ cwd: deps.cwd,
156
+ emit: events => emit(events, 'sync', settlingPrompts),
157
+ debug: deps.host.debug,
158
+ closing: () => disposing,
159
+ onPendingChange: count => {
160
+ const next = count > 0;
161
+ if (next === asking)
162
+ return;
163
+ asking = next;
164
+ if (disposing)
165
+ return;
166
+ if (next && !dialogsOpen)
167
+ emit([{ type: 'session.status', status: 'requires-action' }], 'none');
168
+ else if (!next && !dialogsOpen && translator.turnOpen)
169
+ emit([{ type: 'session.status', status: 'running' }], 'none');
170
+ },
171
+ });
172
+ /** MCP elicitation and user dialogs (dialogs.ts): parked like prompts. */
173
+ let dialogsOpen = false;
174
+ const dialogs = createClaudeDialogBridge({
175
+ emit: events => emit(events, 'sync', settlingPrompts),
176
+ debug: deps.host.debug,
177
+ closing: () => disposing,
178
+ onPendingChange: count => {
179
+ const next = count > 0;
180
+ if (next === dialogsOpen)
181
+ return;
182
+ dialogsOpen = next;
183
+ if (disposing)
184
+ return;
185
+ if (next && !asking)
186
+ emit([{ type: 'session.status', status: 'requires-action' }], 'none');
187
+ else if (!next && !asking && translator.turnOpen)
188
+ emit([{ type: 'session.status', status: 'running' }], 'none');
189
+ },
190
+ });
191
+ const stderrSink = createStderrSink(line => {
192
+ deps.host.debug(`[claude-stderr] ${line}`);
193
+ deps.host.stderr?.(line);
194
+ });
195
+ const startRun = (resume) => {
196
+ const inbox = createInbox();
197
+ const abortController = new AbortController();
198
+ const startModel = prefs.read().model ?? deps.model;
199
+ // The CLI checks an explicit `model` against its official catalog and
200
+ // refuses a relay model name (`[claude-code:unrecognized_model]`), while
201
+ // the same name in an env slot (ANTHROPIC_MODEL /
202
+ // ANTHROPIC_DEFAULT_<TIER>_MODEL) routes fine. When the child's env
203
+ // already routes to the model, the parameter is left out; anything
204
+ // else is still pinned explicitly.
205
+ const explicitModel = startModel !== undefined && envSlotsServeModel(childModelEnv(), startModel)
206
+ ? undefined
207
+ : startModel;
208
+ const startEffort = prefs.read().effort ?? deps.effort;
209
+ // The plan's flag layer (a channel token may ride it) goes by file, out
210
+ // of the CLI's argv; it lives as long as this run.
211
+ const flagSettings = authPlan.settings === undefined ? undefined : writeFlagSettingsFile(authPlan.settings);
212
+ let query;
213
+ try {
214
+ query = deps.sdk.query({
215
+ prompt: inbox,
216
+ options: buildQueryOptions({
217
+ cwd: deps.cwd,
218
+ // A reconnect resumes the same session (same id, same transcript);
219
+ // the SDK refuses `sessionId` together with `resume`.
220
+ ...(resume ? { resume: currentSessionId } : { sessionId: currentSessionId }),
221
+ permissionMode: (translator.mode ?? deps.start.mode),
222
+ executable: deps.executable.path,
223
+ env: authPlan.env,
224
+ ...(flagSettings === undefined ? {} : { settingsFile: flagSettings.path }),
225
+ canUseTool: bridge.canUseTool,
226
+ onElicitation: dialogs.onElicitation,
227
+ onUserDialog: dialogs.onUserDialog,
228
+ supportedDialogKinds: SUPPORTED_DIALOG_KINDS,
229
+ stderr: stderrSink,
230
+ abortController,
231
+ ...(explicitModel === undefined ? {} : { model: explicitModel }),
232
+ ...(startEffort === undefined ? {} : { effort: startEffort }),
233
+ // Echoes are the user-row fallback for a CLI without lifecycle
234
+ // frames; requesting them is harmless when lifecycle frames win (the
235
+ // translator ignores an echo of an input it already confirmed).
236
+ replayUserMessages: true,
237
+ }),
238
+ });
239
+ }
240
+ catch (error) {
241
+ flagSettings?.dispose();
242
+ throw error;
243
+ }
244
+ return { inbox, abortController, query, ...(flagSettings === undefined ? {} : { flagSettings }), consumer: Promise.resolve() };
245
+ };
246
+ let run = startRun(resumed);
247
+ /** Shut one run's CLI down; safe to call from any state. */
248
+ const stopRun = (target) => {
249
+ target.inbox.close();
250
+ try {
251
+ target.query.close();
252
+ }
253
+ catch (error) {
254
+ deps.host.debug(`claude: close failed (${errorText(error)})`);
255
+ }
256
+ target.abortController.abort();
257
+ target.flagSettings?.dispose();
258
+ };
259
+ /** This session in the backend's reference vocabulary (its id follows a
260
+ * conversation reset). */
261
+ const ownRef = { backendId: CLAUDE_BACKEND_ID, get sessionId() { return currentSessionId; } };
262
+ const store = createSessionStore({
263
+ deps,
264
+ ownRef,
265
+ emit,
266
+ get run() { return run; },
267
+ get persisted() { return persisted; },
268
+ get currentSessionId() { return currentSessionId; },
269
+ });
270
+ /** Shut the session down; safe to call from any state. */
271
+ const teardown = () => {
272
+ clearForceTimer();
273
+ // Pending prompt settlements must reach the channel before the query closes.
274
+ settlingPrompts = true;
275
+ bridge.settleAll();
276
+ dialogs.settleAll();
277
+ settlingPrompts = false;
278
+ stopRun(run);
279
+ };
280
+ /** The CLI went away (or the loop failed) without our dispose. */
281
+ const onExit = (error) => {
282
+ if (disposing)
283
+ return;
284
+ disposing = true;
285
+ status = 'disposed';
286
+ const reason = error === undefined ? t('claude-process-ended') : errorText(error);
287
+ teardown();
288
+ emit([
289
+ ...translator.forceCloseTurn({ kind: 'error', message: reason }),
290
+ // The process's background work went with it (the level is per process).
291
+ { type: 'tasks.snapshot', taskIds: [] },
292
+ { type: 'notice', level: 'error', text: t('claude-process-exited', { reason }) },
293
+ { type: 'session.status', status: 'disposed' },
294
+ ], 'sync', true);
295
+ settleIdleWaiters(new Error(t('claude-session-closed')));
296
+ };
297
+ const fetchAccount = (target) => {
298
+ const query = target.query;
299
+ if (typeof query.accountInfo !== 'function')
300
+ return;
301
+ void query.accountInfo().then(info => { if (target === run)
302
+ account = info; }, (error) => {
303
+ deps.host.debug(`claude: accountInfo failed (${errorText(error)})`);
304
+ });
305
+ };
306
+ /** Seed the model before any UI asks for it, with `startRun`'s priority:
307
+ * the persisted choice, the start model, else what the handshake says
308
+ * (its `model`, else the `default` catalog row's resolved model). Only
309
+ * an empty model is seeded: a resumed session keeps the replay's, and a
310
+ * reconnect keeps a model the user switched to. */
311
+ const seedModel = (init) => {
312
+ if (translator.model !== '')
313
+ return;
314
+ const catalog = (Array.isArray(init?.models) ? init.models : []).flatMap((row) => {
315
+ if (typeof row !== 'object' || row === null)
316
+ return [];
317
+ const value = row.value;
318
+ return typeof value === 'string' ? [{ value, resolvedModel: row.resolvedModel }] : [];
319
+ });
320
+ const defaultRow = catalog.find(row => row.value === 'default');
321
+ const fromRow = defaultRow === undefined ? undefined
322
+ : typeof defaultRow.resolvedModel === 'string' && defaultRow.resolvedModel !== '' ? defaultRow.resolvedModel : defaultRow.value;
323
+ const handshakeModel = typeof init?.model === 'string' && init.model !== '' ? init.model : fromRow;
324
+ const model = prefs.read().model ?? deps.model ?? handshakeModel;
325
+ if (model === undefined)
326
+ return;
327
+ emit(translator.noteModel(model), 'none');
328
+ };
329
+ /** The handshake of one run: capabilities, model catalog, commands. */
330
+ const handshake = async (target) => {
331
+ let timer;
332
+ const init = await Promise.race([
333
+ target.query.initializationResult(),
334
+ new Promise((_, reject) => {
335
+ timer = clock.setTimeout(() => reject(new Error(t('claude-start-timeout'))), deps.initTimeoutMs ?? 60_000);
336
+ }),
337
+ ]).finally(() => clock.clearTimeout(timer));
338
+ const result = rec(init);
339
+ // Capabilities come from this handshake alone (a run that reports none
340
+ // must not inherit the previous CLI's): without `msg_lifecycle_v1` user
341
+ // rows come from the replay echo.
342
+ const capabilities = result?.capabilities;
343
+ cliCapabilities = Array.isArray(capabilities) ? capabilities.filter((item) => typeof item === 'string') : [];
344
+ translator.setUserRows(cliCapabilities.includes(CLI_CAPABILITY.lifecycle) ? 'lifecycle' : 'replay');
345
+ seedModel(result);
346
+ fetchAccount(target);
347
+ return result;
348
+ };
349
+ /** The CLI continues under another session id (after a reset). */
350
+ const adoptSessionId = (next) => {
351
+ const previous = currentSessionId;
352
+ currentSessionId = next;
353
+ deps.host.debug(`claude: the session continues as ${next} (was ${previous})`);
354
+ try {
355
+ prefs.touch(next);
356
+ if (prefs.read().lastSession === previous)
357
+ prefs.write({ lastSession: next });
358
+ // The accent belongs to the TUI's session, which continues.
359
+ const color = prefs.color(previous);
360
+ if (color !== '')
361
+ prefs.setColor(next, color);
362
+ }
363
+ catch (error) {
364
+ deps.host.debug(`claude: prefs update after reset failed (${errorText(error)})`);
365
+ }
366
+ };
367
+ const afterMessage = (message, events) => {
368
+ const value = rec(message);
369
+ if (value?.type === 'system' && value.subtype === 'elicitation_complete' && typeof value.mcp_server_name === 'string' && typeof value.elicitation_id === 'string') {
370
+ dialogs.complete(value.mcp_server_name, value.elicitation_id);
371
+ }
372
+ // After a reset the CLI runs under a new session id, named by the frames
373
+ // that follow (not by the reset frame's `new_conversation_id`).
374
+ if (value?.type === 'conversation_reset') {
375
+ resetPending = true;
376
+ }
377
+ else if (resetPending && typeof value?.session_id === 'string' && value.session_id !== '' && value.session_id !== currentSessionId) {
378
+ resetPending = false;
379
+ adoptSessionId(value.session_id);
380
+ }
381
+ if (value?.type === 'result' || (value?.type === 'system' && value.subtype === 'session_state_changed' && value.state === 'idle')) {
382
+ clearForceTimer();
383
+ }
384
+ if (value?.type === 'system' && value.subtype === 'init') {
385
+ if (Array.isArray(value.capabilities))
386
+ cliCapabilities = value.capabilities.filter((item) => typeof item === 'string');
387
+ if (typeof value.apiKeySource === 'string')
388
+ apiKeySource = value.apiKeySource;
389
+ if (Array.isArray(value.terminal_slash_commands))
390
+ controls.setTerminalOnly(value.terminal_slash_commands.filter((item) => typeof item === 'string'));
391
+ }
392
+ if (value?.type === 'result' || (value?.type === 'command_lifecycle' && value.state === 'started')) {
393
+ persisted = true;
394
+ store.flushRename();
395
+ }
396
+ // While a reconnect is renewing the credential, the old CLI's late
397
+ // failing turn is the failure being handled, not a new one.
398
+ if (auth.reconnecting === undefined && isAuthFailure(message))
399
+ authFailed = true;
400
+ if (value?.type === 'result') {
401
+ if (auth.reconnecting !== undefined) {
402
+ authFailed = false;
403
+ }
404
+ else if (authFailed) {
405
+ authFailed = false;
406
+ auth.onAuthFailure();
407
+ }
408
+ else if (value.is_error !== true) {
409
+ auth.attempts = 0;
410
+ }
411
+ // Forget pushes the CLI has started (only unstarted ones are kept).
412
+ const unstarted = new Set(translator.unstartedInputs());
413
+ for (const uuid of pushed.keys())
414
+ if (!unstarted.has(uuid))
415
+ pushed.delete(uuid);
416
+ }
417
+ for (const event of events) {
418
+ // Every confirmation of the model (a re-init's `model.changed`, the
419
+ // first init's `session.ready`, a `message_start` drift) re-checks
420
+ // the effort against what that model declares (controls.ts).
421
+ if ((event.type === 'model.changed' || event.type === 'session.ready') && event.model !== '') {
422
+ controls.noteConfirmedModel(event.model);
423
+ }
424
+ if (event.type !== 'session.ready' || event.backendVersion === undefined || cliVersion !== undefined)
425
+ continue;
426
+ cliVersion = event.backendVersion;
427
+ // Drift is reported, never a stop.
428
+ if (cliVersionDrift(cliVersion) !== undefined) {
429
+ emit([{ type: 'notice', level: 'warning', text: t('claude-version-drift', { version: cliVersion, validated: VALIDATED_CLI_VERSIONS.join(', ') }) }]);
430
+ }
431
+ }
432
+ };
433
+ /**
434
+ * Runs stopped on purpose ahead of their replacement (an auth-failure
435
+ * reconnect stops the old CLI before it renews the credential): their late
436
+ * messages are not the session's any more, and their end is not a loss.
437
+ */
438
+ const retired = new WeakSet();
439
+ /** Consume one run until it ends; an ended run that is no longer the
440
+ * current one was replaced on purpose (reconnect), not lost. */
441
+ const consume = (target) => (async () => {
442
+ try {
443
+ for await (const message of target.query) {
444
+ if (target !== run || retired.has(target))
445
+ return;
446
+ let events;
447
+ try {
448
+ events = translator.translate(message);
449
+ }
450
+ catch (error) {
451
+ // A translator bug must not take the session down with it.
452
+ deps.host.debug(`claude: translate failed (${errorText(error)})`);
453
+ continue;
454
+ }
455
+ for (const event of events) {
456
+ if (event.type === 'session.status' && event.status !== 'disposed' && !disposing)
457
+ status = event.status;
458
+ }
459
+ emit(events, wakeOf(message, events));
460
+ afterMessage(message, events);
461
+ if (idleWaiters.length > 0)
462
+ settleIdleWaiters();
463
+ }
464
+ if (target === run && !retired.has(target))
465
+ onExit(undefined);
466
+ }
467
+ catch (error) {
468
+ if (target === run && !retired.has(target))
469
+ onExit(error);
470
+ }
471
+ })();
472
+ /**
473
+ * Start a replacement run and complete its handshake. A session the CLI
474
+ * has persisted is resumed; one it has not is created again under the
475
+ * same id — and a resume the CLI answers with "No conversation found"
476
+ * falls back to that create.
477
+ */
478
+ const openRun = async () => {
479
+ const resume = persisted;
480
+ // The replacement becomes the current run at once, so the old run's
481
+ // consumer — ending as its CLI closes — knows it was replaced, not lost.
482
+ run = startRun(resume);
483
+ try {
484
+ await handshake(run);
485
+ }
486
+ catch (error) {
487
+ // A dispose during the handshake must not spawn the fallback: nothing
488
+ // would ever stop it.
489
+ if (disposing || !resume || !NO_CONVERSATION.test(errorText(error)))
490
+ throw error;
491
+ deps.host.debug(`claude: resume refused (${errorText(error)}); creating the session again`);
492
+ stopRun(run);
493
+ run = startRun(false);
494
+ await handshake(run);
495
+ }
496
+ };
497
+ /** Withdraw the old CLI's prompts, close its turn, stop it; what it never
498
+ * started is re-pushed to the replacement. */
499
+ const stopForReconnect = () => {
500
+ const previous = run;
501
+ bridge.settleAll(WITHDRAWN_MESSAGE);
502
+ dialogs.settleAll();
503
+ clearForceTimer();
504
+ emit(translator.forceCloseTurn({ kind: 'aborted' }));
505
+ const unstarted = translator.unstartedInputs();
506
+ retired.add(previous);
507
+ stopRun(previous);
508
+ return { unstarted };
509
+ };
510
+ const auth = createSessionAuth({
511
+ deps,
512
+ clock,
513
+ translator,
514
+ pushed,
515
+ idleWaiters,
516
+ idle,
517
+ stopForReconnect,
518
+ openRun,
519
+ emit,
520
+ consume,
521
+ onExit,
522
+ stopRun,
523
+ get run() { return run; },
524
+ get disposing() { return disposing; },
525
+ get authPlan() { return authPlan; },
526
+ set authPlan(value) { authPlan = value; },
527
+ get account() { return account; },
528
+ get apiKeySource() { return apiKeySource; },
529
+ });
530
+ const controls = createSessionControls({
531
+ deps,
532
+ prefs,
533
+ channels,
534
+ channelTokens,
535
+ translator,
536
+ configDir,
537
+ emit,
538
+ get run() { return run; },
539
+ get authPlan() { return authPlan; },
540
+ get session() { return session; },
541
+ });
542
+ try {
543
+ const init = await handshake(run);
544
+ controls.seed(init);
545
+ // The model the session opened with is confirmed too (a resumed
546
+ // session's replay model is never re-announced by a frame): with the
547
+ // catalog seeded, the effort readout is checked before any UI asks.
548
+ controls.noteConfirmedModel(translator.model);
549
+ }
550
+ catch (error) {
551
+ disposing = true;
552
+ teardown();
553
+ throw error;
554
+ }
555
+ status = 'idle';
556
+ for (const text of deps.startNotices ?? [])
557
+ emit([{ type: 'notice', level: 'warning', text }]);
558
+ // The start mode is the session's first mode (the CLI confirms it with its
559
+ // first `init`); the status line shows it from the start.
560
+ emit([{ type: 'mode.changed', modeId: translator.mode ?? deps.start.mode }], 'none');
561
+ // The remembered effort level, same way: the CLI reports none back, so the
562
+ // status line's effort readout would stay empty until the first /effort
563
+ // switch without this seed.
564
+ const seedEffort = prefs.read().effort ?? deps.effort;
565
+ if (seedEffort !== undefined)
566
+ emit([{ type: 'effort.changed', effort: seedEffort }], 'none');
567
+ // The session's `/color` accent (kept TUI-side per session id).
568
+ const startColor = prefs.color(currentSessionId);
569
+ if (startColor !== '')
570
+ emit([{ type: 'session.color', color: startColor }]);
571
+ run.consumer = consume(run);
572
+ // A resumed transcript does not record the context window: ask the CLI
573
+ // once, so the status line has it before the first `result`.
574
+ if (resumed) {
575
+ const query = run.query;
576
+ if (typeof query.getContextUsage === 'function') {
577
+ void query.getContextUsage({ detail: 'summary' }).then(usage => {
578
+ if (disposing || !Number.isFinite(usage.maxTokens) || usage.maxTokens <= 0)
579
+ return;
580
+ emit([{ type: 'context.capacity', contextWindow: usage.maxTokens }]);
581
+ }, (error) => {
582
+ deps.host.debug(`claude: context usage after resume failed (${errorText(error)})`);
583
+ });
584
+ }
585
+ }
586
+ const session = {
587
+ ref: ownRef,
588
+ cwd: deps.cwd,
589
+ get status() {
590
+ if (status === 'disposed')
591
+ return 'disposed';
592
+ if (bridge.size > 0 || dialogs.size > 0)
593
+ return 'requires-action';
594
+ return translator.turnOpen ? 'running' : status;
595
+ },
596
+ capabilities: {
597
+ native: {},
598
+ permissions: {
599
+ respond: (requestId, decision) => bridge.respond(requestId, decision),
600
+ pending: () => bridge.pendingViews(),
601
+ },
602
+ questions: {
603
+ respond: (requestId, answers) => {
604
+ if (dialogs.owns(requestId))
605
+ dialogs.respond(requestId, answers);
606
+ else
607
+ bridge.respondQuestion(requestId, answers);
608
+ },
609
+ cancel: requestId => {
610
+ if (dialogs.owns(requestId))
611
+ dialogs.cancel(requestId);
612
+ else
613
+ bridge.cancelQuestion(requestId);
614
+ },
615
+ },
616
+ ...controls.capabilities,
617
+ ...store.sessionStoreCapabilities(),
618
+ sideQuery: createClaudeSideQuery({
619
+ sdk: deps.sdk,
620
+ cwd: deps.cwd,
621
+ sessionId: () => currentSessionId,
622
+ persisted: () => persisted,
623
+ model: () => translator.model,
624
+ spawn: () => ({ env: authPlan.env, ...(authPlan.settings === undefined ? {} : { settings: authPlan.settings }), executable: deps.executable.path }),
625
+ debug: deps.host.debug,
626
+ }),
627
+ ...store.renameCapability(),
628
+ // Images go in the message itself (base64 blocks), staged by the
629
+ // channel under these limits (images.ts).
630
+ images: { limits: CLAUDE_IMAGE_LIMITS },
631
+ color: {
632
+ current: () => prefs.color(currentSessionId),
633
+ set(color) {
634
+ prefs.setColor(currentSessionId, color);
635
+ emit([{ type: 'session.color', color }]);
636
+ },
637
+ },
638
+ ...sessionTaskCapabilities({
639
+ deps,
640
+ translator,
641
+ get run() { return run; },
642
+ get disposing() { return disposing; },
643
+ get currentSessionId() { return currentSessionId; },
644
+ get authPlan() { return authPlan; },
645
+ }),
646
+ transcript: createClaudeTranscriptHistory({
647
+ sessionId: () => currentSessionId,
648
+ cwd: deps.cwd,
649
+ configDir,
650
+ ...(compactedFrom === undefined ? {} : { compactedFrom }),
651
+ debug: deps.host.debug,
652
+ }),
653
+ account: {
654
+ async info() {
655
+ const query = run.query;
656
+ if (typeof query.accountInfo === 'function')
657
+ account = await query.accountInfo();
658
+ return accountView(account ?? {}, apiKeySource);
659
+ },
660
+ },
661
+ auth: {
662
+ oauthProvider: CLAUDE_OAUTH_PROVIDER,
663
+ status: auth.authStatus,
664
+ async reconnect() {
665
+ auth.attempts = 0;
666
+ // Never under a running turn: the restart would abort it and drop
667
+ // what the user queued behind it. Reconnect once it ends.
668
+ if (!idle())
669
+ emit([{ type: 'notice', level: 'info', text: t('claude-auth-reconnect-deferred') }]);
670
+ await auth.reconnect({}, { waitIdle: true });
671
+ },
672
+ },
673
+ // The working-activity line this backend folds itself (activity.ts):
674
+ // the channel subscribes per binding and forwards into the store the
675
+ // DSH projection feed fills, so the UI's working line stays
676
+ // backend-neutral. A late subscriber receives the latest value once —
677
+ // a rebind shows the running line without waiting for a change.
678
+ workingActivity: {
679
+ subscribe(listener) {
680
+ return activityPublisher.subscribe(view => {
681
+ try {
682
+ listener(view);
683
+ }
684
+ catch (error) {
685
+ deps.host.debug(`claude: activity listener failed (${errorText(error)})`);
686
+ }
687
+ });
688
+ },
689
+ },
690
+ diagnostics: {
691
+ lines: () => [
692
+ t('claude-doctor-cli', { path: deps.executable.path ?? t('claude-doctor-bundled'), source: deps.executable.source, version: cliVersion ?? t('doctor-unknown') }),
693
+ ...(cliVersionDrift(cliVersion) === undefined ? [] : [t('claude-version-drift', { version: cliVersion ?? '', validated: VALIDATED_CLI_VERSIONS.join(', ') })]),
694
+ t('claude-doctor-sdk', { version: deps.sdkVersion ?? t('doctor-unknown'), validated: VALIDATED_SDK_VERSION }),
695
+ t('claude-doctor-mode', { mode: translator.mode ?? deps.start.mode, source: deps.start.source }),
696
+ t('claude-auth-source', { source: authSourceLabel(authPlan) }),
697
+ ...(account === undefined ? [] : accountLines(accountView(account, apiKeySource))),
698
+ ],
699
+ },
700
+ },
701
+ // A created session has no durable history yet; a resumed one replays
702
+ // the transcript read before the CLI started (backend.ts).
703
+ // Handed over once: the channel paints it at adoption and never asks
704
+ // again (a later call has nothing to repaint from memory).
705
+ history: () => {
706
+ const events = replayHistory ?? [];
707
+ replayHistory = undefined;
708
+ return Promise.resolve(events);
709
+ },
710
+ subscribe(listener) {
711
+ listeners.add(listener);
712
+ if (backlog.length > 0) {
713
+ // Delivered after the subscriber's own setup returns (it may be
714
+ // inside a binding transaction).
715
+ queueMicrotask(() => {
716
+ if (!listeners.has(listener))
717
+ return;
718
+ for (const [events, meta] of backlog.splice(0))
719
+ listener(events, meta);
720
+ });
721
+ }
722
+ return () => { listeners.delete(listener); };
723
+ },
724
+ async submit(input, placement) {
725
+ // A credential reconnect is swapping the CLI: the input goes to the
726
+ // new one (the old one's stdin is closed). A `/login` reconnect still
727
+ // waiting for the session to go idle leaves the old CLI serving.
728
+ if (auth.reconnecting !== undefined && !auth.reconnectDeferred)
729
+ await auth.reconnecting.catch(() => undefined);
730
+ if (disposing || run.inbox.closed)
731
+ throw new Error(t('claude-session-closed'));
732
+ // Pasted images and `@image` mentions arrive as image blocks with their
733
+ // staged facades (`input.images`, block order): each is read back and
734
+ // sent as a base64 block after the text. An image block without its
735
+ // facade (dropped from memory meanwhile) refuses the message — never
736
+ // the text without part of it.
737
+ const imageBlocks = (input.blocks ?? []).filter(block => block.type === 'image').length;
738
+ const staged = input.images ?? [];
739
+ if (imageBlocks > staged.length)
740
+ throw new Error(t('claude-image-unreadable', { name: `#${staged.length + 1}`, err: t('claude-image-gone') }));
741
+ const images = staged.length === 0 ? [] : await claudeImageBlocks(staged);
742
+ // An auth-failure reconnect may have started during the read (this
743
+ // run's inbox is then closed until the replacement is up): wait for
744
+ // it again before judging. A deferred `/login` reconnect is not waited
745
+ // for; the old CLI keeps serving until it swaps.
746
+ if (auth.reconnecting !== undefined && !auth.reconnectDeferred)
747
+ await auth.reconnecting.catch(() => undefined);
748
+ if (disposing || run.inbox.closed)
749
+ throw new Error(t('claude-session-closed'));
750
+ const texts = (input.blocks ?? [{ type: 'text', text: input.text }])
751
+ .flatMap(block => block.type === 'text' && typeof block.text === 'string' && block.text !== '' ? [block.text] : []);
752
+ const content = images.length === 0 && texts.length <= 1
753
+ ? texts[0] ?? input.text
754
+ : [...texts.map(text => ({ type: 'text', text })), ...images];
755
+ const priority = priorityOf(placement, translator.turnOpen);
756
+ translator.registerInput(input.clientMessageId, input.text, placement, staged);
757
+ const message = {
758
+ type: 'user',
759
+ message: { role: 'user', content },
760
+ parent_tool_use_id: null,
761
+ uuid: input.clientMessageId,
762
+ ...(priority === undefined ? {} : { priority }),
763
+ };
764
+ try {
765
+ run.inbox.push(message);
766
+ }
767
+ catch (error) {
768
+ translator.unregisterInput(input.clientMessageId);
769
+ throw error instanceof Error ? error : new Error(String(error));
770
+ }
771
+ pushed.set(input.clientMessageId, message);
772
+ return { accepted: true };
773
+ },
774
+ async cancel(cause) {
775
+ // The session is going away; nothing queues behind a disposed CLI.
776
+ if (disposing)
777
+ return { stillQueued: [], outcome: 'unknown' };
778
+ if (translator.turnOpen && forceTimer === undefined) {
779
+ forceTimer = clock.setTimeout(() => {
780
+ forceTimer = undefined;
781
+ if (disposing || !translator.turnOpen)
782
+ return;
783
+ // The CLI never withdrew its prompts either: close the panels too.
784
+ bridge.settleAll(WITHDRAWN_MESSAGE);
785
+ dialogs.settleAll();
786
+ emit([
787
+ ...translator.forceCloseTurn({ kind: 'aborted' }),
788
+ { type: 'notice', level: 'warning', text: t('claude-cancel-forced') },
789
+ { type: 'session.status', status: 'requires-action' },
790
+ ]);
791
+ settleIdleWaiters();
792
+ }, forceSettleMs);
793
+ }
794
+ // An `interrupt` parks the queue in the channel (the dock) instead of
795
+ // re-delivering it, so the queued inputs go with the turn when the CLI
796
+ // can drop them; a user cancel keeps them (they run as the next turn).
797
+ // A CLI without the capability keeps its queue and runs it — the
798
+ // cancel receipt's `still_queued` tells the channel, which un-docks.
799
+ translator.clearInterruptedCalls();
800
+ const cancelQueued = cause !== 'user' && cliCapabilities.includes(CLI_CAPABILITY.interruptCancelQueued);
801
+ // The queued inputs this cancel covers, taken before the request (an
802
+ // input pushed meanwhile belongs to a newer batch). Without a
803
+ // `still_queued` answer they are reported as still queued: a failed
804
+ // or answerless interrupt must not read as an empty queue, or the
805
+ // dock would offer to re-send inputs the CLI still holds.
806
+ const covered = translator.pendingInputs();
807
+ // The documented `cancel_queued` interrupt field is reachable through
808
+ // the runtime method's option bag (absent from the TS signature).
809
+ const query = run.query;
810
+ const interrupt = query.interrupt;
811
+ try {
812
+ const receipt = rec(await interrupt.call(query, cancelQueued ? { cancelQueued: true } : undefined));
813
+ if (Array.isArray(receipt?.still_queued)) {
814
+ // The receipt's `still_queued` is the CLI's live queue snapshot:
815
+ // exactly the uuids that will still run (sdk.d.ts).
816
+ const stillQueued = receipt.still_queued.filter((id) => typeof id === 'string');
817
+ return { stillQueued, outcome: 'confirmed' };
818
+ }
819
+ // An older CLI resolves interrupt() to undefined (sdk.d.ts): no
820
+ // snapshot came back, nothing is confirmed deleted.
821
+ return { stillQueued: covered, outcome: 'unknown' };
822
+ }
823
+ catch (error) {
824
+ deps.host.debug(`claude: interrupt failed (${errorText(error)})`);
825
+ return { stillQueued: covered, outcome: 'failed' };
826
+ }
827
+ },
828
+ dispose() {
829
+ if (disposePromise !== undefined)
830
+ return disposePromise;
831
+ disposePromise = (async () => {
832
+ const wasDisposed = status === 'disposed';
833
+ disposing = true;
834
+ status = 'disposed';
835
+ teardown();
836
+ let timer;
837
+ await Promise.race([
838
+ run.consumer,
839
+ new Promise(resolve => { timer = clock.setTimeout(resolve, deps.closeTimeoutMs ?? 5000); }),
840
+ ]);
841
+ clock.clearTimeout(timer);
842
+ if (!wasDisposed)
843
+ emit([{ type: 'session.status', status: 'disposed' }], 'none', true);
844
+ settleIdleWaiters(new Error(t('claude-session-closed')));
845
+ listeners.clear();
846
+ backlog.length = 0;
847
+ })();
848
+ return disposePromise;
849
+ },
850
+ };
851
+ return session;
852
+ }