@deepseek-harness-tui/dsh-tui 0.10.0-beta.4 → 0.10.0-beta.5

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 (253) hide show
  1. package/bin/dsh-tui.js +0 -0
  2. package/cordis.patch.yml +12 -12
  3. package/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -13
  4. package/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -59
  5. package/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -15
  6. package/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -32
  7. package/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -59
  8. package/dsh-ecosystem-spec/protocols/tui-channel.js +166 -166
  9. package/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -42
  10. package/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -143
  11. package/dsh-ecosystem-spec/registry/README.md +14 -14
  12. package/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -56
  13. package/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -13
  14. package/dsh-ecosystem-spec/registry/registry-0.15.json +149 -149
  15. package/lib/types/components/FileSuggestions.d.ts +0 -17
  16. package/lib/types/components/FileSuggestions.d.ts.map +1 -1
  17. package/lib/types/components/FileSuggestions.js +33 -18
  18. package/lib/types/components/LogoV2.d.ts +12 -6
  19. package/lib/types/components/LogoV2.d.ts.map +1 -1
  20. package/lib/types/components/LogoV2.js +20 -13
  21. package/lib/types/components/MessageList.d.ts.map +1 -1
  22. package/lib/types/components/MessageList.js +1 -1
  23. package/lib/types/components/PageMargin.d.ts +58 -0
  24. package/lib/types/components/PageMargin.d.ts.map +1 -0
  25. package/lib/types/components/PageMargin.js +38 -0
  26. package/lib/types/components/PromptEditor.d.ts.map +1 -1
  27. package/lib/types/components/PromptEditor.js +10 -2
  28. package/lib/types/components/ScrollbarGutter.d.ts.map +1 -1
  29. package/lib/types/components/TimelineRail.d.ts.map +1 -1
  30. package/lib/types/components/Tooltip.d.ts.map +1 -1
  31. package/lib/types/components/Tooltip.js +12 -4
  32. package/lib/types/components/Whale.d.ts +7 -6
  33. package/lib/types/components/Whale.d.ts.map +1 -1
  34. package/lib/types/components/Whale.js +4 -2
  35. package/lib/types/components/design-system/Divider.d.ts +9 -1
  36. package/lib/types/components/design-system/Divider.d.ts.map +1 -1
  37. package/lib/types/components/design-system/Divider.js +17 -4
  38. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  39. package/lib/types/components/messages/AssistantToolUseMessage.js +76 -11
  40. package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
  41. package/lib/types/components/sessions/SessionListRow.js +19 -2
  42. package/lib/types/components/whaleFrames.d.ts +37 -8
  43. package/lib/types/components/whaleFrames.d.ts.map +1 -1
  44. package/lib/types/components/whaleFrames.js +369 -24
  45. package/lib/types/dsh-adapter/approvals.d.ts +1 -1
  46. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
  47. package/lib/types/dsh-adapter/approvals.js +5 -4
  48. package/lib/types/dsh-adapter/channel.d.ts +14 -2
  49. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  50. package/lib/types/dsh-adapter/channel.js +187 -149
  51. package/lib/types/dsh-adapter/compat/index.d.ts +8 -3
  52. package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
  53. package/lib/types/dsh-adapter/compat/index.js +8 -3
  54. package/lib/types/dsh-adapter/compat/liveSession.d.ts +75 -0
  55. package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -0
  56. package/lib/types/dsh-adapter/compat/liveSession.js +198 -0
  57. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +8 -0
  58. package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
  59. package/lib/types/dsh-adapter/compat/sessionLog.js +49 -0
  60. package/lib/types/dsh-adapter/contract.d.ts +10 -9
  61. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  62. package/lib/types/dsh-adapter/contract.js +14 -10
  63. package/lib/types/dsh-adapter/index.d.ts +7 -1
  64. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  65. package/lib/types/dsh-adapter/index.js +5 -1
  66. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  67. package/lib/types/dsh-adapter/plugin.js +59 -7
  68. package/lib/types/dsh-adapter/preset-resolution.d.ts +2 -2
  69. package/lib/types/dsh-adapter/preset-resolution.js +2 -2
  70. package/lib/types/dsh-adapter/presets.d.ts +2 -10
  71. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  72. package/lib/types/dsh-adapter/presets.js +4 -2
  73. package/lib/types/dsh-adapter/promptDebug.d.ts.map +1 -1
  74. package/lib/types/dsh-adapter/promptDebug.js +8 -5
  75. package/lib/types/dsh-adapter/questions-answerer.d.ts +2 -2
  76. package/lib/types/dsh-adapter/questions-answerer.js +2 -2
  77. package/lib/types/dsh-adapter/sessionTree.d.ts +1 -2
  78. package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -1
  79. package/lib/types/dsh-adapter/sessionTree.js +20 -6
  80. package/lib/types/dsh-adapter/sessions/header.d.ts +6 -0
  81. package/lib/types/dsh-adapter/sessions/header.d.ts.map +1 -1
  82. package/lib/types/dsh-adapter/sessions/header.js +24 -1
  83. package/lib/types/dsh-adapter/sessions/index.d.ts +1 -1
  84. package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -1
  85. package/lib/types/dsh-adapter/sessions/index.js +1 -1
  86. package/lib/types/dsh-adapter/settings-sections.d.ts +6 -1
  87. package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
  88. package/lib/types/dsh-adapter/trajectory/projection.d.ts +3 -3
  89. package/lib/types/dsh-adapter/trajectory/projection.js +3 -3
  90. package/lib/types/i18n.d.ts +20 -0
  91. package/lib/types/i18n.d.ts.map +1 -1
  92. package/lib/types/i18n.js +9 -0
  93. package/lib/types/ink/components/App.d.ts +42 -1
  94. package/lib/types/ink/components/App.d.ts.map +1 -1
  95. package/lib/types/ink/components/App.js +251 -73
  96. package/lib/types/ink/frame.d.ts +6 -0
  97. package/lib/types/ink/frame.d.ts.map +1 -1
  98. package/lib/types/ink/geometry-trace.d.ts +1 -1
  99. package/lib/types/ink/geometry-trace.d.ts.map +1 -1
  100. package/lib/types/ink/hit-test.d.ts +10 -0
  101. package/lib/types/ink/hit-test.d.ts.map +1 -1
  102. package/lib/types/ink/hit-test.js +28 -6
  103. package/lib/types/ink/ink.d.ts +63 -2
  104. package/lib/types/ink/ink.d.ts.map +1 -1
  105. package/lib/types/ink/ink.js +202 -20
  106. package/lib/types/ink/parse-keypress.d.ts +15 -2
  107. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  108. package/lib/types/ink/parse-keypress.js +144 -41
  109. package/lib/types/ink/render-node-to-output.d.ts +18 -0
  110. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  111. package/lib/types/ink/render-node-to-output.js +38 -1
  112. package/lib/types/ink/renderer.d.ts.map +1 -1
  113. package/lib/types/ink/renderer.js +10 -1
  114. package/lib/types/ink/selection.d.ts +2 -2
  115. package/lib/types/ink/selection.js +2 -2
  116. package/lib/types/presetPrefs.d.ts +2 -2
  117. package/lib/types/presetPrefs.d.ts.map +1 -1
  118. package/lib/types/presetPrefs.js +2 -2
  119. package/lib/types/screens/AgentView.js +3 -3
  120. package/lib/types/screens/Chat.d.ts.map +1 -1
  121. package/lib/types/screens/Chat.js +4 -2
  122. package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
  123. package/lib/types/screens/SessionBrowser.js +3 -1
  124. package/lib/types/screens/SessionTree.js +1 -1
  125. package/lib/types/screens/Settings.d.ts.map +1 -1
  126. package/lib/types/screens/Settings.js +31 -7
  127. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  128. package/lib/types/screens/StatusLine.js +12 -1
  129. package/lib/types/sessions/format.d.ts +6 -0
  130. package/lib/types/sessions/format.d.ts.map +1 -1
  131. package/lib/types/sessions/format.js +10 -0
  132. package/lib/types/tuiDisplayPrefs.d.ts +52 -0
  133. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  134. package/lib/types/tuiDisplayPrefs.js +91 -0
  135. package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +21 -21
  136. package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +143 -143
  137. package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +44 -44
  138. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +69 -69
  139. package/node_modules/@dsh-std/command/CHANGELOG.md +8 -8
  140. package/node_modules/@dsh-std/command/LICENSE +21 -21
  141. package/node_modules/@dsh-std/command/README.md +26 -26
  142. package/node_modules/@dsh-std/command/README.zh.md +28 -28
  143. package/node_modules/@dsh-std/command/lib/index.js.map +1 -1
  144. package/node_modules/@dsh-std/command/package.json +22 -22
  145. package/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
  146. package/node_modules/@dsh-std/connection/LICENSE +21 -21
  147. package/node_modules/@dsh-std/connection/README.md +42 -42
  148. package/node_modules/@dsh-std/connection/README.zh.md +42 -42
  149. package/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
  150. package/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
  151. package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
  152. package/node_modules/@dsh-std/connection/package.json +20 -20
  153. package/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  154. package/node_modules/@dsh-std/core/LICENSE +21 -21
  155. package/node_modules/@dsh-std/core/README.md +13 -13
  156. package/node_modules/@dsh-std/core/README.zh.md +13 -13
  157. package/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  158. package/node_modules/@dsh-std/core/package.json +21 -21
  159. package/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
  160. package/node_modules/@dsh-std/manifest/LICENSE +21 -21
  161. package/node_modules/@dsh-std/manifest/README.md +5 -5
  162. package/node_modules/@dsh-std/manifest/README.zh.md +5 -5
  163. package/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
  164. package/node_modules/@dsh-std/manifest/package.json +20 -20
  165. package/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
  166. package/node_modules/@dsh-std/messages/CHANGELOG.md +8 -8
  167. package/node_modules/@dsh-std/messages/LICENSE +21 -21
  168. package/node_modules/@dsh-std/messages/README.md +5 -5
  169. package/node_modules/@dsh-std/messages/README.zh.md +7 -7
  170. package/node_modules/@dsh-std/messages/lib/index.js.map +1 -1
  171. package/node_modules/@dsh-std/messages/package.json +20 -20
  172. package/node_modules/@dsh-std/messages/schema/message-observer-envelope-0.15.schema.json +54 -54
  173. package/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
  174. package/node_modules/@dsh-std/presentation/LICENSE +21 -21
  175. package/node_modules/@dsh-std/presentation/README.md +27 -27
  176. package/node_modules/@dsh-std/presentation/README.zh.md +29 -29
  177. package/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
  178. package/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
  179. package/node_modules/@dsh-std/presentation/package.json +25 -25
  180. package/node_modules/@dsh-std/storage/CHANGELOG.md +8 -8
  181. package/node_modules/@dsh-std/storage/LICENSE +21 -21
  182. package/node_modules/@dsh-std/storage/README.md +5 -5
  183. package/node_modules/@dsh-std/storage/README.zh.md +7 -7
  184. package/node_modules/@dsh-std/storage/lib/index.js.map +1 -1
  185. package/node_modules/@dsh-std/storage/package.json +20 -20
  186. package/node_modules/@dsh-std/storage/schema/local-storage-0.15.schema.json +56 -56
  187. package/package.json +82 -82
  188. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
  189. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -21
  190. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -42
  191. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -42
  192. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
  193. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
  194. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
  195. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -20
  196. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  197. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -21
  198. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -13
  199. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -13
  200. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  201. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -21
  202. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
  203. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -21
  204. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -5
  205. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -5
  206. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
  207. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -20
  208. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
  209. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
  210. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -21
  211. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -27
  212. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -29
  213. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
  214. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
  215. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -25
  216. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  217. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -21
  218. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -13
  219. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -13
  220. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  221. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -21
  222. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  223. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -21
  224. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -13
  225. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -13
  226. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  227. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -21
  228. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  229. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -21
  230. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -13
  231. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -13
  232. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  233. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -21
  234. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
  235. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -21
  236. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -42
  237. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -42
  238. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
  239. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
  240. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
  241. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -20
  242. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  243. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -21
  244. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -13
  245. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -13
  246. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  247. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -21
  248. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  249. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -21
  250. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -13
  251. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -13
  252. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  253. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -21
