@xrkseek/harness 0.6.21 → 0.7.0-rc.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 (677) hide show
  1. package/node_modules/@xrkseek/a2a/README.md +45 -45
  2. package/node_modules/@xrkseek/attachment/README.md +23 -23
  3. package/node_modules/@xrkseek/attachment-local/README.md +6 -6
  4. package/node_modules/@xrkseek/attachment-local/package.json +26 -26
  5. package/node_modules/@xrkseek/checkpoint/README.md +90 -90
  6. package/node_modules/@xrkseek/checkpoint/dist/store.d.ts +21 -0
  7. package/node_modules/@xrkseek/checkpoint/dist/store.d.ts.map +1 -1
  8. package/node_modules/@xrkseek/checkpoint/dist/store.js +33 -0
  9. package/node_modules/@xrkseek/checkpoint/dist/store.js.map +1 -1
  10. package/node_modules/@xrkseek/checkpoint/package.json +26 -26
  11. package/node_modules/@xrkseek/claude-code-mods/README.md +152 -0
  12. package/node_modules/@xrkseek/claude-code-mods/README.zh.md +172 -0
  13. package/node_modules/@xrkseek/claude-code-mods/dist/api.d.ts +36 -0
  14. package/node_modules/@xrkseek/claude-code-mods/dist/api.d.ts.map +1 -0
  15. package/node_modules/@xrkseek/claude-code-mods/dist/api.js +215 -0
  16. package/node_modules/@xrkseek/claude-code-mods/dist/api.js.map +1 -0
  17. package/node_modules/@xrkseek/claude-code-mods/dist/attach.d.ts +92 -0
  18. package/node_modules/@xrkseek/claude-code-mods/dist/attach.d.ts.map +1 -0
  19. package/node_modules/@xrkseek/claude-code-mods/dist/attach.js +106 -0
  20. package/node_modules/@xrkseek/claude-code-mods/dist/attach.js.map +1 -0
  21. package/node_modules/@xrkseek/claude-code-mods/dist/chain.d.ts +105 -0
  22. package/node_modules/@xrkseek/claude-code-mods/dist/chain.d.ts.map +1 -0
  23. package/node_modules/@xrkseek/claude-code-mods/dist/chain.js +324 -0
  24. package/node_modules/@xrkseek/claude-code-mods/dist/chain.js.map +1 -0
  25. package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.d.ts +39 -0
  26. package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.d.ts.map +1 -0
  27. package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.js +39 -0
  28. package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.js.map +1 -0
  29. package/node_modules/@xrkseek/claude-code-mods/dist/elements.d.ts +96 -0
  30. package/node_modules/@xrkseek/claude-code-mods/dist/elements.d.ts.map +1 -0
  31. package/node_modules/@xrkseek/claude-code-mods/dist/elements.js +171 -0
  32. package/node_modules/@xrkseek/claude-code-mods/dist/elements.js.map +1 -0
  33. package/node_modules/@xrkseek/claude-code-mods/dist/engine.d.ts +155 -0
  34. package/node_modules/@xrkseek/claude-code-mods/dist/engine.d.ts.map +1 -0
  35. package/node_modules/@xrkseek/claude-code-mods/dist/engine.js +356 -0
  36. package/node_modules/@xrkseek/claude-code-mods/dist/engine.js.map +1 -0
  37. package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.d.ts +72 -0
  38. package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.d.ts.map +1 -0
  39. package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.js +603 -0
  40. package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.js.map +1 -0
  41. package/node_modules/@xrkseek/claude-code-mods/dist/index.d.ts +112 -0
  42. package/node_modules/@xrkseek/claude-code-mods/dist/index.d.ts.map +1 -0
  43. package/node_modules/@xrkseek/claude-code-mods/dist/index.js +654 -0
  44. package/node_modules/@xrkseek/claude-code-mods/dist/index.js.map +1 -0
  45. package/node_modules/@xrkseek/claude-code-mods/dist/matcher.d.ts +45 -0
  46. package/node_modules/@xrkseek/claude-code-mods/dist/matcher.d.ts.map +1 -0
  47. package/node_modules/@xrkseek/claude-code-mods/dist/matcher.js +195 -0
  48. package/node_modules/@xrkseek/claude-code-mods/dist/matcher.js.map +1 -0
  49. package/node_modules/@xrkseek/claude-code-mods/dist/module.d.ts +74 -0
  50. package/node_modules/@xrkseek/claude-code-mods/dist/module.d.ts.map +1 -0
  51. package/node_modules/@xrkseek/claude-code-mods/dist/module.js +167 -0
  52. package/node_modules/@xrkseek/claude-code-mods/dist/module.js.map +1 -0
  53. package/node_modules/@xrkseek/claude-code-mods/dist/native-import.d.ts +31 -0
  54. package/node_modules/@xrkseek/claude-code-mods/dist/native-import.d.ts.map +1 -0
  55. package/node_modules/@xrkseek/claude-code-mods/dist/native-import.js +32 -0
  56. package/node_modules/@xrkseek/claude-code-mods/dist/native-import.js.map +1 -0
  57. package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.d.ts +70 -0
  58. package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.d.ts.map +1 -0
  59. package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.js +167 -0
  60. package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.js.map +1 -0
  61. package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.d.ts +57 -0
  62. package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.d.ts.map +1 -0
  63. package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.js +85 -0
  64. package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.js.map +1 -0
  65. package/node_modules/@xrkseek/claude-code-mods/dist/runtime.d.ts +117 -0
  66. package/node_modules/@xrkseek/claude-code-mods/dist/runtime.d.ts.map +1 -0
  67. package/node_modules/@xrkseek/claude-code-mods/dist/runtime.js +252 -0
  68. package/node_modules/@xrkseek/claude-code-mods/dist/runtime.js.map +1 -0
  69. package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.d.ts +68 -0
  70. package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.d.ts.map +1 -0
  71. package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.js +104 -0
  72. package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.js.map +1 -0
  73. package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.d.ts +82 -0
  74. package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.d.ts.map +1 -0
  75. package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.js +243 -0
  76. package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.js.map +1 -0
  77. package/node_modules/@xrkseek/claude-code-mods/dist/testing.d.ts +157 -0
  78. package/node_modules/@xrkseek/claude-code-mods/dist/testing.d.ts.map +1 -0
  79. package/node_modules/@xrkseek/claude-code-mods/dist/testing.js +266 -0
  80. package/node_modules/@xrkseek/claude-code-mods/dist/testing.js.map +1 -0
  81. package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.d.ts +21 -0
  82. package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.d.ts.map +1 -0
  83. package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.js +37 -0
  84. package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.js.map +1 -0
  85. package/node_modules/@xrkseek/claude-code-mods/dist/types.d.ts +592 -0
  86. package/node_modules/@xrkseek/claude-code-mods/dist/types.d.ts.map +1 -0
  87. package/node_modules/@xrkseek/claude-code-mods/dist/types.js +10 -0
  88. package/node_modules/@xrkseek/claude-code-mods/dist/types.js.map +1 -0
  89. package/node_modules/@xrkseek/claude-code-mods/dist/values.d.ts +58 -0
  90. package/node_modules/@xrkseek/claude-code-mods/dist/values.d.ts.map +1 -0
  91. package/node_modules/@xrkseek/claude-code-mods/dist/values.js +75 -0
  92. package/node_modules/@xrkseek/claude-code-mods/dist/values.js.map +1 -0
  93. package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.d.ts +45 -0
  94. package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.d.ts.map +1 -0
  95. package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.js +29 -0
  96. package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.js.map +1 -0
  97. package/node_modules/@xrkseek/claude-code-mods/package.json +47 -0
  98. package/node_modules/@xrkseek/code-runtime/README.md +20 -20
  99. package/node_modules/@xrkseek/core-agent/dist/index.d.ts +87 -0
  100. package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
  101. package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
  102. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  103. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +9 -1
  104. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  105. package/node_modules/@xrkseek/core-agent-loop/package.json +42 -42
  106. package/node_modules/@xrkseek/core-session/README.md +35 -35
  107. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
  108. package/node_modules/@xrkseek/core-session/dist/compaction.js +62 -37
  109. package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
  110. package/node_modules/@xrkseek/core-session/dist/freeze.d.ts +6 -0
  111. package/node_modules/@xrkseek/core-session/dist/freeze.d.ts.map +1 -1
  112. package/node_modules/@xrkseek/core-session/dist/freeze.js +9 -0
  113. package/node_modules/@xrkseek/core-session/dist/freeze.js.map +1 -1
  114. package/node_modules/@xrkseek/core-session/dist/index.d.ts +18 -2
  115. package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
  116. package/node_modules/@xrkseek/core-session/dist/index.js +53 -12
  117. package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
  118. package/node_modules/@xrkseek/core-session/dist/list-hints.d.ts.map +1 -1
  119. package/node_modules/@xrkseek/core-session/dist/list-hints.js +14 -4
  120. package/node_modules/@xrkseek/core-session/dist/list-hints.js.map +1 -1
  121. package/node_modules/@xrkseek/core-session/dist/repair-open-turn.d.ts +8 -1
  122. package/node_modules/@xrkseek/core-session/dist/repair-open-turn.d.ts.map +1 -1
  123. package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js +14 -4
  124. package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js.map +1 -1
  125. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts +55 -0
  126. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
  127. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +670 -92
  128. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
  129. package/node_modules/@xrkseek/core-session/dist/store.d.ts +38 -0
  130. package/node_modules/@xrkseek/core-session/dist/store.d.ts.map +1 -1
  131. package/node_modules/@xrkseek/core-session/package.json +34 -34
  132. package/node_modules/@xrkseek/core-system-prompt/README.md +14 -14
  133. package/node_modules/@xrkseek/core-tools/dist/session-query-prompt.d.ts.map +1 -1
  134. package/node_modules/@xrkseek/core-tools/dist/session-query-prompt.js +3 -2
  135. package/node_modules/@xrkseek/core-tools/dist/session-query-prompt.js.map +1 -1
  136. package/node_modules/@xrkseek/core-tools/dist/std-tools.d.ts.map +1 -1
  137. package/node_modules/@xrkseek/core-tools/dist/std-tools.js +1 -13
  138. package/node_modules/@xrkseek/core-tools/dist/std-tools.js.map +1 -1
  139. package/node_modules/@xrkseek/exec-computer-use/README.md +14 -14
  140. package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.js +402 -402
  141. package/node_modules/@xrkseek/exec-computer-use/package.json +26 -26
  142. package/node_modules/@xrkseek/exec-fs/README.md +12 -12
  143. package/node_modules/@xrkseek/exec-fs/dist/read-image.js +4 -4
  144. package/node_modules/@xrkseek/exec-image-gen/README.md +13 -13
  145. package/node_modules/@xrkseek/exec-image-gen/package.json +28 -28
  146. package/node_modules/@xrkseek/exec-memory/README.md +14 -14
  147. package/node_modules/@xrkseek/exec-memory/dist/live-fragment.d.ts +11 -0
  148. package/node_modules/@xrkseek/exec-memory/dist/live-fragment.d.ts.map +1 -0
  149. package/node_modules/@xrkseek/exec-memory/dist/live-fragment.js +40 -0
  150. package/node_modules/@xrkseek/exec-memory/dist/live-fragment.js.map +1 -0
  151. package/node_modules/@xrkseek/exec-memory/package.json +28 -28
  152. package/node_modules/@xrkseek/exec-sandbox/README.md +15 -15
  153. package/node_modules/@xrkseek/exec-ssh/README.md +19 -19
  154. package/node_modules/@xrkseek/exec-subprocess/README.md +10 -10
  155. package/node_modules/@xrkseek/exec-video-analyze/README.md +11 -11
  156. package/node_modules/@xrkseek/exec-video-analyze/package.json +26 -26
  157. package/node_modules/@xrkseek/exec-video-gen/README.md +26 -26
  158. package/node_modules/@xrkseek/exec-voice/README.md +25 -25
  159. package/node_modules/@xrkseek/exec-web/README.md +11 -11
  160. package/node_modules/@xrkseek/llm-deepseek/README.md +22 -22
  161. package/node_modules/@xrkseek/llm-deepseek/package.json +30 -30
  162. package/node_modules/@xrkseek/llm-registry/dist/index.d.ts +2 -2
  163. package/node_modules/@xrkseek/llm-registry/dist/index.d.ts.map +1 -1
  164. package/node_modules/@xrkseek/llm-registry/dist/index.js +1 -1
  165. package/node_modules/@xrkseek/llm-registry/dist/index.js.map +1 -1
  166. package/node_modules/@xrkseek/llm-registry/dist/types.d.ts +29 -0
  167. package/node_modules/@xrkseek/llm-registry/dist/types.d.ts.map +1 -1
  168. package/node_modules/@xrkseek/llm-registry/dist/types.js +21 -0
  169. package/node_modules/@xrkseek/llm-registry/dist/types.js.map +1 -1
  170. package/node_modules/@xrkseek/mcp/README.md +78 -78
  171. package/node_modules/@xrkseek/policy/README.md +18 -18
  172. package/node_modules/@xrkseek/policy/package.json +31 -31
  173. package/node_modules/@xrkseek/preset-harness/README.md +7 -7
  174. package/node_modules/@xrkseek/preset-harness/dist/mods.d.ts +68 -0
  175. package/node_modules/@xrkseek/preset-harness/dist/mods.d.ts.map +1 -0
  176. package/node_modules/@xrkseek/preset-harness/dist/mods.js +510 -0
  177. package/node_modules/@xrkseek/preset-harness/dist/mods.js.map +1 -0
  178. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +12 -1
  179. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  180. package/node_modules/@xrkseek/preset-harness/dist/preset.js +73 -26
  181. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  182. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  183. package/node_modules/@xrkseek/preset-harness/package.json +9 -8
  184. package/node_modules/@xrkseek/preset-minimal/README.md +6 -6
  185. package/node_modules/@xrkseek/preset-minimal/dist/preset.d.ts.map +1 -1
  186. package/node_modules/@xrkseek/preset-minimal/dist/preset.js +9 -3
  187. package/node_modules/@xrkseek/preset-minimal/dist/preset.js.map +1 -1
  188. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  189. package/node_modules/@xrkseek/preset-server/README.md +4 -4
  190. package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
  191. package/node_modules/@xrkseek/preset-server/dist/preset.js +2 -1
  192. package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
  193. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  194. package/node_modules/@xrkseek/protocol/README.md +34 -34
  195. package/node_modules/@xrkseek/protocol/dist/index.d.ts +3 -2
  196. package/node_modules/@xrkseek/protocol/dist/index.d.ts.map +1 -1
  197. package/node_modules/@xrkseek/protocol/dist/index.js +1 -0
  198. package/node_modules/@xrkseek/protocol/dist/index.js.map +1 -1
  199. package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts +12 -0
  200. package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts.map +1 -1
  201. package/node_modules/@xrkseek/protocol/dist/json-schema.js +9 -0
  202. package/node_modules/@xrkseek/protocol/dist/json-schema.js.map +1 -1
  203. package/node_modules/@xrkseek/protocol/dist/json-value.d.ts +25 -0
  204. package/node_modules/@xrkseek/protocol/dist/json-value.d.ts.map +1 -0
  205. package/node_modules/@xrkseek/protocol/dist/json-value.js +181 -0
  206. package/node_modules/@xrkseek/protocol/dist/json-value.js.map +1 -0
  207. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +21 -1
  208. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
  209. package/node_modules/@xrkseek/protocol/dist/session-events.js +1 -0
  210. package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
  211. package/node_modules/@xrkseek/protocol/dist/validate.d.ts +4 -1
  212. package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
  213. package/node_modules/@xrkseek/protocol/dist/validate.js +28 -2
  214. package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
  215. package/node_modules/@xrkseek/schemastery/lib/index.cjs +597 -597
  216. package/node_modules/@xrkseek/schemastery/lib/index.mjs +597 -597
  217. package/node_modules/@xrkseek/schemastery/lib/types/index.d.ts +203 -203
  218. package/node_modules/@xrkseek/schemastery/src/index.d.ts +203 -203
  219. package/node_modules/@xrkseek/schemastery/src/index.ts +906 -906
  220. package/node_modules/@xrkseek/server-config/package.json +28 -28
  221. package/node_modules/@xrkseek/server-cron/README.md +12 -12
  222. package/node_modules/@xrkseek/server-cron/package.json +26 -26
  223. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts +22 -0
  224. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts.map +1 -1
  225. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js +40 -3
  226. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js.map +1 -1
  227. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
  228. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +2 -0
  229. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
  230. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts +1 -0
  231. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts.map +1 -1
  232. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js +2 -0
  233. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js.map +1 -1
  234. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts +5 -0
  235. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts.map +1 -1
  236. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js +7 -0
  237. package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js.map +1 -1
  238. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts +31 -0
  239. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts.map +1 -0
  240. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js +71 -0
  241. package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js.map +1 -0
  242. package/node_modules/@xrkseek/server-face/dist/agent-home.d.ts +18 -0
  243. package/node_modules/@xrkseek/server-face/dist/agent-home.d.ts.map +1 -0
  244. package/node_modules/@xrkseek/server-face/dist/agent-home.js +64 -0
  245. package/node_modules/@xrkseek/server-face/dist/agent-home.js.map +1 -0
  246. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts +41 -2
  247. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -1
  248. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +200 -28
  249. package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -1
  250. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +1 -1
  251. package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
  252. package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts.map +1 -1
  253. package/node_modules/@xrkseek/server-face/dist/attach-http.js +9 -0
  254. package/node_modules/@xrkseek/server-face/dist/attach-http.js.map +1 -1
  255. package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.d.ts +55 -0
  256. package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.d.ts.map +1 -0
  257. package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.js +167 -0
  258. package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.js.map +1 -0
  259. package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts +12 -0
  260. package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts.map +1 -1
  261. package/node_modules/@xrkseek/server-face/dist/collab-board.js +101 -19
  262. package/node_modules/@xrkseek/server-face/dist/collab-board.js.map +1 -1
  263. package/node_modules/@xrkseek/server-face/dist/context.d.ts +25 -2
  264. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  265. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  266. package/node_modules/@xrkseek/server-face/dist/dispatch.js +6 -2
  267. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  268. package/node_modules/@xrkseek/server-face/dist/face-schema.d.ts.map +1 -1
  269. package/node_modules/@xrkseek/server-face/dist/face-schema.js +2 -1
  270. package/node_modules/@xrkseek/server-face/dist/face-schema.js.map +1 -1
  271. package/node_modules/@xrkseek/server-face/dist/fork-cut.d.ts.map +1 -1
  272. package/node_modules/@xrkseek/server-face/dist/fork-cut.js +15 -3
  273. package/node_modules/@xrkseek/server-face/dist/fork-cut.js.map +1 -1
  274. package/node_modules/@xrkseek/server-face/dist/fork-lineage.d.ts +7 -0
  275. package/node_modules/@xrkseek/server-face/dist/fork-lineage.d.ts.map +1 -1
  276. package/node_modules/@xrkseek/server-face/dist/fork-lineage.js +23 -8
  277. package/node_modules/@xrkseek/server-face/dist/fork-lineage.js.map +1 -1
  278. package/node_modules/@xrkseek/server-face/dist/handlers/band.d.ts +7 -0
  279. package/node_modules/@xrkseek/server-face/dist/handlers/band.d.ts.map +1 -0
  280. package/node_modules/@xrkseek/server-face/dist/handlers/band.js +40 -0
  281. package/node_modules/@xrkseek/server-face/dist/handlers/band.js.map +1 -0
  282. package/node_modules/@xrkseek/server-face/dist/handlers/checkpoint.d.ts.map +1 -1
  283. package/node_modules/@xrkseek/server-face/dist/handlers/checkpoint.js +81 -3
  284. package/node_modules/@xrkseek/server-face/dist/handlers/checkpoint.js.map +1 -1
  285. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts.map +1 -1
  286. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js +4 -1
  287. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js.map +1 -1
  288. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts +2 -0
  289. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  290. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +236 -62
  291. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  292. package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts.map +1 -1
  293. package/node_modules/@xrkseek/server-face/dist/handlers/team.js +100 -9
  294. package/node_modules/@xrkseek/server-face/dist/handlers/team.js.map +1 -1
  295. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts +8 -1
  296. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts.map +1 -1
  297. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js +15 -1
  298. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js.map +1 -1
  299. package/node_modules/@xrkseek/server-face/dist/index.d.ts +5 -1
  300. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  301. package/node_modules/@xrkseek/server-face/dist/index.js +5 -1
  302. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  303. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.d.ts +19 -0
  304. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.d.ts.map +1 -0
  305. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.js +28 -0
  306. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.js.map +1 -0
  307. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.d.ts +3 -0
  308. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.d.ts.map +1 -0
  309. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.js +22 -0
  310. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.js.map +1 -0
  311. package/node_modules/@xrkseek/server-face/dist/managed-worktree.d.ts +66 -4
  312. package/node_modules/@xrkseek/server-face/dist/managed-worktree.d.ts.map +1 -1
  313. package/node_modules/@xrkseek/server-face/dist/managed-worktree.js +147 -5
  314. package/node_modules/@xrkseek/server-face/dist/managed-worktree.js.map +1 -1
  315. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  316. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +60 -5
  317. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  318. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts +2 -2
  319. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts.map +1 -1
  320. package/node_modules/@xrkseek/server-face/dist/projections/index.js +2 -2
  321. package/node_modules/@xrkseek/server-face/dist/projections/index.js.map +1 -1
  322. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.d.ts +50 -4
  323. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.d.ts.map +1 -1
  324. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js +167 -19
  325. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js.map +1 -1
  326. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts +21 -1
  327. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts.map +1 -1
  328. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js +21 -1
  329. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js.map +1 -1
  330. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.d.ts.map +1 -1
  331. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js +58 -0
  332. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js.map +1 -1
  333. package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.d.ts.map +1 -1
  334. package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.js +85 -0
  335. package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.js.map +1 -1
  336. package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.d.ts.map +1 -1
  337. package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js +14 -0
  338. package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js.map +1 -1
  339. package/node_modules/@xrkseek/server-face/dist/projections/units/title.d.ts.map +1 -1
  340. package/node_modules/@xrkseek/server-face/dist/projections/units/title.js +14 -0
  341. package/node_modules/@xrkseek/server-face/dist/projections/units/title.js.map +1 -1
  342. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.d.ts.map +1 -1
  343. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js +24 -0
  344. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js.map +1 -1
  345. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts +4 -2
  346. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  347. package/node_modules/@xrkseek/server-face/dist/runtime.js +127 -17
  348. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  349. package/node_modules/@xrkseek/server-face/dist/seat-identity.d.ts +26 -0
  350. package/node_modules/@xrkseek/server-face/dist/seat-identity.d.ts.map +1 -0
  351. package/node_modules/@xrkseek/server-face/dist/seat-identity.js +137 -0
  352. package/node_modules/@xrkseek/server-face/dist/seat-identity.js.map +1 -0
  353. package/node_modules/@xrkseek/server-face/dist/seat-titles.d.ts +29 -0
  354. package/node_modules/@xrkseek/server-face/dist/seat-titles.d.ts.map +1 -0
  355. package/node_modules/@xrkseek/server-face/dist/seat-titles.js +74 -0
  356. package/node_modules/@xrkseek/server-face/dist/seat-titles.js.map +1 -0
  357. package/node_modules/@xrkseek/server-face/dist/session-capability.d.ts.map +1 -1
  358. package/node_modules/@xrkseek/server-face/dist/session-capability.js +9 -6
  359. package/node_modules/@xrkseek/server-face/dist/session-capability.js.map +1 -1
  360. package/node_modules/@xrkseek/server-face/dist/session-cwd.d.ts.map +1 -1
  361. package/node_modules/@xrkseek/server-face/dist/session-cwd.js +3 -1
  362. package/node_modules/@xrkseek/server-face/dist/session-cwd.js.map +1 -1
  363. package/node_modules/@xrkseek/server-face/dist/session-event-window.d.ts +37 -0
  364. package/node_modules/@xrkseek/server-face/dist/session-event-window.d.ts.map +1 -0
  365. package/node_modules/@xrkseek/server-face/dist/session-event-window.js +88 -0
  366. package/node_modules/@xrkseek/server-face/dist/session-event-window.js.map +1 -0
  367. package/node_modules/@xrkseek/server-face/dist/session-identity-store.d.ts +20 -0
  368. package/node_modules/@xrkseek/server-face/dist/session-identity-store.d.ts.map +1 -0
  369. package/node_modules/@xrkseek/server-face/dist/session-identity-store.js +82 -0
  370. package/node_modules/@xrkseek/server-face/dist/session-identity-store.js.map +1 -0
  371. package/node_modules/@xrkseek/server-face/dist/session-posture.d.ts +1 -1
  372. package/node_modules/@xrkseek/server-face/dist/session-posture.d.ts.map +1 -1
  373. package/node_modules/@xrkseek/server-face/dist/session-posture.js +20 -5
  374. package/node_modules/@xrkseek/server-face/dist/session-posture.js.map +1 -1
  375. package/node_modules/@xrkseek/server-face/dist/session-query-tools.d.ts +1 -0
  376. package/node_modules/@xrkseek/server-face/dist/session-query-tools.d.ts.map +1 -1
  377. package/node_modules/@xrkseek/server-face/dist/session-query-tools.js +172 -25
  378. package/node_modules/@xrkseek/server-face/dist/session-query-tools.js.map +1 -1
  379. package/node_modules/@xrkseek/server-face/dist/session-search.d.ts +20 -2
  380. package/node_modules/@xrkseek/server-face/dist/session-search.d.ts.map +1 -1
  381. package/node_modules/@xrkseek/server-face/dist/session-search.js +125 -19
  382. package/node_modules/@xrkseek/server-face/dist/session-search.js.map +1 -1
  383. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +1 -1
  384. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  385. package/node_modules/@xrkseek/server-face/dist/session-status.js +143 -21
  386. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  387. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts.map +1 -1
  388. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js +5 -0
  389. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js.map +1 -1
  390. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts.map +1 -1
  391. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js +2 -1
  392. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js.map +1 -1
  393. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  394. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +10 -2
  395. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  396. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  397. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +48 -10
  398. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  399. package/node_modules/@xrkseek/server-face/dist/skill-documents.d.ts.map +1 -1
  400. package/node_modules/@xrkseek/server-face/dist/skill-documents.js +14 -4
  401. package/node_modules/@xrkseek/server-face/dist/skill-documents.js.map +1 -1
  402. package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts +4 -2
  403. package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts.map +1 -1
  404. package/node_modules/@xrkseek/server-face/dist/skill-list.js +10 -4
  405. package/node_modules/@xrkseek/server-face/dist/skill-list.js.map +1 -1
  406. package/node_modules/@xrkseek/server-face/dist/skill-read.d.ts.map +1 -1
  407. package/node_modules/@xrkseek/server-face/dist/skill-read.js +9 -2
  408. package/node_modules/@xrkseek/server-face/dist/skill-read.js.map +1 -1
  409. package/node_modules/@xrkseek/server-face/dist/skill-source.d.ts +2 -1
  410. package/node_modules/@xrkseek/server-face/dist/skill-source.d.ts.map +1 -1
  411. package/node_modules/@xrkseek/server-face/dist/skill-source.js +12 -2
  412. package/node_modules/@xrkseek/server-face/dist/skill-source.js.map +1 -1
  413. package/node_modules/@xrkseek/server-face/dist/slash.d.ts +10 -1
  414. package/node_modules/@xrkseek/server-face/dist/slash.d.ts.map +1 -1
  415. package/node_modules/@xrkseek/server-face/dist/slash.js +97 -22
  416. package/node_modules/@xrkseek/server-face/dist/slash.js.map +1 -1
  417. package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.d.ts.map +1 -1
  418. package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.js +53 -0
  419. package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.js.map +1 -1
  420. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  421. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +10 -5
  422. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  423. package/node_modules/@xrkseek/server-face/dist/types.d.ts +23 -0
  424. package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
  425. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts +6 -1
  426. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
  427. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +17 -1
  428. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
  429. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
  430. package/node_modules/@xrkseek/server-face/dist/workspace-face.js +19 -14
  431. package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
  432. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.d.ts +22 -0
  433. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.d.ts.map +1 -0
  434. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.js +35 -0
  435. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.js.map +1 -0
  436. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts +3 -2
  437. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts.map +1 -1
  438. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js +74 -57
  439. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
  440. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts +31 -0
  441. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts.map +1 -1
  442. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js +109 -0
  443. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js.map +1 -1
  444. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts +2 -0
  445. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts.map +1 -1
  446. package/node_modules/@xrkseek/server-face/dist/workspace-store.js +7 -0
  447. package/node_modules/@xrkseek/server-face/dist/workspace-store.js.map +1 -1
  448. package/node_modules/@xrkseek/server-face/package.json +60 -60
  449. package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts +16 -2
  450. package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts.map +1 -1
  451. package/node_modules/@xrkseek/server-host/dist/agent-cache.js +84 -36
  452. package/node_modules/@xrkseek/server-host/dist/agent-cache.js.map +1 -1
  453. package/node_modules/@xrkseek/server-host/dist/index.d.ts +37 -6
  454. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  455. package/node_modules/@xrkseek/server-host/dist/index.js +124 -27
  456. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  457. package/node_modules/@xrkseek/server-host/dist/log.d.ts +6 -0
  458. package/node_modules/@xrkseek/server-host/dist/log.d.ts.map +1 -1
  459. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
  460. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +17 -2
  461. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
  462. package/node_modules/@xrkseek/server-host/dist/standing-tools.d.ts.map +1 -1
  463. package/node_modules/@xrkseek/server-host/dist/standing-tools.js +3 -3
  464. package/node_modules/@xrkseek/server-host/dist/standing-tools.js.map +1 -1
  465. package/node_modules/@xrkseek/server-host/package.json +75 -75
  466. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts +5 -0
  467. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts.map +1 -1
  468. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts +1 -1
  469. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts.map +1 -1
  470. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.d.ts.map +1 -1
  471. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js +41 -6
  472. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js.map +1 -1
  473. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui-browser-runtime.js +188 -188
  474. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +1 -1
  475. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
  476. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +1 -1
  477. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
  478. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.d.ts.map +1 -1
  479. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js +292 -24
  480. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js.map +1 -1
  481. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.d.ts.map +1 -1
  482. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js +12 -1
  483. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js.map +1 -1
  484. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts +16 -1
  485. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts.map +1 -1
  486. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js +47 -2
  487. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js.map +1 -1
  488. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts +1 -1
  489. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.js +53 -53
  490. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts +9 -4
  491. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts.map +1 -1
  492. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js +39 -20
  493. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js.map +1 -1
  494. package/node_modules/@xrkseek/server-http/dist/index.d.ts +2 -1
  495. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  496. package/node_modules/@xrkseek/server-http/dist/index.js +2 -1
  497. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  498. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts +11 -0
  499. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts.map +1 -0
  500. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js +85 -0
  501. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js.map +1 -0
  502. package/node_modules/@xrkseek/server-http/package.json +72 -72
  503. package/node_modules/@xrkseek/server-loader/dist/load.d.ts.map +1 -1
  504. package/node_modules/@xrkseek/server-loader/dist/load.js +132 -0
  505. package/node_modules/@xrkseek/server-loader/dist/load.js.map +1 -1
  506. package/node_modules/@xrkseek/session-projection/README.md +26 -26
  507. package/node_modules/@xrkseek/session-projection/dist/index.d.ts +31 -2
  508. package/node_modules/@xrkseek/session-projection/dist/index.d.ts.map +1 -1
  509. package/node_modules/@xrkseek/session-projection/dist/index.js +135 -19
  510. package/node_modules/@xrkseek/session-projection/dist/index.js.map +1 -1
  511. package/node_modules/@xrkseek/session-telemetry/README.md +11 -11
  512. package/node_modules/@xrkseek/session-telemetry/dist/index.d.ts +1 -0
  513. package/node_modules/@xrkseek/session-telemetry/dist/index.d.ts.map +1 -1
  514. package/node_modules/@xrkseek/session-telemetry/dist/index.js +1 -0
  515. package/node_modules/@xrkseek/session-telemetry/dist/index.js.map +1 -1
  516. package/node_modules/@xrkseek/session-telemetry/dist/redact.d.ts +14 -0
  517. package/node_modules/@xrkseek/session-telemetry/dist/redact.d.ts.map +1 -0
  518. package/node_modules/@xrkseek/session-telemetry/dist/redact.js +58 -0
  519. package/node_modules/@xrkseek/session-telemetry/dist/redact.js.map +1 -0
  520. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.d.ts +7 -0
  521. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.d.ts.map +1 -1
  522. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.js +43 -12
  523. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.js.map +1 -1
  524. package/node_modules/@xrkseek/session-telemetry/package.json +27 -27
  525. package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts +13 -0
  526. package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts.map +1 -1
  527. package/node_modules/@xrkseek/workspace/dist/durable-inject.js +40 -4
  528. package/node_modules/@xrkseek/workspace/dist/durable-inject.js.map +1 -1
  529. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts +10 -9
  530. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts.map +1 -1
  531. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js +67 -19
  532. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js.map +1 -1
  533. package/node_modules/@xrkseek/workspace/dist/index.d.ts +19 -20
  534. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  535. package/node_modules/@xrkseek/workspace/dist/index.js +43 -20
  536. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  537. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts +2 -0
  538. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts.map +1 -1
  539. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js +23 -12
  540. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js.map +1 -1
  541. package/node_modules/@xrkseek/workspace/dist/inject-sources.d.ts +7 -4
  542. package/node_modules/@xrkseek/workspace/dist/inject-sources.d.ts.map +1 -1
  543. package/node_modules/@xrkseek/workspace/dist/inject-sources.js +10 -0
  544. package/node_modules/@xrkseek/workspace/dist/inject-sources.js.map +1 -1
  545. package/node_modules/@xrkseek/workspace/dist/instruction-authority.d.ts +27 -0
  546. package/node_modules/@xrkseek/workspace/dist/instruction-authority.d.ts.map +1 -0
  547. package/node_modules/@xrkseek/workspace/dist/instruction-authority.js +78 -0
  548. package/node_modules/@xrkseek/workspace/dist/instruction-authority.js.map +1 -0
  549. package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts +7 -0
  550. package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts.map +1 -1
  551. package/node_modules/@xrkseek/workspace/dist/skill-dirs.js +4 -2
  552. package/node_modules/@xrkseek/workspace/dist/skill-dirs.js.map +1 -1
  553. package/node_modules/@xrkseek/workspace/dist/skill-tools.js +1 -1
  554. package/node_modules/@xrkseek/workspace/dist/skill-tools.js.map +1 -1
  555. package/node_modules/@xrkseek/workspace/dist/skills.d.ts +13 -1
  556. package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
  557. package/node_modules/@xrkseek/workspace/dist/skills.js +45 -5
  558. package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
  559. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts +26 -0
  560. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts.map +1 -0
  561. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js +80 -0
  562. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js.map +1 -0
  563. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts +7 -1
  564. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts.map +1 -1
  565. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js +21 -1
  566. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js.map +1 -1
  567. package/node_modules/@xrkseek/workspace/package.json +28 -28
  568. package/node_modules/@xrkseek/xrk-agent/lib/index.js +1 -793
  569. package/node_modules/@xrkseek/xrk-agent/lib/invariant.js +1 -23
  570. package/node_modules/@xrkseek/xrk-attachment/lib/index.js +1 -1
  571. package/node_modules/@xrkseek/xrk-attachment/lib/invariant.js +1 -0
  572. package/node_modules/@xrkseek/xrk-attachment/lib/types/brand.js +10 -0
  573. package/node_modules/@xrkseek/xrk-attachment/lib/types/error.js +48 -0
  574. package/node_modules/@xrkseek/xrk-attachment/lib/types/index.js +42 -0
  575. package/node_modules/@xrkseek/xrk-attachment/lib/types/invariant.js +16 -0
  576. package/node_modules/@xrkseek/xrk-attachment/lib/types/types.d.ts +6 -0
  577. package/node_modules/@xrkseek/xrk-attachment/lib/types/types.js +3 -0
  578. package/node_modules/@xrkseek/xrk-attachment/package.json +1 -0
  579. package/node_modules/@xrkseek/xrk-brand/lib/index.js +1 -1
  580. package/node_modules/@xrkseek/xrk-brand/lib/invariant.js +1 -0
  581. package/node_modules/@xrkseek/xrk-brand/lib/types/index.js +24 -0
  582. package/node_modules/@xrkseek/xrk-brand/lib/types/invariant.js +22 -0
  583. package/node_modules/@xrkseek/xrk-brand/package.json +1 -0
  584. package/node_modules/@xrkseek/xrk-commands/lib/index.js +1 -1
  585. package/node_modules/@xrkseek/xrk-commands/lib/invariant.js +1 -0
  586. package/node_modules/@xrkseek/xrk-file-reference-local/README.md +46 -46
  587. package/node_modules/@xrkseek/xrk-file-reference-local/README.zh.md +46 -46
  588. package/node_modules/@xrkseek/xrk-file-reference-local/package.json +30 -30
  589. package/node_modules/@xrkseek/xrk-invariants/lib/index.js +1 -1
  590. package/node_modules/@xrkseek/xrk-invariants/lib/invariant.js +1 -0
  591. package/node_modules/@xrkseek/xrk-invariants/lib/types/index.js +148 -0
  592. package/node_modules/@xrkseek/xrk-invariants/lib/types/invariant.js +22 -0
  593. package/node_modules/@xrkseek/xrk-invariants/package.json +1 -0
  594. package/node_modules/@xrkseek/xrk-llm/lib/index.js +1 -1
  595. package/node_modules/@xrkseek/xrk-llm/lib/invariant.js +1 -0
  596. package/node_modules/@xrkseek/xrk-llm/lib/types/index.js +4 -0
  597. package/node_modules/@xrkseek/xrk-llm/lib/types/types.d.ts +11 -0
  598. package/node_modules/@xrkseek/xrk-permission-presets/lib/index.js +1 -1
  599. package/node_modules/@xrkseek/xrk-permission-presets/lib/invariant.js +1 -0
  600. package/node_modules/@xrkseek/xrk-scope/lib/index.js +1 -0
  601. package/node_modules/@xrkseek/xrk-scope/lib/types/index.d.ts +129 -0
  602. package/node_modules/@xrkseek/xrk-scope/lib/types/index.js +243 -0
  603. package/node_modules/@xrkseek/xrk-scope/package.json +34 -0
  604. package/node_modules/@xrkseek/xrk-session/lib/index.js +1 -1
  605. package/node_modules/@xrkseek/xrk-session/lib/invariant.js +1 -0
  606. package/node_modules/@xrkseek/xrk-session-projection/lib/index.js +1 -1
  607. package/node_modules/@xrkseek/xrk-session-projection/lib/invariant.js +1 -0
  608. package/node_modules/@xrkseek/xrk-session-reference/README.md +50 -50
  609. package/node_modules/@xrkseek/xrk-session-reference/README.zh.md +50 -50
  610. package/node_modules/@xrkseek/xrk-session-reference/dist/prepare-face.js +13 -13
  611. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js +2 -2
  612. package/node_modules/@xrkseek/xrk-session-reference/package.json +56 -56
  613. package/node_modules/@xrkseek/xrk-settings/lib/index.js +1 -638
  614. package/node_modules/@xrkseek/xrk-settings/lib/invariant.js +1 -67
  615. package/node_modules/@xrkseek/xrk-system-prompt/package.json +15 -15
  616. package/node_modules/@xrkseek/xrk-system-prompt/src/index.ts +144 -144
  617. package/node_modules/@xrkseek/xrk-token-meter/README.i18n.yaml +6 -0
  618. package/node_modules/@xrkseek/xrk-token-meter/README.md +68 -0
  619. package/node_modules/@xrkseek/xrk-token-meter/README.zh.md +68 -0
  620. package/node_modules/@xrkseek/xrk-token-meter/lib/index.js +1 -0
  621. package/node_modules/@xrkseek/xrk-token-meter/lib/invariant.js +1 -0
  622. package/node_modules/@xrkseek/xrk-token-meter/lib/types/breakdown-projection.d.ts +29 -0
  623. package/node_modules/@xrkseek/xrk-token-meter/lib/types/breakdown-projection.js +56 -0
  624. package/node_modules/@xrkseek/xrk-token-meter/lib/types/client.d.ts +9 -0
  625. package/node_modules/@xrkseek/xrk-token-meter/lib/types/client.js +7 -0
  626. package/node_modules/@xrkseek/xrk-token-meter/lib/types/estimate.d.ts +42 -0
  627. package/node_modules/@xrkseek/xrk-token-meter/lib/types/estimate.js +79 -0
  628. package/node_modules/@xrkseek/xrk-token-meter/lib/types/index.d.ts +62 -0
  629. package/node_modules/@xrkseek/xrk-token-meter/lib/types/index.js +250 -0
  630. package/node_modules/@xrkseek/xrk-token-meter/lib/types/invariant.d.ts +16 -0
  631. package/node_modules/@xrkseek/xrk-token-meter/lib/types/invariant.js +30 -0
  632. package/node_modules/@xrkseek/xrk-token-meter/lib/types/projection.d.ts +74 -0
  633. package/node_modules/@xrkseek/xrk-token-meter/lib/types/projection.js +7 -0
  634. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-fold.d.ts +38 -0
  635. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-fold.js +47 -0
  636. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-projection.d.ts +59 -0
  637. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-projection.js +66 -0
  638. package/node_modules/@xrkseek/xrk-token-meter/lib/types/turn-usage.d.ts +33 -0
  639. package/node_modules/@xrkseek/xrk-token-meter/lib/types/turn-usage.js +247 -0
  640. package/node_modules/@xrkseek/xrk-token-meter/lib/types/types.d.ts +44 -0
  641. package/node_modules/@xrkseek/xrk-token-meter/lib/types/types.js +7 -0
  642. package/node_modules/@xrkseek/xrk-token-meter/lib/types/usage-projection.d.ts +64 -0
  643. package/node_modules/@xrkseek/xrk-token-meter/lib/types/usage-projection.js +161 -0
  644. package/node_modules/@xrkseek/xrk-token-meter/package.json +57 -0
  645. package/node_modules/@xrkseek/xrk-tools/lib/index.js +1 -1
  646. package/node_modules/@xrkseek/xrk-tools/lib/invariant.js +1 -1
  647. package/node_modules/@xrkseek/xrk-tools/src/presentation.ts +39 -39
  648. package/node_modules/@xrkseek/xrk-typert-protocol/lib/index.js +1 -1
  649. package/node_modules/@xrkseek/xrk-typert-protocol/lib/invariant.js +1 -0
  650. package/node_modules/@xrkseek/xrk-workflow/README.md +73 -73
  651. package/node_modules/@xrkseek/xrk-workflow/README.zh.md +72 -72
  652. package/node_modules/@xrkseek/xrk-workflow/lib/types/index.js +118 -118
  653. package/package.json +7 -1
  654. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts +0 -14
  655. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts.map +0 -1
  656. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js +0 -21
  657. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js.map +0 -1
  658. package/node_modules/@xrkseek/server-face/dist/index.d.mts +0 -3734
  659. package/node_modules/@xrkseek/server-face/dist/index.d.mts.map +0 -1
  660. package/node_modules/@xrkseek/server-face/dist/index.mjs +0 -22085
  661. package/node_modules/@xrkseek/server-face/dist/index.mjs.map +0 -1
  662. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts +0 -51
  663. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts.map +0 -1
  664. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js +0 -104
  665. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js.map +0 -1
  666. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts +0 -2
  667. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts.map +0 -1
  668. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js +0 -98
  669. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js.map +0 -1
  670. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts +0 -18
  671. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts.map +0 -1
  672. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js +0 -141
  673. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js.map +0 -1
  674. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts +0 -30
  675. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts.map +0 -1
  676. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js +0 -96
  677. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js.map +0 -1
