@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,120 @@
1
+ /**
2
+ * Host-internal Channel registry for the adapter Kernel.
3
+ *
4
+ * The live `Channel` is created by the TUI plugin row after the plugin-host
5
+ * Kernel may already have been constructed/mounted. Rather than trying to
6
+ * reorder service mounting, the TUI stores the live Channel under its
7
+ * composition root in a WeakMap; the Channel driver resolves it lazily when
8
+ * a Port method is actually called. This keeps the Kernel's composition
9
+ * independent of the TUI render lifecycle.
10
+ *
11
+ * Every entry is normalized to the Cordis composition root before it is used
12
+ * as a WeakMap key: a child/plugin context passed by a caller must never
13
+ * create a registry entry that the Kernel (which queries through the root)
14
+ * cannot resolve.
15
+ */
16
+ import { compositionRoot } from '../../dsh-adapter/host-access.js';
17
+ const channels = new WeakMap();
18
+ const channelListeners = new WeakMap();
19
+ const registrationListeners = new WeakMap();
20
+ function rootKey(ctx) {
21
+ if (ctx === null || (typeof ctx !== 'object' && typeof ctx !== 'function'))
22
+ return undefined;
23
+ try {
24
+ return compositionRoot(ctx);
25
+ }
26
+ catch {
27
+ // Non-Cordis test values / minimal embedders are their own root.
28
+ return ctx;
29
+ }
30
+ }
31
+ /** Register the live Channel for a composition root.
32
+ * @returns A token-safe disposer. Registrations have identity independent of
33
+ * their Channel object: A → B → A and repeated registration of the same
34
+ * Channel cannot let an older disposer erase or revive the current entry.
35
+ */
36
+ export function registerTuiChannel(ctx, channel) {
37
+ const key = rootKey(ctx);
38
+ if (key === undefined)
39
+ return () => false;
40
+ const registration = Object.freeze({ channel, token: Symbol('tui-channel-registration') });
41
+ channels.set(key, registration);
42
+ notifyChannelListeners(key, registration);
43
+ let disposed = false;
44
+ return () => {
45
+ if (disposed)
46
+ return false;
47
+ disposed = true;
48
+ if (channels.get(key)?.token !== registration.token)
49
+ return false;
50
+ channels.delete(key);
51
+ notifyChannelListeners(key, undefined);
52
+ return true;
53
+ };
54
+ }
55
+ function notifyChannelListeners(key, registration) {
56
+ const listeners = channelListeners.get(key);
57
+ if (listeners !== undefined) {
58
+ for (const listener of [...listeners]) {
59
+ try {
60
+ listener(registration?.channel);
61
+ }
62
+ catch {
63
+ // A registration notification is advisory; one faulty listener must not
64
+ // prevent the Channel from being stored.
65
+ }
66
+ }
67
+ }
68
+ const identityListeners = registrationListeners.get(key);
69
+ if (identityListeners === undefined)
70
+ return;
71
+ for (const listener of [...identityListeners]) {
72
+ try {
73
+ listener(registration);
74
+ }
75
+ catch {
76
+ // Identity notifications have the same advisory, fan-out semantics.
77
+ }
78
+ }
79
+ }
80
+ /** Resolve the live Channel for a composition root. */
81
+ export function getRegisteredTuiChannel(ctx) {
82
+ return getTuiChannelRegistration(ctx)?.channel;
83
+ }
84
+ /** Return the current registration identity, not only its Channel object. */
85
+ export function getTuiChannelRegistration(ctx) {
86
+ const key = rootKey(ctx);
87
+ return key === undefined ? undefined : channels.get(key);
88
+ }
89
+ /**
90
+ * Subscribe to live-Channel registration for one composition root.
91
+ *
92
+ * The Kernel uses this to re-run a refresh/mount when the TUI plugin creates
93
+ * and registers its Channel after the plugin-host row has already started.
94
+ * Returns a disposer; listeners are keyed by normalized composition root.
95
+ */
96
+ export function onTuiChannelRegistered(ctx, listener) {
97
+ const key = rootKey(ctx);
98
+ if (key === undefined)
99
+ return () => undefined;
100
+ let listeners = channelListeners.get(key);
101
+ if (listeners === undefined) {
102
+ listeners = new Set();
103
+ channelListeners.set(key, listeners);
104
+ }
105
+ listeners.add(listener);
106
+ return () => { listeners?.delete(listener); };
107
+ }
108
+ /** Subscribe to registration identities for consumers that own capabilities. */
109
+ export function onTuiChannelRegistration(ctx, listener) {
110
+ const key = rootKey(ctx);
111
+ if (key === undefined)
112
+ return () => undefined;
113
+ let listeners = registrationListeners.get(key);
114
+ if (listeners === undefined) {
115
+ listeners = new Set();
116
+ registrationListeners.set(key, listeners);
117
+ }
118
+ listeners.add(listener);
119
+ return () => { listeners?.delete(listener); };
120
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Channel split surface (P4).
3
+ *
4
+ * The live legacy `src/dsh-adapter/channel.ts` remains the implementation
5
+ * source, but the adapter-facing Channel behavior is decomposed here into
6
+ * five small modules:
7
+ * projection / actions / state / plugins / transcript.
8
+ *
9
+ * This module re-exports the host-internal builder functions and the
10
+ * composition-root registry.
11
+ */
12
+ export { projectChannelRows, projectChannelSnapshot } from './projection.js';
13
+ export { projectChannelState } from './state.js';
14
+ export { createChannelActions } from './actions.js';
15
+ export { createChannelPlugins } from './plugins.js';
16
+ export { createChannelTranscript } from './transcript.js';
17
+ export { registerTuiChannel, onTuiChannelRegistered } from './host-registry.js';
18
+ export { CHANNEL_FEATURES, CHANNEL_PORT_METHOD_CAPABILITIES, CHANNEL_STANDARD_DECLARATIONS } from './features.js';
19
+ export { TUI_CHANNEL_WIRE_REVISION, type TuiChannelSnapshot } from '../spec/index.js';
20
+ export { createReplayChannelProvider, createReplayChannelProviderFromSnapshot, REPLAY_CHANNEL_WIRE_REVISION, type ChannelProvider, type ChannelProviderOpenInput, type ReplayChannelSnapshotSource, } from './provider.js';
21
+ export { createChannelConsumer, type ChannelConsumer, } from './consumer.js';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,gCAAgC,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;AACjH,OAAO,EAAE,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,EACL,2BAA2B,EAC3B,uCAAuC,EACvC,4BAA4B,EAC5B,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Channel split surface (P4).
3
+ *
4
+ * The live legacy `src/dsh-adapter/channel.ts` remains the implementation
5
+ * source, but the adapter-facing Channel behavior is decomposed here into
6
+ * five small modules:
7
+ * projection / actions / state / plugins / transcript.
8
+ *
9
+ * This module re-exports the host-internal builder functions and the
10
+ * composition-root registry.
11
+ */
12
+ export { projectChannelRows, projectChannelSnapshot } from './projection.js';
13
+ export { projectChannelState } from './state.js';
14
+ export { createChannelActions } from './actions.js';
15
+ export { createChannelPlugins } from './plugins.js';
16
+ export { createChannelTranscript } from './transcript.js';
17
+ export { registerTuiChannel, onTuiChannelRegistered } from './host-registry.js';
18
+ export { CHANNEL_FEATURES, CHANNEL_PORT_METHOD_CAPABILITIES, CHANNEL_STANDARD_DECLARATIONS } from './features.js';
19
+ export { TUI_CHANNEL_WIRE_REVISION } from '../spec/index.js';
20
+ export { createReplayChannelProvider, createReplayChannelProviderFromSnapshot, REPLAY_CHANNEL_WIRE_REVISION, } from './provider.js';
21
+ export { createChannelConsumer, } from './consumer.js';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Internal capability token for the split Channel builder modules.
3
+ *
4
+ * The split `actions` / `plugins` / `transcript` builders are host-internal
5
+ * and must be reached through the Kernel-driven Channel driver / HostFacade
6
+ * shadow gate, not imported and invoked directly from arbitrary TUI code.
7
+ * This token is intentionally not re-exported through `src/adapter/channel`
8
+ * or `src/adapter/index`; only the upstream driver and the split modules
9
+ * themselves import it.
10
+ */
11
+ export declare const CHANNEL_SPLIT_TOKEN: unique symbol;
12
+ //# sourceMappingURL=internal-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-token.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/internal-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAA8C,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Internal capability token for the split Channel builder modules.
3
+ *
4
+ * The split `actions` / `plugins` / `transcript` builders are host-internal
5
+ * and must be reached through the Kernel-driven Channel driver / HostFacade
6
+ * shadow gate, not imported and invoked directly from arbitrary TUI code.
7
+ * This token is intentionally not re-exported through `src/adapter/channel`
8
+ * or `src/adapter/index`; only the upstream driver and the split modules
9
+ * themselves import it.
10
+ */
11
+ export const CHANNEL_SPLIT_TOKEN = Symbol('dsh-tui.channel-split-token');
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Channel plugins module (P4 channel split).
3
+ *
4
+ * Projects the plugin-visible seams that hang off the live Channel into a
5
+ * small host-internal Port: external plugin commands, plugin scenes and
6
+ * settings sections. It never exposes plugin registration or permission
7
+ * evaluation; those stay in Standard/Kernel.
8
+ *
9
+ * The internal `CHANNEL_SPLIT_TOKEN` is required so this split builder cannot
10
+ * be invoked outside the Kernel/driver path and bypass the HostFacade shadow
11
+ * gate.
12
+ */
13
+ import type { Channel } from '../../dsh-adapter/channel.js';
14
+ import type { HostChannelPluginsPort } from '../ports/channel.js';
15
+ /** Build the host-internal plugin-facing surface over one live Channel. */
16
+ export declare function createChannelPlugins(channel: Channel, token: symbol): HostChannelPluginsPort;
17
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,qBAAqB,CAAA;AAuB5B,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAa5F"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Channel plugins module (P4 channel split).
3
+ *
4
+ * Projects the plugin-visible seams that hang off the live Channel into a
5
+ * small host-internal Port: external plugin commands, plugin scenes and
6
+ * settings sections. It never exposes plugin registration or permission
7
+ * evaluation; those stay in Standard/Kernel.
8
+ *
9
+ * The internal `CHANNEL_SPLIT_TOKEN` is required so this split builder cannot
10
+ * be invoked outside the Kernel/driver path and bypass the HostFacade shadow
11
+ * gate.
12
+ */
13
+ import { CHANNEL_SPLIT_TOKEN } from './internal-token.js';
14
+ function projectSettingsSection(section) {
15
+ return Object.freeze({
16
+ ns: section.ns,
17
+ title: section.title,
18
+ ...(section.groups === undefined ? {} : {
19
+ groups: Object.freeze(section.groups.map(group => Object.freeze({ id: group.id, title: group.title }))),
20
+ }),
21
+ fields: Object.freeze(section.fields.map(field => Object.freeze({
22
+ path: Object.freeze([...field.path]),
23
+ label: field.label,
24
+ kind: field.kind,
25
+ ...(field.hint === undefined ? {} : { hint: field.hint }),
26
+ ...(field.group === undefined ? {} : { group: field.group }),
27
+ ...(field.options === undefined ? {} : { options: Object.freeze(field.options.map(option => Object.freeze({ ...option }))) }),
28
+ ...(field.placeholder === undefined ? {} : { placeholder: field.placeholder }),
29
+ ...(field.secret === undefined ? {} : { secret: Object.freeze({ ref: field.secret.ref }) }),
30
+ }))),
31
+ });
32
+ }
33
+ /** Build the host-internal plugin-facing surface over one live Channel. */
34
+ export function createChannelPlugins(channel, token) {
35
+ if (token !== CHANNEL_SPLIT_TOKEN) {
36
+ throw new Error('dsh-tui: Channel split plugins require the internal host token');
37
+ }
38
+ return Object.freeze({
39
+ async runExternalCommand(name, rawInput) {
40
+ return channel.runExternalCommand(name, rawInput);
41
+ },
42
+ openPluginScene: id => channel.openPluginScene(id),
43
+ closePluginScene: () => channel.closePluginScene(),
44
+ settingsSections: () => Object.freeze(channel.settingsSections().map(projectSettingsSection)),
45
+ subscribeSettingsSections: listener => channel.subscribeSettingsSections(listener),
46
+ });
47
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Channel projection module (P4 channel split).
3
+ *
4
+ * This is the pure projection half of the live Channel: it maps the legacy
5
+ * Channel/ChannelState surface into a serializable host-internal projection
6
+ * used by the Kernel Channel Port. It deliberately strips functions, handles,
7
+ * secrets and renderer-only objects from the snapshot.
8
+ */
9
+ import type { Channel, ChatRow } from '../../dsh-adapter/channel.js';
10
+ import type { HostChannelProjectionSnapshot, HostChannelRowProjection } from '../ports/channel.js';
11
+ /** Project the current channel transcript rows into a JSON-safe view. */
12
+ export declare function projectChannelRows(rows: readonly ChatRow[]): readonly HostChannelRowProjection[];
13
+ /** Project the live Channel into the serializable renderer projection. */
14
+ export declare function projectChannelSnapshot(channel: Channel): HostChannelProjectionSnapshot;
15
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAW,MAAM,8BAA8B,CAAA;AAC7E,OAAO,KAAK,EACV,6BAA6B,EAC7B,wBAAwB,EAEzB,MAAM,qBAAqB,CAAA;AA4B5B,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,wBAAwB,EAAE,CAEhG;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,6BAA6B,CAqBtF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Channel projection module (P4 channel split).
3
+ *
4
+ * This is the pure projection half of the live Channel: it maps the legacy
5
+ * Channel/ChannelState surface into a serializable host-internal projection
6
+ * used by the Kernel Channel Port. It deliberately strips functions, handles,
7
+ * secrets and renderer-only objects from the snapshot.
8
+ */
9
+ function projectTool(row) {
10
+ return Object.freeze({
11
+ callId: row.callId,
12
+ name: row.name,
13
+ status: row.status,
14
+ argsPreview: row.argsText,
15
+ ...(row.resultText === undefined ? {} : { resultPreview: row.resultText }),
16
+ ...(row.errorText === undefined ? {} : { errorText: row.errorText }),
17
+ startedAt: row.startedAt,
18
+ ...(row.durationMs === undefined ? {} : { durationMs: row.durationMs }),
19
+ });
20
+ }
21
+ function projectRow(row) {
22
+ return Object.freeze({
23
+ id: row.id,
24
+ kind: row.kind,
25
+ text: row.text,
26
+ ...(row.label === undefined ? {} : { label: row.label }),
27
+ ...(row.streaming === undefined ? {} : { streaming: row.streaming }),
28
+ ...(row.time === undefined ? {} : { time: row.time }),
29
+ ...(row.seq === undefined ? {} : { seq: row.seq }),
30
+ ...(row.tool === undefined ? {} : { tool: projectTool(row.tool) }),
31
+ });
32
+ }
33
+ /** Project the current channel transcript rows into a JSON-safe view. */
34
+ export function projectChannelRows(rows) {
35
+ return Object.freeze(rows.map(projectRow));
36
+ }
37
+ /** Project the live Channel into the serializable renderer projection. */
38
+ export function projectChannelSnapshot(channel) {
39
+ return Object.freeze({
40
+ version: channel.version,
41
+ rows: projectChannelRows(channel.rows),
42
+ status: channel.status,
43
+ sessionTitle: channel.sessionTitle,
44
+ agentId: channel.agentId,
45
+ model: channel.model,
46
+ provider: channel.provider,
47
+ cwd: channel.cwd,
48
+ displayCwd: channel.displayCwd,
49
+ working: channel.working,
50
+ activeToolCount: channel.activeToolCount,
51
+ lastUserText: channel.lastUserText,
52
+ commandList: Object.freeze(channel.commandList.map(command => Object.freeze({
53
+ name: command.name,
54
+ ...(command.description === undefined ? {} : { description: command.description }),
55
+ }))),
56
+ contextSegments: Object.freeze({ ...channel.contextSegments }),
57
+ subagents: Object.freeze([...channel.subagents]),
58
+ });
59
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * TUI Channel Provider (P5).
3
+ *
4
+ * A Channel Provider owns the Agent/Session/Workspace side of
5
+ * `tui.dsh/v1alpha1#Channel`. This module implements an in-memory replay
6
+ * provider used by the replay harness: it does not attach to a real DSH
7
+ * service, but it follows the protocol envelope (open/subscribe/invoke/
8
+ * close), validates inputs/outputs, preserves monotonic channel versions,
9
+ * and can be driven from a real recorded DSH session snapshot/transcript.
10
+ *
11
+ * The replay provider is intentionally protocol-envelope focused:
12
+ * - unknown methods are rejected (never treated as a successful no-op);
13
+ * - feature/support validation happens in the replay harness, not here;
14
+ * - values are bounded in size/depth and deep-frozen before being handed out;
15
+ * - method handlers only run inside the harness-provided replay isolation.
16
+ */
17
+ import type { TuiChannelInvokeOutput, TuiChannelSnapshot } from '../spec/index.js';
18
+ export interface ChannelProviderOpenInput {
19
+ readonly workspace?: string;
20
+ readonly sessionId?: string;
21
+ readonly options?: unknown;
22
+ }
23
+ export interface ChannelProvider {
24
+ open(input: ChannelProviderOpenInput): Promise<TuiChannelSnapshot>;
25
+ subscribe(channelId: string, afterVersion: number, listener: (snapshot: TuiChannelSnapshot) => void): Promise<() => void>;
26
+ invoke(channelId: string, method: string, args: readonly unknown[]): Promise<TuiChannelInvokeOutput>;
27
+ close(channelId: string): Promise<{
28
+ readonly closed: true;
29
+ }>;
30
+ }
31
+ export interface ReplayChannelSnapshotSource {
32
+ /** Monotonic snapshots, oldest first. The provider serves the latest
33
+ * snapshot from `open` and replays newer snapshots through `subscribe`. */
34
+ readonly snapshots: readonly TuiChannelSnapshot[];
35
+ /** Optional transcript/event log carried alongside the snapshots. It is
36
+ * not interpreted by the provider; it exists for replay provenance and
37
+ * for conformance report details. */
38
+ readonly transcript?: readonly unknown[];
39
+ /** Optional method invocation handlers. Unknown methods are rejected with
40
+ * `FEATURE_UNAVAILABLE` (or `INVALID_ARGUMENT` for malformed input). */
41
+ readonly methods?: Readonly<Record<string, (args: readonly unknown[]) => unknown | Promise<unknown>>>;
42
+ }
43
+ /** Safety bound for replay JSON payloads. */
44
+ export declare const REPLAY_JSON_MAX_BYTES: number;
45
+ /** Safety bound for replay JSON nesting depth. */
46
+ export declare const REPLAY_JSON_MAX_DEPTH = 64;
47
+ /** Create an isolated replay Channel Provider over recorded snapshots. */
48
+ export declare function createReplayChannelProvider(source: ReplayChannelSnapshotSource): ChannelProvider;
49
+ /** Convenience provider over one snapshot (common replay fixture). */
50
+ export declare function createReplayChannelProviderFromSnapshot(snapshot: TuiChannelSnapshot, transcript?: readonly unknown[]): ChannelProvider;
51
+ export declare const REPLAY_CHANNEL_WIRE_REVISION: 6;
52
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAElF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAClE,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAClC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,2BAA2B;IAC1C;+EAC2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACjD;;yCAEqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACxC;4EACwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CACtG;AAED,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAC/C,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,KAAK,CAAA;AA2EvC,0EAA0E;AAC1E,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,GAAG,eAAe,CA2HhG;AAED,sEAAsE;AACtE,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,GAAE,SAAS,OAAO,EAAO,GAClC,eAAe,CAKjB;AAUD,eAAO,MAAM,4BAA4B,GAA4B,CAAA"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * TUI Channel Provider (P5).
3
+ *
4
+ * A Channel Provider owns the Agent/Session/Workspace side of
5
+ * `tui.dsh/v1alpha1#Channel`. This module implements an in-memory replay
6
+ * provider used by the replay harness: it does not attach to a real DSH
7
+ * service, but it follows the protocol envelope (open/subscribe/invoke/
8
+ * close), validates inputs/outputs, preserves monotonic channel versions,
9
+ * and can be driven from a real recorded DSH session snapshot/transcript.
10
+ *
11
+ * The replay provider is intentionally protocol-envelope focused:
12
+ * - unknown methods are rejected (never treated as a successful no-op);
13
+ * - feature/support validation happens in the replay harness, not here;
14
+ * - values are bounded in size/depth and deep-frozen before being handed out;
15
+ * - method handlers only run inside the harness-provided replay isolation.
16
+ */
17
+ import { TUI_CHANNEL_WIRE_REVISION, validateTuiChannelInput, validateTuiChannelOutput, validateTuiChannelSnapshot, } from '../spec/index.js';
18
+ import { isReplayIsolationActive } from '../kernel/replay-isolation.js';
19
+ /** Safety bound for replay JSON payloads. */
20
+ export const REPLAY_JSON_MAX_BYTES = 512 * 1024;
21
+ /** Safety bound for replay JSON nesting depth. */
22
+ export const REPLAY_JSON_MAX_DEPTH = 64;
23
+ function deepFreezeCopy(value, seen = new WeakMap()) {
24
+ if (value === null || typeof value !== 'object')
25
+ return value;
26
+ const existing = seen.get(value);
27
+ if (existing !== undefined)
28
+ return existing;
29
+ if (Array.isArray(value)) {
30
+ const copy = [];
31
+ seen.set(value, copy);
32
+ for (const item of value)
33
+ copy.push(deepFreezeCopy(item, seen));
34
+ return Object.freeze(copy);
35
+ }
36
+ const copy = {};
37
+ seen.set(value, copy);
38
+ for (const [key, item] of Object.entries(value)) {
39
+ copy[key] = deepFreezeCopy(item, seen);
40
+ }
41
+ return Object.freeze(copy);
42
+ }
43
+ function assertBoundedJson(value, label, depth = 0, ancestors = new Set()) {
44
+ if (depth > REPLAY_JSON_MAX_DEPTH) {
45
+ throw new TypeError(`${label}: JSON nesting exceeds ${REPLAY_JSON_MAX_DEPTH} levels`);
46
+ }
47
+ if (value === null || typeof value === 'boolean' || typeof value === 'string')
48
+ return;
49
+ if (typeof value === 'number') {
50
+ if (!Number.isFinite(value))
51
+ throw new TypeError(`${label}: JSON numbers must be finite`);
52
+ return;
53
+ }
54
+ if (typeof value !== 'object') {
55
+ throw new TypeError(`${label}: must be a JSON value`);
56
+ }
57
+ if (ancestors.has(value))
58
+ throw new TypeError(`${label}: must not contain cycles`);
59
+ ancestors.add(value);
60
+ if (Array.isArray(value)) {
61
+ for (const [index, item] of value.entries())
62
+ assertBoundedJson(item, `${label}[${index}]`, depth + 1, ancestors);
63
+ }
64
+ else {
65
+ const prototype = Object.getPrototypeOf(value);
66
+ if (prototype !== Object.prototype && prototype !== null) {
67
+ throw new TypeError(`${label}: must contain only plain objects`);
68
+ }
69
+ for (const [key, item] of Object.entries(value)) {
70
+ assertBoundedJson(item, `${label}.${key}`, depth + 1, ancestors);
71
+ }
72
+ }
73
+ ancestors.delete(value);
74
+ }
75
+ function assertJsonSize(value, label) {
76
+ let json;
77
+ try {
78
+ json = JSON.stringify(value);
79
+ }
80
+ catch {
81
+ throw new TypeError(`${label}: value is not JSON-serializable`);
82
+ }
83
+ if (json === undefined)
84
+ throw new TypeError(`${label}: value is not JSON-serializable`);
85
+ if (Buffer.byteLength(json, 'utf8') > REPLAY_JSON_MAX_BYTES) {
86
+ throw new TypeError(`${label}: JSON payload exceeds ${REPLAY_JSON_MAX_BYTES} bytes`);
87
+ }
88
+ }
89
+ function channelSnapshot(value) {
90
+ const validated = validateTuiChannelSnapshot(value);
91
+ assertBoundedJson(validated, 'Channel snapshot');
92
+ assertJsonSize(validated, 'Channel snapshot');
93
+ return deepFreezeCopy(validated);
94
+ }
95
+ function invokeOutput(value) {
96
+ const validated = validateTuiChannelOutput('invoke', value);
97
+ assertBoundedJson(validated, 'Channel invoke output');
98
+ assertJsonSize(validated, 'Channel invoke output');
99
+ return deepFreezeCopy(validated);
100
+ }
101
+ /** Create an isolated replay Channel Provider over recorded snapshots. */
102
+ export function createReplayChannelProvider(source) {
103
+ if (!Array.isArray(source.snapshots) || source.snapshots.length === 0) {
104
+ throw new TypeError('replay Channel provider requires at least one snapshot');
105
+ }
106
+ if (source.methods !== undefined && (source.methods === null
107
+ || typeof source.methods !== 'object'
108
+ || (Object.getPrototypeOf(source.methods) !== Object.prototype && Object.getPrototypeOf(source.methods) !== null))) {
109
+ throw new TypeError('replay Channel methods must be a plain object map');
110
+ }
111
+ for (const [name, handler] of Object.entries(source.methods ?? {})) {
112
+ if (typeof handler !== 'function') {
113
+ throw new TypeError(`replay Channel method "${name}" must be a function`);
114
+ }
115
+ }
116
+ const snapshots = Object.freeze([...source.snapshots].map(channelSnapshot));
117
+ for (let index = 1; index < snapshots.length; index += 1) {
118
+ const previous = snapshots[index - 1];
119
+ const current = snapshots[index];
120
+ if (current.channelId !== previous.channelId) {
121
+ throw new TypeError('replay Channel snapshots must share one channelId');
122
+ }
123
+ if (!(current.version > previous.version)) {
124
+ throw new TypeError('replay Channel snapshots must have strictly increasing versions');
125
+ }
126
+ }
127
+ let currentIndex = snapshots.length - 1;
128
+ let closed = false;
129
+ function latest() {
130
+ return snapshots[currentIndex];
131
+ }
132
+ function assertOpen() {
133
+ if (closed)
134
+ throw new Error('CHANNEL_CLOSED');
135
+ }
136
+ return Object.freeze({
137
+ async open(input) {
138
+ validateTuiChannelInput('open', {
139
+ ...input,
140
+ ...(input.options === undefined ? {} : { options: input.options }),
141
+ });
142
+ // The replay provider is a deterministic fixture harness, not a DSH
143
+ // endpoint that resolves workspace/session authorities. Selector
144
+ // resolution is explicitly unsupported: silently returning the latest
145
+ // snapshot for a wrong selector would be a false conformance claim.
146
+ if ((input.workspace !== undefined && input.workspace !== '')
147
+ || (input.sessionId !== undefined && input.sessionId !== '')) {
148
+ throw new Error('REPLAY_PROVIDER_UNSUPPORTED_SELECTOR: replay provider does not resolve workspace/sessionId selectors');
149
+ }
150
+ closed = false;
151
+ return latest();
152
+ },
153
+ async subscribe(channelId, afterVersion, listener) {
154
+ validateTuiChannelInput('subscribe', { channelId, afterVersion });
155
+ assertOpen();
156
+ const channel = latest();
157
+ if (channel.channelId !== channelId) {
158
+ throw new Error('CHANNEL_NOT_FOUND');
159
+ }
160
+ let stopped = false;
161
+ // RFC: subscribe is "not earlier than afterVersion", so equal/version 0
162
+ // snapshots must also be delivered.
163
+ for (const snapshot of snapshots) {
164
+ if (stopped)
165
+ break;
166
+ if (snapshot.version >= afterVersion) {
167
+ listener(snapshot);
168
+ }
169
+ }
170
+ return () => {
171
+ stopped = true;
172
+ };
173
+ },
174
+ async invoke(channelId, method, args) {
175
+ validateTuiChannelInput('invoke', { channelId, method, arguments: args });
176
+ assertBoundedJson(args, 'Channel.invoke arguments');
177
+ assertJsonSize(args, 'Channel.invoke arguments');
178
+ assertOpen();
179
+ const channel = latest();
180
+ if (channel.channelId !== channelId) {
181
+ throw new Error('CHANNEL_NOT_FOUND');
182
+ }
183
+ const handler = source.methods !== undefined && Object.hasOwn(source.methods, method)
184
+ ? source.methods[method]
185
+ : undefined;
186
+ if (typeof handler !== 'function') {
187
+ // Unknown methods are protocol errors, never a successful no-op.
188
+ throw new Error(`FEATURE_UNAVAILABLE: unknown Channel method "${method}"`);
189
+ }
190
+ if (!isReplayIsolationActive()) {
191
+ throw new Error('replay Channel method handlers may only run inside replay isolation');
192
+ }
193
+ const value = await handler(args);
194
+ assertJsonValue(value);
195
+ const output = invokeOutput({
196
+ value: value ?? null,
197
+ valueDefined: value !== undefined,
198
+ ...({ snapshot: latest() }),
199
+ });
200
+ // The protocol's `invoke` output is validated above; if a provider
201
+ // advances state in the future, the snapshot returned must remain
202
+ // monotonic. The replay provider is intentionally read-only, so the
203
+ // snapshot never regresses.
204
+ return output;
205
+ },
206
+ async close(channelId) {
207
+ validateTuiChannelInput('close', { channelId });
208
+ const channel = latest();
209
+ if (channel.channelId !== channelId) {
210
+ throw new Error('CHANNEL_NOT_FOUND');
211
+ }
212
+ closed = true;
213
+ return { closed: true };
214
+ },
215
+ });
216
+ }
217
+ /** Convenience provider over one snapshot (common replay fixture). */
218
+ export function createReplayChannelProviderFromSnapshot(snapshot, transcript = []) {
219
+ return createReplayChannelProvider({
220
+ snapshots: [snapshot],
221
+ transcript,
222
+ });
223
+ }
224
+ function assertJsonValue(value) {
225
+ if (typeof value === 'function' || typeof value === 'symbol') {
226
+ throw new TypeError('replay Channel values must be JSON-serializable');
227
+ }
228
+ assertBoundedJson(value, 'Channel.invoke result');
229
+ assertJsonSize(value, 'Channel.invoke result');
230
+ }
231
+ export const REPLAY_CHANNEL_WIRE_REVISION = TUI_CHANNEL_WIRE_REVISION;
@@ -0,0 +1,4 @@
1
+ /** Detached in-process read projections. Executable leaves are guarded, not serialized. */
2
+ export declare function markChannelReadDirty(value: object): void;
3
+ export declare function createChannelReadView(check: (mutation: boolean) => void): <T>(value: T, nextVersion: number) => T;
4
+ //# sourceMappingURL=read-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-view.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/read-view.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAgB3F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAExD;AAQD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,IAgG9D,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,KAAG,CAAC,CAI7C"}