@deepseek-harness-tui/dsh-tui 0.10.0 → 0.10.2

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 (705) hide show
  1. package/README.md +5 -2
  2. package/bin/dsh-tui.js +99 -33
  3. package/cordis.patch.yml +25 -5
  4. package/lib/types/adapter/channel/actions.d.ts +17 -0
  5. package/lib/types/adapter/channel/actions.d.ts.map +1 -0
  6. package/lib/types/adapter/channel/actions.js +28 -0
  7. package/lib/types/adapter/channel/consumer.d.ts +34 -0
  8. package/lib/types/adapter/channel/consumer.d.ts.map +1 -0
  9. package/lib/types/adapter/channel/consumer.js +87 -0
  10. package/lib/types/adapter/channel/features.d.ts +12 -0
  11. package/lib/types/adapter/channel/features.d.ts.map +1 -0
  12. package/lib/types/adapter/channel/features.js +41 -0
  13. package/lib/types/adapter/channel/host-registry.d.ts +40 -0
  14. package/lib/types/adapter/channel/host-registry.d.ts.map +1 -0
  15. package/lib/types/adapter/channel/host-registry.js +120 -0
  16. package/lib/types/adapter/channel/index.d.ts +22 -0
  17. package/lib/types/adapter/channel/index.d.ts.map +1 -0
  18. package/lib/types/adapter/channel/index.js +21 -0
  19. package/lib/types/adapter/channel/internal-token.d.ts +12 -0
  20. package/lib/types/adapter/channel/internal-token.d.ts.map +1 -0
  21. package/lib/types/adapter/channel/internal-token.js +11 -0
  22. package/lib/types/adapter/channel/plugins.d.ts +17 -0
  23. package/lib/types/adapter/channel/plugins.d.ts.map +1 -0
  24. package/lib/types/adapter/channel/plugins.js +47 -0
  25. package/lib/types/adapter/channel/projection.d.ts +15 -0
  26. package/lib/types/adapter/channel/projection.d.ts.map +1 -0
  27. package/lib/types/adapter/channel/projection.js +59 -0
  28. package/lib/types/adapter/channel/provider.d.ts +52 -0
  29. package/lib/types/adapter/channel/provider.d.ts.map +1 -0
  30. package/lib/types/adapter/channel/provider.js +231 -0
  31. package/lib/types/adapter/channel/read-view.d.ts +4 -0
  32. package/lib/types/adapter/channel/read-view.d.ts.map +1 -0
  33. package/lib/types/adapter/channel/read-view.js +132 -0
  34. package/lib/types/adapter/channel/session-projection.d.ts +56 -0
  35. package/lib/types/adapter/channel/session-projection.d.ts.map +1 -0
  36. package/lib/types/adapter/channel/session-projection.js +247 -0
  37. package/lib/types/adapter/channel/state.d.ts +11 -0
  38. package/lib/types/adapter/channel/state.d.ts.map +1 -0
  39. package/lib/types/adapter/channel/state.js +55 -0
  40. package/lib/types/adapter/channel/transcript.d.ts +15 -0
  41. package/lib/types/adapter/channel/transcript.d.ts.map +1 -0
  42. package/lib/types/adapter/channel/transcript.js +22 -0
  43. package/lib/types/adapter/channel/ui-policy.d.ts +106 -0
  44. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -0
  45. package/lib/types/adapter/channel/ui-policy.js +166 -0
  46. package/lib/types/adapter/channel/ui.d.ts +16 -0
  47. package/lib/types/adapter/channel/ui.d.ts.map +1 -0
  48. package/lib/types/adapter/channel/ui.js +168 -0
  49. package/lib/types/adapter/index.d.ts +20 -0
  50. package/lib/types/adapter/index.d.ts.map +1 -0
  51. package/lib/types/adapter/index.js +19 -0
  52. package/lib/types/adapter/kernel/contract-catalog.d.ts +12 -0
  53. package/lib/types/adapter/kernel/contract-catalog.d.ts.map +1 -0
  54. package/lib/types/adapter/kernel/contract-catalog.js +11 -0
  55. package/lib/types/adapter/kernel/diagnostics.d.ts +18 -0
  56. package/lib/types/adapter/kernel/diagnostics.d.ts.map +1 -0
  57. package/lib/types/adapter/kernel/diagnostics.js +16 -0
  58. package/lib/types/adapter/kernel/driver-types.d.ts +16 -0
  59. package/lib/types/adapter/kernel/driver-types.d.ts.map +1 -0
  60. package/lib/types/adapter/kernel/driver-types.js +8 -0
  61. package/lib/types/adapter/kernel/host-facade.d.ts +65 -0
  62. package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -0
  63. package/lib/types/adapter/kernel/host-facade.js +215 -0
  64. package/lib/types/adapter/kernel/host-probe-access.d.ts +71 -0
  65. package/lib/types/adapter/kernel/host-probe-access.d.ts.map +1 -0
  66. package/lib/types/adapter/kernel/host-probe-access.js +121 -0
  67. package/lib/types/adapter/kernel/index.d.ts +20 -0
  68. package/lib/types/adapter/kernel/index.d.ts.map +1 -0
  69. package/lib/types/adapter/kernel/index.js +19 -0
  70. package/lib/types/adapter/kernel/kernel-runtime.d.ts +138 -0
  71. package/lib/types/adapter/kernel/kernel-runtime.d.ts.map +1 -0
  72. package/lib/types/adapter/kernel/kernel-runtime.js +572 -0
  73. package/lib/types/adapter/kernel/ledger.d.ts +55 -0
  74. package/lib/types/adapter/kernel/ledger.d.ts.map +1 -0
  75. package/lib/types/adapter/kernel/ledger.js +33 -0
  76. package/lib/types/adapter/kernel/legacy-facade.d.ts +22 -0
  77. package/lib/types/adapter/kernel/legacy-facade.d.ts.map +1 -0
  78. package/lib/types/adapter/kernel/legacy-facade.js +34 -0
  79. package/lib/types/adapter/kernel/lifecycle.d.ts +38 -0
  80. package/lib/types/adapter/kernel/lifecycle.d.ts.map +1 -0
  81. package/lib/types/adapter/kernel/lifecycle.js +53 -0
  82. package/lib/types/adapter/kernel/replay-isolation.d.ts +27 -0
  83. package/lib/types/adapter/kernel/replay-isolation.d.ts.map +1 -0
  84. package/lib/types/adapter/kernel/replay-isolation.js +45 -0
  85. package/lib/types/adapter/kernel/replay.d.ts +132 -0
  86. package/lib/types/adapter/kernel/replay.d.ts.map +1 -0
  87. package/lib/types/adapter/kernel/replay.js +425 -0
  88. package/lib/types/adapter/kernel/runtime-context.d.ts +15 -0
  89. package/lib/types/adapter/kernel/runtime-context.d.ts.map +1 -0
  90. package/lib/types/adapter/kernel/runtime-context.js +24 -0
  91. package/lib/types/adapter/kernel/runtime.d.ts +70 -0
  92. package/lib/types/adapter/kernel/runtime.d.ts.map +1 -0
  93. package/lib/types/adapter/kernel/runtime.js +325 -0
  94. package/lib/types/adapter/kernel/slices/channel.d.ts +3 -0
  95. package/lib/types/adapter/kernel/slices/channel.d.ts.map +1 -0
  96. package/lib/types/adapter/kernel/slices/channel.js +8 -0
  97. package/lib/types/adapter/kernel/slices/decisions.d.ts +3 -0
  98. package/lib/types/adapter/kernel/slices/decisions.d.ts.map +1 -0
  99. package/lib/types/adapter/kernel/slices/decisions.js +10 -0
  100. package/lib/types/adapter/kernel/slices/extensions.d.ts +8 -0
  101. package/lib/types/adapter/kernel/slices/extensions.d.ts.map +1 -0
  102. package/lib/types/adapter/kernel/slices/extensions.js +43 -0
  103. package/lib/types/adapter/kernel/slices/index.d.ts +19 -0
  104. package/lib/types/adapter/kernel/slices/index.d.ts.map +1 -0
  105. package/lib/types/adapter/kernel/slices/index.js +36 -0
  106. package/lib/types/adapter/kernel/slices/presentation.d.ts +3 -0
  107. package/lib/types/adapter/kernel/slices/presentation.d.ts.map +1 -0
  108. package/lib/types/adapter/kernel/slices/presentation.js +14 -0
  109. package/lib/types/adapter/kernel/slices/scenes.d.ts +3 -0
  110. package/lib/types/adapter/kernel/slices/scenes.d.ts.map +1 -0
  111. package/lib/types/adapter/kernel/slices/scenes.js +14 -0
  112. package/lib/types/adapter/kernel/slices/settings.d.ts +3 -0
  113. package/lib/types/adapter/kernel/slices/settings.d.ts.map +1 -0
  114. package/lib/types/adapter/kernel/slices/settings.js +12 -0
  115. package/lib/types/adapter/kernel/slices/types.d.ts +20 -0
  116. package/lib/types/adapter/kernel/slices/types.d.ts.map +1 -0
  117. package/lib/types/adapter/kernel/slices/types.js +12 -0
  118. package/lib/types/adapter/kernel/slices/workspace.d.ts +3 -0
  119. package/lib/types/adapter/kernel/slices/workspace.d.ts.map +1 -0
  120. package/lib/types/adapter/kernel/slices/workspace.js +15 -0
  121. package/lib/types/adapter/ports/channel-catalog.d.ts +90 -0
  122. package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -0
  123. package/lib/types/adapter/ports/channel-catalog.js +2 -0
  124. package/lib/types/adapter/ports/channel-display.d.ts +90 -0
  125. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -0
  126. package/lib/types/adapter/ports/channel-display.js +2 -0
  127. package/lib/types/adapter/ports/channel-session.d.ts +229 -0
  128. package/lib/types/adapter/ports/channel-session.d.ts.map +1 -0
  129. package/lib/types/adapter/ports/channel-session.js +2 -0
  130. package/lib/types/adapter/ports/channel-settings.d.ts +273 -0
  131. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -0
  132. package/lib/types/adapter/ports/channel-settings.js +1 -0
  133. package/lib/types/adapter/ports/channel-ui.d.ts +569 -0
  134. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -0
  135. package/lib/types/adapter/ports/channel-ui.js +1 -0
  136. package/lib/types/adapter/ports/channel-view.d.ts +609 -0
  137. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -0
  138. package/lib/types/adapter/ports/channel-view.js +2 -0
  139. package/lib/types/adapter/ports/channel-workspace.d.ts +45 -0
  140. package/lib/types/adapter/ports/channel-workspace.d.ts.map +1 -0
  141. package/lib/types/adapter/ports/channel-workspace.js +2 -0
  142. package/lib/types/adapter/ports/channel.d.ts +145 -0
  143. package/lib/types/adapter/ports/channel.d.ts.map +1 -0
  144. package/lib/types/adapter/ports/channel.js +22 -0
  145. package/lib/types/adapter/ports/decisions.d.ts +18 -0
  146. package/lib/types/adapter/ports/decisions.d.ts.map +1 -0
  147. package/lib/types/adapter/ports/decisions.js +9 -0
  148. package/lib/types/adapter/ports/descriptor.d.ts +25 -0
  149. package/lib/types/adapter/ports/descriptor.d.ts.map +1 -0
  150. package/lib/types/adapter/ports/descriptor.js +11 -0
  151. package/lib/types/adapter/ports/extensions.d.ts +86 -0
  152. package/lib/types/adapter/ports/extensions.d.ts.map +1 -0
  153. package/lib/types/adapter/ports/extensions.js +9 -0
  154. package/lib/types/adapter/ports/index.d.ts +23 -0
  155. package/lib/types/adapter/ports/index.d.ts.map +1 -0
  156. package/lib/types/adapter/ports/index.js +14 -0
  157. package/lib/types/adapter/ports/owner.d.ts +19 -0
  158. package/lib/types/adapter/ports/owner.d.ts.map +1 -0
  159. package/lib/types/adapter/ports/owner.js +9 -0
  160. package/lib/types/adapter/ports/presentation.d.ts +81 -0
  161. package/lib/types/adapter/ports/presentation.d.ts.map +1 -0
  162. package/lib/types/adapter/ports/presentation.js +10 -0
  163. package/lib/types/adapter/ports/scenes.d.ts +24 -0
  164. package/lib/types/adapter/ports/scenes.d.ts.map +1 -0
  165. package/lib/types/adapter/ports/scenes.js +8 -0
  166. package/lib/types/adapter/ports/settings.d.ts +44 -0
  167. package/lib/types/adapter/ports/settings.d.ts.map +1 -0
  168. package/lib/types/adapter/ports/settings.js +9 -0
  169. package/lib/types/adapter/ports/workspace.d.ts +60 -0
  170. package/lib/types/adapter/ports/workspace.d.ts.map +1 -0
  171. package/lib/types/adapter/ports/workspace.js +8 -0
  172. package/lib/types/adapter/spec/index.d.ts +11 -0
  173. package/lib/types/adapter/spec/index.d.ts.map +1 -0
  174. package/lib/types/adapter/spec/index.js +10 -0
  175. package/lib/types/adapter/spec/profile.d.ts +10 -0
  176. package/lib/types/adapter/spec/profile.d.ts.map +1 -0
  177. package/lib/types/adapter/spec/profile.js +9 -0
  178. package/lib/types/adapter/spec/protocol-constants.d.ts +60 -0
  179. package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -0
  180. package/lib/types/adapter/spec/protocol-constants.js +129 -0
  181. package/lib/types/adapter/spec/tui-contributions.d.ts +18 -0
  182. package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -0
  183. package/lib/types/adapter/spec/tui-contributions.js +19 -0
  184. package/lib/types/adapter/standard/admission.d.ts +11 -0
  185. package/lib/types/adapter/standard/admission.d.ts.map +1 -0
  186. package/lib/types/adapter/standard/admission.js +10 -0
  187. package/lib/types/adapter/standard/descriptor.d.ts +74 -0
  188. package/lib/types/adapter/standard/descriptor.d.ts.map +1 -0
  189. package/lib/types/adapter/standard/descriptor.js +356 -0
  190. package/lib/types/{dsh-adapter → adapter/standard}/grants.d.ts +8 -3
  191. package/lib/types/adapter/standard/grants.d.ts.map +1 -0
  192. package/lib/types/{dsh-adapter → adapter/standard}/grants.js +14 -8
  193. package/lib/types/adapter/standard/index.d.ts +25 -0
  194. package/lib/types/adapter/standard/index.d.ts.map +1 -0
  195. package/lib/types/adapter/standard/index.js +24 -0
  196. package/lib/types/adapter/standard/negotiate.d.ts.map +1 -0
  197. package/lib/types/{plugin-spec → adapter/standard}/permission-scope.d.ts +3 -8
  198. package/lib/types/adapter/standard/permission-scope.d.ts.map +1 -0
  199. package/lib/types/{plugin-spec → adapter/standard}/permission-scope.js +4 -26
  200. package/lib/types/adapter/standard/protocols.d.ts +12 -0
  201. package/lib/types/adapter/standard/protocols.d.ts.map +1 -0
  202. package/lib/types/adapter/standard/protocols.js +11 -0
  203. package/lib/types/adapter/standard/registry.d.ts.map +1 -0
  204. package/lib/types/{plugin-spec → adapter/standard}/registry.js +3 -15
  205. package/lib/types/adapter/standard/schema-check.d.ts.map +1 -0
  206. package/lib/types/{plugin-spec → adapter/standard}/schema-check.js +4 -2
  207. package/lib/types/adapter/standard/tui-extension.d.ts +25 -0
  208. package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -0
  209. package/lib/types/adapter/standard/tui-extension.js +45 -0
  210. package/lib/types/{plugin-spec → adapter/standard}/types.d.ts +3 -9
  211. package/lib/types/adapter/standard/types.d.ts.map +1 -0
  212. package/lib/types/{plugin-spec → adapter/standard}/validate.d.ts +3 -3
  213. package/lib/types/adapter/standard/validate.d.ts.map +1 -0
  214. package/lib/types/{plugin-spec → adapter/standard}/validate.js +14 -13
  215. package/lib/types/adapter/upstream/channel-driver.d.ts +22 -0
  216. package/lib/types/adapter/upstream/channel-driver.d.ts.map +1 -0
  217. package/lib/types/adapter/upstream/channel-driver.js +424 -0
  218. package/lib/types/adapter/upstream/decisions-driver.d.ts +15 -0
  219. package/lib/types/adapter/upstream/decisions-driver.d.ts.map +1 -0
  220. package/lib/types/adapter/upstream/decisions-driver.js +141 -0
  221. package/lib/types/adapter/upstream/detection.d.ts +26 -0
  222. package/lib/types/adapter/upstream/detection.d.ts.map +1 -0
  223. package/lib/types/adapter/upstream/detection.js +9 -0
  224. package/lib/types/adapter/upstream/driver.d.ts +50 -0
  225. package/lib/types/adapter/upstream/driver.d.ts.map +1 -0
  226. package/lib/types/adapter/upstream/driver.js +8 -0
  227. package/lib/types/adapter/upstream/extensions-driver.d.ts +24 -0
  228. package/lib/types/adapter/upstream/extensions-driver.d.ts.map +1 -0
  229. package/lib/types/adapter/upstream/extensions-driver.js +697 -0
  230. package/lib/types/adapter/upstream/host-descriptor-driver.d.ts +45 -0
  231. package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -0
  232. package/lib/types/adapter/upstream/host-descriptor-driver.js +606 -0
  233. package/lib/types/adapter/upstream/index.d.ts +18 -0
  234. package/lib/types/adapter/upstream/index.d.ts.map +1 -0
  235. package/lib/types/adapter/upstream/index.js +15 -0
  236. package/lib/types/adapter/upstream/presentation-driver.d.ts +17 -0
  237. package/lib/types/adapter/upstream/presentation-driver.d.ts.map +1 -0
  238. package/lib/types/adapter/upstream/presentation-driver.js +129 -0
  239. package/lib/types/adapter/upstream/scenes-driver.d.ts +18 -0
  240. package/lib/types/adapter/upstream/scenes-driver.d.ts.map +1 -0
  241. package/lib/types/adapter/upstream/scenes-driver.js +170 -0
  242. package/lib/types/adapter/upstream/settings-driver.d.ts +20 -0
  243. package/lib/types/adapter/upstream/settings-driver.d.ts.map +1 -0
  244. package/lib/types/adapter/upstream/settings-driver.js +173 -0
  245. package/lib/types/adapter/upstream/workspace-driver.d.ts +19 -0
  246. package/lib/types/adapter/upstream/workspace-driver.d.ts.map +1 -0
  247. package/lib/types/adapter/upstream/workspace-driver.js +190 -0
  248. package/lib/types/api.d.ts +1 -1
  249. package/lib/types/api.d.ts.map +1 -1
  250. package/lib/types/commands.d.ts +2 -41
  251. package/lib/types/commands.d.ts.map +1 -1
  252. package/lib/types/commands.js +1 -1
  253. package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
  254. package/lib/types/components/Chat/JobCard.js +8 -1
  255. package/lib/types/components/GoalTodoPanel.d.ts +2 -1
  256. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  257. package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
  258. package/lib/types/components/HistorySearchDialog.js +7 -5
  259. package/lib/types/components/Markdown.d.ts +2 -2
  260. package/lib/types/components/Markdown.d.ts.map +1 -1
  261. package/lib/types/components/Markdown.js +28 -3
  262. package/lib/types/components/MessageList.d.ts.map +1 -1
  263. package/lib/types/components/MessageList.js +46 -17
  264. package/lib/types/components/ModelPicker.d.ts +1 -1
  265. package/lib/types/components/ModelPicker.d.ts.map +1 -1
  266. package/lib/types/components/ModelPicker.js +8 -4
  267. package/lib/types/components/OverlayAbove.d.ts +22 -1
  268. package/lib/types/components/OverlayAbove.d.ts.map +1 -1
  269. package/lib/types/components/OverlayAbove.js +74 -5
  270. package/lib/types/components/PromptInput.d.ts +2 -1
  271. package/lib/types/components/PromptInput.d.ts.map +1 -1
  272. package/lib/types/components/RewindPicker.d.ts.map +1 -1
  273. package/lib/types/components/RewindPicker.js +14 -6
  274. package/lib/types/components/SkillsPicker.d.ts.map +1 -1
  275. package/lib/types/components/SkillsPicker.js +6 -4
  276. package/lib/types/components/Spinner/spinnerMode.d.ts +1 -5
  277. package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -1
  278. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  279. package/lib/types/components/StreamingMarkdown.js +61 -9
  280. package/lib/types/components/design-system/ThemedBox.d.ts +4 -2
  281. package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -1
  282. package/lib/types/components/design-system/ThemedBox.js +2 -2
  283. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  284. package/lib/types/components/messages/AssistantToolUseMessage.js +69 -25
  285. package/lib/types/components/overlayBudget.d.ts +39 -0
  286. package/lib/types/components/overlayBudget.d.ts.map +1 -0
  287. package/lib/types/components/overlayBudget.js +43 -0
  288. package/lib/types/deepseekBalance.d.ts +2 -36
  289. package/lib/types/deepseekBalance.d.ts.map +1 -1
  290. package/lib/types/deepseekBalance.js +0 -14
  291. package/lib/types/deepseekPricing.d.ts +2 -1
  292. package/lib/types/deepseekPricing.d.ts.map +1 -1
  293. package/lib/types/deepseekPricing.js +8 -1
  294. package/lib/types/dsh-adapter/approvals.d.ts +11 -1
  295. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
  296. package/lib/types/dsh-adapter/approvals.js +32 -12
  297. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +20 -0
  298. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -0
  299. package/lib/types/dsh-adapter/channel/action-readiness.js +83 -0
  300. package/lib/types/dsh-adapter/channel/activity.d.ts +20 -0
  301. package/lib/types/dsh-adapter/channel/activity.d.ts.map +1 -0
  302. package/lib/types/dsh-adapter/channel/activity.js +113 -0
  303. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +64 -0
  304. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -0
  305. package/lib/types/dsh-adapter/channel/agent-view-projection.js +295 -0
  306. package/lib/types/dsh-adapter/channel/background-action.d.ts +41 -0
  307. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -0
  308. package/lib/types/dsh-adapter/channel/background-action.js +86 -0
  309. package/lib/types/dsh-adapter/channel/binding-events.d.ts +65 -0
  310. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -0
  311. package/lib/types/dsh-adapter/channel/binding-events.js +169 -0
  312. package/lib/types/dsh-adapter/channel/binding.d.ts +41 -0
  313. package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -0
  314. package/lib/types/dsh-adapter/channel/binding.js +227 -0
  315. package/lib/types/dsh-adapter/channel/command-completions.d.ts +29 -0
  316. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -0
  317. package/lib/types/dsh-adapter/channel/command-completions.js +94 -0
  318. package/lib/types/dsh-adapter/channel/commands.d.ts +8 -0
  319. package/lib/types/dsh-adapter/channel/commands.d.ts.map +1 -0
  320. package/lib/types/dsh-adapter/channel/commands.js +9 -0
  321. package/lib/types/dsh-adapter/channel/compaction.d.ts +19 -0
  322. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -0
  323. package/lib/types/dsh-adapter/channel/compaction.js +116 -0
  324. package/lib/types/dsh-adapter/channel/composer-images.d.ts +57 -0
  325. package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -0
  326. package/lib/types/dsh-adapter/channel/composer-images.js +217 -0
  327. package/lib/types/dsh-adapter/channel/composer-mentions.d.ts +15 -0
  328. package/lib/types/dsh-adapter/channel/composer-mentions.d.ts.map +1 -0
  329. package/lib/types/dsh-adapter/channel/composer-mentions.js +200 -0
  330. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +26 -0
  331. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -0
  332. package/lib/types/dsh-adapter/channel/context-bookkeeping.js +30 -0
  333. package/lib/types/dsh-adapter/channel/decisions.d.ts +19 -0
  334. package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -0
  335. package/lib/types/dsh-adapter/channel/decisions.js +90 -0
  336. package/lib/types/dsh-adapter/channel/emitter.d.ts +10 -0
  337. package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -0
  338. package/lib/types/dsh-adapter/channel/emitter.js +71 -0
  339. package/lib/types/dsh-adapter/channel/external-commands.d.ts +31 -0
  340. package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -0
  341. package/lib/types/dsh-adapter/channel/external-commands.js +187 -0
  342. package/lib/types/dsh-adapter/channel/file-actions.d.ts +20 -0
  343. package/lib/types/dsh-adapter/channel/file-actions.d.ts.map +1 -0
  344. package/lib/types/dsh-adapter/channel/file-actions.js +45 -0
  345. package/lib/types/dsh-adapter/channel/input-actions.d.ts +13 -0
  346. package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -0
  347. package/lib/types/dsh-adapter/channel/input-actions.js +135 -0
  348. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +37 -0
  349. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -0
  350. package/lib/types/dsh-adapter/channel/input-delivery.js +305 -0
  351. package/lib/types/dsh-adapter/channel/job-projection.d.ts +28 -0
  352. package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -0
  353. package/lib/types/dsh-adapter/channel/job-projection.js +150 -0
  354. package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts +9 -0
  355. package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts.map +1 -0
  356. package/lib/types/dsh-adapter/channel/lifetime-resources.js +33 -0
  357. package/lib/types/dsh-adapter/channel/loaded-context.d.ts +40 -0
  358. package/lib/types/dsh-adapter/channel/loaded-context.d.ts.map +1 -0
  359. package/lib/types/dsh-adapter/channel/loaded-context.js +62 -0
  360. package/lib/types/dsh-adapter/channel/local-actions.d.ts +70 -0
  361. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -0
  362. package/lib/types/dsh-adapter/channel/local-actions.js +108 -0
  363. package/lib/types/dsh-adapter/channel/mentions.d.ts +29 -0
  364. package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -0
  365. package/lib/types/dsh-adapter/channel/mentions.js +235 -0
  366. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +30 -0
  367. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -0
  368. package/lib/types/dsh-adapter/channel/mode-actions.js +247 -0
  369. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +35 -0
  370. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -0
  371. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +199 -0
  372. package/lib/types/dsh-adapter/channel/mode-permission.d.ts +58 -0
  373. package/lib/types/dsh-adapter/channel/mode-permission.d.ts.map +1 -0
  374. package/lib/types/dsh-adapter/channel/mode-permission.js +240 -0
  375. package/lib/types/dsh-adapter/channel/mode-roster.d.ts +51 -0
  376. package/lib/types/dsh-adapter/channel/mode-roster.d.ts.map +1 -0
  377. package/lib/types/dsh-adapter/channel/mode-roster.js +119 -0
  378. package/lib/types/dsh-adapter/channel/model-actions.d.ts +46 -0
  379. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -0
  380. package/lib/types/dsh-adapter/channel/model-actions.js +275 -0
  381. package/lib/types/dsh-adapter/channel/model-switch.d.ts +32 -0
  382. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -0
  383. package/lib/types/dsh-adapter/channel/model-switch.js +98 -0
  384. package/lib/types/dsh-adapter/channel/notifications.d.ts +9 -0
  385. package/lib/types/dsh-adapter/channel/notifications.d.ts.map +1 -0
  386. package/lib/types/dsh-adapter/channel/notifications.js +24 -0
  387. package/lib/types/dsh-adapter/channel/owner.d.ts +18 -0
  388. package/lib/types/dsh-adapter/channel/owner.d.ts.map +1 -0
  389. package/lib/types/dsh-adapter/channel/owner.js +73 -0
  390. package/lib/types/dsh-adapter/channel/paths.d.ts +31 -0
  391. package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -0
  392. package/lib/types/dsh-adapter/channel/paths.js +147 -0
  393. package/lib/types/dsh-adapter/channel/permissions.d.ts +40 -0
  394. package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -0
  395. package/lib/types/dsh-adapter/channel/permissions.js +187 -0
  396. package/lib/types/dsh-adapter/channel/preferences.d.ts +3 -0
  397. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -0
  398. package/lib/types/dsh-adapter/channel/preferences.js +103 -0
  399. package/lib/types/dsh-adapter/channel/projection-helpers.d.ts +13 -0
  400. package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -0
  401. package/lib/types/dsh-adapter/channel/projection-helpers.js +63 -0
  402. package/lib/types/dsh-adapter/channel/projection.d.ts +40 -0
  403. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -0
  404. package/lib/types/dsh-adapter/channel/projection.js +1021 -0
  405. package/lib/types/dsh-adapter/channel/reports.d.ts +32 -0
  406. package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -0
  407. package/lib/types/dsh-adapter/channel/reports.js +171 -0
  408. package/lib/types/dsh-adapter/channel/session-actions.d.ts +13 -0
  409. package/lib/types/dsh-adapter/channel/session-actions.d.ts.map +1 -0
  410. package/lib/types/dsh-adapter/channel/session-actions.js +29 -0
  411. package/lib/types/dsh-adapter/channel/session-adoption.d.ts +32 -0
  412. package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -0
  413. package/lib/types/dsh-adapter/channel/session-adoption.js +35 -0
  414. package/lib/types/dsh-adapter/channel/session-fork.d.ts +19 -0
  415. package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -0
  416. package/lib/types/dsh-adapter/channel/session-fork.js +85 -0
  417. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +32 -0
  418. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -0
  419. package/lib/types/dsh-adapter/channel/session-live-adoption.js +62 -0
  420. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +81 -0
  421. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -0
  422. package/lib/types/dsh-adapter/channel/session-metadata.js +209 -0
  423. package/lib/types/dsh-adapter/channel/session-reset.d.ts +11 -0
  424. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -0
  425. package/lib/types/dsh-adapter/channel/session-reset.js +44 -0
  426. package/lib/types/dsh-adapter/channel/session-resume.d.ts +56 -0
  427. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -0
  428. package/lib/types/dsh-adapter/channel/session-resume.js +240 -0
  429. package/lib/types/dsh-adapter/channel/session-rewind.d.ts +19 -0
  430. package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -0
  431. package/lib/types/dsh-adapter/channel/session-rewind.js +128 -0
  432. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +19 -0
  433. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -0
  434. package/lib/types/dsh-adapter/channel/session-tree-actions.js +138 -0
  435. package/lib/types/dsh-adapter/channel/session-tree.d.ts +10 -0
  436. package/lib/types/dsh-adapter/channel/session-tree.d.ts.map +1 -0
  437. package/lib/types/dsh-adapter/channel/session-tree.js +503 -0
  438. package/lib/types/dsh-adapter/channel/settings-host.d.ts +4 -0
  439. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -0
  440. package/lib/types/dsh-adapter/channel/settings-host.js +256 -0
  441. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +33 -0
  442. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -0
  443. package/lib/types/dsh-adapter/channel/skill-catalog.js +215 -0
  444. package/lib/types/dsh-adapter/channel/state.d.ts +46 -0
  445. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -0
  446. package/lib/types/dsh-adapter/channel/state.js +31 -0
  447. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +47 -0
  448. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -0
  449. package/lib/types/dsh-adapter/channel/subagent-projection.js +140 -0
  450. package/lib/types/dsh-adapter/channel/transcript.d.ts +73 -0
  451. package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -0
  452. package/lib/types/dsh-adapter/channel/transcript.js +312 -0
  453. package/lib/types/dsh-adapter/channel/types.d.ts +162 -0
  454. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -0
  455. package/lib/types/dsh-adapter/channel/types.js +1 -0
  456. package/lib/types/dsh-adapter/channel/usage.d.ts +13 -0
  457. package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -0
  458. package/lib/types/dsh-adapter/channel/usage.js +48 -0
  459. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts +20 -0
  460. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -0
  461. package/lib/types/dsh-adapter/channel/workspace-actions.js +56 -0
  462. package/lib/types/dsh-adapter/channel-facade-actions.d.ts +25 -0
  463. package/lib/types/dsh-adapter/channel-facade-actions.d.ts.map +1 -0
  464. package/lib/types/dsh-adapter/channel-facade-actions.js +55 -0
  465. package/lib/types/dsh-adapter/channel-scene-outlet.d.ts +6 -0
  466. package/lib/types/dsh-adapter/channel-scene-outlet.d.ts.map +1 -0
  467. package/lib/types/dsh-adapter/channel-scene-outlet.js +13 -0
  468. package/lib/types/dsh-adapter/channel-ui.d.ts +9 -0
  469. package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -0
  470. package/lib/types/dsh-adapter/channel-ui.js +128 -0
  471. package/lib/types/dsh-adapter/channel.d.ts +9 -1525
  472. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  473. package/lib/types/dsh-adapter/channel.js +753 -8145
  474. package/lib/types/dsh-adapter/command-trees.d.ts +1 -0
  475. package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -1
  476. package/lib/types/dsh-adapter/command-trees.js +20 -1
  477. package/lib/types/dsh-adapter/compat/liveSession.d.ts +8 -4
  478. package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -1
  479. package/lib/types/dsh-adapter/compat/liveSession.js +28 -3
  480. package/lib/types/dsh-adapter/compat/persistence.d.ts +21 -0
  481. package/lib/types/dsh-adapter/compat/persistence.d.ts.map +1 -0
  482. package/lib/types/dsh-adapter/compat/persistence.js +17 -0
  483. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +50 -11
  484. package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
  485. package/lib/types/dsh-adapter/compat/sessionLog.js +325 -36
  486. package/lib/types/dsh-adapter/component-identity.d.ts +1 -1
  487. package/lib/types/dsh-adapter/component-identity.d.ts.map +1 -1
  488. package/lib/types/dsh-adapter/component-identity.js +1 -1
  489. package/lib/types/dsh-adapter/contract.d.ts +11 -9
  490. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  491. package/lib/types/dsh-adapter/contract.js +19 -12
  492. package/lib/types/dsh-adapter/decision-guard.d.ts +56 -12
  493. package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
  494. package/lib/types/dsh-adapter/decision-guard.js +134 -22
  495. package/lib/types/dsh-adapter/dialogs.d.ts.map +1 -1
  496. package/lib/types/dsh-adapter/dialogs.js +13 -0
  497. package/lib/types/dsh-adapter/effect-ledger.d.ts +5 -0
  498. package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
  499. package/lib/types/dsh-adapter/effect-ledger.js +53 -15
  500. package/lib/types/dsh-adapter/extension-events.d.ts +2 -9
  501. package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
  502. package/lib/types/dsh-adapter/extension-events.js +0 -20
  503. package/lib/types/dsh-adapter/extensions.d.ts.map +1 -1
  504. package/lib/types/dsh-adapter/extensions.js +3 -2
  505. package/lib/types/dsh-adapter/host-grants.d.ts +23 -0
  506. package/lib/types/dsh-adapter/host-grants.d.ts.map +1 -0
  507. package/lib/types/dsh-adapter/host-grants.js +45 -0
  508. package/lib/types/dsh-adapter/jobs.d.ts +2 -46
  509. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  510. package/lib/types/dsh-adapter/jobs.js +0 -25
  511. package/lib/types/dsh-adapter/message-observer.d.ts +15 -2
  512. package/lib/types/dsh-adapter/message-observer.d.ts.map +1 -1
  513. package/lib/types/dsh-adapter/message-observer.js +157 -28
  514. package/lib/types/dsh-adapter/plugin-host.d.ts +80 -11
  515. package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
  516. package/lib/types/dsh-adapter/plugin-host.js +438 -41
  517. package/lib/types/dsh-adapter/plugin-storage.d.ts +11 -1
  518. package/lib/types/dsh-adapter/plugin-storage.d.ts.map +1 -1
  519. package/lib/types/dsh-adapter/plugin-storage.js +150 -11
  520. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  521. package/lib/types/dsh-adapter/plugin.js +75 -34
  522. package/lib/types/dsh-adapter/plugins-info.d.ts +2 -2
  523. package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
  524. package/lib/types/dsh-adapter/plugins-info.js +11 -6
  525. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  526. package/lib/types/dsh-adapter/presets.js +3 -2
  527. package/lib/types/dsh-adapter/providerWizard.d.ts +2 -159
  528. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  529. package/lib/types/dsh-adapter/questions.d.ts +8 -0
  530. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  531. package/lib/types/dsh-adapter/questions.js +18 -0
  532. package/lib/types/dsh-adapter/recap.d.ts +1 -9
  533. package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
  534. package/lib/types/dsh-adapter/recap.js +0 -14
  535. package/lib/types/dsh-adapter/renderers.d.ts +1 -0
  536. package/lib/types/dsh-adapter/renderers.d.ts.map +1 -1
  537. package/lib/types/dsh-adapter/renderers.js +26 -1
  538. package/lib/types/dsh-adapter/scenes.d.ts +3 -1
  539. package/lib/types/dsh-adapter/scenes.d.ts.map +1 -1
  540. package/lib/types/dsh-adapter/scenes.js +31 -0
  541. package/lib/types/dsh-adapter/sessionTree.d.ts +14 -95
  542. package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -1
  543. package/lib/types/dsh-adapter/sessionTree.js +51 -36
  544. package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
  545. package/lib/types/dsh-adapter/sessions/digest.js +40 -19
  546. package/lib/types/dsh-adapter/sessions/frames.js +2 -0
  547. package/lib/types/dsh-adapter/sessions/index.d.ts +1 -1
  548. package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -1
  549. package/lib/types/dsh-adapter/sessions/index.js +1 -1
  550. package/lib/types/dsh-adapter/sessions/list.d.ts +23 -0
  551. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  552. package/lib/types/dsh-adapter/sessions/list.js +28 -17
  553. package/lib/types/dsh-adapter/sessions/store.d.ts +2 -2
  554. package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
  555. package/lib/types/dsh-adapter/sessions/store.js +12 -11
  556. package/lib/types/dsh-adapter/sessions/types.d.ts +4 -128
  557. package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
  558. package/lib/types/dsh-adapter/sessions/types.js +0 -13
  559. package/lib/types/dsh-adapter/settings-sections.d.ts +4 -95
  560. package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
  561. package/lib/types/dsh-adapter/settings-sections.js +50 -13
  562. package/lib/types/dsh-adapter/settingsEditor.d.ts +2 -36
  563. package/lib/types/dsh-adapter/settingsEditor.d.ts.map +1 -1
  564. package/lib/types/dsh-adapter/settingsEditor.js +0 -18
  565. package/lib/types/dsh-adapter/shortcuts.d.ts +5 -0
  566. package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
  567. package/lib/types/dsh-adapter/shortcuts.js +49 -0
  568. package/lib/types/dsh-adapter/status.d.ts +5 -0
  569. package/lib/types/dsh-adapter/status.d.ts.map +1 -1
  570. package/lib/types/dsh-adapter/status.js +29 -0
  571. package/lib/types/dsh-adapter/subagents.d.ts +9 -49
  572. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  573. package/lib/types/dsh-adapter/subagents.js +92 -1
  574. package/lib/types/dsh-adapter/themes.d.ts +1 -0
  575. package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
  576. package/lib/types/dsh-adapter/themes.js +29 -0
  577. package/lib/types/dsh-adapter/toast.d.ts +13 -0
  578. package/lib/types/dsh-adapter/toast.d.ts.map +1 -1
  579. package/lib/types/dsh-adapter/toast.js +31 -1
  580. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +2 -1
  581. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -1
  582. package/lib/types/dsh-adapter/trajectory/aggregate.js +2 -1
  583. package/lib/types/dsh-adapter/trajectory/guards.d.ts +37 -18
  584. package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
  585. package/lib/types/dsh-adapter/trajectory/guards.js +43 -5
  586. package/lib/types/dsh-adapter/trajectory/inspect.d.ts +2 -2
  587. package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
  588. package/lib/types/dsh-adapter/trajectory/projection.d.ts +31 -13
  589. package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
  590. package/lib/types/dsh-adapter/trajectory/projection.js +71 -14
  591. package/lib/types/dsh-adapter/trajectory/types.d.ts +1 -1
  592. package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
  593. package/lib/types/dsh-adapter/transcript-images.d.ts +2 -19
  594. package/lib/types/dsh-adapter/transcript-images.d.ts.map +1 -1
  595. package/lib/types/dsh-adapter/workspaces.d.ts +2 -49
  596. package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -1
  597. package/lib/types/dsh-adapter/workspaces.js +23 -3
  598. package/lib/types/i18n.d.ts +19 -7
  599. package/lib/types/i18n.d.ts.map +1 -1
  600. package/lib/types/i18n.js +8 -3
  601. package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
  602. package/lib/types/ink/components/ScrollBox.js +30 -33
  603. package/lib/types/ink/dom.d.ts.map +1 -1
  604. package/lib/types/ink/dom.js +32 -64
  605. package/lib/types/ink/get-max-width.d.ts +7 -15
  606. package/lib/types/ink/get-max-width.d.ts.map +1 -1
  607. package/lib/types/ink/get-max-width.js +7 -20
  608. package/lib/types/ink/ink.d.ts +1 -0
  609. package/lib/types/ink/ink.d.ts.map +1 -1
  610. package/lib/types/ink/ink.js +22 -3
  611. package/lib/types/ink/layout/node.d.ts +2 -0
  612. package/lib/types/ink/layout/node.d.ts.map +1 -1
  613. package/lib/types/ink/layout/yoga.d.ts +1 -0
  614. package/lib/types/ink/layout/yoga.d.ts.map +1 -1
  615. package/lib/types/ink/layout/yoga.js +3 -0
  616. package/lib/types/ink/node-cache.d.ts +11 -0
  617. package/lib/types/ink/node-cache.d.ts.map +1 -1
  618. package/lib/types/ink/node-cache.js +3 -0
  619. package/lib/types/ink/output.d.ts +6 -1
  620. package/lib/types/ink/output.d.ts.map +1 -1
  621. package/lib/types/ink/output.js +55 -65
  622. package/lib/types/ink/render-node-to-output.d.ts +24 -1
  623. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  624. package/lib/types/ink/render-node-to-output.js +195 -71
  625. package/lib/types/ink/renderer.d.ts.map +1 -1
  626. package/lib/types/ink/renderer.js +14 -2
  627. package/lib/types/ink/styles.d.ts +12 -0
  628. package/lib/types/ink/styles.d.ts.map +1 -1
  629. package/lib/types/ink/tabstops.d.ts +3 -2
  630. package/lib/types/ink/tabstops.d.ts.map +1 -1
  631. package/lib/types/ink/tabstops.js +5 -4
  632. package/lib/types/ink/wrap-text.js +2 -2
  633. package/lib/types/modelGroups.d.ts +1 -1
  634. package/lib/types/modelGroups.d.ts.map +1 -1
  635. package/lib/types/modelRoute.js +1 -1
  636. package/lib/types/native-ts/yoga-layout/index.d.ts +8 -3
  637. package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
  638. package/lib/types/native-ts/yoga-layout/index.js +23 -8
  639. package/lib/types/plugin-host.d.ts +3 -4
  640. package/lib/types/plugin-host.d.ts.map +1 -1
  641. package/lib/types/plugin-host.js +8 -6
  642. package/lib/types/screens/AgentView.d.ts +1 -1
  643. package/lib/types/screens/AgentView.d.ts.map +1 -1
  644. package/lib/types/screens/Chat.d.ts +3 -2
  645. package/lib/types/screens/Chat.d.ts.map +1 -1
  646. package/lib/types/screens/Chat.js +91 -17
  647. package/lib/types/screens/SessionBrowser.d.ts +1 -1
  648. package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
  649. package/lib/types/screens/SessionTree.d.ts +1 -1
  650. package/lib/types/screens/SessionTree.d.ts.map +1 -1
  651. package/lib/types/screens/Settings.d.ts +1 -1
  652. package/lib/types/screens/Settings.d.ts.map +1 -1
  653. package/lib/types/screens/StatusLine.d.ts +1 -1
  654. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  655. package/lib/types/screens/StatusLine.js +40 -1
  656. package/lib/types/screens/TrajectoryScene.d.ts +1 -1
  657. package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
  658. package/lib/types/sessionModes.d.ts +11 -15
  659. package/lib/types/sessionModes.d.ts.map +1 -1
  660. package/lib/types/sessionModes.js +11 -0
  661. package/lib/types/tuiDisplayPrefs.d.ts +2 -68
  662. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  663. package/lib/types/tuiDisplayPrefs.js +5 -1
  664. package/lib/types/utils/credentials.d.ts +13 -0
  665. package/lib/types/utils/credentials.d.ts.map +1 -0
  666. package/lib/types/utils/credentials.js +41 -0
  667. package/lib/types/utils/fileSuggestions.d.ts +2 -9
  668. package/lib/types/utils/fileSuggestions.d.ts.map +1 -1
  669. package/lib/types/utils/fold-long-lines.d.ts +38 -0
  670. package/lib/types/utils/fold-long-lines.d.ts.map +1 -0
  671. package/lib/types/utils/fold-long-lines.js +91 -0
  672. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/pi-ai.d.ts +1 -1
  673. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +4 -0
  674. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +15 -2
  675. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +10 -10
  676. package/package.json +125 -81
  677. package/presets/liangshen/.dsh-tui-managed.json +1 -1
  678. package/presets/liangshen/agent.cordis.yml +20 -4
  679. package/presets/liangshen/compaction-epoch.mjs +3 -1
  680. package/presets/liangshen/instruction-hint.mjs +2 -1
  681. package/presets/liangshen/session-events.mjs +8 -0
  682. package/lib/types/dsh-adapter/grants.d.ts.map +0 -1
  683. package/lib/types/dsh-adapter/host-descriptor.d.ts +0 -24
  684. package/lib/types/dsh-adapter/host-descriptor.d.ts.map +0 -1
  685. package/lib/types/dsh-adapter/host-descriptor.js +0 -169
  686. package/lib/types/dsh-adapter/plugin-test-utils.d.ts +0 -62
  687. package/lib/types/dsh-adapter/plugin-test-utils.d.ts.map +0 -1
  688. package/lib/types/dsh-adapter/plugin-test-utils.js +0 -61
  689. package/lib/types/plugin-spec/negotiate.d.ts.map +0 -1
  690. package/lib/types/plugin-spec/permission-scope.d.ts.map +0 -1
  691. package/lib/types/plugin-spec/registry.d.ts.map +0 -1
  692. package/lib/types/plugin-spec/schema-check.d.ts.map +0 -1
  693. package/lib/types/plugin-spec/tui-extension.d.ts +0 -16
  694. package/lib/types/plugin-spec/tui-extension.d.ts.map +0 -1
  695. package/lib/types/plugin-spec/tui-extension.js +0 -79
  696. package/lib/types/plugin-spec/types.d.ts.map +0 -1
  697. package/lib/types/plugin-spec/validate.d.ts.map +0 -1
  698. package/lib/types/test-utils.d.ts +0 -2
  699. package/lib/types/test-utils.d.ts.map +0 -1
  700. package/lib/types/test-utils.js +0 -8
  701. /package/lib/types/{plugin-spec → adapter/standard}/negotiate.d.ts +0 -0
  702. /package/lib/types/{plugin-spec → adapter/standard}/negotiate.js +0 -0
  703. /package/lib/types/{plugin-spec → adapter/standard}/registry.d.ts +0 -0
  704. /package/lib/types/{plugin-spec → adapter/standard}/schema-check.d.ts +0 -0
  705. /package/lib/types/{plugin-spec → adapter/standard}/types.js +0 -0