@@ -1,597 +1,597 @@
1
- let _deepseek_ai_cosmokit = require("@xrkseek/cosmokit");
2
- //#region lib/types/index.js
3
- const kSchema = Symbol.for("schemastery");
4
- const kValidationError = Symbol.for("ValidationError");
5
- globalThis.__schemastery_index__ ??= 0;
6
- globalThis.__schemastery_refs__ = void 0;
7
- var ValidationError = class extends TypeError {
8
- options;
9
- name = "ValidationError";
10
- constructor(message, options) {
11
- let prefix = "$";
12
- for (const segment of options.path || []) if (typeof segment === "string") prefix += "." + segment;
13
- else if (typeof segment === "number") prefix += "[" + segment + "]";
14
- else if (typeof segment === "symbol") prefix += `[Symbol(${segment.toString()})]`;
15
- if (prefix.startsWith(".")) prefix = prefix.slice(1);
16
- super((prefix === "$" ? "" : `${prefix} `) + message);
17
- this.options = options;
18
- }
19
- static is(error) {
20
- return !!error?.[kValidationError];
21
- }
22
- };
23
- Object.defineProperty(ValidationError.prototype, kValidationError, { value: true });
24
- const Schema = function(options) {
25
- const schema = function(data, options = {}) {
26
- return Schema.resolve(data, schema, options)[0];
27
- };
28
- if (options.refs) {
29
- const refs = (0, _deepseek_ai_cosmokit.valueMap)(options.refs, (options) => new Schema(options));
30
- const getRef = (uid) => refs[uid];
31
- for (const key in refs) {
32
- const options = refs[key];
33
- options.sKey = getRef(options.sKey);
34
- options.inner = getRef(options.inner);
35
- options.list = options.list && options.list.map(getRef);
36
- options.dict = options.dict && (0, _deepseek_ai_cosmokit.valueMap)(options.dict, getRef);
37
- }
38
- return refs[options.uid];
39
- }
40
- Object.assign(schema, options);
41
- if (typeof schema.callback === "string") try {
42
- schema.callback = new Function("return " + schema.callback)();
43
- } catch {}
44
- Object.defineProperty(schema, "uid", { value: globalThis.__schemastery_index__++ });
45
- Object.setPrototypeOf(schema, Schema.prototype);
46
- schema.meta ||= {};
47
- schema.toString = schema.toString.bind(schema);
48
- return schema;
49
- };
50
- Schema.prototype = Object.create(Function.prototype);
51
- Schema.prototype[kSchema] = true;
52
- Object.defineProperty(Schema.prototype, "~standard", { get() {
53
- return {
54
- version: 1,
55
- vendor: "schemastery",
56
- validate: (value) => {
57
- try {
58
- return { value: Schema.resolve(value, this, {})[0] };
59
- } catch (error) {
60
- if (ValidationError.is(error)) return { issues: [{
61
- message: error.message,
62
- path: error.options.path
63
- }] };
64
- throw error;
65
- }
66
- }
67
- };
68
- } });
69
- Schema.ValidationError = ValidationError;
70
- Schema.prototype.toJSON = function toJSON() {
71
- if (globalThis.__schemastery_refs__) {
72
- globalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this }));
73
- return this.uid;
74
- }
75
- globalThis.__schemastery_refs__ = { [this.uid]: { ...this } };
76
- globalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this }));
77
- const result = {
78
- uid: this.uid,
79
- refs: globalThis.__schemastery_refs__
80
- };
81
- globalThis.__schemastery_refs__ = void 0;
82
- return result;
83
- };
84
- Schema.prototype.set = function set(key, value) {
85
- this.dict[key] = value;
86
- return this;
87
- };
88
- Schema.prototype.push = function push(value) {
89
- this.list.push(value);
90
- return this;
91
- };
92
- function mergeDesc(original, messages) {
93
- const result = typeof original === "string" ? { "": original } : { ...original };
94
- for (const locale in messages) {
95
- const value = messages[locale];
96
- if (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc;
97
- else if (typeof value === "string") result[locale] = value;
98
- }
99
- return result;
100
- }
101
- function getInner(value) {
102
- return value?.$value ?? value?.$inner;
103
- }
104
- function extractKeys(data) {
105
- return (0, _deepseek_ai_cosmokit.filterKeys)(data ?? {}, (key) => !key.startsWith("$"));
106
- }
107
- Schema.prototype.i18n = function i18n(messages) {
108
- const schema = Schema(this);
109
- const desc = mergeDesc(schema.meta.description, messages);
110
- if (Object.keys(desc).length) schema.meta.description = desc;
111
- if (schema.dict) schema.dict = (0, _deepseek_ai_cosmokit.valueMap)(schema.dict, (inner, key) => {
112
- return inner.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data) => getInner(data)?.[key] ?? data?.[key]));
113
- });
114
- if (schema.list) schema.list = schema.list.map((inner, index) => {
115
- return inner.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data = {}) => {
116
- if (Array.isArray(getInner(data))) return getInner(data)[index];
117
- if (Array.isArray(data)) return data[index];
118
- return extractKeys(data);
119
- }));
120
- });
121
- if (schema.inner) schema.inner = schema.inner.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data) => {
122
- if (getInner(data)) return getInner(data);
123
- return extractKeys(data);
124
- }));
125
- if (schema.sKey) schema.sKey = schema.sKey.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data) => data?.$key));
126
- return schema;
127
- };
128
- Schema.prototype.extra = function extra(key, value) {
129
- const schema = Schema(this);
130
- schema.meta = {
131
- ...schema.meta,
132
- [key]: value
133
- };
134
- return schema;
135
- };
136
- for (const key of [
137
- "required",
138
- "disabled",
139
- "collapse",
140
- "hidden",
141
- "loose",
142
- "volatile"
143
- ]) Object.assign(Schema.prototype, { [key](value = true) {
144
- const schema = Schema(this);
145
- schema.meta = {
146
- ...schema.meta,
147
- [key]: value
148
- };
149
- return schema;
150
- } });
151
- Schema.prototype.deprecated = function deprecated() {
152
- const schema = Schema(this);
153
- schema.meta.badges ||= [];
154
- schema.meta.badges.push({
155
- text: "deprecated",
156
- type: "danger"
157
- });
158
- return schema;
159
- };
160
- Schema.prototype.experimental = function experimental() {
161
- const schema = Schema(this);
162
- schema.meta.badges ||= [];
163
- schema.meta.badges.push({
164
- text: "experimental",
165
- type: "warning"
166
- });
167
- return schema;
168
- };
169
- Schema.prototype.pattern = function pattern(regexp) {
170
- const schema = Schema(this);
171
- const pattern = (0, _deepseek_ai_cosmokit.pick)(regexp, ["source", "flags"]);
172
- schema.meta = {
173
- ...schema.meta,
174
- pattern
175
- };
176
- return schema;
177
- };
178
- Schema.prototype.simplify = function simplify(value) {
179
- if ((0, _deepseek_ai_cosmokit.deepEqual)(value, this.meta.default, this.type === "dict")) return null;
180
- if ((0, _deepseek_ai_cosmokit.isNullable)(value)) return value;
181
- if (this.type === "object" || this.type === "dict") {
182
- const result = {};
183
- for (const key in value) {
184
- const item = (this.type === "object" ? this.dict[key] : this.inner)?.simplify(value[key]);
185
- if (this.type === "dict" || !(0, _deepseek_ai_cosmokit.isNullable)(item)) result[key] = item;
186
- }
187
- if ((0, _deepseek_ai_cosmokit.deepEqual)(result, this.meta.default, this.type === "dict")) return null;
188
- return result;
189
- } else if (this.type === "array" || this.type === "tuple") {
190
- const result = [];
191
- value.forEach((value, index) => {
192
- const schema = this.type === "array" ? this.inner : this.list[index];
193
- const item = schema ? schema.simplify(value) : value;
194
- result.push(item);
195
- });
196
- return result;
197
- } else if (this.type === "intersect") {
198
- const result = {};
199
- for (const item of this.list) Object.assign(result, item.simplify(value));
200
- return result;
201
- } else if (this.type === "union") for (const schema of this.list) try {
202
- Schema.resolve(value, schema, {});
203
- return schema.simplify(value);
204
- } catch {}
205
- return value;
206
- };
207
- Schema.prototype.toString = function toString(inline) {
208
- return formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`;
209
- };
210
- Schema.prototype.role = function role(role, extra) {
211
- const schema = Schema(this);
212
- schema.meta = {
213
- ...schema.meta,
214
- role,
215
- extra
216
- };
217
- return schema;
218
- };
219
- for (const key of [
220
- "default",
221
- "link",
222
- "comment",
223
- "description",
224
- "max",
225
- "min",
226
- "step"
227
- ]) Object.assign(Schema.prototype, { [key](value) {
228
- const schema = Schema(this);
229
- schema.meta = {
230
- ...schema.meta,
231
- [key]: value
232
- };
233
- return schema;
234
- } });
235
- const resolvers = {};
236
- Schema.extend = function extend(type, resolve) {
237
- resolvers[type] = resolve;
238
- };
239
- Schema.resolve = function resolve(data, schema, options = {}, strict = false) {
240
- if (!schema) return [data];
241
- if (options.ignore?.(data, schema)) return [data];
242
- if ((0, _deepseek_ai_cosmokit.isNullable)(data) && schema.type !== "lazy") {
243
- if (schema.meta.required) throw new ValidationError(`missing required value`, options);
244
- let current = schema;
245
- let fallback = schema.meta.default;
246
- while (current?.type === "intersect" && (0, _deepseek_ai_cosmokit.isNullable)(fallback)) {
247
- current = current.list[0];
248
- fallback = current?.meta.default;
249
- }
250
- if ((0, _deepseek_ai_cosmokit.isNullable)(fallback)) return [data];
251
- data = (0, _deepseek_ai_cosmokit.clone)(fallback);
252
- }
253
- const callback = resolvers[schema.type];
254
- if (!callback) throw new ValidationError(`unsupported type "${schema.type}"`, options);
255
- try {
256
- return callback(data, schema, options, strict);
257
- } catch (error) {
258
- if (!schema.meta.loose) throw error;
259
- return [schema.meta.default];
260
- }
261
- };
262
- Schema.from = function from(source) {
263
- if ((0, _deepseek_ai_cosmokit.isNullable)(source)) return Schema.any();
264
- else if ([
265
- "string",
266
- "number",
267
- "boolean"
268
- ].includes(typeof source)) return Schema.const(source).required();
269
- else if (source[kSchema]) return source;
270
- else if (typeof source === "function") switch (source) {
271
- case String: return Schema.string().required();
272
- case Number: return Schema.number().required();
273
- case Boolean: return Schema.boolean().required();
274
- case Function: return Schema.function().required();
275
- default: return Schema.is(source).required();
276
- }
277
- else throw new TypeError(`cannot infer schema from ${source}`);
278
- };
279
- Schema.lazy = function lazy(builder) {
280
- const toJSON = () => {
281
- if (!schema.inner[kSchema]) {
282
- schema.inner = schema.builder();
283
- schema.inner.meta = {
284
- ...schema.meta,
285
- ...schema.inner.meta
286
- };
287
- }
288
- return schema.inner.toJSON();
289
- };
290
- const schema = new Schema({
291
- type: "lazy",
292
- builder,
293
- inner: { toJSON }
294
- });
295
- return schema;
296
- };
297
- Schema.natural = function natural() {
298
- return Schema.number().step(1).min(0);
299
- };
300
- Schema.percent = function percent() {
301
- return Schema.number().step(.01).min(0).max(1).role("slider");
302
- };
303
- Schema.date = function date() {
304
- return Schema.union([Schema.is(Date), Schema.transform(Schema.string().role("datetime"), (value, options) => {
305
- const date = new Date(value);
306
- if (isNaN(+date)) throw new ValidationError(`invalid date "${value}"`, options);
307
- return date;
308
- }, true)]);
309
- };
310
- Schema.regExp = function regExp(flag = "") {
311
- return Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role("regexp", { flag }), (value, options) => {
312
- try {
313
- return new RegExp(value, flag);
314
- } catch (e) {
315
- throw new ValidationError(e.message, options);
316
- }
317
- }, true)]);
318
- };
319
- Schema.arrayBuffer = function arrayBuffer(encoding) {
320
- return Schema.union([
321
- Schema.is(ArrayBuffer),
322
- Schema.is(SharedArrayBuffer),
323
- Schema.transform(Schema.any(), (value, options) => {
324
- if (_deepseek_ai_cosmokit.Binary.isSource(value)) return _deepseek_ai_cosmokit.Binary.fromSource(value);
325
- throw new ValidationError(`expected ArrayBufferSource but got ${value}`, options);
326
- }, true),
327
- ...encoding ? [Schema.transform(Schema.string(), (value, options) => {
328
- try {
329
- return encoding === "base64" ? _deepseek_ai_cosmokit.Binary.fromBase64(value) : _deepseek_ai_cosmokit.Binary.fromHex(value);
330
- } catch (e) {
331
- throw new ValidationError(e.message, options);
332
- }
333
- }, true)] : []
334
- ]);
335
- };
336
- Schema.extend("lazy", (data, schema, options, strict) => {
337
- if (!schema.inner[kSchema]) {
338
- schema.inner = schema.builder();
339
- schema.inner.meta = {
340
- ...schema.meta,
341
- ...schema.inner.meta
342
- };
343
- }
344
- return Schema.resolve(data, schema.inner, options, strict);
345
- });
346
- Schema.extend("any", (data) => {
347
- return [data];
348
- });
349
- Schema.extend("never", (data, _, options) => {
350
- throw new ValidationError(`expected nullable but got ${data}`, options);
351
- });
352
- Schema.extend("const", (data, { value }, options) => {
353
- if ((0, _deepseek_ai_cosmokit.deepEqual)(data, value)) return [value];
354
- throw new ValidationError(`expected ${value} but got ${data}`, options);
355
- });
356
- function checkWithinRange(data, meta, description, options, skipMin = false) {
357
- const { max = Infinity, min = -Infinity } = meta;
358
- if (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options);
359
- if (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options);
360
- }
361
- Schema.extend("string", (data, { meta }, options) => {
362
- if (typeof data !== "string") throw new ValidationError(`expected string but got ${data}`, options);
363
- if (meta.pattern) {
364
- const regexp = new RegExp(meta.pattern.source, meta.pattern.flags);
365
- if (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options);
366
- }
367
- checkWithinRange(data.length, meta, "string length", options);
368
- return [data];
369
- });
370
- function decimalShift(data, digits) {
371
- const str = data.toString();
372
- if (str.includes("e")) return data * Math.pow(10, digits);
373
- const index = str.indexOf(".");
374
- if (index === -1) return data * Math.pow(10, digits);
375
- const frac = str.slice(index + 1);
376
- const integer = str.slice(0, index);
377
- if (frac.length <= digits) return +(integer + frac.padEnd(digits, "0"));
378
- return +(integer + frac.slice(0, digits) + "." + frac.slice(digits));
379
- }
380
- function isMultipleOf(data, min, step) {
381
- step = Math.abs(step);
382
- if (!/^\d+\.\d+$/.test(step.toString())) return (data - min) % step === 0;
383
- const index = step.toString().indexOf(".");
384
- const digits = step.toString().slice(index + 1).length;
385
- return Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0;
386
- }
387
- Schema.extend("number", (data, { meta }, options) => {
388
- if (typeof data !== "number") throw new ValidationError(`expected number but got ${data}`, options);
389
- checkWithinRange(data, meta, "number", options);
390
- const { step } = meta;
391
- if (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options);
392
- return [data];
393
- });
394
- Schema.extend("boolean", (data, _, options) => {
395
- if (typeof data === "boolean") return [data];
396
- throw new ValidationError(`expected boolean but got ${data}`, options);
397
- });
398
- Schema.extend("bitset", (data, { bits, meta }, options) => {
399
- let value = 0, keys = [];
400
- if (typeof data === "number") {
401
- value = data;
402
- for (const key in bits) if (data & bits[key]) keys.push(key);
403
- } else if (Array.isArray(data)) {
404
- keys = data;
405
- for (const key of keys) {
406
- if (typeof key !== "string") throw new ValidationError(`expected string but got ${key}`, options);
407
- if (key in bits) value |= bits[key];
408
- }
409
- } else throw new ValidationError(`expected number or array but got ${data}`, options);
410
- if (value === meta.default) return [value];
411
- return [value, keys];
412
- });
413
- Schema.extend("function", (data, _, options) => {
414
- if (typeof data === "function") return [data];
415
- throw new ValidationError(`expected function but got ${data}`, options);
416
- });
417
- Schema.extend("is", (data, { constructor }, options) => {
418
- if (typeof constructor === "function") {
419
- if (data instanceof constructor) return [data];
420
- throw new ValidationError(`expected ${constructor.name} but got ${data}`, options);
421
- } else {
422
- if ((0, _deepseek_ai_cosmokit.isNullable)(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options);
423
- let prototype = Object.getPrototypeOf(data);
424
- while (prototype) {
425
- if (prototype.constructor?.name === constructor) return [data];
426
- prototype = Object.getPrototypeOf(prototype);
427
- }
428
- throw new ValidationError(`expected ${constructor} but got ${data}`, options);
429
- }
430
- });
431
- function property(data, key, schema, options) {
432
- try {
433
- const [value, adapted] = Schema.resolve(data[key], schema, {
434
- ...options,
435
- path: [...options.path || [], key]
436
- });
437
- if (adapted !== void 0) data[key] = adapted;
438
- return value;
439
- } catch (e) {
440
- if (!options?.autofix) throw e;
441
- delete data[key];
442
- return schema.meta.default;
443
- }
444
- }
445
- Schema.extend("array", (data, { inner, meta }, options) => {
446
- if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);
447
- checkWithinRange(data.length, meta, "array length", options, !(0, _deepseek_ai_cosmokit.isNullable)(inner.meta.default));
448
- return [data.map((_, index) => property(data, index, inner, options))];
449
- });
450
- Schema.extend("dict", (data, { inner, sKey }, options, strict) => {
451
- if (!(0, _deepseek_ai_cosmokit.isPlainObject)(data)) throw new ValidationError(`expected object but got ${data}`, options);
452
- const result = {};
453
- for (const key in data) {
454
- let rKey;
455
- try {
456
- rKey = Schema.resolve(key, sKey, options)[0];
457
- } catch (error) {
458
- if (strict) continue;
459
- throw error;
460
- }
461
- result[rKey] = property(data, key, inner, options);
462
- data[rKey] = data[key];
463
- if (key !== rKey) delete data[key];
464
- }
465
- return [result];
466
- });
467
- Schema.extend("tuple", (data, { list }, options, strict) => {
468
- if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);
469
- const result = list.map((inner, index) => property(data, index, inner, options));
470
- if (strict) return [result];
471
- result.push(...data.slice(list.length));
472
- return [result];
473
- });
474
- function merge(result, data) {
475
- for (const key in data) {
476
- if (key in result) continue;
477
- result[key] = data[key];
478
- }
479
- }
480
- Schema.extend("object", (data, { dict }, options, strict) => {
481
- if (!(0, _deepseek_ai_cosmokit.isPlainObject)(data)) throw new ValidationError(`expected object but got ${data}`, options);
482
- const result = {};
483
- for (const key in dict) {
484
- const value = property(data, key, dict[key], options);
485
- if (!(0, _deepseek_ai_cosmokit.isNullable)(value) || key in data) result[key] = value;
486
- }
487
- if (!strict) merge(result, data);
488
- return [result];
489
- });
490
- Schema.extend("union", (data, { list, toString }, options, strict) => {
491
- const messages = [];
492
- for (const inner of list) try {
493
- return Schema.resolve(data, inner, options, strict);
494
- } catch (error) {
495
- messages.push(error);
496
- }
497
- throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);
498
- });
499
- Schema.extend("intersect", (data, { list, toString }, options, strict) => {
500
- if (!list.length) return [data];
501
- let result;
502
- for (const inner of list) {
503
- const value = Schema.resolve(data, inner, options, true)[0];
504
- if ((0, _deepseek_ai_cosmokit.isNullable)(value)) continue;
505
- if ((0, _deepseek_ai_cosmokit.isNullable)(result)) result = value;
506
- else if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);
507
- else if (typeof value === "object") merge(result ??= {}, value);
508
- else if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);
509
- }
510
- if (!strict && (0, _deepseek_ai_cosmokit.isPlainObject)(data)) merge(result, data);
511
- return [result];
512
- });
513
- Schema.extend("transform", (data, { inner, callback, preserve }, options) => {
514
- const [result, adapted = data] = Schema.resolve(data, inner, options, true);
515
- if (preserve) return [callback(result)];
516
- else return [callback(result), callback(adapted)];
517
- });
518
- const formatters = {};
519
- function defineMethod(name, keys, format) {
520
- formatters[name] = format;
521
- Object.assign(Schema, { [name](...args) {
522
- const schema = new Schema({ type: name });
523
- keys.forEach((key, index) => {
524
- switch (key) {
525
- case "sKey":
526
- schema.sKey = args[index] ?? Schema.string();
527
- break;
528
- case "inner":
529
- schema.inner = Schema.from(args[index]);
530
- break;
531
- case "list":
532
- schema.list = args[index].map(Schema.from);
533
- break;
534
- case "dict":
535
- schema.dict = (0, _deepseek_ai_cosmokit.valueMap)(args[index], Schema.from);
536
- break;
537
- case "bits":
538
- schema.bits = {};
539
- for (const key in args[index]) {
540
- if (typeof args[index][key] !== "number") continue;
541
- schema.bits[key] = args[index][key];
542
- }
543
- break;
544
- case "callback": {
545
- const callback = schema.callback = args[index];
546
- callback["toJSON"] ||= () => callback.toString();
547
- break;
548
- }
549
- case "constructor": {
550
- const constructor = schema.constructor = args[index];
551
- if (typeof constructor === "function") constructor["toJSON"] ||= () => constructor["name"];
552
- break;
553
- }
554
- default: schema[key] = args[index];
555
- }
556
- });
557
- if (name === "object" || name === "dict") schema.meta.default = {};
558
- else if (name === "array" || name === "tuple") schema.meta.default = [];
559
- else if (name === "bitset") schema.meta.default = 0;
560
- return schema;
561
- } });
562
- }
563
- defineMethod("is", ["constructor"], ({ constructor }) => {
564
- if (typeof constructor === "function") return constructor.name;
565
- else return constructor;
566
- });
567
- defineMethod("any", [], () => "any");
568
- defineMethod("never", [], () => "never");
569
- defineMethod("const", ["value"], ({ value }) => typeof value === "string" ? JSON.stringify(value) : value);
570
- defineMethod("string", [], () => "string");
571
- defineMethod("number", [], () => "number");
572
- defineMethod("boolean", [], () => "boolean");
573
- defineMethod("bitset", ["bits"], () => "bitset");
574
- defineMethod("function", [], () => "function");
575
- defineMethod("array", ["inner"], ({ inner }) => `${inner.toString(true)}[]`);
576
- defineMethod("dict", ["inner", "sKey"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`);
577
- defineMethod("tuple", ["list"], ({ list }) => `[${list.map((inner) => inner.toString()).join(", ")}]`);
578
- defineMethod("object", ["dict"], ({ dict }) => {
579
- if (Object.keys(dict).length === 0) return "{}";
580
- return `{ ${Object.entries(dict).map(([key, inner]) => {
581
- return `${key}${inner.meta.required ? "" : "?"}: ${inner.toString()}`;
582
- }).join(", ")} }`;
583
- });
584
- defineMethod("union", ["list"], ({ list }, inline) => {
585
- const result = list.map(({ toString: format }) => format()).join(" | ");
586
- return inline ? `(${result})` : result;
587
- });
588
- defineMethod("intersect", ["list"], ({ list }) => {
589
- return `${list.map((inner) => inner.toString(true)).join(" & ")}`;
590
- });
591
- defineMethod("transform", [
592
- "inner",
593
- "callback",
594
- "preserve"
595
- ], ({ inner }, isInner) => inner.toString(isInner));
596
- //#endregion
597
- module.exports = Schema;
1
+ let _deepseek_ai_cosmokit = require("@xrkseek/cosmokit");
2
+ //#region lib/types/index.js
3
+ const kSchema = Symbol.for("schemastery");
4
+ const kValidationError = Symbol.for("ValidationError");
5
+ globalThis.__schemastery_index__ ??= 0;
6
+ globalThis.__schemastery_refs__ = void 0;
7
+ var ValidationError = class extends TypeError {
8
+ options;
9
+ name = "ValidationError";
10
+ constructor(message, options) {
11
+ let prefix = "$";
12
+ for (const segment of options.path || []) if (typeof segment === "string") prefix += "." + segment;
13
+ else if (typeof segment === "number") prefix += "[" + segment + "]";
14
+ else if (typeof segment === "symbol") prefix += `[Symbol(${segment.toString()})]`;
15
+ if (prefix.startsWith(".")) prefix = prefix.slice(1);
16
+ super((prefix === "$" ? "" : `${prefix} `) + message);
17
+ this.options = options;
18
+ }
19
+ static is(error) {
20
+ return !!error?.[kValidationError];
21
+ }
22
+ };
23
+ Object.defineProperty(ValidationError.prototype, kValidationError, { value: true });
24
+ const Schema = function(options) {
25
+ const schema = function(data, options = {}) {
26
+ return Schema.resolve(data, schema, options)[0];
27
+ };
28
+ if (options.refs) {
29
+ const refs = (0, _deepseek_ai_cosmokit.valueMap)(options.refs, (options) => new Schema(options));
30
+ const getRef = (uid) => refs[uid];
31
+ for (const key in refs) {
32
+ const options = refs[key];
33
+ options.sKey = getRef(options.sKey);
34
+ options.inner = getRef(options.inner);
35
+ options.list = options.list && options.list.map(getRef);
36
+ options.dict = options.dict && (0, _deepseek_ai_cosmokit.valueMap)(options.dict, getRef);
37
+ }
38
+ return refs[options.uid];
39
+ }
40
+ Object.assign(schema, options);
41
+ if (typeof schema.callback === "string") try {
42
+ schema.callback = new Function("return " + schema.callback)();
43
+ } catch {}
44
+ Object.defineProperty(schema, "uid", { value: globalThis.__schemastery_index__++ });
45
+ Object.setPrototypeOf(schema, Schema.prototype);
46
+ schema.meta ||= {};
47
+ schema.toString = schema.toString.bind(schema);
48
+ return schema;
49
+ };
50
+ Schema.prototype = Object.create(Function.prototype);
51
+ Schema.prototype[kSchema] = true;
52
+ Object.defineProperty(Schema.prototype, "~standard", { get() {
53
+ return {
54
+ version: 1,
55
+ vendor: "schemastery",
56
+ validate: (value) => {
57
+ try {
58
+ return { value: Schema.resolve(value, this, {})[0] };
59
+ } catch (error) {
60
+ if (ValidationError.is(error)) return { issues: [{
61
+ message: error.message,
62
+ path: error.options.path
63
+ }] };
64
+ throw error;
65
+ }
66
+ }
67
+ };
68
+ } });
69
+ Schema.ValidationError = ValidationError;
70
+ Schema.prototype.toJSON = function toJSON() {
71
+ if (globalThis.__schemastery_refs__) {
72
+ globalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this }));
73
+ return this.uid;
74
+ }
75
+ globalThis.__schemastery_refs__ = { [this.uid]: { ...this } };
76
+ globalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this }));
77
+ const result = {
78
+ uid: this.uid,
79
+ refs: globalThis.__schemastery_refs__
80
+ };
81
+ globalThis.__schemastery_refs__ = void 0;
82
+ return result;
83
+ };
84
+ Schema.prototype.set = function set(key, value) {
85
+ this.dict[key] = value;
86
+ return this;
87
+ };
88
+ Schema.prototype.push = function push(value) {
89
+ this.list.push(value);
90
+ return this;
91
+ };
92
+ function mergeDesc(original, messages) {
93
+ const result = typeof original === "string" ? { "": original } : { ...original };
94
+ for (const locale in messages) {
95
+ const value = messages[locale];
96
+ if (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc;
97
+ else if (typeof value === "string") result[locale] = value;
98
+ }
99
+ return result;
100
+ }
101
+ function getInner(value) {
102
+ return value?.$value ?? value?.$inner;
103
+ }
104
+ function extractKeys(data) {
105
+ return (0, _deepseek_ai_cosmokit.filterKeys)(data ?? {}, (key) => !key.startsWith("$"));
106
+ }
107
+ Schema.prototype.i18n = function i18n(messages) {
108
+ const schema = Schema(this);
109
+ const desc = mergeDesc(schema.meta.description, messages);
110
+ if (Object.keys(desc).length) schema.meta.description = desc;
111
+ if (schema.dict) schema.dict = (0, _deepseek_ai_cosmokit.valueMap)(schema.dict, (inner, key) => {
112
+ return inner.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data) => getInner(data)?.[key] ?? data?.[key]));
113
+ });
114
+ if (schema.list) schema.list = schema.list.map((inner, index) => {
115
+ return inner.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data = {}) => {
116
+ if (Array.isArray(getInner(data))) return getInner(data)[index];
117
+ if (Array.isArray(data)) return data[index];
118
+ return extractKeys(data);
119
+ }));
120
+ });
121
+ if (schema.inner) schema.inner = schema.inner.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data) => {
122
+ if (getInner(data)) return getInner(data);
123
+ return extractKeys(data);
124
+ }));
125
+ if (schema.sKey) schema.sKey = schema.sKey.i18n((0, _deepseek_ai_cosmokit.valueMap)(messages, (data) => data?.$key));
126
+ return schema;
127
+ };
128
+ Schema.prototype.extra = function extra(key, value) {
129
+ const schema = Schema(this);
130
+ schema.meta = {
131
+ ...schema.meta,
132
+ [key]: value
133
+ };
134
+ return schema;
135
+ };
136
+ for (const key of [
137
+ "required",
138
+ "disabled",
139
+ "collapse",
140
+ "hidden",
141
+ "loose",
142
+ "volatile"
143
+ ]) Object.assign(Schema.prototype, { [key](value = true) {
144
+ const schema = Schema(this);
145
+ schema.meta = {
146
+ ...schema.meta,
147
+ [key]: value
148
+ };
149
+ return schema;
150
+ } });
151
+ Schema.prototype.deprecated = function deprecated() {
152
+ const schema = Schema(this);
153
+ schema.meta.badges ||= [];
154
+ schema.meta.badges.push({
155
+ text: "deprecated",
156
+ type: "danger"
157
+ });
158
+ return schema;
159
+ };
160
+ Schema.prototype.experimental = function experimental() {
161
+ const schema = Schema(this);
162
+ schema.meta.badges ||= [];
163
+ schema.meta.badges.push({
164
+ text: "experimental",
165
+ type: "warning"
166
+ });
167
+ return schema;
168
+ };
169
+ Schema.prototype.pattern = function pattern(regexp) {
170
+ const schema = Schema(this);
171
+ const pattern = (0, _deepseek_ai_cosmokit.pick)(regexp, ["source", "flags"]);
172
+ schema.meta = {
173
+ ...schema.meta,
174
+ pattern
175
+ };
176
+ return schema;
177
+ };
178
+ Schema.prototype.simplify = function simplify(value) {
179
+ if ((0, _deepseek_ai_cosmokit.deepEqual)(value, this.meta.default, this.type === "dict")) return null;
180
+ if ((0, _deepseek_ai_cosmokit.isNullable)(value)) return value;
181
+ if (this.type === "object" || this.type === "dict") {
182
+ const result = {};
183
+ for (const key in value) {
184
+ const item = (this.type === "object" ? this.dict[key] : this.inner)?.simplify(value[key]);
185
+ if (this.type === "dict" || !(0, _deepseek_ai_cosmokit.isNullable)(item)) result[key] = item;
186
+ }
187
+ if ((0, _deepseek_ai_cosmokit.deepEqual)(result, this.meta.default, this.type === "dict")) return null;
188
+ return result;
189
+ } else if (this.type === "array" || this.type === "tuple") {
190
+ const result = [];
191
+ value.forEach((value, index) => {
192
+ const schema = this.type === "array" ? this.inner : this.list[index];
193
+ const item = schema ? schema.simplify(value) : value;
194
+ result.push(item);
195
+ });
196
+ return result;
197
+ } else if (this.type === "intersect") {
198
+ const result = {};
199
+ for (const item of this.list) Object.assign(result, item.simplify(value));
200
+ return result;
201
+ } else if (this.type === "union") for (const schema of this.list) try {
202
+ Schema.resolve(value, schema, {});
203
+ return schema.simplify(value);
204
+ } catch {}
205
+ return value;
206
+ };
207
+ Schema.prototype.toString = function toString(inline) {
208
+ return formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`;
209
+ };
210
+ Schema.prototype.role = function role(role, extra) {
211
+ const schema = Schema(this);
212
+ schema.meta = {
213
+ ...schema.meta,
214
+ role,
215
+ extra
216
+ };
217
+ return schema;
218
+ };
219
+ for (const key of [
220
+ "default",
221
+ "link",
222
+ "comment",
223
+ "description",
224
+ "max",
225
+ "min",
226
+ "step"
227
+ ]) Object.assign(Schema.prototype, { [key](value) {
228
+ const schema = Schema(this);
229
+ schema.meta = {
230
+ ...schema.meta,
231
+ [key]: value
232
+ };
233
+ return schema;
234
+ } });
235
+ const resolvers = {};
236
+ Schema.extend = function extend(type, resolve) {
237
+ resolvers[type] = resolve;
238
+ };
239
+ Schema.resolve = function resolve(data, schema, options = {}, strict = false) {
240
+ if (!schema) return [data];
241
+ if (options.ignore?.(data, schema)) return [data];
242
+ if ((0, _deepseek_ai_cosmokit.isNullable)(data) && schema.type !== "lazy") {
243
+ if (schema.meta.required) throw new ValidationError(`missing required value`, options);
244
+ let current = schema;
245
+ let fallback = schema.meta.default;
246
+ while (current?.type === "intersect" && (0, _deepseek_ai_cosmokit.isNullable)(fallback)) {
247
+ current = current.list[0];
248
+ fallback = current?.meta.default;
249
+ }
250
+ if ((0, _deepseek_ai_cosmokit.isNullable)(fallback)) return [data];
251
+ data = (0, _deepseek_ai_cosmokit.clone)(fallback);
252
+ }
253
+ const callback = resolvers[schema.type];
254
+ if (!callback) throw new ValidationError(`unsupported type "${schema.type}"`, options);
255
+ try {
256
+ return callback(data, schema, options, strict);
257
+ } catch (error) {
258
+ if (!schema.meta.loose) throw error;
259
+ return [schema.meta.default];
260
+ }
261
+ };
262
+ Schema.from = function from(source) {
263
+ if ((0, _deepseek_ai_cosmokit.isNullable)(source)) return Schema.any();
264
+ else if ([
265
+ "string",
266
+ "number",
267
+ "boolean"
268
+ ].includes(typeof source)) return Schema.const(source).required();
269
+ else if (source[kSchema]) return source;
270
+ else if (typeof source === "function") switch (source) {
271
+ case String: return Schema.string().required();
272
+ case Number: return Schema.number().required();
273
+ case Boolean: return Schema.boolean().required();
274
+ case Function: return Schema.function().required();
275
+ default: return Schema.is(source).required();
276
+ }
277
+ else throw new TypeError(`cannot infer schema from ${source}`);
278
+ };
279
+ Schema.lazy = function lazy(builder) {
280
+ const toJSON = () => {
281
+ if (!schema.inner[kSchema]) {
282
+ schema.inner = schema.builder();
283
+ schema.inner.meta = {
284
+ ...schema.meta,
285
+ ...schema.inner.meta
286
+ };
287
+ }
288
+ return schema.inner.toJSON();
289
+ };
290
+ const schema = new Schema({
291
+ type: "lazy",
292
+ builder,
293
+ inner: { toJSON }
294
+ });
295
+ return schema;
296
+ };
297
+ Schema.natural = function natural() {
298
+ return Schema.number().step(1).min(0);
299
+ };
300
+ Schema.percent = function percent() {
301
+ return Schema.number().step(.01).min(0).max(1).role("slider");
302
+ };
303
+ Schema.date = function date() {
304
+ return Schema.union([Schema.is(Date), Schema.transform(Schema.string().role("datetime"), (value, options) => {
305
+ const date = new Date(value);
306
+ if (isNaN(+date)) throw new ValidationError(`invalid date "${value}"`, options);
307
+ return date;
308
+ }, true)]);
309
+ };
310
+ Schema.regExp = function regExp(flag = "") {
311
+ return Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role("regexp", { flag }), (value, options) => {
312
+ try {
313
+ return new RegExp(value, flag);
314
+ } catch (e) {
315
+ throw new ValidationError(e.message, options);
316
+ }
317
+ }, true)]);
318
+ };
319
+ Schema.arrayBuffer = function arrayBuffer(encoding) {
320
+ return Schema.union([
321
+ Schema.is(ArrayBuffer),
322
+ Schema.is(SharedArrayBuffer),
323
+ Schema.transform(Schema.any(), (value, options) => {
324
+ if (_deepseek_ai_cosmokit.Binary.isSource(value)) return _deepseek_ai_cosmokit.Binary.fromSource(value);
325
+ throw new ValidationError(`expected ArrayBufferSource but got ${value}`, options);
326
+ }, true),
327
+ ...encoding ? [Schema.transform(Schema.string(), (value, options) => {
328
+ try {
329
+ return encoding === "base64" ? _deepseek_ai_cosmokit.Binary.fromBase64(value) : _deepseek_ai_cosmokit.Binary.fromHex(value);
330
+ } catch (e) {
331
+ throw new ValidationError(e.message, options);
332
+ }
333
+ }, true)] : []
334
+ ]);
335
+ };
336
+ Schema.extend("lazy", (data, schema, options, strict) => {
337
+ if (!schema.inner[kSchema]) {
338
+ schema.inner = schema.builder();
339
+ schema.inner.meta = {
340
+ ...schema.meta,
341
+ ...schema.inner.meta
342
+ };
343
+ }
344
+ return Schema.resolve(data, schema.inner, options, strict);
345
+ });
346
+ Schema.extend("any", (data) => {
347
+ return [data];
348
+ });
349
+ Schema.extend("never", (data, _, options) => {
350
+ throw new ValidationError(`expected nullable but got ${data}`, options);
351
+ });
352
+ Schema.extend("const", (data, { value }, options) => {
353
+ if ((0, _deepseek_ai_cosmokit.deepEqual)(data, value)) return [value];
354
+ throw new ValidationError(`expected ${value} but got ${data}`, options);
355
+ });
356
+ function checkWithinRange(data, meta, description, options, skipMin = false) {
357
+ const { max = Infinity, min = -Infinity } = meta;
358
+ if (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options);
359
+ if (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options);
360
+ }
361
+ Schema.extend("string", (data, { meta }, options) => {
362
+ if (typeof data !== "string") throw new ValidationError(`expected string but got ${data}`, options);
363
+ if (meta.pattern) {
364
+ const regexp = new RegExp(meta.pattern.source, meta.pattern.flags);
365
+ if (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options);
366
+ }
367
+ checkWithinRange(data.length, meta, "string length", options);
368
+ return [data];
369
+ });
370
+ function decimalShift(data, digits) {
371
+ const str = data.toString();
372
+ if (str.includes("e")) return data * Math.pow(10, digits);
373
+ const index = str.indexOf(".");
374
+ if (index === -1) return data * Math.pow(10, digits);
375
+ const frac = str.slice(index + 1);
376
+ const integer = str.slice(0, index);
377
+ if (frac.length <= digits) return +(integer + frac.padEnd(digits, "0"));
378
+ return +(integer + frac.slice(0, digits) + "." + frac.slice(digits));
379
+ }
380
+ function isMultipleOf(data, min, step) {
381
+ step = Math.abs(step);
382
+ if (!/^\d+\.\d+$/.test(step.toString())) return (data - min) % step === 0;
383
+ const index = step.toString().indexOf(".");
384
+ const digits = step.toString().slice(index + 1).length;
385
+ return Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0;
386
+ }
387
+ Schema.extend("number", (data, { meta }, options) => {
388
+ if (typeof data !== "number") throw new ValidationError(`expected number but got ${data}`, options);
389
+ checkWithinRange(data, meta, "number", options);
390
+ const { step } = meta;
391
+ if (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options);
392
+ return [data];
393
+ });
394
+ Schema.extend("boolean", (data, _, options) => {
395
+ if (typeof data === "boolean") return [data];
396
+ throw new ValidationError(`expected boolean but got ${data}`, options);
397
+ });
398
+ Schema.extend("bitset", (data, { bits, meta }, options) => {
399
+ let value = 0, keys = [];
400
+ if (typeof data === "number") {
401
+ value = data;
402
+ for (const key in bits) if (data & bits[key]) keys.push(key);
403
+ } else if (Array.isArray(data)) {
404
+ keys = data;
405
+ for (const key of keys) {
406
+ if (typeof key !== "string") throw new ValidationError(`expected string but got ${key}`, options);
407
+ if (key in bits) value |= bits[key];
408
+ }
409
+ } else throw new ValidationError(`expected number or array but got ${data}`, options);
410
+ if (value === meta.default) return [value];
411
+ return [value, keys];
412
+ });
413
+ Schema.extend("function", (data, _, options) => {
414
+ if (typeof data === "function") return [data];
415
+ throw new ValidationError(`expected function but got ${data}`, options);
416
+ });
417
+ Schema.extend("is", (data, { constructor }, options) => {
418
+ if (typeof constructor === "function") {
419
+ if (data instanceof constructor) return [data];
420
+ throw new ValidationError(`expected ${constructor.name} but got ${data}`, options);
421
+ } else {
422
+ if ((0, _deepseek_ai_cosmokit.isNullable)(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options);
423
+ let prototype = Object.getPrototypeOf(data);
424
+ while (prototype) {
425
+ if (prototype.constructor?.name === constructor) return [data];
426
+ prototype = Object.getPrototypeOf(prototype);
427
+ }
428
+ throw new ValidationError(`expected ${constructor} but got ${data}`, options);
429
+ }
430
+ });
431
+ function property(data, key, schema, options) {
432
+ try {
433
+ const [value, adapted] = Schema.resolve(data[key], schema, {
434
+ ...options,
435
+ path: [...options.path || [], key]
436
+ });
437
+ if (adapted !== void 0) data[key] = adapted;
438
+ return value;
439
+ } catch (e) {
440
+ if (!options?.autofix) throw e;
441
+ delete data[key];
442
+ return schema.meta.default;
443
+ }
444
+ }
445
+ Schema.extend("array", (data, { inner, meta }, options) => {
446
+ if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);
447
+ checkWithinRange(data.length, meta, "array length", options, !(0, _deepseek_ai_cosmokit.isNullable)(inner.meta.default));
448
+ return [data.map((_, index) => property(data, index, inner, options))];
449
+ });
450
+ Schema.extend("dict", (data, { inner, sKey }, options, strict) => {
451
+ if (!(0, _deepseek_ai_cosmokit.isPlainObject)(data)) throw new ValidationError(`expected object but got ${data}`, options);
452
+ const result = {};
453
+ for (const key in data) {
454
+ let rKey;
455
+ try {
456
+ rKey = Schema.resolve(key, sKey, options)[0];
457
+ } catch (error) {
458
+ if (strict) continue;
459
+ throw error;
460
+ }
461
+ result[rKey] = property(data, key, inner, options);
462
+ data[rKey] = data[key];
463
+ if (key !== rKey) delete data[key];
464
+ }
465
+ return [result];
466
+ });
467
+ Schema.extend("tuple", (data, { list }, options, strict) => {
468
+ if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);
469
+ const result = list.map((inner, index) => property(data, index, inner, options));
470
+ if (strict) return [result];
471
+ result.push(...data.slice(list.length));
472
+ return [result];
473
+ });
474
+ function merge(result, data) {
475
+ for (const key in data) {
476
+ if (key in result) continue;
477
+ result[key] = data[key];
478
+ }
479
+ }
480
+ Schema.extend("object", (data, { dict }, options, strict) => {
481
+ if (!(0, _deepseek_ai_cosmokit.isPlainObject)(data)) throw new ValidationError(`expected object but got ${data}`, options);
482
+ const result = {};
483
+ for (const key in dict) {
484
+ const value = property(data, key, dict[key], options);
485
+ if (!(0, _deepseek_ai_cosmokit.isNullable)(value) || key in data) result[key] = value;
486
+ }
487
+ if (!strict) merge(result, data);
488
+ return [result];
489
+ });
490
+ Schema.extend("union", (data, { list, toString }, options, strict) => {
491
+ const messages = [];
492
+ for (const inner of list) try {
493
+ return Schema.resolve(data, inner, options, strict);
494
+ } catch (error) {
495
+ messages.push(error);
496
+ }
497
+ throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);
498
+ });
499
+ Schema.extend("intersect", (data, { list, toString }, options, strict) => {
500
+ if (!list.length) return [data];
501
+ let result;
502
+ for (const inner of list) {
503
+ const value = Schema.resolve(data, inner, options, true)[0];
504
+ if ((0, _deepseek_ai_cosmokit.isNullable)(value)) continue;
505
+ if ((0, _deepseek_ai_cosmokit.isNullable)(result)) result = value;
506
+ else if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);
507
+ else if (typeof value === "object") merge(result ??= {}, value);
508
+ else if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);
509
+ }
510
+ if (!strict && (0, _deepseek_ai_cosmokit.isPlainObject)(data)) merge(result, data);
511
+ return [result];
512
+ });
513
+ Schema.extend("transform", (data, { inner, callback, preserve }, options) => {
514
+ const [result, adapted = data] = Schema.resolve(data, inner, options, true);
515
+ if (preserve) return [callback(result)];
516
+ else return [callback(result), callback(adapted)];
517
+ });
518
+ const formatters = {};
519
+ function defineMethod(name, keys, format) {
520
+ formatters[name] = format;
521
+ Object.assign(Schema, { [name](...args) {
522
+ const schema = new Schema({ type: name });
523
+ keys.forEach((key, index) => {
524
+ switch (key) {
525
+ case "sKey":
526
+ schema.sKey = args[index] ?? Schema.string();
527
+ break;
528
+ case "inner":
529
+ schema.inner = Schema.from(args[index]);
530
+ break;
531
+ case "list":
532
+ schema.list = args[index].map(Schema.from);
533
+ break;
534
+ case "dict":
535
+ schema.dict = (0, _deepseek_ai_cosmokit.valueMap)(args[index], Schema.from);
536
+ break;
537
+ case "bits":
538
+ schema.bits = {};
539
+ for (const key in args[index]) {
540
+ if (typeof args[index][key] !== "number") continue;
541
+ schema.bits[key] = args[index][key];
542
+ }
543
+ break;
544
+ case "callback": {
545
+ const callback = schema.callback = args[index];
546
+ callback["toJSON"] ||= () => callback.toString();
547
+ break;
548
+ }
549
+ case "constructor": {
550
+ const constructor = schema.constructor = args[index];
551
+ if (typeof constructor === "function") constructor["toJSON"] ||= () => constructor["name"];
552
+ break;
553
+ }
554
+ default: schema[key] = args[index];
555
+ }
556
+ });
557
+ if (name === "object" || name === "dict") schema.meta.default = {};
558
+ else if (name === "array" || name === "tuple") schema.meta.default = [];
559
+ else if (name === "bitset") schema.meta.default = 0;
560
+ return schema;
561
+ } });
562
+ }
563
+ defineMethod("is", ["constructor"], ({ constructor }) => {
564
+ if (typeof constructor === "function") return constructor.name;
565
+ else return constructor;
566
+ });
567
+ defineMethod("any", [], () => "any");
568
+ defineMethod("never", [], () => "never");
569
+ defineMethod("const", ["value"], ({ value }) => typeof value === "string" ? JSON.stringify(value) : value);
570
+ defineMethod("string", [], () => "string");
571
+ defineMethod("number", [], () => "number");
572
+ defineMethod("boolean", [], () => "boolean");
573
+ defineMethod("bitset", ["bits"], () => "bitset");
574
+ defineMethod("function", [], () => "function");
575
+ defineMethod("array", ["inner"], ({ inner }) => `${inner.toString(true)}[]`);
576
+ defineMethod("dict", ["inner", "sKey"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`);
577
+ defineMethod("tuple", ["list"], ({ list }) => `[${list.map((inner) => inner.toString()).join(", ")}]`);
578
+ defineMethod("object", ["dict"], ({ dict }) => {
579
+ if (Object.keys(dict).length === 0) return "{}";
580
+ return `{ ${Object.entries(dict).map(([key, inner]) => {
581
+ return `${key}${inner.meta.required ? "" : "?"}: ${inner.toString()}`;
582
+ }).join(", ")} }`;
583
+ });
584
+ defineMethod("union", ["list"], ({ list }, inline) => {
585
+ const result = list.map(({ toString: format }) => format()).join(" | ");
586
+ return inline ? `(${result})` : result;
587
+ });
588
+ defineMethod("intersect", ["list"], ({ list }) => {
589
+ return `${list.map((inner) => inner.toString(true)).join(" & ")}`;
590
+ });
591
+ defineMethod("transform", [
592
+ "inner",
593
+ "callback",
594
+ "preserve"
595
+ ], ({ inner }, isInner) => inner.toString(isInner));
596
+ //#endregion
597
+ module.exports = Schema;