@xrkseek/harness 0.4.11 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/node_modules/@xrkseek/a2a/README.md +8 -6
  2. package/node_modules/@xrkseek/a2a/dist/client.d.ts +1 -0
  3. package/node_modules/@xrkseek/a2a/dist/client.d.ts.map +1 -1
  4. package/node_modules/@xrkseek/a2a/dist/client.js +36 -20
  5. package/node_modules/@xrkseek/a2a/dist/client.js.map +1 -1
  6. package/node_modules/@xrkseek/a2a/dist/inbound.d.ts +9 -2
  7. package/node_modules/@xrkseek/a2a/dist/inbound.d.ts.map +1 -1
  8. package/node_modules/@xrkseek/a2a/dist/inbound.js +86 -41
  9. package/node_modules/@xrkseek/a2a/dist/inbound.js.map +1 -1
  10. package/node_modules/@xrkseek/a2a/dist/index.d.ts +2 -1
  11. package/node_modules/@xrkseek/a2a/dist/index.d.ts.map +1 -1
  12. package/node_modules/@xrkseek/a2a/dist/index.js +2 -1
  13. package/node_modules/@xrkseek/a2a/dist/index.js.map +1 -1
  14. package/node_modules/@xrkseek/a2a/dist/protocol.d.ts +9 -0
  15. package/node_modules/@xrkseek/a2a/dist/protocol.d.ts.map +1 -1
  16. package/node_modules/@xrkseek/a2a/dist/protocol.js +25 -0
  17. package/node_modules/@xrkseek/a2a/dist/protocol.js.map +1 -1
  18. package/node_modules/@xrkseek/a2a/dist/task-store.d.ts +43 -0
  19. package/node_modules/@xrkseek/a2a/dist/task-store.d.ts.map +1 -0
  20. package/node_modules/@xrkseek/a2a/dist/task-store.js +105 -0
  21. package/node_modules/@xrkseek/a2a/dist/task-store.js.map +1 -0
  22. package/node_modules/@xrkseek/context-fragments/README.md +4 -2
  23. package/node_modules/@xrkseek/context-fragments/dist/index.d.ts +10 -2
  24. package/node_modules/@xrkseek/context-fragments/dist/index.d.ts.map +1 -1
  25. package/node_modules/@xrkseek/context-fragments/dist/index.js +16 -11
  26. package/node_modules/@xrkseek/context-fragments/dist/index.js.map +1 -1
  27. package/node_modules/@xrkseek/core-agent/dist/index.d.ts +5 -0
  28. package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
  29. package/node_modules/@xrkseek/core-agent/dist/index.js +3 -0
  30. package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
  31. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +11 -0
  32. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  33. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +9 -0
  34. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  35. package/node_modules/@xrkseek/exec-computer-use/dist/background.js +2 -2
  36. package/node_modules/@xrkseek/exec-computer-use/dist/background.js.map +1 -1
  37. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts +22 -1
  38. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts.map +1 -1
  39. package/node_modules/@xrkseek/exec-computer-use/dist/format.js +75 -9
  40. package/node_modules/@xrkseek/exec-computer-use/dist/format.js.map +1 -1
  41. package/node_modules/@xrkseek/exec-computer-use/dist/index.d.ts +2 -2
  42. package/node_modules/@xrkseek/exec-computer-use/dist/index.d.ts.map +1 -1
  43. package/node_modules/@xrkseek/exec-computer-use/dist/index.js +2 -2
  44. package/node_modules/@xrkseek/exec-computer-use/dist/index.js.map +1 -1
  45. package/node_modules/@xrkseek/exec-computer-use/dist/memory.d.ts +2 -0
  46. package/node_modules/@xrkseek/exec-computer-use/dist/memory.d.ts.map +1 -1
  47. package/node_modules/@xrkseek/exec-computer-use/dist/memory.js +18 -2
  48. package/node_modules/@xrkseek/exec-computer-use/dist/memory.js.map +1 -1
  49. package/node_modules/@xrkseek/exec-computer-use/dist/tools.d.ts +15 -1
  50. package/node_modules/@xrkseek/exec-computer-use/dist/tools.d.ts.map +1 -1
  51. package/node_modules/@xrkseek/exec-computer-use/dist/tools.js +77 -22
  52. package/node_modules/@xrkseek/exec-computer-use/dist/tools.js.map +1 -1
  53. package/node_modules/@xrkseek/exec-computer-use/dist/types.d.ts +5 -0
  54. package/node_modules/@xrkseek/exec-computer-use/dist/types.d.ts.map +1 -1
  55. package/node_modules/@xrkseek/exec-computer-use/dist/types.js.map +1 -1
  56. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.d.ts +4 -0
  57. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.d.ts.map +1 -1
  58. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.js +138 -6
  59. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.js.map +1 -1
  60. package/node_modules/@xrkseek/exec-environment/README.md +2 -2
  61. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts +1 -0
  62. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts.map +1 -1
  63. package/node_modules/@xrkseek/exec-environment/dist/index.js +1 -0
  64. package/node_modules/@xrkseek/exec-environment/dist/index.js.map +1 -1
  65. package/node_modules/@xrkseek/exec-environment/dist/memory.d.ts +25 -0
  66. package/node_modules/@xrkseek/exec-environment/dist/memory.d.ts.map +1 -0
  67. package/node_modules/@xrkseek/exec-environment/dist/memory.js +290 -0
  68. package/node_modules/@xrkseek/exec-environment/dist/memory.js.map +1 -0
  69. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts +5 -3
  70. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts.map +1 -1
  71. package/node_modules/@xrkseek/exec-environment/dist/resolve.js +13 -5
  72. package/node_modules/@xrkseek/exec-environment/dist/resolve.js.map +1 -1
  73. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts +1 -1
  74. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts.map +1 -1
  75. package/node_modules/@xrkseek/exec-environment/package.json +1 -1
  76. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +1 -1
  77. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
  78. package/node_modules/@xrkseek/exec-fs/dist/index.js +1 -1
  79. package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
  80. package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts +2 -0
  81. package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts.map +1 -1
  82. package/node_modules/@xrkseek/exec-fs/dist/read-image.js +69 -31
  83. package/node_modules/@xrkseek/exec-fs/dist/read-image.js.map +1 -1
  84. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.d.ts.map +1 -1
  85. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js +10 -1
  86. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js.map +1 -1
  87. package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts +14 -0
  88. package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts.map +1 -1
  89. package/node_modules/@xrkseek/exec-image-gen/dist/format.js +28 -6
  90. package/node_modules/@xrkseek/exec-image-gen/dist/format.js.map +1 -1
  91. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts +1 -1
  92. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts.map +1 -1
  93. package/node_modules/@xrkseek/exec-image-gen/dist/index.js +1 -1
  94. package/node_modules/@xrkseek/exec-image-gen/dist/index.js.map +1 -1
  95. package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts.map +1 -1
  96. package/node_modules/@xrkseek/exec-image-gen/dist/references.js +8 -1
  97. package/node_modules/@xrkseek/exec-image-gen/dist/references.js.map +1 -1
  98. package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts.map +1 -1
  99. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js +11 -7
  100. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js.map +1 -1
  101. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts +2 -2
  102. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts.map +1 -1
  103. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js +38 -14
  104. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js.map +1 -1
  105. package/node_modules/@xrkseek/exec-image-gen/package.json +2 -1
  106. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.d.ts +23 -3
  107. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.d.ts.map +1 -1
  108. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.js +40 -5
  109. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.js.map +1 -1
  110. package/node_modules/@xrkseek/exec-sandbox/dist/doctor.js +1 -1
  111. package/node_modules/@xrkseek/exec-sandbox/dist/doctor.js.map +1 -1
  112. package/node_modules/@xrkseek/exec-sandbox/dist/index.d.ts +1 -1
  113. package/node_modules/@xrkseek/exec-sandbox/dist/index.d.ts.map +1 -1
  114. package/node_modules/@xrkseek/exec-sandbox/dist/index.js +1 -1
  115. package/node_modules/@xrkseek/exec-sandbox/dist/index.js.map +1 -1
  116. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts +8 -0
  117. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts.map +1 -1
  118. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js +13 -4
  119. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js.map +1 -1
  120. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts +6 -3
  121. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts.map +1 -1
  122. package/node_modules/@xrkseek/exec-shell/dist/index.js +40 -10
  123. package/node_modules/@xrkseek/exec-shell/dist/index.js.map +1 -1
  124. package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts +4 -0
  125. package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts.map +1 -1
  126. package/node_modules/@xrkseek/exec-subprocess/dist/index.js +2 -0
  127. package/node_modules/@xrkseek/exec-subprocess/dist/index.js.map +1 -1
  128. package/node_modules/@xrkseek/exec-video-gen/dist/format.js +6 -6
  129. package/node_modules/@xrkseek/exec-video-gen/dist/format.js.map +1 -1
  130. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js +2 -2
  131. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js.map +1 -1
  132. package/node_modules/@xrkseek/exec-web/dist/browser-cdp.d.ts.map +1 -1
  133. package/node_modules/@xrkseek/exec-web/dist/browser-cdp.js +26 -1
  134. package/node_modules/@xrkseek/exec-web/dist/browser-cdp.js.map +1 -1
  135. package/node_modules/@xrkseek/exec-web/dist/browser-session.d.ts +10 -2
  136. package/node_modules/@xrkseek/exec-web/dist/browser-session.d.ts.map +1 -1
  137. package/node_modules/@xrkseek/exec-web/dist/browser-session.js +27 -4
  138. package/node_modules/@xrkseek/exec-web/dist/browser-session.js.map +1 -1
  139. package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts.map +1 -1
  140. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js +43 -14
  141. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js.map +1 -1
  142. package/node_modules/@xrkseek/exec-web/dist/format.d.ts.map +1 -1
  143. package/node_modules/@xrkseek/exec-web/dist/format.js +2 -1
  144. package/node_modules/@xrkseek/exec-web/dist/format.js.map +1 -1
  145. package/node_modules/@xrkseek/exec-web/dist/index.d.ts +1 -1
  146. package/node_modules/@xrkseek/exec-web/dist/index.d.ts.map +1 -1
  147. package/node_modules/@xrkseek/exec-web/dist/index.js.map +1 -1
  148. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts +14 -0
  149. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts.map +1 -0
  150. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js +21 -0
  151. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js.map +1 -0
  152. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  153. package/node_modules/@xrkseek/preset-harness/dist/preset.js +28 -4
  154. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  155. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  156. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  157. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  158. package/node_modules/@xrkseek/protocol/dist/workspace-changes.d.ts.map +1 -1
  159. package/node_modules/@xrkseek/protocol/dist/workspace-changes.js +3 -1
  160. package/node_modules/@xrkseek/protocol/dist/workspace-changes.js.map +1 -1
  161. package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts +6 -2
  162. package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts.map +1 -1
  163. package/node_modules/@xrkseek/server-face/dist/attach-http.js +120 -48
  164. package/node_modules/@xrkseek/server-face/dist/attach-http.js.map +1 -1
  165. package/node_modules/@xrkseek/server-face/dist/context.d.ts +18 -3
  166. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  167. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  168. package/node_modules/@xrkseek/server-face/dist/dispatch.js +6 -2
  169. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  170. package/node_modules/@xrkseek/server-face/dist/face-schema.d.ts.map +1 -1
  171. package/node_modules/@xrkseek/server-face/dist/face-schema.js +1 -0
  172. package/node_modules/@xrkseek/server-face/dist/face-schema.js.map +1 -1
  173. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.d.ts.map +1 -1
  174. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js +2 -1
  175. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js.map +1 -1
  176. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts +11 -1
  177. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts.map +1 -1
  178. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js +170 -4
  179. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js.map +1 -1
  180. package/node_modules/@xrkseek/server-face/dist/handlers/session-added.d.ts.map +1 -1
  181. package/node_modules/@xrkseek/server-face/dist/handlers/session-added.js +3 -2
  182. package/node_modules/@xrkseek/server-face/dist/handlers/session-added.js.map +1 -1
  183. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  184. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +7 -6
  185. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  186. package/node_modules/@xrkseek/server-face/dist/index.d.mts +3734 -0
  187. package/node_modules/@xrkseek/server-face/dist/index.d.mts.map +1 -0
  188. package/node_modules/@xrkseek/server-face/dist/index.d.ts +7 -4
  189. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  190. package/node_modules/@xrkseek/server-face/dist/index.js +7 -4
  191. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  192. package/node_modules/@xrkseek/server-face/dist/index.mjs +22085 -0
  193. package/node_modules/@xrkseek/server-face/dist/index.mjs.map +1 -0
  194. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts +51 -0
  195. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts.map +1 -0
  196. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js +104 -0
  197. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js.map +1 -0
  198. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.d.ts +34 -0
  199. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.d.ts.map +1 -0
  200. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.js +41 -0
  201. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.js.map +1 -0
  202. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.d.ts +5 -2
  203. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.d.ts.map +1 -1
  204. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.js +13 -2
  205. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.js.map +1 -1
  206. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.d.ts.map +1 -1
  207. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js +3 -1
  208. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js.map +1 -1
  209. package/node_modules/@xrkseek/server-face/dist/remote-event.d.ts +1 -1
  210. package/node_modules/@xrkseek/server-face/dist/remote-event.d.ts.map +1 -1
  211. package/node_modules/@xrkseek/server-face/dist/remote-event.js +1 -0
  212. package/node_modules/@xrkseek/server-face/dist/remote-event.js.map +1 -1
  213. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts +17 -4
  214. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  215. package/node_modules/@xrkseek/server-face/dist/runtime.js +14 -2
  216. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  217. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.d.ts +14 -0
  218. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.d.ts.map +1 -0
  219. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.js +71 -0
  220. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.js.map +1 -0
  221. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.d.ts +17 -0
  222. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.d.ts.map +1 -0
  223. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.js +50 -0
  224. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.js.map +1 -0
  225. package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts +4 -0
  226. package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts.map +1 -1
  227. package/node_modules/@xrkseek/server-face/dist/session-attachment.js +30 -7
  228. package/node_modules/@xrkseek/server-face/dist/session-attachment.js.map +1 -1
  229. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  230. package/node_modules/@xrkseek/server-face/dist/session-status.js +2 -1
  231. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  232. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts +6 -0
  233. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  234. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +68 -12
  235. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  236. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  237. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +7 -3
  238. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  239. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  240. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +25 -1
  241. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  242. package/node_modules/@xrkseek/server-face/dist/types.d.ts +3 -0
  243. package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
  244. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts +2 -0
  245. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
  246. package/node_modules/@xrkseek/server-face/dist/workspace-face.js +61 -3
  247. package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
  248. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts +23 -2
  249. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts.map +1 -1
  250. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js +37 -2
  251. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js.map +1 -1
  252. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts +2 -0
  253. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts.map +1 -1
  254. package/node_modules/@xrkseek/server-face/dist/workspace-store.js +4 -0
  255. package/node_modules/@xrkseek/server-face/dist/workspace-store.js.map +1 -1
  256. package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.d.ts +9 -3
  257. package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.d.ts.map +1 -1
  258. package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.js +11 -7
  259. package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.js.map +1 -1
  260. package/node_modules/@xrkseek/server-face/dist/ws-send-queue.d.ts +4 -9
  261. package/node_modules/@xrkseek/server-face/dist/ws-send-queue.d.ts.map +1 -1
  262. package/node_modules/@xrkseek/server-face/dist/ws-send-queue.js +12 -24
  263. package/node_modules/@xrkseek/server-face/dist/ws-send-queue.js.map +1 -1
  264. package/node_modules/@xrkseek/server-host/dist/cron-http.d.ts +26 -0
  265. package/node_modules/@xrkseek/server-host/dist/cron-http.d.ts.map +1 -0
  266. package/node_modules/@xrkseek/server-host/dist/cron-http.js +77 -0
  267. package/node_modules/@xrkseek/server-host/dist/cron-http.js.map +1 -0
  268. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  269. package/node_modules/@xrkseek/server-host/dist/index.js +222 -123
  270. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  271. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts +8 -0
  272. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts.map +1 -1
  273. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js +33 -1
  274. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js.map +1 -1
  275. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
  276. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +2 -1
  277. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
  278. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts +2 -0
  279. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts.map +1 -0
  280. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js +98 -0
  281. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js.map +1 -0
  282. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts +18 -0
  283. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts.map +1 -0
  284. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js +141 -0
  285. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js.map +1 -0
  286. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.d.ts +11 -4
  287. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.d.ts.map +1 -1
  288. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.js +353 -2
  289. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.js.map +1 -1
  290. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts +30 -0
  291. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts.map +1 -0
  292. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js +96 -0
  293. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js.map +1 -0
  294. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.d.ts.map +1 -1
  295. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js +306 -11
  296. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js.map +1 -1
  297. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts.map +1 -1
  298. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js +53 -3
  299. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js.map +1 -1
  300. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.d.ts +9 -0
  301. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.d.ts.map +1 -0
  302. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.js +80 -0
  303. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.js.map +1 -0
  304. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.d.ts +11 -0
  305. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.d.ts.map +1 -0
  306. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.js +152 -0
  307. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.js.map +1 -0
  308. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.d.ts +5 -0
  309. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.d.ts.map +1 -0
  310. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.js +31 -0
  311. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.js.map +1 -0
  312. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.d.ts +17 -3
  313. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.d.ts.map +1 -1
  314. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js +265 -8
  315. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js.map +1 -1
  316. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts.map +1 -1
  317. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js +6 -1
  318. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js.map +1 -1
  319. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.d.ts +7 -0
  320. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.d.ts.map +1 -0
  321. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.js +188 -0
  322. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.js.map +1 -0
  323. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
  324. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +3 -3
  325. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
  326. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.d.ts +11 -0
  327. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.d.ts.map +1 -0
  328. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.js +117 -0
  329. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.js.map +1 -0
  330. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.d.ts +11 -0
  331. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.d.ts.map +1 -0
  332. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.js +381 -0
  333. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.js.map +1 -0
  334. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.d.ts.map +1 -1
  335. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.js +43 -1
  336. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.js.map +1 -1
  337. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.d.ts +11 -0
  338. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.d.ts.map +1 -0
  339. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.js +173 -0
  340. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.js.map +1 -0
  341. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.d.ts +17 -0
  342. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.d.ts.map +1 -0
  343. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.js +209 -0
  344. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.js.map +1 -0
  345. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.d.ts +7 -0
  346. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.d.ts.map +1 -0
  347. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.js +470 -0
  348. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.js.map +1 -0
  349. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.d.ts +7 -0
  350. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.d.ts.map +1 -0
  351. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.js +93 -0
  352. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.js.map +1 -0
  353. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.d.ts +27 -0
  354. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.d.ts.map +1 -0
  355. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.js +213 -0
  356. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.js.map +1 -0
  357. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.d.ts +6 -2
  358. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.d.ts.map +1 -1
  359. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js +92 -14
  360. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js.map +1 -1
  361. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.d.ts +1 -0
  362. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.d.ts.map +1 -1
  363. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js +72 -1
  364. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js.map +1 -1
  365. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.d.ts +9 -0
  366. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.d.ts.map +1 -0
  367. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.js +341 -0
  368. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.js.map +1 -0
  369. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.d.ts.map +1 -1
  370. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js +3 -0
  371. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js.map +1 -1
  372. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.d.ts +7 -0
  373. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.d.ts.map +1 -0
  374. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.js +138 -0
  375. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.js.map +1 -0
  376. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.d.ts +11 -0
  377. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.d.ts.map +1 -0
  378. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.js +85 -0
  379. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.js.map +1 -0
  380. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.d.ts +27 -0
  381. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.d.ts.map +1 -1
  382. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js +230 -52
  383. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js.map +1 -1
  384. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.d.ts +11 -0
  385. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.d.ts.map +1 -0
  386. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.js +182 -0
  387. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.js.map +1 -0
  388. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.d.ts +13 -0
  389. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.d.ts.map +1 -0
  390. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.js +151 -0
  391. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.js.map +1 -0
  392. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.d.ts +6 -0
  393. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.d.ts.map +1 -1
  394. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.js +34 -0
  395. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.js.map +1 -1
  396. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts +2 -0
  397. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts.map +1 -1
  398. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js +271 -20
  399. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js.map +1 -1
  400. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.d.ts +1 -1
  401. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.d.ts.map +1 -1
  402. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js +105 -21
  403. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js.map +1 -1
  404. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.d.ts +7 -0
  405. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.d.ts.map +1 -0
  406. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.js +81 -0
  407. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.js.map +1 -0
  408. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.d.ts +8 -0
  409. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.d.ts.map +1 -0
  410. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.js +378 -0
  411. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.js.map +1 -0
  412. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.d.ts +7 -0
  413. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.d.ts.map +1 -0
  414. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.js +229 -0
  415. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.js.map +1 -0
  416. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.d.ts +7 -0
  417. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.d.ts.map +1 -0
  418. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.js +300 -0
  419. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.js.map +1 -0
  420. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.d.ts.map +1 -1
  421. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.js +10 -1
  422. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.js.map +1 -1
  423. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-store.d.ts.map +1 -1
  424. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-store.js +40 -9
  425. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-store.js.map +1 -1
  426. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.d.ts +8 -0
  427. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.d.ts.map +1 -0
  428. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.js +428 -0
  429. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.js.map +1 -0
  430. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.d.ts +12 -0
  431. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.d.ts.map +1 -0
  432. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.js +166 -0
  433. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.js.map +1 -0
  434. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts +20 -0
  435. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts.map +1 -0
  436. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.js +308 -0
  437. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.js.map +1 -0
  438. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.d.ts +32 -0
  439. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.d.ts.map +1 -0
  440. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.js +183 -0
  441. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.js.map +1 -0
  442. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.d.ts +2 -0
  443. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.d.ts.map +1 -1
  444. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js +20 -16
  445. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js.map +1 -1
  446. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.d.ts +7 -0
  447. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.d.ts.map +1 -0
  448. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.js +245 -0
  449. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.js.map +1 -0
  450. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.d.ts +9 -0
  451. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.d.ts.map +1 -0
  452. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.js +116 -0
  453. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.js.map +1 -0
  454. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts +1 -0
  455. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts.map +1 -1
  456. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js +5 -2
  457. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js.map +1 -1
  458. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts +2 -1
  459. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts.map +1 -1
  460. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js +2 -1
  461. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js.map +1 -1
  462. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.d.ts +18 -0
  463. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.d.ts.map +1 -0
  464. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.js +65 -0
  465. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.js.map +1 -0
  466. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.d.ts +11 -0
  467. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.d.ts.map +1 -0
  468. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.js +114 -0
  469. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.js.map +1 -0
  470. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.d.ts +3 -1
  471. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.d.ts.map +1 -1
  472. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js +42 -1
  473. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js.map +1 -1
  474. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.d.ts +6 -1
  475. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.d.ts.map +1 -1
  476. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js +68 -8
  477. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js.map +1 -1
  478. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.d.ts.map +1 -1
  479. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.js +111 -26
  480. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.js.map +1 -1
  481. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.d.ts +6 -0
  482. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.d.ts.map +1 -0
  483. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.js +32 -0
  484. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.js.map +1 -0
  485. package/node_modules/@xrkseek/server-http/dist/index.d.ts +1 -0
  486. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  487. package/node_modules/@xrkseek/server-http/dist/index.js +1 -0
  488. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  489. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.d.ts.map +1 -1
  490. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js +10 -0
  491. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js.map +1 -1
  492. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.d.ts +9 -0
  493. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.d.ts.map +1 -1
  494. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js +68 -21
  495. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js.map +1 -1
  496. package/node_modules/@xrkseek/server-http/package.json +1 -0
  497. package/node_modules/@xrkseek/server-loader/dist/index.d.ts +1 -1
  498. package/node_modules/@xrkseek/server-loader/dist/index.d.ts.map +1 -1
  499. package/node_modules/@xrkseek/server-loader/dist/index.js.map +1 -1
  500. package/node_modules/@xrkseek/server-loader/dist/load.d.ts.map +1 -1
  501. package/node_modules/@xrkseek/server-loader/dist/load.js +5 -2
  502. package/node_modules/@xrkseek/server-loader/dist/load.js.map +1 -1
  503. package/node_modules/@xrkseek/server-loader/dist/managed-state.d.ts +11 -1
  504. package/node_modules/@xrkseek/server-loader/dist/managed-state.d.ts.map +1 -1
  505. package/node_modules/@xrkseek/server-loader/dist/managed-state.js +11 -2
  506. package/node_modules/@xrkseek/server-loader/dist/managed-state.js.map +1 -1
  507. package/node_modules/@xrkseek/workspace/dist/index.d.ts +9 -0
  508. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  509. package/node_modules/@xrkseek/workspace/dist/index.js +4 -2
  510. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  511. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts +32 -2
  512. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts.map +1 -1
  513. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js +69 -2
  514. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js.map +1 -1
  515. package/node_modules/@xrkseek/xrk-session-reference/README.md +1 -1
  516. package/node_modules/@xrkseek/xrk-session-reference/README.zh.md +1 -1
  517. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.d.ts +5 -3
  518. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.d.ts.map +1 -1
  519. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js +20 -17
  520. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js.map +1 -1
  521. package/node_modules/@xrkseek/xrk-session-reference/package.json +1 -1
  522. package/package.json +1 -1
  523. package/node_modules/@xrkseek/server-face/dist/opencode-zen.d.ts +0 -13
  524. package/node_modules/@xrkseek/server-face/dist/opencode-zen.d.ts.map +0 -1
  525. package/node_modules/@xrkseek/server-face/dist/opencode-zen.js +0 -40
  526. package/node_modules/@xrkseek/server-face/dist/opencode-zen.js.map +0 -1