package/bin/dsh-tui.js CHANGED
File without changes
package/cordis.patch.yml CHANGED
@@ -37,9 +37,9 @@
37
37
  config:
38
38
  agents: []
39
39
 
40
- # Preserve the TUI's opt-in privacy stance across the alpha base default
40
+ # Preserve the TUI's opt-in privacy stance across the 0.1.2 base default
41
41
  # change to FEEDBACK_ONLY. An explicit DSH_TELEMETRY_MODE still wins. This
42
- # restates the whole alpha config because include patches replace config
42
+ # restates the whole 0.1.2 config because include patches replace config
43
43
  # objects rather than merging them.
44
44
  - id: session-telemetry-otel
45
45
  config:
@@ -55,7 +55,7 @@
55
55
  maxExportBatchSize: 2048
56
56
  exportTimeoutMillis: 1500
57
57
 
58
- # The alpha base sends the active Loader package inventory on official
58
+ # The 0.1.2 base sends the active Loader package inventory on official
59
59
  # DeepSeek requests by default. TUI keeps that diagnostic metadata opt-in.
60
60
  - id: plugin-package-inventory-deepseek
61
61
  config:
@@ -66,8 +66,8 @@
66
66
  # The model-facing plugin set moves INTO the agent-presets roster: every
67
67
  # session composes its tools/prompt sections from one preset directory
