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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/README.md +146 -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 +227 -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/GoalTodoPanel.d.ts +2 -1
  254. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  255. package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
  256. package/lib/types/components/HistorySearchDialog.js +7 -5
  257. package/lib/types/components/MessageList.d.ts.map +1 -1
  258. package/lib/types/components/MessageList.js +36 -8
  259. package/lib/types/components/ModelPicker.d.ts +1 -1
  260. package/lib/types/components/ModelPicker.d.ts.map +1 -1
  261. package/lib/types/components/ModelPicker.js +8 -4
  262. package/lib/types/components/OverlayAbove.d.ts +22 -1
  263. package/lib/types/components/OverlayAbove.d.ts.map +1 -1
  264. package/lib/types/components/OverlayAbove.js +74 -5
  265. package/lib/types/components/PromptInput.d.ts +2 -1
  266. package/lib/types/components/PromptInput.d.ts.map +1 -1
  267. package/lib/types/components/RewindPicker.d.ts.map +1 -1
  268. package/lib/types/components/RewindPicker.js +14 -6
  269. package/lib/types/components/SkillsPicker.d.ts.map +1 -1
  270. package/lib/types/components/SkillsPicker.js +6 -4
  271. package/lib/types/components/Spinner/spinnerMode.d.ts +1 -5
  272. package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -1
  273. package/lib/types/components/design-system/ThemedBox.d.ts +4 -2
  274. package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -1
  275. package/lib/types/components/design-system/ThemedBox.js +2 -2
  276. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  277. package/lib/types/components/messages/AssistantToolUseMessage.js +69 -25
  278. package/lib/types/components/overlayBudget.d.ts +39 -0
  279. package/lib/types/components/overlayBudget.d.ts.map +1 -0
  280. package/lib/types/components/overlayBudget.js +43 -0
  281. package/lib/types/deepseekBalance.d.ts +2 -36
  282. package/lib/types/deepseekBalance.d.ts.map +1 -1
  283. package/lib/types/deepseekBalance.js +0 -14
  284. package/lib/types/deepseekPricing.d.ts +2 -1
  285. package/lib/types/deepseekPricing.d.ts.map +1 -1
  286. package/lib/types/deepseekPricing.js +8 -1
  287. package/lib/types/dsh-adapter/approvals.d.ts +11 -1
  288. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
  289. package/lib/types/dsh-adapter/approvals.js +32 -12
  290. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +20 -0
  291. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -0
  292. package/lib/types/dsh-adapter/channel/action-readiness.js +83 -0
  293. package/lib/types/dsh-adapter/channel/activity.d.ts +20 -0
  294. package/lib/types/dsh-adapter/channel/activity.d.ts.map +1 -0
  295. package/lib/types/dsh-adapter/channel/activity.js +113 -0
  296. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +64 -0
  297. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -0
  298. package/lib/types/dsh-adapter/channel/agent-view-projection.js +295 -0
  299. package/lib/types/dsh-adapter/channel/background-action.d.ts +41 -0
  300. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -0
  301. package/lib/types/dsh-adapter/channel/background-action.js +86 -0
  302. package/lib/types/dsh-adapter/channel/binding-events.d.ts +60 -0
  303. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -0
  304. package/lib/types/dsh-adapter/channel/binding-events.js +159 -0
  305. package/lib/types/dsh-adapter/channel/binding.d.ts +41 -0
  306. package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -0
  307. package/lib/types/dsh-adapter/channel/binding.js +227 -0
  308. package/lib/types/dsh-adapter/channel/command-completions.d.ts +29 -0
  309. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -0
  310. package/lib/types/dsh-adapter/channel/command-completions.js +94 -0
  311. package/lib/types/dsh-adapter/channel/commands.d.ts +8 -0
  312. package/lib/types/dsh-adapter/channel/commands.d.ts.map +1 -0
  313. package/lib/types/dsh-adapter/channel/commands.js +9 -0
  314. package/lib/types/dsh-adapter/channel/compaction.d.ts +19 -0
  315. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -0
  316. package/lib/types/dsh-adapter/channel/compaction.js +116 -0
  317. package/lib/types/dsh-adapter/channel/composer-images.d.ts +57 -0
  318. package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -0
  319. package/lib/types/dsh-adapter/channel/composer-images.js +217 -0
  320. package/lib/types/dsh-adapter/channel/composer-mentions.d.ts +15 -0
  321. package/lib/types/dsh-adapter/channel/composer-mentions.d.ts.map +1 -0
  322. package/lib/types/dsh-adapter/channel/composer-mentions.js +200 -0
  323. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +26 -0
  324. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -0
  325. package/lib/types/dsh-adapter/channel/context-bookkeeping.js +30 -0
  326. package/lib/types/dsh-adapter/channel/decisions.d.ts +19 -0
  327. package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -0
  328. package/lib/types/dsh-adapter/channel/decisions.js +90 -0
  329. package/lib/types/dsh-adapter/channel/emitter.d.ts +10 -0
  330. package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -0
  331. package/lib/types/dsh-adapter/channel/emitter.js +71 -0
  332. package/lib/types/dsh-adapter/channel/external-commands.d.ts +31 -0
  333. package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -0
  334. package/lib/types/dsh-adapter/channel/external-commands.js +187 -0
  335. package/lib/types/dsh-adapter/channel/file-actions.d.ts +20 -0
  336. package/lib/types/dsh-adapter/channel/file-actions.d.ts.map +1 -0
  337. package/lib/types/dsh-adapter/channel/file-actions.js +45 -0
  338. package/lib/types/dsh-adapter/channel/input-actions.d.ts +13 -0
  339. package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -0
  340. package/lib/types/dsh-adapter/channel/input-actions.js +135 -0
  341. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +34 -0
  342. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -0
  343. package/lib/types/dsh-adapter/channel/input-delivery.js +241 -0
  344. package/lib/types/dsh-adapter/channel/job-projection.d.ts +28 -0
  345. package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -0
  346. package/lib/types/dsh-adapter/channel/job-projection.js +150 -0
  347. package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts +9 -0
  348. package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts.map +1 -0
  349. package/lib/types/dsh-adapter/channel/lifetime-resources.js +33 -0
  350. package/lib/types/dsh-adapter/channel/loaded-context.d.ts +40 -0
  351. package/lib/types/dsh-adapter/channel/loaded-context.d.ts.map +1 -0
  352. package/lib/types/dsh-adapter/channel/loaded-context.js +62 -0
  353. package/lib/types/dsh-adapter/channel/local-actions.d.ts +70 -0
  354. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -0
  355. package/lib/types/dsh-adapter/channel/local-actions.js +108 -0
  356. package/lib/types/dsh-adapter/channel/mentions.d.ts +29 -0
  357. package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -0
  358. package/lib/types/dsh-adapter/channel/mentions.js +235 -0
  359. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +30 -0
  360. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -0
  361. package/lib/types/dsh-adapter/channel/mode-actions.js +247 -0
  362. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +35 -0
  363. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -0
  364. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +199 -0
  365. package/lib/types/dsh-adapter/channel/mode-permission.d.ts +58 -0
  366. package/lib/types/dsh-adapter/channel/mode-permission.d.ts.map +1 -0
  367. package/lib/types/dsh-adapter/channel/mode-permission.js +240 -0
  368. package/lib/types/dsh-adapter/channel/mode-roster.d.ts +51 -0
  369. package/lib/types/dsh-adapter/channel/mode-roster.d.ts.map +1 -0
  370. package/lib/types/dsh-adapter/channel/mode-roster.js +119 -0
  371. package/lib/types/dsh-adapter/channel/model-actions.d.ts +46 -0
  372. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -0
  373. package/lib/types/dsh-adapter/channel/model-actions.js +275 -0
  374. package/lib/types/dsh-adapter/channel/model-switch.d.ts +32 -0
  375. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -0
  376. package/lib/types/dsh-adapter/channel/model-switch.js +98 -0
  377. package/lib/types/dsh-adapter/channel/notifications.d.ts +9 -0
  378. package/lib/types/dsh-adapter/channel/notifications.d.ts.map +1 -0
  379. package/lib/types/dsh-adapter/channel/notifications.js +24 -0
  380. package/lib/types/dsh-adapter/channel/owner.d.ts +18 -0
  381. package/lib/types/dsh-adapter/channel/owner.d.ts.map +1 -0
  382. package/lib/types/dsh-adapter/channel/owner.js +73 -0
  383. package/lib/types/dsh-adapter/channel/paths.d.ts +31 -0
  384. package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -0
  385. package/lib/types/dsh-adapter/channel/paths.js +147 -0
  386. package/lib/types/dsh-adapter/channel/permissions.d.ts +40 -0
  387. package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -0
  388. package/lib/types/dsh-adapter/channel/permissions.js +184 -0
  389. package/lib/types/dsh-adapter/channel/preferences.d.ts +3 -0
  390. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -0
  391. package/lib/types/dsh-adapter/channel/preferences.js +103 -0
  392. package/lib/types/dsh-adapter/channel/projection-helpers.d.ts +13 -0
  393. package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -0
  394. package/lib/types/dsh-adapter/channel/projection-helpers.js +63 -0
  395. package/lib/types/dsh-adapter/channel/projection.d.ts +40 -0
  396. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -0
  397. package/lib/types/dsh-adapter/channel/projection.js +1021 -0
  398. package/lib/types/dsh-adapter/channel/reports.d.ts +32 -0
  399. package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -0
  400. package/lib/types/dsh-adapter/channel/reports.js +171 -0
  401. package/lib/types/dsh-adapter/channel/session-actions.d.ts +13 -0
  402. package/lib/types/dsh-adapter/channel/session-actions.d.ts.map +1 -0
  403. package/lib/types/dsh-adapter/channel/session-actions.js +29 -0
  404. package/lib/types/dsh-adapter/channel/session-adoption.d.ts +32 -0
  405. package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -0
  406. package/lib/types/dsh-adapter/channel/session-adoption.js +35 -0
  407. package/lib/types/dsh-adapter/channel/session-fork.d.ts +19 -0
  408. package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -0
  409. package/lib/types/dsh-adapter/channel/session-fork.js +85 -0
  410. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +32 -0
  411. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -0
  412. package/lib/types/dsh-adapter/channel/session-live-adoption.js +62 -0
  413. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +81 -0
  414. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -0
  415. package/lib/types/dsh-adapter/channel/session-metadata.js +209 -0
  416. package/lib/types/dsh-adapter/channel/session-reset.d.ts +11 -0
  417. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -0
  418. package/lib/types/dsh-adapter/channel/session-reset.js +44 -0
  419. package/lib/types/dsh-adapter/channel/session-resume.d.ts +56 -0
  420. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -0
  421. package/lib/types/dsh-adapter/channel/session-resume.js +240 -0
  422. package/lib/types/dsh-adapter/channel/session-rewind.d.ts +19 -0
  423. package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -0
  424. package/lib/types/dsh-adapter/channel/session-rewind.js +121 -0
  425. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +19 -0
  426. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -0
  427. package/lib/types/dsh-adapter/channel/session-tree-actions.js +132 -0
  428. package/lib/types/dsh-adapter/channel/session-tree.d.ts +10 -0
  429. package/lib/types/dsh-adapter/channel/session-tree.d.ts.map +1 -0
  430. package/lib/types/dsh-adapter/channel/session-tree.js +503 -0
  431. package/lib/types/dsh-adapter/channel/settings-host.d.ts +4 -0
  432. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -0
  433. package/lib/types/dsh-adapter/channel/settings-host.js +256 -0
  434. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +27 -0
  435. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -0
  436. package/lib/types/dsh-adapter/channel/skill-catalog.js +183 -0
  437. package/lib/types/dsh-adapter/channel/state.d.ts +46 -0
  438. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -0
  439. package/lib/types/dsh-adapter/channel/state.js +31 -0
  440. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +47 -0
  441. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -0
  442. package/lib/types/dsh-adapter/channel/subagent-projection.js +140 -0
  443. package/lib/types/dsh-adapter/channel/transcript.d.ts +73 -0
  444. package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -0
  445. package/lib/types/dsh-adapter/channel/transcript.js +312 -0
  446. package/lib/types/dsh-adapter/channel/types.d.ts +162 -0
  447. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -0
  448. package/lib/types/dsh-adapter/channel/types.js +1 -0
  449. package/lib/types/dsh-adapter/channel/usage.d.ts +13 -0
  450. package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -0
  451. package/lib/types/dsh-adapter/channel/usage.js +48 -0
  452. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts +20 -0
  453. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -0
  454. package/lib/types/dsh-adapter/channel/workspace-actions.js +56 -0
  455. package/lib/types/dsh-adapter/channel-facade-actions.d.ts +25 -0
  456. package/lib/types/dsh-adapter/channel-facade-actions.d.ts.map +1 -0
  457. package/lib/types/dsh-adapter/channel-facade-actions.js +55 -0
  458. package/lib/types/dsh-adapter/channel-scene-outlet.d.ts +6 -0
  459. package/lib/types/dsh-adapter/channel-scene-outlet.d.ts.map +1 -0
  460. package/lib/types/dsh-adapter/channel-scene-outlet.js +13 -0
  461. package/lib/types/dsh-adapter/channel-ui.d.ts +9 -0
  462. package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -0
  463. package/lib/types/dsh-adapter/channel-ui.js +128 -0
  464. package/lib/types/dsh-adapter/channel.d.ts +9 -1525
  465. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  466. package/lib/types/dsh-adapter/channel.js +750 -8145
  467. package/lib/types/dsh-adapter/command-trees.d.ts +1 -0
  468. package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -1
  469. package/lib/types/dsh-adapter/command-trees.js +20 -1
  470. package/lib/types/dsh-adapter/compat/liveSession.d.ts +3 -1
  471. package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -1
  472. package/lib/types/dsh-adapter/compat/liveSession.js +23 -0
  473. package/lib/types/dsh-adapter/compat/persistence.d.ts +21 -0
  474. package/lib/types/dsh-adapter/compat/persistence.d.ts.map +1 -0
  475. package/lib/types/dsh-adapter/compat/persistence.js +17 -0
  476. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +50 -11
  477. package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
  478. package/lib/types/dsh-adapter/compat/sessionLog.js +325 -36
  479. package/lib/types/dsh-adapter/component-identity.d.ts +1 -1
  480. package/lib/types/dsh-adapter/component-identity.d.ts.map +1 -1
  481. package/lib/types/dsh-adapter/component-identity.js +1 -1
  482. package/lib/types/dsh-adapter/contract.d.ts +11 -9
  483. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  484. package/lib/types/dsh-adapter/contract.js +19 -12
  485. package/lib/types/dsh-adapter/decision-guard.d.ts +56 -12
  486. package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
  487. package/lib/types/dsh-adapter/decision-guard.js +134 -22
  488. package/lib/types/dsh-adapter/dialogs.d.ts.map +1 -1
  489. package/lib/types/dsh-adapter/dialogs.js +13 -0
  490. package/lib/types/dsh-adapter/effect-ledger.d.ts +5 -0
  491. package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
  492. package/lib/types/dsh-adapter/effect-ledger.js +53 -15
  493. package/lib/types/dsh-adapter/extension-events.d.ts +2 -9
  494. package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
  495. package/lib/types/dsh-adapter/extension-events.js +0 -20
  496. package/lib/types/dsh-adapter/extensions.d.ts.map +1 -1
  497. package/lib/types/dsh-adapter/extensions.js +3 -2
  498. package/lib/types/dsh-adapter/host-grants.d.ts +23 -0
  499. package/lib/types/dsh-adapter/host-grants.d.ts.map +1 -0
  500. package/lib/types/dsh-adapter/host-grants.js +45 -0
  501. package/lib/types/dsh-adapter/jobs.d.ts +2 -46
  502. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  503. package/lib/types/dsh-adapter/jobs.js +0 -25
  504. package/lib/types/dsh-adapter/message-observer.d.ts +15 -2
  505. package/lib/types/dsh-adapter/message-observer.d.ts.map +1 -1
  506. package/lib/types/dsh-adapter/message-observer.js +157 -28
  507. package/lib/types/dsh-adapter/plugin-host.d.ts +80 -11
  508. package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
  509. package/lib/types/dsh-adapter/plugin-host.js +438 -41
  510. package/lib/types/dsh-adapter/plugin-storage.d.ts +11 -1
  511. package/lib/types/dsh-adapter/plugin-storage.d.ts.map +1 -1
  512. package/lib/types/dsh-adapter/plugin-storage.js +150 -11
  513. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  514. package/lib/types/dsh-adapter/plugin.js +75 -34
  515. package/lib/types/dsh-adapter/plugins-info.d.ts +2 -2
  516. package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
  517. package/lib/types/dsh-adapter/plugins-info.js +11 -6
  518. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  519. package/lib/types/dsh-adapter/presets.js +3 -2
  520. package/lib/types/dsh-adapter/providerWizard.d.ts +2 -159
  521. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  522. package/lib/types/dsh-adapter/questions.d.ts +8 -0
  523. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  524. package/lib/types/dsh-adapter/questions.js +18 -0
  525. package/lib/types/dsh-adapter/recap.d.ts +1 -9
  526. package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
  527. package/lib/types/dsh-adapter/recap.js +0 -14
  528. package/lib/types/dsh-adapter/renderers.d.ts +1 -0
  529. package/lib/types/dsh-adapter/renderers.d.ts.map +1 -1
  530. package/lib/types/dsh-adapter/renderers.js +26 -1
  531. package/lib/types/dsh-adapter/scenes.d.ts +3 -1
  532. package/lib/types/dsh-adapter/scenes.d.ts.map +1 -1
  533. package/lib/types/dsh-adapter/scenes.js +31 -0
  534. package/lib/types/dsh-adapter/sessionTree.d.ts +14 -95
  535. package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -1
  536. package/lib/types/dsh-adapter/sessionTree.js +51 -36
  537. package/lib/types/dsh-adapter/sessions/index.d.ts +1 -1
  538. package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -1
  539. package/lib/types/dsh-adapter/sessions/index.js +1 -1
  540. package/lib/types/dsh-adapter/sessions/list.d.ts +23 -0
  541. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  542. package/lib/types/dsh-adapter/sessions/list.js +25 -14
  543. package/lib/types/dsh-adapter/sessions/types.d.ts +2 -128
  544. package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
  545. package/lib/types/dsh-adapter/sessions/types.js +0 -13
  546. package/lib/types/dsh-adapter/settings-sections.d.ts +4 -95
  547. package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
  548. package/lib/types/dsh-adapter/settings-sections.js +50 -13
  549. package/lib/types/dsh-adapter/settingsEditor.d.ts +2 -36
  550. package/lib/types/dsh-adapter/settingsEditor.d.ts.map +1 -1
  551. package/lib/types/dsh-adapter/settingsEditor.js +0 -18
  552. package/lib/types/dsh-adapter/shortcuts.d.ts +5 -0
  553. package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
  554. package/lib/types/dsh-adapter/shortcuts.js +49 -0
  555. package/lib/types/dsh-adapter/status.d.ts +5 -0
  556. package/lib/types/dsh-adapter/status.d.ts.map +1 -1
  557. package/lib/types/dsh-adapter/status.js +29 -0
  558. package/lib/types/dsh-adapter/subagents.d.ts +9 -49
  559. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  560. package/lib/types/dsh-adapter/subagents.js +92 -1
  561. package/lib/types/dsh-adapter/themes.d.ts +1 -0
  562. package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
  563. package/lib/types/dsh-adapter/themes.js +29 -0
  564. package/lib/types/dsh-adapter/toast.d.ts +13 -0
  565. package/lib/types/dsh-adapter/toast.d.ts.map +1 -1
  566. package/lib/types/dsh-adapter/toast.js +31 -1
  567. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +2 -1
  568. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -1
  569. package/lib/types/dsh-adapter/trajectory/aggregate.js +2 -1
  570. package/lib/types/dsh-adapter/trajectory/guards.d.ts +37 -18
  571. package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
  572. package/lib/types/dsh-adapter/trajectory/guards.js +43 -5
  573. package/lib/types/dsh-adapter/trajectory/inspect.d.ts +2 -2
  574. package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
  575. package/lib/types/dsh-adapter/trajectory/projection.d.ts +31 -13
  576. package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
  577. package/lib/types/dsh-adapter/trajectory/projection.js +71 -14
  578. package/lib/types/dsh-adapter/trajectory/types.d.ts +1 -1
  579. package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
  580. package/lib/types/dsh-adapter/transcript-images.d.ts +2 -19
  581. package/lib/types/dsh-adapter/transcript-images.d.ts.map +1 -1
  582. package/lib/types/dsh-adapter/workspaces.d.ts +2 -49
  583. package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -1
  584. package/lib/types/dsh-adapter/workspaces.js +23 -3
  585. package/lib/types/i18n.d.ts +19 -7
  586. package/lib/types/i18n.d.ts.map +1 -1
  587. package/lib/types/i18n.js +8 -3
  588. package/lib/types/ink/render-node-to-output.d.ts +24 -1
  589. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  590. package/lib/types/ink/render-node-to-output.js +103 -4
  591. package/lib/types/ink/renderer.d.ts.map +1 -1
  592. package/lib/types/ink/renderer.js +14 -2
  593. package/lib/types/ink/styles.d.ts +12 -0
  594. package/lib/types/ink/styles.d.ts.map +1 -1
  595. package/lib/types/modelGroups.d.ts +1 -1
  596. package/lib/types/modelGroups.d.ts.map +1 -1
  597. package/lib/types/modelRoute.js +1 -1
  598. package/lib/types/plugin-host.d.ts +3 -4
  599. package/lib/types/plugin-host.d.ts.map +1 -1
  600. package/lib/types/plugin-host.js +8 -6
  601. package/lib/types/screens/AgentView.d.ts +1 -1
  602. package/lib/types/screens/AgentView.d.ts.map +1 -1
  603. package/lib/types/screens/Chat.d.ts +3 -2
  604. package/lib/types/screens/Chat.d.ts.map +1 -1
  605. package/lib/types/screens/Chat.js +71 -9
  606. package/lib/types/screens/SessionBrowser.d.ts +1 -1
  607. package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
  608. package/lib/types/screens/SessionTree.d.ts +1 -1
  609. package/lib/types/screens/SessionTree.d.ts.map +1 -1
  610. package/lib/types/screens/Settings.d.ts +1 -1
  611. package/lib/types/screens/Settings.d.ts.map +1 -1
  612. package/lib/types/screens/StatusLine.d.ts +1 -1
  613. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  614. package/lib/types/screens/StatusLine.js +40 -1
  615. package/lib/types/screens/TrajectoryScene.d.ts +1 -1
  616. package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
  617. package/lib/types/sessionModes.d.ts +11 -15
  618. package/lib/types/sessionModes.d.ts.map +1 -1
  619. package/lib/types/sessionModes.js +11 -0
  620. package/lib/types/tuiDisplayPrefs.d.ts +2 -68
  621. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  622. package/lib/types/tuiDisplayPrefs.js +5 -1
  623. package/lib/types/utils/credentials.d.ts +13 -0
  624. package/lib/types/utils/credentials.d.ts.map +1 -0
  625. package/lib/types/utils/credentials.js +41 -0
  626. package/lib/types/utils/fileSuggestions.d.ts +2 -9
  627. package/lib/types/utils/fileSuggestions.d.ts.map +1 -1
  628. package/lib/types/utils/fold-long-lines.d.ts +38 -0
  629. package/lib/types/utils/fold-long-lines.d.ts.map +1 -0
  630. package/lib/types/utils/fold-long-lines.js +91 -0
  631. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/pi-ai.d.ts +1 -1
  632. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +4 -0
  633. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +15 -2
  634. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +10 -10
  635. package/package.json +124 -81
  636. package/presets/liangshen/.dsh-tui-managed.json +1 -1
  637. package/presets/liangshen/agent.cordis.yml +20 -4
  638. package/presets/liangshen/compaction-epoch.mjs +3 -1
  639. package/presets/liangshen/instruction-hint.mjs +2 -1
  640. package/presets/liangshen/session-events.mjs +8 -0
  641. package/lib/types/dsh-adapter/grants.d.ts.map +0 -1
  642. package/lib/types/dsh-adapter/host-descriptor.d.ts +0 -24
  643. package/lib/types/dsh-adapter/host-descriptor.d.ts.map +0 -1
  644. package/lib/types/dsh-adapter/host-descriptor.js +0 -169
  645. package/lib/types/dsh-adapter/plugin-test-utils.d.ts +0 -62
  646. package/lib/types/dsh-adapter/plugin-test-utils.d.ts.map +0 -1
  647. package/lib/types/dsh-adapter/plugin-test-utils.js +0 -61
  648. package/lib/types/plugin-spec/negotiate.d.ts.map +0 -1
  649. package/lib/types/plugin-spec/permission-scope.d.ts.map +0 -1
  650. package/lib/types/plugin-spec/registry.d.ts.map +0 -1
  651. package/lib/types/plugin-spec/schema-check.d.ts.map +0 -1
  652. package/lib/types/plugin-spec/tui-extension.d.ts +0 -16
  653. package/lib/types/plugin-spec/tui-extension.d.ts.map +0 -1
  654. package/lib/types/plugin-spec/tui-extension.js +0 -79
  655. package/lib/types/plugin-spec/types.d.ts.map +0 -1
  656. package/lib/types/plugin-spec/validate.d.ts.map +0 -1
  657. package/lib/types/test-utils.d.ts +0 -2
  658. package/lib/types/test-utils.d.ts.map +0 -1
  659. package/lib/types/test-utils.js +0 -8
  660. /package/lib/types/{plugin-spec → adapter/standard}/negotiate.d.ts +0 -0
  661. /package/lib/types/{plugin-spec → adapter/standard}/negotiate.js +0 -0
  662. /package/lib/types/{plugin-spec → adapter/standard}/registry.d.ts +0 -0
  663. /package/lib/types/{plugin-spec → adapter/standard}/schema-check.d.ts +0 -0
  664. /package/lib/types/{plugin-spec → adapter/standard}/types.js +0 -0
