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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/README.md +5 -2
  2. package/bin/dsh-tui.js +99 -33
  3. package/cordis.patch.yml +25 -5
  4. package/lib/types/adapter/channel/actions.d.ts +17 -0
  5. package/lib/types/adapter/channel/actions.d.ts.map +1 -0
  6. package/lib/types/adapter/channel/actions.js +28 -0
  7. package/lib/types/adapter/channel/consumer.d.ts +34 -0
  8. package/lib/types/adapter/channel/consumer.d.ts.map +1 -0
  9. package/lib/types/adapter/channel/consumer.js +87 -0
  10. package/lib/types/adapter/channel/features.d.ts +12 -0
  11. package/lib/types/adapter/channel/features.d.ts.map +1 -0
  12. package/lib/types/adapter/channel/features.js +41 -0
  13. package/lib/types/adapter/channel/host-registry.d.ts +40 -0
  14. package/lib/types/adapter/channel/host-registry.d.ts.map +1 -0
  15. package/lib/types/adapter/channel/host-registry.js +120 -0
  16. package/lib/types/adapter/channel/index.d.ts +22 -0
  17. package/lib/types/adapter/channel/index.d.ts.map +1 -0
  18. package/lib/types/adapter/channel/index.js +21 -0
  19. package/lib/types/adapter/channel/internal-token.d.ts +12 -0
  20. package/lib/types/adapter/channel/internal-token.d.ts.map +1 -0
  21. package/lib/types/adapter/channel/internal-token.js +11 -0
  22. package/lib/types/adapter/channel/plugins.d.ts +17 -0
  23. package/lib/types/adapter/channel/plugins.d.ts.map +1 -0
  24. package/lib/types/adapter/channel/plugins.js +47 -0
  25. package/lib/types/adapter/channel/projection.d.ts +15 -0
  26. package/lib/types/adapter/channel/projection.d.ts.map +1 -0
  27. package/lib/types/adapter/channel/projection.js +59 -0
  28. package/lib/types/adapter/channel/provider.d.ts +52 -0
  29. package/lib/types/adapter/channel/provider.d.ts.map +1 -0
  30. package/lib/types/adapter/channel/provider.js +231 -0
  31. package/lib/types/adapter/channel/read-view.d.ts +4 -0
  32. package/lib/types/adapter/channel/read-view.d.ts.map +1 -0
  33. package/lib/types/adapter/channel/read-view.js +132 -0
  34. package/lib/types/adapter/channel/session-projection.d.ts +56 -0
  35. package/lib/types/adapter/channel/session-projection.d.ts.map +1 -0
  36. package/lib/types/adapter/channel/session-projection.js +247 -0
  37. package/lib/types/adapter/channel/state.d.ts +11 -0
  38. package/lib/types/adapter/channel/state.d.ts.map +1 -0
  39. package/lib/types/adapter/channel/state.js +55 -0
  40. package/lib/types/adapter/channel/transcript.d.ts +15 -0
  41. package/lib/types/adapter/channel/transcript.d.ts.map +1 -0
  42. package/lib/types/adapter/channel/transcript.js +22 -0
  43. package/lib/types/adapter/channel/ui-policy.d.ts +106 -0
  44. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -0
  45. package/lib/types/adapter/channel/ui-policy.js +166 -0
  46. package/lib/types/adapter/channel/ui.d.ts +16 -0
  47. package/lib/types/adapter/channel/ui.d.ts.map +1 -0
  48. package/lib/types/adapter/channel/ui.js +168 -0
  49. package/lib/types/adapter/index.d.ts +20 -0
  50. package/lib/types/adapter/index.d.ts.map +1 -0
  51. package/lib/types/adapter/index.js +19 -0
  52. package/lib/types/adapter/kernel/contract-catalog.d.ts +12 -0
  53. package/lib/types/adapter/kernel/contract-catalog.d.ts.map +1 -0
  54. package/lib/types/adapter/kernel/contract-catalog.js +11 -0
  55. package/lib/types/adapter/kernel/diagnostics.d.ts +18 -0
  56. package/lib/types/adapter/kernel/diagnostics.d.ts.map +1 -0
  57. package/lib/types/adapter/kernel/diagnostics.js +16 -0
  58. package/lib/types/adapter/kernel/driver-types.d.ts +16 -0
  59. package/lib/types/adapter/kernel/driver-types.d.ts.map +1 -0
  60. package/lib/types/adapter/kernel/driver-types.js +8 -0
  61. package/lib/types/adapter/kernel/host-facade.d.ts +65 -0
  62. package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -0
  63. package/lib/types/adapter/kernel/host-facade.js +215 -0
  64. package/lib/types/adapter/kernel/host-probe-access.d.ts +71 -0
  65. package/lib/types/adapter/kernel/host-probe-access.d.ts.map +1 -0
  66. package/lib/types/adapter/kernel/host-probe-access.js +121 -0
  67. package/lib/types/adapter/kernel/index.d.ts +20 -0
  68. package/lib/types/adapter/kernel/index.d.ts.map +1 -0
  69. package/lib/types/adapter/kernel/index.js +19 -0
  70. package/lib/types/adapter/kernel/kernel-runtime.d.ts +138 -0
  71. package/lib/types/adapter/kernel/kernel-runtime.d.ts.map +1 -0
  72. package/lib/types/adapter/kernel/kernel-runtime.js +572 -0
  73. package/lib/types/adapter/kernel/ledger.d.ts +55 -0
  74. package/lib/types/adapter/kernel/ledger.d.ts.map +1 -0
  75. package/lib/types/adapter/kernel/ledger.js +33 -0
  76. package/lib/types/adapter/kernel/legacy-facade.d.ts +22 -0
  77. package/lib/types/adapter/kernel/legacy-facade.d.ts.map +1 -0
  78. package/lib/types/adapter/kernel/legacy-facade.js +34 -0
  79. package/lib/types/adapter/kernel/lifecycle.d.ts +38 -0
  80. package/lib/types/adapter/kernel/lifecycle.d.ts.map +1 -0
  81. package/lib/types/adapter/kernel/lifecycle.js +53 -0
  82. package/lib/types/adapter/kernel/replay-isolation.d.ts +27 -0
  83. package/lib/types/adapter/kernel/replay-isolation.d.ts.map +1 -0
  84. package/lib/types/adapter/kernel/replay-isolation.js +45 -0
  85. package/lib/types/adapter/kernel/replay.d.ts +132 -0
  86. package/lib/types/adapter/kernel/replay.d.ts.map +1 -0
  87. package/lib/types/adapter/kernel/replay.js +425 -0
  88. package/lib/types/adapter/kernel/runtime-context.d.ts +15 -0
  89. package/lib/types/adapter/kernel/runtime-context.d.ts.map +1 -0
  90. package/lib/types/adapter/kernel/runtime-context.js +24 -0
  91. package/lib/types/adapter/kernel/runtime.d.ts +70 -0
  92. package/lib/types/adapter/kernel/runtime.d.ts.map +1 -0
  93. package/lib/types/adapter/kernel/runtime.js +325 -0
  94. package/lib/types/adapter/kernel/slices/channel.d.ts +3 -0
  95. package/lib/types/adapter/kernel/slices/channel.d.ts.map +1 -0
  96. package/lib/types/adapter/kernel/slices/channel.js +8 -0
  97. package/lib/types/adapter/kernel/slices/decisions.d.ts +3 -0
  98. package/lib/types/adapter/kernel/slices/decisions.d.ts.map +1 -0
  99. package/lib/types/adapter/kernel/slices/decisions.js +10 -0
  100. package/lib/types/adapter/kernel/slices/extensions.d.ts +8 -0
  101. package/lib/types/adapter/kernel/slices/extensions.d.ts.map +1 -0
  102. package/lib/types/adapter/kernel/slices/extensions.js +43 -0
  103. package/lib/types/adapter/kernel/slices/index.d.ts +19 -0
  104. package/lib/types/adapter/kernel/slices/index.d.ts.map +1 -0
  105. package/lib/types/adapter/kernel/slices/index.js +36 -0
  106. package/lib/types/adapter/kernel/slices/presentation.d.ts +3 -0
  107. package/lib/types/adapter/kernel/slices/presentation.d.ts.map +1 -0
  108. package/lib/types/adapter/kernel/slices/presentation.js +14 -0
  109. package/lib/types/adapter/kernel/slices/scenes.d.ts +3 -0
  110. package/lib/types/adapter/kernel/slices/scenes.d.ts.map +1 -0
  111. package/lib/types/adapter/kernel/slices/scenes.js +14 -0
  112. package/lib/types/adapter/kernel/slices/settings.d.ts +3 -0
  113. package/lib/types/adapter/kernel/slices/settings.d.ts.map +1 -0
  114. package/lib/types/adapter/kernel/slices/settings.js +12 -0
  115. package/lib/types/adapter/kernel/slices/types.d.ts +20 -0
  116. package/lib/types/adapter/kernel/slices/types.d.ts.map +1 -0
  117. package/lib/types/adapter/kernel/slices/types.js +12 -0
  118. package/lib/types/adapter/kernel/slices/workspace.d.ts +3 -0
  119. package/lib/types/adapter/kernel/slices/workspace.d.ts.map +1 -0
  120. package/lib/types/adapter/kernel/slices/workspace.js +15 -0
  121. package/lib/types/adapter/ports/channel-catalog.d.ts +90 -0
  122. package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -0
  123. package/lib/types/adapter/ports/channel-catalog.js +2 -0
  124. package/lib/types/adapter/ports/channel-display.d.ts +90 -0
  125. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -0
  126. package/lib/types/adapter/ports/channel-display.js +2 -0
  127. package/lib/types/adapter/ports/channel-session.d.ts +229 -0
  128. package/lib/types/adapter/ports/channel-session.d.ts.map +1 -0
  129. package/lib/types/adapter/ports/channel-session.js +2 -0
  130. package/lib/types/adapter/ports/channel-settings.d.ts +273 -0
  131. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -0
  132. package/lib/types/adapter/ports/channel-settings.js +1 -0
  133. package/lib/types/adapter/ports/channel-ui.d.ts +569 -0
  134. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -0
  135. package/lib/types/adapter/ports/channel-ui.js +1 -0
  136. package/lib/types/adapter/ports/channel-view.d.ts +609 -0
  137. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -0
  138. package/lib/types/adapter/ports/channel-view.js +2 -0
  139. package/lib/types/adapter/ports/channel-workspace.d.ts +45 -0
  140. package/lib/types/adapter/ports/channel-workspace.d.ts.map +1 -0
  141. package/lib/types/adapter/ports/channel-workspace.js +2 -0
  142. package/lib/types/adapter/ports/channel.d.ts +145 -0
  143. package/lib/types/adapter/ports/channel.d.ts.map +1 -0
  144. package/lib/types/adapter/ports/channel.js +22 -0
  145. package/lib/types/adapter/ports/decisions.d.ts +18 -0
  146. package/lib/types/adapter/ports/decisions.d.ts.map +1 -0
  147. package/lib/types/adapter/ports/decisions.js +9 -0
  148. package/lib/types/adapter/ports/descriptor.d.ts +25 -0
  149. package/lib/types/adapter/ports/descriptor.d.ts.map +1 -0
  150. package/lib/types/adapter/ports/descriptor.js +11 -0
  151. package/lib/types/adapter/ports/extensions.d.ts +86 -0
  152. package/lib/types/adapter/ports/extensions.d.ts.map +1 -0
  153. package/lib/types/adapter/ports/extensions.js +9 -0
  154. package/lib/types/adapter/ports/index.d.ts +23 -0
  155. package/lib/types/adapter/ports/index.d.ts.map +1 -0
  156. package/lib/types/adapter/ports/index.js +14 -0
  157. package/lib/types/adapter/ports/owner.d.ts +19 -0
  158. package/lib/types/adapter/ports/owner.d.ts.map +1 -0
  159. package/lib/types/adapter/ports/owner.js +9 -0
  160. package/lib/types/adapter/ports/presentation.d.ts +81 -0
  161. package/lib/types/adapter/ports/presentation.d.ts.map +1 -0
  162. package/lib/types/adapter/ports/presentation.js +10 -0
  163. package/lib/types/adapter/ports/scenes.d.ts +24 -0
  164. package/lib/types/adapter/ports/scenes.d.ts.map +1 -0
  165. package/lib/types/adapter/ports/scenes.js +8 -0
  166. package/lib/types/adapter/ports/settings.d.ts +44 -0
  167. package/lib/types/adapter/ports/settings.d.ts.map +1 -0
  168. package/lib/types/adapter/ports/settings.js +9 -0
  169. package/lib/types/adapter/ports/workspace.d.ts +60 -0
  170. package/lib/types/adapter/ports/workspace.d.ts.map +1 -0
  171. package/lib/types/adapter/ports/workspace.js +8 -0
  172. package/lib/types/adapter/spec/index.d.ts +11 -0
  173. package/lib/types/adapter/spec/index.d.ts.map +1 -0
  174. package/lib/types/adapter/spec/index.js +10 -0
  175. package/lib/types/adapter/spec/profile.d.ts +10 -0
  176. package/lib/types/adapter/spec/profile.d.ts.map +1 -0
  177. package/lib/types/adapter/spec/profile.js +9 -0
  178. package/lib/types/adapter/spec/protocol-constants.d.ts +60 -0
  179. package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -0
  180. package/lib/types/adapter/spec/protocol-constants.js +129 -0
  181. package/lib/types/adapter/spec/tui-contributions.d.ts +18 -0
  182. package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -0
  183. package/lib/types/adapter/spec/tui-contributions.js +19 -0
  184. package/lib/types/adapter/standard/admission.d.ts +11 -0
  185. package/lib/types/adapter/standard/admission.d.ts.map +1 -0
  186. package/lib/types/adapter/standard/admission.js +10 -0
  187. package/lib/types/adapter/standard/descriptor.d.ts +74 -0
  188. package/lib/types/adapter/standard/descriptor.d.ts.map +1 -0
  189. package/lib/types/adapter/standard/descriptor.js +356 -0
  190. package/lib/types/{dsh-adapter → adapter/standard}/grants.d.ts +8 -3
  191. package/lib/types/adapter/standard/grants.d.ts.map +1 -0
  192. package/lib/types/{dsh-adapter → adapter/standard}/grants.js +14 -8
  193. package/lib/types/adapter/standard/index.d.ts +25 -0
  194. package/lib/types/adapter/standard/index.d.ts.map +1 -0
  195. package/lib/types/adapter/standard/index.js +24 -0
  196. package/lib/types/adapter/standard/negotiate.d.ts.map +1 -0
  197. package/lib/types/{plugin-spec → adapter/standard}/permission-scope.d.ts +3 -8
  198. package/lib/types/adapter/standard/permission-scope.d.ts.map +1 -0
  199. package/lib/types/{plugin-spec → adapter/standard}/permission-scope.js +4 -26
  200. package/lib/types/adapter/standard/protocols.d.ts +12 -0
  201. package/lib/types/adapter/standard/protocols.d.ts.map +1 -0
  202. package/lib/types/adapter/standard/protocols.js +11 -0
  203. package/lib/types/adapter/standard/registry.d.ts.map +1 -0
  204. package/lib/types/{plugin-spec → adapter/standard}/registry.js +3 -15
  205. package/lib/types/adapter/standard/schema-check.d.ts.map +1 -0
  206. package/lib/types/{plugin-spec → adapter/standard}/schema-check.js +4 -2
  207. package/lib/types/adapter/standard/tui-extension.d.ts +25 -0
  208. package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -0
  209. package/lib/types/adapter/standard/tui-extension.js +45 -0
  210. package/lib/types/{plugin-spec → adapter/standard}/types.d.ts +3 -9
  211. package/lib/types/adapter/standard/types.d.ts.map +1 -0
  212. package/lib/types/{plugin-spec → adapter/standard}/validate.d.ts +3 -3
  213. package/lib/types/adapter/standard/validate.d.ts.map +1 -0
  214. package/lib/types/{plugin-spec → adapter/standard}/validate.js +14 -13
  215. package/lib/types/adapter/upstream/channel-driver.d.ts +22 -0
  216. package/lib/types/adapter/upstream/channel-driver.d.ts.map +1 -0
  217. package/lib/types/adapter/upstream/channel-driver.js +424 -0
  218. package/lib/types/adapter/upstream/decisions-driver.d.ts +15 -0
  219. package/lib/types/adapter/upstream/decisions-driver.d.ts.map +1 -0
  220. package/lib/types/adapter/upstream/decisions-driver.js +141 -0
  221. package/lib/types/adapter/upstream/detection.d.ts +26 -0
  222. package/lib/types/adapter/upstream/detection.d.ts.map +1 -0
  223. package/lib/types/adapter/upstream/detection.js +9 -0
  224. package/lib/types/adapter/upstream/driver.d.ts +50 -0
  225. package/lib/types/adapter/upstream/driver.d.ts.map +1 -0
  226. package/lib/types/adapter/upstream/driver.js +8 -0
  227. package/lib/types/adapter/upstream/extensions-driver.d.ts +24 -0
  228. package/lib/types/adapter/upstream/extensions-driver.d.ts.map +1 -0
  229. package/lib/types/adapter/upstream/extensions-driver.js +697 -0
  230. package/lib/types/adapter/upstream/host-descriptor-driver.d.ts +45 -0
  231. package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -0
  232. package/lib/types/adapter/upstream/host-descriptor-driver.js +606 -0
  233. package/lib/types/adapter/upstream/index.d.ts +18 -0
  234. package/lib/types/adapter/upstream/index.d.ts.map +1 -0
  235. package/lib/types/adapter/upstream/index.js +15 -0
  236. package/lib/types/adapter/upstream/presentation-driver.d.ts +17 -0
  237. package/lib/types/adapter/upstream/presentation-driver.d.ts.map +1 -0
  238. package/lib/types/adapter/upstream/presentation-driver.js +129 -0
  239. package/lib/types/adapter/upstream/scenes-driver.d.ts +18 -0
  240. package/lib/types/adapter/upstream/scenes-driver.d.ts.map +1 -0
  241. package/lib/types/adapter/upstream/scenes-driver.js +170 -0
  242. package/lib/types/adapter/upstream/settings-driver.d.ts +20 -0
  243. package/lib/types/adapter/upstream/settings-driver.d.ts.map +1 -0
  244. package/lib/types/adapter/upstream/settings-driver.js +173 -0
  245. package/lib/types/adapter/upstream/workspace-driver.d.ts +19 -0
  246. package/lib/types/adapter/upstream/workspace-driver.d.ts.map +1 -0
  247. package/lib/types/adapter/upstream/workspace-driver.js +190 -0
  248. package/lib/types/api.d.ts +1 -1
  249. package/lib/types/api.d.ts.map +1 -1
  250. package/lib/types/commands.d.ts +2 -41
  251. package/lib/types/commands.d.ts.map +1 -1
  252. package/lib/types/commands.js +1 -1
  253. package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
  254. package/lib/types/components/Chat/JobCard.js +8 -1
  255. package/lib/types/components/GoalTodoPanel.d.ts +2 -1
  256. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  257. package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
  258. package/lib/types/components/HistorySearchDialog.js +7 -5
  259. package/lib/types/components/Markdown.d.ts +2 -2
  260. package/lib/types/components/Markdown.d.ts.map +1 -1
  261. package/lib/types/components/Markdown.js +28 -3
  262. package/lib/types/components/MessageList.d.ts.map +1 -1
  263. package/lib/types/components/MessageList.js +46 -17
  264. package/lib/types/components/ModelPicker.d.ts +1 -1
  265. package/lib/types/components/ModelPicker.d.ts.map +1 -1
  266. package/lib/types/components/ModelPicker.js +8 -4
  267. package/lib/types/components/OverlayAbove.d.ts +22 -1
  268. package/lib/types/components/OverlayAbove.d.ts.map +1 -1
  269. package/lib/types/components/OverlayAbove.js +74 -5
  270. package/lib/types/components/PromptInput.d.ts +2 -1
  271. package/lib/types/components/PromptInput.d.ts.map +1 -1
  272. package/lib/types/components/RewindPicker.d.ts.map +1 -1
  273. package/lib/types/components/RewindPicker.js +14 -6
  274. package/lib/types/components/SkillsPicker.d.ts.map +1 -1
  275. package/lib/types/components/SkillsPicker.js +6 -4
  276. package/lib/types/components/Spinner/spinnerMode.d.ts +1 -5
  277. package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -1
  278. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  279. package/lib/types/components/StreamingMarkdown.js +61 -9
  280. package/lib/types/components/design-system/ThemedBox.d.ts +4 -2
  281. package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -1
  282. package/lib/types/components/design-system/ThemedBox.js +2 -2
  283. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  284. package/lib/types/components/messages/AssistantToolUseMessage.js +69 -25
  285. package/lib/types/components/overlayBudget.d.ts +39 -0
  286. package/lib/types/components/overlayBudget.d.ts.map +1 -0
  287. package/lib/types/components/overlayBudget.js +43 -0
  288. package/lib/types/deepseekBalance.d.ts +2 -36
  289. package/lib/types/deepseekBalance.d.ts.map +1 -1
  290. package/lib/types/deepseekBalance.js +0 -14
  291. package/lib/types/deepseekPricing.d.ts +2 -1
  292. package/lib/types/deepseekPricing.d.ts.map +1 -1
  293. package/lib/types/deepseekPricing.js +8 -1
  294. package/lib/types/dsh-adapter/approvals.d.ts +11 -1
  295. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
  296. package/lib/types/dsh-adapter/approvals.js +32 -12
  297. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +20 -0
  298. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -0
  299. package/lib/types/dsh-adapter/channel/action-readiness.js +83 -0
  300. package/lib/types/dsh-adapter/channel/activity.d.ts +20 -0
  301. package/lib/types/dsh-adapter/channel/activity.d.ts.map +1 -0
  302. package/lib/types/dsh-adapter/channel/activity.js +113 -0
  303. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +64 -0
  304. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -0
  305. package/lib/types/dsh-adapter/channel/agent-view-projection.js +295 -0
  306. package/lib/types/dsh-adapter/channel/background-action.d.ts +41 -0
  307. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -0
  308. package/lib/types/dsh-adapter/channel/background-action.js +86 -0
  309. package/lib/types/dsh-adapter/channel/binding-events.d.ts +65 -0
  310. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -0
  311. package/lib/types/dsh-adapter/channel/binding-events.js +169 -0
  312. package/lib/types/dsh-adapter/channel/binding.d.ts +41 -0
  313. package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -0
  314. package/lib/types/dsh-adapter/channel/binding.js +227 -0
  315. package/lib/types/dsh-adapter/channel/command-completions.d.ts +29 -0
  316. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -0
  317. package/lib/types/dsh-adapter/channel/command-completions.js +94 -0
  318. package/lib/types/dsh-adapter/channel/commands.d.ts +8 -0
  319. package/lib/types/dsh-adapter/channel/commands.d.ts.map +1 -0
  320. package/lib/types/dsh-adapter/channel/commands.js +9 -0
  321. package/lib/types/dsh-adapter/channel/compaction.d.ts +19 -0
  322. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -0
  323. package/lib/types/dsh-adapter/channel/compaction.js +116 -0
  324. package/lib/types/dsh-adapter/channel/composer-images.d.ts +57 -0
  325. package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -0
  326. package/lib/types/dsh-adapter/channel/composer-images.js +217 -0
  327. package/lib/types/dsh-adapter/channel/composer-mentions.d.ts +15 -0
  328. package/lib/types/dsh-adapter/channel/composer-mentions.d.ts.map +1 -0
  329. package/lib/types/dsh-adapter/channel/composer-mentions.js +200 -0
  330. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +26 -0
  331. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -0
  332. package/lib/types/dsh-adapter/channel/context-bookkeeping.js +30 -0
  333. package/lib/types/dsh-adapter/channel/decisions.d.ts +19 -0
  334. package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -0
  335. package/lib/types/dsh-adapter/channel/decisions.js +90 -0
  336. package/lib/types/dsh-adapter/channel/emitter.d.ts +10 -0
  337. package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -0
  338. package/lib/types/dsh-adapter/channel/emitter.js +71 -0
  339. package/lib/types/dsh-adapter/channel/external-commands.d.ts +31 -0
  340. package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -0
  341. package/lib/types/dsh-adapter/channel/external-commands.js +187 -0
  342. package/lib/types/dsh-adapter/channel/file-actions.d.ts +20 -0
  343. package/lib/types/dsh-adapter/channel/file-actions.d.ts.map +1 -0
  344. package/lib/types/dsh-adapter/channel/file-actions.js +45 -0
  345. package/lib/types/dsh-adapter/channel/input-actions.d.ts +13 -0
  346. package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -0
  347. package/lib/types/dsh-adapter/channel/input-actions.js +135 -0
  348. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +37 -0
  349. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -0
  350. package/lib/types/dsh-adapter/channel/input-delivery.js +305 -0
  351. package/lib/types/dsh-adapter/channel/job-projection.d.ts +28 -0
  352. package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -0
  353. package/lib/types/dsh-adapter/channel/job-projection.js +150 -0
  354. package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts +9 -0
  355. package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts.map +1 -0
  356. package/lib/types/dsh-adapter/channel/lifetime-resources.js +33 -0
  357. package/lib/types/dsh-adapter/channel/loaded-context.d.ts +40 -0
  358. package/lib/types/dsh-adapter/channel/loaded-context.d.ts.map +1 -0
  359. package/lib/types/dsh-adapter/channel/loaded-context.js +62 -0
  360. package/lib/types/dsh-adapter/channel/local-actions.d.ts +70 -0
  361. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -0
  362. package/lib/types/dsh-adapter/channel/local-actions.js +108 -0
  363. package/lib/types/dsh-adapter/channel/mentions.d.ts +29 -0
  364. package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -0
  365. package/lib/types/dsh-adapter/channel/mentions.js +235 -0
  366. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +30 -0
  367. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -0
  368. package/lib/types/dsh-adapter/channel/mode-actions.js +247 -0
  369. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +35 -0
  370. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -0
  371. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +199 -0
  372. package/lib/types/dsh-adapter/channel/mode-permission.d.ts +58 -0
  373. package/lib/types/dsh-adapter/channel/mode-permission.d.ts.map +1 -0
  374. package/lib/types/dsh-adapter/channel/mode-permission.js +240 -0
  375. package/lib/types/dsh-adapter/channel/mode-roster.d.ts +51 -0
  376. package/lib/types/dsh-adapter/channel/mode-roster.d.ts.map +1 -0
  377. package/lib/types/dsh-adapter/channel/mode-roster.js +119 -0
  378. package/lib/types/dsh-adapter/channel/model-actions.d.ts +46 -0
  379. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -0
  380. package/lib/types/dsh-adapter/channel/model-actions.js +275 -0
  381. package/lib/types/dsh-adapter/channel/model-switch.d.ts +32 -0
  382. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -0
  383. package/lib/types/dsh-adapter/channel/model-switch.js +98 -0
  384. package/lib/types/dsh-adapter/channel/notifications.d.ts +9 -0
  385. package/lib/types/dsh-adapter/channel/notifications.d.ts.map +1 -0
  386. package/lib/types/dsh-adapter/channel/notifications.js +24 -0
  387. package/lib/types/dsh-adapter/channel/owner.d.ts +18 -0
  388. package/lib/types/dsh-adapter/channel/owner.d.ts.map +1 -0
  389. package/lib/types/dsh-adapter/channel/owner.js +73 -0
  390. package/lib/types/dsh-adapter/channel/paths.d.ts +31 -0
  391. package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -0
  392. package/lib/types/dsh-adapter/channel/paths.js +147 -0
  393. package/lib/types/dsh-adapter/channel/permissions.d.ts +40 -0
  394. package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -0
  395. package/lib/types/dsh-adapter/channel/permissions.js +187 -0
  396. package/lib/types/dsh-adapter/channel/preferences.d.ts +3 -0
  397. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -0
  398. package/lib/types/dsh-adapter/channel/preferences.js +103 -0
  399. package/lib/types/dsh-adapter/channel/projection-helpers.d.ts +13 -0
  400. package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -0
  401. package/lib/types/dsh-adapter/channel/projection-helpers.js +63 -0
  402. package/lib/types/dsh-adapter/channel/projection.d.ts +40 -0
  403. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -0
  404. package/lib/types/dsh-adapter/channel/projection.js +1021 -0
  405. package/lib/types/dsh-adapter/channel/reports.d.ts +32 -0
  406. package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -0
  407. package/lib/types/dsh-adapter/channel/reports.js +171 -0
  408. package/lib/types/dsh-adapter/channel/session-actions.d.ts +13 -0
  409. package/lib/types/dsh-adapter/channel/session-actions.d.ts.map +1 -0
  410. package/lib/types/dsh-adapter/channel/session-actions.js +29 -0
  411. package/lib/types/dsh-adapter/channel/session-adoption.d.ts +32 -0
  412. package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -0
  413. package/lib/types/dsh-adapter/channel/session-adoption.js +35 -0
  414. package/lib/types/dsh-adapter/channel/session-fork.d.ts +19 -0
  415. package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -0
  416. package/lib/types/dsh-adapter/channel/session-fork.js +85 -0
  417. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +32 -0
  418. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -0
  419. package/lib/types/dsh-adapter/channel/session-live-adoption.js +62 -0
  420. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +81 -0
  421. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -0
  422. package/lib/types/dsh-adapter/channel/session-metadata.js +209 -0
  423. package/lib/types/dsh-adapter/channel/session-reset.d.ts +11 -0
  424. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -0
  425. package/lib/types/dsh-adapter/channel/session-reset.js +44 -0
  426. package/lib/types/dsh-adapter/channel/session-resume.d.ts +56 -0
  427. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -0
  428. package/lib/types/dsh-adapter/channel/session-resume.js +240 -0
  429. package/lib/types/dsh-adapter/channel/session-rewind.d.ts +19 -0
  430. package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -0
  431. package/lib/types/dsh-adapter/channel/session-rewind.js +128 -0
  432. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +19 -0
  433. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -0
  434. package/lib/types/dsh-adapter/channel/session-tree-actions.js +138 -0
  435. package/lib/types/dsh-adapter/channel/session-tree.d.ts +10 -0
  436. package/lib/types/dsh-adapter/channel/session-tree.d.ts.map +1 -0
  437. package/lib/types/dsh-adapter/channel/session-tree.js +503 -0
  438. package/lib/types/dsh-adapter/channel/settings-host.d.ts +4 -0
  439. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -0
  440. package/lib/types/dsh-adapter/channel/settings-host.js +256 -0
  441. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +33 -0
  442. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -0
  443. package/lib/types/dsh-adapter/channel/skill-catalog.js +215 -0
  444. package/lib/types/dsh-adapter/channel/state.d.ts +46 -0
  445. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -0
  446. package/lib/types/dsh-adapter/channel/state.js +31 -0
  447. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +47 -0
  448. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -0
  449. package/lib/types/dsh-adapter/channel/subagent-projection.js +140 -0
  450. package/lib/types/dsh-adapter/channel/transcript.d.ts +73 -0
  451. package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -0
  452. package/lib/types/dsh-adapter/channel/transcript.js +312 -0
  453. package/lib/types/dsh-adapter/channel/types.d.ts +162 -0
  454. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -0
  455. package/lib/types/dsh-adapter/channel/types.js +1 -0
  456. package/lib/types/dsh-adapter/channel/usage.d.ts +13 -0
  457. package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -0
  458. package/lib/types/dsh-adapter/channel/usage.js +48 -0
  459. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts +20 -0
  460. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -0
  461. package/lib/types/dsh-adapter/channel/workspace-actions.js +56 -0
  462. package/lib/types/dsh-adapter/channel-facade-actions.d.ts +25 -0
  463. package/lib/types/dsh-adapter/channel-facade-actions.d.ts.map +1 -0
  464. package/lib/types/dsh-adapter/channel-facade-actions.js +55 -0
  465. package/lib/types/dsh-adapter/channel-scene-outlet.d.ts +6 -0
  466. package/lib/types/dsh-adapter/channel-scene-outlet.d.ts.map +1 -0
  467. package/lib/types/dsh-adapter/channel-scene-outlet.js +13 -0
  468. package/lib/types/dsh-adapter/channel-ui.d.ts +9 -0
  469. package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -0
  470. package/lib/types/dsh-adapter/channel-ui.js +128 -0
  471. package/lib/types/dsh-adapter/channel.d.ts +9 -1525
  472. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  473. package/lib/types/dsh-adapter/channel.js +753 -8145
  474. package/lib/types/dsh-adapter/command-trees.d.ts +1 -0
  475. package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -1
  476. package/lib/types/dsh-adapter/command-trees.js +20 -1
  477. package/lib/types/dsh-adapter/compat/liveSession.d.ts +8 -4
  478. package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -1
  479. package/lib/types/dsh-adapter/compat/liveSession.js +28 -3
  480. package/lib/types/dsh-adapter/compat/persistence.d.ts +21 -0
  481. package/lib/types/dsh-adapter/compat/persistence.d.ts.map +1 -0
  482. package/lib/types/dsh-adapter/compat/persistence.js +17 -0
  483. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +50 -11
  484. package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
  485. package/lib/types/dsh-adapter/compat/sessionLog.js +325 -36
  486. package/lib/types/dsh-adapter/component-identity.d.ts +1 -1
  487. package/lib/types/dsh-adapter/component-identity.d.ts.map +1 -1
  488. package/lib/types/dsh-adapter/component-identity.js +1 -1
  489. package/lib/types/dsh-adapter/contract.d.ts +11 -9
  490. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  491. package/lib/types/dsh-adapter/contract.js +19 -12
  492. package/lib/types/dsh-adapter/decision-guard.d.ts +56 -12
  493. package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
  494. package/lib/types/dsh-adapter/decision-guard.js +134 -22
  495. package/lib/types/dsh-adapter/dialogs.d.ts.map +1 -1
  496. package/lib/types/dsh-adapter/dialogs.js +13 -0
  497. package/lib/types/dsh-adapter/effect-ledger.d.ts +5 -0
  498. package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
  499. package/lib/types/dsh-adapter/effect-ledger.js +53 -15
  500. package/lib/types/dsh-adapter/extension-events.d.ts +2 -9
  501. package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
  502. package/lib/types/dsh-adapter/extension-events.js +0 -20
  503. package/lib/types/dsh-adapter/extensions.d.ts.map +1 -1
  504. package/lib/types/dsh-adapter/extensions.js +3 -2
  505. package/lib/types/dsh-adapter/host-grants.d.ts +23 -0
  506. package/lib/types/dsh-adapter/host-grants.d.ts.map +1 -0
  507. package/lib/types/dsh-adapter/host-grants.js +45 -0
  508. package/lib/types/dsh-adapter/jobs.d.ts +2 -46
  509. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  510. package/lib/types/dsh-adapter/jobs.js +0 -25
  511. package/lib/types/dsh-adapter/message-observer.d.ts +15 -2
  512. package/lib/types/dsh-adapter/message-observer.d.ts.map +1 -1
  513. package/lib/types/dsh-adapter/message-observer.js +157 -28
  514. package/lib/types/dsh-adapter/plugin-host.d.ts +80 -11
  515. package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
  516. package/lib/types/dsh-adapter/plugin-host.js +438 -41
  517. package/lib/types/dsh-adapter/plugin-storage.d.ts +11 -1
  518. package/lib/types/dsh-adapter/plugin-storage.d.ts.map +1 -1
  519. package/lib/types/dsh-adapter/plugin-storage.js +150 -11
  520. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  521. package/lib/types/dsh-adapter/plugin.js +75 -34
  522. package/lib/types/dsh-adapter/plugins-info.d.ts +2 -2
  523. package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
  524. package/lib/types/dsh-adapter/plugins-info.js +11 -6
  525. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  526. package/lib/types/dsh-adapter/presets.js +3 -2
  527. package/lib/types/dsh-adapter/providerWizard.d.ts +2 -159
  528. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  529. package/lib/types/dsh-adapter/questions.d.ts +8 -0
  530. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  531. package/lib/types/dsh-adapter/questions.js +18 -0
  532. package/lib/types/dsh-adapter/recap.d.ts +1 -9
  533. package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
  534. package/lib/types/dsh-adapter/recap.js +0 -14
  535. package/lib/types/dsh-adapter/renderers.d.ts +1 -0
  536. package/lib/types/dsh-adapter/renderers.d.ts.map +1 -1
  537. package/lib/types/dsh-adapter/renderers.js +26 -1
  538. package/lib/types/dsh-adapter/scenes.d.ts +3 -1
  539. package/lib/types/dsh-adapter/scenes.d.ts.map +1 -1
  540. package/lib/types/dsh-adapter/scenes.js +31 -0
  541. package/lib/types/dsh-adapter/sessionTree.d.ts +14 -95
  542. package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -1
  543. package/lib/types/dsh-adapter/sessionTree.js +51 -36
  544. package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
  545. package/lib/types/dsh-adapter/sessions/digest.js +40 -19
  546. package/lib/types/dsh-adapter/sessions/frames.js +2 -0
  547. package/lib/types/dsh-adapter/sessions/index.d.ts +1 -1
  548. package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -1
  549. package/lib/types/dsh-adapter/sessions/index.js +1 -1
  550. package/lib/types/dsh-adapter/sessions/list.d.ts +23 -0
  551. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  552. package/lib/types/dsh-adapter/sessions/list.js +28 -17
  553. package/lib/types/dsh-adapter/sessions/store.d.ts +2 -2
  554. package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
  555. package/lib/types/dsh-adapter/sessions/store.js +12 -11
  556. package/lib/types/dsh-adapter/sessions/types.d.ts +4 -128
  557. package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
  558. package/lib/types/dsh-adapter/sessions/types.js +0 -13
  559. package/lib/types/dsh-adapter/settings-sections.d.ts +4 -95
  560. package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
  561. package/lib/types/dsh-adapter/settings-sections.js +50 -13
  562. package/lib/types/dsh-adapter/settingsEditor.d.ts +2 -36
  563. package/lib/types/dsh-adapter/settingsEditor.d.ts.map +1 -1
  564. package/lib/types/dsh-adapter/settingsEditor.js +0 -18
  565. package/lib/types/dsh-adapter/shortcuts.d.ts +5 -0
  566. package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
  567. package/lib/types/dsh-adapter/shortcuts.js +49 -0
  568. package/lib/types/dsh-adapter/status.d.ts +5 -0
  569. package/lib/types/dsh-adapter/status.d.ts.map +1 -1
  570. package/lib/types/dsh-adapter/status.js +29 -0
  571. package/lib/types/dsh-adapter/subagents.d.ts +9 -49
  572. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  573. package/lib/types/dsh-adapter/subagents.js +92 -1
  574. package/lib/types/dsh-adapter/themes.d.ts +1 -0
  575. package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
  576. package/lib/types/dsh-adapter/themes.js +29 -0
  577. package/lib/types/dsh-adapter/toast.d.ts +13 -0
  578. package/lib/types/dsh-adapter/toast.d.ts.map +1 -1
  579. package/lib/types/dsh-adapter/toast.js +31 -1
  580. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +2 -1
  581. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -1
  582. package/lib/types/dsh-adapter/trajectory/aggregate.js +2 -1
  583. package/lib/types/dsh-adapter/trajectory/guards.d.ts +37 -18
  584. package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
  585. package/lib/types/dsh-adapter/trajectory/guards.js +43 -5
  586. package/lib/types/dsh-adapter/trajectory/inspect.d.ts +2 -2
  587. package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
  588. package/lib/types/dsh-adapter/trajectory/projection.d.ts +31 -13
  589. package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
  590. package/lib/types/dsh-adapter/trajectory/projection.js +71 -14
  591. package/lib/types/dsh-adapter/trajectory/types.d.ts +1 -1
  592. package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
  593. package/lib/types/dsh-adapter/transcript-images.d.ts +2 -19
  594. package/lib/types/dsh-adapter/transcript-images.d.ts.map +1 -1
  595. package/lib/types/dsh-adapter/workspaces.d.ts +2 -49
  596. package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -1
  597. package/lib/types/dsh-adapter/workspaces.js +23 -3
  598. package/lib/types/i18n.d.ts +19 -7
  599. package/lib/types/i18n.d.ts.map +1 -1
  600. package/lib/types/i18n.js +8 -3
  601. package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
  602. package/lib/types/ink/components/ScrollBox.js +30 -33
  603. package/lib/types/ink/dom.d.ts.map +1 -1
  604. package/lib/types/ink/dom.js +32 -64
  605. package/lib/types/ink/get-max-width.d.ts +7 -15
  606. package/lib/types/ink/get-max-width.d.ts.map +1 -1
  607. package/lib/types/ink/get-max-width.js +7 -20
  608. package/lib/types/ink/ink.d.ts +1 -0
  609. package/lib/types/ink/ink.d.ts.map +1 -1
  610. package/lib/types/ink/ink.js +22 -3
  611. package/lib/types/ink/layout/node.d.ts +2 -0
  612. package/lib/types/ink/layout/node.d.ts.map +1 -1
  613. package/lib/types/ink/layout/yoga.d.ts +1 -0
  614. package/lib/types/ink/layout/yoga.d.ts.map +1 -1
  615. package/lib/types/ink/layout/yoga.js +3 -0
  616. package/lib/types/ink/node-cache.d.ts +11 -0
  617. package/lib/types/ink/node-cache.d.ts.map +1 -1
  618. package/lib/types/ink/node-cache.js +3 -0
  619. package/lib/types/ink/output.d.ts +6 -1
  620. package/lib/types/ink/output.d.ts.map +1 -1
  621. package/lib/types/ink/output.js +55 -65
  622. package/lib/types/ink/render-node-to-output.d.ts +24 -1
  623. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  624. package/lib/types/ink/render-node-to-output.js +195 -71
  625. package/lib/types/ink/renderer.d.ts.map +1 -1
  626. package/lib/types/ink/renderer.js +14 -2
  627. package/lib/types/ink/styles.d.ts +12 -0
  628. package/lib/types/ink/styles.d.ts.map +1 -1
  629. package/lib/types/ink/tabstops.d.ts +3 -2
  630. package/lib/types/ink/tabstops.d.ts.map +1 -1
  631. package/lib/types/ink/tabstops.js +5 -4
  632. package/lib/types/ink/wrap-text.js +2 -2
  633. package/lib/types/modelGroups.d.ts +1 -1
  634. package/lib/types/modelGroups.d.ts.map +1 -1
  635. package/lib/types/modelRoute.js +1 -1
  636. package/lib/types/native-ts/yoga-layout/index.d.ts +8 -3
  637. package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
  638. package/lib/types/native-ts/yoga-layout/index.js +23 -8
  639. package/lib/types/plugin-host.d.ts +3 -4
  640. package/lib/types/plugin-host.d.ts.map +1 -1
  641. package/lib/types/plugin-host.js +8 -6
  642. package/lib/types/screens/AgentView.d.ts +1 -1
  643. package/lib/types/screens/AgentView.d.ts.map +1 -1
  644. package/lib/types/screens/Chat.d.ts +3 -2
  645. package/lib/types/screens/Chat.d.ts.map +1 -1
  646. package/lib/types/screens/Chat.js +91 -17
  647. package/lib/types/screens/SessionBrowser.d.ts +1 -1
  648. package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
  649. package/lib/types/screens/SessionTree.d.ts +1 -1
  650. package/lib/types/screens/SessionTree.d.ts.map +1 -1
  651. package/lib/types/screens/Settings.d.ts +1 -1
  652. package/lib/types/screens/Settings.d.ts.map +1 -1
  653. package/lib/types/screens/StatusLine.d.ts +1 -1
  654. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  655. package/lib/types/screens/StatusLine.js +40 -1
  656. package/lib/types/screens/TrajectoryScene.d.ts +1 -1
  657. package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
  658. package/lib/types/sessionModes.d.ts +11 -15
  659. package/lib/types/sessionModes.d.ts.map +1 -1
  660. package/lib/types/sessionModes.js +11 -0
  661. package/lib/types/tuiDisplayPrefs.d.ts +2 -68
  662. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  663. package/lib/types/tuiDisplayPrefs.js +5 -1
  664. package/lib/types/utils/credentials.d.ts +13 -0
  665. package/lib/types/utils/credentials.d.ts.map +1 -0
  666. package/lib/types/utils/credentials.js +41 -0
  667. package/lib/types/utils/fileSuggestions.d.ts +2 -9
  668. package/lib/types/utils/fileSuggestions.d.ts.map +1 -1
  669. package/lib/types/utils/fold-long-lines.d.ts +38 -0
  670. package/lib/types/utils/fold-long-lines.d.ts.map +1 -0
  671. package/lib/types/utils/fold-long-lines.js +91 -0
  672. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/pi-ai.d.ts +1 -1
  673. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +4 -0
  674. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +15 -2
  675. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +10 -10
  676. package/package.json +125 -81
  677. package/presets/liangshen/.dsh-tui-managed.json +1 -1
  678. package/presets/liangshen/agent.cordis.yml +20 -4
  679. package/presets/liangshen/compaction-epoch.mjs +3 -1
  680. package/presets/liangshen/instruction-hint.mjs +2 -1
  681. package/presets/liangshen/session-events.mjs +8 -0
  682. package/lib/types/dsh-adapter/grants.d.ts.map +0 -1
  683. package/lib/types/dsh-adapter/host-descriptor.d.ts +0 -24
  684. package/lib/types/dsh-adapter/host-descriptor.d.ts.map +0 -1
  685. package/lib/types/dsh-adapter/host-descriptor.js +0 -169
  686. package/lib/types/dsh-adapter/plugin-test-utils.d.ts +0 -62
  687. package/lib/types/dsh-adapter/plugin-test-utils.d.ts.map +0 -1
  688. package/lib/types/dsh-adapter/plugin-test-utils.js +0 -61
  689. package/lib/types/plugin-spec/negotiate.d.ts.map +0 -1
  690. package/lib/types/plugin-spec/permission-scope.d.ts.map +0 -1
  691. package/lib/types/plugin-spec/registry.d.ts.map +0 -1
  692. package/lib/types/plugin-spec/schema-check.d.ts.map +0 -1
  693. package/lib/types/plugin-spec/tui-extension.d.ts +0 -16
  694. package/lib/types/plugin-spec/tui-extension.d.ts.map +0 -1
  695. package/lib/types/plugin-spec/tui-extension.js +0 -79
  696. package/lib/types/plugin-spec/types.d.ts.map +0 -1
  697. package/lib/types/plugin-spec/validate.d.ts.map +0 -1
  698. package/lib/types/test-utils.d.ts +0 -2
  699. package/lib/types/test-utils.d.ts.map +0 -1
  700. package/lib/types/test-utils.js +0 -8
  701. /package/lib/types/{plugin-spec → adapter/standard}/negotiate.d.ts +0 -0
  702. /package/lib/types/{plugin-spec → adapter/standard}/negotiate.js +0 -0
  703. /package/lib/types/{plugin-spec → adapter/standard}/registry.d.ts +0 -0
  704. /package/lib/types/{plugin-spec → adapter/standard}/schema-check.d.ts +0 -0
  705. /package/lib/types/{plugin-spec → adapter/standard}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAI9B,+DAA+D;AAC/D,eAAO,MAAM,KAAK,uBAAwB,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2vC0D,CAAA;AAEpE,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,IAAI,CAAA;AACvC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAUxD,uEAAuE;AACvE,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAG1B,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAG5D;AAED,qCAAqC;AACrC,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAGxC;AAED,iDAAiD;AACjD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,UAAe,GAAG,MAAM,CAG/D;AAwBD;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,MAAM,CAGlF;AAED,4EAA4E;AAC5E,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAQ,CAAA;AAI1G;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAS5D;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAkB,GAAG,IAAI,GAAG,SAAS,CAMtE;AAED,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CAU1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAWvC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAI9B,+DAA+D;AAC/D,eAAO,MAAM,KAAK,uBAAwB,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgwC0D,CAAA;AAEpE,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,IAAI,CAAA;AACvC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAUxD,uEAAuE;AACvE,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAG1B,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAG5D;AAED,qCAAqC;AACrC,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAGxC;AAED,iDAAiD;AACjD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,UAAe,GAAG,MAAM,CAG/D;AAwBD;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,MAAM,CAGlF;AAED,4EAA4E;AAC5E,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAQ,CAAA;AAI1G;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAS5D;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAkB,GAAG,IAAI,GAAG,SAAS,CAMtE;AAED,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CAU1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAWvC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
