@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
@@ -9,9 +9,11 @@
9
9
  * - `generationId` — the runtime generation id (C-050), a fresh UUID per
10
10
  * row activation; ledger records and the Host Descriptor stamp it so
11
11
  * effects from different process generations can never be confused.
12
- * - `grants` — the unified 8-permission live GrantStore (./grants.js).
13
- * - `hostDescriptor()` — the C-010 Host Descriptor (./host-descriptor.js),
14
- * built lazily and cached; drifted contracts are dropped fail-closed.
12
+ * - `grants` — the unified 8-permission live GrantStore
13
+ * (`../adapter/standard/grants.js`).
14
+ * - `hostDescriptor()` — the C-010 Host Descriptor
15
+ * (`../adapter/standard/descriptor.js`), built lazily and cached; drifted
16
+ * contracts are dropped fail-closed.
15
17
  * - `selfCheck()` — vendored registry + contract-profile violations
16
18
  * (definition/profile drift, ten-point incompleteness, parity mismatches).
17
19
  * - `registerCommand(pluginCtx, definition)` — the MEDIATED command
@@ -34,65 +36,261 @@
34
36
  */
35
37
  import { Context, Service } from '@deepseek-ai/cordis';
36
38
  import { randomUUID } from 'node:crypto';
37
- import { parseManifest, projectManifest } from '@dsh-std/manifest';
38
- import { loadSpecData, verifyContractProfiles, verifyRegistry } from '../plugin-spec/registry.js';
39
- import { createContractIndex, validatePlugin } from '../plugin-spec/validate.js';
40
- import { negotiate } from '../plugin-spec/negotiate.js';
41
- import { readGrantStore } from './grants.js';
42
- import { buildHostDescriptor, HOST_SUPPORTED_CONTRACTS } from './host-descriptor.js';
39
+ import { parseManifest, projectManifest } from '../adapter/standard/protocols.js';
40
+ import { loadSpecData, verifyContractProfiles, verifyRegistry } from '../adapter/standard/registry.js';
41
+ import { createContractIndex, validatePlugin, negotiate } from '../adapter/standard/admission.js';
42
+ import { readGrantStore } from '../adapter/standard/grants.js';
43
+ import { facadeFromLegacy } from '../adapter/kernel/legacy-facade.js';
44
+ import { createShadowGuardedHostFacade } from '../adapter/kernel/host-facade.js';
45
+ import { KernelRuntime } from '../adapter/kernel/kernel-runtime.js';
46
+ import { ADAPTER_KERNEL_SLICES } from '../adapter/kernel/slices/index.js';
47
+ import { assertCapabilityShadowPolicy, } from '../adapter/kernel/runtime.js';
48
+ import { adapterRuntimeFor } from '../adapter/kernel/runtime-context.js';
49
+ import { hostDescriptorDriver } from '../adapter/upstream/host-descriptor-driver.js';
50
+ import { buildHostDescriptor, buildLegacyHostDescriptor, HOST_SUPPORTED_CONTRACTS } from '../adapter/standard/descriptor.js';
43
51
  import { TuiEffectLedgerRuntime } from './effect-ledger.js';
44
52
  import { TuiPluginStorageRuntime } from './plugin-storage.js';
45
53
  import { TuiMessageObserverRuntime } from './message-observer.js';
46
54
  import { stampCommandOwner, unstampCommandOwner } from './command-attribution.js';
47
55
  import { hasCommandErrorCode, mapCommandError } from './command-errors.js';
48
- import { installDecisionGuard, decisionHandlerMetadataOf, registerDecisionHandler, withDecisionRegistration, } from './decision-guard.js';
56
+ import { installDecisionGuard, decisionHandlerMetadataOf, probeDecisionEventFeatures, registerDecisionHandler, withDecisionRegistration, } from './decision-guard.js';
49
57
  import { bindComponentIdentity, declaresCommand, requiresDecisionEvents, requiresContract, requireComponentIdentity, } from './component-identity.js';
50
- import { activationContext, activationFiber, assertCallerContext, bindCallerEffect, compositionRoot, concreteService } from './host-access.js';
58
+ import { activationContext, activationFiber, assertCallerContext, bindCallerEffect, compositionRoot, concreteService, withHostRootCapability } from './host-access.js';
59
+ import { bindHostGrantStore } from './host-grants.js';
60
+ import { registerCommandLiveProbe } from '../adapter/kernel/host-probe-access.js';
51
61
  /** `ctx.tuiPluginHost` — plugin-interop anchor (generation, grants, descriptor). */
