@xrkseek/harness 0.4.12 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) 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/core-session/dist/index.d.ts.map +1 -1
  36. package/node_modules/@xrkseek/core-session/dist/index.js +3 -0
  37. package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
  38. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
  39. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +16 -0
  40. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
  41. package/node_modules/@xrkseek/core-session/dist/store.d.ts +5 -0
  42. package/node_modules/@xrkseek/core-session/dist/store.d.ts.map +1 -1
  43. package/node_modules/@xrkseek/exec-computer-use/dist/background.js +2 -2
  44. package/node_modules/@xrkseek/exec-computer-use/dist/background.js.map +1 -1
  45. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts +22 -1
  46. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts.map +1 -1
  47. package/node_modules/@xrkseek/exec-computer-use/dist/format.js +75 -9
  48. package/node_modules/@xrkseek/exec-computer-use/dist/format.js.map +1 -1
  49. package/node_modules/@xrkseek/exec-computer-use/dist/index.d.ts +2 -2
  50. package/node_modules/@xrkseek/exec-computer-use/dist/index.d.ts.map +1 -1
  51. package/node_modules/@xrkseek/exec-computer-use/dist/index.js +2 -2
  52. package/node_modules/@xrkseek/exec-computer-use/dist/index.js.map +1 -1
  53. package/node_modules/@xrkseek/exec-computer-use/dist/memory.d.ts +2 -0
  54. package/node_modules/@xrkseek/exec-computer-use/dist/memory.d.ts.map +1 -1
  55. package/node_modules/@xrkseek/exec-computer-use/dist/memory.js +18 -2
  56. package/node_modules/@xrkseek/exec-computer-use/dist/memory.js.map +1 -1
  57. package/node_modules/@xrkseek/exec-computer-use/dist/tools.d.ts +15 -1
  58. package/node_modules/@xrkseek/exec-computer-use/dist/tools.d.ts.map +1 -1
  59. package/node_modules/@xrkseek/exec-computer-use/dist/tools.js +77 -22
  60. package/node_modules/@xrkseek/exec-computer-use/dist/tools.js.map +1 -1
  61. package/node_modules/@xrkseek/exec-computer-use/dist/types.d.ts +5 -0
  62. package/node_modules/@xrkseek/exec-computer-use/dist/types.d.ts.map +1 -1
  63. package/node_modules/@xrkseek/exec-computer-use/dist/types.js.map +1 -1
  64. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.d.ts +4 -0
  65. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.d.ts.map +1 -1
  66. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.js +138 -6
  67. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.js.map +1 -1
  68. package/node_modules/@xrkseek/exec-environment/README.md +2 -2
  69. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts +1 -0
  70. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts.map +1 -1
  71. package/node_modules/@xrkseek/exec-environment/dist/index.js +1 -0
  72. package/node_modules/@xrkseek/exec-environment/dist/index.js.map +1 -1
  73. package/node_modules/@xrkseek/exec-environment/dist/memory.d.ts +25 -0
  74. package/node_modules/@xrkseek/exec-environment/dist/memory.d.ts.map +1 -0
  75. package/node_modules/@xrkseek/exec-environment/dist/memory.js +290 -0
  76. package/node_modules/@xrkseek/exec-environment/dist/memory.js.map +1 -0
  77. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts +5 -3
  78. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts.map +1 -1
  79. package/node_modules/@xrkseek/exec-environment/dist/resolve.js +13 -5
  80. package/node_modules/@xrkseek/exec-environment/dist/resolve.js.map +1 -1
  81. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts +1 -1
  82. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts.map +1 -1
  83. package/node_modules/@xrkseek/exec-environment/package.json +1 -1
  84. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +1 -1
  85. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
  86. package/node_modules/@xrkseek/exec-fs/dist/index.js +1 -1
  87. package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
  88. package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts +2 -0
  89. package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts.map +1 -1
  90. package/node_modules/@xrkseek/exec-fs/dist/read-image.js +69 -31
  91. package/node_modules/@xrkseek/exec-fs/dist/read-image.js.map +1 -1
  92. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.d.ts.map +1 -1
  93. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js +10 -1
  94. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js.map +1 -1
  95. package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts +14 -0
  96. package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts.map +1 -1
  97. package/node_modules/@xrkseek/exec-image-gen/dist/format.js +28 -6
  98. package/node_modules/@xrkseek/exec-image-gen/dist/format.js.map +1 -1
  99. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts +1 -1
  100. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts.map +1 -1
  101. package/node_modules/@xrkseek/exec-image-gen/dist/index.js +1 -1
  102. package/node_modules/@xrkseek/exec-image-gen/dist/index.js.map +1 -1
  103. package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts.map +1 -1
  104. package/node_modules/@xrkseek/exec-image-gen/dist/references.js +8 -1
  105. package/node_modules/@xrkseek/exec-image-gen/dist/references.js.map +1 -1
  106. package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts.map +1 -1
  107. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js +11 -7
  108. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js.map +1 -1
  109. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts +2 -2
  110. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts.map +1 -1
  111. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js +38 -14
  112. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js.map +1 -1
  113. package/node_modules/@xrkseek/exec-image-gen/package.json +2 -1
  114. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.d.ts +23 -3
  115. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.d.ts.map +1 -1
  116. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.js +40 -5
  117. package/node_modules/@xrkseek/exec-sandbox/dist/bwrap.js.map +1 -1
  118. package/node_modules/@xrkseek/exec-sandbox/dist/doctor.js +1 -1
  119. package/node_modules/@xrkseek/exec-sandbox/dist/doctor.js.map +1 -1
  120. package/node_modules/@xrkseek/exec-sandbox/dist/index.d.ts +1 -1
  121. package/node_modules/@xrkseek/exec-sandbox/dist/index.d.ts.map +1 -1
  122. package/node_modules/@xrkseek/exec-sandbox/dist/index.js +1 -1
  123. package/node_modules/@xrkseek/exec-sandbox/dist/index.js.map +1 -1
  124. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts +8 -0
  125. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts.map +1 -1
  126. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js +13 -4
  127. package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js.map +1 -1
  128. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts +6 -3
  129. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts.map +1 -1
  130. package/node_modules/@xrkseek/exec-shell/dist/index.js +40 -10
  131. package/node_modules/@xrkseek/exec-shell/dist/index.js.map +1 -1
  132. package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts +4 -0
  133. package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts.map +1 -1
  134. package/node_modules/@xrkseek/exec-subprocess/dist/index.js +2 -0
  135. package/node_modules/@xrkseek/exec-subprocess/dist/index.js.map +1 -1
  136. package/node_modules/@xrkseek/exec-video-gen/dist/format.js +6 -6
  137. package/node_modules/@xrkseek/exec-video-gen/dist/format.js.map +1 -1
  138. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js +2 -2
  139. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js.map +1 -1
  140. package/node_modules/@xrkseek/exec-web/dist/browser-cdp.d.ts.map +1 -1
  141. package/node_modules/@xrkseek/exec-web/dist/browser-cdp.js +26 -1
  142. package/node_modules/@xrkseek/exec-web/dist/browser-cdp.js.map +1 -1
  143. package/node_modules/@xrkseek/exec-web/dist/browser-session.d.ts +10 -2
  144. package/node_modules/@xrkseek/exec-web/dist/browser-session.d.ts.map +1 -1
  145. package/node_modules/@xrkseek/exec-web/dist/browser-session.js +27 -4
  146. package/node_modules/@xrkseek/exec-web/dist/browser-session.js.map +1 -1
  147. package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts.map +1 -1
  148. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js +43 -14
  149. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js.map +1 -1
  150. package/node_modules/@xrkseek/exec-web/dist/format.d.ts.map +1 -1
  151. package/node_modules/@xrkseek/exec-web/dist/format.js +2 -1
  152. package/node_modules/@xrkseek/exec-web/dist/format.js.map +1 -1
  153. package/node_modules/@xrkseek/exec-web/dist/index.d.ts +1 -1
  154. package/node_modules/@xrkseek/exec-web/dist/index.d.ts.map +1 -1
  155. package/node_modules/@xrkseek/exec-web/dist/index.js.map +1 -1
  156. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts +14 -0
  157. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts.map +1 -0
  158. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js +21 -0
  159. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js.map +1 -0
  160. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  161. package/node_modules/@xrkseek/preset-harness/dist/preset.js +28 -4
  162. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  163. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  164. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  165. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  166. package/node_modules/@xrkseek/protocol/dist/workspace-changes.d.ts.map +1 -1
  167. package/node_modules/@xrkseek/protocol/dist/workspace-changes.js +3 -1
  168. package/node_modules/@xrkseek/protocol/dist/workspace-changes.js.map +1 -1
  169. package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts +6 -2
  170. package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts.map +1 -1
  171. package/node_modules/@xrkseek/server-face/dist/attach-http.js +120 -46
  172. package/node_modules/@xrkseek/server-face/dist/attach-http.js.map +1 -1
  173. package/node_modules/@xrkseek/server-face/dist/canvas-store.d.ts +63 -0
  174. package/node_modules/@xrkseek/server-face/dist/canvas-store.d.ts.map +1 -0
  175. package/node_modules/@xrkseek/server-face/dist/canvas-store.js +235 -0
  176. package/node_modules/@xrkseek/server-face/dist/canvas-store.js.map +1 -0
  177. package/node_modules/@xrkseek/server-face/dist/canvas-tools.d.ts +14 -0
  178. package/node_modules/@xrkseek/server-face/dist/canvas-tools.d.ts.map +1 -0
  179. package/node_modules/@xrkseek/server-face/dist/canvas-tools.js +229 -0
  180. package/node_modules/@xrkseek/server-face/dist/canvas-tools.js.map +1 -0
  181. package/node_modules/@xrkseek/server-face/dist/context.d.ts +21 -3
  182. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  183. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  184. package/node_modules/@xrkseek/server-face/dist/dispatch.js +13 -3
  185. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  186. package/node_modules/@xrkseek/server-face/dist/face-schema.d.ts.map +1 -1
  187. package/node_modules/@xrkseek/server-face/dist/face-schema.js +1 -0
  188. package/node_modules/@xrkseek/server-face/dist/face-schema.js.map +1 -1
  189. package/node_modules/@xrkseek/server-face/dist/goal-store.d.ts +2 -0
  190. package/node_modules/@xrkseek/server-face/dist/goal-store.d.ts.map +1 -1
  191. package/node_modules/@xrkseek/server-face/dist/goal-store.js +6 -0
  192. package/node_modules/@xrkseek/server-face/dist/goal-store.js.map +1 -1
  193. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.d.ts +4 -0
  194. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.d.ts.map +1 -0
  195. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.js +70 -0
  196. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.js.map +1 -0
  197. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.d.ts.map +1 -1
  198. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js +2 -1
  199. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js.map +1 -1
  200. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts +11 -1
  201. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts.map +1 -1
  202. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js +170 -4
  203. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js.map +1 -1
  204. package/node_modules/@xrkseek/server-face/dist/handlers/session-added.d.ts.map +1 -1
  205. package/node_modules/@xrkseek/server-face/dist/handlers/session-added.js +3 -2
  206. package/node_modules/@xrkseek/server-face/dist/handlers/session-added.js.map +1 -1
  207. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts +6 -0
  208. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  209. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +90 -6
  210. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  211. package/node_modules/@xrkseek/server-face/dist/index.d.mts +3734 -0
  212. package/node_modules/@xrkseek/server-face/dist/index.d.mts.map +1 -0
  213. package/node_modules/@xrkseek/server-face/dist/index.d.ts +8 -3
  214. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  215. package/node_modules/@xrkseek/server-face/dist/index.js +8 -3
  216. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  217. package/node_modules/@xrkseek/server-face/dist/index.mjs +22085 -0
  218. package/node_modules/@xrkseek/server-face/dist/index.mjs.map +1 -0
  219. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts +51 -0
  220. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts.map +1 -0
  221. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js +104 -0
  222. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js.map +1 -0
  223. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.d.ts +34 -0
  224. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.d.ts.map +1 -0
  225. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.js +41 -0
  226. package/node_modules/@xrkseek/server-face/dist/plugin-agent-presets.js.map +1 -0
  227. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.d.ts +5 -2
  228. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.d.ts.map +1 -1
  229. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.js +13 -2
  230. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.js.map +1 -1
  231. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.d.ts.map +1 -1
  232. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js +3 -1
  233. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js.map +1 -1
  234. package/node_modules/@xrkseek/server-face/dist/remote-event.d.ts +1 -1
  235. package/node_modules/@xrkseek/server-face/dist/remote-event.d.ts.map +1 -1
  236. package/node_modules/@xrkseek/server-face/dist/remote-event.js +1 -0
  237. package/node_modules/@xrkseek/server-face/dist/remote-event.js.map +1 -1
  238. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts +17 -4
  239. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  240. package/node_modules/@xrkseek/server-face/dist/runtime.js +22 -2
  241. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  242. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.d.ts +14 -0
  243. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.d.ts.map +1 -0
  244. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.js +71 -0
  245. package/node_modules/@xrkseek/server-face/dist/session-agent-preset-store.js.map +1 -0
  246. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.d.ts +17 -0
  247. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.d.ts.map +1 -0
  248. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.js +50 -0
  249. package/node_modules/@xrkseek/server-face/dist/session-agent-preset.js.map +1 -0
  250. package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts +4 -0
  251. package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts.map +1 -1
  252. package/node_modules/@xrkseek/server-face/dist/session-attachment.js +30 -7
  253. package/node_modules/@xrkseek/server-face/dist/session-attachment.js.map +1 -1
  254. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  255. package/node_modules/@xrkseek/server-face/dist/session-status.js +2 -1
  256. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  257. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts +6 -0
  258. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  259. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +68 -12
  260. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  261. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  262. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +7 -3
  263. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  264. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  265. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +25 -1
  266. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  267. package/node_modules/@xrkseek/server-face/dist/types.d.ts +3 -0
  268. package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
  269. package/node_modules/@xrkseek/server-face/dist/wire/paths.d.ts.map +1 -1
  270. package/node_modules/@xrkseek/server-face/dist/wire/paths.js +1 -0
  271. package/node_modules/@xrkseek/server-face/dist/wire/paths.js.map +1 -1
  272. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.d.ts +1 -1
  273. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.d.ts.map +1 -1
  274. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.js +15 -0
  275. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.js.map +1 -1
  276. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts +2 -0
  277. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
  278. package/node_modules/@xrkseek/server-face/dist/workspace-face.js +61 -3
  279. package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
  280. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts +33 -2
  281. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts.map +1 -1
  282. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js +61 -2
  283. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js.map +1 -1
  284. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts +2 -0
  285. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts.map +1 -1
  286. package/node_modules/@xrkseek/server-face/dist/workspace-store.js +4 -0
  287. package/node_modules/@xrkseek/server-face/dist/workspace-store.js.map +1 -1
  288. package/node_modules/@xrkseek/server-host/dist/cron-http.d.ts +26 -0
  289. package/node_modules/@xrkseek/server-host/dist/cron-http.d.ts.map +1 -0
  290. package/node_modules/@xrkseek/server-host/dist/cron-http.js +77 -0
  291. package/node_modules/@xrkseek/server-host/dist/cron-http.js.map +1 -0
  292. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  293. package/node_modules/@xrkseek/server-host/dist/index.js +258 -128
  294. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  295. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts +8 -0
  296. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts.map +1 -1
  297. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js +33 -1
  298. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js.map +1 -1
  299. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
  300. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +2 -1
  301. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
  302. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts +2 -0
  303. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts.map +1 -0
  304. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js +98 -0
  305. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js.map +1 -0
  306. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts +18 -0
  307. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts.map +1 -0
  308. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js +141 -0
  309. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js.map +1 -0
  310. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.d.ts +11 -4
  311. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.d.ts.map +1 -1
  312. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.js +353 -2
  313. package/node_modules/@xrkseek/server-host/dist/sidebar-pty.js.map +1 -1
  314. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts +30 -0
  315. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts.map +1 -0
  316. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js +96 -0
  317. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js.map +1 -0
  318. package/node_modules/@xrkseek/server-http/dist/boot-inject.d.ts +14 -0
  319. package/node_modules/@xrkseek/server-http/dist/boot-inject.d.ts.map +1 -1
  320. package/node_modules/@xrkseek/server-http/dist/boot-inject.js +31 -0
  321. package/node_modules/@xrkseek/server-http/dist/boot-inject.js.map +1 -1
  322. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.d.ts.map +1 -1
  323. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js +306 -11
  324. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js.map +1 -1
  325. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts.map +1 -1
  326. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js +53 -3
  327. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js.map +1 -1
  328. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.d.ts +9 -0
  329. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.d.ts.map +1 -0
  330. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.js +80 -0
  331. package/node_modules/@xrkseek/server-http/dist/dsh-compat/billing.js.map +1 -0
  332. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.d.ts +11 -0
  333. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.d.ts.map +1 -0
  334. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.js +152 -0
  335. package/node_modules/@xrkseek/server-http/dist/dsh-compat/code-server.js.map +1 -0
  336. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.d.ts +5 -0
  337. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.d.ts.map +1 -0
  338. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.js +31 -0
  339. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-plugin-root.js.map +1 -0
  340. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.d.ts +17 -3
  341. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.d.ts.map +1 -1
  342. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js +265 -8
  343. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js.map +1 -1
  344. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts.map +1 -1
  345. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js +6 -1
  346. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js.map +1 -1
  347. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.d.ts +7 -0
  348. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.d.ts.map +1 -0
  349. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.js +188 -0
  350. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-codex-ui.js.map +1 -0
  351. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
  352. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +3 -3
  353. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
  354. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.d.ts +11 -0
  355. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.d.ts.map +1 -0
  356. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.js +117 -0
  357. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-context.js.map +1 -0
  358. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.d.ts +11 -0
  359. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.d.ts.map +1 -0
  360. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.js +381 -0
  361. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-email.js.map +1 -0
  362. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.d.ts.map +1 -1
  363. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.js +43 -1
  364. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.js.map +1 -1
  365. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.d.ts +11 -0
  366. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.d.ts.map +1 -0
  367. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.js +173 -0
  368. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-pet-legacy.js.map +1 -0
  369. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.d.ts +17 -0
  370. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.d.ts.map +1 -0
  371. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.js +209 -0
  372. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-skins.js.map +1 -0
  373. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.d.ts +7 -0
  374. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.d.ts.map +1 -0
  375. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.js +470 -0
  376. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-ssh.js.map +1 -0
  377. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.d.ts +7 -0
  378. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.d.ts.map +1 -0
  379. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.js +93 -0
  380. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-update.js.map +1 -0
  381. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.d.ts +27 -0
  382. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.d.ts.map +1 -0
  383. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.js +213 -0
  384. package/node_modules/@xrkseek/server-http/dist/dsh-compat/free-search.js.map +1 -0
  385. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.d.ts +6 -2
  386. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.d.ts.map +1 -1
  387. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js +92 -14
  388. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js.map +1 -1
  389. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.d.ts +1 -0
  390. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.d.ts.map +1 -1
  391. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js +72 -1
  392. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js.map +1 -1
  393. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.d.ts +9 -0
  394. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.d.ts.map +1 -0
  395. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.js +341 -0
  396. package/node_modules/@xrkseek/server-http/dist/dsh-compat/git-graph.js.map +1 -0
  397. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.d.ts.map +1 -1
  398. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js +3 -0
  399. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js.map +1 -1
  400. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.d.ts +7 -0
  401. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.d.ts.map +1 -0
  402. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.js +138 -0
  403. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-connect.js.map +1 -0
  404. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.d.ts +11 -0
  405. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.d.ts.map +1 -0
  406. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.js +85 -0
  407. package/node_modules/@xrkseek/server-http/dist/dsh-compat/install.js.map +1 -0
  408. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.d.ts +27 -0
  409. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.d.ts.map +1 -1
  410. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js +230 -52
  411. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js.map +1 -1
  412. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.d.ts +11 -0
  413. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.d.ts.map +1 -0
  414. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.js +182 -0
  415. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mcp-connector.js.map +1 -0
  416. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.d.ts +13 -0
  417. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.d.ts.map +1 -0
  418. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.js +151 -0
  419. package/node_modules/@xrkseek/server-http/dist/dsh-compat/michengai.js.map +1 -0
  420. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.d.ts +6 -0
  421. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.d.ts.map +1 -1
  422. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.js +34 -0
  423. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon-store.js.map +1 -1
  424. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts +2 -0
  425. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts.map +1 -1
  426. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js +271 -20
  427. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js.map +1 -1
  428. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.d.ts +1 -1
  429. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.d.ts.map +1 -1
  430. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js +105 -21
  431. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js.map +1 -1
  432. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.d.ts +7 -0
  433. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.d.ts.map +1 -0
  434. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.js +81 -0
  435. package/node_modules/@xrkseek/server-http/dist/dsh-compat/niulai-kws.js.map +1 -0
  436. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.d.ts +8 -0
  437. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.d.ts.map +1 -0
  438. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.js +378 -0
  439. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pet.js.map +1 -0
  440. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.d.ts +7 -0
  441. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.d.ts.map +1 -0
  442. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.js +229 -0
  443. package/node_modules/@xrkseek/server-http/dist/dsh-compat/remote-web-ui.js.map +1 -0
  444. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.d.ts +7 -0
  445. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.d.ts.map +1 -0
  446. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.js +300 -0
  447. package/node_modules/@xrkseek/server-http/dist/dsh-compat/server-deck.js.map +1 -0
  448. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.d.ts.map +1 -1
  449. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.js +10 -1
  450. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.js.map +1 -1
  451. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-store.d.ts.map +1 -1
  452. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-store.js +40 -9
  453. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-store.js.map +1 -1
  454. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.d.ts +8 -0
  455. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.d.ts.map +1 -0
  456. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.js +428 -0
  457. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skills-manager.js.map +1 -0
  458. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.d.ts +12 -0
  459. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.d.ts.map +1 -0
  460. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.js +166 -0
  461. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-assets.js.map +1 -0
  462. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts +20 -0
  463. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts.map +1 -0
  464. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.js +308 -0
  465. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.js.map +1 -0
  466. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.d.ts +32 -0
  467. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.d.ts.map +1 -0
  468. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.js +183 -0
  469. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-discover.js.map +1 -0
  470. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.d.ts +2 -0
  471. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.d.ts.map +1 -1
  472. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js +20 -16
  473. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js.map +1 -1
  474. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.d.ts +7 -0
  475. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.d.ts.map +1 -0
  476. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.js +245 -0
  477. package/node_modules/@xrkseek/server-http/dist/dsh-compat/task-board.js.map +1 -0
  478. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.d.ts +9 -0
  479. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.d.ts.map +1 -0
  480. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.js +116 -0
  481. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.js.map +1 -0
  482. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts +1 -0
  483. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts.map +1 -1
  484. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js +5 -2
  485. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js.map +1 -1
  486. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts +2 -1
  487. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts.map +1 -1
  488. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js +2 -1
  489. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js.map +1 -1
  490. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.d.ts +18 -0
  491. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.d.ts.map +1 -0
  492. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.js +65 -0
  493. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/plugin-surface-store.js.map +1 -0
  494. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.d.ts +11 -0
  495. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.d.ts.map +1 -0
  496. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.js +114 -0
  497. package/node_modules/@xrkseek/server-http/dist/dsh-compat/univer-api.js.map +1 -0
  498. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.d.ts +3 -1
  499. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.d.ts.map +1 -1
  500. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js +42 -1
  501. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js.map +1 -1
  502. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.d.ts +6 -1
  503. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.d.ts.map +1 -1
  504. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js +68 -8
  505. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js.map +1 -1
  506. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.d.ts.map +1 -1
  507. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.js +111 -26
  508. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.js.map +1 -1
  509. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.d.ts +6 -0
  510. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.d.ts.map +1 -0
  511. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.js +32 -0
  512. package/node_modules/@xrkseek/server-http/dist/host-owned-paths.js.map +1 -0
  513. package/node_modules/@xrkseek/server-http/dist/index.d.ts +2 -1
  514. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  515. package/node_modules/@xrkseek/server-http/dist/index.js +2 -1
  516. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  517. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.d.ts.map +1 -1
  518. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js +10 -0
  519. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js.map +1 -1
  520. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.d.ts +9 -0
  521. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.d.ts.map +1 -1
  522. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js +68 -21
  523. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js.map +1 -1
  524. package/node_modules/@xrkseek/server-http/package.json +1 -0
  525. package/node_modules/@xrkseek/server-loader/dist/index.d.ts +1 -1
  526. package/node_modules/@xrkseek/server-loader/dist/index.d.ts.map +1 -1
  527. package/node_modules/@xrkseek/server-loader/dist/index.js.map +1 -1
  528. package/node_modules/@xrkseek/server-loader/dist/load.d.ts.map +1 -1
  529. package/node_modules/@xrkseek/server-loader/dist/load.js +5 -2
  530. package/node_modules/@xrkseek/server-loader/dist/load.js.map +1 -1
  531. package/node_modules/@xrkseek/server-loader/dist/managed-state.d.ts +11 -1
  532. package/node_modules/@xrkseek/server-loader/dist/managed-state.d.ts.map +1 -1
  533. package/node_modules/@xrkseek/server-loader/dist/managed-state.js +11 -2
  534. package/node_modules/@xrkseek/server-loader/dist/managed-state.js.map +1 -1
  535. package/node_modules/@xrkseek/workspace/dist/index.d.ts +9 -0
  536. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  537. package/node_modules/@xrkseek/workspace/dist/index.js +4 -2
  538. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  539. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts +32 -2
  540. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts.map +1 -1
  541. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js +69 -2
  542. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js.map +1 -1
  543. package/node_modules/@xrkseek/xrk-session-reference/README.md +1 -1
  544. package/node_modules/@xrkseek/xrk-session-reference/README.zh.md +1 -1
  545. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.d.ts +5 -3
  546. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.d.ts.map +1 -1
  547. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js +20 -17
  548. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js.map +1 -1
  549. package/node_modules/@xrkseek/xrk-session-reference/package.json +1 -1
  550. package/package.json +1 -1
  551. package/node_modules/@xrkseek/server-face/dist/opencode-zen.d.ts +0 -13
  552. package/node_modules/@xrkseek/server-face/dist/opencode-zen.d.ts.map +0 -1
  553. package/node_modules/@xrkseek/server-face/dist/opencode-zen.js +0 -40
  554. package/node_modules/@xrkseek/server-face/dist/opencode-zen.js.map +0 -1