@@ -0,0 +1,428 @@
1
+ /**
2
+ * `@michengai/dsh-skills-manager` — scan workspace/user skill dirs + persist
3
+ * enable / disable / trash under `~/.xrk/dsh-skills-manager/`.
4
+ */
5
+ import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
6
+ import { homedir } from "node:os";
7
+ import path from "node:path";
8
+ import { sendJson } from "./underlying/http-json.js";
9
+ import { createXrkDocStore } from "./underlying/doc-store.js";
10
+ import { httpMethod, parseJsonBody } from "./underlying/http-kit.js";
11
+ import { dataPath } from "./underlying/json-store.js";
12
+ import { DSH_COMPAT_ADAPTER } from "./meta.js";
13
+ const STORE = createXrkDocStore(["dsh-skills-manager", "state.json"], { flags: {}, trash: [], repositories: [] });
14
+ function flagKey(rootKey, name) {
15
+ return `${rootKey}::${name}`;
16
+ }
17
+ function parseFrontmatter(raw) {
18
+ if (!raw.startsWith("---"))
19
+ return {};
20
+ const end = raw.indexOf("\n---", 3);
21
+ if (end < 0)
22
+ return {};
23
+ const block = raw.slice(3, end).trim();
24
+ const out = {};
25
+ for (const line of block.split(/\r?\n/)) {
26
+ const m = /^([A-Za-z0-9_-]+)\s*:\s*(.*)$/.exec(line.trim());
27
+ if (!m)
28
+ continue;
29
+ out[m[1]] = m[2].replace(/^["']|["']$/g, "").trim();
30
+ }
31
+ return out;
32
+ }
33
+ function scanSkillDir(abs, rootKey, rootLabel, flags) {
34
+ if (!existsSync(abs))
35
+ return [];
36
+ let entries;
37
+ try {
38
+ entries = readdirSync(abs);
39
+ }
40
+ catch {
41
+ return [];
42
+ }
43
+ const rows = [];
44
+ for (const name of entries) {
45
+ const dir = path.join(abs, name);
46
+ try {
47
+ if (!statSync(dir).isDirectory())
48
+ continue;
49
+ }
50
+ catch {
51
+ continue;
52
+ }
53
+ const skillMd = path.join(dir, "SKILL.md");
54
+ if (!existsSync(skillMd))
55
+ continue;
56
+ let fm = {};
57
+ let description = "";
58
+ try {
59
+ const raw = readFileSync(skillMd, "utf8");
60
+ fm = parseFrontmatter(raw);
61
+ const body = raw.replace(/^---[\s\S]*?---\s*/, "").trim();
62
+ description =
63
+ fm.description ||
64
+ body.split(/\r?\n/).find((l) => l.trim())?.trim() ||
65
+ "";
66
+ }
67
+ catch {
68
+ /* keep defaults */
69
+ }
70
+ const key = flagKey(rootKey, name);
71
+ const flag = flags[key];
72
+ const enabled = flag?.enabled !== false;
73
+ const modelInvocable = fm["disable-model-invocation"] !== "true";
74
+ const userInvocable = fm["user-invocable"] !== "false";
75
+ rows.push({
76
+ name,
77
+ declaredName: fm.name || name,
78
+ description,
79
+ kind: "skill",
80
+ kindLabel: "Skill",
81
+ statusLabel: enabled ? "enabled" : "disabled",
82
+ rootKey,
83
+ rootLabel,
84
+ path: skillMd,
85
+ enabled,
86
+ managerEnabled: enabled,
87
+ modelInvocable,
88
+ userInvocable,
89
+ invocationPolicyValid: true,
90
+ mutable: true,
91
+ exists: true,
92
+ loadable: true,
93
+ });
94
+ }
95
+ return rows;
96
+ }
97
+ function collectRoots(options) {
98
+ const roots = [];
99
+ const xrkSkills = dataPath(options.xrkHome, "skills");
100
+ roots.push({
101
+ key: "user",
102
+ kind: "user",
103
+ localeKey: "user",
104
+ label: "User skills",
105
+ path: xrkSkills,
106
+ });
107
+ const homeSkills = path.join(homedir(), ".agents", "skills");
108
+ if (homeSkills !== xrkSkills) {
109
+ roots.push({
110
+ key: "home-agents",
111
+ kind: "user",
112
+ localeKey: "user",
113
+ label: "Home .agents/skills",
114
+ path: homeSkills,
115
+ });
116
+ }
117
+ const ws = options.workspaceRoot?.trim();
118
+ if (ws) {
119
+ for (const rel of [
120
+ ".agents/skills",
121
+ ".xrk/skills",
122
+ ".claude/skills",
123
+ ".cursor/skills",
124
+ ".codex/skills",
125
+ ]) {
126
+ const abs = path.join(ws, rel);
127
+ roots.push({
128
+ key: `project:${rel}`,
129
+ kind: "project",
130
+ localeKey: "project",
131
+ label: rel,
132
+ path: abs,
133
+ projectName: path.basename(ws),
134
+ });
135
+ }
136
+ }
137
+ return roots;
138
+ }
139
+ function buildState(options) {
140
+ const doc = STORE.read(options.xrkHome).data;
141
+ const rootDefs = collectRoots(options);
142
+ const roots = [];
143
+ const allSkills = [];
144
+ for (const root of rootDefs) {
145
+ const skills = scanSkillDir(root.path, root.key, root.label, doc.flags);
146
+ allSkills.push(...skills);
147
+ roots.push({
148
+ key: root.key,
149
+ kind: root.kind,
150
+ localeKey: root.localeKey,
151
+ label: root.label,
152
+ path: root.path,
153
+ ...(root.projectName ? { projectName: root.projectName } : {}),
154
+ skills,
155
+ count: skills.length,
156
+ });
157
+ }
158
+ const enabled = allSkills.filter((s) => s.enabled).length;
159
+ const disabled = allSkills.length - enabled;
160
+ return {
161
+ roots,
162
+ projects: rootDefs
163
+ .filter((r) => r.kind === "project")
164
+ .map((r) => ({
165
+ root: r.key,
166
+ path: r.path,
167
+ projectName: r.projectName,
168
+ })),
169
+ summary: {
170
+ total: allSkills.length,
171
+ enabled,
172
+ disabled,
173
+ issues: 0,
174
+ },
175
+ trash: doc.trash,
176
+ warnings: [],
177
+ adapter: DSH_COMPAT_ADAPTER,
178
+ };
179
+ }
180
+ function trashDir(options) {
181
+ const dir = dataPath(options.xrkHome, "dsh-skills-manager", "trash");
182
+ if (!existsSync(dir))
183
+ mkdirSync(dir, { recursive: true });
184
+ return dir;
185
+ }
186
+ export function isSkillsManagerPath(pathname) {
187
+ return (pathname === "/api/dsh-skills-manager" ||
188
+ pathname.startsWith("/api/dsh-skills-manager/"));
189
+ }
190
+ export async function handleSkillsManagerHttp(req, res, pathname, options = {}) {
191
+ if (!isSkillsManagerPath(pathname))
192
+ return false;
193
+ const method = httpMethod(req);
194
+ const rel = pathname.replace(/^\/api\/dsh-skills-manager\/?/, "/");
195
+ if ((rel === "/state" || rel === "/" || pathname === "/api/dsh-skills-manager") &&
196
+ (method === "GET" || method === "HEAD")) {
197
+ sendJson(res, 200, buildState(options));
198
+ return true;
199
+ }
200
+ if (rel === "/repositories" && (method === "GET" || method === "HEAD")) {
201
+ const repos = STORE.read(options.xrkHome).data.repositories;
202
+ sendJson(res, 200, {
203
+ repositories: repos,
204
+ adapter: DSH_COMPAT_ADAPTER,
205
+ });
206
+ return true;
207
+ }
208
+ if (rel === "/browse") {
209
+ if (method === "POST" || method === "PUT")
210
+ await parseJsonBody(req);
211
+ sendJson(res, 200, {
212
+ entries: [],
213
+ adapter: DSH_COMPAT_ADAPTER,
214
+ });
215
+ return true;
216
+ }
217
+ if (rel === "/detail") {
218
+ const body = method === "POST" ? await parseJsonBody(req) : {};
219
+ const state = buildState(options);
220
+ const name = typeof body.name === "string" ? body.name : "";
221
+ const root = typeof body.root === "string" ? body.root : "";
222
+ const skill = state.roots
223
+ .flatMap((r) => r.skills)
224
+ .find((s) => s.name === name && (!root || s.rootKey === root));
225
+ sendJson(res, 200, {
226
+ ok: Boolean(skill),
227
+ skill: skill ?? null,
228
+ adapter: DSH_COMPAT_ADAPTER,
229
+ });
230
+ return true;
231
+ }
232
+ if (method === "POST") {
233
+ const body = await parseJsonBody(req);
234
+ const root = typeof body.root === "string" ? body.root : "";
235
+ const name = typeof body.name === "string" ? body.name : "";
236
+ if (rel === "/enable" || rel === "/disable") {
237
+ if (!root || !name) {
238
+ sendJson(res, 400, {
239
+ ok: false,
240
+ error: "root-and-name-required",
241
+ adapter: DSH_COMPAT_ADAPTER,
242
+ });
243
+ return true;
244
+ }
245
+ const enabled = rel === "/enable";
246
+ STORE.patch(options.xrkHome, (doc) => ({
247
+ ...doc,
248
+ flags: {
249
+ ...doc.flags,
250
+ [flagKey(root, name)]: { enabled },
251
+ },
252
+ }));
253
+ sendJson(res, 200, {
254
+ ok: true,
255
+ enabled,
256
+ ...buildState(options),
257
+ });
258
+ return true;
259
+ }
260
+ if (rel === "/delete" || rel === "/trash") {
261
+ const state = buildState(options);
262
+ const skill = state.roots
263
+ .flatMap((r) => r.skills.map((s) => ({ ...s, rootPath: r.path })))
264
+ .find((s) => s.name === name && (!root || s.rootKey === root));
265
+ if (!skill) {
266
+ sendJson(res, 404, {
267
+ ok: false,
268
+ error: "skill-not-found",
269
+ adapter: DSH_COMPAT_ADAPTER,
270
+ });
271
+ return true;
272
+ }
273
+ const id = `${Date.now()}-${skill.name}`;
274
+ const dest = path.join(trashDir(options), id);
275
+ try {
276
+ mkdirSync(dest, { recursive: true });
277
+ const fromDir = path.dirname(skill.path);
278
+ renameSync(fromDir, path.join(dest, skill.name));
279
+ }
280
+ catch (err) {
281
+ sendJson(res, 200, {
282
+ ok: false,
283
+ error: err instanceof Error ? err.message : String(err),
284
+ adapter: DSH_COMPAT_ADAPTER,
285
+ });
286
+ return true;
287
+ }
288
+ STORE.patch(options.xrkHome, (doc) => ({
289
+ ...doc,
290
+ trash: [
291
+ {
292
+ id,
293
+ name: skill.name,
294
+ rootKey: skill.rootKey,
295
+ fromPath: skill.path,
296
+ trashedAt: new Date().toISOString(),
297
+ },
298
+ ...doc.trash,
299
+ ],
300
+ }));
301
+ sendJson(res, 200, { ok: true, ...buildState(options) });
302
+ return true;
303
+ }
304
+ if (rel === "/trash-restore") {
305
+ const id = typeof body.id === "string" ? body.id : "";
306
+ const doc = STORE.read(options.xrkHome).data;
307
+ const entry = doc.trash.find((t) => t.id === id);
308
+ if (!entry) {
309
+ sendJson(res, 404, {
310
+ ok: false,
311
+ error: "trash-not-found",
312
+ adapter: DSH_COMPAT_ADAPTER,
313
+ });
314
+ return true;
315
+ }
316
+ const src = path.join(trashDir(options), id, entry.name);
317
+ const rootDef = collectRoots(options).find((r) => r.key === entry.rootKey);
318
+ const destParent = rootDef?.path ?? dataPath(options.xrkHome, "skills");
319
+ if (!existsSync(destParent))
320
+ mkdirSync(destParent, { recursive: true });
321
+ try {
322
+ renameSync(src, path.join(destParent, entry.name));
323
+ rmSync(path.join(trashDir(options), id), {
324
+ recursive: true,
325
+ force: true,
326
+ });
327
+ }
328
+ catch (err) {
329
+ sendJson(res, 200, {
330
+ ok: false,
331
+ error: err instanceof Error ? err.message : String(err),
332
+ adapter: DSH_COMPAT_ADAPTER,
333
+ });
334
+ return true;
335
+ }
336
+ STORE.patch(options.xrkHome, (current) => ({
337
+ ...current,
338
+ trash: current.trash.filter((t) => t.id !== id),
339
+ }));
340
+ sendJson(res, 200, { ok: true, ...buildState(options) });
341
+ return true;
342
+ }
343
+ if (rel === "/trash-delete") {
344
+ const id = typeof body.id === "string" ? body.id : "";
345
+ try {
346
+ rmSync(path.join(trashDir(options), id), {
347
+ recursive: true,
348
+ force: true,
349
+ });
350
+ }
351
+ catch {
352
+ /* ignore */
353
+ }
354
+ STORE.patch(options.xrkHome, (doc) => ({
355
+ ...doc,
356
+ trash: doc.trash.filter((t) => t.id !== id),
357
+ }));
358
+ sendJson(res, 200, { ok: true, ...buildState(options) });
359
+ return true;
360
+ }
361
+ if (rel === "/create") {
362
+ const skillName = (typeof body.name === "string" && body.name.trim()) ||
363
+ `skill-${Date.now()}`;
364
+ const safe = skillName.replace(/[^a-zA-Z0-9._-]+/g, "-");
365
+ const rootDef = collectRoots(options).find((r) => r.key === root) ??
366
+ collectRoots(options)[0];
367
+ const dir = path.join(rootDef.path, safe);
368
+ mkdirSync(dir, { recursive: true });
369
+ const desc = typeof body.description === "string" ? body.description : safe;
370
+ writeFileSync(path.join(dir, "SKILL.md"), `---\nname: ${safe}\ndescription: ${desc}\n---\n\n# ${safe}\n\n${desc}\n`, "utf8");
371
+ sendJson(res, 200, {
372
+ ok: true,
373
+ name: safe,
374
+ ...buildState(options),
375
+ });
376
+ return true;
377
+ }
378
+ if (rel === "/upload" || rel === "/import") {
379
+ sendJson(res, 200, {
380
+ ok: true,
381
+ imported: [],
382
+ skipped: [],
383
+ note: "Use /create or drop SKILL.md under a scanned skills root.",
384
+ ...buildState(options),
385
+ });
386
+ return true;
387
+ }
388
+ if (rel === "/repositories") {
389
+ const url = typeof body.url === "string" ? body.url.trim() : "";
390
+ if (!url) {
391
+ sendJson(res, 400, {
392
+ ok: false,
393
+ error: "url-required",
394
+ adapter: DSH_COMPAT_ADAPTER,
395
+ });
396
+ return true;
397
+ }
398
+ const id = `repo-${Date.now()}`;
399
+ STORE.patch(options.xrkHome, (doc) => ({
400
+ ...doc,
401
+ repositories: [
402
+ ...doc.repositories,
403
+ {
404
+ id,
405
+ url,
406
+ label: typeof body.label === "string" ? body.label : url,
407
+ },
408
+ ],
409
+ }));
410
+ sendJson(res, 200, {
411
+ ok: true,
412
+ repositories: STORE.read(options.xrkHome).data.repositories,
413
+ adapter: DSH_COMPAT_ADAPTER,
414
+ });
415
+ return true;
416
+ }
417
+ }
418
+ if (method === "POST" || method === "PUT" || method === "PATCH") {
419
+ await parseJsonBody(req).catch(() => ({}));
420
+ }
421
+ sendJson(res, 200, {
422
+ ok: true,
423
+ path: pathname,
424
+ adapter: DSH_COMPAT_ADAPTER,
425
+ });
426
+ return true;
427
+ }
428
+ //# sourceMappingURL=skills-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-manager.js","sourceRoot":"","sources":["../../src/dsh-compat/skills-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ export interface SkinAssetsOptions {
3
+ readonly pluginsDir?: string;
4
+ }
5
+ export declare function isSkinAssetsPath(pathname: string): boolean;
6
+ /**
7
+ * Serve hashed skin artwork. Returns true when the path is under `/skin-assets`.
8
+ */
9
+ export declare function handleSkinAssetsHttp(req: IncomingMessage, res: ServerResponse, pathname: string, options?: SkinAssetsOptions): Promise<boolean>;
10
+ /** Test helper — drop the skin-root cache between cases. */
11
+ export declare function resetSkinAssetsCacheForTest(): void;
12
+ //# sourceMappingURL=skin-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-assets.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/skin-assets.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAsGD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAiDlB;AAED,4DAA4D;AAC5D,wBAAgB,2BAA2B,IAAI,IAAI,CAIlD"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Community skin raster assets (`/skin-assets/<skinId>/<hash>.png|.webp`).
3
+ *
4
+ * DSH skins (maid-atelier · linxin skins · deep-whale …) register a Cordis
5
+ * webServer prefix from their host half. XRK stages `assets/runtime/` next to
6
+ * client.js and serves the same URL shape without embedding Cordis Host.
7
+ */
8
+ import { createReadStream, existsSync, readdirSync, readFileSync, statSync } from "node:fs";
9
+ import path from "node:path";
10
+ const HASH_FILE = /^[a-f0-9]{64}\.(png|webp)$/;
11
+ let cachedPluginsDir;
12
+ let cachedAt = 0;
13
+ let cachedRoots = [];
14
+ function contentType(file) {
15
+ return file.endsWith(".webp") ? "image/webp" : "image/png";
16
+ }
17
+ function tryReadSkinId(dir) {
18
+ const skinJson = path.join(dir, "skin.json");
19
+ if (!existsSync(skinJson))
20
+ return undefined;
21
+ try {
22
+ const raw = JSON.parse(readFileSync(skinJson, "utf8"));
23
+ return typeof raw.id === "string" && raw.id.trim() ? raw.id.trim() : undefined;
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ function collectSkinRoots(pluginsDir) {
30
+ const web = path.join(pluginsDir, "web", "plugins");
31
+ if (!existsSync(web))
32
+ return [];
33
+ const out = [];
34
+ const visit = (dir) => {
35
+ let entries;
36
+ try {
37
+ entries = readdirSync(dir, { withFileTypes: true });
38
+ }
39
+ catch {
40
+ return;
41
+ }
42
+ const runtime = path.join(dir, "assets", "runtime");
43
+ if (existsSync(runtime)) {
44
+ const fromJson = tryReadSkinId(dir);
45
+ const basenames = new Set();
46
+ if (fromJson)
47
+ basenames.add(fromJson);
48
+ // Package folder heuristics: …/dsh-client-ui-skin-maid-atelier → maid-atelier
49
+ const base = path.basename(dir);
50
+ const stripped = base
51
+ .replace(/^dsh-client-ui-skin-/, "")
52
+ .replace(/^dsh-skin-/, "")
53
+ .replace(/^ui-skin-/, "");
54
+ if (stripped && stripped !== base)
55
+ basenames.add(stripped);
56
+ if (/^[a-z][a-z0-9-]*$/.test(base))
57
+ basenames.add(base);
58
+ for (const skinId of basenames) {
59
+ out.push({ skinId, runtimeDir: runtime });
60
+ }
61
+ }
62
+ for (const ent of entries) {
63
+ if (!ent.isDirectory())
64
+ continue;
65
+ if (ent.name === "node_modules" || ent.name === "chunks")
66
+ continue;
67
+ visit(path.join(dir, ent.name));
68
+ }
69
+ };
70
+ visit(web);
71
+ return out;
72
+ }
73
+ function skinRoots(options) {
74
+ const pluginsDir = options.pluginsDir?.trim();
75
+ if (!pluginsDir)
76
+ return [];
77
+ const now = Date.now();
78
+ if (cachedPluginsDir === pluginsDir && now - cachedAt < 5_000) {
79
+ return cachedRoots;
80
+ }
81
+ cachedPluginsDir = pluginsDir;
82
+ cachedAt = now;
83
+ cachedRoots = collectSkinRoots(pluginsDir);
84
+ return cachedRoots;
85
+ }
86
+ function resolveRuntimeFile(options, skinId, file) {
87
+ if (!HASH_FILE.test(file))
88
+ return undefined;
89
+ for (const root of skinRoots(options)) {
90
+ if (root.skinId !== skinId)
91
+ continue;
92
+ const abs = path.join(root.runtimeDir, file);
93
+ const base = path.resolve(root.runtimeDir);
94
+ const target = path.resolve(abs);
95
+ if (!target.startsWith(base + path.sep) && target !== base)
96
+ continue;
97
+ try {
98
+ if (statSync(abs).isFile())
99
+ return abs;
100
+ }
101
+ catch {
102
+ /* try next */
103
+ }
104
+ }
105
+ return undefined;
106
+ }
107
+ export function isSkinAssetsPath(pathname) {
108
+ return pathname === "/skin-assets" || pathname.startsWith("/skin-assets/");
109
+ }
110
+ /**
111
+ * Serve hashed skin artwork. Returns true when the path is under `/skin-assets`.
112
+ */
113
+ export async function handleSkinAssetsHttp(req, res, pathname, options = {}) {
114
+ if (!isSkinAssetsPath(pathname))
115
+ return false;
116
+ const method = (req.method ?? "GET").toUpperCase();
117
+ if (method !== "GET" && method !== "HEAD") {
118
+ res.writeHead(405, { Allow: "GET, HEAD" }).end();
119
+ return true;
120
+ }
121
+ const parts = pathname.split("/").filter(Boolean);
122
+ // skin-assets / <skinId> / <file>
123
+ if (parts.length !== 3) {
124
+ res.writeHead(404).end();
125
+ return true;
126
+ }
127
+ const skinId = parts[1];
128
+ const file = parts[2];
129
+ const abs = resolveRuntimeFile(options, skinId, file);
130
+ if (!abs) {
131
+ res.writeHead(404).end();
132
+ return true;
133
+ }
134
+ const st = statSync(abs);
135
+ const etag = `"${file.split(".")[0]}"`;
136
+ const headers = {
137
+ "Content-Type": contentType(file),
138
+ "Cache-Control": "public, max-age=31536000, immutable",
139
+ "X-Content-Type-Options": "nosniff",
140
+ ETag: etag,
141
+ "Content-Length": String(st.size),
142
+ };
143
+ const inm = req.headers["if-none-match"];
144
+ if (typeof inm === "string" &&
145
+ inm.split(",").some((value) => {
146
+ const v = value.trim().replace(/^W\//, "");
147
+ return v === etag || v === "*";
148
+ })) {
149
+ res.writeHead(304, headers).end();
150
+ return true;
151
+ }
152
+ res.writeHead(200, headers);
153
+ if (method === "HEAD") {
154
+ res.end();
155
+ return true;
156
+ }
157
+ createReadStream(abs).pipe(res);
158
+ return true;
159
+ }
160
+ /** Test helper — drop the skin-root cache between cases. */
161
+ export function resetSkinAssetsCacheForTest() {
162
+ cachedPluginsDir = undefined;
163
+ cachedAt = 0;
164
+ cachedRoots = [];
165
+ }
166
+ //# sourceMappingURL=skin-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-assets.js","sourceRoot":"","sources":["../../src/dsh-compat/skin-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import { type SkinDiscoverOptions } from "./skin-discover.js";
3
+ export interface SkinCenterOptions extends SkinDiscoverOptions {
4
+ readonly xrkHome?: string;
5
+ }
6
+ export declare function isSkinCenterPath(pathname: string): boolean;
7
+ export declare function handleSkinCenterHttp(req: IncomingMessage, res: ServerResponse, pathname: string, options?: SkinCenterOptions): Promise<boolean>;
8
+ /** Test helper — expose catalog builder. */
9
+ export declare function readSkinCenterCatalogForTest(options: SkinCenterOptions): {
10
+ skins: {
11
+ origin: "plugin" | "bundled";
12
+ package: string;
13
+ channel?: string;
14
+ manifest: {
15
+ [x: string]: unknown;
16
+ };
17
+ }[];
18
+ diagnostics: unknown[];
19
+ };
20
+ //# sourceMappingURL=skin-center.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-center.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/skin-center.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AASjE,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAsDD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI1D;AA4GD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAyKlB;AAED,4CAA4C;AAC5C,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,iBAAiB;;;;;;;;;iBAlOlC,OAAO,EAAE;EAoO7C"}