68
68
  # (standard/ptc/minimal/cordis) instead of the host rows below. The TUI's
69
- # roster row uses the scoped `dsh-tui-agent-presets` id. alpha packages prepend
70
- # their bundled system root; the validated rc line still needs the dsh CLI's
69
+ # roster row uses the scoped `dsh-tui-agent-presets` id. The 0.1.2 generation
70
+ # prepends its bundled system root; legacy 0.1.1-rc.2 still needs the dsh CLI's
71
71
  # `config/agent-presets/` directory supplied explicitly. Both append
72
72
  # `$DSH_HOME/.agent-presets`. Mirroring the official dsh-web-app patch: every
73
73
  # dsh-base row a preset now owns is disabled here, so a minimal agent does not
@@ -104,9 +104,9 @@
104
104
 
105
105
  - id: command-goal
106
106
  # rc.2 presets do not carry this command, so their host row must remain
107
- # active. alpha disables it only when the shipped standard preset really
108
- # owns the command; reading the capability avoids guessing from another
109
- # optional Loader row.
107
+ # active. Newer packages disable it only when the shipped standard preset
108
+ # really owns the command; reading the capability avoids guessing from
109
+ # another optional Loader row.
110
110
  disabled: !!js >-
111
111
  (() => {
112
112
  const require = process.getBuiltinModule('node:module').createRequire(ctx.baseUrl)
@@ -245,7 +245,7 @@
245
245
  name: '@deepseek-ai/dsh-code-runtime-worker-thread'
246
246
  disabled: !!js "[...ctx.loader.entries()].some(entry => entry.options.id === 'code-runtime' && entry.options.name === '@deepseek-ai/dsh-code-runtime-worker-thread' && !entry.disabled)"
247
247
 
248
- # Alpha presets opt their delegation tool into Host-owned model-selection
248
+ # 0.1.2 presets opt their delegation tool into Host-owned model-selection
249
249
  # settings. Without this service standard/ptc/cordis preset mounting fails.
250
250
  # The package subpath does not exist on rc.2, so resolve that capability
251
251
  # directly before Loader attempts the import. An enabled official row still
@@ -302,9 +302,9 @@
302
302
  name: '@deepseek-harness-tui/dsh-tui/extensions'
303
303
 
304
304
  # The agent-preset roster (issue #8): `ctx.agentPresets`, the service the
305
- # TUI composes every session's model-facing world from. alpha packages
306
- # prepend their bundled presets as the read-only system root; rc.2 packages
307
- # have no bundled root and still scan the dsh CLI directory. Both append
305
+ # TUI composes every session's model-facing world from. 0.1.2 packages
306
+ # prepend their bundled presets as the read-only system root; legacy rc.2
307
+ # packages have no bundled root and still scan the dsh CLI directory. Both append
308
308
  # `$DSH_HOME/.agent-presets` as the user root. Deployment-added roots may
309
309
  # still be supplied by a later patch.
310
310
  - id: dsh-tui-agent-presets
@@ -1,13 +1,13 @@
1
- import type { ApiReference, ProtocolCatalog, ProtocolDefinition } from '@dsh-std/core'
2
- export { registerTuiContributionExtensions } from './tui-contributions.js'
3
- export * from './tui-channel.js'
4
-
5
- export const DECISION_EVENTS: Readonly<ApiReference & {
6
- apiVersion: 'tui.dsh/v1alpha1'
7
- kind: 'DecisionEvents'
8
- }>
9
-
10
- export const decisionEventsDefinition: ProtocolDefinition
11
- export const profileDefinitions: readonly ProtocolDefinition[]
12
-
13
- export function registerProfileProtocols(catalog: ProtocolCatalog): () => void
1
+ import type { ApiReference, ProtocolCatalog, ProtocolDefinition } from '@dsh-std/core'
2
+ export { registerTuiContributionExtensions } from './tui-contributions.js'
3
+ export * from './tui-channel.js'
4
+
5
+ export const DECISION_EVENTS: Readonly<ApiReference & {
6
+ apiVersion: 'tui.dsh/v1alpha1'
7
+ kind: 'DecisionEvents'
8
+ }>
9
+
10
+ export const decisionEventsDefinition: ProtocolDefinition
11
+ export const profileDefinitions: readonly ProtocolDefinition[]
12
+
13
+ export function registerProfileProtocols(catalog: ProtocolCatalog): () => void
@@ -1,59 +1,59 @@
1
- /** dsh-TUI private protocol definitions evaluated by @dsh-std/core. */
2
-
3
- export { registerTuiContributionExtensions } from './tui-contributions.js'
4
- export * from './tui-channel.js'
5
- import { tuiChannelDefinition } from './tui-channel.js'
6
-
7
- export const DECISION_EVENTS = Object.freeze({
8
- apiVersion: 'tui.dsh/v1alpha1',
9
- kind: 'DecisionEvents',
10
- })
11
-
12
- function featureSupport(value, label) {
13
- if (value === undefined) return Object.freeze({ features: Object.freeze([]) })
14
- if (typeof value !== 'object' || value === null || Array.isArray(value)) {
15
- throw new TypeError(`${label} support spec must be an object`)
16
- }
17
- const unknown = Object.keys(value).filter(key => key !== 'features' && !key.startsWith('x-'))
18
- if (unknown.length > 0) throw new TypeError(`${label} support spec contains unknown field ${JSON.stringify(unknown[0])}`)
19
- if (value.features !== undefined && (!Array.isArray(value.features)
20
- || value.features.some(feature => typeof feature !== 'string' || feature.trim() === ''))) {
21
- throw new TypeError(`${label} support spec.features must be an array of non-empty strings`)
22
- }
23
- return Object.freeze({ features: Object.freeze([...(value.features ?? [])].sort()) })
24
- }
25
-
26
- function providerDefinition(reference, label) {
27
- return Object.freeze({
28
- ...reference,
29
- validateRequirement(value) {
30
- if (value !== undefined) throw new TypeError(`${label} requirement does not accept spec in manifest v0.15`)
31
- return undefined
32
- },
33
- validateSupport(value) { return featureSupport(value, label) },
34
- negotiate(input) {
35
- const providers = [...new Set(input.supports.map(row => row.participant))].sort()
36
- const issues = input.requirements.flatMap(row => providers.length === 0
37
- ? [{
38
- code: row.requirement.optional === true ? 'optional-support-missing' : 'required-support-missing',
39
- severity: row.requirement.optional === true ? 'warning' : 'error',
40
- participant: row.participant,
41
- message: `${label} has no provider in this negotiation scope`,
42
- }]
43
- : [])
44
- return { agreement: Object.freeze({ providers: Object.freeze(providers) }), issues: Object.freeze(issues) }
45
- },
46
- })
47
- }
48
-
49
- export const decisionEventsDefinition = providerDefinition(DECISION_EVENTS, 'DecisionEvents')
50
-
51
- export const profileDefinitions = Object.freeze([
52
- decisionEventsDefinition,
53
- tuiChannelDefinition,
54
- ])
55
-
56
- export function registerProfileProtocols(catalog) {
57
- const disposers = profileDefinitions.map(definition => catalog.register(definition))
58
- return () => { for (const dispose of disposers.reverse()) dispose() }
59
- }
1
+ /** dsh-TUI private protocol definitions evaluated by @dsh-std/core. */
2
+
3
+ export { registerTuiContributionExtensions } from './tui-contributions.js'
4
+ export * from './tui-channel.js'
5
+ import { tuiChannelDefinition } from './tui-channel.js'
6
+
7
+ export const DECISION_EVENTS = Object.freeze({
8
+ apiVersion: 'tui.dsh/v1alpha1',
9
+ kind: 'DecisionEvents',
10
+ })
11
+
12
+ function featureSupport(value, label) {
13
+ if (value === undefined) return Object.freeze({ features: Object.freeze([]) })
14
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
15
+ throw new TypeError(`${label} support spec must be an object`)
16
+ }
17
+ const unknown = Object.keys(value).filter(key => key !== 'features' && !key.startsWith('x-'))
18
+ if (unknown.length > 0) throw new TypeError(`${label} support spec contains unknown field ${JSON.stringify(unknown[0])}`)
19
+ if (value.features !== undefined && (!Array.isArray(value.features)
20
+ || value.features.some(feature => typeof feature !== 'string' || feature.trim() === ''))) {
21
+ throw new TypeError(`${label} support spec.features must be an array of non-empty strings`)
22
+ }
23
+ return Object.freeze({ features: Object.freeze([...(value.features ?? [])].sort()) })
24
+ }
25
+
26
+ function providerDefinition(reference, label) {
27
+ return Object.freeze({
28
+ ...reference,
29
+ validateRequirement(value) {
30
+ if (value !== undefined) throw new TypeError(`${label} requirement does not accept spec in manifest v0.15`)
31
+ return undefined
32
+ },
33
+ validateSupport(value) { return featureSupport(value, label) },
34
+ negotiate(input) {
35
+ const providers = [...new Set(input.supports.map(row => row.participant))].sort()
36
+ const issues = input.requirements.flatMap(row => providers.length === 0
37
+ ? [{
38
+ code: row.requirement.optional === true ? 'optional-support-missing' : 'required-support-missing',
39
+ severity: row.requirement.optional === true ? 'warning' : 'error',
40
+ participant: row.participant,
41
+ message: `${label} has no provider in this negotiation scope`,
42
+ }]
43
+ : [])
44
+ return { agreement: Object.freeze({ providers: Object.freeze(providers) }), issues: Object.freeze(issues) }
45
+ },
46
+ })
47
+ }
48
+
49
+ export const decisionEventsDefinition = providerDefinition(DECISION_EVENTS, 'DecisionEvents')
50
+
51
+ export const profileDefinitions = Object.freeze([
52
+ decisionEventsDefinition,
53
+ tuiChannelDefinition,
54
+ ])
55
+
56
+ export function registerProfileProtocols(catalog) {
57
+ const disposers = profileDefinitions.map(definition => catalog.register(definition))
58
+ return () => { for (const dispose of disposers.reverse()) dispose() }
59
+ }
@@ -1,15 +1,15 @@
1
- export const TUI_CHANNEL_HTTP_API_VERSION: 'tui.dsh/v1alpha1'
2
- export const TUI_CHANNEL_HTTP_KIND: 'ChannelEndpoint'
3
- export const TUI_CHANNEL_HTTP_HEALTH_PATH: '/dsh-tui/v1/health'
4
- export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH: '/dsh-tui/v1/endpoint'
5
- export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH: '/dsh-tui/v1/connection'
6
-
7
- export interface TuiChannelEndpointDescriptor {
8
- readonly apiVersion: typeof TUI_CHANNEL_HTTP_API_VERSION
9
- readonly kind: typeof TUI_CHANNEL_HTTP_KIND
10
- readonly origin: string
11
- readonly connection: typeof TUI_CHANNEL_HTTP_WEBSOCKET_PATH
12
- }
13
-
14
- export function createTuiChannelEndpointDescriptor(origin: string): TuiChannelEndpointDescriptor
15
- export function validateTuiChannelEndpointDescriptor(value: unknown): TuiChannelEndpointDescriptor
1
+ export const TUI_CHANNEL_HTTP_API_VERSION: 'tui.dsh/v1alpha1'
2
+ export const TUI_CHANNEL_HTTP_KIND: 'ChannelEndpoint'
3
+ export const TUI_CHANNEL_HTTP_HEALTH_PATH: '/dsh-tui/v1/health'
4
+ export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH: '/dsh-tui/v1/endpoint'
5
+ export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH: '/dsh-tui/v1/connection'
6
+
7
+ export interface TuiChannelEndpointDescriptor {
8
+ readonly apiVersion: typeof TUI_CHANNEL_HTTP_API_VERSION
9
+ readonly kind: typeof TUI_CHANNEL_HTTP_KIND
10
+ readonly origin: string
11
+ readonly connection: typeof TUI_CHANNEL_HTTP_WEBSOCKET_PATH
12
+ }
13
+
14
+ export function createTuiChannelEndpointDescriptor(origin: string): TuiChannelEndpointDescriptor
15
+ export function validateTuiChannelEndpointDescriptor(value: unknown): TuiChannelEndpointDescriptor
@@ -1,32 +1,32 @@
1
- export const TUI_CHANNEL_HTTP_API_VERSION = 'tui.dsh/v1alpha1'
2
- export const TUI_CHANNEL_HTTP_KIND = 'ChannelEndpoint'
3
- export const TUI_CHANNEL_HTTP_HEALTH_PATH = '/dsh-tui/v1/health'
4
- export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH = '/dsh-tui/v1/endpoint'
5
- export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH = '/dsh-tui/v1/connection'
6
-
7
- export function createTuiChannelEndpointDescriptor(origin) {
8
- const normalized = new URL(origin)
9
- if (normalized.protocol !== 'http:' && normalized.protocol !== 'https:') {
10
- throw new TypeError('TUI Channel endpoint origin must use http or https')
11
- }
12
- normalized.pathname = '/'
13
- normalized.search = ''
14
- normalized.hash = ''
15
- return Object.freeze({
16
- apiVersion: TUI_CHANNEL_HTTP_API_VERSION,
17
- kind: TUI_CHANNEL_HTTP_KIND,
18
- origin: normalized.toString().replace(/\/$/u, ''),
19
- connection: TUI_CHANNEL_HTTP_WEBSOCKET_PATH,
20
- })
21
- }
22
-
23
- export function validateTuiChannelEndpointDescriptor(value) {
24
- if (typeof value !== 'object' || value === null || Array.isArray(value)) throw new TypeError('TUI Channel endpoint descriptor must be an object')
25
- if (value.apiVersion !== TUI_CHANNEL_HTTP_API_VERSION || value.kind !== TUI_CHANNEL_HTTP_KIND) {
26
- throw new TypeError('TUI Channel endpoint descriptor version or kind is unsupported')
27
- }
28
- if (typeof value.origin !== 'string') throw new TypeError('TUI Channel endpoint origin must be a string')
29
- createTuiChannelEndpointDescriptor(value.origin)
30
- if (value.connection !== TUI_CHANNEL_HTTP_WEBSOCKET_PATH) throw new TypeError('TUI Channel endpoint connection path is unsupported')
31
- return value
32
- }
1
+ export const TUI_CHANNEL_HTTP_API_VERSION = 'tui.dsh/v1alpha1'
2
+ export const TUI_CHANNEL_HTTP_KIND = 'ChannelEndpoint'
3
+ export const TUI_CHANNEL_HTTP_HEALTH_PATH = '/dsh-tui/v1/health'
4
+ export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH = '/dsh-tui/v1/endpoint'
5
+ export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH = '/dsh-tui/v1/connection'
6
+
7
+ export function createTuiChannelEndpointDescriptor(origin) {
8
+ const normalized = new URL(origin)
9
+ if (normalized.protocol !== 'http:' && normalized.protocol !== 'https:') {
10
+ throw new TypeError('TUI Channel endpoint origin must use http or https')
11
+ }
12
+ normalized.pathname = '/'
13
+ normalized.search = ''
14
+ normalized.hash = ''
15
+ return Object.freeze({
16
+ apiVersion: TUI_CHANNEL_HTTP_API_VERSION,
17
+ kind: TUI_CHANNEL_HTTP_KIND,
18
+ origin: normalized.toString().replace(/\/$/u, ''),
19
+ connection: TUI_CHANNEL_HTTP_WEBSOCKET_PATH,
20
+ })
21
+ }
22
+
23
+ export function validateTuiChannelEndpointDescriptor(value) {
24
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) throw new TypeError('TUI Channel endpoint descriptor must be an object')
25
+ if (value.apiVersion !== TUI_CHANNEL_HTTP_API_VERSION || value.kind !== TUI_CHANNEL_HTTP_KIND) {
26
+ throw new TypeError('TUI Channel endpoint descriptor version or kind is unsupported')
27
+ }
28
+ if (typeof value.origin !== 'string') throw new TypeError('TUI Channel endpoint origin must be a string')
29
+ createTuiChannelEndpointDescriptor(value.origin)
30
+ if (value.connection !== TUI_CHANNEL_HTTP_WEBSOCKET_PATH) throw new TypeError('TUI Channel endpoint connection path is unsupported')
31
+ return value
32
+ }
@@ -1,59 +1,59 @@
1
- import type { ApiReference, ProtocolDefinition } from '@dsh-std/core'
2
-
3
- export type JsonValue = null | boolean | number | string | readonly JsonValue[] | { readonly [key: string]: JsonValue }
4
-
5
- export const TUI_CHANNEL: Readonly<ApiReference & {
6
- apiVersion: 'tui.dsh/v1alpha1'
7
- kind: 'Channel'
8
- }>
9
- export const TUI_CHANNEL_WIRE_REVISION: 6
10
- export const TUI_CHANNEL_FEATURES: readonly string[]
11
-
12
- export interface TuiChannelRequirementSpec {
13
- readonly wireRevision: number
14
- readonly features: readonly string[]
15
- }
16
- export interface TuiChannelSupportSpec extends TuiChannelRequirementSpec {}
17
-
18
- export interface TuiChannelSnapshot {
19
- readonly wireRevision: number
20
- readonly channelId: string
21
- readonly version: number
22
- readonly state: Readonly<Record<string, JsonValue>>
23
- }
24
-
25
- export interface TuiChannelWorkspaceFlowChoice {
26
- readonly id: string
27
- readonly label: string
28
- readonly description?: string
29
- readonly badge?: string
30
- readonly action: string
31
- readonly input?: {
32
- readonly action: string
33
- readonly initialValue?: string
34
- readonly placeholder?: string
35
- }
36
- }
37
-
38
- export type TuiChannelWorkspaceFlowResult =
39
- | { readonly kind: 'target'; readonly target: import('./tui-contributions.js').WorkspaceTarget }
40
- | { readonly kind: 'choices'; readonly title: string; readonly choices: readonly TuiChannelWorkspaceFlowChoice[] }
41
-
42
- export type TuiChannelInput =
43
- | { readonly operation: 'open'; readonly value: { readonly workspace?: string; readonly sessionId?: string; readonly options?: JsonValue } }
44
- | { readonly operation: 'subscribe'; readonly value: { readonly channelId: string; readonly afterVersion: number } }
45
- | { readonly operation: 'invoke'; readonly value: { readonly channelId: string; readonly method: string; readonly arguments: readonly JsonValue[] } }
46
- | { readonly operation: 'close'; readonly value: { readonly channelId: string } }
47
-
48
- export interface TuiChannelInvokeOutput {
49
- readonly value: JsonValue
50
- readonly valueDefined?: boolean
51
- readonly snapshot?: TuiChannelSnapshot
52
- }
53
-
54
- export const tuiChannelDefinition: ProtocolDefinition
55
- export function validateTuiChannelRequirement(value: unknown): TuiChannelRequirementSpec
56
- export function validateTuiChannelSupport(value: unknown): TuiChannelSupportSpec
57
- export function validateTuiChannelInput(operation: string, value: unknown): object
58
- export function validateTuiChannelSnapshot(value: unknown): TuiChannelSnapshot
59
- export function validateTuiChannelOutput(operation: string, value: unknown): object
1
+ import type { ApiReference, ProtocolDefinition } from '@dsh-std/core'
2
+
3
+ export type JsonValue = null | boolean | number | string | readonly JsonValue[] | { readonly [key: string]: JsonValue }
4
+
5
+ export const TUI_CHANNEL: Readonly<ApiReference & {
6
+ apiVersion: 'tui.dsh/v1alpha1'
7
+ kind: 'Channel'
8
+ }>
9
+ export const TUI_CHANNEL_WIRE_REVISION: 6
10
+ export const TUI_CHANNEL_FEATURES: readonly string[]
11
+
12
+ export interface TuiChannelRequirementSpec {
13
+ readonly wireRevision: number
14
+ readonly features: readonly string[]
15
+ }
16
+ export interface TuiChannelSupportSpec extends TuiChannelRequirementSpec {}
17
+
18
+ export interface TuiChannelSnapshot {
19
+ readonly wireRevision: number
20
+ readonly channelId: string
21
+ readonly version: number
22
+ readonly state: Readonly<Record<string, JsonValue>>
23
+ }
24
+
25
+ export interface TuiChannelWorkspaceFlowChoice {
26
+ readonly id: string
27
+ readonly label: string
28
+ readonly description?: string
29
+ readonly badge?: string
30
+ readonly action: string
31
+ readonly input?: {
32
+ readonly action: string
33
+ readonly initialValue?: string
34
+ readonly placeholder?: string
35
+ }
36
+ }
37
+
38
+ export type TuiChannelWorkspaceFlowResult =
39
+ | { readonly kind: 'target'; readonly target: import('./tui-contributions.js').WorkspaceTarget }
40
+ | { readonly kind: 'choices'; readonly title: string; readonly choices: readonly TuiChannelWorkspaceFlowChoice[] }
41
+
42
+ export type TuiChannelInput =
43
+ | { readonly operation: 'open'; readonly value: { readonly workspace?: string; readonly sessionId?: string; readonly options?: JsonValue } }
44
+ | { readonly operation: 'subscribe'; readonly value: { readonly channelId: string; readonly afterVersion: number } }
45
+ | { readonly operation: 'invoke'; readonly value: { readonly channelId: string; readonly method: string; readonly arguments: readonly JsonValue[] } }
46
+ | { readonly operation: 'close'; readonly value: { readonly channelId: string } }
47
+
48
+ export interface TuiChannelInvokeOutput {
49
+ readonly value: JsonValue
50
+ readonly valueDefined?: boolean
51
+ readonly snapshot?: TuiChannelSnapshot
52
+ }
53
+
54
+ export const tuiChannelDefinition: ProtocolDefinition
55
+ export function validateTuiChannelRequirement(value: unknown): TuiChannelRequirementSpec
56
+ export function validateTuiChannelSupport(value: unknown): TuiChannelSupportSpec
57
+ export function validateTuiChannelInput(operation: string, value: unknown): object
58
+ export function validateTuiChannelSnapshot(value: unknown): TuiChannelSnapshot
59
+ export function validateTuiChannelOutput(operation: string, value: unknown): object