package/lib/types/i18n.js CHANGED
@@ -131,8 +131,9 @@ const dict = {
131
131
  'agentsmd-convention-read': { zh: '- 改动前先阅读相关模块', en: '- Read the relevant modules before making changes' },
132
132
  'agentsmd-convention-style': { zh: '- 保持与现有代码风格一致', en: '- Keep consistent with the existing code style' },
133
133
  'doctor-api-key': { zh: 'API key: {{state}}', en: 'API key: {{state}}' },
134
- 'doctor-key-configured': { zh: '已配置', en: 'configured' },
135
- 'doctor-key-missing': { zh: '未配置(DEEPSEEK_API_KEY)', en: 'not configured (DEEPSEEK_API_KEY)' },
134
+ 'doctor-key-configured-env': { zh: '已配置(环境变量)', en: 'configured (environment)' },
135
+ 'doctor-key-configured-store': { zh: '已配置(DSH 凭据库)', en: 'configured (DSH credential store)' },
136
+ 'doctor-key-missing': { zh: '未配置(环境变量与 DSH 凭据库中都没有 DEEPSEEK_API_KEY)', en: 'not configured (neither DEEPSEEK_API_KEY nor a DSH credential-store ref)' },
136
137
  'doctor-model': { zh: '模型: {{model}} · 提供方: {{provider}}', en: 'Model: {{model}} · Provider: {{provider}}' },
137
138
  'doctor-cwd': { zh: '工作目录: {{cwd}}', en: 'Working directory: {{cwd}}' },
138
139
  'doctor-context-window': { zh: '上下文窗口: {{window}} tokens', en: 'Context window: {{window}} tokens' },
@@ -239,7 +240,7 @@ const dict = {
239
240
  'model-switch-fork-failed': { zh: '无法切换模型 · {{err}}', en: 'Cannot switch models · {{err}}' },
240
241
  'model-switch-failed': { zh: '模型切换失败 · {{err}}', en: 'Model switch failed · {{err}}' },
241
242
  'model-switch-attach-failed': { zh: '模型已切换,但工作区挂载失败 · {{err}}', en: 'Model switched, but workspace attachment failed · {{err}}' },
242
- 'model-usage': { zh: '用法:/model <provider/model>(如 deepseek/deepseek-v4-flash)', en: 'Usage: /model <provider/model> (e.g. deepseek/deepseek-v4-flash)' },
243
+ 'model-usage': { zh: '用法:/model <provider/model>(如 deepseek/deepseek-flash)', en: 'Usage: /model <provider/model> (e.g. deepseek/deepseek-flash)' },
243
244
  'model-unknown': { zh: '未知模型「{{spec}}」· /model 查看全部', en: 'Unknown model "{{spec}}" · /model to view all' },
244
245
  'compact-unavailable': { zh: '压缩不可用——当前 leaf 没有压缩服务', en: 'Compaction unavailable · no compaction service in this leaf' },
245
246
  'compact-while-working': { zh: '回合运行中,无法压缩会话', en: 'Cannot compact while a turn is running' },
@@ -818,6 +819,9 @@ const dict = {
818
819
  'hint-adjust-done': { zh: '**←/→** 调整 · Enter/Esc 完成', en: '**←/→** to adjust · Enter/Esc to done' },
819
820
  'hint-history-search': { zh: '↑/↓ 选择 · **Enter** 确认 · Esc 取消', en: '↑/↓ to navigate · **Enter** to select · Esc to cancel' },
820
821
  'hint-expand-ctrl-o': { zh: '(ctrl+o 展开)', en: '(ctrl+o to expand)' },
822
+ // 转录里的超长单行(utils/fold-long-lines.ts):行尾内联标记。鼠标点整行
823
+ // (工具卡点卡面)即可展开/收起,键盘走 ctrl+o —— 两种都写进文案。
824
+ 'long-line-folded': { zh: '… 已折叠 {{n}} 字符(点击或 ctrl+o 展开)', en: '… {{n}} chars folded (click or ctrl+o to expand)' },
821
825
  // ── components/FileActionsPanel.tsx(点击文件路径弹出的操作菜单)──
822
826
  'file-actions-title': { zh: '文件操作', en: 'File actions' },
823
827
  'file-actions-open': { zh: '打开文件', en: 'Open file' },
@@ -904,6 +908,7 @@ const dict = {
904
908
  en: 'To authorize: add "{{id}}": [{ "name": "<permission>", "scope": "<scope>" }] under "grants" in ~/.dsh-tui/extension-grants.json; pending permissions: {{perms}}.',
905
909
  },
906
910
  'plugins-check-dropped': { zh: '(宿主描述符已剔除漂移契约:{{dropped}})', en: '(host descriptor dropped drifted contracts: {{dropped}})' },
911
+ 'plugins-check-host-unavailable': { zh: '当前没有 live Host Descriptor;只做静态 manifest 校验,不进行协议支持声明/协商。', en: 'No live Host Descriptor is available; only static manifest validation was performed, no protocol support declaration/negotiation.' },
907
912
  'doctor-plugin-generation': { zh: '插件运行时 generation:{{id}}', en: 'Plugin runtime generation: {{id}}' },
908
913
  'doctor-plugin-registry': { zh: '插件规范注册表自检:{{state}}', en: 'Plugin-spec registry self-check: {{state}}' },
909
914
  'doctor-plugin-host-missing': { zh: 'plugin-host 行未挂载', en: 'plugin-host row not mounted' },
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollBox.d.ts","sourceRoot":"","sources":["../../../../src/ink/components/ScrollBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,KAAK,GAAG,EAAsD,MAAM,OAAO,CAAC;AACpH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,oBAAoB,EAAE,MAAM,MAAM,CAAC;IACnC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC;;;OAGG;IACH,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB;;;;;OAKG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD;;;;;;;OAOG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5E,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG;IACjG,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAAC,EACjB,QAAQ,EACR,GAAG,EACH,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,SAAS,CAsRrD;AACD,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"ScrollBox.d.ts","sourceRoot":"","sources":["../../../../src/ink/components/ScrollBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,KAAK,GAAG,EAAsD,MAAM,OAAO,CAAC;AACpH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,oBAAoB,EAAE,MAAM,MAAM,CAAC;IACnC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC;;;OAGG;IACH,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB;;;;;OAKG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD;;;;;;;OAOG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5E,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG;IACjG,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAAC,EACjB,QAAQ,EACR,GAAG,EACH,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,SAAS,CAkRrD;AACD,eAAe,SAAS,CAAC"}
@@ -89,6 +89,9 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
89
89
  markDirty(el);
90
90
  markCommitStart();
91
91
  notifyCoalesced();
92
+ queueRender(el);
93
+ }
94
+ function queueRender(el) {
92
95
  if (renderQueuedRef.current)
93
96
  return;
94
97
  renderQueuedRef.current = true;
@@ -181,32 +184,13 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
181
184
  el.scrollAnchor = undefined;
182
185
  const viewportH = el.scrollViewportHeight ?? 0;
183
186
  const maxScroll = Math.max(0, (el.scrollHeight ?? 0) - viewportH);
184
- const distance = maxScroll - (el.scrollTop ?? 0);
185
- if (distance > viewportH && viewportH > 0) {
186
- // FAR jump: drain instead of teleport. The viewport would land on
187
- // rows that were never mounted — their spacer heights are
188
- // DEFAULT_ROW_HEIGHT estimates, so the topPad swallows the view
189
- // (blank transcript) AND it is a fixed point: unmounted rows never
190
- // measure, nothing retried until the next wheel event. The drain
191
- // walks the exact wheel path instead: proportional steps, the
192
- // virtualization window follows per commit (it mounts the union of
193
- // committed + pending), the visual clamp pins to the mounted edge
194
- // while rows measure as they enter — no blank at any distance. The
195
- // renderer's at-bottom re-pin restores sticky when it lands
196
- // (stickyScroll=false + pending undefined + scrollTop >= maxScroll).
197
- el.stickyScroll = false;
198
- el.pendingScrollDelta = (el.pendingScrollDelta ?? 0) + distance;
199
- scrollMutated(el);
200
- return;
201
- }
202
187
  el.pendingScrollDelta = undefined;
203
188
  el.stickyScroll = true;
204
- // DOM-direct pre-write of the target (near jumps only): the notify
205
- // below triggers MessageList's window recompute, and its React commit
206
- // must read the NEW scrollTop — the old order (notify first, renderer
207
- // moves scrollTop later) left the window one commit behind. The
208
- // renderer's sticky branch re-pins scrollTop to the exact fresh
209
- // maxScroll next frame, so a stale cached height costs one frame.
189
+ // Jump intent is not wheel debt: mounting the union of the current
190
+ // position and a far pending delta defeats virtualization. MessageList's
191
+ // sticky tail walk mounts the destination directly, even with estimated
192
+ // heights. Publish sticky + target before notifying; the renderer then
193
+ // pins to the fresh maxScroll as those tail rows are measured.
210
194
  el.scrollTop = maxScroll;
211
195
  scrollMutated(el);
212
196
  forceRender(n => n + 1);
@@ -247,8 +231,17 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
247
231
  const el = domRef.current;
248
232
  if (!el)
249
233
  return;
234
+ if (el.scrollClampMin === min && el.scrollClampMax === max)
235
+ return;
250
236
  el.scrollClampMin = min;
251
237
  el.scrollClampMax = max;
238
+ // Layout effects publish the new mount window AFTER resetAfterCommit
239
+ // may have painted with the previous bounds. Warm rows need no measure
240
+ // tick, so that paint can otherwise remain on blank spacer indefinitely.
241
+ // Invalidate the blit and schedule a paint, without notifying React
242
+ // subscribers (the window is already committed).
243
+ markDirty(el);
244
+ queueRender(el);
252
245
  }
253
246
  };
254
247
  handleRef.current = handle;
@@ -267,6 +260,18 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
267
260
  if (e.deltaY !== 0)
268
261
  handleRef.current?.scrollBy(e.deltaY);
269
262
  }, []);
