@dsh-cove/dsh-web-all 0.0.0-stage → 0.4.3

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 (912) hide show
  1. package/LICENSE +202 -0
  2. package/README.i18n.yaml +6 -0
  3. package/README.md +201 -2
  4. package/README.zh.md +202 -0
  5. package/cordis.patch.yml +59 -0
  6. package/lib/client.js +25413 -0
  7. package/lib/client.js.map +1 -0
  8. package/lib/index.js +20024 -0
  9. package/lib/invariant.js +6 -0
  10. package/lib/types/client/compat.d.ts +29 -0
  11. package/lib/types/client/compat.d.ts.map +1 -0
  12. package/lib/types/client/compat.js +69 -0
  13. package/lib/types/client/conversation/git-branch.d.ts +13 -0
  14. package/lib/types/client/conversation/git-branch.d.ts.map +1 -0
  15. package/lib/types/client/conversation/git-branch.js +121 -0
  16. package/lib/types/client/conversation/git-graph/api.d.ts +42 -0
  17. package/lib/types/client/conversation/git-graph/api.d.ts.map +1 -0
  18. package/lib/types/client/conversation/git-graph/api.js +72 -0
  19. package/lib/types/client/conversation/git-graph/branch-chip.d.ts +47 -0
  20. package/lib/types/client/conversation/git-graph/branch-chip.d.ts.map +1 -0
  21. package/lib/types/client/conversation/git-graph/branch-chip.js +268 -0
  22. package/lib/types/client/conversation/git-graph/branch-popover.d.ts +32 -0
  23. package/lib/types/client/conversation/git-graph/branch-popover.d.ts.map +1 -0
  24. package/lib/types/client/conversation/git-graph/branch-popover.js +108 -0
  25. package/lib/types/client/conversation/git-graph/chip.d.ts +24 -0
  26. package/lib/types/client/conversation/git-graph/chip.d.ts.map +1 -0
  27. package/lib/types/client/conversation/git-graph/chip.js +15 -0
  28. package/lib/types/client/conversation/git-graph/create-branch-dialog.d.ts +30 -0
  29. package/lib/types/client/conversation/git-graph/create-branch-dialog.d.ts.map +1 -0
  30. package/lib/types/client/conversation/git-graph/create-branch-dialog.js +52 -0
  31. package/lib/types/client/conversation/git-graph/error-copy.d.ts +17 -0
  32. package/lib/types/client/conversation/git-graph/error-copy.d.ts.map +1 -0
  33. package/lib/types/client/conversation/git-graph/error-copy.js +44 -0
  34. package/lib/types/client/conversation/git-graph/graph-dialog.d.ts +21 -0
  35. package/lib/types/client/conversation/git-graph/graph-dialog.d.ts.map +1 -0
  36. package/lib/types/client/conversation/git-graph/graph-dialog.js +112 -0
  37. package/lib/types/client/conversation/git-graph/hero-seat.d.ts +53 -0
  38. package/lib/types/client/conversation/git-graph/hero-seat.d.ts.map +1 -0
  39. package/lib/types/client/conversation/git-graph/hero-seat.js +54 -0
  40. package/lib/types/client/conversation/git-graph/locales.d.ts +88 -0
  41. package/lib/types/client/conversation/git-graph/locales.d.ts.map +1 -0
  42. package/lib/types/client/conversation/git-graph/locales.js +85 -0
  43. package/lib/types/client/conversation/git-graph/sse-leader.d.ts +37 -0
  44. package/lib/types/client/conversation/git-graph/sse-leader.d.ts.map +1 -0
  45. package/lib/types/client/conversation/git-graph/sse-leader.js +101 -0
  46. package/lib/types/client/conversation/index.d.ts +43 -0
  47. package/lib/types/client/conversation/index.d.ts.map +1 -0
  48. package/lib/types/client/conversation/index.js +39 -0
  49. package/lib/types/client/conversation/selector-context.d.ts +12 -0
  50. package/lib/types/client/conversation/selector-context.d.ts.map +1 -0
  51. package/lib/types/client/conversation/selector-context.js +11 -0
  52. package/lib/types/client/conversation/session-lane-chip.d.ts +72 -0
  53. package/lib/types/client/conversation/session-lane-chip.d.ts.map +1 -0
  54. package/lib/types/client/conversation/session-lane-chip.js +163 -0
  55. package/lib/types/client/conversation/session-lane-locales.d.ts +22 -0
  56. package/lib/types/client/conversation/session-lane-locales.d.ts.map +1 -0
  57. package/lib/types/client/conversation/session-lane-locales.js +29 -0
  58. package/lib/types/client/conversation/subagent-model-dom.d.ts +16 -0
  59. package/lib/types/client/conversation/subagent-model-dom.d.ts.map +1 -0
  60. package/lib/types/client/conversation/subagent-model-dom.js +138 -0
  61. package/lib/types/client/conversation/subagent-model.d.ts +17 -0
  62. package/lib/types/client/conversation/subagent-model.d.ts.map +1 -0
  63. package/lib/types/client/conversation/subagent-model.js +156 -0
  64. package/lib/types/client/conversation/worktree/api.d.ts +97 -0
  65. package/lib/types/client/conversation/worktree/api.d.ts.map +1 -0
  66. package/lib/types/client/conversation/worktree/api.js +239 -0
  67. package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.d.ts +35 -0
  68. package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.d.ts.map +1 -0
  69. package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.js +55 -0
  70. package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.d.ts +27 -0
  71. package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.d.ts.map +1 -0
  72. package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.js +49 -0
  73. package/lib/types/client/conversation/worktree/lane-binding.d.ts +46 -0
  74. package/lib/types/client/conversation/worktree/lane-binding.d.ts.map +1 -0
  75. package/lib/types/client/conversation/worktree/lane-binding.js +60 -0
  76. package/lib/types/client/conversation/worktree/lane-menu.d.ts +51 -0
  77. package/lib/types/client/conversation/worktree/lane-menu.d.ts.map +1 -0
  78. package/lib/types/client/conversation/worktree/lane-menu.js +140 -0
  79. package/lib/types/client/conversation/worktree/lane-open.d.ts +126 -0
  80. package/lib/types/client/conversation/worktree/lane-open.d.ts.map +1 -0
  81. package/lib/types/client/conversation/worktree/lane-open.js +140 -0
  82. package/lib/types/client/conversation/worktree/lane-workspace-sweeper.d.ts +79 -0
  83. package/lib/types/client/conversation/worktree/lane-workspace-sweeper.d.ts.map +1 -0
  84. package/lib/types/client/conversation/worktree/lane-workspace-sweeper.js +116 -0
  85. package/lib/types/client/conversation/worktree/lifecycle.d.ts +29 -0
  86. package/lib/types/client/conversation/worktree/lifecycle.d.ts.map +1 -0
  87. package/lib/types/client/conversation/worktree/lifecycle.js +67 -0
  88. package/lib/types/client/conversation/worktree/locales.d.ts +58 -0
  89. package/lib/types/client/conversation/worktree/locales.d.ts.map +1 -0
  90. package/lib/types/client/conversation/worktree/locales.js +86 -0
  91. package/lib/types/client/conversation/worktree/semantic.d.ts +11 -0
  92. package/lib/types/client/conversation/worktree/semantic.d.ts.map +1 -0
  93. package/lib/types/client/conversation/worktree/semantic.js +10 -0
  94. package/lib/types/client/index.d.ts +14 -0
  95. package/lib/types/client/index.d.ts.map +1 -0
  96. package/lib/types/client/index.js +45 -0
  97. package/lib/types/client/lark-inbox/i18n.d.ts +63 -0
  98. package/lib/types/client/lark-inbox/i18n.d.ts.map +1 -0
  99. package/lib/types/client/lark-inbox/i18n.js +119 -0
  100. package/lib/types/client/lark-inbox/wizard.d.ts +19 -0
  101. package/lib/types/client/lark-inbox/wizard.d.ts.map +1 -0
  102. package/lib/types/client/lark-inbox/wizard.js +158 -0
  103. package/lib/types/client/notify/i18n.d.ts +47 -0
  104. package/lib/types/client/notify/i18n.d.ts.map +1 -0
  105. package/lib/types/client/notify/i18n.js +87 -0
  106. package/lib/types/client/settings/family-scope.d.ts +23 -0
  107. package/lib/types/client/settings/family-scope.d.ts.map +1 -0
  108. package/lib/types/client/settings/family-scope.js +30 -0
  109. package/lib/types/client/settings/lark-inbox.d.ts +73 -0
  110. package/lib/types/client/settings/lark-inbox.d.ts.map +1 -0
  111. package/lib/types/client/settings/lark-inbox.js +144 -0
  112. package/lib/types/client/settings/notify.d.ts +66 -0
  113. package/lib/types/client/settings/notify.d.ts.map +1 -0
  114. package/lib/types/client/settings/notify.js +139 -0
  115. package/lib/types/client/settings/primitives-0.2.d.ts +137 -0
  116. package/lib/types/client/settings/primitives-0.2.d.ts.map +1 -0
  117. package/lib/types/client/settings/primitives-0.2.js +8 -0
  118. package/lib/types/client/sidebar/RenderBoundary.d.ts +17 -0
  119. package/lib/types/client/sidebar/RenderBoundary.d.ts.map +1 -0
  120. package/lib/types/client/sidebar/RenderBoundary.js +18 -0
  121. package/lib/types/client/sidebar/agent-browser.d.ts +9 -0
  122. package/lib/types/client/sidebar/agent-browser.d.ts.map +1 -0
  123. package/lib/types/client/sidebar/agent-browser.js +102 -0
  124. package/lib/types/client/sidebar/diff-view.d.ts +58 -0
  125. package/lib/types/client/sidebar/diff-view.d.ts.map +1 -0
  126. package/lib/types/client/sidebar/diff-view.js +223 -0
  127. package/lib/types/client/sidebar/git-workbench.d.ts +41 -0
  128. package/lib/types/client/sidebar/git-workbench.d.ts.map +1 -0
  129. package/lib/types/client/sidebar/git-workbench.js +480 -0
  130. package/lib/types/client/sidebar/icons.d.ts +9 -0
  131. package/lib/types/client/sidebar/icons.d.ts.map +1 -0
  132. package/lib/types/client/sidebar/icons.js +6 -0
  133. package/lib/types/client/sidebar/index.d.ts +19 -0
  134. package/lib/types/client/sidebar/index.d.ts.map +1 -0
  135. package/lib/types/client/sidebar/index.js +12 -0
  136. package/lib/types/client/sidebar/native-panels.d.ts +19 -0
  137. package/lib/types/client/sidebar/native-panels.d.ts.map +1 -0
  138. package/lib/types/client/sidebar/native-panels.js +103 -0
  139. package/lib/types/client/sidebar/page-shell.d.ts +52 -0
  140. package/lib/types/client/sidebar/page-shell.d.ts.map +1 -0
  141. package/lib/types/client/sidebar/page-shell.js +18 -0
  142. package/lib/types/client/sidebar/panels/memoir/api.d.ts +258 -0
  143. package/lib/types/client/sidebar/panels/memoir/api.d.ts.map +1 -0
  144. package/lib/types/client/sidebar/panels/memoir/api.js +135 -0
  145. package/lib/types/client/sidebar/panels/memoir/controller.d.ts +22 -0
  146. package/lib/types/client/sidebar/panels/memoir/controller.d.ts.map +1 -0
  147. package/lib/types/client/sidebar/panels/memoir/controller.js +38 -0
  148. package/lib/types/client/sidebar/panels/memoir/cwd.d.ts +80 -0
  149. package/lib/types/client/sidebar/panels/memoir/cwd.d.ts.map +1 -0
  150. package/lib/types/client/sidebar/panels/memoir/cwd.js +96 -0
  151. package/lib/types/client/sidebar/panels/memoir/i18n.d.ts +21 -0
  152. package/lib/types/client/sidebar/panels/memoir/i18n.d.ts.map +1 -0
  153. package/lib/types/client/sidebar/panels/memoir/i18n.js +288 -0
  154. package/lib/types/client/sidebar/panels/memoir/panel-activation.d.ts +11 -0
  155. package/lib/types/client/sidebar/panels/memoir/panel-activation.d.ts.map +1 -0
  156. package/lib/types/client/sidebar/panels/memoir/panel-activation.js +37 -0
  157. package/lib/types/client/sidebar/panels/memoir/panel.d.ts +26 -0
  158. package/lib/types/client/sidebar/panels/memoir/panel.d.ts.map +1 -0
  159. package/lib/types/client/sidebar/panels/memoir/panel.js +423 -0
  160. package/lib/types/client/sidebar/panels/memoir/styles.d.ts +22 -0
  161. package/lib/types/client/sidebar/panels/memoir/styles.d.ts.map +1 -0
  162. package/lib/types/client/sidebar/panels/memoir/styles.js +774 -0
  163. package/lib/types/client/sidebar/panels/memoir/types.d.ts +7 -0
  164. package/lib/types/client/sidebar/panels/memoir/types.d.ts.map +1 -0
  165. package/lib/types/client/sidebar/panels/memoir/types.js +5 -0
  166. package/lib/types/client/sidebar/panels/ssh/ClusterTab.d.ts +8 -0
  167. package/lib/types/client/sidebar/panels/ssh/ClusterTab.d.ts.map +1 -0
  168. package/lib/types/client/sidebar/panels/ssh/ClusterTab.js +53 -0
  169. package/lib/types/client/sidebar/panels/ssh/HostFormDialog.d.ts +13 -0
  170. package/lib/types/client/sidebar/panels/ssh/HostFormDialog.d.ts.map +1 -0
  171. package/lib/types/client/sidebar/panels/ssh/HostFormDialog.js +110 -0
  172. package/lib/types/client/sidebar/panels/ssh/HostsTab.d.ts +26 -0
  173. package/lib/types/client/sidebar/panels/ssh/HostsTab.d.ts.map +1 -0
  174. package/lib/types/client/sidebar/panels/ssh/HostsTab.js +175 -0
  175. package/lib/types/client/sidebar/panels/ssh/SshPanel.d.ts +14 -0
  176. package/lib/types/client/sidebar/panels/ssh/SshPanel.d.ts.map +1 -0
  177. package/lib/types/client/sidebar/panels/ssh/SshPanel.js +34 -0
  178. package/lib/types/client/sidebar/panels/ssh/TerminalTab.d.ts +18 -0
  179. package/lib/types/client/sidebar/panels/ssh/TerminalTab.d.ts.map +1 -0
  180. package/lib/types/client/sidebar/panels/ssh/TerminalTab.js +207 -0
  181. package/lib/types/client/sidebar/panels/ssh/TransferTab.d.ts +8 -0
  182. package/lib/types/client/sidebar/panels/ssh/TransferTab.d.ts.map +1 -0
  183. package/lib/types/client/sidebar/panels/ssh/TransferTab.js +168 -0
  184. package/lib/types/client/sidebar/panels/ssh/TunnelsTab.d.ts +18 -0
  185. package/lib/types/client/sidebar/panels/ssh/TunnelsTab.d.ts.map +1 -0
  186. package/lib/types/client/sidebar/panels/ssh/TunnelsTab.js +161 -0
  187. package/lib/types/client/sidebar/panels/ssh/api.d.ts +80 -0
  188. package/lib/types/client/sidebar/panels/ssh/api.d.ts.map +1 -0
  189. package/lib/types/client/sidebar/panels/ssh/api.js +333 -0
  190. package/lib/types/client/sidebar/panels/ssh/controller.d.ts +23 -0
  191. package/lib/types/client/sidebar/panels/ssh/controller.d.ts.map +1 -0
  192. package/lib/types/client/sidebar/panels/ssh/controller.js +41 -0
  193. package/lib/types/client/sidebar/panels/ssh/helpers.d.ts +44 -0
  194. package/lib/types/client/sidebar/panels/ssh/helpers.d.ts.map +1 -0
  195. package/lib/types/client/sidebar/panels/ssh/helpers.js +53 -0
  196. package/lib/types/client/sidebar/panels/ssh/locales.d.ts +155 -0
  197. package/lib/types/client/sidebar/panels/ssh/locales.d.ts.map +1 -0
  198. package/lib/types/client/sidebar/panels/ssh/locales.js +312 -0
  199. package/lib/types/client/sidebar/panels/ssh/xterm.css.d.ts +3 -0
  200. package/lib/types/client/sidebar/panels/ssh/xterm.css.d.ts.map +1 -0
  201. package/lib/types/client/sidebar/panels/ssh/xterm.css.js +2 -0
  202. package/lib/types/client/sidebar/right-pane-i18n.d.ts +121 -0
  203. package/lib/types/client/sidebar/right-pane-i18n.d.ts.map +1 -0
  204. package/lib/types/client/sidebar/right-pane-i18n.js +239 -0
  205. package/lib/types/client/sidebar/right-pane.d.ts +27 -0
  206. package/lib/types/client/sidebar/right-pane.d.ts.map +1 -0
  207. package/lib/types/client/sidebar/right-pane.js +112 -0
  208. package/lib/types/client/sidebar/scope.d.ts +17 -0
  209. package/lib/types/client/sidebar/scope.d.ts.map +1 -0
  210. package/lib/types/client/sidebar/scope.js +41 -0
  211. package/lib/types/client/trust.d.ts +78 -0
  212. package/lib/types/client/trust.d.ts.map +1 -0
  213. package/lib/types/client/trust.js +130 -0
  214. package/lib/types/client/ui-icons.d.ts +19 -0
  215. package/lib/types/client/ui-icons.d.ts.map +1 -0
  216. package/lib/types/client/ui-icons.js +33 -0
  217. package/lib/types/core/git-graph/commands.d.ts +36 -0
  218. package/lib/types/core/git-graph/commands.d.ts.map +1 -0
  219. package/lib/types/core/git-graph/commands.js +122 -0
  220. package/lib/types/core/git-graph/protocol.d.ts +104 -0
  221. package/lib/types/core/git-graph/protocol.d.ts.map +1 -0
  222. package/lib/types/core/git-graph/protocol.js +142 -0
  223. package/lib/types/core/index.d.ts +3 -0
  224. package/lib/types/core/index.d.ts.map +1 -0
  225. package/lib/types/core/index.js +2 -0
  226. package/lib/types/core/lark-inbox/gating.d.ts +21 -0
  227. package/lib/types/core/lark-inbox/gating.d.ts.map +1 -0
  228. package/lib/types/core/lark-inbox/gating.js +17 -0
  229. package/lib/types/core/lark-inbox/queue.d.ts +27 -0
  230. package/lib/types/core/lark-inbox/queue.d.ts.map +1 -0
  231. package/lib/types/core/lark-inbox/queue.js +78 -0
  232. package/lib/types/core/memoir/protocol.d.ts +42 -0
  233. package/lib/types/core/memoir/protocol.d.ts.map +1 -0
  234. package/lib/types/core/memoir/protocol.js +8 -0
  235. package/lib/types/core/no-browser-auth/contract.d.ts +22 -0
  236. package/lib/types/core/no-browser-auth/contract.d.ts.map +1 -0
  237. package/lib/types/core/no-browser-auth/contract.js +9 -0
  238. package/lib/types/core/notify/contract.d.ts +133 -0
  239. package/lib/types/core/notify/contract.d.ts.map +1 -0
  240. package/lib/types/core/notify/contract.js +186 -0
  241. package/lib/types/core/notify/feed.d.ts +116 -0
  242. package/lib/types/core/notify/feed.d.ts.map +1 -0
  243. package/lib/types/core/notify/feed.js +214 -0
  244. package/lib/types/core/playwright-sessions/contracts.d.ts +98 -0
  245. package/lib/types/core/playwright-sessions/contracts.d.ts.map +1 -0
  246. package/lib/types/core/playwright-sessions/contracts.js +68 -0
  247. package/lib/types/core/playwright-sessions/control.d.ts +19 -0
  248. package/lib/types/core/playwright-sessions/control.d.ts.map +1 -0
  249. package/lib/types/core/playwright-sessions/control.js +9 -0
  250. package/lib/types/core/playwright-sessions/index.d.ts +4 -0
  251. package/lib/types/core/playwright-sessions/index.d.ts.map +1 -0
  252. package/lib/types/core/playwright-sessions/index.js +3 -0
  253. package/lib/types/core/playwright-sessions/names.d.ts +4 -0
  254. package/lib/types/core/playwright-sessions/names.d.ts.map +1 -0
  255. package/lib/types/core/playwright-sessions/names.js +84 -0
  256. package/lib/types/core/playwright-sessions/schema.d.ts +4 -0
  257. package/lib/types/core/playwright-sessions/schema.d.ts.map +1 -0
  258. package/lib/types/core/playwright-sessions/schema.js +90 -0
  259. package/lib/types/core/playwright-sessions/wire.d.ts +78 -0
  260. package/lib/types/core/playwright-sessions/wire.d.ts.map +1 -0
  261. package/lib/types/core/playwright-sessions/wire.js +103 -0
  262. package/lib/types/core/remote-access/paths.d.ts +19 -0
  263. package/lib/types/core/remote-access/paths.d.ts.map +1 -0
  264. package/lib/types/core/remote-access/paths.js +18 -0
  265. package/lib/types/core/remote-web-ui/security.d.ts +35 -0
  266. package/lib/types/core/remote-web-ui/security.d.ts.map +1 -0
  267. package/lib/types/core/remote-web-ui/security.js +146 -0
  268. package/lib/types/core/right-pane/protocol.d.ts +25 -0
  269. package/lib/types/core/right-pane/protocol.d.ts.map +1 -0
  270. package/lib/types/core/right-pane/protocol.js +91 -0
  271. package/lib/types/core/schedule-mode/index.d.ts +7 -0
  272. package/lib/types/core/schedule-mode/index.d.ts.map +1 -0
  273. package/lib/types/core/schedule-mode/index.js +6 -0
  274. package/lib/types/core/schedule-mode/native.d.ts +35 -0
  275. package/lib/types/core/schedule-mode/native.d.ts.map +1 -0
  276. package/lib/types/core/schedule-mode/native.js +82 -0
  277. package/lib/types/core/schedule-mode/types.d.ts +177 -0
  278. package/lib/types/core/schedule-mode/types.d.ts.map +1 -0
  279. package/lib/types/core/schedule-mode/types.js +65 -0
  280. package/lib/types/core/schedule-mode/view.d.ts +62 -0
  281. package/lib/types/core/schedule-mode/view.d.ts.map +1 -0
  282. package/lib/types/core/schedule-mode/view.js +4 -0
  283. package/lib/types/core/ssh/protocol.d.ts +215 -0
  284. package/lib/types/core/ssh/protocol.d.ts.map +1 -0
  285. package/lib/types/core/ssh/protocol.js +23 -0
  286. package/lib/types/core/subagent-model/badges.d.ts +73 -0
  287. package/lib/types/core/subagent-model/badges.d.ts.map +1 -0
  288. package/lib/types/core/subagent-model/badges.js +105 -0
  289. package/lib/types/core/subagent-model/model-resolver.d.ts +25 -0
  290. package/lib/types/core/subagent-model/model-resolver.d.ts.map +1 -0
  291. package/lib/types/core/subagent-model/model-resolver.js +60 -0
  292. package/lib/types/core/worktree/invariant.d.ts +62 -0
  293. package/lib/types/core/worktree/invariant.d.ts.map +1 -0
  294. package/lib/types/core/worktree/invariant.js +72 -0
  295. package/lib/types/core/worktree/manifest.d.ts +71 -0
  296. package/lib/types/core/worktree/manifest.d.ts.map +1 -0
  297. package/lib/types/core/worktree/manifest.js +98 -0
  298. package/lib/types/core/worktree/paths.d.ts +60 -0
  299. package/lib/types/core/worktree/paths.d.ts.map +1 -0
  300. package/lib/types/core/worktree/paths.js +118 -0
  301. package/lib/types/core/worktree/pr-create.d.ts +67 -0
  302. package/lib/types/core/worktree/pr-create.d.ts.map +1 -0
  303. package/lib/types/core/worktree/pr-create.js +118 -0
  304. package/lib/types/core/worktree/protocol.d.ts +7 -0
  305. package/lib/types/core/worktree/protocol.d.ts.map +1 -0
  306. package/lib/types/core/worktree/protocol.js +6 -0
  307. package/lib/types/core/worktree/types.d.ts +292 -0
  308. package/lib/types/core/worktree/types.d.ts.map +1 -0
  309. package/lib/types/core/worktree/types.js +14 -0
  310. package/lib/types/core/worktree/workspace-model.d.ts +56 -0
  311. package/lib/types/core/worktree/workspace-model.d.ts.map +1 -0
  312. package/lib/types/core/worktree/workspace-model.js +14 -0
  313. package/lib/types/host/services/access-trust/index.d.ts +54 -0
  314. package/lib/types/host/services/access-trust/index.d.ts.map +1 -0
  315. package/lib/types/host/services/access-trust/index.js +82 -0
  316. package/lib/types/host/services/access-trust/trust.d.ts +70 -0
  317. package/lib/types/host/services/access-trust/trust.d.ts.map +1 -0
  318. package/lib/types/host/services/access-trust/trust.js +187 -0
  319. package/lib/types/host/services/codex-bridge/bridge.d.ts +106 -0
  320. package/lib/types/host/services/codex-bridge/bridge.d.ts.map +1 -0
  321. package/lib/types/host/services/codex-bridge/bridge.js +321 -0
  322. package/lib/types/host/services/codex-bridge/codex-auth.d.ts +108 -0
  323. package/lib/types/host/services/codex-bridge/codex-auth.d.ts.map +1 -0
  324. package/lib/types/host/services/codex-bridge/codex-auth.js +241 -0
  325. package/lib/types/host/services/codex-bridge/dsh-integration.d.ts +58 -0
  326. package/lib/types/host/services/codex-bridge/dsh-integration.d.ts.map +1 -0
  327. package/lib/types/host/services/codex-bridge/dsh-integration.js +120 -0
  328. package/lib/types/host/services/codex-bridge/http.d.ts +43 -0
  329. package/lib/types/host/services/codex-bridge/http.d.ts.map +1 -0
  330. package/lib/types/host/services/codex-bridge/http.js +92 -0
  331. package/lib/types/host/services/codex-bridge/index.d.ts +63 -0
  332. package/lib/types/host/services/codex-bridge/index.d.ts.map +1 -0
  333. package/lib/types/host/services/codex-bridge/index.js +111 -0
  334. package/lib/types/host/services/codex-bridge/loopback.d.ts +25 -0
  335. package/lib/types/host/services/codex-bridge/loopback.d.ts.map +1 -0
  336. package/lib/types/host/services/codex-bridge/loopback.js +68 -0
  337. package/lib/types/host/services/codex-bridge/routes.d.ts +31 -0
  338. package/lib/types/host/services/codex-bridge/routes.d.ts.map +1 -0
  339. package/lib/types/host/services/codex-bridge/routes.js +126 -0
  340. package/lib/types/host/services/family-config.d.ts +71 -0
  341. package/lib/types/host/services/family-config.d.ts.map +1 -0
  342. package/lib/types/host/services/family-config.js +166 -0
  343. package/lib/types/host/services/family-namespaces.d.ts +24 -0
  344. package/lib/types/host/services/family-namespaces.d.ts.map +1 -0
  345. package/lib/types/host/services/family-namespaces.js +30 -0
  346. package/lib/types/host/services/git-graph/index.d.ts +6 -0
  347. package/lib/types/host/services/git-graph/index.d.ts.map +1 -0
  348. package/lib/types/host/services/git-graph/index.js +7 -0
  349. package/lib/types/host/services/git-graph/routes.d.ts +4 -0
  350. package/lib/types/host/services/git-graph/routes.d.ts.map +1 -0
  351. package/lib/types/host/services/git-graph/routes.js +241 -0
  352. package/lib/types/host/services/git-graph/service.d.ts +52 -0
  353. package/lib/types/host/services/git-graph/service.d.ts.map +1 -0
  354. package/lib/types/host/services/git-graph/service.js +301 -0
  355. package/lib/types/host/services/index.d.ts +23 -0
  356. package/lib/types/host/services/index.d.ts.map +1 -0
  357. package/lib/types/host/services/index.js +80 -0
  358. package/lib/types/host/services/lark-inbox/config.d.ts +24 -0
  359. package/lib/types/host/services/lark-inbox/config.d.ts.map +1 -0
  360. package/lib/types/host/services/lark-inbox/config.js +48 -0
  361. package/lib/types/host/services/lark-inbox/gateway.d.ts +53 -0
  362. package/lib/types/host/services/lark-inbox/gateway.d.ts.map +1 -0
  363. package/lib/types/host/services/lark-inbox/gateway.js +171 -0
  364. package/lib/types/host/services/lark-inbox/host-routes.d.ts +22 -0
  365. package/lib/types/host/services/lark-inbox/host-routes.d.ts.map +1 -0
  366. package/lib/types/host/services/lark-inbox/host-routes.js +146 -0
  367. package/lib/types/host/services/lark-inbox/inbox-store.d.ts +39 -0
  368. package/lib/types/host/services/lark-inbox/inbox-store.d.ts.map +1 -0
  369. package/lib/types/host/services/lark-inbox/inbox-store.js +124 -0
  370. package/lib/types/host/services/lark-inbox/index.d.ts +26 -0
  371. package/lib/types/host/services/lark-inbox/index.d.ts.map +1 -0
  372. package/lib/types/host/services/lark-inbox/index.js +135 -0
  373. package/lib/types/host/services/lark-inbox/tools.d.ts +7 -0
  374. package/lib/types/host/services/lark-inbox/tools.d.ts.map +1 -0
  375. package/lib/types/host/services/lark-inbox/tools.js +119 -0
  376. package/lib/types/host/services/lark-inbox/wizard.d.ts +62 -0
  377. package/lib/types/host/services/lark-inbox/wizard.d.ts.map +1 -0
  378. package/lib/types/host/services/lark-inbox/wizard.js +211 -0
  379. package/lib/types/host/services/lifecycle.d.ts +29 -0
  380. package/lib/types/host/services/lifecycle.d.ts.map +1 -0
  381. package/lib/types/host/services/lifecycle.js +93 -0
  382. package/lib/types/host/services/memoir/index.d.ts +40 -0
  383. package/lib/types/host/services/memoir/index.d.ts.map +1 -0
  384. package/lib/types/host/services/memoir/index.js +52 -0
  385. package/lib/types/host/services/memoir/routes.d.ts +30 -0
  386. package/lib/types/host/services/memoir/routes.d.ts.map +1 -0
  387. package/lib/types/host/services/memoir/routes.js +364 -0
  388. package/lib/types/host/services/memoir/settings.d.ts +27 -0
  389. package/lib/types/host/services/memoir/settings.d.ts.map +1 -0
  390. package/lib/types/host/services/memoir/settings.js +120 -0
  391. package/lib/types/host/services/memoir/store.d.ts +35 -0
  392. package/lib/types/host/services/memoir/store.d.ts.map +1 -0
  393. package/lib/types/host/services/memoir/store.js +124 -0
  394. package/lib/types/host/services/memoir/tools.d.ts +8 -0
  395. package/lib/types/host/services/memoir/tools.d.ts.map +1 -0
  396. package/lib/types/host/services/memoir/tools.js +154 -0
  397. package/lib/types/host/services/no-browser-auth/index.d.ts +25 -0
  398. package/lib/types/host/services/no-browser-auth/index.d.ts.map +1 -0
  399. package/lib/types/host/services/no-browser-auth/index.js +42 -0
  400. package/lib/types/host/services/notify/config.d.ts +105 -0
  401. package/lib/types/host/services/notify/config.d.ts.map +1 -0
  402. package/lib/types/host/services/notify/config.js +123 -0
  403. package/lib/types/host/services/notify/feishu-sender.d.ts +120 -0
  404. package/lib/types/host/services/notify/feishu-sender.d.ts.map +1 -0
  405. package/lib/types/host/services/notify/feishu-sender.js +186 -0
  406. package/lib/types/host/services/notify/host-routes.d.ts +69 -0
  407. package/lib/types/host/services/notify/host-routes.d.ts.map +1 -0
  408. package/lib/types/host/services/notify/host-routes.js +112 -0
  409. package/lib/types/host/services/notify/index.d.ts +80 -0
  410. package/lib/types/host/services/notify/index.d.ts.map +1 -0
  411. package/lib/types/host/services/notify/index.js +263 -0
  412. package/lib/types/host/services/playwright-sessions/child.d.ts +76 -0
  413. package/lib/types/host/services/playwright-sessions/child.d.ts.map +1 -0
  414. package/lib/types/host/services/playwright-sessions/child.js +197 -0
  415. package/lib/types/host/services/playwright-sessions/controller.d.ts +25 -0
  416. package/lib/types/host/services/playwright-sessions/controller.d.ts.map +1 -0
  417. package/lib/types/host/services/playwright-sessions/controller.js +104 -0
  418. package/lib/types/host/services/playwright-sessions/index.d.ts +6 -0
  419. package/lib/types/host/services/playwright-sessions/index.d.ts.map +1 -0
  420. package/lib/types/host/services/playwright-sessions/index.js +161 -0
  421. package/lib/types/host/services/playwright-sessions/live-view.d.ts +32 -0
  422. package/lib/types/host/services/playwright-sessions/live-view.d.ts.map +1 -0
  423. package/lib/types/host/services/playwright-sessions/live-view.js +188 -0
  424. package/lib/types/host/services/playwright-sessions/manager.d.ts +87 -0
  425. package/lib/types/host/services/playwright-sessions/manager.d.ts.map +1 -0
  426. package/lib/types/host/services/playwright-sessions/manager.js +203 -0
  427. package/lib/types/host/services/playwright-sessions/profile-gc.d.ts +39 -0
  428. package/lib/types/host/services/playwright-sessions/profile-gc.d.ts.map +1 -0
  429. package/lib/types/host/services/playwright-sessions/profile-gc.js +72 -0
  430. package/lib/types/host/services/playwright-sessions/routes.d.ts +18 -0
  431. package/lib/types/host/services/playwright-sessions/routes.d.ts.map +1 -0
  432. package/lib/types/host/services/playwright-sessions/routes.js +87 -0
  433. package/lib/types/host/services/remote-access/boot-scripts.d.ts +55 -0
  434. package/lib/types/host/services/remote-access/boot-scripts.d.ts.map +1 -0
  435. package/lib/types/host/services/remote-access/boot-scripts.js +109 -0
  436. package/lib/types/host/services/remote-access/index.d.ts +28 -0
  437. package/lib/types/host/services/remote-access/index.d.ts.map +1 -0
  438. package/lib/types/host/services/remote-access/index.js +47 -0
  439. package/lib/types/host/services/remote-access/routes.d.ts +42 -0
  440. package/lib/types/host/services/remote-access/routes.d.ts.map +1 -0
  441. package/lib/types/host/services/remote-access/routes.js +119 -0
  442. package/lib/types/host/services/remote-web-ui/index.d.ts +21 -0
  443. package/lib/types/host/services/remote-web-ui/index.d.ts.map +1 -0
  444. package/lib/types/host/services/remote-web-ui/index.js +325 -0
  445. package/lib/types/host/services/remote-web-ui/server-mode/accounts.d.ts +115 -0
  446. package/lib/types/host/services/remote-web-ui/server-mode/accounts.d.ts.map +1 -0
  447. package/lib/types/host/services/remote-web-ui/server-mode/accounts.js +396 -0
  448. package/lib/types/host/services/remote-web-ui/server-mode/cookie.d.ts +28 -0
  449. package/lib/types/host/services/remote-web-ui/server-mode/cookie.d.ts.map +1 -0
  450. package/lib/types/host/services/remote-web-ui/server-mode/cookie.js +48 -0
  451. package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.d.ts +17 -0
  452. package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.d.ts.map +1 -0
  453. package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.js +40 -0
  454. package/lib/types/host/services/remote-web-ui/server-mode/external-auth.d.ts +73 -0
  455. package/lib/types/host/services/remote-web-ui/server-mode/external-auth.d.ts.map +1 -0
  456. package/lib/types/host/services/remote-web-ui/server-mode/external-auth.js +242 -0
  457. package/lib/types/host/services/remote-web-ui/server-mode/fence.d.ts +23 -0
  458. package/lib/types/host/services/remote-web-ui/server-mode/fence.d.ts.map +1 -0
  459. package/lib/types/host/services/remote-web-ui/server-mode/fence.js +24 -0
  460. package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.d.ts +89 -0
  461. package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.d.ts.map +1 -0
  462. package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.js +768 -0
  463. package/lib/types/host/services/remote-web-ui/server-mode/gateway.d.ts +99 -0
  464. package/lib/types/host/services/remote-web-ui/server-mode/gateway.d.ts.map +1 -0
  465. package/lib/types/host/services/remote-web-ui/server-mode/gateway.js +679 -0
  466. package/lib/types/host/services/remote-web-ui/server-mode/http.d.ts +43 -0
  467. package/lib/types/host/services/remote-web-ui/server-mode/http.d.ts.map +1 -0
  468. package/lib/types/host/services/remote-web-ui/server-mode/http.js +92 -0
  469. package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.d.ts +42 -0
  470. package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.d.ts.map +1 -0
  471. package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.js +73 -0
  472. package/lib/types/host/services/remote-web-ui/server-mode/lan.d.ts +13 -0
  473. package/lib/types/host/services/remote-web-ui/server-mode/lan.d.ts.map +1 -0
  474. package/lib/types/host/services/remote-web-ui/server-mode/lan.js +17 -0
  475. package/lib/types/host/services/remote-web-ui/server-mode/loopback.d.ts +25 -0
  476. package/lib/types/host/services/remote-web-ui/server-mode/loopback.d.ts.map +1 -0
  477. package/lib/types/host/services/remote-web-ui/server-mode/loopback.js +68 -0
  478. package/lib/types/host/services/remote-web-ui/server-mode/posture.d.ts +75 -0
  479. package/lib/types/host/services/remote-web-ui/server-mode/posture.d.ts.map +1 -0
  480. package/lib/types/host/services/remote-web-ui/server-mode/posture.js +116 -0
  481. package/lib/types/host/services/remote-web-ui/server-mode/roles.d.ts +44 -0
  482. package/lib/types/host/services/remote-web-ui/server-mode/roles.d.ts.map +1 -0
  483. package/lib/types/host/services/remote-web-ui/server-mode/roles.js +47 -0
  484. package/lib/types/host/services/remote-web-ui/server-mode/server-boot.d.ts +21 -0
  485. package/lib/types/host/services/remote-web-ui/server-mode/server-boot.d.ts.map +1 -0
  486. package/lib/types/host/services/remote-web-ui/server-mode/server-boot.js +37 -0
  487. package/lib/types/host/services/remote-web-ui/server-mode/sessions.d.ts +111 -0
  488. package/lib/types/host/services/remote-web-ui/server-mode/sessions.d.ts.map +1 -0
  489. package/lib/types/host/services/remote-web-ui/server-mode/sessions.js +298 -0
  490. package/lib/types/host/services/remote-web-ui/server.d.ts +82 -0
  491. package/lib/types/host/services/remote-web-ui/server.d.ts.map +1 -0
  492. package/lib/types/host/services/remote-web-ui/server.js +492 -0
  493. package/lib/types/host/services/resources.d.ts +9 -0
  494. package/lib/types/host/services/resources.d.ts.map +1 -0
  495. package/lib/types/host/services/resources.js +98 -0
  496. package/lib/types/host/services/right-pane/browser.d.ts +42 -0
  497. package/lib/types/host/services/right-pane/browser.d.ts.map +1 -0
  498. package/lib/types/host/services/right-pane/browser.js +106 -0
  499. package/lib/types/host/services/right-pane/index.d.ts +22 -0
  500. package/lib/types/host/services/right-pane/index.d.ts.map +1 -0
  501. package/lib/types/host/services/right-pane/index.js +114 -0
  502. package/lib/types/host/services/right-pane/wire.d.ts +6 -0
  503. package/lib/types/host/services/right-pane/wire.d.ts.map +1 -0
  504. package/lib/types/host/services/right-pane/wire.js +9 -0
  505. package/lib/types/host/services/schedule-mode/config.d.ts +11 -0
  506. package/lib/types/host/services/schedule-mode/config.d.ts.map +1 -0
  507. package/lib/types/host/services/schedule-mode/config.js +15 -0
  508. package/lib/types/host/services/schedule-mode/engine.d.ts +150 -0
  509. package/lib/types/host/services/schedule-mode/engine.d.ts.map +1 -0
  510. package/lib/types/host/services/schedule-mode/engine.js +672 -0
  511. package/lib/types/host/services/schedule-mode/index.d.ts +33 -0
  512. package/lib/types/host/services/schedule-mode/index.d.ts.map +1 -0
  513. package/lib/types/host/services/schedule-mode/index.js +175 -0
  514. package/lib/types/host/services/schedule-mode/routes.d.ts +31 -0
  515. package/lib/types/host/services/schedule-mode/routes.d.ts.map +1 -0
  516. package/lib/types/host/services/schedule-mode/routes.js +109 -0
  517. package/lib/types/host/services/schedule-mode/session-create.d.ts +27 -0
  518. package/lib/types/host/services/schedule-mode/session-create.d.ts.map +1 -0
  519. package/lib/types/host/services/schedule-mode/session-create.js +21 -0
  520. package/lib/types/host/services/schedule-mode/store.d.ts +36 -0
  521. package/lib/types/host/services/schedule-mode/store.d.ts.map +1 -0
  522. package/lib/types/host/services/schedule-mode/store.js +309 -0
  523. package/lib/types/host/services/schedule-mode/tools.d.ts +13 -0
  524. package/lib/types/host/services/schedule-mode/tools.d.ts.map +1 -0
  525. package/lib/types/host/services/schedule-mode/tools.js +132 -0
  526. package/lib/types/host/services/ssh/engine.d.ts +162 -0
  527. package/lib/types/host/services/ssh/engine.d.ts.map +1 -0
  528. package/lib/types/host/services/ssh/engine.js +699 -0
  529. package/lib/types/host/services/ssh/host-keys.d.ts +10 -0
  530. package/lib/types/host/services/ssh/host-keys.d.ts.map +1 -0
  531. package/lib/types/host/services/ssh/host-keys.js +108 -0
  532. package/lib/types/host/services/ssh/index.d.ts +38 -0
  533. package/lib/types/host/services/ssh/index.d.ts.map +1 -0
  534. package/lib/types/host/services/ssh/index.js +47 -0
  535. package/lib/types/host/services/ssh/routes.d.ts +29 -0
  536. package/lib/types/host/services/ssh/routes.d.ts.map +1 -0
  537. package/lib/types/host/services/ssh/routes.js +465 -0
  538. package/lib/types/host/services/ssh/store.d.ts +40 -0
  539. package/lib/types/host/services/ssh/store.d.ts.map +1 -0
  540. package/lib/types/host/services/ssh/store.js +330 -0
  541. package/lib/types/host/services/ssh/terminal-ws.d.ts +9 -0
  542. package/lib/types/host/services/ssh/terminal-ws.d.ts.map +1 -0
  543. package/lib/types/host/services/ssh/terminal-ws.js +142 -0
  544. package/lib/types/host/services/ssh/tools.d.ts +11 -0
  545. package/lib/types/host/services/ssh/tools.d.ts.map +1 -0
  546. package/lib/types/host/services/ssh/tools.js +270 -0
  547. package/lib/types/host/services/web-render/contracts.d.ts +93 -0
  548. package/lib/types/host/services/web-render/contracts.d.ts.map +1 -0
  549. package/lib/types/host/services/web-render/contracts.js +60 -0
  550. package/lib/types/host/services/web-render/index.d.ts +58 -0
  551. package/lib/types/host/services/web-render/index.d.ts.map +1 -0
  552. package/lib/types/host/services/web-render/index.js +90 -0
  553. package/lib/types/host/services/web-render/provider.d.ts +37 -0
  554. package/lib/types/host/services/web-render/provider.d.ts.map +1 -0
  555. package/lib/types/host/services/web-render/provider.js +274 -0
  556. package/lib/types/host/services/web-search-anthropic/contracts.d.ts +117 -0
  557. package/lib/types/host/services/web-search-anthropic/contracts.d.ts.map +1 -0
  558. package/lib/types/host/services/web-search-anthropic/contracts.js +90 -0
  559. package/lib/types/host/services/web-search-anthropic/index.d.ts +53 -0
  560. package/lib/types/host/services/web-search-anthropic/index.d.ts.map +1 -0
  561. package/lib/types/host/services/web-search-anthropic/index.js +123 -0
  562. package/lib/types/host/services/web-search-anthropic/provider.d.ts +101 -0
  563. package/lib/types/host/services/web-search-anthropic/provider.d.ts.map +1 -0
  564. package/lib/types/host/services/web-search-anthropic/provider.js +237 -0
  565. package/lib/types/host/services/web-search-kaon/contracts.d.ts +114 -0
  566. package/lib/types/host/services/web-search-kaon/contracts.d.ts.map +1 -0
  567. package/lib/types/host/services/web-search-kaon/contracts.js +73 -0
  568. package/lib/types/host/services/web-search-kaon/index.d.ts +50 -0
  569. package/lib/types/host/services/web-search-kaon/index.d.ts.map +1 -0
  570. package/lib/types/host/services/web-search-kaon/index.js +114 -0
  571. package/lib/types/host/services/web-search-kaon/provider.d.ts +111 -0
  572. package/lib/types/host/services/web-search-kaon/provider.d.ts.map +1 -0
  573. package/lib/types/host/services/web-search-kaon/provider.js +244 -0
  574. package/lib/types/host/services/worktree/git-runner.d.ts +82 -0
  575. package/lib/types/host/services/worktree/git-runner.d.ts.map +1 -0
  576. package/lib/types/host/services/worktree/git-runner.js +81 -0
  577. package/lib/types/host/services/worktree/git.d.ts +94 -0
  578. package/lib/types/host/services/worktree/git.d.ts.map +1 -0
  579. package/lib/types/host/services/worktree/git.js +153 -0
  580. package/lib/types/host/services/worktree/http.d.ts +12 -0
  581. package/lib/types/host/services/worktree/http.d.ts.map +1 -0
  582. package/lib/types/host/services/worktree/http.js +34 -0
  583. package/lib/types/host/services/worktree/index.d.ts +38 -0
  584. package/lib/types/host/services/worktree/index.d.ts.map +1 -0
  585. package/lib/types/host/services/worktree/index.js +78 -0
  586. package/lib/types/host/services/worktree/lane-tool.d.ts +22 -0
  587. package/lib/types/host/services/worktree/lane-tool.d.ts.map +1 -0
  588. package/lib/types/host/services/worktree/lane-tool.js +92 -0
  589. package/lib/types/host/services/worktree/manager.d.ts +410 -0
  590. package/lib/types/host/services/worktree/manager.d.ts.map +1 -0
  591. package/lib/types/host/services/worktree/manager.js +1485 -0
  592. package/lib/types/host/services/worktree/model-override.d.ts +20 -0
  593. package/lib/types/host/services/worktree/model-override.d.ts.map +1 -0
  594. package/lib/types/host/services/worktree/model-override.js +35 -0
  595. package/lib/types/host/services/worktree/routes.d.ts +50 -0
  596. package/lib/types/host/services/worktree/routes.d.ts.map +1 -0
  597. package/lib/types/host/services/worktree/routes.js +695 -0
  598. package/lib/types/host/services/worktree/run-command.d.ts +26 -0
  599. package/lib/types/host/services/worktree/run-command.d.ts.map +1 -0
  600. package/lib/types/host/services/worktree/run-command.js +36 -0
  601. package/lib/types/host/services/worktree/session-lane/manager.d.ts +109 -0
  602. package/lib/types/host/services/worktree/session-lane/manager.d.ts.map +1 -0
  603. package/lib/types/host/services/worktree/session-lane/manager.js +172 -0
  604. package/lib/types/host/services/worktree/workspace-model-routes.d.ts +21 -0
  605. package/lib/types/host/services/worktree/workspace-model-routes.d.ts.map +1 -0
  606. package/lib/types/host/services/worktree/workspace-model-routes.js +198 -0
  607. package/lib/types/host/services/worktree/workspace-model.d.ts +48 -0
  608. package/lib/types/host/services/worktree/workspace-model.d.ts.map +1 -0
  609. package/lib/types/host/services/worktree/workspace-model.js +113 -0
  610. package/lib/types/index.d.ts +47 -0
  611. package/lib/types/index.d.ts.map +1 -0
  612. package/lib/types/index.js +52 -0
  613. package/lib/types/invariant.d.ts +4 -0
  614. package/lib/types/invariant.d.ts.map +1 -0
  615. package/lib/types/invariant.js +3 -0
  616. package/package.json +153 -3
  617. package/presets/code-vibe/THIRD_PARTY_NOTICES.md +55 -0
  618. package/presets/code-vibe/skills/UPSTREAM.md +104 -0
  619. package/presets/code-vibe/skills/agent-experience/SKILL.md +15 -0
  620. package/presets/code-vibe/skills/agent-operation/SKILL.md +43 -0
  621. package/presets/code-vibe/skills/code-review/SKILL.md +45 -0
  622. package/presets/code-vibe/skills/dsh-ci-test-reliability/SKILL.md +133 -0
  623. package/presets/code-vibe/skills/dsh-ci-test-reliability/references/ci-flake-diagnosis.md +60 -0
  624. package/presets/code-vibe/skills/dsh-find-simplifications/SKILL.md +69 -0
  625. package/presets/code-vibe/skills/dsh-find-simplifications/references/historical-patterns.md +45 -0
  626. package/presets/code-vibe/skills/dsh-merging-stacked-prs/SKILL.md +129 -0
  627. package/presets/code-vibe/skills/dsh-prose-standard/SKILL.md +83 -0
  628. package/presets/code-vibe/skills/dsh-prose-standard/references/examples.md +169 -0
  629. package/presets/code-vibe/skills/dsh-speed-up-perf/SKILL.md +94 -0
  630. package/presets/code-vibe/skills/dsh-trim-cot-leakage/SKILL.md +47 -0
  631. package/presets/code-vibe/skills/dsh-trim-cot-leakage/references/examples.md +275 -0
  632. package/presets/code-vibe/skills/dsh-trim-cot-leakage/references/recall-batteries.md +52 -0
  633. package/presets/code-vibe/skills/frontend-design/SKILL.md +60 -0
  634. package/presets/code-vibe/skills/frontend-design/references/critique-format.md +35 -0
  635. package/presets/code-vibe/skills/frontend-design/references/design-standards/LOAD-MAP.md +81 -0
  636. package/presets/code-vibe/skills/frontend-design/references/design-standards/README.md +53 -0
  637. package/presets/code-vibe/skills/frontend-design/references/design-standards/anchor.md +51 -0
  638. package/presets/code-vibe/skills/frontend-design/references/design-standards/audit/ai-tells.md +59 -0
  639. package/presets/code-vibe/skills/frontend-design/references/design-standards/audit/web-interface.md +14 -0
  640. package/presets/code-vibe/skills/frontend-design/references/design-standards/change-control.md +62 -0
  641. package/presets/code-vibe/skills/frontend-design/references/design-standards/copy.md +65 -0
  642. package/presets/code-vibe/skills/frontend-design/references/design-standards/craft-knobs.md +61 -0
  643. package/presets/code-vibe/skills/frontend-design/references/design-standards/debug-playbook.md +37 -0
  644. package/presets/code-vibe/skills/frontend-design/references/design-standards/exemplars/README.md +64 -0
  645. package/presets/code-vibe/skills/frontend-design/references/design-standards/plan-architecture.checklist.json +13 -0
  646. package/presets/code-vibe/skills/frontend-design/references/design-standards/product-judgment.md +113 -0
  647. package/presets/code-vibe/skills/frontend-design/references/design-standards/system-architecture.md +108 -0
  648. package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/README.md +26 -0
  649. package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/color-roles.md +49 -0
  650. package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/motion.md +51 -0
  651. package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/scale.md +89 -0
  652. package/presets/code-vibe/skills/frontend-design/references/design-standards/ui-page-gate.md +61 -0
  653. package/presets/code-vibe/skills/frontend-design/references/design-standards/ui-surface.checklist.json +49 -0
  654. package/presets/code-vibe/skills/frontend-design/references/design-standards/ux.md +76 -0
  655. package/presets/code-vibe/skills/frontend-design/references/design-standards/visual.md +52 -0
  656. package/presets/code-vibe/skills/frontend-design/references/perceptible-path.md +27 -0
  657. package/presets/code-vibe/skills/frontend-design/references/product-package.md +80 -0
  658. package/presets/code-vibe/skills/frontend-design/references/scheme-antipatterns.md +21 -0
  659. package/presets/code-vibe/skills/quality-review/SKILL.md +57 -0
  660. package/presets/code-vibe/skills/quality-review/references/bounded-verify.md +37 -0
  661. package/presets/code-vibe/skills/quality-review/references/browser-verify.md +81 -0
  662. package/presets/code-vibe/skills/quality-review/references/evidence-contract.md +194 -0
  663. package/presets/code-vibe/skills/quality-review/references/falsify-checklist.md +44 -0
  664. package/presets/code-vibe/skills/quality-review/references/human-acceptance-pack.md +68 -0
  665. package/presets/code-vibe/skills/quality-review/references/product-regression.md +51 -0
  666. package/presets/code-vibe/skills/quality-review/references/ux-standards.md +37 -0
  667. package/presets/code-vibe/skills/quality-review/references/ux-walkthrough.md +49 -0
  668. package/presets/code-vibe/skills/quality-review/references/validation-report.md +22 -0
  669. package/presets/code-vibe/skills/quality-review/references/verification-loop.md +95 -0
  670. package/presets/code-vibe/skills/quality-review/references/version-acceptance-matrix.md +131 -0
  671. package/presets/code-vibe/skills/record-browser-gif/SKILL.md +174 -0
  672. package/presets/code-vibe/skills/record-browser-gif/scripts/encode_gif.py +337 -0
  673. package/presets/code-vibe/skills/record-browser-gif/scripts/test_encode_gif.py +103 -0
  674. package/presets/code-vibe/skills/wish-programming/SKILL.md +150 -0
  675. package/presets/code-vibe/skills/wish-programming/references/roles/arch-reviewer.md +26 -0
  676. package/presets/code-vibe/skills/wish-programming/references/roles/design-reviewer.md +32 -0
  677. package/presets/code-vibe/skills/wish-programming/references/roles/pm-reviewer.md +26 -0
  678. package/presets/code-vibe/skills/wish-programming/references/roles/qa-reviewer.md +16 -0
  679. package/presets/code-vibe/skills/wish-programming/references/roles/security-reviewer.md +16 -0
  680. package/presets/code-vibe/skills/wish-programming/references/roles/sre-reviewer.md +16 -0
  681. package/presets/code-vibe/skills/wish-programming/references/roles/ux-adversary.md +16 -0
  682. package/presets/code-vibe/skills/wish-programming/references/templates/arch.md.tpl +51 -0
  683. package/presets/code-vibe/skills/wish-programming/references/templates/brief.md.tpl +36 -0
  684. package/presets/code-vibe/skills/wish-programming/references/templates/confirmation-pack.md +54 -0
  685. package/presets/code-vibe/skills/wish-programming/references/templates/design-spec.md.tpl +49 -0
  686. package/presets/code-vibe/skills/wish-programming/references/templates/module-readme.md +37 -0
  687. package/presets/code-vibe/skills/wish-programming/references/templates/product.md.tpl +74 -0
  688. package/presets/code-vibe/skills/wish-programming/references/templates/requirements.md.tpl +31 -0
  689. package/presets/code-vibe/skills/wish-programming/references/workflow-template.md +122 -0
  690. package/presets/code-vibe/skills/wish-programming/scripts/MANIFEST.sha256 +11 -0
  691. package/presets/code-vibe/skills/wish-programming/scripts/check_spec.py +416 -0
  692. package/presets/code-vibe/skills/wish-programming/scripts/check_whitelist.py +193 -0
  693. package/presets/code-vibe/skills/wish-programming/scripts/coverage_check.py +199 -0
  694. package/presets/code-vibe/skills/wish-programming/scripts/gate-lock.sh +46 -0
  695. package/presets/code-vibe/skills/wish-programming/scripts/journey.sh +281 -0
  696. package/presets/code-vibe/skills/wish-programming/scripts/project.sh +152 -0
  697. package/presets/code-vibe/skills/wish-programming/scripts/replay.sh +65 -0
  698. package/presets/code-vibe/skills/wish-programming/scripts/scan_drift.py +79 -0
  699. package/presets/code-vibe/skills/wish-programming/scripts/verify.sh +169 -0
  700. package/presets/code-vibe/skills/wish-programming/scripts/verify_preset_budgets.py +218 -0
  701. package/presets/code-vibe/skills/wish-programming/scripts/wish.sh +150 -0
  702. package/presets/code-vibe.patch.yml +325 -0
  703. package/presets/hiopen.patch.yml +109 -0
  704. package/src/client/compat.ts +86 -0
  705. package/src/client/conversation/conversation.module.css +264 -0
  706. package/src/client/conversation/git-branch.tsx +152 -0
  707. package/src/client/conversation/git-graph/LICENSE.git-graph +202 -0
  708. package/src/client/conversation/git-graph/api.ts +85 -0
  709. package/src/client/conversation/git-graph/branch-chip.tsx +354 -0
  710. package/src/client/conversation/git-graph/branch-popover.tsx +185 -0
  711. package/src/client/conversation/git-graph/chip.tsx +47 -0
  712. package/src/client/conversation/git-graph/create-branch-dialog.tsx +108 -0
  713. package/src/client/conversation/git-graph/error-copy.ts +50 -0
  714. package/src/client/conversation/git-graph/git-graph.module.css +792 -0
  715. package/src/client/conversation/git-graph/graph-dialog.tsx +196 -0
  716. package/src/client/conversation/git-graph/hero-seat.ts +76 -0
  717. package/src/client/conversation/git-graph/locales.ts +90 -0
  718. package/src/client/conversation/git-graph/sse-leader.ts +124 -0
  719. package/src/client/conversation/index.ts +82 -0
  720. package/src/client/conversation/selector-context.tsx +24 -0
  721. package/src/client/conversation/session-lane-chip.tsx +262 -0
  722. package/src/client/conversation/session-lane-locales.ts +34 -0
  723. package/src/client/conversation/subagent-model-dom.ts +157 -0
  724. package/src/client/conversation/subagent-model.ts +198 -0
  725. package/src/client/conversation/worktree/api.ts +283 -0
  726. package/src/client/conversation/worktree/dialogs/DeleteWorktreeDialog.tsx +111 -0
  727. package/src/client/conversation/worktree/dialogs/PrCreateDialog.tsx +114 -0
  728. package/src/client/conversation/worktree/lane-binding.ts +77 -0
  729. package/src/client/conversation/worktree/lane-menu.tsx +247 -0
  730. package/src/client/conversation/worktree/lane-open.ts +204 -0
  731. package/src/client/conversation/worktree/lane-workspace-sweeper.ts +136 -0
  732. package/src/client/conversation/worktree/lifecycle.ts +75 -0
  733. package/src/client/conversation/worktree/locales.ts +97 -0
  734. package/src/client/conversation/worktree/semantic.ts +10 -0
  735. package/src/client/conversation/worktree/worktree.module.css +70 -0
  736. package/src/client/css-modules.d.ts +8 -0
  737. package/src/client/index.ts +58 -0
  738. package/src/client/lark-inbox/i18n.ts +125 -0
  739. package/src/client/lark-inbox/lark-wizard.module.css +88 -0
  740. package/src/client/lark-inbox/wizard.tsx +211 -0
  741. package/src/client/notify/i18n.ts +93 -0
  742. package/src/client/settings/family-scope.ts +45 -0
  743. package/src/client/settings/lark-inbox.tsx +319 -0
  744. package/src/client/settings/notify.tsx +288 -0
  745. package/src/client/settings/primitives-0.2.ts +148 -0
  746. package/src/client/settings/settings-shell.module.css +56 -0
  747. package/src/client/sidebar/RenderBoundary.tsx +17 -0
  748. package/src/client/sidebar/agent-browser.tsx +114 -0
  749. package/src/client/sidebar/diff-view.tsx +314 -0
  750. package/src/client/sidebar/git-workbench.tsx +700 -0
  751. package/src/client/sidebar/icons.tsx +23 -0
  752. package/src/client/sidebar/index.ts +28 -0
  753. package/src/client/sidebar/native-panels.tsx +149 -0
  754. package/src/client/sidebar/page-shell.module.css +96 -0
  755. package/src/client/sidebar/page-shell.tsx +86 -0
  756. package/src/client/sidebar/panels/memoir/api.ts +300 -0
  757. package/src/client/sidebar/panels/memoir/controller.ts +47 -0
  758. package/src/client/sidebar/panels/memoir/cwd.ts +140 -0
  759. package/src/client/sidebar/panels/memoir/i18n.ts +300 -0
  760. package/src/client/sidebar/panels/memoir/panel-activation.ts +42 -0
  761. package/src/client/sidebar/panels/memoir/panel.tsx +869 -0
  762. package/src/client/sidebar/panels/memoir/styles.ts +776 -0
  763. package/src/client/sidebar/panels/memoir/types.ts +7 -0
  764. package/src/client/sidebar/panels/ssh/ClusterTab.tsx +123 -0
  765. package/src/client/sidebar/panels/ssh/HostFormDialog.tsx +243 -0
  766. package/src/client/sidebar/panels/ssh/HostsTab.tsx +290 -0
  767. package/src/client/sidebar/panels/ssh/SshPanel.tsx +76 -0
  768. package/src/client/sidebar/panels/ssh/TerminalTab.tsx +290 -0
  769. package/src/client/sidebar/panels/ssh/TransferTab.tsx +232 -0
  770. package/src/client/sidebar/panels/ssh/TunnelsTab.tsx +204 -0
  771. package/src/client/sidebar/panels/ssh/api.ts +388 -0
  772. package/src/client/sidebar/panels/ssh/controller.ts +48 -0
  773. package/src/client/sidebar/panels/ssh/helpers.ts +70 -0
  774. package/src/client/sidebar/panels/ssh/locales.ts +318 -0
  775. package/src/client/sidebar/panels/ssh/panel.module.css +801 -0
  776. package/src/client/sidebar/panels/ssh/xterm.css.ts +2 -0
  777. package/src/client/sidebar/right-pane-i18n.ts +243 -0
  778. package/src/client/sidebar/right-pane.tsx +156 -0
  779. package/src/client/sidebar/scope.ts +54 -0
  780. package/src/client/sidebar/sidebar-header.module.css +72 -0
  781. package/src/client/sidebar/sidebar.module.css +619 -0
  782. package/src/client/trust.ts +187 -0
  783. package/src/client/ui-icons.ts +35 -0
  784. package/src/core/git-graph/commands.ts +107 -0
  785. package/src/core/git-graph/protocol.ts +238 -0
  786. package/src/core/index.ts +2 -0
  787. package/src/core/lark-inbox/gating.ts +35 -0
  788. package/src/core/lark-inbox/queue.ts +100 -0
  789. package/src/core/memoir/protocol.ts +46 -0
  790. package/src/core/no-browser-auth/contract.ts +25 -0
  791. package/src/core/notify/contract.ts +236 -0
  792. package/src/core/notify/feed.ts +235 -0
  793. package/src/core/playwright-sessions/contracts.ts +143 -0
  794. package/src/core/playwright-sessions/control.ts +33 -0
  795. package/src/core/playwright-sessions/index.ts +3 -0
  796. package/src/core/playwright-sessions/names.ts +83 -0
  797. package/src/core/playwright-sessions/schema.ts +102 -0
  798. package/src/core/playwright-sessions/wire.ts +142 -0
  799. package/src/core/remote-access/paths.ts +23 -0
  800. package/src/core/remote-web-ui/security.ts +171 -0
  801. package/src/core/right-pane/protocol.ts +94 -0
  802. package/src/core/schedule-mode/index.ts +6 -0
  803. package/src/core/schedule-mode/native.ts +105 -0
  804. package/src/core/schedule-mode/types.ts +182 -0
  805. package/src/core/schedule-mode/view.ts +66 -0
  806. package/src/core/ssh/protocol.ts +212 -0
  807. package/src/core/subagent-model/badges.ts +161 -0
  808. package/src/core/worktree/invariant.ts +101 -0
  809. package/src/core/worktree/manifest.ts +135 -0
  810. package/src/core/worktree/paths.ts +123 -0
  811. package/src/core/worktree/pr-create.ts +157 -0
  812. package/src/core/worktree/protocol.ts +7 -0
  813. package/src/core/worktree/types.ts +317 -0
  814. package/src/core/worktree/workspace-model.ts +61 -0
  815. package/src/host/services/access-trust/index.ts +127 -0
  816. package/src/host/services/access-trust/trust.ts +189 -0
  817. package/src/host/services/codex-bridge/bridge.ts +392 -0
  818. package/src/host/services/codex-bridge/codex-auth.ts +352 -0
  819. package/src/host/services/codex-bridge/dsh-integration.ts +169 -0
  820. package/src/host/services/codex-bridge/http.ts +105 -0
  821. package/src/host/services/codex-bridge/index.ts +154 -0
  822. package/src/host/services/codex-bridge/loopback.ts +63 -0
  823. package/src/host/services/codex-bridge/routes.ts +143 -0
  824. package/src/host/services/family-config.ts +224 -0
  825. package/src/host/services/family-namespaces.ts +39 -0
  826. package/src/host/services/git-graph/index.ts +11 -0
  827. package/src/host/services/git-graph/routes.ts +212 -0
  828. package/src/host/services/git-graph/service.ts +305 -0
  829. package/src/host/services/index.ts +94 -0
  830. package/src/host/services/lark-inbox/config.ts +66 -0
  831. package/src/host/services/lark-inbox/gateway.ts +184 -0
  832. package/src/host/services/lark-inbox/host-routes.ts +113 -0
  833. package/src/host/services/lark-inbox/inbox-store.ts +160 -0
  834. package/src/host/services/lark-inbox/index.ts +141 -0
  835. package/src/host/services/lark-inbox/tools.ts +124 -0
  836. package/src/host/services/lark-inbox/wizard.ts +206 -0
  837. package/src/host/services/lifecycle.ts +107 -0
  838. package/src/host/services/memoir/index.ts +80 -0
  839. package/src/host/services/memoir/routes.ts +346 -0
  840. package/src/host/services/memoir/settings.ts +122 -0
  841. package/src/host/services/memoir/store.ts +132 -0
  842. package/src/host/services/memoir/tools.ts +158 -0
  843. package/src/host/services/no-browser-auth/index.ts +70 -0
  844. package/src/host/services/notify/config.ts +178 -0
  845. package/src/host/services/notify/feishu-sender.ts +220 -0
  846. package/src/host/services/notify/host-routes.ts +133 -0
  847. package/src/host/services/notify/index.ts +305 -0
  848. package/src/host/services/playwright-sessions/child.ts +251 -0
  849. package/src/host/services/playwright-sessions/controller.ts +102 -0
  850. package/src/host/services/playwright-sessions/index.ts +146 -0
  851. package/src/host/services/playwright-sessions/live-view.ts +225 -0
  852. package/src/host/services/playwright-sessions/manager.ts +239 -0
  853. package/src/host/services/playwright-sessions/profile-gc.ts +97 -0
  854. package/src/host/services/playwright-sessions/routes.ts +90 -0
  855. package/src/host/services/remote-access/boot-scripts.ts +118 -0
  856. package/src/host/services/remote-access/index.ts +62 -0
  857. package/src/host/services/remote-access/routes.ts +137 -0
  858. package/src/host/services/remote-web-ui/index.ts +344 -0
  859. package/src/host/services/remote-web-ui/server-mode/accounts.ts +423 -0
  860. package/src/host/services/remote-web-ui/server-mode/cookie.ts +57 -0
  861. package/src/host/services/remote-web-ui/server-mode/dsh-home.ts +42 -0
  862. package/src/host/services/remote-web-ui/server-mode/external-auth.ts +296 -0
  863. package/src/host/services/remote-web-ui/server-mode/fence.ts +27 -0
  864. package/src/host/services/remote-web-ui/server-mode/gateway-routes.ts +797 -0
  865. package/src/host/services/remote-web-ui/server-mode/gateway.ts +684 -0
  866. package/src/host/services/remote-web-ui/server-mode/http.ts +105 -0
  867. package/src/host/services/remote-web-ui/server-mode/integrated-auth.ts +118 -0
  868. package/src/host/services/remote-web-ui/server-mode/lan.ts +19 -0
  869. package/src/host/services/remote-web-ui/server-mode/loopback.ts +63 -0
  870. package/src/host/services/remote-web-ui/server-mode/posture.ts +154 -0
  871. package/src/host/services/remote-web-ui/server-mode/roles.ts +51 -0
  872. package/src/host/services/remote-web-ui/server-mode/server-boot.ts +38 -0
  873. package/src/host/services/remote-web-ui/server-mode/sessions.ts +347 -0
  874. package/src/host/services/remote-web-ui/server.ts +591 -0
  875. package/src/host/services/resources.ts +78 -0
  876. package/src/host/services/right-pane/browser.ts +106 -0
  877. package/src/host/services/right-pane/index.ts +117 -0
  878. package/src/host/services/right-pane/wire.ts +10 -0
  879. package/src/host/services/schedule-mode/config.ts +26 -0
  880. package/src/host/services/schedule-mode/engine.ts +689 -0
  881. package/src/host/services/schedule-mode/index.ts +214 -0
  882. package/src/host/services/schedule-mode/routes.ts +130 -0
  883. package/src/host/services/schedule-mode/session-create.ts +36 -0
  884. package/src/host/services/schedule-mode/store.ts +304 -0
  885. package/src/host/services/schedule-mode/tools.ts +154 -0
  886. package/src/host/services/ssh/engine.ts +675 -0
  887. package/src/host/services/ssh/host-keys.ts +99 -0
  888. package/src/host/services/ssh/index.ts +84 -0
  889. package/src/host/services/ssh/routes.ts +442 -0
  890. package/src/host/services/ssh/store.ts +310 -0
  891. package/src/host/services/ssh/terminal-ws.ts +157 -0
  892. package/src/host/services/ssh/tools.ts +279 -0
  893. package/src/host/services/web-render/contracts.ts +138 -0
  894. package/src/host/services/web-render/index.ts +112 -0
  895. package/src/host/services/web-render/provider.ts +282 -0
  896. package/src/host/services/web-search-anthropic/contracts.ts +163 -0
  897. package/src/host/services/web-search-anthropic/index.ts +152 -0
  898. package/src/host/services/web-search-anthropic/provider.ts +325 -0
  899. package/src/host/services/worktree/git-runner.ts +124 -0
  900. package/src/host/services/worktree/git.ts +183 -0
  901. package/src/host/services/worktree/http.ts +36 -0
  902. package/src/host/services/worktree/index.ts +92 -0
  903. package/src/host/services/worktree/lane-tool.ts +100 -0
  904. package/src/host/services/worktree/manager.ts +1553 -0
  905. package/src/host/services/worktree/model-override.ts +43 -0
  906. package/src/host/services/worktree/routes.ts +570 -0
  907. package/src/host/services/worktree/run-command.ts +66 -0
  908. package/src/host/services/worktree/session-lane/manager.ts +228 -0
  909. package/src/host/services/worktree/workspace-model-routes.ts +156 -0
  910. package/src/host/services/worktree/workspace-model.ts +132 -0
  911. package/src/index.ts +84 -0
  912. package/src/invariant.ts +4 -0
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Per-session browser registry.
3
+ *
4
+ * Lazily creates one {@link SessionBrowser} per conversation and keeps the
5
+ * mapping stable while the session stays active: a session's first playwright
6
+ * tool call spawns its browser, every later call reuses it, and no other
7
+ * session can ever see it. Failure to create a handle removes the entry so the
8
+ * next call retries instead of wedging the session.
9
+ *
10
+ * Lifecycle guards (both optional via config):
11
+ * - idle TTL — unused browsers are disposed after `idleTimeoutMs`
12
+ * - concurrency cap — creating a new browser may dispose the least-recently
13
+ * used idle browser so at most `maxConcurrentBrowsers` stay alive
14
+ */
15
+
16
+ import type { SessionBrowser } from './child.ts'
17
+
18
+ export type SessionBrowserFactory = (sessionId: string) => Promise<SessionBrowser>
19
+
20
+ export interface SessionBrowserManagerOptions {
21
+ /**
22
+ * Dispose a browser after this many milliseconds with no get/call.
23
+ * `0` disables idle eviction. Default is set by the plugin apply site.
24
+ */
25
+ idleTimeoutMs: number
26
+ /**
27
+ * Soft cap on live browsers. Creating one more may dispose the LRU idle
28
+ * entry. `0` disables the cap.
29
+ */
30
+ maxConcurrentBrowsers: number
31
+ /** Optional clock for tests. */
32
+ now?: () => number
33
+ /** Optional timer hooks for tests. */
34
+ setTimeout?: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>
35
+ clearTimeout?: (handle: ReturnType<typeof setTimeout>) => void
36
+ /**
37
+ * Called after a session browser process is disposed (idle TTL, concurrency
38
+ * eviction, browser_close, or disposeAll). Used for disk profile GC.
39
+ */
40
+ onDispose?: (sessionId: string) => void | Promise<void>
41
+ }
42
+
43
+ interface Entry {
44
+ browser: Promise<SessionBrowser>
45
+ lastUsedAt: number
46
+ idleTimer?: ReturnType<typeof setTimeout>
47
+ /** In-flight tool-call count; idle eviction skips busy entries. */
48
+ busy: number
49
+ }
50
+
51
+ export class SessionBrowserManager {
52
+ private readonly sessions = new Map<string, Entry>()
53
+ private readonly now: () => number
54
+ private readonly setTimeoutFn: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>
55
+ private readonly clearTimeoutFn: (handle: ReturnType<typeof setTimeout>) => void
56
+
57
+ constructor(
58
+ private readonly factory: SessionBrowserFactory,
59
+ private readonly options: SessionBrowserManagerOptions,
60
+ ) {
61
+ this.now = options.now ?? Date.now
62
+ this.setTimeoutFn = options.setTimeout ?? setTimeout
63
+ this.clearTimeoutFn = options.clearTimeout ?? clearTimeout
64
+ }
65
+
66
+ /** Resolve the browser for one session, creating it on first use. */
67
+ async get(sessionId: string): Promise<SessionBrowser> {
68
+ let entry = this.sessions.get(sessionId)
69
+ if (entry === undefined) {
70
+ await this.ensureCapacity(sessionId)
71
+ const browser = this.factory(sessionId).catch((error: unknown) => {
72
+ this.sessions.delete(sessionId)
73
+ throw error
74
+ })
75
+ entry = { browser, lastUsedAt: this.now(), busy: 0 }
76
+ this.sessions.set(sessionId, entry)
77
+ this.armIdleTimer(sessionId, entry)
78
+ } else {
79
+ this.touch(sessionId)
80
+ }
81
+ return this.wrap(sessionId, await entry.browser)
82
+ }
83
+
84
+ /** Number of sessions that have (or are creating) a browser. */
85
+ get size(): number {
86
+ return this.sessions.size
87
+ }
88
+
89
+ /** Every session id currently tracked. */
90
+ ids(): string[] {
91
+ return [...this.sessions.keys()]
92
+ }
93
+
94
+ /** Whether a session currently owns (or is creating) a browser connection. */
95
+ has(sessionId: string): boolean {
96
+ return this.sessions.has(sessionId)
97
+ }
98
+
99
+ /**
100
+ * The host-owned persistent context of a session browser, when one exists
101
+ * AND was created in liveView mode (dual-owner). Never creates a browser:
102
+ * the live-view upgrade must not spawn a browser just because a client
103
+ * opened the view.
104
+ */
105
+ contextOf(sessionId: string): Promise<SessionBrowser['context']> {
106
+ const entry = this.sessions.get(sessionId)
107
+ if (entry === undefined) return Promise.resolve(null)
108
+ return entry.browser.then(browser => browser.context ?? null, () => null)
109
+ }
110
+
111
+ /** Dispose one session browser and drop it from the registry. */
112
+ async dispose(sessionId: string): Promise<void> {
113
+ const entry = this.sessions.get(sessionId)
114
+ if (entry === undefined) return
115
+ this.clearIdleTimer(entry)
116
+ this.sessions.delete(sessionId)
117
+ try {
118
+ await (await entry.browser).dispose()
119
+ } catch {
120
+ // A failed creation leaves no browser to dispose.
121
+ }
122
+ try {
123
+ await this.options.onDispose?.(sessionId)
124
+ } catch {
125
+ // Disk GC failures must not block browser lifecycle.
126
+ }
127
+ }
128
+
129
+ /** Close and dispose every session browser; the registry empties. */
130
+ async disposeAll(): Promise<void> {
131
+ const ids = [...this.sessions.keys()]
132
+ await Promise.allSettled(ids.map((id) => this.dispose(id)))
133
+ }
134
+
135
+ /**
136
+ * Wrap call so each use refreshes the idle timer and marks the entry busy
137
+ * (idle eviction will not steal a browser mid-call).
138
+ */
139
+ private wrap(sessionId: string, browser: SessionBrowser): SessionBrowser {
140
+ return {
141
+ sessionId: browser.sessionId,
142
+ profileDir: browser.profileDir,
143
+ outputDir: browser.outputDir,
144
+ call: async (rawName, args, signal) => {
145
+ this.beginUse(sessionId)
146
+ try {
147
+ return await browser.call(rawName, args, signal)
148
+ } finally {
149
+ this.endUse(sessionId)
150
+ }
151
+ },
152
+ close: () => browser.close(),
153
+ dispose: () => browser.dispose(),
154
+ }
155
+ }
156
+
157
+ private beginUse(sessionId: string): void {
158
+ const entry = this.sessions.get(sessionId)
159
+ if (entry === undefined) return
160
+ entry.busy += 1
161
+ this.touch(sessionId)
162
+ }
163
+
164
+ private endUse(sessionId: string): void {
165
+ const entry = this.sessions.get(sessionId)
166
+ if (entry === undefined) return
167
+ entry.busy = Math.max(0, entry.busy - 1)
168
+ this.touch(sessionId)
169
+ }
170
+
171
+ private touch(sessionId: string): void {
172
+ const entry = this.sessions.get(sessionId)
173
+ if (entry === undefined) return
174
+ entry.lastUsedAt = this.now()
175
+ this.armIdleTimer(sessionId, entry)
176
+ }
177
+
178
+ private armIdleTimer(sessionId: string, entry: Entry): void {
179
+ this.clearIdleTimer(entry)
180
+ const idleTimeoutMs = this.options.idleTimeoutMs
181
+ if (idleTimeoutMs <= 0) return
182
+ entry.idleTimer = this.setTimeoutFn(() => {
183
+ void this.disposeIdle(sessionId)
184
+ }, idleTimeoutMs)
185
+ }
186
+
187
+ private clearIdleTimer(entry: Entry): void {
188
+ if (entry.idleTimer === undefined) return
189
+ this.clearTimeoutFn(entry.idleTimer)
190
+ entry.idleTimer = undefined
191
+ }
192
+
193
+ /** Idle timer fired: dispose only if still idle and not busy. */
194
+ private async disposeIdle(sessionId: string): Promise<void> {
195
+ const entry = this.sessions.get(sessionId)
196
+ if (entry === undefined) return
197
+ if (entry.busy > 0) {
198
+ this.armIdleTimer(sessionId, entry)
199
+ return
200
+ }
201
+ const idleTimeoutMs = this.options.idleTimeoutMs
202
+ if (idleTimeoutMs > 0 && this.now() - entry.lastUsedAt < idleTimeoutMs) {
203
+ this.armIdleTimer(sessionId, entry)
204
+ return
205
+ }
206
+ await this.dispose(sessionId)
207
+ }
208
+
209
+ /**
210
+ * Before creating `incomingId`, dispose LRU idle browsers until under the
211
+ * concurrency cap. Busy browsers are skipped; if every other browser is
212
+ * busy and the cap is still reached, the absolute LRU (including busy) is
213
+ * force-disposed so a new session can start.
214
+ */
215
+ private async ensureCapacity(incomingId: string): Promise<void> {
216
+ const max = this.options.maxConcurrentBrowsers
217
+ if (max <= 0) return
218
+ while (this.sessions.size >= max) {
219
+ const victim = this.pickEvictionVictim(incomingId, /*preferIdle*/ true)
220
+ ?? this.pickEvictionVictim(incomingId, /*preferIdle*/ false)
221
+ if (victim === undefined) return
222
+ await this.dispose(victim)
223
+ }
224
+ }
225
+
226
+ private pickEvictionVictim(incomingId: string, preferIdle: boolean): string | undefined {
227
+ let bestId: string | undefined
228
+ let bestUsed = Number.POSITIVE_INFINITY
229
+ for (const [id, entry] of this.sessions) {
230
+ if (id === incomingId) continue
231
+ if (preferIdle && entry.busy > 0) continue
232
+ if (entry.lastUsedAt < bestUsed) {
233
+ bestUsed = entry.lastUsedAt
234
+ bestId = id
235
+ }
236
+ }
237
+ return bestId
238
+ }
239
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Disk GC for per-session Playwright profiles under `sessionsRoot`.
3
+ *
4
+ * Process-level idle eviction already stops Chromium/MCP children; this module
5
+ * reclaims the leftover profile directories (cookies, cache, screenshots) that
6
+ * otherwise grow without bound under `$DSH_HOME/playwright-sessions/`.
7
+ */
8
+
9
+ import { existsSync, readdirSync, rmSync, statSync } from 'node:fs'
10
+ import { join } from 'node:path'
11
+ import { sanitizePlaywrightSessionKey } from '../../../core/playwright-sessions/names.ts'
12
+
13
+ export interface PruneProfilesOptions {
14
+ /** Absolute root that holds one directory per session. */
15
+ sessionsRoot: string
16
+ /**
17
+ * Delete a profile directory when its mtime is older than this many ms.
18
+ * `0` disables age-based pruning.
19
+ */
20
+ maxAgeMs: number
21
+ /** Session ids whose live browsers must not be deleted. */
22
+ keepSessionIds?: Iterable<string>
23
+ /** Optional clock for tests. */
24
+ now?: () => number
25
+ }
26
+
27
+ export interface PruneProfilesResult {
28
+ removed: string[]
29
+ skippedLive: string[]
30
+ errors: string[]
31
+ }
32
+
33
+ /** Resolve the on-disk profile directory for one durable session id. */
34
+ export function profileDirFor(sessionsRoot: string, sessionId: string): string {
35
+ return join(sessionsRoot, sanitizePlaywrightSessionKey(sessionId))
36
+ }
37
+
38
+ /** Best-effort recursive remove of one session profile directory. */
39
+ export function removeProfileDir(sessionsRoot: string, sessionId: string): boolean {
40
+ const dir = profileDirFor(sessionsRoot, sessionId)
41
+ if (!existsSync(dir)) return false
42
+ rmSync(dir, { recursive: true, force: true })
43
+ return true
44
+ }
45
+
46
+ /**
47
+ * Delete stale profile directories under `sessionsRoot`.
48
+ *
49
+ * A directory is removed when:
50
+ * - it is a direct child of `sessionsRoot`, and
51
+ * - its mtime is older than `maxAgeMs` (when maxAgeMs > 0), and
52
+ * - its basename is not the sanitized key of any id in `keepSessionIds`.
53
+ */
54
+ export function pruneStaleProfiles(options: PruneProfilesOptions): PruneProfilesResult {
55
+ const removed: string[] = []
56
+ const skippedLive: string[] = []
57
+ const errors: string[] = []
58
+ const now = options.now ?? Date.now
59
+ const keep = new Set(
60
+ [...(options.keepSessionIds ?? [])].map((id) => sanitizePlaywrightSessionKey(id)),
61
+ )
62
+
63
+ if (!existsSync(options.sessionsRoot)) {
64
+ return { removed, skippedLive, errors }
65
+ }
66
+ if (options.maxAgeMs <= 0) {
67
+ return { removed, skippedLive, errors }
68
+ }
69
+
70
+ const cutoff = now() - options.maxAgeMs
71
+ let entries: string[]
72
+ try {
73
+ entries = readdirSync(options.sessionsRoot)
74
+ } catch (err) {
75
+ errors.push(String(err))
76
+ return { removed, skippedLive, errors }
77
+ }
78
+
79
+ for (const name of entries) {
80
+ if (keep.has(name)) {
81
+ skippedLive.push(name)
82
+ continue
83
+ }
84
+ const full = join(options.sessionsRoot, name)
85
+ try {
86
+ const st = statSync(full)
87
+ if (!st.isDirectory()) continue
88
+ if (st.mtimeMs >= cutoff) continue
89
+ rmSync(full, { recursive: true, force: true })
90
+ removed.push(name)
91
+ } catch (err) {
92
+ errors.push(`${name}: ${String(err)}`)
93
+ }
94
+ }
95
+
96
+ return { removed, skippedLive, errors }
97
+ }
@@ -0,0 +1,90 @@
1
+ /** Loopback and same-origin control plane for the attended Chrome lease. */
2
+ import type { IncomingMessage, ServerResponse } from 'node:http'
3
+ import type { Context } from '@deepseek-ai/cordis'
4
+ import type { WebRoute } from '@deepseek-ai/dsh-host-webserver'
5
+ import { PLAYWRIGHT_CONTROL_API_PREFIX, PlaywrightControlError } from '../../../core/playwright-sessions/control.ts'
6
+ import { isLoopbackRequest } from '../access-trust/trust.ts'
7
+ import { accessTrustOf } from '../access-trust/index.ts'
8
+ import type { PlaywrightSessionsController } from './controller.ts'
9
+
10
+ /**
11
+ * The strict loopback core fence for this control plane: a loopback socket,
12
+ * a loopback Host, and same-origin browser markers. The route family is mounted
13
+ * with the shared host access fence (see `registerPlaywrightControlRoutes`), so
14
+ * the deployment's canonical browser entry reaches the host's Chrome through an
15
+ * authenticated session; this predicate stays available for the loopback-only
16
+ * callers and tests.
17
+ */
18
+ function trusted(request: IncomingMessage): boolean {
19
+ return isLoopbackRequest(request)
20
+ }
21
+
22
+ function json(response: ServerResponse, status: number, body: unknown): void {
23
+ response.writeHead(status, {
24
+ 'content-type': 'application/json; charset=utf-8',
25
+ 'cache-control': 'no-store',
26
+ 'x-content-type-options': 'nosniff',
27
+ 'referrer-policy': 'no-referrer',
28
+ })
29
+ response.end(JSON.stringify(body))
30
+ }
31
+
32
+ async function body(request: IncomingMessage, maxBytes = 16 * 1024): Promise<Record<string, unknown> | null> {
33
+ const chunks: Buffer[] = []
34
+ let size = 0
35
+ for await (const chunk of request) {
36
+ const value = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)
37
+ size += value.length
38
+ if (size > maxBytes) return null
39
+ chunks.push(value)
40
+ }
41
+ try {
42
+ const parsed = JSON.parse(Buffer.concat(chunks).toString('utf8'))
43
+ return typeof parsed === 'object' && parsed !== null ? parsed as Record<string, unknown> : null
44
+ } catch { return null }
45
+ }
46
+
47
+ export function makePlaywrightControlRoutes(
48
+ controller: PlaywrightSessionsController,
49
+ isTrusted: (request: IncomingMessage) => boolean = trusted,
50
+ ): WebRoute[] {
51
+ const handler = async (request: IncomingMessage, response: ServerResponse): Promise<void> => {
52
+ if (!isTrusted(request)) { json(response, 403, { ok: false, error: { code: 'forbidden', message: 'loopback same-origin access only' } }); return }
53
+ const url = new URL(request.url ?? '/', 'http://dsh.local')
54
+ try {
55
+ if (url.pathname === `${PLAYWRIGHT_CONTROL_API_PREFIX}/status` && request.method === 'GET') {
56
+ const sessionId = url.searchParams.get('sessionId')
57
+ if (!sessionId) throw new PlaywrightControlError('bad-request', 'sessionId is required')
58
+ json(response, 200, { ok: true, value: controller.status(sessionId) })
59
+ return
60
+ }
61
+ if ((url.pathname === `${PLAYWRIGHT_CONTROL_API_PREFIX}/connect` || url.pathname === `${PLAYWRIGHT_CONTROL_API_PREFIX}/disconnect`) && request.method === 'POST') {
62
+ if (!String(request.headers['content-type'] ?? '').toLowerCase().startsWith('application/json')) {
63
+ json(response, 415, { ok: false, error: { code: 'bad-request', message: 'application/json required' } })
64
+ return
65
+ }
66
+ const input = await body(request)
67
+ if (typeof input?.['sessionId'] !== 'string' || input['sessionId'] === '') throw new PlaywrightControlError('bad-request', 'sessionId is required')
68
+ const value = url.pathname.endsWith('/connect')
69
+ ? await controller.connect(input['sessionId'])
70
+ : await controller.disconnect(input['sessionId'])
71
+ json(response, 200, { ok: true, value })
72
+ return
73
+ }
74
+ json(response, 404, { ok: false, error: { code: 'not-found', message: 'unknown route' } })
75
+ } catch (error) {
76
+ const code = error instanceof PlaywrightControlError ? error.code : 'internal'
77
+ const status = code === 'forbidden' ? 403 : code === 'not-found' ? 404 : code === 'busy' || code === 'not-owner' || code === 'wrong-mode' ? 409 : code === 'bad-request' ? 400 : code === 'connect-failed' ? 502 : 500
78
+ json(response, status, { ok: false, error: { code, message: error instanceof Error ? error.message : String(error) } })
79
+ }
80
+ }
81
+ return [{ kind: 'prefix', path: PLAYWRIGHT_CONTROL_API_PREFIX, handler }]
82
+ }
83
+
84
+ export function registerPlaywrightControlRoutes(ctx: Context, controller: PlaywrightSessionsController): () => void {
85
+ const isTrusted = accessTrustOf(ctx).isTrusted
86
+ const disposers = makePlaywrightControlRoutes(controller, isTrusted).map(route => ctx.webServer.register(route))
87
+ return () => { for (const dispose of disposers.reverse()) dispose() }
88
+ }
89
+
90
+ export { trusted as trustedPlaywrightControlRequest }
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Index boot scripts and wire constants of the remote-access domain.
3
+ *
4
+ * The deployment's canonical entry (browser -> reverse proxy -> loopback
5
+ * `dsh web`) is a plain-HTTP origin. Two browser facts follow, and both are
6
+ * fixed here for every entry, whether or not the optional server-mode gateway
7
+ * is mounted:
8
+ *
9
+ * 1. `crypto.randomUUID` does not exist outside a secure context. The DSH
10
+ * client mints RPC ids with it, so the polyfill is injected into every
11
+ * served index document (issue #1024).
12
+ * 2. `navigator.clipboard` does not exist either, because the Clipboard API is
13
+ * secure-context gated. Upstream DSH copy affordances call
14
+ * `navigator.clipboard.writeText` without a fallback, so a copy button
15
+ * throws on a remote page while working on the loopback page. The shim backs
16
+ * `writeText` with the legacy `document.execCommand('copy')` path and never
17
+ * replaces a real clipboard object.
18
+ *
19
+ * Host ownership is per request instead of a static row: the index document
20
+ * points at {@link HOST_ACCESS_BOOT_PATH} with a parser-blocking
21
+ * `<script src>`, whose handler decides from the request Host whether this page
22
+ * may claim the Host (`__DSH_TRANSPORT__.ownsHost`). Without the claim the DSH
23
+ * client keeps the whole settings plane in a process-local memory store and
24
+ * renders Settings -> Models as "settings are unavailable in this browser",
25
+ * while the provider directory, the account page and the config-file entry all
26
+ * stay empty.
27
+ * @module dsh-web-all/host/services/remote-access/boot-scripts
28
+ */
29
+
30
+ /**
31
+ * Parser-blocking boot script path; the handler decides per request.
32
+ * Re-exported from `core/remote-access/paths.ts`, the single home the browser
33
+ * half reads too.
34
+ */
35
+ export {
36
+ HOST_ACCESS_BOOT_PATH,
37
+ HOST_ACCESS_MARKER_COOKIE,
38
+ HOST_ACCESS_MARKER_MAX_AGE_SECONDS,
39
+ HOST_ACCESS_MARKER_VALUE,
40
+ HOST_ACCESS_SESSION_PATH,
41
+ } from '../../../core/remote-access/paths.ts'
42
+
43
+ /**
44
+ * `crypto.randomUUID` polyfill for non-secure contexts. Kept byte-compatible
45
+ * with the script the server-mode gateway used to inject, so the two renderers
46
+ * cannot drift.
47
+ */
48
+ export const UUID_POLYFILL_SCRIPT = [
49
+ '(function(){',
50
+ 'var g=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:self;',
51
+ 'if(typeof g.crypto==="undefined"){g.crypto={};}',
52
+ 'if(typeof g.crypto.randomUUID!=="function"){',
53
+ 'g.crypto.randomUUID=function(){',
54
+ 'var a=new Uint8Array(16);',
55
+ 'if(g.crypto.getRandomValues){g.crypto.getRandomValues(a);}',
56
+ 'else{for(var j=0;j<16;j++){a[j]=Math.random()*256|0;}}',
57
+ 'a[6]=(a[6]&0x0f)|0x40;',
58
+ 'a[8]=(a[8]&0x3f)|0x80;',
59
+ 'var h="",x="0123456789abcdef";',
60
+ 'for(var i=0;i<16;i++){h+=x[a[i]>>4]+x[a[i]&0x0f];',
61
+ 'if(i===3||i===5||i===7||i===9)h+="-";}',
62
+ 'return h;',
63
+ '};',
64
+ '}',
65
+ '})();',
66
+ ].join('')
67
+
68
+ /**
69
+ * `navigator.clipboard` shim for non-secure contexts. Only installed when the
70
+ * platform exposes no clipboard at all, so a secure-context page keeps the real
71
+ * API. `readText` cannot be polyfilled from a page (the paste event is the only
72
+ * read path), so it rejects instead of throwing synchronously; callers that
73
+ * already fall back on rejection keep working.
74
+ */
75
+ export const CLIPBOARD_SHIM_SCRIPT = [
76
+ '(function(){',
77
+ 'try{',
78
+ 'var n=typeof navigator!=="undefined"?navigator:undefined;',
79
+ 'if(n===undefined||n.clipboard!==undefined)return;',
80
+ 'var writeText=function(text){return new Promise(function(resolve,reject){',
81
+ 'try{',
82
+ 'var area=document.createElement("textarea");',
83
+ 'area.value=String(text);',
84
+ 'area.setAttribute("readonly","");',
85
+ 'area.style.position="fixed";',
86
+ 'area.style.top="-1000px";',
87
+ 'document.body.appendChild(area);',
88
+ 'area.select();',
89
+ 'var ok=document.execCommand("copy");',
90
+ 'document.body.removeChild(area);',
91
+ 'if(ok){resolve();}else{reject(new Error("clipboard write is unavailable on this origin"));}',
92
+ '}catch(e){reject(e);}',
93
+ '});};',
94
+ 'var readText=function(){return Promise.reject(new Error("clipboard read is unavailable on this origin"));};',
95
+ 'var shim={writeText:writeText,readText:readText};',
96
+ 'try{Object.defineProperty(Navigator.prototype,"clipboard",{get:function(){return shim;},configurable:true});}',
97
+ 'catch(e){try{Object.defineProperty(n,"clipboard",{value:shim,configurable:true});}catch(e2){}}',
98
+ '}catch(e){}',
99
+ '})();',
100
+ ].join('')
101
+
102
+ /**
103
+ * Boot script body served for one admission decision.
104
+ * @param admitted - whether the requesting Host passed the host access fence.
105
+ * @returns an inline script claiming Host ownership, or a no-op script.
106
+ */
107
+ export function hostAccessBootScript(admitted: boolean): string {
108
+ if (!admitted) return '/* web-all: this host is not a declared browser entry; the page keeps the memory settings plane */\n'
109
+ return [
110
+ '(function(){',
111
+ 'try{',
112
+ 'var t=globalThis.__DSH_TRANSPORT__||{};',
113
+ 't.ownsHost=true;',
114
+ 'globalThis.__DSH_TRANSPORT__=t;',
115
+ '}catch(e){}',
116
+ '})();',
117
+ ].join('')
118
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Remote-access service domain: the two pieces every reverse-proxied
3
+ * deployment needs regardless of whether the optional server-mode gateway is
4
+ * mounted.
5
+ *
6
+ * - the per-request Host-ownership boot script and the authority posture
7
+ * readout (`./routes.ts`);
8
+ * - the index boot rows every entry shares: the parser-blocking ownership
9
+ * script, the `crypto.randomUUID` polyfill and the `navigator.clipboard`
10
+ * shim (`./boot-scripts.ts`).
11
+ *
12
+ * The ownership decision is the shared host access fence, so this domain can
13
+ * never claim more than the privileged panels already allow. Fail-closed: when
14
+ * the fence service is missing, `accessTrustOf` falls back to the strict
15
+ * loopback rule and only a loopback page (which already owns the Host) is
16
+ * admitted.
17
+ * @module dsh-web-all/host/services/remote-access
18
+ */
19
+
20
+ import type { Context } from '@deepseek-ai/cordis'
21
+ import type { IncomingMessage } from 'node:http'
22
+ import type {} from '@deepseek-ai/dsh-host-webserver'
23
+ import { accessTrustOf, browserSessionPredicateOf, trustedAuthoritiesOf } from '../access-trust/index.ts'
24
+ import { CLIPBOARD_SHIM_SCRIPT, HOST_ACCESS_BOOT_PATH, UUID_POLYFILL_SCRIPT } from './boot-scripts.ts'
25
+ import { makeRemoteAccessRoutes, type RemoteAccessDeps } from './routes.ts'
26
+ import { registerResources } from '../resources.ts'
27
+
28
+ export {
29
+ CLIPBOARD_SHIM_SCRIPT,
30
+ HOST_ACCESS_BOOT_PATH,
31
+ HOST_ACCESS_MARKER_COOKIE,
32
+ HOST_ACCESS_MARKER_MAX_AGE_SECONDS,
33
+ HOST_ACCESS_MARKER_VALUE,
34
+ HOST_ACCESS_SESSION_PATH,
35
+ UUID_POLYFILL_SCRIPT,
36
+ hostAccessBootScript,
37
+ } from './boot-scripts.ts'
38
+ export { makeRemoteAccessRoutes, type RemoteAccessDeps } from './routes.ts'
39
+
40
+ /**
41
+ * Mount the service domain.
42
+ * @param ctx - host plugin context.
43
+ * @returns the disposer releasing the routes and the injection rows.
44
+ */
45
+ export function register(ctx: Context): () => void {
46
+ const deps: RemoteAccessDeps = {
47
+ isTrusted: (request: IncomingMessage): boolean => accessTrustOf(ctx).isTrusted(request),
48
+ trustedAuthorities: () => trustedAuthoritiesOf(ctx),
49
+ isAuthenticated: (request: IncomingMessage): boolean => browserSessionPredicateOf(ctx)?.(request) === true,
50
+ }
51
+ return registerResources(own => {
52
+ for (const route of makeRemoteAccessRoutes(deps)) own(ctx.webServer.register(route))
53
+
54
+ // Row order is execution order: the parser-blocking ownership script runs
55
+ // first, then the two inline shims the plain-HTTP origin needs.
56
+ own(ctx.on('webserver/index-inject', (table) => {
57
+ table.push({ kind: 'script-src', placement: 'head', src: HOST_ACCESS_BOOT_PATH })
58
+ table.push({ kind: 'script', placement: 'head', text: UUID_POLYFILL_SCRIPT })
59
+ table.push({ kind: 'script', placement: 'head', text: CLIPBOARD_SHIM_SCRIPT })
60
+ }))
61
+ })
62
+ }