52
62
  export class TuiPluginHostRuntime extends Service {
53
63
  /** Runtime generation id (C-050): fresh per activation of this row. */
54
64
  get generationId() { return hostStateFor(this).generationId; }
55
- /** Live scoped grant store; every operation observes the current file. */
56
- get grants() { return hostStateFor(this).grants; }
65
+ /** Caller-safe grant facade; the internal full-parameter store stays
66
+ * host-only (see getHostGrantStore in ./host-grants.js). */
67
+ get grants() {
68
+ const raw = hostStateFor(this).grants;
69
+ const runtime = this;
70
+ return Object.freeze({
71
+ allows(pluginCtx, permission, scope) {
72
+ const host = hostContextFor(runtime);
73
+ const caller = assertActivationContext(host, pluginCtx);
74
+ const identity = requireComponentIdentity(caller);
75
+ return raw.allows({ componentId: identity.componentId, activationId: identity.activationId }, permission, scope);
76
+ },
77
+ defaultOf: permission => raw.defaultOf(permission),
78
+ knownPermissions: () => raw.knownPermissions(),
79
+ onChange(pluginCtx, listener) {
80
+ // Guard before any side effect: in passive/replay shadow this
81
+ // subscribe-class watcher must be refused before the file poller is
82
+ // started or the listener is retained.
83
+ runtime.assertEffect('host.grants.subscribe');
84
+ const host = hostContextFor(runtime);
85
+ const caller = assertActivationContext(host, pluginCtx);
86
+ requireComponentIdentity(caller);
87
+ const stop = raw.onChange?.(listener);
88
+ if (stop !== undefined)
89
+ bindCallerEffect(caller, stop);
90
+ return stop;
91
+ },
92
+ });
93
+ }
94
+ /** Read-only DecisionEvents feature probe. Returns only the event names
95
+ * whose guard is installed in this composition. */
96
+ probeDecisionEvents() {
97
+ this.assertEffect('host.decision.probe');
98
+ return probeDecisionEventFeatures(hostContextFor(this));
99
+ }
57
100
  constructor(ctx) {
58
101
  super(ctx, 'tuiPluginHost');
59
- hostStates.set(this, {
102
+ const runtime = adapterRuntimeFor(ctx);
103
+ const rawGrants = Object.freeze(readGrantStore(undefined, undefined, runtime));
104
+ let signalInitialKernelRefreshStarted;
105
+ const initialKernelRefreshStarted = new Promise(resolve => {
106
+ signalInitialKernelRefreshStarted = resolve;
107
+ });
108
+ const state = {
60
109
  hostContext: compositionRoot(ctx),
61
110
  generationId: randomUUID(),
62
- grants: Object.freeze(readGrantStore()),
111
+ grants: rawGrants,
112
+ runtime,
63
113
  descriptorBuild: undefined,
64
114
  descriptorTopology: undefined,
65
- });
115
+ kernelRuntime: undefined,
116
+ descriptorBuildInProgress: false,
117
+ kernelStarted: false,
118
+ initialKernelRefresh: undefined,
119
+ initialKernelRefreshStarted,
120
+ signalInitialKernelRefreshStarted,
121
+ initialKernelRefreshResult: Object.freeze({ status: 'pending' }),
122
+ };
123
+ hostStates.set(this, state);
124
+ registerCommandLiveProbe(this, () => this.#runReversibleCommandProbe());
125
+ // Legacy mode is intentionally inert: the new KernelRuntime (and therefore
126
+ // any real reversible probe / registration / temporary storage) is only
127
+ // created for explicit non-legacy modes. New mode runs the real live
128
+ // refresh; passive/replay production modes stay read-only/diagnostic.
129
+ if (state.runtime.mode !== 'legacy') {
130
+ const kernelRuntime = new KernelRuntime({
131
+ context: state.hostContext,
132
+ mode: state.runtime.mode,
133
+ slices: state.runtime.slices,
134
+ generationId: state.generationId,
135
+ kernelSlices: ADAPTER_KERNEL_SLICES,
136
+ drivers: [hostDescriptorDriver],
137
+ });
138
+ state.kernelRuntime = kernelRuntime;
139
+ // Defer until after the apply() body has mounted storage/observer
140
+ // siblings, so the live refresh observes the complete production
141
+ // topology.
142
+ setTimeout(() => this.startKernelRuntime(), 0);
143
+ }
144
+ bindHostGrantStore(concreteService(this), rawGrants);
66
145
  // The host row may be mounted without the extensions row or a channel;
67
146
  // decision registration must remain mediated in that degraded topology.
68
- installDecisionGuard(ctx, this.grants);
147
+ installDecisionGuard(ctx, rawGrants);
69
148
  const violations = this.selfCheck();
70
149
  if (violations.length > 0) {
71
- ctx.logger.warn(`dsh-tui: vendored plugin-spec registry failed self-check (${violations.length} violation(s)); ` +
150
+ ctx.logger.warn(`dsh-tui: vendored adapter registry failed self-check (${violations.length} violation(s)); ` +
72
151
  `affected contracts are dropped from the Host Descriptor fail-closed: ${violations.join(' | ')}`);
73
152
  }
74
153
  }
154
+ /** @internal Start the Kernel after the whole plugin-host row (including
155
+ * sibling storage/observer services) is mounted. Called from `apply()`; not
156
+ * part of the public plugin surface. */
157
+ startKernelRuntime() {
158
+ const state = hostStateFor(this);
159
+ const kernelRuntime = state.kernelRuntime;
160
+ if (kernelRuntime === undefined || state.kernelStarted)
161
+ return;
162
+ state.kernelStarted = true;
163
+ // The kernel refresh/mount runs in the host root capability, never in a
164
+ // plugin activation. This lets reversible probes use the real commands
165
+ // service (which may register root-scoped effects during execution)
166
+ // without being denied by the plugin/root boundary.
167
+ withHostRootCapability(() => {
168
+ if (state.runtime.mode !== 'passive-shadow' && state.runtime.mode !== 'replay-shadow') {
169
+ // Keep the initial asynchronous verification owned by this host row.
170
+ // New-mode publication/admission remains fail-closed until it settles;
171
+ // the adapter-only test accessor below exposes its outcome without
172
+ // leaking Kernel controls into the public plugin surface.
173
+ state.initialKernelRefresh = kernelRuntime.refresh()
174
+ .then(() => {
175
+ const status = kernelRuntime.refreshStatus();
176
+ const error = status === 'failed' ? kernelRuntime.diagnosticSnapshot().refreshError : undefined;
177
+ const result = Object.freeze({
178
+ status,
179
+ ...(error === undefined ? {} : { error }),
180
+ });
181
+ state.initialKernelRefreshResult = result;
182
+ state.descriptorBuild = undefined;
183
+ state.descriptorTopology = undefined;
184
+ return result;
185
+ })
186
+ .catch((error) => {
187
+ const message = error instanceof Error ? error.message : String(error);
188
+ const result = Object.freeze({ status: kernelRuntime.refreshStatus(), error: message });
189
+ state.initialKernelRefreshResult = result;
190
+ this.ctx.logger.warn(`dsh-tui: kernel live refresh failed: ${message}`);
191
+ state.descriptorBuild = undefined;
192
+ state.descriptorTopology = undefined;
193
+ return result;
194
+ });
195
+ state.signalInitialKernelRefreshStarted();
196
+ }
197
+ else {
198
+ // Shadow modes intentionally do not run an initial live refresh on a
199
+ // real host. Make the host-owned test seam settle explicitly instead
200
+ // of leaving a diagnostic waiter pending forever.
201
+ const result = Object.freeze({
202
+ status: 'skipped',
203
+ error: `${state.runtime.mode}: initial live refresh is not run`,
204
+ });
205
+ state.initialKernelRefreshResult = result;
206
+ state.initialKernelRefresh = Promise.resolve(result);
207
+ state.signalInitialKernelRefreshStarted();
208
+ }
209
+ // Production mount/dispose closure: mount the kernel drivers now and
210
+ // dispose them when the plugin-host service's owning fiber unloads.
211
+ void kernelRuntime.mount().catch((error) => {
212
+ this.ctx.logger.warn(`dsh-tui: kernel driver mount failed: ${error instanceof Error ? error.message : String(error)}`);
213
+ });
214
+ this.ctx.effect(() => () => {
215
+ kernelRuntime.dispose();
216
+ const current = hostStateFor(this);
217
+ if (current.kernelRuntime === kernelRuntime)
218
+ current.kernelRuntime = undefined;
219
+ });
220
+ });
221
+ }
222
+ assertEffect(capability) {
223
+ const runtime = hostStateFor(this).runtime;
224
+ assertCapabilityShadowPolicy(capability, runtime.mode, runtime.slices);
225
+ }
75
226
  /**
76
227
  * The C-010 Host Descriptor, built lazily and cached while the
77
228
  * runtime-dependent commands capability remains unchanged.
78
229
  */
79
230
  hostDescriptor() {
231
+ this.assertEffect('host.descriptor');
80
232
  return this.build().descriptor;
81
233
  }
82
234
  /** The full build result (descriptor + dropped coordinates + warnings). */
83
235
  describe() {
236
+ this.assertEffect('host.descriptor');
84
237
  return this.build();
85
238
  }
86
239
  build() {
240
+ const state = hostStateFor(this);
241
+ if (state.descriptorBuildInProgress) {
242
+ // Reentrant read from kernel detect/driver.detect(); return a
243
+ // fail-closed but schema-valid build to break the cycle.
244
+ return state.descriptorBuild ?? buildHostDescriptor({ generationId: state.generationId });
245
+ }
246
+ state.descriptorBuildInProgress = true;
247
+ try {
248
+ return this.buildUnsafe();
249
+ }
250
+ finally {
251
+ state.descriptorBuildInProgress = false;
252
+ }
253
+ }
254
+ buildUnsafe() {
87
255
  const state = hostStateFor(this);
88
256
  const host = state.hostContext;
89
- // C-010 honesty: advertise a runtime capability only while its service is
90
- // actually mounted. Probed on every descriptor request because sibling
91
- // rows can mount after this service, and embedders can unload them later.
257
+ const kernel = state.kernelRuntime;
258
+ if (kernel !== undefined && state.kernelStarted && kernel.isRefreshCompleted()) {
259
+ // Always refresh the sync topology first; the Kernel preserves already
260
+ // live capabilities as long as their critical method evidence remains,
261
+ // so this does not regress a completed live refresh back to staged while
262
+ // still picking up dynamic mounts/markers (e.g. DecisionEvents).
263
+ kernel.detect();
264
+ const build = kernel.descriptorBuild();
265
+ if (host.get('commands') === undefined) {
266
+ host.logger.warn('dsh-tui: host descriptor: commands.dsh/v1alpha1#Command excluded — the commands service is not mounted on this context');
267
+ }
268
+ if (host.get('tuiPluginStorage') === undefined) {
269
+ host.logger.warn('dsh-tui: host descriptor: storage.dsh/v1alpha1#LocalStorage excluded — the tuiPluginStorage service is not mounted on this context');
270
+ }
271
+ if (host.get('tuiMessageObserver') === undefined) {
272
+ host.logger.warn('dsh-tui: host descriptor: messages.dsh/v1alpha1#MessageObserver excluded — the tuiMessageObserver service is not mounted on this context');
273
+ }
274
+ for (const warning of build.warnings) {
275
+ host.logger.warn(`dsh-tui: host descriptor: ${warning}`);
276
+ }
277
+ return build;
278
+ }
279
+ // Only an explicitly legacy composition may publish mounted-service
280
+ // compatibility claims. Shadow, pending, failed and disposed Kernels have
281
+ // no completed live evidence and must never fall through to that path.
282
+ if (state.runtime.mode !== 'legacy') {
283
+ return buildHostDescriptor({ generationId: state.generationId });
284
+ }
285
+ // This is the explicit legacy-compatibility path: the old mounted-service
286
+ // topology is declared with `buildLegacyHostDescriptor`, which is separate
287
+ // from the live-only new-Kernel descriptor and does not run any reversible
288
+ // probe or load the new Kernel.
92
289
  const commandsMounted = host.get('commands') !== undefined;
93
290
  const storageMounted = host.get('tuiPluginStorage') !== undefined;
94
291
  const observerMounted = host.get('tuiMessageObserver') !== undefined;
95
- const topology = `${Number(commandsMounted)}:${Number(storageMounted)}:${Number(observerMounted)}`;
292
+ const decisionEventsMounted = probeDecisionEventFeatures(host).length > 0;
293
+ const topology = `${Number(commandsMounted)}:${Number(storageMounted)}:${Number(observerMounted)}:${Number(decisionEventsMounted)}`;
96
294
  if (state.descriptorBuild === undefined || state.descriptorTopology !== topology) {
97
295
  const supported = HOST_SUPPORTED_CONTRACTS.filter(contract => {
98
296
  if (contract.kind === 'Command')
@@ -101,23 +299,30 @@ export class TuiPluginHostRuntime extends Service {
101
299
  return storageMounted;
102
300
  if (contract.kind === 'MessageObserver')
103
301
  return observerMounted;
104
- return true;
302
+ if (contract.kind === 'DecisionEvents')
303
+ return decisionEventsMounted;
304
+ return false;
305
+ });
306
+ state.descriptorBuild = buildLegacyHostDescriptor({
307
+ generationId: state.generationId,
308
+ headless: false,
309
+ supported,
310
+ decisionFeatures: probeDecisionEventFeatures(host),
105
311
  });
106
- state.descriptorBuild = buildHostDescriptor({ generationId: state.generationId, supported });
107
312
  state.descriptorTopology = topology;
108
- if (!commandsMounted) {
109
- host.logger.warn('dsh-tui: host descriptor: commands.dsh/v1alpha1#Command excluded — the commands service is not mounted on this context');
110
- }
111
- if (!storageMounted) {
112
- host.logger.warn('dsh-tui: host descriptor: storage.dsh/v1alpha1#LocalStorage excluded — the tuiPluginStorage service is not mounted on this context');
113
- }
114
- if (!observerMounted) {
115
- host.logger.warn('dsh-tui: host descriptor: messages.dsh/v1alpha1#MessageObserver excluded — the tuiMessageObserver service is not mounted on this context');
116
- }
117
313
  for (const warning of state.descriptorBuild.warnings) {
118
314
  host.logger.warn(`dsh-tui: host descriptor: ${warning}`);
119
315
  }
120
316
  }
317
+ if (host.get('commands') === undefined) {
318
+ host.logger.warn('dsh-tui: host descriptor: commands.dsh/v1alpha1#Command excluded — the commands service is not mounted on this context');
319
+ }
320
+ if (host.get('tuiPluginStorage') === undefined) {
321
+ host.logger.warn('dsh-tui: host descriptor: storage.dsh/v1alpha1#LocalStorage excluded — the tuiPluginStorage service is not mounted on this context');
322
+ }
323
+ if (host.get('tuiMessageObserver') === undefined) {
324
+ host.logger.warn('dsh-tui: host descriptor: messages.dsh/v1alpha1#MessageObserver excluded — the tuiMessageObserver service is not mounted on this context');
325
+ }
121
326
  return state.descriptorBuild;
122
327
  }
123
328
  /**
@@ -134,18 +339,30 @@ export class TuiPluginHostRuntime extends Service {
134
339
  void options;
135
340
  throw new Error('dsh-tui: admission is host-owned; the loader must use its admission capability');
136
341
  }
137
- /** @internal Host loader entry; the unexported token prevents proxy calls. */
342
+ /** @internal Host loader entry; the unexported production token prevents
343
+ * proxy calls. The test token is only reachable from the test-only adapter
344
+ * helper, never from the package's production admission accessor. */
138
345
  admitInternal(pluginCtx, source, options = {}, token) {
139
- if (token !== HOST_ADMISSION_TOKEN) {
346
+ if (token !== HOST_ADMISSION_TOKEN && token !== HOST_ADMISSION_TEST_TOKEN) {
140
347
  throw new Error('dsh-tui: admission capability is host-owned');
141
348
  }
349
+ this.assertEffect('host.admission');
142
350
  const host = hostContextFor(this);
143
351
  const caller = assertActivationContext(host, pluginCtx);
352
+ const callerFiber = activationFiber(caller);
353
+ if (callerFiber === undefined) {
354
+ throw new Error('dsh-tui: admission requires an owning Cordis activation fiber');
355
+ }
144
356
  const manifest = parseManifest(source, { source: options.source });
145
- // The host owns the activation instance identity. Embedders may provide a
146
- // pre-issued id when policy has an activation-scoped grant; otherwise a
147
- // fresh opaque id is generated once and bound to this Cordis activation.
148
- const activationId = options.activationId ?? randomUUID();
357
+ // The host (not the caller) owns the activation instance identity.
358
+ // Production admission derives a stable opaque id from the Cordis
359
+ // activation fiber. The explicit test token is the only path that can
360
+ // supply a deterministic id, and it is never exported from the package
361
+ // production surface.
362
+ const activationId = token === HOST_ADMISSION_TEST_TOKEN
363
+ && typeof options.activationId === 'string'
364
+ ? options.activationId
365
+ : issueActivationId(callerFiber);
149
366
  const data = loadSpecData();
150
367
  if (data === undefined)
151
368
  throw new Error('dsh-tui: admission profile is unavailable');
@@ -162,9 +379,20 @@ export class TuiPluginHostRuntime extends Service {
162
379
  scope: request.scope,
163
380
  granted: hostStateFor(this).grants.allows({ componentId: manifest.id, activationId }, request.name, request.scope),
164
381
  }));
165
- const decision = negotiate(index, manifest, this.hostDescriptor(), grants);
382
+ // Admission must rebuild through the same synchronous topology path as
383
+ // public descriptor publication. In particular, `build()` runs Kernel
384
+ // detection before reading its descriptor, so a DecisionEvents dispatch
385
+ // marker mounted between an async refresh and this activation is visible.
386
+ // New-mode remains fail-closed: without completed live evidence,
387
+ // `build()` returns the empty non-legacy descriptor rather than a legacy
388
+ // compatibility claim.
389
+ const admissionHost = this.build().descriptor;
390
+ const decision = negotiate(index, manifest, admissionHost, grants);
166
391
  if (decision.decision !== 'compatible' && decision.decision !== 'compatible_degraded') {
167
- throw new Error(`dsh-tui: Component ${manifest.id} admission ${decision.decision}: ${'reasonCode' in decision ? decision.reasonCode : 'incompatible'}`);
392
+ const missing = 'missingRequired' in decision && decision.missingRequired !== undefined
393
+ ? ` (${decision.missingRequired.join(', ')})`
394
+ : '';
395
+ throw new Error(`dsh-tui: Component ${manifest.id} admission ${decision.decision}: ${'reasonCode' in decision ? decision.reasonCode : 'incompatible'}${missing}`);
168
396
  }
169
397
  return bindComponentIdentity(caller, manifest, projection, activationId);
170
398
  }
@@ -176,6 +404,7 @@ export class TuiPluginHostRuntime extends Service {
176
404
  * the activation so deactivation cannot leave an effect behind.
177
405
  */
178
406
  subscribeDecision(pluginCtx, event, listener, options = {}) {
407
+ this.assertEffect('host.decision.subscribe');
179
408
  const host = hostContextFor(this);
180
409
  const caller = assertActivationContext(host, pluginCtx);
181
410
  assertCallerContext(this.ctx, caller, 'DecisionEvents.subscribe', this);
@@ -208,6 +437,7 @@ export class TuiPluginHostRuntime extends Service {
208
437
  return release;
209
438
  }
210
439
  registerCommand(pluginCtx, contributionOrDefinition, explicitDefinition) {
440
+ this.assertEffect('host.commands.register');
211
441
  const host = hostContextFor(this);
212
442
  const caller = assertActivationContext(host, pluginCtx);
213
443
  assertCallerContext(this.ctx, caller, 'commands.register', this);
@@ -287,12 +517,100 @@ export class TuiPluginHostRuntime extends Service {
287
517
  }
288
518
  };
289
519
  }
520
+ /**
521
+ * Host-internal reversible Command live probe.
522
+ *
523
+ * This is the production host-side probe used by the Kernel driver. It
524
+ * registers a unique no-op command through the real dsh-commands service,
525
+ * resolves it, executes it against an in-memory fake session, and
526
+ * unregisters it in `finally`. It does not go through the public
527
+ * plugin-facing `registerCommand()` (which requires a verified Component
528
+ * activation), but it exercises the same contribution/invocation path that
529
+ * production commands use.
530
+ *
531
+ * This is an ECMAScript private method. It is reachable only through the
532
+ * host-only probe accessor registered in the constructor.
533
+ */
534
+ async #runReversibleCommandProbe() {
535
+ this.assertEffect('host.commands.liveProbe');
536
+ const host = hostContextFor(this);
537
+ const commands = host.get('commands');
538
+ if (commands === undefined || typeof commands.register !== 'function') {
539
+ throw new Error('commands service is not mounted for reversible command probe');
540
+ }
541
+ const service = commands;
542
+ const name = `dsh_tui_live_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
543
+ const definition = {
544
+ name,
545
+ description: 'dsh-tui adapter reversible live probe',
546
+ handler: () => ({ kind: 'success', text: 'ok' }),
547
+ };
548
+ let dispose;
549
+ const events = [];
550
+ try {
551
+ dispose = service.register(definition);
552
+ if (service.find(undefined, name) === undefined) {
553
+ throw new Error('temporary command was not resolvable through find()');
554
+ }
555
+ const list = service.list(undefined);
556
+ if (!Array.isArray(list) || !list.some(entry => entry?.name === name)) {
557
+ throw new Error('temporary command was not visible through list()');
558
+ }
559
+ const fakeAgent = {
560
+ session: {
561
+ append(type, data) {
562
+ events.push([type, data]);
563
+ return true;
564
+ },
565
+ },
566
+ };
567
+ const COMMAND_PROBE_TIMEOUT_MS = 2_000;
568
+ let timer;
569
+ const abortController = new AbortController();
570
+ const execute = Promise.resolve().then(() => service.execute(fakeAgent, `/${name}`, [], abortController.signal));
571
+ // A timeout or early rejection must not leave a late rejection from
572
+ // execute as an unhandled rejection, and must abort the underlying
573
+ // command execution when the probe gives up.
574
+ void execute.catch(() => undefined);
575
+ const timeout = new Promise((_, reject) => {
576
+ timer = setTimeout(() => {
577
+ abortController.abort();
578
+ reject(new Error(`command live probe timed out after ${COMMAND_PROBE_TIMEOUT_MS}ms`));
579
+ }, COMMAND_PROBE_TIMEOUT_MS);
580
+ });
581
+ let result;
582
+ try {
583
+ result = await Promise.race([execute, timeout]);
584
+ }
585
+ catch (error) {
586
+ abortController.abort();
587
+ throw error;
588
+ }
589
+ finally {
590
+ if (timer !== undefined)
591
+ clearTimeout(timer);
592
+ }
593
+ if (result === undefined || result.result?.kind !== 'success') {
594
+ throw new Error('temporary command execute did not settle as success');
595
+ }
596
+ return Object.freeze({ ok: true, name, lifecycleAppends: events.length });
597
+ }
598
+ finally {
599
+ try {
600
+ dispose?.();
601
+ }
602
+ catch {
603
+ // Cleanup is best-effort; the commands service owns its registration.
604
+ }
605
+ }
606
+ }
290
607
  /**
291
608
  * Vendored registry + contract-profile self-check (C-020 definition/profile
292
609
  * pins, C-040 ten-point completeness, coordinate/permission parity). Empty =
293
610
  * clean; violations are strings, never thrown.
294
611
  */
295
612
  selfCheck() {
613
+ this.assertEffect('host.diagnostics');
296
614
  const data = loadSpecData();
297
615
  if (data === undefined)
298
616
  return ['vendored spec data unavailable (dsh-ecosystem-spec/)'];
@@ -300,6 +618,17 @@ export class TuiPluginHostRuntime extends Service {
300
618
  }
301
619
  }
302
620
  const HOST_ADMISSION_TOKEN = Symbol('dsh-tui.host-admission');
621
+ const HOST_ADMISSION_TEST_TOKEN = Symbol('dsh-tui.host-admission-test');
622
+ /** Per-activation fiber -> host-issued opaque activation id (Cordis activation scope). */
623
+ const activationFiberIds = new WeakMap();
624
+ function issueActivationId(fiber) {
625
+ let id = activationFiberIds.get(fiber);
626
+ if (id === undefined) {
627
+ id = randomUUID();
628
+ activationFiberIds.set(fiber, id);
629
+ }
630
+ return id;
631
+ }
303
632
  const hostStates = new WeakMap();
304
633
  function hostStateFor(runtime) {
305
634
  const state = hostStates.get(concreteService(runtime));
@@ -310,6 +639,41 @@ function hostStateFor(runtime) {
310
639
  function hostContextFor(runtime) {
311
640
  return hostStateFor(runtime).hostContext;
312
641
  }
642
+ export function getHostInitialKernelRefreshForTest(runtime) {
643
+ if (runtime === undefined)
644
+ return undefined;
645
+ try {
646
+ const concrete = concreteService(runtime);
647
+ return Object.freeze({
648
+ result: () => hostStateFor(concrete).initialKernelRefreshResult,
649
+ awaitResult: async () => {
650
+ const state = hostStateFor(concrete);
651
+ await state.initialKernelRefreshStarted;
652
+ const refresh = state.initialKernelRefresh;
653
+ if (refresh === undefined) {
654
+ throw new Error('dsh-tui: host initial kernel refresh was not started');
655
+ }
656
+ return refresh;
657
+ },
658
+ });
659
+ }
660
+ catch {
661
+ return undefined;
662
+ }
663
+ }
664
+ export function getHostAdmissionForTest(runtime) {
665
+ if (runtime === undefined)
666
+ return undefined;
667
+ try {
668
+ const concrete = concreteService(runtime);
669
+ return {
670
+ admit: (pluginCtx, source, options = {}) => concrete.admitInternal(pluginCtx, source, options, HOST_ADMISSION_TEST_TOKEN),
671
+ };
672
+ }
673
+ catch {
674
+ return undefined;
675
+ }
676
+ }
313
677
  export function getHostAdmission(runtime) {
314
678
  if (runtime === undefined)
315
679
  return undefined;
@@ -323,6 +687,35 @@ export function getHostAdmission(runtime) {
323
687
  return undefined;
324
688
  }
325
689
  }
690
+ /**
691
+ * Host-only accessor for the new Kernel HostFacade. Deliberately omitted from
692
+ * the public plugin-host export: HostFacade is an internal composition entry,
693
+ * not an external plugin API.
694
+ *
695
+ * @internal P2: the facade is now backed by the KernelRuntime's unified
696
+ * evidence snapshot (driver detect + live verification), not by a legacy
697
+ * describe() wrapper. It remains read-only and shadow-guarded.
698
+ */
699
+ export function getHostFacade(runtime) {
700
+ if (runtime === undefined)
701
+ return undefined;
702
+ try {
703
+ const concrete = concreteService(runtime);
704
+ const state = hostStateFor(concrete);
705
+ if (state.kernelRuntime !== undefined) {
706
+ return state.kernelRuntime.facade();
707
+ }
708
+ // Legacy fallback for bare/test compositions without a KernelRuntime.
709
+ const legacyFacade = facadeFromLegacy({
710
+ generationId: state.generationId,
711
+ describe: () => concrete.describe(),
712
+ });
713
+ return createShadowGuardedHostFacade({ descriptor: legacyFacade.descriptor }, state.runtime.mode);
714
+ }
715
+ catch {
716
+ return undefined;
717
+ }
718
+ }
326
719
  /** A mediated capability must be bound to a live non-root activation in the
327
720
  * same Cordis composition as the host row. In particular, accepting
328
721
  * `ctx.root` would leave identity, commands, or handlers alive after the
@@ -362,4 +755,8 @@ export function apply(ctx) {
362
755
  // messages.observe (C-042): the grant-gated observation broker the
363
756
  // channel publishes mapped session events into.
364
757
  ctx.plugin(TuiMessageObserverRuntime);
758
+ // All sibling services are mounted now; start the kernel live refresh /
759
+ // driver mount so probes observe the complete production topology.
760
+ const host = ctx.get('tuiPluginHost');
761
+ host?.startKernelRuntime();
365
762
  }
@@ -33,7 +33,7 @@
33
33
  * - privacyClass: sensitive — keys AND values are never logged.
34
34
  */
35
35
  import { Context, Service } from '@deepseek-ai/cordis';
36
- import { type GrantStore } from './grants.js';
36
+ import { type GrantStore } from '../adapter/standard/grants.js';
37
37
  import type { TuiEffectLedgerRuntime } from './effect-ledger.js';
38
38
  /** Quota: max distinct keys per namespace. */
39
39
  export declare const STORAGE_MAX_KEYS = 256;
@@ -85,6 +85,7 @@ export declare function storageFileName(plugin: string): string;
85
85
  * (normal path) or a private read otherwise (bare mounts in tests).
86
86
  */
87
87
  export declare class TuiPluginStorageRuntime extends Service {
88
+ #private;
88
89
  constructor(ctx: Context, options?: {
89
90
  dir?: string;
90
91
  grants?: GrantStore;
@@ -97,6 +98,15 @@ export declare class TuiPluginStorageRuntime extends Service {
97
98
  private grants;
98
99
  /** Optional observability; a bare mount (tests) simply records nothing. */
99
100
  private ledger;
101
+ /**
102
+ * Host-internal read-only diagnostic probe. Never opens a namespace, never
103
+ * writes to disk; it only confirms the mounted storage runtime is reachable.
104
+ */
105
+ probeDiagnostic(): {
106
+ service: 'tuiPluginStorage';
107
+ ok: true;
108
+ dir: string;
109
+ };
100
110
  /**
101
111
  * Open the caller's private namespace. Identity = the PASSED context's
102
112
  * verified Component identity (no way to name another plugin). The handle
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-storage.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugin-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAYtD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAC3C,mCAAmC;AACnC,eAAO,MAAM,sBAAsB,MAAM,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,qBAAqB,CAAA;AAEzB,iEAAiE;AACjE,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;gBACzB,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM;CAK1D;AAmBD,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;IAC/D,GAAG,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;IACtE,MAAM,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC9D;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,gBAAgB,EAAE,uBAAuB,CAAA;KAC1C;CACF;AAED,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,mBAAmB,CAAA;AAElD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGtD;AAgID;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,OAAO;gBACtC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,sBAAsB,CAAA;KAAO;IAY9G;;;gDAG4C;IAC5C,OAAO,CAAC,MAAM;IAKd,2EAA2E;IAC3E,OAAO,CAAC,MAAM;IAKd;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB;CAiL3C"}
1
+ {"version":3,"file":"plugin-storage.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/plugin-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAkBtD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAGhE,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAC3C,mCAAmC;AACnC,eAAO,MAAM,sBAAsB,MAAM,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,qBAAqB,CAAA;AAEzB,iEAAiE;AACjE,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;gBACzB,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM;CAK1D;AAoBD,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;IAC/D,GAAG,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;IACtE,MAAM,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC9D;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,gBAAgB,EAAE,uBAAuB,CAAA;KAC1C;CACF;AAED,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,mBAAmB,CAAA;AAElD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGtD;AAgID;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,OAAO;;gBACtC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,sBAAsB,CAAA;KAAO;IAkB9G;;;gDAG4C;IAC5C,OAAO,CAAC,MAAM;IAKd,2EAA2E;IAC3E,OAAO,CAAC,MAAM;IAKd;;;OAGG;IACH,eAAe,IAAI;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,EAAE,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IA4FzE;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB;CAyN3C"}