@@ -0,0 +1,697 @@
1
+ /**
2
+ * Upstream drivers for the TUI extension seams.
3
+ *
4
+ * Each driver is a per-capability adapter over a legacy host-only facade:
5
+ * status, shortcuts, renderers, themes, toast, and command trees. All
6
+ * register/subscribe probes use a unique temporary id, verify visibility,
7
+ * dispose, then prove the same id is again available (no residue). Read-only
8
+ * drivers only issue host-internal reads.
9
+ */
10
+ import { randomUUID } from 'node:crypto';
11
+ import { lifecycleFromDetection } from '../kernel/lifecycle.js';
12
+ import { getHostStatusStore } from '../../dsh-adapter/status.js';
13
+ import { getHostShortcuts } from '../../dsh-adapter/shortcuts.js';
14
+ import { getHostRenderers } from '../../dsh-adapter/renderers.js';
15
+ import { getHostThemes } from '../../dsh-adapter/themes.js';
16
+ import { getHostToastStore } from '../../dsh-adapter/toast.js';
17
+ import { getHostCommandTrees } from '../../dsh-adapter/command-trees.js';
18
+ function serviceEvidence(id) {
19
+ return { kind: 'service', id };
20
+ }
21
+ function methodEvidence(service, method) {
22
+ return { kind: 'method', id: `${service}:${method}` };
23
+ }
24
+ function probeEvidence(id, detail) {
25
+ return { kind: 'probe', id, detail };
26
+ }
27
+ function errorText(error) {
28
+ return error instanceof Error ? error.message : String(error);
29
+ }
30
+ function degraded(capability, service, missing, evidence = []) {
31
+ return [lifecycleFromDetection(capability, { state: 'degraded', missing: [...missing], evidence })];
32
+ }
33
+ function degradedFeature(capability, evidence, missing) {
34
+ return lifecycleFromDetection(capability, { state: 'degraded', missing: [missing], evidence });
35
+ }
36
+ function liveFeature(capability, evidence) {
37
+ return lifecycleFromDetection(capability, { state: 'supported', evidence });
38
+ }
39
+ // ── status ────────────────────────────────────────────────────────────────
40
+ export function detectStatusCapability(ctx) {
41
+ const service = ctx?.get?.('tuiStatus');
42
+ if (service === undefined)
43
+ return { state: 'unsupported', reason: 'tuiStatus service is not mounted' };
44
+ const evidence = [serviceEvidence('tuiStatus')];
45
+ let store;
46
+ try {
47
+ store = getHostStatusStore(service);
48
+ }
49
+ catch {
50
+ store = undefined;
51
+ }
52
+ if (store === undefined)
53
+ return { state: 'degraded', missing: ['tuiStatus host store'], evidence };
54
+ for (const method of ['set', 'getSnapshot', 'subscribe']) {
55
+ if (typeof store[method] !== 'function') {
56
+ return { state: 'degraded', missing: [`tuiStatus.${method}()`], evidence };
57
+ }
58
+ }
59
+ return { state: 'supported', evidence };
60
+ }
61
+ async function verifyStatusLive(ctx) {
62
+ const service = ctx?.get?.('tuiStatus');
63
+ const store = service === undefined ? undefined : (() => {
64
+ try {
65
+ return getHostStatusStore(service);
66
+ }
67
+ catch {
68
+ return undefined;
69
+ }
70
+ })();
71
+ const baseEvidence = [serviceEvidence('tuiStatus')];
72
+ if (store === undefined) {
73
+ return [
74
+ degradedFeature('host.status.set', baseEvidence, 'tuiStatus host store'),
75
+ degradedFeature('host.status.snapshot', baseEvidence, 'tuiStatus host store'),
76
+ degradedFeature('host.status.subscribe', baseEvidence, 'tuiStatus host store'),
77
+ ];
78
+ }
79
+ const evidence = [serviceEvidence('tuiStatus')];
80
+ const key = `dsh_tui_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
81
+ const token = Math.floor(Math.random() * 0x7fffffff);
82
+ let setLive = false;
83
+ try {
84
+ store.set(key, 'ok', token);
85
+ const snapshot = store.getSnapshot();
86
+ if (!snapshot.some(entry => entry.key === key)) {
87
+ throw new Error('temporary status was not visible');
88
+ }
89
+ evidence.push(probeEvidence(`tuiStatus.set+clear(${key})`, 'temporary status set and visible'));
90
+ const cleared = store.clearIf(key, token);
91
+ if (cleared !== true) {
92
+ throw new Error('temporary status clearIf returned false');
93
+ }
94
+ const after = store.getSnapshot();
95
+ if (after.some(entry => entry.key === key)) {
96
+ throw new Error('temporary status left residue after clear');
97
+ }
98
+ evidence.push(probeEvidence('tuiStatus.clear()', 'temporary status removed and no residue remains'));
99
+ setLive = true;
100
+ }
101
+ catch (error) {
102
+ try {
103
+ store.clearIf(key, token);
104
+ }
105
+ catch {
106
+ // Best-effort cleanup.
107
+ }
108
+ evidence.push(probeEvidence('tuiStatus.reversible-live-probe', errorText(error)));
109
+ }
110
+ const out = [];
111
+ out.push(setLive
112
+ ? liveFeature('host.status.set', evidence)
113
+ : degradedFeature('host.status.set', evidence, 'tuiStatus.reversible-live-probe'));
114
+ out.push(setLive
115
+ ? liveFeature('host.status.snapshot', [
116
+ serviceEvidence('tuiStatus'),
117
+ probeEvidence('tuiStatus.snapshot()', 'temporary status visible and removed in snapshot'),
118
+ ])
119
+ : degradedFeature('host.status.snapshot', [serviceEvidence('tuiStatus')], 'tuiStatus.snapshot() live-probe'));
120
+ out.push(degradedFeature('host.status.subscribe', [serviceEvidence('tuiStatus')], 'host.status.subscribe.live-probe'));
121
+ return out;
122
+ }
123
+ function createStatusPort(store) {
124
+ let tokenSeq = 1;
125
+ return Object.freeze({
126
+ set(key, text) {
127
+ const token = tokenSeq++;
128
+ store.set(key, text === undefined ? undefined : String(text), token);
129
+ return () => {
130
+ store.clearIf(key, token);
131
+ };
132
+ },
133
+ snapshot: () => store.getSnapshot(),
134
+ subscribe: listener => store.subscribe(listener),
135
+ });
136
+ }
137
+ // ── shortcuts ─────────────────────────────────────────────────────────────
138
+ export function detectShortcutsCapability(ctx) {
139
+ const service = ctx?.get?.('tuiShortcuts');
140
+ if (service === undefined)
141
+ return { state: 'unsupported', reason: 'tuiShortcuts service is not mounted' };
142
+ const evidence = [serviceEvidence('tuiShortcuts')];
143
+ let host;
144
+ try {
145
+ host = getHostShortcuts(service);
146
+ }
147
+ catch {
148
+ host = undefined;
149
+ }
150
+ if (host === undefined)
151
+ return { state: 'degraded', missing: ['tuiShortcuts host facade'], evidence };
152
+ for (const method of ['register', 'list', 'dispatch']) {
153
+ if (typeof host[method] !== 'function') {
154
+ return { state: 'degraded', missing: [`tuiShortcuts.${method}()`], evidence };
155
+ }
156
+ }
157
+ return { state: 'supported', evidence };
158
+ }
159
+ async function verifyShortcutsLive(ctx) {
160
+ const service = ctx?.get?.('tuiShortcuts');
161
+ const host = service === undefined ? undefined : (() => {
162
+ try {
163
+ return getHostShortcuts(service);
164
+ }
165
+ catch {
166
+ return undefined;
167
+ }
168
+ })();
169
+ const baseEvidence = [serviceEvidence('tuiShortcuts')];
170
+ if (host === undefined) {
171
+ return [
172
+ degradedFeature('host.shortcuts.register', baseEvidence, 'tuiShortcuts host facade'),
173
+ degradedFeature('host.shortcuts.list', baseEvidence, 'tuiShortcuts host facade'),
174
+ degradedFeature('host.shortcuts.dispatch', baseEvidence, 'tuiShortcuts host facade'),
175
+ ];
176
+ }
177
+ const evidence = [serviceEvidence('tuiShortcuts')];
178
+ const shortcutKeys = ['9', '0', 'u', 'i', 'o', 'p', 'h', 'j', 'k', 'l', 'b', 'n', 'm'];
179
+ const combo = `ctrl+alt+shift+${shortcutKeys[Math.floor(Math.random() * shortcutKeys.length)]}`;
180
+ const options = { description: 'dsh-tui reversible shortcut probe', handler: () => undefined };
181
+ let activeCombo = combo;
182
+ let dispose;
183
+ let observed = false;
184
+ let registerLive = false;
185
+ try {
186
+ dispose = host.register(combo, options);
187
+ const listed = host.list();
188
+ observed = Array.isArray(listed) && listed.some(entry => entry.combo === combo);
189
+ if (!observed) {
190
+ for (const candidate of shortcutKeys) {
191
+ const candidateCombo = `ctrl+alt+shift+${candidate}`;
192
+ dispose?.();
193
+ dispose = undefined;
194
+ dispose = host.register(candidateCombo, options);
195
+ const candidateList = host.list();
196
+ if (Array.isArray(candidateList) && candidateList.some(entry => entry.combo === candidateCombo)) {
197
+ activeCombo = candidateCombo;
198
+ observed = true;
199
+ break;
200
+ }
201
+ }
202
+ if (!observed)
203
+ throw new Error('temporary shortcut was not visible');
204
+ }
205
+ evidence.push(probeEvidence(`tuiShortcuts.register+list(${activeCombo})`, 'temporary shortcut registered and listed'));
206
+ dispose();
207
+ dispose = undefined;
208
+ const second = host.register(activeCombo, options);
209
+ second();
210
+ evidence.push(probeEvidence(`tuiShortcuts.dispose(${activeCombo})`, 'temporary shortcut removed; same combo re-register succeeded'));
211
+ registerLive = true;
212
+ }
213
+ catch (error) {
214
+ try {
215
+ dispose?.();
216
+ }
217
+ catch {
218
+ // ignore
219
+ }
220
+ evidence.push(probeEvidence('tuiShortcuts.reversible-live-probe', errorText(error)));
221
+ }
222
+ const out = [];
223
+ out.push(registerLive
224
+ ? liveFeature('host.shortcuts.register', evidence)
225
+ : degradedFeature('host.shortcuts.register', evidence, 'tuiShortcuts.reversible-live-probe'));
226
+ out.push(registerLive
227
+ ? liveFeature('host.shortcuts.list', [
228
+ serviceEvidence('tuiShortcuts'),
229
+ methodEvidence('tuiShortcuts', 'list'),
230
+ probeEvidence('tuiShortcuts.list()', 'temporary shortcut visible through list()'),
231
+ ])
232
+ : degradedFeature('host.shortcuts.list', [serviceEvidence('tuiShortcuts'), methodEvidence('tuiShortcuts', 'list')], 'tuiShortcuts.list() live-probe'));
233
+ out.push(degradedFeature('host.shortcuts.dispatch', [serviceEvidence('tuiShortcuts'), methodEvidence('tuiShortcuts', 'dispatch')], 'host.shortcuts.dispatch.live-probe'));
234
+ return out;
235
+ }
236
+ function createShortcutsPort(host) {
237
+ return Object.freeze({
238
+ register: (combo, options) => host.register(combo, options),
239
+ list: () => host.list(),
240
+ dispatch: (input, key) => host.dispatch(input, key),
241
+ });
242
+ }
243
+ // ── renderers ─────────────────────────────────────────────────────────────
244
+ export function detectRenderersCapability(ctx) {
245
+ const service = ctx?.get?.('tuiRenderers');
246
+ if (service === undefined)
247
+ return { state: 'unsupported', reason: 'tuiRenderers service is not mounted' };
248
+ const evidence = [serviceEvidence('tuiRenderers')];
249
+ let host;
250
+ try {
251
+ host = getHostRenderers(service);
252
+ }
253
+ catch {
254
+ host = undefined;
255
+ }
256
+ if (host === undefined)
257
+ return { state: 'degraded', missing: ['tuiRenderers host facade'], evidence };
258
+ for (const method of ['register', 'render']) {
259
+ if (typeof host[method] !== 'function') {
260
+ return { state: 'degraded', missing: [`tuiRenderers.${method}()`], evidence };
261
+ }
262
+ }
263
+ return { state: 'supported', evidence };
264
+ }
265
+ async function verifyRenderersLive(ctx) {
266
+ const service = ctx?.get?.('tuiRenderers');
267
+ const host = service === undefined ? undefined : (() => {
268
+ try {
269
+ return getHostRenderers(service);
270
+ }
271
+ catch {
272
+ return undefined;
273
+ }
274
+ })();
275
+ const baseEvidence = [serviceEvidence('tuiRenderers')];
276
+ if (host === undefined) {
277
+ return [
278
+ degradedFeature('host.renderers.register', baseEvidence, 'tuiRenderers host facade'),
279
+ degradedFeature('host.renderers.render', baseEvidence, 'tuiRenderers host facade'),
280
+ ];
281
+ }
282
+ const evidence = [serviceEvidence('tuiRenderers')];
283
+ const type = `dsh-tui/probe-${randomUUID().replace(/-/g, '').slice(0, 8)}`;
284
+ let dispose;
285
+ let registerLive = false;
286
+ try {
287
+ dispose = host.register(type, payload => ({ lines: ['probe-ok', typeof payload] }));
288
+ const result = host.render(type, 'x');
289
+ if (result === undefined || !Array.isArray(result.lines)) {
290
+ throw new Error('temporary renderer did not produce output');
291
+ }
292
+ evidence.push(probeEvidence(`tuiRenderers.register+render(${type})`, 'temporary renderer registered and rendered'));
293
+ dispose();
294
+ dispose = undefined;
295
+ if (host.render(type, 'x') !== undefined) {
296
+ throw new Error('temporary renderer left residue after dispose');
297
+ }
298
+ evidence.push(probeEvidence(`tuiRenderers.dispose(${type})`, 'temporary renderer removed; render(disposed) returned undefined'));
299
+ registerLive = true;
300
+ }
301
+ catch (error) {
302
+ try {
303
+ dispose?.();
304
+ }
305
+ catch {
306
+ // ignore
307
+ }
308
+ evidence.push(probeEvidence('tuiRenderers.reversible-live-probe', errorText(error)));
309
+ }
310
+ const out = [];
311
+ out.push(registerLive
312
+ ? liveFeature('host.renderers.register', evidence)
313
+ : degradedFeature('host.renderers.register', evidence, 'tuiRenderers.reversible-live-probe'));
314
+ out.push(registerLive
315
+ ? liveFeature('host.renderers.render', [
316
+ serviceEvidence('tuiRenderers'),
317
+ methodEvidence('tuiRenderers', 'render'),
318
+ probeEvidence('tuiRenderers.render()', 'temporary renderer produced output and disposed cleanly'),
319
+ ])
320
+ : degradedFeature('host.renderers.render', [serviceEvidence('tuiRenderers'), methodEvidence('tuiRenderers', 'render')], 'tuiRenderers.render() live-probe'));
321
+ return out;
322
+ }
323
+ function createRenderersPort(host) {
324
+ return Object.freeze({
325
+ register: (type, renderer) => host.register(type, renderer),
326
+ render: (type, payload) => host.render(type, payload),
327
+ });
328
+ }
329
+ // ── themes ────────────────────────────────────────────────────────────────
330
+ export function detectThemesCapability(ctx) {
331
+ const service = ctx?.get?.('tuiThemes');
332
+ if (service === undefined)
333
+ return { state: 'unsupported', reason: 'tuiThemes service is not mounted' };
334
+ const evidence = [serviceEvidence('tuiThemes')];
335
+ let host;
336
+ try {
337
+ host = getHostThemes(service);
338
+ }
339
+ catch {
340
+ host = undefined;
341
+ }
342
+ if (host === undefined)
343
+ return { state: 'degraded', missing: ['tuiThemes host facade'], evidence };
344
+ for (const method of ['register', 'getSnapshot', 'resolve']) {
345
+ if (typeof host[method] !== 'function') {
346
+ return { state: 'degraded', missing: [`tuiThemes.${method}()`], evidence };
347
+ }
348
+ }
349
+ return { state: 'supported', evidence };
350
+ }
351
+ async function verifyThemesLive(ctx) {
352
+ const service = ctx?.get?.('tuiThemes');
353
+ const host = service === undefined ? undefined : (() => {
354
+ try {
355
+ return getHostThemes(service);
356
+ }
357
+ catch {
358
+ return undefined;
359
+ }
360
+ })();
361
+ const baseEvidence = [serviceEvidence('tuiThemes')];
362
+ if (host === undefined) {
363
+ return [
364
+ degradedFeature('host.themes.register', baseEvidence, 'tuiThemes host facade'),
365
+ degradedFeature('host.themes.snapshot', baseEvidence, 'tuiThemes host facade'),
366
+ degradedFeature('host.themes.resolver', baseEvidence, 'tuiThemes host facade'),
367
+ degradedFeature('host.themes.subscribe', baseEvidence, 'tuiThemes host facade'),
368
+ ];
369
+ }
370
+ const evidence = [serviceEvidence('tuiThemes')];
371
+ const name = `dshtuiprobe${randomUUID().replace(/-/g, '').slice(0, 8)}`;
372
+ let dispose;
373
+ let registerLive = false;
374
+ try {
375
+ dispose = host.register({ name, displayName: 'dsh-tui probe', base: 'dark', colors: {} });
376
+ const snapshot = host.getSnapshot();
377
+ if (!snapshot.some(entry => entry.name === name)) {
378
+ throw new Error('temporary theme was not visible');
379
+ }
380
+ if (host.resolve(name) === undefined) {
381
+ throw new Error('temporary theme did not resolve');
382
+ }
383
+ evidence.push(probeEvidence(`tuiThemes.register+resolve(${name})`, 'temporary theme registered and resolved'));
384
+ dispose();
385
+ dispose = undefined;
386
+ if (host.resolve(name) !== undefined) {
387
+ throw new Error('temporary theme left residue after dispose');
388
+ }
389
+ evidence.push(probeEvidence(`tuiThemes.dispose(${name})`, 'temporary theme removed; resolve(disposed) returned undefined'));
390
+ registerLive = true;
391
+ }
392
+ catch (error) {
393
+ try {
394
+ dispose?.();
395
+ }
396
+ catch {
397
+ // ignore
398
+ }
399
+ evidence.push(probeEvidence('tuiThemes.reversible-live-probe', errorText(error)));
400
+ }
401
+ const out = [];
402
+ out.push(registerLive
403
+ ? liveFeature('host.themes.register', evidence)
404
+ : degradedFeature('host.themes.register', evidence, 'tuiThemes.reversible-live-probe'));
405
+ out.push(registerLive
406
+ ? liveFeature('host.themes.snapshot', [
407
+ serviceEvidence('tuiThemes'),
408
+ methodEvidence('tuiThemes', 'getSnapshot'),
409
+ probeEvidence('tuiThemes.snapshot()', 'temporary theme visible in snapshot'),
410
+ ])
411
+ : degradedFeature('host.themes.snapshot', [serviceEvidence('tuiThemes')], 'tuiThemes.snapshot() live-probe'));
412
+ out.push(registerLive
413
+ ? liveFeature('host.themes.resolver', [
414
+ serviceEvidence('tuiThemes'),
415
+ methodEvidence('tuiThemes', 'resolve'),
416
+ probeEvidence('tuiThemes.resolve()', 'temporary theme resolved and removed cleanly'),
417
+ ])
418
+ : degradedFeature('host.themes.resolver', [serviceEvidence('tuiThemes'), methodEvidence('tuiThemes', 'resolve')], 'tuiThemes.resolve() live-probe'));
419
+ out.push(degradedFeature('host.themes.subscribe', [serviceEvidence('tuiThemes')], 'host.themes.subscribe.live-probe'));
420
+ return out;
421
+ }
422
+ function createThemesPort(host) {
423
+ return Object.freeze({
424
+ register: descriptor => host.register(descriptor),
425
+ snapshot: () => host.getSnapshot(),
426
+ resolve: name => host.resolve(name),
427
+ subscribe: listener => host.subscribe(listener),
428
+ });
429
+ }
430
+ // ── toast ─────────────────────────────────────────────────────────────────
431
+ export function detectToastCapability(ctx) {
432
+ const service = ctx?.get?.('tuiToast');
433
+ if (service === undefined)
434
+ return { state: 'unsupported', reason: 'tuiToast service is not mounted' };
435
+ const evidence = [serviceEvidence('tuiToast')];
436
+ let store;
437
+ try {
438
+ store = getHostToastStore(service);
439
+ }
440
+ catch {
441
+ store = undefined;
442
+ }
443
+ if (store === undefined)
444
+ return { state: 'degraded', missing: ['tuiToast host store'], evidence };
445
+ if (typeof store.addProbeSink !== 'function' || typeof store.deliverProbe !== 'function') {
446
+ return { state: 'degraded', missing: ['tuiToast store probe methods'], evidence };
447
+ }
448
+ return { state: 'supported', evidence };
449
+ }
450
+ async function verifyToastLive(ctx) {
451
+ const service = ctx?.get?.('tuiToast');
452
+ const store = service === undefined ? undefined : (() => {
453
+ try {
454
+ return getHostToastStore(service);
455
+ }
456
+ catch {
457
+ return undefined;
458
+ }
459
+ })();
460
+ const baseEvidence = [serviceEvidence('tuiToast')];
461
+ if (store === undefined) {
462
+ return [degradedFeature('host.toast.show', baseEvidence, 'tuiToast host store')];
463
+ }
464
+ const evidence = [
465
+ serviceEvidence('tuiToast'),
466
+ methodEvidence('tuiToast', 'deliver'),
467
+ ];
468
+ // `deliverProbe()` proves only that a probe-only channel works; it does NOT
469
+ // prove the real production `deliver()` path (channel.notify / UI sink) is
470
+ // wired and non-disruptively reachable. Without a non-disruptive real
471
+ // production-delivery probe, `host.toast.show` must remain degraded.
472
+ evidence.push(probeEvidence('tuiToast.hasSink()', typeof store.hasSink === 'function' && store.hasSink()
473
+ ? 'production toast sink is present, but real delivery path is not verified by a non-disruptive probe'
474
+ : 'production toast sink is absent'));
475
+ return [degradedFeature('host.toast.show', evidence, 'host.toast.show.real-production-delivery-not-verified')];
476
+ }
477
+ function createToastPort(store) {
478
+ return Object.freeze({
479
+ show: delivery => store.deliver(delivery),
480
+ });
481
+ }
482
+ // ── command trees ─────────────────────────────────────────────────────────
483
+ export function detectCommandTreesCapability(ctx) {
484
+ const service = ctx?.get?.('tuiCommandTrees');
485
+ if (service === undefined)
486
+ return { state: 'unsupported', reason: 'tuiCommandTrees service is not mounted' };
487
+ const evidence = [serviceEvidence('tuiCommandTrees')];
488
+ let host;
489
+ try {
490
+ host = getHostCommandTrees(service);
491
+ }
492
+ catch {
493
+ host = undefined;
494
+ }
495
+ if (host === undefined)
496
+ return { state: 'degraded', missing: ['tuiCommandTrees host facade'], evidence };
497
+ for (const method of ['register', 'children', 'descriptions']) {
498
+ if (typeof host[method] !== 'function') {
499
+ return { state: 'degraded', missing: [`tuiCommandTrees.${method}()`], evidence };
500
+ }
501
+ }
502
+ return { state: 'supported', evidence };
503
+ }
504
+ async function verifyCommandTreesLive(ctx) {
505
+ const service = ctx?.get?.('tuiCommandTrees');
506
+ const host = service === undefined ? undefined : (() => {
507
+ try {
508
+ return getHostCommandTrees(service);
509
+ }
510
+ catch {
511
+ return undefined;
512
+ }
513
+ })();
514
+ const baseEvidence = [serviceEvidence('tuiCommandTrees')];
515
+ if (host === undefined) {
516
+ return [
517
+ degradedFeature('host.command-trees.register', baseEvidence, 'tuiCommandTrees host facade'),
518
+ degradedFeature('host.command-trees.children', baseEvidence, 'tuiCommandTrees host facade'),
519
+ degradedFeature('host.command-trees.descriptions', baseEvidence, 'tuiCommandTrees host facade'),
520
+ ];
521
+ }
522
+ const evidence = [serviceEvidence('tuiCommandTrees')];
523
+ const root = `dshtuiprobe${randomUUID().replace(/-/g, '').slice(0, 8)}`;
524
+ let dispose;
525
+ let registerLive = false;
526
+ try {
527
+ dispose = host.register({ root, children: () => [{ value: 'child' }] });
528
+ const children = host.children([root]);
529
+ if (!Array.isArray(children) || children.length === 0) {
530
+ throw new Error('temporary command tree did not resolve children');
531
+ }
532
+ evidence.push(probeEvidence(`tuiCommandTrees.register+children(${root})`, 'temporary command tree registered and resolved'));
533
+ dispose();
534
+ dispose = undefined;
535
+ if (host.children([root]).length !== 0) {
536
+ throw new Error('temporary command tree left residue after dispose');
537
+ }
538
+ evidence.push(probeEvidence(`tuiCommandTrees.dispose(${root})`, 'temporary command tree removed; children(disposed) returned empty'));
539
+ registerLive = true;
540
+ }
541
+ catch (error) {
542
+ try {
543
+ dispose?.();
544
+ }
545
+ catch {
546
+ // ignore
547
+ }
548
+ evidence.push(probeEvidence('tuiCommandTrees.reversible-live-probe', errorText(error)));
549
+ }
550
+ const out = [];
551
+ out.push(registerLive
552
+ ? liveFeature('host.command-trees.register', evidence)
553
+ : degradedFeature('host.command-trees.register', evidence, 'tuiCommandTrees.reversible-live-probe'));
554
+ out.push(registerLive
555
+ ? liveFeature('host.command-trees.children', [
556
+ serviceEvidence('tuiCommandTrees'),
557
+ methodEvidence('tuiCommandTrees', 'children'),
558
+ probeEvidence('tuiCommandTrees.children()', 'temporary command tree resolved children and cleaned up'),
559
+ ])
560
+ : degradedFeature('host.command-trees.children', [serviceEvidence('tuiCommandTrees'), methodEvidence('tuiCommandTrees', 'children')], 'tuiCommandTrees.children() live-probe'));
561
+ out.push(degradedFeature('host.command-trees.descriptions', [serviceEvidence('tuiCommandTrees'), methodEvidence('tuiCommandTrees', 'descriptions')], 'host.command-trees.descriptions.live-probe'));
562
+ return out;
563
+ }
564
+ function createCommandTreesPort(host) {
565
+ return Object.freeze({
566
+ register: provider => host.register(provider),
567
+ children: path => host.children(path),
568
+ descriptions: root => host.descriptions(root),
569
+ });
570
+ }
571
+ // ── driver objects ────────────────────────────────────────────────────────
572
+ export const statusDriver = {
573
+ id: 'dsh-tui-status',
574
+ upstreamFamily: 'dsh-tui',
575
+ capability: 'host.status',
576
+ mountEffectClass: 'mutate',
577
+ detect: detectStatusCapability,
578
+ verifyLive: verifyStatusLive,
579
+ async mount(context) {
580
+ const service = context?.get?.('tuiStatus');
581
+ const store = service === undefined ? undefined : (() => {
582
+ try {
583
+ return getHostStatusStore(service);
584
+ }
585
+ catch {
586
+ return undefined;
587
+ }
588
+ })();
589
+ const ports = store === undefined ? undefined : { status: createStatusPort(store) };
590
+ return { disposer: () => undefined, ...(ports === undefined ? {} : { ports }) };
591
+ },
592
+ };
593
+ export const shortcutsDriver = {
594
+ id: 'dsh-tui-shortcuts',
595
+ upstreamFamily: 'dsh-tui',
596
+ capability: 'host.shortcuts',
597
+ mountEffectClass: 'register',
598
+ detect: detectShortcutsCapability,
599
+ verifyLive: verifyShortcutsLive,
600
+ async mount(context) {
601
+ const service = context?.get?.('tuiShortcuts');
602
+ const host = service === undefined ? undefined : (() => {
603
+ try {
604
+ return getHostShortcuts(service);
605
+ }
606
+ catch {
607
+ return undefined;
608
+ }
609
+ })();
610
+ const ports = host === undefined ? undefined : { shortcuts: createShortcutsPort(host) };
611
+ return { disposer: () => undefined, ...(ports === undefined ? {} : { ports }) };
612
+ },
613
+ };
614
+ export const renderersDriver = {
615
+ id: 'dsh-tui-renderers',
616
+ upstreamFamily: 'dsh-tui',
617
+ capability: 'host.renderers',
618
+ mountEffectClass: 'register',
619
+ detect: detectRenderersCapability,
620
+ verifyLive: verifyRenderersLive,
621
+ async mount(context) {
622
+ const service = context?.get?.('tuiRenderers');
623
+ const host = service === undefined ? undefined : (() => {
624
+ try {
625
+ return getHostRenderers(service);
626
+ }
627
+ catch {
628
+ return undefined;
629
+ }
630
+ })();
631
+ const ports = host === undefined ? undefined : { renderers: createRenderersPort(host) };
632
+ return { disposer: () => undefined, ...(ports === undefined ? {} : { ports }) };
633
+ },
634
+ };
635
+ export const themesDriver = {
636
+ id: 'dsh-tui-themes',
637
+ upstreamFamily: 'dsh-tui',
638
+ capability: 'host.themes',
639
+ mountEffectClass: 'register',
640
+ detect: detectThemesCapability,
641
+ verifyLive: verifyThemesLive,
642
+ async mount(context) {
643
+ const service = context?.get?.('tuiThemes');
644
+ const host = service === undefined ? undefined : (() => {
645
+ try {
646
+ return getHostThemes(service);
647
+ }
648
+ catch {
649
+ return undefined;
650
+ }
651
+ })();
652
+ const ports = host === undefined ? undefined : { themes: createThemesPort(host) };
653
+ return { disposer: () => undefined, ...(ports === undefined ? {} : { ports }) };
654
+ },
655
+ };
656
+ export const toastDriver = {
657
+ id: 'dsh-tui-toast',
658
+ upstreamFamily: 'dsh-tui',
659
+ capability: 'host.toast',
660
+ mountEffectClass: 'mutate',
661
+ detect: detectToastCapability,
662
+ verifyLive: verifyToastLive,
663
+ async mount(context) {
664
+ const service = context?.get?.('tuiToast');
665
+ const store = service === undefined ? undefined : (() => {
666
+ try {
667
+ return getHostToastStore(service);
668
+ }
669
+ catch {
670
+ return undefined;
671
+ }
672
+ })();
673
+ const ports = store === undefined ? undefined : { toast: createToastPort(store) };
674
+ return { disposer: () => undefined, ...(ports === undefined ? {} : { ports }) };
675
+ },
676
+ };
677
+ export const commandTreesDriver = {
678
+ id: 'dsh-tui-command-trees',
679
+ upstreamFamily: 'dsh-tui',
680
+ capability: 'host.command-trees',
681
+ mountEffectClass: 'register',
682
+ detect: detectCommandTreesCapability,
683
+ verifyLive: verifyCommandTreesLive,
684
+ async mount(context) {
685
+ const service = context?.get?.('tuiCommandTrees');
686
+ const host = service === undefined ? undefined : (() => {
687
+ try {
688
+ return getHostCommandTrees(service);
689
+ }
690
+ catch {
691
+ return undefined;
692
+ }
693
+ })();
694
+ const ports = host === undefined ? undefined : { commandTrees: createCommandTreesPort(host) };
695
+ return { disposer: () => undefined, ...(ports === undefined ? {} : { ports }) };
696
+ },
697
+ };