263
+ // Keep the host ref attached across updates. A new callback would detach
264
+ // it before children's layout effects publish their clamp bounds, making
265
+ // setClampBounds silently miss the commit (child effects run first).
266
+ const attachNode = useCallback((el) => {
267
+ domRef.current = el;
268
+ if (el) {
269
+ el.scrollTop ??= 0;
270
+ el.onStickyRestore = notify;
271
+ }
272
+ // notify only closes over refs, like the imperative handle above.
273
+ // eslint-disable-next-line react-hooks/exhaustive-deps
274
+ }, []);
270
275
  // Structure: outer viewport (overflow:scroll, constrained height) >
271
276
  // inner content (flexGrow:1, flexShrink:0 — fills at least the viewport
272
277
  // but grows beyond it for tall content). flexGrow:1 lets children use
@@ -278,15 +283,7 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
278
283
  // stickyScroll is passed as a DOM attribute (via ink-box directly) so it's
279
284
  // available on the first render — ref callbacks fire after the initial
280
285
  // commit, which is too late for the first frame.
281
- return _jsx("ink-box", { ref: el => {
282
- domRef.current = el;
283
- if (el) {
284
- el.scrollTop ??= 0;
285
- // Renderer-side sticky restores (positional re-pin at the bottom)
286
- // must reach React subscribers too — see dom.ts onStickyRestore.
287
- el.onStickyRestore = notify;
288
- }
289
- }, onWheel: handleWheel, style: {
286
+ return _jsx("ink-box", { ref: attachNode, onWheel: handleWheel, style: {
290
287
  flexWrap: 'nowrap',
291
288
  flexDirection: style.flexDirection ?? 'row',
292
289
  flexGrow: style.flexGrow ?? 0,
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/ink/dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/ink/dom.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createLayoutNode } from './layout/engine.js';
2
2
  import { LayoutDisplay, LayoutMeasureMode } from './layout/node.js';
3
3
  import measureText from './measure-text.js';
4
- import { addPendingClear, nodeCache } from './node-cache.js';
4
+ import { addPendingClear, nodeCache, textPaintCache } from './node-cache.js';
5
5
  import squashTextNodes from './squash-text-nodes.js';
6
6
  import { expandTabs } from './tabstops.js';
7
7
  import wrapText from './wrap-text.js';
@@ -219,12 +219,31 @@ export const createTextNode = (text) => {
219
219
  setTextNodeValue(node, text);
220
220
  return node;
221
221
  };
222
- const measureWrapCache = new WeakMap();
222
+ const textMeasureCache = new WeakMap();
223
+ // Yoga probes several widths/modes repeatedly in one layout. Retain only
224
+ // the current text's results so streaming cannot accumulate old snapshots.
225
+ const TEXT_MEASURE_CACHE_SIZE = 8;
223
226
  const measureTextNode = function (node, width, widthMode) {
224
227
  const rawText = node.nodeName === '#text' ? node.nodeValue : squashTextNodes(node);
225
- // Expand tabs for measurement (worst case: 8 spaces each).
226
- // Actual tab expansion happens in output.ts based on screen position.
227
- const text = expandTabs(rawText);
228
+ const textWrap = node.style.textWrap ?? 'wrap';
229
+ let cache = textMeasureCache.get(node);
230
+ if (cache === undefined || cache.rawText !== rawText || cache.wrap !== textWrap) {
231
+ // Tabs use the same measurement expansion as the uncached path.
232
+ cache = { rawText, text: expandTabs(rawText), wrap: textWrap, entries: [] };
233
+ textMeasureCache.set(node, cache);
234
+ }
235
+ for (const entry of cache.entries) {
236
+ if (Object.is(entry.width, width) && entry.widthMode === widthMode)
237
+ return entry.result;
238
+ }
239
+ // Check above before measureText walks every line, even on a wrap-cache hit.
240
+ const result = measureTextDimensions(cache.text, width, widthMode, textWrap);
241
+ if (cache.entries.length === TEXT_MEASURE_CACHE_SIZE)
242
+ cache.entries.shift();
243
+ cache.entries.push({ width, widthMode, result });
244
+ return result;
245
+ };
246
+ function measureTextDimensions(text, width, widthMode, textWrap) {
228
247
  const dimensions = measureText(text, width);
229
248
  // Text fits into container, no need to wrap
230
249
  if (dimensions.width <= width) {
@@ -247,66 +266,11 @@ const measureTextNode = function (node, width, widthMode) {
247
266
  const effectiveWidth = Math.max(width, dimensions.width);
248
267
  return measureText(text, effectiveWidth);
249
268
  }
250
- const textWrap = node.style.textWrap ?? 'wrap';
251
- // Incremental path: same node, same width/wrap, text grew by append.
252
- const cached = measureWrapCache.get(node);
253
- if (cached !== undefined && cached.width === width && cached.wrap === textWrap) {
254
- if (cached.text === text) {
255
- // Same-frame repeat measure (yoga min/max probing) — free.
256
- return cached.result;
257
- }
258
- if (text.startsWith(cached.text)) {
259
- const tail = text.slice(cached.tailStart);
260
- const tailWrapped = wrapText(tail, width, textWrap);
261
- const tailDim = measureText(tailWrapped, width);
262
- // Commit fully-terminated logical lines into the head so the tail
263
- // stays bounded at one line of source text.
264
- const lastNewline = tail.lastIndexOf('\n');
265
- let { headHeight, tailStart } = cached;
266
- let tailHeight = tailDim.height;
267
- if (lastNewline > 0) {
268
- const committed = wrapText(tail.slice(0, lastNewline + 1), width, textWrap);
269
- headHeight += measureText(committed, width).height;
270
- tailStart += lastNewline + 1;
271
- tailHeight = measureText(wrapText(tail.slice(lastNewline + 1), width, textWrap), width).height;
272
- }
273
- const result = {
274
- width: Math.max(cached.result.width, tailDim.width),
275
- height: headHeight + tailHeight,
276
- };
277
- measureWrapCache.set(node, {
278
- text,
279
- width,
280
- wrap: textWrap,
281
- headHeight,
282
- tailStart,
283
- tailHeight,
284
- result,
285
- });
286
- return result;
287
- }
288
- // Text replaced or shrunk (node reuse for a different message): fall
289
- // through to the full path and overwrite the cache below.
290
- }
291
269
  const wrappedText = wrapText(text, width, textWrap);
292
- const fullResult = measureText(wrappedText, width);
293
- // Seed the incremental cache: commit everything before the last newline.
294
- const lastNewline = text.lastIndexOf('\n');
295
- const tailStart = lastNewline === -1 ? 0 : lastNewline + 1;
296
- const headHeight = tailStart === 0
297
- ? 0
298
- : measureText(wrapText(text.slice(0, tailStart), width, textWrap), width).height;
299
- measureWrapCache.set(node, {
300
- text,
301
- width,
302
- wrap: textWrap,
303
- headHeight,
304
- tailStart,
305
- tailHeight: fullResult.height - headHeight,
306
- result: fullResult,
307
- });
308
- return fullResult;
309
- };
270
+ // The wrapper has already chosen physical rows. Reapplying width-based
271
+ // row counting here double-counts trailing spaces at fractional widths.
272
+ return measureText(wrappedText, Infinity);
273
+ }
310
274
  // ink-raw-ansi nodes hold pre-rendered ANSI strings with known dimensions.
311
275
  // No stringWidth, no wrapping, no tab expansion — the producer (e.g. ColorDiff)
312
276
  // already wrapped to the target width and each line is exactly one terminal row.
@@ -328,6 +292,9 @@ export const markDirty = (node) => {
328
292
  if (current.nodeName !== '#text') {
329
293
  ;
330
294
  (current).dirty = true;
295
+ // Culling can clear the paint dirty bit without preparing changed text.
296
+ // Invalidate at mutation time so re-entry cannot reuse stale content.
297
+ textPaintCache.delete(current);
331
298
  // Only mark yoga dirty on leaf nodes that have measure functions
332
299
  if (!markedYoga &&
333
300
  (current.nodeName === 'ink-text' ||
@@ -362,6 +329,7 @@ export const markTreeDirty = (node) => {
362
329
  continue;
363
330
  const element = current;
364
331
  element.dirty = true;
332
+ textPaintCache.delete(element);
365
333
  // markDirty() is only legal on yoga nodes that carry a measure function;
366
334
  // those are exactly the two text node kinds (see createNode).
367
335
  if ((current.nodeName === 'ink-text' || current.nodeName === 'ink-raw-ansi') &&
@@ -1,19 +1,11 @@
1
- import { type LayoutNode } from './layout/node.js';
1
+ import type { LayoutNode } from './layout/node.js';
2
2
  /**
3
- * Returns the yoga node's content width (computed width minus padding and
4
- * border).
5
- *
6
- * Warning: can return a value WIDER than the parent container. In a
7
- * column-direction flex parent, width is the cross axis — align-items:
8
- * stretch never shrinks children below their intrinsic size, so the text
9
- * node overflows (standard CSS behavior). Yoga measures leaf nodes in two
10
- * passes: the AtMost pass determines width, the Exactly pass determines
11
- * height. getComputedWidth() reflects the wider AtMost result while
12
- * getComputedHeight() reflects the narrower Exactly result. Callers that
13
- * use this for wrapping should clamp to actual available screen space so
14
- * the rendered line count stays consistent with the layout height.
15
- * @param yogaNode - the laid-out node to measure.
16
- * @returns the node's content width: computed width minus padding and border.
3
+ * Return the text constraint that produced the laid-out height. Pixel-grid
4
+ * rounding can widen the painted box; wrapping at that rounded width would
5
+ * produce fewer rows than Yoga reserved and leave blank space at the bottom.
6
+ * The layout engine retains this constraint through its cache-hit paths.
7
+ * @param yogaNode - a laid-out text node with a measure function.
8
+ * @returns content width, already excluding padding and border.
17
9
  */
18
10
  declare const getMaxWidth: (yogaNode: LayoutNode) => number;
19
11
  export default getMaxWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"get-max-width.d.ts","sourceRoot":"","sources":["../../../src/ink/get-max-width.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE9D;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,WAAW,GAAI,UAAU,UAAU,KAAG,MAQ3C,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"get-max-width.d.ts","sourceRoot":"","sources":["../../../src/ink/get-max-width.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,GAAI,UAAU,UAAU,KAAG,MAE3C,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -1,25 +1,12 @@
1
- import { LayoutEdge } from './layout/node.js';
2
1
  /**
3
- * Returns the yoga node's content width (computed width minus padding and
4
- * border).
5
- *
6
- * Warning: can return a value WIDER than the parent container. In a
7
- * column-direction flex parent, width is the cross axis — align-items:
8
- * stretch never shrinks children below their intrinsic size, so the text
9
- * node overflows (standard CSS behavior). Yoga measures leaf nodes in two
10
- * passes: the AtMost pass determines width, the Exactly pass determines
11
- * height. getComputedWidth() reflects the wider AtMost result while
12
- * getComputedHeight() reflects the narrower Exactly result. Callers that
13
- * use this for wrapping should clamp to actual available screen space so
14
- * the rendered line count stays consistent with the layout height.
15
- * @param yogaNode - the laid-out node to measure.
16
- * @returns the node's content width: computed width minus padding and border.
2
+ * Return the text constraint that produced the laid-out height. Pixel-grid
3
+ * rounding can widen the painted box; wrapping at that rounded width would
4
+ * produce fewer rows than Yoga reserved and leave blank space at the bottom.
5
+ * The layout engine retains this constraint through its cache-hit paths.
6
+ * @param yogaNode - a laid-out text node with a measure function.
7
+ * @returns content width, already excluding padding and border.
17
8
  */
18
9
  const getMaxWidth = (yogaNode) => {
19
- return (yogaNode.getComputedWidth() -
20
- yogaNode.getComputedPadding(LayoutEdge.Left) -
21
- yogaNode.getComputedPadding(LayoutEdge.Right) -
22
- yogaNode.getComputedBorder(LayoutEdge.Left) -
23
- yogaNode.getComputedBorder(LayoutEdge.Right));
10
+ return yogaNode.getComputedMeasureWidth();
24
11
  };
25
12
  export default getMaxWidth;
@@ -67,6 +67,7 @@ export default class Ink {
67
67
  private altScreenMouseTracking;
68
68
  private mainScreenFrameState;
69
69
  private prevFrameContaminated;
70
+ private needsSurfaceRepaint;
70
71
  private needsEraseBeforePaint;
71
72
  private cursorDeclaration;
72
73
  private displayCursor;
@@ -1 +1 @@
1
- {"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../../src/ink/ink.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../../src/ink/ink.tsx"],"names":[],"mappings":"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"}
@@ -184,6 +184,9 @@ export default class Ink {
184
184
  // one full-render frame; steady-state frames after clear it and regain
185
185
  // the blit + narrow-damage fast path.
186
186
  prevFrameContaminated = false;
187
+ // A ConPTY resize may discard terminal cells without changing the grid.
188
+ // Consume once at the next scheduled paint, not once per resize event.
189
+ needsSurfaceRepaint = false;
187
190
  // Set by handleResize: prepend ERASE_SCREEN to the next onRender's patches
188
191
  // INSIDE the BSU/ESU block so clear+paint is atomic. Writing ERASE_SCREEN
189
192
  // synchronously in handleResize would leave the screen blank for the ~80ms
@@ -361,13 +364,19 @@ export default class Ink {
361
364
  handleResize = () => {
362
365
  const cols = this.options.stdout.columns || 80;
363
366
  const rows = this.options.stdout.rows || 24;
364
- // Terminals often emit 2+ resize events for one user action (window
365
- // settling). Same-dimension events are no-ops; skip to avoid redundant
366
- // frame resets and renders.
367
+ // Duplicate resize events normally leave both layout and surface intact.
368
+ // ConPTY can rebuild the alt buffer during maximize with the SAME grid,
369
+ // though: the cached frame then hides lost static cells forever (#891).
367
370
  if (cols === this.terminalColumns && rows === this.terminalRows) {
368
371
  // A font zoom or DPI move can change cell pixels without changing the
369
372
  // row/column grid. The in-flight guard coalesces duplicate events.
370
373
  this.refreshTerminalCellMetrics();
374
+ if ((process.platform === 'win32' || !!process.env.WT_SESSION) &&
375
+ this.altScreenActive && this.options.stdout.isTTY &&
376
+ !this.isPaused && !this.isUnmounted && !this.needsSurfaceRepaint) {
377
+ this.needsSurfaceRepaint = true;
378
+ this.scheduleRender();
379
+ }
371
380
  return;
372
381
  }
373
382
  noteFrameCause('resize');
@@ -612,6 +621,15 @@ export default class Ink {
612
621
  if (this.isUnmounted || this.isPaused) {
613
622
  return;
614
623
  }
624
+ if (this.needsSurfaceRepaint) {
625
+ this.needsSurfaceRepaint = false;
626
+ if (this.altScreenActive) {
627
+ noteFrameCause('resize');
628
+ // Repaint from an empty diff baseline without an early erase or
629
+ // DECSET 1049: neither may interrupt an external-editor handoff.
630
+ this.resetFramesForAltScreen();
631
+ }
632
+ }
615
633
  if (GEOMETRY_TRACE_ENABLED)
616
634
  beginGeometryFrame(this.renderGeneration);
617
635
  // Entering a render cancels any pending drain tick — this render will
@@ -1856,6 +1874,7 @@ export default class Ink {
1856
1874
  * matches the physical cursor after ENTER_ALT_SCREEN + CSI H (home).
1857
1875
  */
1858
1876
  resetFramesForAltScreen() {
1877
+ this.needsSurfaceRepaint = false;
1859
1878
  const rows = this.terminalRows;
1860
1879
  const cols = this.terminalColumns;
1861
1880
  const blank = () => ({
@@ -109,6 +109,8 @@ export type LayoutNode = {
109
109
  getComputedLeft(): number;
110
110
  getComputedTop(): number;
111
111
  getComputedWidth(): number;
112
+ /** Text's content constraint before layout rounds its painted box. */
113
+ getComputedMeasureWidth(): number;
112
114
  getComputedHeight(): number;
113
115
  getComputedBorder(edge: LayoutEdge): number;
114
116
  getComputedPadding(edge: LayoutEdge): number;
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/node.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export declare class YogaLayoutNode implements LayoutNode {
22
22
  getComputedLeft(): number;
23
23
  getComputedTop(): number;
24
24
  getComputedWidth(): number;
25
+ getComputedMeasureWidth(): number;
25
26
  getComputedHeight(): number;
26
27
  getComputedBorder(edge: LayoutEdge): number;
27
28
  getComputedPadding(edge: LayoutEdge): number;
@@ -1 +1 @@
1
- {"version":3,"file":"yoga.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/yoga.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yoga.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/yoga.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,9 @@ export class YogaLayoutNode {
77
77
  getComputedWidth() {
78
78
  return this.yoga.getComputedWidth();
79
79
  }
80
+ getComputedMeasureWidth() {
81
+ return this.yoga.getComputedMeasureWidth();
82
+ }
80
83
  getComputedHeight() {
81
84
  return this.yoga.getComputedHeight();
82
85
  }
@@ -25,6 +25,17 @@ export type CachedLayout = {
25
25
  };
26
26
  /** Layout bounds cached per rendered node, used for blitting and clearing. */
27
27
  export declare const nodeCache: WeakMap<DOMElement, CachedLayout>;
28
+ /** Current prepared text only: scrolling changes its position, not its lines.
29
+ * Weak keys release unmounted nodes; mutations discard the previous version. */
30
+ export declare const textPaintCache: WeakMap<DOMElement, {
31
+ maxWidth: number;
32
+ background: string | undefined;
33
+ paddingLeft: number;
34
+ paddingTop: number;
35
+ text: string;
36
+ lines: readonly string[];
37
+ softWrap: boolean[] | undefined;
38
+ }>;
28
39
  /** Rects of removed children that need clearing on next render */
29
40
  export declare const pendingClears: WeakMap<DOMElement, Rectangle[]>;
30
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"node-cache.d.ts","sourceRoot":"","sources":["../../../src/ink/node-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;mCAG+B;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;mCAG+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,SAAS,mCAA0C,CAAA;AAEhE,kEAAkE;AAClE,eAAO,MAAM,aAAa,kCAAyC,CAAA;AAanE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,GAClB,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAIpD"}
1
+ {"version":3,"file":"node-cache.d.ts","sourceRoot":"","sources":["../../../src/ink/node-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;mCAG+B;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;mCAG+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,SAAS,mCAA0C,CAAA;AAEhE;gFACgF;AAChF,eAAO,MAAM,cAAc;cACf,MAAM;gBACJ,MAAM,GAAG,SAAS;iBACjB,MAAM;gBACP,MAAM;UACZ,MAAM;WACL,SAAS,MAAM,EAAE;cACd,OAAO,EAAE,GAAG,SAAS;EAC7B,CAAA;AAEJ,kEAAkE;AAClE,eAAO,MAAM,aAAa,kCAAyC,CAAA;AAanE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,GAClB,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAIpD"}
@@ -1,5 +1,8 @@
1
1
  /** Layout bounds cached per rendered node, used for blitting and clearing. */
2
2
  export const nodeCache = new WeakMap();
3
+ /** Current prepared text only: scrolling changes its position, not its lines.
4
+ * Weak keys release unmounted nodes; mutations discard the previous version. */
5
+ export const textPaintCache = new WeakMap();
3
6
  /** Rects of removed children that need clearing on next render */
4
7
  export const pendingClears = new WeakMap();
5
8
  /**