@@ -0,0 +1,308 @@
1
+ /**
2
+ * `@linxin666/dsh-client-ui-skin-center` Host surface (`/api/skin-center/*`).
3
+ *
4
+ * Serves catalog + active preference + static skin files (stylesheet / patches /
5
+ * hooks / assets) from staged `skin.json` packs and bundled `skins/` dirs.
6
+ */
7
+ import { createReadStream, existsSync, readdirSync, statSync, } from "node:fs";
8
+ import path from "node:path";
9
+ import { dataPath } from "./underlying/json-store.js";
10
+ import { sendJson } from "./underlying/http-json.js";
11
+ import { createXrkDocStore } from "./underlying/doc-store.js";
12
+ import { httpMethod, isMutatingMethod, parseJsonBody, } from "./underlying/http-kit.js";
13
+ import { discoverInstalledSkins, findSkinById, resolveSkinRelative, } from "./skin-discover.js";
14
+ function listWallpapersFromUploads(options) {
15
+ const dir = dataPath(options.xrkHome, "wallpaper-engine", "uploads");
16
+ if (!existsSync(dir))
17
+ return [];
18
+ const out = [];
19
+ for (const name of readdirSync(dir)) {
20
+ const abs = path.join(dir, name);
21
+ try {
22
+ const st = statSync(abs);
23
+ if (!st.isFile())
24
+ continue;
25
+ out.push({
26
+ id: name,
27
+ title: path.parse(name).name,
28
+ kind: "upload",
29
+ bytes: st.size,
30
+ });
31
+ }
32
+ catch {
33
+ /* skip */
34
+ }
35
+ }
36
+ return out;
37
+ }
38
+ const EMPTY_STATE = {
39
+ active: null,
40
+ background: null,
41
+ };
42
+ const STORE = createXrkDocStore(["skin-center", "active.json"], EMPTY_STATE);
43
+ function loadState(options) {
44
+ const raw = STORE.read(options.xrkHome).data;
45
+ return {
46
+ active: typeof raw.active === "string" ? raw.active : null,
47
+ background: raw.background ?? null,
48
+ };
49
+ }
50
+ function saveState(options, state) {
51
+ return STORE.write(options.xrkHome, state).revision;
52
+ }
53
+ export function isSkinCenterPath(pathname) {
54
+ return (pathname === "/api/skin-center" || pathname.startsWith("/api/skin-center/"));
55
+ }
56
+ function contentTypeFor(file) {
57
+ if (file.endsWith(".css"))
58
+ return "text/css; charset=utf-8";
59
+ if (file.endsWith(".mjs") || file.endsWith(".js")) {
60
+ return "text/javascript; charset=utf-8";
61
+ }
62
+ if (file.endsWith(".json"))
63
+ return "application/json; charset=utf-8";
64
+ if (file.endsWith(".webp"))
65
+ return "image/webp";
66
+ if (file.endsWith(".png"))
67
+ return "image/png";
68
+ if (file.endsWith(".jpg") || file.endsWith(".jpeg"))
69
+ return "image/jpeg";
70
+ if (file.endsWith(".svg"))
71
+ return "image/svg+xml";
72
+ if (file.endsWith(".mp4"))
73
+ return "video/mp4";
74
+ if (file.endsWith(".webm"))
75
+ return "video/webm";
76
+ return "application/octet-stream";
77
+ }
78
+ function sendFile(req, res, abs) {
79
+ const method = (req.method ?? "GET").toUpperCase();
80
+ const st = statSync(abs);
81
+ const headers = {
82
+ "Content-Type": contentTypeFor(abs),
83
+ "Content-Length": String(st.size),
84
+ "Cache-Control": "public, max-age=60",
85
+ "X-Content-Type-Options": "nosniff",
86
+ };
87
+ res.writeHead(200, headers);
88
+ if (method === "HEAD") {
89
+ res.end();
90
+ return;
91
+ }
92
+ createReadStream(abs).pipe(res);
93
+ }
94
+ function catalogPayload(options) {
95
+ const skins = discoverInstalledSkins(options).map((skin) => {
96
+ const manifest = { ...skin.manifest };
97
+ if (!manifest.version)
98
+ manifest.version = skin.version;
99
+ if (!manifest.id)
100
+ manifest.id = skin.id;
101
+ // Ensure contributes.stylesheet shape for v2 clients when only legacy fields exist.
102
+ if (!manifest.contributes && existsSync(path.join(skin.dir, "skin.css"))) {
103
+ manifest.contributes = {
104
+ stylesheet: "skin.css",
105
+ ...(existsSync(path.join(skin.dir, "patches.css"))
106
+ ? { patches: "patches.css" }
107
+ : {}),
108
+ };
109
+ }
110
+ return {
111
+ manifest,
112
+ ...(skin.channel ? { channel: skin.channel } : {}),
113
+ origin: skin.origin,
114
+ package: skin.packageName,
115
+ };
116
+ });
117
+ return { skins, diagnostics: [] };
118
+ }
119
+ async function handleWe(req, res, pathname, options) {
120
+ const method = httpMethod(req);
121
+ const weBase = "/api/skin-center/we";
122
+ if (pathname === `${weBase}/inventory` && (method === "GET" || method === "HEAD")) {
123
+ const wallpapers = listWallpapersFromUploads(options);
124
+ sendJson(res, 200, {
125
+ ok: true,
126
+ wallpapers,
127
+ total: wallpapers.length,
128
+ });
129
+ return true;
130
+ }
131
+ if (pathname === `${weBase}/scene-probe` && (method === "GET" || method === "HEAD")) {
132
+ sendJson(res, 200, {
133
+ ok: true,
134
+ video: false,
135
+ webgl: false,
136
+ note: "Scene probe is a no-op on XRK Host",
137
+ });
138
+ return true;
139
+ }
140
+ if (pathname.startsWith(`${weBase}/`) && isMutatingMethod(method)) {
141
+ await parseJsonBody(req);
142
+ sendJson(res, 200, {
143
+ ok: true,
144
+ path: pathname,
145
+ note: "Wallpaper Engine actions are not wired on XRK Host",
146
+ });
147
+ return true;
148
+ }
149
+ if (pathname === weBase || pathname.startsWith(`${weBase}/`)) {
150
+ sendJson(res, 200, { ok: true, path: pathname, adapter: "xrk-skin-center" });
151
+ return true;
152
+ }
153
+ return false;
154
+ }
155
+ export async function handleSkinCenterHttp(req, res, pathname, options = {}) {
156
+ if (!isSkinCenterPath(pathname))
157
+ return false;
158
+ const method = httpMethod(req);
159
+ if (await handleWe(req, res, pathname, options))
160
+ return true;
161
+ const v2 = "/api/skin-center/v2";
162
+ if (pathname === `${v2}/catalog` && (method === "GET" || method === "HEAD")) {
163
+ sendJson(res, 200, catalogPayload(options));
164
+ return true;
165
+ }
166
+ if (pathname === `${v2}/active`) {
167
+ if (method === "GET" || method === "HEAD") {
168
+ const state = loadState(options);
169
+ sendJson(res, 200, {
170
+ ok: true,
171
+ active: state.active,
172
+ background: state.background,
173
+ });
174
+ return true;
175
+ }
176
+ if (isMutatingMethod(method)) {
177
+ const body = await parseJsonBody(req);
178
+ const state = loadState(options);
179
+ const next = { ...state };
180
+ if ("active" in body) {
181
+ next.active =
182
+ typeof body.active === "string"
183
+ ? body.active
184
+ : body.active === null
185
+ ? null
186
+ : state.active;
187
+ }
188
+ if ("background" in body) {
189
+ next.background = body.background;
190
+ }
191
+ saveState(options, next);
192
+ sendJson(res, 200, {
193
+ ok: true,
194
+ active: next.active,
195
+ background: next.background,
196
+ });
197
+ return true;
198
+ }
199
+ }
200
+ if (pathname === `${v2}/verify` && isMutatingMethod(method)) {
201
+ await parseJsonBody(req);
202
+ const skins = discoverInstalledSkins(options);
203
+ const details = skins.map((skin) => ({
204
+ id: skin.id,
205
+ ok: true,
206
+ issues: [],
207
+ }));
208
+ sendJson(res, 200, {
209
+ ok: true,
210
+ total: skins.length,
211
+ valid: skins.length,
212
+ issues: 0,
213
+ repaired: [],
214
+ repairFailed: [],
215
+ details,
216
+ });
217
+ return true;
218
+ }
219
+ // `/api/skin-center/v2/skins/<id>/…`
220
+ const skinMatch = pathname.match(/^\/api\/skin-center\/v2\/skins\/([^/]+)(?:\/(.*))?$/);
221
+ if (skinMatch) {
222
+ const skinId = decodeURIComponent(skinMatch[1]);
223
+ const rest = skinMatch[2] ?? "";
224
+ const skin = findSkinById(options, skinId);
225
+ if (!skin) {
226
+ sendJson(res, 404, { ok: false, error: "skin-not-found" });
227
+ return true;
228
+ }
229
+ if (rest === "uninstall" && isMutatingMethod(method)) {
230
+ sendJson(res, 200, {
231
+ ok: true,
232
+ removed: false,
233
+ note: "Uninstall via xrkh plugin remove; Host does not delete staged packs here.",
234
+ });
235
+ return true;
236
+ }
237
+ if (method !== "GET" && method !== "HEAD") {
238
+ sendJson(res, 405, { ok: false, error: "method-not-allowed" });
239
+ return true;
240
+ }
241
+ const contributes = skin.manifest.contributes;
242
+ if (rest === "stylesheet") {
243
+ const rel = (typeof contributes?.stylesheet === "string"
244
+ ? contributes.stylesheet
245
+ : undefined) ?? "skin.css";
246
+ const abs = resolveSkinRelative(skin.dir, rel);
247
+ if (!abs) {
248
+ res.writeHead(404).end();
249
+ return true;
250
+ }
251
+ sendFile(req, res, abs);
252
+ return true;
253
+ }
254
+ if (rest === "patches") {
255
+ const rel = typeof contributes?.patches === "string" ? contributes.patches : undefined;
256
+ if (!rel) {
257
+ res.writeHead(404).end();
258
+ return true;
259
+ }
260
+ const abs = resolveSkinRelative(skin.dir, rel);
261
+ if (!abs) {
262
+ res.writeHead(404).end();
263
+ return true;
264
+ }
265
+ sendFile(req, res, abs);
266
+ return true;
267
+ }
268
+ if (rest === "hooks.mjs") {
269
+ const facets = skin.manifest.facets;
270
+ const entry = facets?.client?.entry ?? "hooks.mjs";
271
+ const abs = resolveSkinRelative(skin.dir, entry);
272
+ if (!abs) {
273
+ res.writeHead(404).end();
274
+ return true;
275
+ }
276
+ sendFile(req, res, abs);
277
+ return true;
278
+ }
279
+ // Background media + preview assets: `/skins/<id>/<relpath>`
280
+ if (rest) {
281
+ const abs = resolveSkinRelative(skin.dir, rest);
282
+ if (!abs) {
283
+ res.writeHead(404).end();
284
+ return true;
285
+ }
286
+ sendFile(req, res, abs);
287
+ return true;
288
+ }
289
+ // Bare skin id → manifest snapshot
290
+ sendJson(res, 200, {
291
+ ok: true,
292
+ manifest: skin.manifest,
293
+ package: skin.packageName,
294
+ });
295
+ return true;
296
+ }
297
+ sendJson(res, 200, {
298
+ ok: true,
299
+ path: pathname,
300
+ adapter: "xrk-skin-center",
301
+ });
302
+ return true;
303
+ }
304
+ /** Test helper — expose catalog builder. */
305
+ export function readSkinCenterCatalogForTest(options) {
306
+ return catalogPayload(options);
307
+ }
308
+ //# sourceMappingURL=skin-center.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-center.js","sourceRoot":"","sources":["../../src/dsh-compat/skin-center.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type XrkPluginServicesOptions } from "../xrk/plugin-services.js";
2
+ export type SkinDiscoverOptions = XrkPluginServicesOptions;
3
+ /** Heuristic package-name hints when `skin.json` is absent. */
4
+ export declare const SKIN_NAME_HINTS: readonly ["skin", "dream-skin", "liang-intensity", "whale-girl", "whale", "maid", "atelier", "theme", "beauty", "endfield", "deep-whale", "open-sea", "custom-skin", "aqua", "orca"];
5
+ export interface DiscoveredSkin {
6
+ readonly id: string;
7
+ readonly name: string;
8
+ readonly nameEn?: string;
9
+ readonly tagline?: string;
10
+ readonly taglineEn?: string;
11
+ readonly packageName: string;
12
+ readonly version: string;
13
+ readonly bodyAttr?: string;
14
+ readonly wiringId?: string;
15
+ readonly dshCompatibility?: string;
16
+ readonly accent?: string;
17
+ readonly dir: string;
18
+ readonly manifest: Record<string, unknown>;
19
+ /** skin-center v2 manifests carry `contributes`. */
20
+ readonly channel?: string;
21
+ readonly origin: "plugin" | "bundled";
22
+ }
23
+ export declare function isSkinPackageName(id: string): boolean;
24
+ /**
25
+ * Scan staged client plugins for `skin.json` (root or bundled `skins/*`).
26
+ * Later plugin roots win over bundled duplicates with the same id.
27
+ */
28
+ export declare function discoverInstalledSkins(options?: SkinDiscoverOptions): DiscoveredSkin[];
29
+ export declare function findSkinById(options: SkinDiscoverOptions, id: string): DiscoveredSkin | undefined;
30
+ /** Resolve a path under a skin dir; rejects traversal. */
31
+ export declare function resolveSkinRelative(skinDir: string, rel: string): string | undefined;
32
+ //# sourceMappingURL=skin-discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-discover.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/skin-discover.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAE3D,+DAA+D;AAC/D,eAAO,MAAM,eAAe,sLAgBlB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,oDAAoD;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CACvC;AAaD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGrD;AA4HD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,mBAAwB,GAChC,cAAc,EAAE,CAkBlB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,GACT,cAAc,GAAG,SAAS,CAE5B;AAED,0DAA0D;AAC1D,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAWpB"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Discover installed community skins under `{pluginsDir}/web/plugins`.
3
+ * Shared by `/api/dsh/skins`, `/api/skin-center`, `/dsh-skin-market`, and audits.
4
+ */
5
+ import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
6
+ import path from "node:path";
7
+ import { readXrkPluginInventory, resolvePluginsDir, } from "../xrk/plugin-services.js";
8
+ /** Heuristic package-name hints when `skin.json` is absent. */
9
+ export const SKIN_NAME_HINTS = [
10
+ "skin",
11
+ "dream-skin",
12
+ "liang-intensity",
13
+ "whale-girl",
14
+ "whale",
15
+ "maid",
16
+ "atelier",
17
+ "theme",
18
+ "beauty",
19
+ "endfield",
20
+ "deep-whale",
21
+ "open-sea",
22
+ "custom-skin",
23
+ "aqua",
24
+ "orca",
25
+ ];
26
+ function asRecord(value) {
27
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
28
+ return undefined;
29
+ }
30
+ return value;
31
+ }
32
+ function asString(value) {
33
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
34
+ }
35
+ export function isSkinPackageName(id) {
36
+ const lower = id.toLowerCase();
37
+ return SKIN_NAME_HINTS.some((h) => lower.includes(h));
38
+ }
39
+ function packageNameFromDir(pluginsWeb, dir) {
40
+ const rel = path.relative(pluginsWeb, dir).split(path.sep).join("/");
41
+ return rel || path.basename(dir);
42
+ }
43
+ function readPackageVersion(dir) {
44
+ try {
45
+ const raw = JSON.parse(readFileSync(path.join(dir, "package.json"), "utf8"));
46
+ return asString(raw.version) ?? "0.0.0";
47
+ }
48
+ catch {
49
+ return "0.0.0";
50
+ }
51
+ }
52
+ function parseSkinJson(dir, packageName, origin, channel) {
53
+ const skinJson = path.join(dir, "skin.json");
54
+ if (!existsSync(skinJson))
55
+ return undefined;
56
+ let raw;
57
+ try {
58
+ raw = JSON.parse(readFileSync(skinJson, "utf8"));
59
+ }
60
+ catch {
61
+ return undefined;
62
+ }
63
+ const id = asString(raw.id);
64
+ const name = asString(raw.name);
65
+ if (!id || !name)
66
+ return undefined;
67
+ const wiring = asRecord(raw.wiring);
68
+ const declaredPackage = asString(raw.package) ?? packageName;
69
+ const version = asString(raw.version) ?? readPackageVersion(dir);
70
+ const nameEn = asString(raw.nameEn);
71
+ const tagline = asString(raw.tagline);
72
+ const taglineEn = asString(raw.taglineEn);
73
+ const bodyAttr = asString(raw.bodyAttr);
74
+ const wiringId = asString(wiring?.id);
75
+ const dshCompatibility = asString(raw.dshCompatibility);
76
+ const accent = asString(raw.accent);
77
+ return {
78
+ id,
79
+ name,
80
+ ...(nameEn ? { nameEn } : {}),
81
+ ...(tagline ? { tagline } : {}),
82
+ ...(taglineEn ? { taglineEn } : {}),
83
+ packageName: declaredPackage,
84
+ version,
85
+ ...(bodyAttr ? { bodyAttr } : {}),
86
+ ...(wiringId ? { wiringId } : {}),
87
+ ...(dshCompatibility ? { dshCompatibility } : {}),
88
+ ...(accent ? { accent } : {}),
89
+ dir,
90
+ manifest: raw,
91
+ ...(channel ? { channel } : {}),
92
+ origin,
93
+ };
94
+ }
95
+ function visitPluginTree(pluginsWeb, dir, out) {
96
+ let entries;
97
+ try {
98
+ entries = readdirSync(dir, { withFileTypes: true });
99
+ }
100
+ catch {
101
+ return;
102
+ }
103
+ const packageName = packageNameFromDir(pluginsWeb, dir);
104
+ const rootSkin = parseSkinJson(dir, packageName, "plugin");
105
+ if (rootSkin && !out.has(rootSkin.id)) {
106
+ out.set(rootSkin.id, rootSkin);
107
+ }
108
+ // Bundled skins next to a manager/center package: `skins/<id>/skin.json`
109
+ const skinsDir = path.join(dir, "skins");
110
+ if (existsSync(skinsDir)) {
111
+ try {
112
+ for (const ent of readdirSync(skinsDir, { withFileTypes: true })) {
113
+ if (!ent.isDirectory())
114
+ continue;
115
+ const nested = path.join(skinsDir, ent.name);
116
+ const nestedSkin = parseSkinJson(nested, `${packageName}/skins/${ent.name}`, "bundled", "bundled");
117
+ if (nestedSkin && !out.has(nestedSkin.id)) {
118
+ out.set(nestedSkin.id, nestedSkin);
119
+ }
120
+ }
121
+ }
122
+ catch {
123
+ /* skip */
124
+ }
125
+ }
126
+ for (const ent of entries) {
127
+ if (!ent.isDirectory())
128
+ continue;
129
+ if (ent.name === "node_modules" ||
130
+ ent.name === "chunks" ||
131
+ ent.name === "assets" ||
132
+ ent.name === "skins" ||
133
+ ent.name === "preview" ||
134
+ ent.name === "locale" ||
135
+ ent.name === "kws" ||
136
+ ent.name === "static") {
137
+ continue;
138
+ }
139
+ visitPluginTree(pluginsWeb, path.join(dir, ent.name), out);
140
+ }
141
+ }
142
+ /**
143
+ * Scan staged client plugins for `skin.json` (root or bundled `skins/*`).
144
+ * Later plugin roots win over bundled duplicates with the same id.
145
+ */
146
+ export function discoverInstalledSkins(options = {}) {
147
+ const pluginsDir = resolvePluginsDir(options);
148
+ const web = path.join(pluginsDir, "web", "plugins");
149
+ const byId = new Map();
150
+ if (existsSync(web)) {
151
+ visitPluginTree(web, web, byId);
152
+ }
153
+ // Prefer inventory package versions when present.
154
+ const inv = readXrkPluginInventory(options);
155
+ for (const skin of byId.values()) {
156
+ const fromInv = inv.installedMap[skin.packageName]?.version;
157
+ if (fromInv && skin.version === "0.0.0") {
158
+ byId.set(skin.id, { ...skin, version: fromInv });
159
+ }
160
+ }
161
+ return [...byId.values()].sort((a, b) => a.id.localeCompare(b.id));
162
+ }
163
+ export function findSkinById(options, id) {
164
+ return discoverInstalledSkins(options).find((s) => s.id === id);
165
+ }
166
+ /** Resolve a path under a skin dir; rejects traversal. */
167
+ export function resolveSkinRelative(skinDir, rel) {
168
+ if (!rel || rel.includes("\0") || path.isAbsolute(rel))
169
+ return undefined;
170
+ const target = path.resolve(skinDir, rel);
171
+ const base = path.resolve(skinDir);
172
+ if (target !== base && !target.startsWith(base + path.sep))
173
+ return undefined;
174
+ try {
175
+ if (statSync(target).isFile())
176
+ return target;
177
+ }
178
+ catch {
179
+ return undefined;
180
+ }
181
+ return undefined;
182
+ }
183
+ //# sourceMappingURL=skin-discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-discover.js","sourceRoot":"","sources":["../../src/dsh-compat/skin-discover.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAElB,MAAM,2BAA2B,CAAC;AAInC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,YAAY;IACZ,iBAAiB;IACjB,YAAY;IACZ,OAAO;IACP,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,UAAU;IACV,aAAa;IACb,MAAM;IACN,MAAM;CACE,CAAC;AAqBX,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,GAAW;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC5B,CAAC;QAC3B,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,GAAW,EACX,WAAmB,EACnB,MAAgC,EAChC,OAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAA4B,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC;IAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;QACL,EAAE;QACF,IAAI;QACJ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,WAAW,EAAE,eAAe;QAC5B,OAAO;QACP,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG;QACH,QAAQ,EAAE,GAAG;QACb,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,UAAkB,EAClB,GAAW,EACX,GAAgC;IAEhC,IAAI,OAAwD,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,UAAU,GAAG,aAAa,CAC9B,MAAM,EACN,GAAG,WAAW,UAAU,GAAG,CAAC,IAAI,EAAE,EAClC,SAAS,EACT,SAAS,CACV,CAAC;gBACF,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YAAE,SAAS;QACjC,IACE,GAAG,CAAC,IAAI,KAAK,cAAc;YAC3B,GAAG,CAAC,IAAI,KAAK,QAAQ;YACrB,GAAG,CAAC,IAAI,KAAK,QAAQ;YACrB,GAAG,CAAC,IAAI,KAAK,OAAO;YACpB,GAAG,CAAC,IAAI,KAAK,SAAS;YACtB,GAAG,CAAC,IAAI,KAAK,QAAQ;YACrB,GAAG,CAAC,IAAI,KAAK,KAAK;YAClB,GAAG,CAAC,IAAI,KAAK,QAAQ,EACrB,CAAC;YACD,SAAS;QACX,CAAC;QACD,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAA+B,EAAE;IAEjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC/C,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,kDAAkD;IAClD,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAC5D,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAA4B,EAC5B,EAAU;IAEV,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,GAAW;IAEX,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;YAAE,OAAO,MAAM,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -3,6 +3,8 @@
3
3
  */
