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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -7,6 +7,12 @@ import { fileURLToPath } from 'node:url';
7
7
  import { gte, gt, lt, valid } from 'semver';
8
8
  import { shellQuote } from './utils/shellQuote.js';
9
9
  import { DATA_DIR } from './utils/paths.js';
10
+ import { stripResumeArgs } from './sessionHistory.js';
11
+ import { KERNEL_SWITCH_HANDOFF_ENV, isKernelId, kernelDisplayName } from './kernelPrefs.js';
12
+ import { classifyReplacementOutcome, formatHandoffNotice, handoffEventTag, writeHandoffStage } from './handoffEvents.js';
13
+ import { HANDOFF_ACK_FD_ENV, HANDOFF_ATTEMPT_ENV, HANDOFF_SCREEN_ENV, parseHandoffAckLine } from './handoffAck.js';
14
+ import { DISABLE_KITTY_KEYBOARD, DISABLE_MODIFY_OTHER_KEYS, DISABLE_WIN32_INPUT_MODE } from './ink/termio/csi.js';
15
+ import { DBP, DFE, DISABLE_MOUSE_TRACKING, EXIT_ALT_SCREEN, SHOW_CURSOR } from './ink/termio/dec.js';
10
16
  // Re-exported for scripts/verify-update.mjs and the bin launcher, which reads
11
17
  // the compiled copy at lib/types/utils/shellQuote.js.
12
18
  export { shellQuote };