@@ -0,0 +1,73 @@
1
+ /** Channel lifetime plus binding fences for work that crosses an await. */
2
+ export function createChannelOwner() {
3
+ let active = true;
4
+ let externalCheck = () => true;
5
+ const cleanups = new Set();
6
+ const controller = new AbortController();
7
+ const current = () => {
8
+ if (!active)
9
+ return false;
10
+ try {
11
+ return externalCheck();
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ };
17
+ const assertActive = () => {
18
+ if (!current())
19
+ throw new Error('dsh-tui: Channel lifetime has ended');
20
+ };
21
+ return {
22
+ current, assertActive,
23
+ get cleanupCount() { return cleanups.size; },
24
+ signal: controller.signal,
25
+ bind(check) { externalCheck = check; },
26
+ own(cleanup) {
27
+ let released = false;
28
+ const release = () => {
29
+ if (released)
30
+ return;
31
+ released = true;
32
+ cleanups.delete(release);
33
+ cleanup();
34
+ };
35
+ if (active)
36
+ cleanups.add(release);
37
+ else
38
+ release();
39
+ return release;
40
+ },
41
+ dispose() {
42
+ if (!active)
43
+ return;
44
+ active = false;
45
+ controller.abort();
46
+ const failures = [];
47
+ // Every registered resource gets one cleanup attempt. A throwing
48
+ // external disposer must not strand later subscriptions or handles.
49
+ for (const cleanup of [...cleanups]) {
50
+ try {
51
+ cleanup();
52
+ }
53
+ catch (error) {
54
+ failures.push(error);
55
+ }
56
+ }
57
+ if (failures.length === 1)
58
+ throw failures[0];
59
+ if (failures.length > 1)
60
+ throw new AggregateError(failures, 'dsh-tui: Channel cleanup failed');
61
+ },
62
+ };
63
+ }
64
+ const owners = new WeakMap();
65
+ export function registerChannelOwner(channel, owner) { owners.set(channel, owner); }
66
+ export function bindChannelOwner(channel, check) { owners.get(channel)?.bind(check); }
67
+ export function channelOwnerCurrent(channel) { return owners.get(channel)?.current() ?? false; }
68
+ /** Register work that must be revoked whenever this Channel owner releases. */
69
+ export function onChannelOwnerDispose(channel, cleanup) {
70
+ const owner = owners.get(channel);
71
+ return owner === undefined ? (() => undefined) : owner.own(cleanup);
72
+ }
73
+ export function disposeChannelOwner(channel) { owners.get(channel)?.dispose(); }
@@ -0,0 +1,31 @@
1
+ import { type FileCandidate } from '../../utils/fileSuggestions.js';
2
+ import type { FileSuggestionFs } from './types.js';
3
+ /** Trailing path segment (`C:/a/b` → `b`). */
4
+ export declare function basename(path: string): string;
5
+ /** Normalize a cwd for comparison: forward slashes, no trailing slash; case
6
+ * folded when the platform's filesystem semantics are case-insensitive. */
7
+ export declare function normalizeCwd(path: string, caseInsensitive: boolean): string;
8
+ /**
9
+ * `/resume` project filter (issue #96): exact cwd match, PLUS sessions
10
+ * recorded in a subdirectory — pre-upgrade launches recorded the launch
11
+ * subdirectory as the header cwd, and with the cwd default now resolving to
12
+ * the git worktree root an exact match would hide those sessions forever.
13
+ * They belong to the same workspace, so they stay listed. Comparison follows
14
+ * the platform's filesystem semantics (case-insensitive on Windows — a
15
+ * pre-upgrade header may record `C:\Repo` where the current launch resolves
16
+ * `c:\repo`). `caseInsensitive` is a parameter (not a platform read) so the
17
+ * verifier can exercise both modes on any host. Exported for
18
+ * scripts/verify-session-cwd.mjs.
19
+ *
20
+ * Boundary rule (issue #153): container directories are nobody's workspace.
21
+ * $HOME and the Windows root forms — plain drive roots (`C:`), UNC share
22
+ * roots (`//server/share`), and extended-length roots (`//?/C:`,
23
+ * `//?/UNC/server/share`) — are ancestors of unrelated projects, so the
24
+ * descendant rules below would list every session on the machine from `~`
25
+ * (and every session on the drive/share from those roots). At these
26
+ * boundaries, in either direction, only an exact match passes.
27
+ */
28
+ export declare function sessionCwdMatches(stateCwd: string, headerCwd: string, caseInsensitive?: boolean): boolean;
29
+ export declare function listPathCandidates(fs: FileSuggestionFs, cwd: string, query: string, signal: AbortSignal | undefined, topK: number): Promise<FileCandidate[]>;
30
+ export declare function listFilesDeepCandidates(fs: FileSuggestionFs | undefined, root: string, signal?: AbortSignal): Promise<FileCandidate[]>;
31
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;4EAC4E;AAC5E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,OAAsC,GACtD,OAAO,CAwBT;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAyBlK;AAED,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,gBAAgB,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAmD5I"}
@@ -0,0 +1,147 @@
1
+ import { join } from 'node:path';
2
+ import { rankFileCandidates } from '../../utils/fileSuggestions.js';
3
+ import { homeDir } from '../../utils/paths.js';
4
+ /** Trailing path segment (`C:/a/b` → `b`). */
5
+ export function basename(path) {
6
+ const parts = path.split(/[\\/]/);
7
+ return parts[parts.length - 1] ?? path;
8
+ }
9
+ /** Normalize a cwd for comparison: forward slashes, no trailing slash; case
10
+ * folded when the platform's filesystem semantics are case-insensitive. */
11
+ export function normalizeCwd(path, caseInsensitive) {
12
+ const normalized = path.replace(/\\/g, '/').replace(/\/+$/, '');
13
+ return caseInsensitive ? normalized.toLowerCase() : normalized;
14
+ }
15
+ /**
16
+ * `/resume` project filter (issue #96): exact cwd match, PLUS sessions
17
+ * recorded in a subdirectory — pre-upgrade launches recorded the launch
18
+ * subdirectory as the header cwd, and with the cwd default now resolving to
19
+ * the git worktree root an exact match would hide those sessions forever.
20
+ * They belong to the same workspace, so they stay listed. Comparison follows
21
+ * the platform's filesystem semantics (case-insensitive on Windows — a
22
+ * pre-upgrade header may record `C:\Repo` where the current launch resolves
23
+ * `c:\repo`). `caseInsensitive` is a parameter (not a platform read) so the
24
+ * verifier can exercise both modes on any host. Exported for
25
+ * scripts/verify-session-cwd.mjs.
26
+ *
27
+ * Boundary rule (issue #153): container directories are nobody's workspace.
28
+ * $HOME and the Windows root forms — plain drive roots (`C:`), UNC share
29
+ * roots (`//server/share`), and extended-length roots (`//?/C:`,
30
+ * `//?/UNC/server/share`) — are ancestors of unrelated projects, so the
31
+ * descendant rules below would list every session on the machine from `~`
32
+ * (and every session on the drive/share from those roots). At these
33
+ * boundaries, in either direction, only an exact match passes.
34
+ */
35
+ export function sessionCwdMatches(stateCwd, headerCwd, caseInsensitive = process.platform === 'win32') {
36
+ const cwd = normalizeCwd(stateCwd, caseInsensitive);
37
+ const recorded = normalizeCwd(headerCwd, caseInsensitive);
38
+ if (recorded === '' || cwd === '')
39
+ return false;
40
+ const home = normalizeCwd(homeDir(), caseInsensitive);
41
+ // Paths below arrive backslash-normalized (`\\server\share` →
42
+ // `//server/share`, `\\?\C:\` → `//?/C:`), trailing slashes stripped.
43
+ const isContainer = (path) => (home !== '' && path === home) ||
44
+ /^[a-z]:$/i.test(path) || // drive root: C:
45
+ /^\/\/[^/]+\/[^/]+$/.test(path) || // UNC share root: //server/share
46
+ /^\/\/\?\/[a-z]:$/i.test(path) || // extended drive root: //?/C:
47
+ /^\/\/\?\/unc\/[^/]+\/[^/]+$/i.test(path); // extended UNC root: //?/UNC/server/share
48
+ if (isContainer(cwd) || isContainer(recorded))
49
+ return recorded === cwd;
50
+ return (recorded === cwd ||
51
+ // Pre-upgrade subdirectory session of this workspace.
52
+ recorded.startsWith(`${cwd}/`) ||
53
+ // Resumed INTO a pre-upgrade subdirectory session (state.cwd adopted its
54
+ // recorded subdirectory): the workspace-root sessions it belongs with
55
+ // must stay visible, or /resume looks like it lost them for the rest of
56
+ // the process lifetime (review leftover).
57
+ cwd.startsWith(`${recorded}/`));
58
+ }
59
+ export async function listPathCandidates(fs, cwd, query, signal, topK) {
60
+ const normalized = query.replaceAll('\\', '/');
61
+ const slash = normalized.lastIndexOf('/');
62
+ // `.` / `..` without a trailing separator are whole-directory queries too.
63
+ const bareDir = slash < 0 && (normalized === '.' || normalized === '..' || normalized === '~');
64
+ const directoryPart = slash < 0 ? (bareDir ? `${normalized}/` : '') : normalized.slice(0, slash + 1);
65
+ const nameQuery = slash < 0 || bareDir ? '' : normalized.slice(slash + 1);
66
+ // `~/` expands against the host home (matches the cwd resolution rules);
67
+ // drive-letter and POSIX-absolute prefixes pass through untouched.
68
+ const expanded = directoryPart === '~/'
69
+ ? `${homeDir()}/`
70
+ : directoryPart.startsWith('/') || /^[A-Za-z]:\//.test(directoryPart)
71
+ ? directoryPart
72
+ : join(cwd, directoryPart || '.');
73
+ try {
74
+ if (signal?.aborted)
75
+ return [];
76
+ const target = await fs.resolve(expanded);
77
+ const entries = (await fs.listDir(target)).slice().sort((a, b) => a.name.localeCompare(b.name));
78
+ return rankFileCandidates(entries.filter(entry => entry.type === 'file' || entry.type === 'directory').map(entry => {
79
+ const path = `${directoryPart}${entry.name}${entry.type === 'directory' ? '/' : ''}`;
80
+ return { id: path, path, displayPath: path, name: entry.name, kind: entry.type, score: 0 };
81
+ }), nameQuery, topK);
82
+ }
83
+ catch {
84
+ return [];
85
+ }
86
+ }
87
+ export async function listFilesDeepCandidates(fs, root, signal) {
88
+ if (!fs)
89
+ return [];
90
+ const out = [];
91
+ const SKIP = new Set(['node_modules', '.git', '.hg', '.svn', '.DS_Store', 'dist']);
92
+ const BUILD_DIR = /^(?:build(?:[-_].*)?|cmake-build(?:[-_].*)?)$/i;
93
+ const queue = [{ dir: root, prefix: '', index: 0 }];
94
+ const visited = new Set();
95
+ const maxFiles = 100;
96
+ const maxDirectories = 100;
97
+ let fileCount = 0;
98
+ let dirCount = 0;
99
+ // Round-robin: each directory yields ONE non-skipped entry per visit before
100
+ // it re-queues, so a large early sibling (e.g. `generated/` with 120 files)
101
+ // cannot starve `src/` out of the per-kind budgets. This is the regression
102
+ // contract pinned by scripts/verify-file-completion.mjs.
103
+ while (queue.length && fileCount < maxFiles && dirCount < maxDirectories) {
104
+ if (signal?.aborted)
105
+ return [];
106
+ const current = queue.shift();
107
+ if (!current.entries) {
108
+ try {
109
+ const target = await fs.resolve(current.dir);
110
+ if (visited.has(target.displayPath))
111
+ continue;
112
+ visited.add(target.displayPath);
113
+ current.entries = (await fs.listDir(target)).slice().sort((a, b) => a.name.localeCompare(b.name));
114
+ }
115
+ catch {
116
+ continue;
117
+ }
118
+ }
119
+ let entry;
120
+ while (current.index < current.entries.length) {
121
+ const candidate = current.entries[current.index++];
122
+ if (SKIP.has(candidate.name) || BUILD_DIR.test(candidate.name))
123
+ continue;
124
+ entry = candidate;
125
+ break;
126
+ }
127
+ if (!entry)
128
+ continue;
129
+ if (current.index < current.entries.length)
130
+ queue.push(current);
131
+ const path = current.prefix ? `${current.prefix}/${entry.name}` : entry.name;
132
+ if (entry.type === 'directory') {
133
+ if (dirCount >= maxDirectories)
134
+ continue;
135
+ out.push({ id: `${path}/`, path: `${path}/`, displayPath: `${path}/`, name: entry.name, kind: 'directory', score: 0 });
136
+ dirCount += 1;
137
+ queue.push({ dir: entry.target?.displayPath ?? join(current.dir, entry.name), prefix: path, index: 0 });
138
+ }
139
+ else if (entry.type === 'file') {
140
+ if (fileCount >= maxFiles)
141
+ continue;
142
+ out.push({ id: path, path, displayPath: path, name: entry.name, kind: 'file', score: 0 });
143
+ fileCount += 1;
144
+ }
145
+ }
146
+ return out.sort((a, b) => a.path.localeCompare(b.path));
147
+ }
@@ -0,0 +1,40 @@
1
+ import { type SessionModeSpec } from '../../sessionModes.js';
2
+ import type { PermissionPresetOption, PermissionPresetService, PermissionPresetSnapshot } from './types.js';
3
+ export declare const PERMISSION_PRESET_CUSTOM = "custom";
4
+ export declare const PERMISSION_PRESET_NAME_CELLS = 120;
5
+ export declare const PERMISSION_PRESET_DESCRIPTION_CELLS = 400;
6
+ /** The mounted registry may expose seams this package's declared contract
7
+ * does not name yet: `resolve` (atom bundles) and `set` (the write path the
8
+ * official `/permission` command drives). Read structurally, never assumed. */
9
+ export interface PermissionPresetRuntime extends PermissionPresetService {
10
+ resolve?: (name: string) => unknown;
11
+ set?: (subject: unknown, name: string) => unknown;
12
+ }
13
+ /** One runtime preset's resolved atom bundle. */
14
+ export interface PermissionPresetBundle {
15
+ readonly value: string;
16
+ readonly sandbox?: SessionModeSpec['sandbox'];
17
+ readonly approval?: SessionModeSpec['approval'];
18
+ }
19
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
20
+ /** Narrow a raw service read to the structural registry surface. */
21
+ export declare function permissionPresetRuntime(service: unknown): PermissionPresetRuntime | undefined;
22
+ /** Keep a permission roster read-only after it crosses the adapter boundary.
23
+ * The registry may reuse and mutate its option objects between reads; callers
24
+ * must observe one stable snapshot instead of a live view into that service. */
25
+ export declare function freezePermissionPresetSnapshot(snapshot: PermissionPresetSnapshot): PermissionPresetSnapshot;
26
+ export declare function legacyPermissionPresetOptions(): readonly PermissionPresetOption[];
27
+ export declare function legacyPermissionPresetSnapshot(sandbox: SessionModeSpec['sandbox']): PermissionPresetSnapshot;
28
+ export declare function unavailablePermissionPresetSnapshot(): PermissionPresetSnapshot;
29
+ export declare function normalizePermissionPresetOption(value: unknown): PermissionPresetOption | undefined;
30
+ /** Atom bundles the deployment's preset table resolves (value →
31
+ * sandbox/approval). Empty when the service is absent or exposes no
32
+ * `resolve` seam — canonical resolution then falls back to the stock
33
+ * bundles (see `canonicalPresetFor`). */
34
+ export declare function permissionBundlesFromService(service: unknown): readonly PermissionPresetBundle[];
35
+ /** The registry's current readback for one subject. Real harness registries
36
+ * resolve `current(session)` through their session-projections seam; earlier
37
+ * contract versions folded a raw event log. Try the subject as given, then
38
+ * the event-log shape it may carry. */
39
+ export declare function permissionPresetSnapshotFromService(service: unknown, subject: unknown): PermissionPresetSnapshot;
40
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAE3G,eAAO,MAAM,wBAAwB,WAAW,CAAA;AAEhD,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAE/C,eAAO,MAAM,mCAAmC,MAAM,CAAA;AAEtD;;gFAEgF;AAChF,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACtE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAClD;AAED,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;CAChD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAE7F;AAED;;iFAEiF;AACjF,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,wBAAwB,CAQ3G;AAED,wBAAgB,6BAA6B,IAAI,SAAS,sBAAsB,EAAE,CAkBjF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,GAAG,wBAAwB,CAU5G;AAED,wBAAgB,mCAAmC,IAAI,wBAAwB,CAE9E;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAclG;AAED;;;0CAG0C;AAC1C,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,sBAAsB,EAAE,CAwBhG;AAED;;;wCAGwC;AACxC,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,wBAAwB,CAqE1B"}
@@ -0,0 +1,184 @@
1
+ import { t } from '../../i18n.js';
2
+ import { cleanRenderText } from '../sanitize.js';
3
+ export const PERMISSION_PRESET_CUSTOM = 'custom';
4
+ export const PERMISSION_PRESET_NAME_CELLS = 120;
5
+ export const PERMISSION_PRESET_DESCRIPTION_CELLS = 400;
6
+ export function isRecord(value) {
7
+ return value !== null && typeof value === 'object';
8
+ }
9
+ /** Narrow a raw service read to the structural registry surface. */
10
+ export function permissionPresetRuntime(service) {
11
+ return isRecord(service) ? service : undefined;
12
+ }
13
+ /** Keep a permission roster read-only after it crosses the adapter boundary.
14
+ * The registry may reuse and mutate its option objects between reads; callers
15
+ * must observe one stable snapshot instead of a live view into that service. */
16
+ export function freezePermissionPresetSnapshot(snapshot) {
17
+ const options = Object.freeze(snapshot.options.map(option => Object.freeze({ ...option })));
18
+ const current = snapshot.current === undefined ? undefined : Object.freeze({ ...snapshot.current });
19
+ return Object.freeze({
20
+ availability: snapshot.availability,
21
+ options,
22
+ ...(current === undefined ? {} : { current }),
23
+ });
24
+ }
25
+ export function legacyPermissionPresetOptions() {
26
+ return [
27
+ {
28
+ value: 'read-only',
29
+ name: t('permission-preset-readonly'),
30
+ description: t('permission-preset-readonly-desc'),
31
+ },
32
+ {
33
+ value: 'workspace-write',
34
+ name: t('permission-preset-workspace-write'),
35
+ description: t('permission-preset-workspace-write-desc'),
36
+ },
37
+ {
38
+ value: 'danger-full-access',
39
+ name: t('permission-preset-full-access'),
40
+ description: t('permission-preset-full-access-desc'),
41
+ },
42
+ ];
43
+ }
44
+ export function legacyPermissionPresetSnapshot(sandbox) {
45
+ const options = legacyPermissionPresetOptions();
46
+ const currentOption = sandbox === undefined ? undefined : options.find(option => option.value === sandbox);
47
+ return freezePermissionPresetSnapshot({
48
+ availability: 'legacy',
49
+ options,
50
+ ...(currentOption === undefined
51
+ ? {}
52
+ : { current: { ...currentOption, kind: 'preset' } }),
53
+ });
54
+ }
55
+ export function unavailablePermissionPresetSnapshot() {
56
+ return freezePermissionPresetSnapshot({ availability: 'unavailable', options: [] });
57
+ }
58
+ export function normalizePermissionPresetOption(value) {
59
+ if (!isRecord(value) || typeof value.value !== 'string' || typeof value.name !== 'string')
60
+ return undefined;
61
+ const name = cleanRenderText(value.name, PERMISSION_PRESET_NAME_CELLS);
62
+ if (name === '')
63
+ return undefined;
64
+ if (value.description !== undefined && typeof value.description !== 'string')
65
+ return undefined;
66
+ const description = value.description === undefined
67
+ ? undefined
68
+ : cleanRenderText(value.description, PERMISSION_PRESET_DESCRIPTION_CELLS);
69
+ if (value.description !== undefined && description === '')
70
+ return undefined;
71
+ return {
72
+ value: value.value,
73
+ name,
74
+ ...(description === undefined || description === '' ? {} : { description }),
75
+ };
76
+ }
77
+ /** Atom bundles the deployment's preset table resolves (value →
78
+ * sandbox/approval). Empty when the service is absent or exposes no
79
+ * `resolve` seam — canonical resolution then falls back to the stock
80
+ * bundles (see `canonicalPresetFor`). */
81
+ export function permissionBundlesFromService(service) {
82
+ const runtime = permissionPresetRuntime(service);
83
+ const resolve = runtime?.resolve;
84
+ if (typeof resolve !== 'function')
85
+ return [];
86
+ const names = Array.isArray(runtime?.names) ? runtime.names : [];
87
+ const bundles = [];
88
+ for (const name of names) {
89
+ if (typeof name !== 'string')
90
+ continue;
91
+ try {
92
+ const spec = resolve(name);
93
+ if (!isRecord(spec))
94
+ continue;
95
+ const sandbox = spec.sandbox;
96
+ const approval = spec.approval;
97
+ if ((sandbox === 'read-only' || sandbox === 'workspace-write' || sandbox === 'danger-full-access')
98
+ && (approval === 'ask' || approval === 'never')) {
99
+ bundles.push({ value: name, sandbox, approval });
100
+ }
101
+ }
102
+ catch {
103
+ // Optional resolution; a broken entry just does not extend the table.
104
+ }
105
+ }
106
+ return bundles;
107
+ }
108
+ /** The registry's current readback for one subject. Real harness registries
109
+ * resolve `current(session)` through their session-projections seam; earlier
110
+ * contract versions folded a raw event log. Try the subject as given, then
111
+ * the event-log shape it may carry. */
112
+ export function permissionPresetSnapshotFromService(service, subject) {
113
+ const runtime = permissionPresetRuntime(service);
114
+ if (runtime === undefined)
115
+ return unavailablePermissionPresetSnapshot();
116
+ try {
117
+ const capturedNames = Array.isArray(runtime.names) ? runtime.names : [];
118
+ const current = runtime.current;
119
+ const optionOf = runtime.optionOf;
120
+ if (capturedNames.length === 0)
121
+ return unavailablePermissionPresetSnapshot();
122
+ if (typeof current !== 'function' || typeof optionOf !== 'function')
123
+ return unavailablePermissionPresetSnapshot();
124
+ const names = [];
125
+ for (const name of capturedNames) {
126
+ if (typeof name !== 'string' || name.trim() === '' || name === PERMISSION_PRESET_CUSTOM || names.includes(name)) {
127
+ return unavailablePermissionPresetSnapshot();
128
+ }
129
+ names.push(name);
130
+ }
131
+ const seen = new Set(names);
132
+ const options = [];
133
+ for (const name of names) {
134
+ const option = normalizePermissionPresetOption(optionOf(name));
135
+ if (option === undefined || option.value !== name)
136
+ return unavailablePermissionPresetSnapshot();
137
+ options.push({ ...option });
138
+ }
139
+ let currentValue;
140
+ try {
141
+ currentValue = current(subject);
142
+ }
143
+ catch {
144
+ currentValue = undefined;
145
+ }
146
+ if (typeof currentValue !== 'string') {
147
+ // Second chance for the other contract shape: a subject that carries an
148
+ // event log, or a raw log handed in directly.
149
+ const fallback = subject?.events ?? subject;
150
+ try {
151
+ currentValue = current(fallback);
152
+ }
153
+ catch {
154
+ if (typeof currentValue !== 'string')
155
+ return unavailablePermissionPresetSnapshot();
156
+ }
157
+ }
158
+ if (typeof currentValue !== 'string' || (currentValue !== PERMISSION_PRESET_CUSTOM && !seen.has(currentValue))) {
159
+ return unavailablePermissionPresetSnapshot();
160
+ }
161
+ const currentOption = normalizePermissionPresetOption(optionOf(currentValue));
162
+ if (currentOption === undefined || currentOption.value !== currentValue)
163
+ return unavailablePermissionPresetSnapshot();
164
+ if (currentValue !== PERMISSION_PRESET_CUSTOM) {
165
+ const rosterOption = options.find(option => option.value === currentValue);
166
+ if (rosterOption === undefined
167
+ || rosterOption.name !== currentOption.name
168
+ || rosterOption.description !== currentOption.description) {
169
+ return unavailablePermissionPresetSnapshot();
170
+ }
171
+ }
172
+ return freezePermissionPresetSnapshot({
173
+ availability: 'runtime',
174
+ options,
175
+ current: {
176
+ ...currentOption,
177
+ kind: currentValue === PERMISSION_PRESET_CUSTOM ? 'custom' : 'preset',
178
+ },
179
+ });
180
+ }
181
+ catch {
182
+ return unavailablePermissionPresetSnapshot();
183
+ }
184
+ }
@@ -0,0 +1,3 @@
1
+ import type { ChannelState } from '../channel/types.js';
2
+ export declare function createPreferences(getState: () => Pick<ChannelState, 'diffLayout' | 'thinkingFold' | 'toolBackground' | 'scrollGutter' | 'pageMargin' | 'foldTerminalCommand' | 'promptSessionLabel' | 'expandEditor' | 'smoothStreaming' | 'statusBar' | 'whale' | 'whaleIdle' | 'minimal' | 'emit'>): Pick<ChannelState, 'setDiffLayout' | 'setThinkingFold' | 'setToolBackground' | 'setScrollGutter' | 'setPageMargin' | 'setFoldTerminalCommand' | 'setPromptSessionLabel' | 'setExpandEditor' | 'setSmoothStreaming' | 'setStatusBar' | 'setWhale' | 'setWhaleIdle' | 'setMinimal'>;
3
+ //# sourceMappingURL=preferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/preferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,cAAc,GAAG,iBAAiB,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,CAAC,CAsGxjB"}
@@ -0,0 +1,103 @@
1
+ import { setMinimalMode } from '../../minimalMode.js';
2
+ import { normalizePageMargin, normalizeScrollGutter, normalizeStatusBar, normalizeToolBackground } from '../../tuiDisplayPrefs.js';
3
+ export function createPreferences(getState) {
4
+ return {
5
+ setDiffLayout(layout) {
6
+ const state = getState();
7
+ if (layout === state.diffLayout)
8
+ return;
9
+ state.diffLayout = layout;
10
+ state.emit();
11
+ },
12
+ setThinkingFold(mode) {
13
+ const state = getState();
14
+ if (mode === state.thinkingFold)
15
+ return;
16
+ state.thinkingFold = mode;
17
+ state.emit();
18
+ },
19
+ setToolBackground(background) {
20
+ const state = getState();
21
+ const normalized = normalizeToolBackground(background);
22
+ if (normalized === state.toolBackground)
23
+ return;
24
+ state.toolBackground = normalized;
25
+ state.emit();
26
+ },
27
+ setScrollGutter(mode) {
28
+ const state = getState();
29
+ const normalized = normalizeScrollGutter(mode);
30
+ if (normalized === state.scrollGutter)
31
+ return;
32
+ state.scrollGutter = normalized;
33
+ state.emit();
34
+ },
35
+ setPageMargin(setting) {
36
+ const state = getState();
37
+ const normalized = normalizePageMargin(setting);
38
+ if (normalized === state.pageMargin)
39
+ return;
40
+ state.pageMargin = normalized;
41
+ state.emit();
42
+ },
43
+ setFoldTerminalCommand(enabled) {
44
+ const state = getState();
45
+ if (enabled === state.foldTerminalCommand)
46
+ return;
47
+ state.foldTerminalCommand = enabled;
48
+ state.emit();
49
+ },
50
+ setPromptSessionLabel(enabled) {
51
+ const state = getState();
52
+ if (enabled === state.promptSessionLabel)
53
+ return;
54
+ state.promptSessionLabel = enabled;
55
+ state.emit();
56
+ },
57
+ setExpandEditor(enabled) {
58
+ const state = getState();
59
+ if (enabled === state.expandEditor)
60
+ return;
61
+ state.expandEditor = enabled;
62
+ state.emit();
63
+ },
64
+ setSmoothStreaming(enabled) {
65
+ const state = getState();
66
+ if (enabled === state.smoothStreaming)
67
+ return;
68
+ state.smoothStreaming = enabled;
69
+ state.emit();
70
+ },
71
+ setStatusBar(config) {
72
+ const state = getState();
73
+ const next = normalizeStatusBar({ ...state.statusBar, ...config });
74
+ const changed = Object.keys(next).some(key => next[key] !== state.statusBar[key]);
75
+ if (!changed)
76
+ return;
77
+ state.statusBar = next;
78
+ state.emit();
79
+ },
80
+ setWhale(visible) {
81
+ const state = getState();
82
+ if (visible === state.whale)
83
+ return;
84
+ state.whale = visible;
85
+ state.emit();
86
+ },
87
+ setWhaleIdle(enabled) {
88
+ const state = getState();
89
+ if (enabled === state.whaleIdle)
90
+ return;
91
+ state.whaleIdle = enabled;
92
+ state.emit();
93
+ },
94
+ setMinimal(enabled) {
95
+ const state = getState();
96
+ setMinimalMode(enabled);
97
+ if (enabled === state.minimal)
98
+ return;
99
+ state.minimal = enabled;
100
+ state.emit();
101
+ }
102
+ };
103
+ }
@@ -0,0 +1,13 @@
1
+ import type { TodoPanelItem } from './types.js';
2
+ export declare function isSubagentToolName(name: string): boolean;
3
+ /** Extract `job_id` from a job_output call's raw args (JSON), or undefined. */
4
+ export declare function parseJobOutputId(argsFull: string | undefined): string | undefined;
5
+ /** Extract the command that launched a background job from its tool args
6
+ * (`command` for the shell tools, `text` for terminal_send). The registry
7
+ * label is the friendly description; the command is the actual invocation. */
8
+ export declare function toolCommandOf(argsFull: string | undefined): string | undefined;
9
+ /** The ack a shell tool returns for `run_in_background: true`. */
10
+ export declare const BACKGROUND_START_ACK: RegExp;
11
+ /** Narrow an optional plugin event without importing its module augmentation. */
12
+ export declare function todoPanelItems(data: unknown): TodoPanelItem[] | undefined;
13
+ //# sourceMappingURL=projection-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection-helpers.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/projection-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAY/C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQjF;AAED;;+EAE+E;AAC/E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAa9E;AAED,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,QAAkC,CAAA;AAEnE,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,EAAE,GAAG,SAAS,CAWzE"}