4
4
  import type { IncomingMessage, ServerResponse } from "node:http";
5
5
  import { type XrkPluginServicesOptions } from "../xrk/plugin-services.js";
6
+ import { isSkinPackageName, SKIN_NAME_HINTS } from "./skin-discover.js";
7
+ export { SKIN_NAME_HINTS, isSkinPackageName };
6
8
  export interface SkinMarketOptions extends XrkPluginServicesOptions {
7
9
  readonly xrkHome?: string;
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skin-market.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/skin-market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AAInC,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,CAkDlB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAOR"}
1
+ {"version":3,"file":"skin-market.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/skin-market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEL,iBAAiB,EACjB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC;AAE9C,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AA2ED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,CAkDlB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAOR"}
@@ -2,13 +2,8 @@ import { sendJson } from "./underlying/http-json.js";
2
2
  import { readXrkPluginInventory, } from "../xrk/plugin-services.js";
3
3
  import { createXrkDocStore } from "./underlying/doc-store.js";
4
4
  import { httpMethod, isMutatingMethod, parseJsonBody } from "./underlying/http-kit.js";
5
- const SKIN_NAME_HINTS = [
6
- "skin",
7
- "dream-skin",
8
- "liang-intensity",
9
- "whale-girl",
10
- "theme",
11
- ];
5
+ import { discoverInstalledSkins, isSkinPackageName, SKIN_NAME_HINTS, } from "./skin-discover.js";
6
+ export { SKIN_NAME_HINTS, isSkinPackageName };
12
7
  const EMPTY_STATE = {
13
8
  activeSkinId: null,
14
9
  skins: [],
@@ -17,15 +12,22 @@ const SKIN_MARKET_STORE = createXrkDocStore(["skin-market", "state.json"], EMPTY
17
12
  function loadState(options) {
18
13
  return SKIN_MARKET_STORE.read(options.xrkHome).data;
19
14
  }
20
- function isSkinPlugin(id) {
21
- const lower = id.toLowerCase();
22
- return SKIN_NAME_HINTS.some((h) => lower.includes(h));
23
- }
24
15
  function buildCatalog(options) {
16
+ const discovered = discoverInstalledSkins(options);
17
+ if (discovered.length > 0) {
18
+ return discovered.map((skin) => ({
19
+ id: skin.id,
20
+ name: skin.name,
21
+ version: skin.version,
22
+ description: skin.tagline ?? `Installed skin (${skin.packageName})`,
23
+ package: skin.packageName,
24
+ source: "xrk-skin-json",
25
+ ...(skin.accent ? { accent: skin.accent } : {}),
26
+ }));
27
+ }
28
+ // Fallback: inventory name hints when no skin.json staged yet.
25
29
  const inv = readXrkPluginInventory(options);
26
- return inv.present
27
- .filter(isSkinPlugin)
28
- .map((id) => ({
30
+ return inv.present.filter(isSkinPackageName).map((id) => ({
29
31
  id,
30
32
  name: id,
31
33
  version: inv.installedMap[id]?.version ?? "0.0.0",
@@ -40,11 +42,13 @@ function buildStatePayload(options) {
40
42
  const skins = stored.skins.length
41
43
  ? stored.skins
42
44
  : stored.activeSkinId && catalogIds.has(stored.activeSkinId)
43
- ? [{
45
+ ? [
46
+ {
44
47
  skinId: stored.activeSkinId,
45
48
  primary: true,
46
49
  activation: "active",
47
- }]
50
+ },
51
+ ]
48
52
  : [];
49
53
  return {
50
54
  skins,
@@ -1 +1 @@
1
- {"version":3,"file":"skin-market.js","sourceRoot":"","sources":["../../src/dsh-compat/skin-market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skin-market.js","sourceRoot":"","sources":["../../src/dsh-compat/skin-market.ts"],"names":[],"mappings":"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"}