@@ -62,6 +68,75 @@ function writeRestartLine(line) {
62
68
  export function logRestartEvent(event, data) {
63
69
  writeRestartLine(`${event}${data === undefined ? '' : ` ${JSON.stringify(data)}`}`);
64
70
  }
71
+ const LAST_RUN_FILE = join(DATA_DIR, 'last-run.json');
72
+ /** Windows rename retry cell (kernelPrefs writeKernelPrefs precedent). */
73
+ const lastRunWaitCell = new Int32Array(new SharedArrayBuffer(4));
74
+ /**
75
+ * Stamp the last-run record atomically (tmp + rename, so the launcher's read
76
+ * never sees half a file). Best effort, never throws: a failed stamp only
77
+ * degrades the launcher's retry to its legacy sniffing path.
78
+ * @param record - Identity without updatedAt (stamped here, one clock).
79
+ * @param file - Path override (verify scripts point at a temp dir).
80
+ */
81
+ export function writeLastRunRecord(record, file = LAST_RUN_FILE) {
82
+ const temporary = join(dirname(file), `.last-run.${process.pid}.${Date.now()}.tmp`);
83
+ try {
84
+ mkdirSync(dirname(file), { recursive: true });
85
+ const updatedAt = Date.now();
86
+ writeFileSync(temporary, `${JSON.stringify({ ...record, updatedAt }, null, 2)}\n`, { encoding: 'utf8', flag: 'wx', mode: 0o600 });
87
+ for (let attempt = 0;; attempt++) {
88
+ try {
89
+ renameSync(temporary, file);
90
+ return;
91
+ }
92
+ catch (error) {
93
+ const code = typeof error === 'object' && error !== null ? String(error.code) : '';
94
+ if (process.platform !== 'win32' || attempt >= 7 || (code !== 'EPERM' && code !== 'EBUSY'))
95
+ throw error;
96
+ Atomics.wait(lastRunWaitCell, 0, 0, 2 ** attempt);
97
+ }
98
+ }
99
+ }
100
+ catch (error) {
101
+ try {
102
+ rmSync(temporary, { force: true });
103
+ }
104
+ catch {
105
+ // The previous record stays; no safe remedy.
106
+ }
107
+ writeRestartLine(`last-run record write failed (${error instanceof Error ? error.message : String(error)})`);
108
+ }
109
+ }
110
+ /**
111
+ * Read the last-run record; unreadable/invalid/missing yields undefined (the
112
+ * caller falls back to its legacy behavior). Never throws.
113
+ * @param file - Path override (verify scripts point at a temp dir).
114
+ */
115
+ export function readLastRunRecord(file = LAST_RUN_FILE) {
116
+ try {
117
+ const parsed = JSON.parse(readFileSync(file, 'utf8'));
118
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
119
+ return undefined;
120
+ const record = parsed;
121
+ if (!isKernelId(record.backendId))
122
+ return undefined;
123
+ if (typeof record.sessionId !== 'string' || typeof record.cwd !== 'string' || typeof record.attemptId !== 'string')
124
+ return undefined;
125
+ if (typeof record.updatedAt !== 'number' || !Number.isFinite(record.updatedAt))
126
+ return undefined;
127
+ return {
128
+ backendId: record.backendId,
129
+ sessionId: record.sessionId,
130
+ cwd: record.cwd,
131
+ attemptId: record.attemptId,
132
+ updatedAt: record.updatedAt,
133
+ ...(typeof record.pid === 'number' ? { pid: record.pid } : {}),
134
+ };
135
+ }
136
+ catch {
137
+ return undefined;
138
+ }
139
+ }
65
140
  /** Start a fresh, clearly delimited /restart attempt block in the log. */
66
141
  export function beginRestartAttempt(sessionId) {
67
142
  try {
@@ -94,6 +169,30 @@ export function writeHandoffNotice(text) {
94
169
  process.stderr.write(text);
95
170
  }
96
171
  }
172
+ /**
173
+ * Hand the terminal back after a kernel-switch replacement that cannot clean
174
+ * up after itself: one that died before its first frame (this process still
175
+ * holds the alternate screen) or one killed by a signal. Besides leaving the
176
+ * alternate screen it turns off the input modes the replacement may already
177
+ * have enabled; each reset is harmless if the mode was never on. Written
178
+ * synchronously to fd 1 so the failure notice that follows lands on the main
179
+ * screen.
180
+ */
181
+ export function restoreHandoffScreen() {
182
+ const reset = DISABLE_MOUSE_TRACKING + DISABLE_MODIFY_OTHER_KEYS + DISABLE_KITTY_KEYBOARD
183
+ + DISABLE_WIN32_INPUT_MODE + DFE + DBP + SHOW_CURSOR + EXIT_ALT_SCREEN + '\r\n';
184
+ try {
185
+ writeFileSync(1, reset);
186
+ }
187
+ catch {
188
+ try {
189
+ process.stdout.write(reset);
190
+ }
191
+ catch {
192
+ // Even a dead stdout must not block the exit path.
193
+ }
194
+ }
195
+ }
97
196
  /** Read the version from either the compiled package or the source checkout. */
98
197
  export function installedTuiVersion() {
99
198
  const here = dirname(fileURLToPath(import.meta.url));
@@ -1579,9 +1678,10 @@ export async function updateTui(profile, targetVersion) {
1579
1678
  * other profile would leave the running install untouched.
1580
1679
  * @param targetVersion - Exact version returned by the preflight registry
1581
1680
  * check, or undefined when that check failed and pnpm should resolve latest.
1681
+ * @param kernel - The kernel this process runs (TuiRestartOptions.kernel).
1582
1682
  * @returns Exit codes for the update run and the replacement process.
1583
1683
  */
1584
- export async function updateTuiAndRestart(sessionId, profile, targetVersion) {
1684
+ export async function updateTuiAndRestart(sessionId, profile, targetVersion, kernel) {
1585
1685
  const outcome = await updateTui(profile, targetVersion);
1586
1686
  const { updatedFrom } = outcome;
1587
1687
  if (outcome.code !== 0)
@@ -1596,6 +1696,7 @@ export async function updateTuiAndRestart(sessionId, profile, targetVersion) {
1596
1696
  const restartCode = await restartTui(sessionId, {
1597
1697
  env: { [UPDATED_FROM_ENV]: updatedFrom },
1598
1698
  kind: 'update',
1699
+ ...(kernel === undefined ? {} : { kernel }),
1599
1700
  });
1600
1701
  return { updateCode: 0, restartCode };
1601
1702
  }
@@ -1688,10 +1789,58 @@ export function detachHandoffStdin(stdin = process.stdin) {
1688
1789
  stdin.pause();
1689
1790
  stdin.unref();
1690
1791
  }
1792
+ /**
1793
+ * The replacement's env, pure: the resume marker, the /restart child stamp,
1794
+ * the caller's extra markers and the kernel-switch overrides. Exported for
1795
+ * scripts/verify-launchpad, which feeds it through the boot resolver.
1796
+ */
1797
+ export function restartChildEnv(parentEnv, sessionId, kind, options) {
1798
+ const childEnv = {
1799
+ ...parentEnv,
1800
+ // The replacement resumes the current session through the launcher
1801
+ // contract (DSH_TUI_RESUME_SESSION; see src/sessionHistory.ts).
1802
+ DSH_TUI_RESUME_SESSION: sessionId,
1803
+ // Marks the replacement so its own boot logs to restart.log without
1804
+ // noisy logging on every ordinary launch (/restart only).
1805
+ ...(kind === 'restart' ? { [RESTART_CHILD_ENV]: '1' } : {}),
1806
+ ...options.env,
1807
+ };
1808
+ // A stale handoff override never leaks into a plain replacement: the var is
1809
+ // one-shot (consumed at this process's own boot), and a child that is NOT
1810
+ // switching kernels keeps this process's kernel by config/env/memory as
1811
+ // usual.
1812
+ delete childEnv[KERNEL_SWITCH_HANDOFF_ENV];
1813
+ // Same for the alt-screen handoff markers: a replacement must not adopt a
1814
+ // screen or ACK pipe from an earlier attempt. restartTui sets them again
1815
+ // when it opens a handoff.
1816
+ delete childEnv[HANDOFF_SCREEN_ENV];
1817
+ delete childEnv[HANDOFF_ACK_FD_ENV];
1818
+ delete childEnv[HANDOFF_ATTEMPT_ENV];
1819
+ if (options.backend === undefined && options.kernel !== undefined)
1820
+ childEnv[KERNEL_SWITCH_HANDOFF_ENV] = options.kernel;
1821
+ if (options.backend !== undefined) {
1822
+ childEnv.DSH_TUI_BACKEND = options.backend;
1823
+ // DSH_TUI_BACKEND alone loses to a Config row (config > env > memory),
1824
+ // so the switch also sets the one-shot variable that ranks above config.
1825
+ childEnv[KERNEL_SWITCH_HANDOFF_ENV] = options.backend;
1826
+ // A kernel switch never resumes: the id of THIS backend's session means
1827
+ // nothing to the next one, and an inherited marker (this process may
1828
+ // itself be a /restart child) would send the new kernel looking for it —
1829
+ // deleted outright, not blanked (the launcher row maps '' to
1830
+ // config.sessionId='', not to "absent").
1831
+ delete childEnv.DSH_TUI_RESUME_SESSION;
1832
+ }
1833
+ return childEnv;
1834
+ }
1691
1835
  export async function restartTui(sessionId, options = {}) {
1692
1836
  const kind = options.kind ?? 'restart';
1693
- const tag = kind === 'update' ? 'update-restart' : 'restart';
1694
- const argv = [...process.execArgv, ...process.argv.slice(1)];
1837
+ const tag = options.backend !== undefined ? 'backend-switch' : kind === 'update' ? 'update-restart' : 'restart';
1838
+ // A kernel switch must not hand the replacement THIS kernel's resume
1839
+ // flags: an inherited `--resume <id>` in argv would send the new kernel
1840
+ // looking for a session that belongs to the kernel it just left — the
1841
+ // same reason DSH_TUI_RESUME_SESSION is deleted below.
1842
+ const appArgs = process.argv.slice(1);
1843
+ const argv = [...process.execArgv, ...(options.backend === undefined ? appArgs : stripResumeArgs(appArgs))];
1695
1844
  logRestartEvent(`${tag}: spawning replacement`, {
1696
1845
  node: process.execPath,
1697
1846
  argv,
@@ -1703,25 +1852,84 @@ export async function restartTui(sessionId, options = {}) {
1703
1852
  dshHome: process.env.DSH_HOME ?? null,
1704
1853
  });
1705
1854
  const startedAt = Date.now();
1855
+ // Fullscreen kernel switch: keep the alternate screen until the replacement
1856
+ // reports its first flushed frame on the ACK pipe (see handoffScreen).
1857
+ const handoff = options.handoffScreen === 'alt' && options.backend !== undefined;
1858
+ const attemptId = handoff ? 'hs-' + Date.now().toString(16) + '-' + Math.random().toString(16).slice(2, 8) : undefined;
1859
+ // Ctrl+C while the replacement boots reaches this process too: same process
1860
+ // group, and nothing has the terminal in raw mode yet. Dying here would
1861
+ // leave behind the alternate screen this process still holds; the
1862
+ // replacement gets the same signal, and its close below restores the screen.
1863
+ const ignoreInterrupt = () => { };
1864
+ if (handoff)
1865
+ process.on('SIGINT', ignoreInterrupt);
1866
+ // "Starting X…" goes out before the spawn, waiting for the write callback
1867
+ // so it lands before the replacement draws anything.
1868
+ if (options.backend !== undefined) {
1869
+ await writeHandoffStage(process.stdout, formatHandoffNotice('stage-start', { name: kernelDisplayName(options.backend), color: process.stdout.isTTY === true }) + '\n');
1870
+ logRestartEvent(handoffEventTag('stage-start'), { backend: options.backend, ...(attemptId === undefined ? {} : { attemptId }) });
1871
+ }
1706
1872
  return new Promise(resolve => {
1873
+ const childEnv = restartChildEnv(process.env, sessionId, kind, options);
1874
+ if (handoff) {
1875
+ // stdio[3] is the ACK pipe; the env tells the replacement its fd and the attempt id.
1876
+ childEnv[HANDOFF_SCREEN_ENV] = 'alt';
1877
+ childEnv[HANDOFF_ACK_FD_ENV] = '3';
1878
+ childEnv[HANDOFF_ATTEMPT_ENV] = attemptId;
1879
+ logRestartEvent('handoff: alt-screen bracket held for the replacement', { attemptId });
1880
+ }
1707
1881
  const child = spawn(process.execPath, argv, {
1708
- env: {
1709
- ...process.env,
1710
- // The replacement resumes the current session through the launcher
1711
- // contract (DSH_TUI_RESUME_SESSION; see src/sessionHistory.ts).
1712
- DSH_TUI_RESUME_SESSION: sessionId,
1713
- // Marks the replacement so its own boot logs to restart.log without
1714
- // noisy logging on every ordinary launch (/restart only).
1715
- ...(kind === 'restart' ? { [RESTART_CHILD_ENV]: '1' } : {}),
1716
- ...options.env,
1717
- },
1882
+ env: childEnv,
1718
1883
  // stdin/stdout stay inherited so the replacement owns the console the
1719
1884
  // moment it boots; stderr is captured so a boot failure is reportable
1720
1885
  // through THIS process (the terminal may already be mid-handoff when
1721
- // the child dies, and a raw inherit write can vanish).
1722
- stdio: ['inherit', 'inherit', 'pipe'],
1886
+ // the child dies, and a raw inherit write can vanish). fd 3 is the
1887
+ // one-way ACK pipe (replacement → supervisor): adopted / first frame.
1888
+ stdio: handoff ? ['inherit', 'inherit', 'pipe', 'pipe'] : ['inherit', 'inherit', 'pipe'],
1723
1889
  });
1724
- logRestartEvent(`${tag}: replacement spawned`, { childPid: child.pid });
1890
+ let ackAdoptedAt;
1891
+ let ackReadyAt;
1892
+ const ackStream = handoff ? (child.stdio[3] ?? undefined) : undefined;
1893
+ if (ackStream !== undefined) {
1894
+ ackStream.setEncoding('utf8');
1895
+ let pending = '';
1896
+ ackStream.on('data', (chunk) => {
1897
+ pending += chunk;
1898
+ for (;;) {
1899
+ const newline = pending.indexOf('\n');
1900
+ if (newline < 0)
1901
+ break;
1902
+ const line = pending.slice(0, newline);
1903
+ pending = pending.slice(newline + 1);
1904
+ const ack = parseHandoffAckLine(line);
1905
+ if (ack === null || ack.attemptId !== attemptId)
1906
+ continue;
1907
+ if (ack.kind === 'adopted' && ackAdoptedAt === undefined) {
1908
+ ackAdoptedAt = Date.now();
1909
+ logRestartEvent('handoff/screen-adopted', { attemptId, backend: options.backend });
1910
+ }
1911
+ if (ack.kind === 'ready' && ackReadyAt === undefined) {
1912
+ ackReadyAt = Date.now();
1913
+ // ready means the replacement's first frame was flushed, not just
1914
+ // that it mounted or is still alive.
1915
+ logRestartEvent(handoffEventTag('first-frame'), { attemptId, backend: options.backend, elapsedMs: ackReadyAt - startedAt });
1916
+ }
1917
+ }
1918
+ });
1919
+ ackStream.on('error', () => {
1920
+ // The supervisor outlives the pipe by contract; a broken pipe here
1921
+ // means the replacement never speaks the protocol (e.g. an older
1922
+ // build) — the close handler's no-ready branch still restores the
1923
+ // screen, so the bracket can never be orphaned.
1924
+ });
1925
+ const ackWatch = setTimeout(() => {
1926
+ if (ackReadyAt === undefined) {
1927
+ logRestartEvent('handoff/first-frame watch', { attemptId, note: 'no first-frame ACK within 30s (diagnosis only, never a success/failure fact)' });
1928
+ }
1929
+ }, 30000);
1930
+ ackWatch.unref();
1931
+ }
1932
+ logRestartEvent(`${tag}: replacement spawned`, { childPid: child.pid, ...(options.backend === undefined ? {} : { backend: options.backend }) });
1725
1933
  // Handoff watchdog (field evidence 2026-08-24: restarted TUI mounts but
1726
1934
  // takes no input). Two jobs, both diagnosis-grade:
1727
1935
  // 1. SAMPLE this process's stdin state every second — if anything
@@ -1777,19 +1985,78 @@ export async function restartTui(sessionId, options = {}) {
1777
1985
  timer.unref();
1778
1986
  child.once('error', error => {
1779
1987
  clearTimeout(timer);
1988
+ process.removeListener('SIGINT', ignoreInterrupt);
1780
1989
  logRestartEvent(`${tag}: spawn error`, { message: error.message });
1781
- writeHandoffNotice(`dsh-tui: failed to spawn the restart: ${error.message}\n`);
1990
+ if (options.backend !== undefined) {
1991
+ // Nothing took the screen over: restore it before the notice.
1992
+ if (handoff)
1993
+ restoreHandoffScreen();
1994
+ // A spawn failure is a failed switch (yellow, with the safe-mode hint),
1995
+ // not a crash.
1996
+ logRestartEvent(handoffEventTag('failed'), { reason: 'spawn-error', message: error.message });
1997
+ writeHandoffNotice(formatHandoffNotice('failed', {
1998
+ name: kernelDisplayName(options.backend),
1999
+ reason: 'spawn-error',
2000
+ safeHint: true,
2001
+ color: process.stderr.isTTY === true,
2002
+ }) + `\n${error.message}\n`);
2003
+ }
2004
+ else {
2005
+ writeHandoffNotice(`dsh-tui: failed to spawn the restart: ${error.message}\n`);
2006
+ }
1782
2007
  resolve(127);
1783
2008
  });
1784
2009
  child.once('close', (code, signal) => {
1785
2010
  clearTimeout(timer);
2011
+ process.removeListener('SIGINT', ignoreInterrupt);
1786
2012
  const elapsedMs = Date.now() - startedAt;
1787
2013
  logRestartEvent(`${tag}: replacement exited`, {
1788
2014
  code: code ?? null,
1789
2015
  signal: signal ?? null,
1790
2016
  elapsedMs,
1791
2017
  });
1792
- if (elapsedMs < 4000) {
2018
+ if (options.backend !== undefined) {
2019
+ // Kernel switch outcome: success is quiet (restart.log only), a
2020
+ // replacement that never came up is a yellow failure with the session
2021
+ // kept and the safe-mode hint, and a later nonzero exit is a red
2022
+ // crash. With the ACK pipe the first frame decides which of the two
2023
+ // failures it was; see classifyReplacementOutcome.
2024
+ const outcome = classifyReplacementOutcome({
2025
+ closed: true, code, signal, elapsedMs,
2026
+ ...(handoff ? { firstFrameAcked: ackReadyAt !== undefined } : {}),
2027
+ });
2028
+ logRestartEvent(handoffEventTag(outcome.kind), {
2029
+ ...(outcome.kind === 'crashed' ? { code: outcome.code } : outcome.kind === 'failed' ? { reason: outcome.reason } : {}),
2030
+ ...(attemptId === undefined ? {} : { attemptId }),
2031
+ });
2032
+ if (outcome.kind === 'failed') {
2033
+ // Before ready this process still holds the alternate screen:
2034
+ // restore it first so the notice lands on the main screen. After
2035
+ // ready the replacement's own exit cleanup closed it.
2036
+ if (handoff && ackReadyAt === undefined)
2037
+ restoreHandoffScreen();
2038
+ const suffix = childStderr.trim() === '' ? '' : `\n${childStderr.trimEnd()}`;
2039
+ writeHandoffNotice(formatHandoffNotice('failed', {
2040
+ name: kernelDisplayName(options.backend),
2041
+ reason: outcome.reason,
2042
+ safeHint: true,
2043
+ color: process.stderr.isTTY === true,
2044
+ }) + `${suffix}\n`);
2045
+ }
2046
+ else if (outcome.kind === 'crashed') {
2047
+ // A signal death after the first frame skipped the replacement's
2048
+ // own exit cleanup, so the screen and input modes are still its.
2049
+ if (handoff && signal !== null)
2050
+ restoreHandoffScreen();
2051
+ writeHandoffNotice('\n' + formatHandoffNotice('crashed', {
2052
+ name: kernelDisplayName(options.backend),
2053
+ code: outcome.code,
2054
+ safeHint: true,
2055
+ color: process.stderr.isTTY === true,
2056
+ }) + '\n');
2057
+ }
2058
+ }
2059
+ else if (elapsedMs < 4000) {
1793
2060
  // Fast death: the TUI never came up. Synchronous stderr write —
1794
2061
  // process.exit() right after an async stream write skips the flush,
1795
2062
  // and a vanished diagnosis is indistinguishable from silent failure.
@@ -0,0 +1,56 @@
1
+ /** One serialized level: the crash itself or a link of its `.cause` chain. */
2
+ export interface CrashDetailLevel {
3
+ /** Constructor name (`TypeError`), or the JS typeof for non-Errors. */
4
+ readonly name: string;
5
+ readonly message: string;
6
+ /** Raw multi-frame stack when this level is an Error that carries one. */
7
+ readonly stack?: string;
8
+ }
9
+ /** Full crash serialization: the error, its cause chain, and React extras. */
10
+ export interface CrashDetail {
11
+ readonly message: string;
12
+ /** Head-level stack (=== levels[0].stack). */
13
+ readonly stack?: string;
14
+ /** The error followed by every `.cause` link, outermost first. */
15
+ readonly levels: readonly CrashDetailLevel[];
16
+ /** React component tree trace when attached to the error object. */
17
+ readonly componentStack?: string;
18
+ /** React production digest when attached to the error object. */
19
+ readonly digest?: string;
20
+ /** `${name}: ${message}` one-liner for logs that must stay one line. */
21
+ readonly summary: string;
22
+ /** Full multi-line block crash.log stores after its header line. */
23
+ readonly text: string;
24
+ }
25
+ /** Stand-in text for a value whose own string conversion throws. */
26
+ export declare const UNSERIALIZABLE = "[unserializable value]";
27
+ /**
28
+ * Serialize an unknown crash value: head message + stack, the `.cause` chain
29
+ * level by level, and componentStack / digest when attached. Never throws and
30
+ * never loops — the crash path's own diagnostics must not become a second
31
+ * crash. Exported for scripts/verify-crash-detail.
32
+ */
33
+ export declare function serializeCrashDetail(error: unknown): CrashDetail;
34
+ /**
35
+ * Crash detail built from literals only, for when serializing or logging
36
+ * the real one failed. It never touches the thrown value, so it cannot throw.
37
+ */
38
+ export declare function unserializableCrashDetail(): CrashDetail;
39
+ /**
40
+ * The crash.log line: restart.log's `<UTC ISO> pid=<pid>` header style
41
+ * (writeRestartLine precedent, src/update.ts) followed by the detail block.
42
+ * @param detail - Serialized crash (serializeCrashDetail).
43
+ * @param at - Timestamp of the crash (injected so the format stays testable).
44
+ * @param pid - Process id (injected so the format stays testable).
45
+ */
46
+ export declare function formatCrashLogLine(detail: CrashDetail, at: Date, pid: number): string;
47
+ /**
48
+ * Append the crash detail to `<dir>/crash.log` (default `~/.dsh-tui`,
49
+ * DATA_DIR — same home-dir resolution as restart.log, never a hard-coded
50
+ * path). Every failure is swallowed: post-mortem diagnostics must never take
51
+ * the exit path down (mouse-debug.log precedent).
52
+ * @param detail - Serialized crash (serializeCrashDetail).
53
+ * @param dir - Data directory override (verify scripts point at a temp dir).
54
+ */
55
+ export declare function appendCrashLog(detail: CrashDetail, dir?: string): void;
56
+ //# sourceMappingURL=crashDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crashDetail.d.ts","sourceRoot":"","sources":["../../../src/utils/crashDetail.ts"],"names":[],"mappings":"AAeA,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAUD,oEAAoE;AACpE,eAAO,MAAM,cAAc,2BAA2B,CAAA;AA+DtD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAsChE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,CAYvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,GAAE,MAAiB,GAAG,IAAI,CAShF"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Crash serialization for the exit funnel (src/dsh-adapter/plugin.ts).
3
+ *
4
+ * A message-only crash line (`Minified React error #185`) loses the stack,
5
+ * the `.cause` chain and the React extras (componentStack, digest) that a
6
+ * production build still carries. These helpers serialize all of it and
7
+ * append it to ~/.dsh-tui/crash.log.
8
+ *
9
+ * Dependency-free (node builtins and paths only) so verify scripts can load
10
+ * it without the plugin graph.
11
+ */
12
+ import { appendFileSync, mkdirSync } from 'node:fs';
13
+ import { join } from 'node:path';
14
+ import { DATA_DIR } from './paths.js';
15
+ /** A pathological (self- or mutually-referring) cause chain must not loop. */
16
+ const MAX_CAUSE_LEVELS = 8;
17
+ /** Cap the serialized block so huge synthetic stacks cannot grow crash.log unbounded. */
18
+ const MAX_TEXT_CHARS = 32 * 1024;
19
+ const isRecord = (value) => typeof value === 'object' && value !== null;
20
+ /** Stand-in text for a value whose own string conversion throws. */
21
+ export const UNSERIALIZABLE = '[unserializable value]';
22
+ /**
23
+ * Read one property of a value that may throw on access (a getter or a Proxy
24
+ * trap); a throw reads as undefined. The crash funnel runs after the exit
25
+ * latch is set, so an exception escaping from here would skip the cleanup
26
+ * that follows it.
27
+ */
28
+ function safeProp(record, key) {
29
+ try {
30
+ return record[key];
31
+ }
32
+ catch {
33
+ return undefined;
34
+ }
35
+ }
36
+ /** instanceof through a maybe-hostile value: a Proxy can trap
37
+ * getPrototypeOf too, and that must degrade the same way as a property read. */
38
+ function safeInstanceOfError(value) {
39
+ try {
40
+ return value instanceof Error;
41
+ }
42
+ catch {
43
+ return false;
44
+ }
45
+ }
46
+ /**
47
+ * Three-tier stringify: String(value), then Object.prototype.toString.call
48
+ * (itself re-wrapped — a Symbol.toStringTag getter can throw too), then the
49
+ * fixed literal. Never throws.
50
+ */
51
+ function safeString(value) {
52
+ try {
53
+ return String(value);
54
+ }
55
+ catch {
56
+ // Fall through to the second conversion.
57
+ }
58
+ try {
59
+ return Object.prototype.toString.call(value);
60
+ }
61
+ catch {
62
+ // Fall through to the fixed literal.
63
+ }
64
+ return UNSERIALIZABLE;
65
+ }
66
+ function serializeLevel(error) {
67
+ if (safeInstanceOfError(error) && isRecord(error)) {
68
+ const rawName = safeProp(error, 'name');
69
+ const rawStack = safeProp(error, 'stack');
70
+ const rawMessage = safeProp(error, 'message');
71
+ const name = typeof rawName === 'string' && rawName !== '' ? rawName : 'Error';
72
+ const stack = typeof rawStack === 'string' && rawStack !== '' ? rawStack : undefined;
73
+ // A non-string message still stringifies (a hostile Error can carry 42);
74
+ // only a THROWING conversion degrades to the fixed literal.
75
+ const message = typeof rawMessage === 'string' ? rawMessage : safeString(rawMessage);
76
+ return { name, message, ...(stack === undefined ? {} : { stack }) };
77
+ }
78
+ return { name: typeof error, message: safeString(error) };
79
+ }
80
+ /** Indent every line of a (multi-frame) block for the text serialization. */
81
+ const indentBlock = (block) => block.replace(/^/gm, ' ');
82
+ /**
83
+ * Serialize an unknown crash value: head message + stack, the `.cause` chain
84
+ * level by level, and componentStack / digest when attached. Never throws and
85
+ * never loops — the crash path's own diagnostics must not become a second
86
+ * crash. Exported for scripts/verify-crash-detail.
87
+ */
88
+ export function serializeCrashDetail(error) {
89
+ const levels = [serializeLevel(error)];
90
+ // Follow .cause links (ES2022 Error cause + manually attached ones); the
91
+ // seen-set stops self/mutual references, the cap stops absurd chains.
92
+ const seen = new Set([error]);
93
+ let current = isRecord(error) ? safeProp(error, 'cause') : undefined;
94
+ while (levels.length < MAX_CAUSE_LEVELS && current !== undefined && current !== null && !seen.has(current)) {
95
+ seen.add(current);
96
+ levels.push(serializeLevel(current));
97
+ current = isRecord(current) ? safeProp(current, 'cause') : undefined;
98
+ }
99
+ const head = levels[0];
100
+ const rawComponentStack = isRecord(error) ? safeProp(error, 'componentStack') : undefined;
101
+ const rawDigest = isRecord(error) ? safeProp(error, 'digest') : undefined;
102
+ const componentStack = typeof rawComponentStack === 'string' && rawComponentStack !== ''
103
+ ? rawComponentStack
104
+ : undefined;
105
+ const digest = typeof rawDigest === 'string' && rawDigest !== '' ? rawDigest : undefined;
106
+ const summary = safeInstanceOfError(error) ? `${head.name}: ${head.message}` : head.message;
107
+ const lines = [`dsh-tui crashed: ${summary}`];
108
+ levels.forEach((level, index) => {
109
+ lines.push(`level ${index}${index === 0 ? '' : ' (cause)'}: ${level.name}: ${level.message}`);
110
+ if (level.stack !== undefined)
111
+ lines.push(' stack:', indentBlock(level.stack));
112
+ });
113
+ if (componentStack !== undefined)
114
+ lines.push('componentStack:', indentBlock(componentStack));
115
+ if (digest !== undefined)
116
+ lines.push(`digest: ${digest}`);
117
+ let text = lines.join('\n');
118
+ if (text.length > MAX_TEXT_CHARS)
119
+ text = `${text.slice(0, MAX_TEXT_CHARS)}\n...(truncated)`;
120
+ return {
121
+ message: head.message,
122
+ ...(head.stack === undefined ? {} : { stack: head.stack }),
123
+ levels,
124
+ ...(componentStack === undefined ? {} : { componentStack }),
125
+ ...(digest === undefined ? {} : { digest }),
126
+ summary,
127
+ text,
128
+ };
129
+ }
130
+ /**
131
+ * Crash detail built from literals only, for when serializing or logging
132
+ * the real one failed. It never touches the thrown value, so it cannot throw.
133
+ */
134
+ export function unserializableCrashDetail() {
135
+ const text = [
136
+ `dsh-tui crashed: ${UNSERIALIZABLE}`,
137
+ `level 0: Error: ${UNSERIALIZABLE}`,
138
+ '(crash detail serialization failed; every property of the thrown value was left unread)',
139
+ ].join('\n');
140
+ return {
141
+ message: UNSERIALIZABLE,
142
+ levels: [{ name: 'Error', message: UNSERIALIZABLE }],
143
+ summary: `Error: ${UNSERIALIZABLE}`,
144
+ text,
145
+ };
146
+ }
147
+ /**
148
+ * The crash.log line: restart.log's `<UTC ISO> pid=<pid>` header style
149
+ * (writeRestartLine precedent, src/update.ts) followed by the detail block.
150
+ * @param detail - Serialized crash (serializeCrashDetail).
151
+ * @param at - Timestamp of the crash (injected so the format stays testable).
152
+ * @param pid - Process id (injected so the format stays testable).
153
+ */
154
+ export function formatCrashLogLine(detail, at, pid) {
155
+ return `${at.toISOString()} pid=${pid} ${detail.text}\n`;
156
+ }
157
+ /**
158
+ * Append the crash detail to `<dir>/crash.log` (default `~/.dsh-tui`,
159
+ * DATA_DIR — same home-dir resolution as restart.log, never a hard-coded
160
+ * path). Every failure is swallowed: post-mortem diagnostics must never take
161
+ * the exit path down (mouse-debug.log precedent).
162
+ * @param detail - Serialized crash (serializeCrashDetail).
163
+ * @param dir - Data directory override (verify scripts point at a temp dir).
164
+ */
165
+ export function appendCrashLog(detail, dir = DATA_DIR) {
166
+ try {
167
+ mkdirSync(dir, { recursive: true });
168
+ // 0600 on creation: the stack can mirror message content (mouse-debug.log
169
+ // and history.jsonl precedent, see scripts/verify-data-file-perms).
170
+ appendFileSync(join(dir, 'crash.log'), formatCrashLogLine(detail, new Date(), process.pid), { mode: 0o600 });
171
+ }
172
+ catch {
173
+ // Post-mortem only — see doc comment.
174
+ }
175
+ }
@@ -1,30 +1,16 @@
1
- /**
2
- * Inbound image adaptation for the composer's staging gate.
3
- *
4
- * The upstream attachment store admits images by media type, byte budget,
5
- * pixel budget and a per-side dimension cap (`maxImageDimension`). Two kinds
6
- * of paste used to fail with no user-side recourse: one that exceeds the
7
- * dimension cap, and one whose format the deployment does not accept. This
8
- * module measures the bytes BEFORE staging and produces an admissible pair
9
- * (bytes + media type) through sharp — an optionalDependency, absent on
10
- * minimal installs, which must degrade with a clear error, not a crash.
11
- *
12
- * Sizing probe is pure byte inspection (PNG/JPEG/WebP/GIF). Formats the
13
- * probe cannot identify return null and MUST be forced through an actual
14
- * decode for measurement — the #432 review gap was letting an
15
- * "unrecognized but under the byte cap" image through, where a
16
- * large-resolution small-byte WebP/GIF would sail past the probe and be
17
- * rejected by upstream afterwards.
18
- *
19
- * The single entry point is {@link adaptImageForAdmission}: it decides
20
- * whether anything has to change (resample, re-encode, or both) and reports
21
- * exactly what it did, so the caller can tell the user instead of silently
22
- * rewriting their image.
23
- */
24
1
  export interface ImageSizeProbe {
25
2
  readonly width: number;
26
3
  readonly height: number;
27
4
  }
5
+ /**
6
+ * The image media type the encoded bytes actually are, from the magic
7
+ * bytes alone (the same signatures {@link probeImageSize} dispatches on):
8
+ * PNG, JPEG, WebP (RIFF/WEBP) or GIF; anything else is undefined and the
9
+ * caller keeps its own label (those bytes take the decode-or-refuse path
10
+ * anyway). Used to keep a renamed file from travelling under a label its
11
+ * content contradicts.
12
+ */
13
+ export declare function sniffImageMediaType(bytes: Uint8Array): 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif' | undefined;
28
14
  /**
29
15
  * Measure intrinsic pixel dimensions from the encoded bytes alone — no
30
16
  * decode, no dependencies. Recognizes PNG / JPEG / WebP (VP8X, VP8,
@@ -1 +1 @@
1
- {"version":3,"file":"imageResize.d.ts","sourceRoot":"","sources":["../../../src/utils/imageResize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAiFD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAevE;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,wCAAwC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAIzF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,CAW1F;AAqCD,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IACA,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B,GACC;IACA;;;qDAGiD;IACjD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,GAAG,sBAAsB,CAAA;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAgCH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,YAAY,EACpB,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,OAAO,CAAC,YAAY,CAAC,CAqDvB"}
1
+ {"version":3,"file":"imageResize.d.ts","sourceRoot":"","sources":["../../../src/utils/imageResize.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAiFD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAO1H;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAevE;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,wCAAwC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAIzF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,CAW1F;AAqCD,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IACA,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B,GACC;IACA;;;qDAGiD;IACjD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,GAAG,sBAAsB,CAAA;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAcH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,YAAY,EACpB,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,OAAO,CAAC,YAAY,CAAC,CAuDvB"}