@xrkseek/harness 0.6.23 → 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 (658) 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 +18 -0
  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 +4 -1
  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/index.d.ts +5 -1
  296. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  297. package/node_modules/@xrkseek/server-face/dist/index.js +5 -1
  298. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  299. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.d.ts +19 -0
  300. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.d.ts.map +1 -0
  301. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.js +28 -0
  302. package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.js.map +1 -0
  303. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.d.ts +3 -0
  304. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.d.ts.map +1 -0
  305. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.js +22 -0
  306. package/node_modules/@xrkseek/server-face/dist/log-cut-reset.js.map +1 -0
  307. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  308. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +60 -5
  309. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  310. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts +2 -2
  311. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts.map +1 -1
  312. package/node_modules/@xrkseek/server-face/dist/projections/index.js +2 -2
  313. package/node_modules/@xrkseek/server-face/dist/projections/index.js.map +1 -1
  314. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.d.ts +50 -4
  315. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.d.ts.map +1 -1
  316. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js +167 -19
  317. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js.map +1 -1
  318. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts +21 -1
  319. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts.map +1 -1
  320. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js +21 -1
  321. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js.map +1 -1
  322. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.d.ts.map +1 -1
  323. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js +58 -0
  324. package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js.map +1 -1
  325. package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.d.ts.map +1 -1
  326. package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.js +85 -0
  327. package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.js.map +1 -1
  328. package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.d.ts.map +1 -1
  329. package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js +14 -0
  330. package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js.map +1 -1
  331. package/node_modules/@xrkseek/server-face/dist/projections/units/title.d.ts.map +1 -1
  332. package/node_modules/@xrkseek/server-face/dist/projections/units/title.js +14 -0
  333. package/node_modules/@xrkseek/server-face/dist/projections/units/title.js.map +1 -1
  334. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.d.ts.map +1 -1
  335. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js +24 -0
  336. package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js.map +1 -1
  337. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts +1 -1
  338. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  339. package/node_modules/@xrkseek/server-face/dist/runtime.js +115 -15
  340. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  341. package/node_modules/@xrkseek/server-face/dist/seat-identity.d.ts +26 -0
  342. package/node_modules/@xrkseek/server-face/dist/seat-identity.d.ts.map +1 -0
  343. package/node_modules/@xrkseek/server-face/dist/seat-identity.js +137 -0
  344. package/node_modules/@xrkseek/server-face/dist/seat-identity.js.map +1 -0
  345. package/node_modules/@xrkseek/server-face/dist/seat-titles.d.ts +29 -0
  346. package/node_modules/@xrkseek/server-face/dist/seat-titles.d.ts.map +1 -0
  347. package/node_modules/@xrkseek/server-face/dist/seat-titles.js +74 -0
  348. package/node_modules/@xrkseek/server-face/dist/seat-titles.js.map +1 -0
  349. package/node_modules/@xrkseek/server-face/dist/session-capability.d.ts.map +1 -1
  350. package/node_modules/@xrkseek/server-face/dist/session-capability.js +9 -6
  351. package/node_modules/@xrkseek/server-face/dist/session-capability.js.map +1 -1
  352. package/node_modules/@xrkseek/server-face/dist/session-event-window.d.ts +37 -0
  353. package/node_modules/@xrkseek/server-face/dist/session-event-window.d.ts.map +1 -0
  354. package/node_modules/@xrkseek/server-face/dist/session-event-window.js +88 -0
  355. package/node_modules/@xrkseek/server-face/dist/session-event-window.js.map +1 -0
  356. package/node_modules/@xrkseek/server-face/dist/session-identity-store.d.ts +20 -0
  357. package/node_modules/@xrkseek/server-face/dist/session-identity-store.d.ts.map +1 -0
  358. package/node_modules/@xrkseek/server-face/dist/session-identity-store.js +82 -0
  359. package/node_modules/@xrkseek/server-face/dist/session-identity-store.js.map +1 -0
  360. package/node_modules/@xrkseek/server-face/dist/session-posture.d.ts +1 -1
  361. package/node_modules/@xrkseek/server-face/dist/session-posture.d.ts.map +1 -1
  362. package/node_modules/@xrkseek/server-face/dist/session-posture.js +20 -5
  363. package/node_modules/@xrkseek/server-face/dist/session-posture.js.map +1 -1
  364. package/node_modules/@xrkseek/server-face/dist/session-query-tools.d.ts +1 -0
  365. package/node_modules/@xrkseek/server-face/dist/session-query-tools.d.ts.map +1 -1
  366. package/node_modules/@xrkseek/server-face/dist/session-query-tools.js +172 -25
  367. package/node_modules/@xrkseek/server-face/dist/session-query-tools.js.map +1 -1
  368. package/node_modules/@xrkseek/server-face/dist/session-search.d.ts +20 -2
  369. package/node_modules/@xrkseek/server-face/dist/session-search.d.ts.map +1 -1
  370. package/node_modules/@xrkseek/server-face/dist/session-search.js +125 -19
  371. package/node_modules/@xrkseek/server-face/dist/session-search.js.map +1 -1
  372. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  373. package/node_modules/@xrkseek/server-face/dist/session-status.js +143 -21
  374. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  375. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts.map +1 -1
  376. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js +5 -0
  377. package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js.map +1 -1
  378. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts.map +1 -1
  379. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js +2 -1
  380. package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js.map +1 -1
  381. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  382. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +10 -2
  383. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  384. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  385. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +48 -10
  386. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  387. package/node_modules/@xrkseek/server-face/dist/skill-documents.d.ts.map +1 -1
  388. package/node_modules/@xrkseek/server-face/dist/skill-documents.js +14 -4
  389. package/node_modules/@xrkseek/server-face/dist/skill-documents.js.map +1 -1
  390. package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts +4 -2
  391. package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts.map +1 -1
  392. package/node_modules/@xrkseek/server-face/dist/skill-list.js +10 -4
  393. package/node_modules/@xrkseek/server-face/dist/skill-list.js.map +1 -1
  394. package/node_modules/@xrkseek/server-face/dist/skill-read.d.ts.map +1 -1
  395. package/node_modules/@xrkseek/server-face/dist/skill-read.js +9 -2
  396. package/node_modules/@xrkseek/server-face/dist/skill-read.js.map +1 -1
  397. package/node_modules/@xrkseek/server-face/dist/skill-source.d.ts +2 -1
  398. package/node_modules/@xrkseek/server-face/dist/skill-source.d.ts.map +1 -1
  399. package/node_modules/@xrkseek/server-face/dist/skill-source.js +12 -2
  400. package/node_modules/@xrkseek/server-face/dist/skill-source.js.map +1 -1
  401. package/node_modules/@xrkseek/server-face/dist/slash.d.ts +10 -1
  402. package/node_modules/@xrkseek/server-face/dist/slash.d.ts.map +1 -1
  403. package/node_modules/@xrkseek/server-face/dist/slash.js +97 -22
  404. package/node_modules/@xrkseek/server-face/dist/slash.js.map +1 -1
  405. package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.d.ts.map +1 -1
  406. package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.js +53 -0
  407. package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.js.map +1 -1
  408. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  409. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +7 -2
  410. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  411. package/node_modules/@xrkseek/server-face/dist/types.d.ts +23 -0
  412. package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
  413. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts +6 -1
  414. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
  415. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +17 -1
  416. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
  417. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
  418. package/node_modules/@xrkseek/server-face/dist/workspace-face.js +19 -14
  419. package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
  420. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.d.ts +22 -0
  421. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.d.ts.map +1 -0
  422. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.js +35 -0
  423. package/node_modules/@xrkseek/server-face/dist/workspace-member-look.js.map +1 -0
  424. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts +3 -2
  425. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts.map +1 -1
  426. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js +74 -57
  427. package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
  428. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts +31 -0
  429. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts.map +1 -1
  430. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js +109 -0
  431. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js.map +1 -1
  432. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts +2 -0
  433. package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts.map +1 -1
  434. package/node_modules/@xrkseek/server-face/dist/workspace-store.js +7 -0
  435. package/node_modules/@xrkseek/server-face/dist/workspace-store.js.map +1 -1
  436. package/node_modules/@xrkseek/server-face/package.json +60 -60
  437. package/node_modules/@xrkseek/server-host/dist/index.d.ts +37 -6
  438. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  439. package/node_modules/@xrkseek/server-host/dist/index.js +112 -23
  440. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  441. package/node_modules/@xrkseek/server-host/dist/log.d.ts +6 -0
  442. package/node_modules/@xrkseek/server-host/dist/log.d.ts.map +1 -1
  443. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
  444. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +17 -2
  445. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
  446. package/node_modules/@xrkseek/server-host/dist/standing-tools.d.ts.map +1 -1
  447. package/node_modules/@xrkseek/server-host/dist/standing-tools.js +3 -3
  448. package/node_modules/@xrkseek/server-host/dist/standing-tools.js.map +1 -1
  449. package/node_modules/@xrkseek/server-host/package.json +75 -75
  450. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts +5 -0
  451. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts.map +1 -1
  452. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts +1 -1
  453. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts.map +1 -1
  454. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui-browser-runtime.js +188 -188
  455. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +1 -1
  456. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
  457. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +1 -1
  458. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
  459. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.d.ts.map +1 -1
  460. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js +292 -24
  461. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js.map +1 -1
  462. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.d.ts.map +1 -1
  463. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js +12 -1
  464. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js.map +1 -1
  465. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts +16 -1
  466. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts.map +1 -1
  467. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js +47 -2
  468. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js.map +1 -1
  469. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts +1 -1
  470. package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.js +53 -53
  471. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts +9 -4
  472. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts.map +1 -1
  473. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js +39 -20
  474. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js.map +1 -1
  475. package/node_modules/@xrkseek/server-http/dist/index.d.ts +2 -1
  476. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  477. package/node_modules/@xrkseek/server-http/dist/index.js +2 -1
  478. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  479. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts +11 -0
  480. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts.map +1 -0
  481. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js +85 -0
  482. package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js.map +1 -0
  483. package/node_modules/@xrkseek/server-http/package.json +72 -72
  484. package/node_modules/@xrkseek/server-loader/dist/load.d.ts.map +1 -1
  485. package/node_modules/@xrkseek/server-loader/dist/load.js +132 -0
  486. package/node_modules/@xrkseek/server-loader/dist/load.js.map +1 -1
  487. package/node_modules/@xrkseek/session-projection/README.md +26 -26
  488. package/node_modules/@xrkseek/session-projection/dist/index.d.ts +31 -2
  489. package/node_modules/@xrkseek/session-projection/dist/index.d.ts.map +1 -1
  490. package/node_modules/@xrkseek/session-projection/dist/index.js +135 -19
  491. package/node_modules/@xrkseek/session-projection/dist/index.js.map +1 -1
  492. package/node_modules/@xrkseek/session-telemetry/README.md +11 -11
  493. package/node_modules/@xrkseek/session-telemetry/dist/index.d.ts +1 -0
  494. package/node_modules/@xrkseek/session-telemetry/dist/index.d.ts.map +1 -1
  495. package/node_modules/@xrkseek/session-telemetry/dist/index.js +1 -0
  496. package/node_modules/@xrkseek/session-telemetry/dist/index.js.map +1 -1
  497. package/node_modules/@xrkseek/session-telemetry/dist/redact.d.ts +14 -0
  498. package/node_modules/@xrkseek/session-telemetry/dist/redact.d.ts.map +1 -0
  499. package/node_modules/@xrkseek/session-telemetry/dist/redact.js +58 -0
  500. package/node_modules/@xrkseek/session-telemetry/dist/redact.js.map +1 -0
  501. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.d.ts +7 -0
  502. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.d.ts.map +1 -1
  503. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.js +43 -12
  504. package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.js.map +1 -1
  505. package/node_modules/@xrkseek/session-telemetry/package.json +27 -27
  506. package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts +13 -0
  507. package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts.map +1 -1
  508. package/node_modules/@xrkseek/workspace/dist/durable-inject.js +40 -4
  509. package/node_modules/@xrkseek/workspace/dist/durable-inject.js.map +1 -1
  510. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts +10 -9
  511. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts.map +1 -1
  512. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js +67 -19
  513. package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js.map +1 -1
  514. package/node_modules/@xrkseek/workspace/dist/index.d.ts +19 -20
  515. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  516. package/node_modules/@xrkseek/workspace/dist/index.js +43 -20
  517. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  518. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts +2 -0
  519. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts.map +1 -1
  520. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js +23 -12
  521. package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js.map +1 -1
  522. package/node_modules/@xrkseek/workspace/dist/inject-sources.d.ts +7 -4
  523. package/node_modules/@xrkseek/workspace/dist/inject-sources.d.ts.map +1 -1
  524. package/node_modules/@xrkseek/workspace/dist/inject-sources.js +10 -0
  525. package/node_modules/@xrkseek/workspace/dist/inject-sources.js.map +1 -1
  526. package/node_modules/@xrkseek/workspace/dist/instruction-authority.d.ts +27 -0
  527. package/node_modules/@xrkseek/workspace/dist/instruction-authority.d.ts.map +1 -0
  528. package/node_modules/@xrkseek/workspace/dist/instruction-authority.js +78 -0
  529. package/node_modules/@xrkseek/workspace/dist/instruction-authority.js.map +1 -0
  530. package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts +7 -0
  531. package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts.map +1 -1
  532. package/node_modules/@xrkseek/workspace/dist/skill-dirs.js +4 -2
  533. package/node_modules/@xrkseek/workspace/dist/skill-dirs.js.map +1 -1
  534. package/node_modules/@xrkseek/workspace/dist/skill-tools.js +1 -1
  535. package/node_modules/@xrkseek/workspace/dist/skill-tools.js.map +1 -1
  536. package/node_modules/@xrkseek/workspace/dist/skills.d.ts +13 -1
  537. package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
  538. package/node_modules/@xrkseek/workspace/dist/skills.js +45 -5
  539. package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
  540. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts +26 -0
  541. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts.map +1 -0
  542. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js +80 -0
  543. package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js.map +1 -0
  544. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts +7 -1
  545. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts.map +1 -1
  546. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js +21 -1
  547. package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js.map +1 -1
  548. package/node_modules/@xrkseek/workspace/package.json +28 -28
  549. package/node_modules/@xrkseek/xrk-agent/lib/index.js +1 -793
  550. package/node_modules/@xrkseek/xrk-agent/lib/invariant.js +1 -23
  551. package/node_modules/@xrkseek/xrk-attachment/lib/index.js +1 -1
  552. package/node_modules/@xrkseek/xrk-attachment/lib/invariant.js +1 -0
  553. package/node_modules/@xrkseek/xrk-attachment/lib/types/brand.js +10 -0
  554. package/node_modules/@xrkseek/xrk-attachment/lib/types/error.js +48 -0
  555. package/node_modules/@xrkseek/xrk-attachment/lib/types/index.js +42 -0
  556. package/node_modules/@xrkseek/xrk-attachment/lib/types/invariant.js +16 -0
  557. package/node_modules/@xrkseek/xrk-attachment/lib/types/types.d.ts +6 -0
  558. package/node_modules/@xrkseek/xrk-attachment/lib/types/types.js +3 -0
  559. package/node_modules/@xrkseek/xrk-attachment/package.json +1 -0
  560. package/node_modules/@xrkseek/xrk-brand/lib/index.js +1 -1
  561. package/node_modules/@xrkseek/xrk-brand/lib/invariant.js +1 -0
  562. package/node_modules/@xrkseek/xrk-brand/lib/types/index.js +24 -0
  563. package/node_modules/@xrkseek/xrk-brand/lib/types/invariant.js +22 -0
  564. package/node_modules/@xrkseek/xrk-brand/package.json +1 -0
  565. package/node_modules/@xrkseek/xrk-commands/lib/index.js +1 -1
  566. package/node_modules/@xrkseek/xrk-commands/lib/invariant.js +1 -0
  567. package/node_modules/@xrkseek/xrk-file-reference-local/README.md +46 -46
  568. package/node_modules/@xrkseek/xrk-file-reference-local/README.zh.md +46 -46
  569. package/node_modules/@xrkseek/xrk-file-reference-local/package.json +30 -30
  570. package/node_modules/@xrkseek/xrk-invariants/lib/index.js +1 -1
  571. package/node_modules/@xrkseek/xrk-invariants/lib/invariant.js +1 -0
  572. package/node_modules/@xrkseek/xrk-invariants/lib/types/index.js +148 -0
  573. package/node_modules/@xrkseek/xrk-invariants/lib/types/invariant.js +22 -0
  574. package/node_modules/@xrkseek/xrk-invariants/package.json +1 -0
  575. package/node_modules/@xrkseek/xrk-llm/lib/index.js +1 -1
  576. package/node_modules/@xrkseek/xrk-llm/lib/invariant.js +1 -0
  577. package/node_modules/@xrkseek/xrk-llm/lib/types/index.js +4 -0
  578. package/node_modules/@xrkseek/xrk-llm/lib/types/types.d.ts +11 -0
  579. package/node_modules/@xrkseek/xrk-permission-presets/lib/index.js +1 -1
  580. package/node_modules/@xrkseek/xrk-permission-presets/lib/invariant.js +1 -0
  581. package/node_modules/@xrkseek/xrk-scope/lib/index.js +1 -0
  582. package/node_modules/@xrkseek/xrk-scope/lib/types/index.d.ts +129 -0
  583. package/node_modules/@xrkseek/xrk-scope/lib/types/index.js +243 -0
  584. package/node_modules/@xrkseek/xrk-scope/package.json +34 -0
  585. package/node_modules/@xrkseek/xrk-session/lib/index.js +1 -1
  586. package/node_modules/@xrkseek/xrk-session/lib/invariant.js +1 -0
  587. package/node_modules/@xrkseek/xrk-session-projection/lib/index.js +1 -1
  588. package/node_modules/@xrkseek/xrk-session-projection/lib/invariant.js +1 -0
  589. package/node_modules/@xrkseek/xrk-session-reference/README.md +50 -50
  590. package/node_modules/@xrkseek/xrk-session-reference/README.zh.md +50 -50
  591. package/node_modules/@xrkseek/xrk-session-reference/dist/prepare-face.js +13 -13
  592. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js +2 -2
  593. package/node_modules/@xrkseek/xrk-session-reference/package.json +56 -56
  594. package/node_modules/@xrkseek/xrk-settings/lib/index.js +1 -638
  595. package/node_modules/@xrkseek/xrk-settings/lib/invariant.js +1 -67
  596. package/node_modules/@xrkseek/xrk-system-prompt/package.json +15 -15
  597. package/node_modules/@xrkseek/xrk-system-prompt/src/index.ts +144 -144
  598. package/node_modules/@xrkseek/xrk-token-meter/README.i18n.yaml +6 -0
  599. package/node_modules/@xrkseek/xrk-token-meter/README.md +68 -0
  600. package/node_modules/@xrkseek/xrk-token-meter/README.zh.md +68 -0
  601. package/node_modules/@xrkseek/xrk-token-meter/lib/index.js +1 -0
  602. package/node_modules/@xrkseek/xrk-token-meter/lib/invariant.js +1 -0
  603. package/node_modules/@xrkseek/xrk-token-meter/lib/types/breakdown-projection.d.ts +29 -0
  604. package/node_modules/@xrkseek/xrk-token-meter/lib/types/breakdown-projection.js +56 -0
  605. package/node_modules/@xrkseek/xrk-token-meter/lib/types/client.d.ts +9 -0
  606. package/node_modules/@xrkseek/xrk-token-meter/lib/types/client.js +7 -0
  607. package/node_modules/@xrkseek/xrk-token-meter/lib/types/estimate.d.ts +42 -0
  608. package/node_modules/@xrkseek/xrk-token-meter/lib/types/estimate.js +79 -0
  609. package/node_modules/@xrkseek/xrk-token-meter/lib/types/index.d.ts +62 -0
  610. package/node_modules/@xrkseek/xrk-token-meter/lib/types/index.js +250 -0
  611. package/node_modules/@xrkseek/xrk-token-meter/lib/types/invariant.d.ts +16 -0
  612. package/node_modules/@xrkseek/xrk-token-meter/lib/types/invariant.js +30 -0
  613. package/node_modules/@xrkseek/xrk-token-meter/lib/types/projection.d.ts +74 -0
  614. package/node_modules/@xrkseek/xrk-token-meter/lib/types/projection.js +7 -0
  615. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-fold.d.ts +38 -0
  616. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-fold.js +47 -0
  617. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-projection.d.ts +59 -0
  618. package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-projection.js +66 -0
  619. package/node_modules/@xrkseek/xrk-token-meter/lib/types/turn-usage.d.ts +33 -0
  620. package/node_modules/@xrkseek/xrk-token-meter/lib/types/turn-usage.js +247 -0
  621. package/node_modules/@xrkseek/xrk-token-meter/lib/types/types.d.ts +44 -0
  622. package/node_modules/@xrkseek/xrk-token-meter/lib/types/types.js +7 -0
  623. package/node_modules/@xrkseek/xrk-token-meter/lib/types/usage-projection.d.ts +64 -0
  624. package/node_modules/@xrkseek/xrk-token-meter/lib/types/usage-projection.js +161 -0
  625. package/node_modules/@xrkseek/xrk-token-meter/package.json +57 -0
  626. package/node_modules/@xrkseek/xrk-tools/lib/index.js +1 -1
  627. package/node_modules/@xrkseek/xrk-tools/lib/invariant.js +1 -1
  628. package/node_modules/@xrkseek/xrk-tools/src/presentation.ts +39 -39
  629. package/node_modules/@xrkseek/xrk-typert-protocol/lib/index.js +1 -1
  630. package/node_modules/@xrkseek/xrk-typert-protocol/lib/invariant.js +1 -0
  631. package/node_modules/@xrkseek/xrk-workflow/README.md +73 -73
  632. package/node_modules/@xrkseek/xrk-workflow/README.zh.md +72 -72
  633. package/node_modules/@xrkseek/xrk-workflow/lib/types/index.js +118 -118
  634. package/package.json +7 -1
  635. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts +0 -14
  636. package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts.map +0 -1
  637. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js +0 -21
  638. package/node_modules/@xrkseek/llm/dist/reasoning-effort.js.map +0 -1
  639. package/node_modules/@xrkseek/server-face/dist/index.d.mts +0 -3734
  640. package/node_modules/@xrkseek/server-face/dist/index.d.mts.map +0 -1
  641. package/node_modules/@xrkseek/server-face/dist/index.mjs +0 -22085
  642. package/node_modules/@xrkseek/server-face/dist/index.mjs.map +0 -1
  643. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts +0 -51
  644. package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts.map +0 -1
  645. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js +0 -104
  646. package/node_modules/@xrkseek/server-face/dist/model-reasoning.js.map +0 -1
  647. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts +0 -2
  648. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts.map +0 -1
  649. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js +0 -98
  650. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js.map +0 -1
  651. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts +0 -18
  652. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts.map +0 -1
  653. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js +0 -141
  654. package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js.map +0 -1
  655. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts +0 -30
  656. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts.map +0 -1
  657. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js +0 -96
  658. package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js.map +0 -1
@@ -0,0 +1,152 @@
1
+ # @xrkseek/claude-code-mods
2
+
3
+ Run **Claude Code plugins (mods)** inside this harness: read
4
+ `.claude-plugin/plugin.json` + `hooks/hooks.json`, import the hook modules with
5
+ the native ESM loader, run their `register(on)` handlers as one middleware
6
+ chain, and serve the `$` API from our own tool pipeline and services.
7
+
8
+ A plugin author changes nothing — you ship the same directory that
9
+ `claude --plugin-dir` accepts.
10
+
11
+ ```
12
+ my-plugin/
13
+ .claude-plugin/plugin.json { "name": "my-plugin", "version": "0.1.0" }
14
+ hooks/hooks.json { "modules": ["./my-plugin.mjs"] }
15
+ hooks/my-plugin.mjs export function register(on) { … }
16
+ ```
17
+
18
+ ## Use
19
+
20
+ The shipped runtime (`core-agent` / `core-tools`, no Cordis container in the
21
+ request path) uses `createModsRuntime`:
22
+
23
+ ```ts
24
+ import { createModsRuntime } from "@xrkseek/claude-code-mods";
25
+
26
+ const mods = await createModsRuntime({
27
+ services: { fs, subprocess, commands, tools, workingDirectory, storageDomain },
28
+ pipeline, // the composition's ToolPipeline
29
+ agentOf: ({ call }) => agentForSession(call),
30
+ dirs: ["~/.xrk/plugins/claude-code/my-plugin"],
31
+ });
32
+
33
+ await mods.dispatch("prompt.submit", { text }, () => ({ text }), { agent, signal });
34
+ await mods.dispose();
35
+ ```
36
+
37
+ A Cordis composition (tests, or a host that already runs one) uses
38
+ `attachClaudeCodeMods`:
39
+
40
+ ```ts
41
+ import { attachClaudeCodeMods } from "@xrkseek/claude-code-mods";
42
+
43
+ const mods = await attachClaudeCodeMods({
44
+ ctx,
45
+ pipeline, // the composition's ToolPipeline
46
+ dirs: ["~/.xrk/plugins/claude-code/my-plugin"],
47
+ agentOf: ({ call }) => agentForSession(call),
48
+ });
49
+
50
+ // live now: a plugin observes, refuses, or rewrites every tool call
51
+ // other events are raised by the host on its own seam:
52
+ await mods.dispatch("prompt.submit", { text, messages }, () => ({ text }), {
53
+ agent,
54
+ signal,
55
+ });
56
+ ```
57
+
58
+ `definePluginDir(dir)` is usable on its own: it turns a plugin directory into an
59
+ ordinary Cordis plugin (`ctx.plugin(...)`) for hosts that do not want the tool
60
+ interceptor installed.
61
+
62
+ ## Product wiring
63
+
64
+ `presets/harness/mods.ts` is the only place that knows the tool pipeline, the
65
+ filesystem seam, and the session identity at once. `createHarnessComposition()`
66
+ uses it to:
67
+
68
+ 1. `await mods.attach(handle)` in `createAgent()` — raises `session.start`, then
69
+ hands back `mods.wrap(handle)`;
70
+ 2. wrap `continueTurn` / `run` — `prompt.submit` (a plugin may rewrite or drop
71
+ the turn), then `turn.start`, then `turn.complete` on both the answer and the
72
+ error path;
73
+ 3. `await mods.dispose()` first in `dispose()` — `session.end` runs while
74
+ `$.state` is still readable, and only then do the seams come down.
75
+
76
+ Plugins live at `~/.xrk/plugins/claude-code/<name>/.claude-plugin/plugin.json`
77
+ by default; `createHarnessComposition({ claudeCodePluginsRoot })` points
78
+ somewhere else. A missing directory means "no plugins installed" and costs the
79
+ composition nothing.
80
+
81
+ Inside a composition `$.fs`, `$.process`, `$.store` and `$.session` are the
82
+ product's own services (workspace-confined fs, the shell's own subprocess, a
83
+ `.state/` directory beside the plugins, the session cwd). Everything else fails
84
+ with the service name:
85
+
86
+ | Call | Result in the product |
87
+ | ------------------------------------- | -------------------------------------------------------------------------------------- |
88
+ | `$.tool.list` | the product registry's `name` / `description` (never `execute`) |
89
+ | `$.tool.register` | lands in the product registry as `mcp__<plugin>__<tool>`, dropped with the session |
90
+ | `$.tool.call` | runs the product `ToolPipeline` (policy, sandbox, other plugins' hooks), returns text |
91
+ | `$.command.register` / `run` / `list` | the composition's own table: listed in Face's `/` panel, a typed `/name` dispatches it |
92
+ | `$.ui.ask` | throws (no question surface yet) |
93
+
94
+ Plugin tools are named `mcp__<plugin>__<tool>` (Claude Code's namespace rule) and are
95
+ registered `direct`, so the model sees them immediately. Their `execute` is still a
96
+ placeholder that rejects: the result has to come from
97
+ `on('tool.call', { tool: 'mcp__<plugin>__<tool>' }, …)`. With no hook answering, the
98
+ model reads "no tool.call hook answered it" — a diagnosable failure, not an empty result.
99
+
100
+ The per-method wiring matrix (9 events × 36 `$` methods, including _why_ each gap is a
101
+ gap) lives in [`docs/claude-code-mods-wiring.md`](../../docs/claude-code-mods-wiring.md).
102
+ Change either side, update that table.
103
+
104
+ ## Events
105
+
106
+ | Event | Raised here by | A hook may |
107
+ | ------------------------------ | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
108
+ | `tool.call` | **wired**: `ToolPipeline.onPre` / `onExecute` / `onPost` | observe, `{ deny }`, answer before dispatch with `{ result }` (body skipped), or replace after `next` |
109
+ | `session.start` | **wired**: harness composition, before `createAgent()` returns | observe; register commands and tools |
110
+ | `prompt.submit` | **wired**: harness composition, before `continueTurn` | rewrite `text`, `{ drop }`; `context` has no seam here and is reported then dropped |
111
+ | `turn.start` / `turn.complete` | **wired**: harness composition, around `continueTurn` | observe; `{ text }` for the host log |
112
+ | `command.run` | **wired**: `$.command.run`, and harness composition on a typed `/name` | answer `{ text }` or `{}` |
113
+ | `ui.render` | ✅ AbovePrompt band (`session/band` + `ModBandDock`) | return a `Box`/`Text`/`Button` tree, or `next` |
114
+ | `session.end` | **wired**: harness composition, first thing in `dispose()` | observe; `$.state` still readable |
115
+
116
+ Unwired events are not silently broken: they can be registered, never fire, and
117
+ are named in a load-time warning — the same deal Claude Code gives an event it
118
+ never raises.
119
+
120
+ Tool names translate both ways (`Bash` ↔ `bash`), for `e.tool` and for matchers.
121
+
122
+ ## `$` surface
123
+
124
+ `plugin`, `ui`, `command`, `tool`, `prompt`, `session`, `state`, `store`,
125
+ `clock`, `fs`, `process`, `http`, `env` — all implemented **by the bridge**. A
126
+ service the deployment did not compose fails the call with the package name;
127
+ anything outside the table rejects with `no implementation for <namespace>.<method>`.
128
+ Which method actually runs inside this product's composition is the matrix in
129
+ [`docs/claude-code-mods-wiring.md`](../../docs/claude-code-mods-wiring.md).
130
+ See `README.zh.md` for the per-method table and the security boundary
131
+ (plugins run with the host process's full privileges).
132
+
133
+ ## Differences from the upstream bridge
134
+
135
+ Ported from `@deepseek-ai/dsh-experimental-claude-code-mods` (v0.2.1-rc.3).
136
+ Chain, engine and `$` semantics match; the differences are the host seams and
137
+ four self-supplied dependencies (`storage-domain`, `working-directory`,
138
+ `deepFreeze`/`JsonValue`, `randomUUID`). `README.zh.md` carries the full table.
139
+
140
+ ## Tests
141
+
142
+ ```
143
+ npx vitest run packages/claude-code-mods/tests
144
+ ```
145
+
146
+ 63 tests, including real plugin directories driven through a real
147
+ `ToolPipeline`: refuse → tool error, pass → body runs, rewrite after `next`,
148
+ pipeline restored after `dispose`.
149
+
150
+ ## License
151
+
152
+ MIT
@@ -0,0 +1,172 @@
1
+ # @xrkseek/claude-code-mods
2
+
3
+ 把 **Claude Code 插件(mods)** 装进本仓:读 `.claude-plugin/plugin.json`、`hooks/hooks.json`,
4
+ 用原生 ESM 加载钩子模块,把 `register(on)` 收集到的钩子跑成一条中间件链,并按本仓的
5
+ 工具管线提供 `$`(`$.fs`、`$.store`、`$.session`、`$.tool`…)。
6
+
7
+ 插件作者不需要为本仓改一行代码——写的就是上架 Claude Code 的那份目录。
8
+
9
+ ```
10
+ my-plugin/
11
+ .claude-plugin/plugin.json { "name": "my-plugin", "version": "0.1.0" }
12
+ hooks/hooks.json { "modules": ["./my-plugin.mjs"] }
13
+ hooks/my-plugin.mjs export function register(on) { … }
14
+ ```
15
+
16
+ ## 用法
17
+
18
+ 产品运行时(`core-agent` / `core-tools`,没有 Cordis 容器)用 `createModsRuntime`:
19
+
20
+ ```ts
21
+ import { createModsRuntime } from "@xrkseek/claude-code-mods";
22
+
23
+ const mods = await createModsRuntime({
24
+ services: { fs, subprocess, commands, tools, workingDirectory, storageDomain },
25
+ pipeline, // 本组合现有的 ToolPipeline
26
+ agentOf: ({ call }) => agentForSession(call),
27
+ dirs: ["~/.xrk/plugins/claude-code/my-plugin"],
28
+ });
29
+
30
+ // 工具调用已被拦截(观察 / 拒绝 / 改写)
31
+ // 其余事件由宿主在它自己的接缝上派发:
32
+ await mods.dispatch("prompt.submit", { text }, () => ({ text }), { agent, signal });
33
+
34
+ await mods.dispose();
35
+ ```
36
+
37
+ Cordis 组合(测试、或已有 Cordis 容器的宿主)用 `attachClaudeCodeMods`:
38
+
39
+ ```ts
40
+ import { attachClaudeCodeMods } from "@xrkseek/claude-code-mods";
41
+
42
+ // pipeline 是本组合现有的 ToolPipeline(presets/harness 里 createToolPipeline 的结果)
43
+ const mods = await attachClaudeCodeMods({
44
+ ctx,
45
+ pipeline,
46
+ dirs: ["~/.xrk/plugins/claude-code/my-plugin"],
47
+ agentOf: ({ call }) => agentForSession(call),
48
+ });
49
+
50
+ // 已经生效:插件可以观察、拒绝、改写每一次工具调用
51
+ // 其余事件由宿主在它自己的接缝上派发:
52
+ await mods.dispatch("prompt.submit", { text, messages }, () => ({ text }), {
53
+ agent,
54
+ signal,
55
+ });
56
+ ```
57
+
58
+ `definePluginDir(dir)` 单独可用:它把一个插件目录包装成普通的 Cordis 插件(`ctx.plugin(...)`),
59
+ 用于不想接管工具管线的场合(例如校验、测试、自带管线的宿主)。
60
+
61
+ ## 在产品里的装配
62
+
63
+ `presets/harness/mods.ts` 是唯一同时知道「工具管线 + 文件系统 + 会话身份」的地方,`createHarnessComposition()`
64
+ 在它上面做三件事:
65
+
66
+ 1. `createAgent()` 里 `await mods.attach(handle)`——派发 `session.start`,再把包装过的句柄交出去;
67
+ 2. 包装过的 `continueTurn` / `run`——先 `prompt.submit`(可改写或丢弃这一轮),再 `turn.start`,跑完或抛错都派发 `turn.complete`;
68
+ 3. `dispose()` 最先 `await mods.dispose()`——`session.end` 读完 `$.state` 之后才拆管线。
69
+
70
+ 插件目录默认 `~/.xrk/plugins/claude-code/<插件名>/.claude-plugin/plugin.json`;
71
+ `createHarnessComposition({ claudeCodePluginsRoot })` 可指到别处。目录不存在等同于「没装插件」,组合不付出代价。
72
+
73
+ 组合里的 `$.fs` / `$.process` / `$.store` / `$.session` 用**产品自己的服务**:workspace 根限定的 `fs`、
74
+ 与 shell 共用的同一个 `subprocess`、插件目录内的 `.state/`、会话 `cwd`。其余服务没组合就按包名拒绝:
75
+
76
+ | 调用 | 产品里的结果 |
77
+ | ------------------------------------- | ------------------------------------------------------------------------------ |
78
+ | `$.tool.list` | 返回产品注册表的 `name` / `description`(不暴露 `execute`) |
79
+ | `$.tool.register` | 真进产品注册表,名字为 `mcp__<插件>__<工具>`;会话结束撤销 |
80
+ | `$.tool.call` | 走产品 `ToolPipeline`(policy / sandbox / 其它插件的 hook 都看得到),只回文本 |
81
+ | `$.command.register` / `run` / `list` | 组合自带一张表:进 Face 的 `/` 面板,输入框打 `/name` 也能派发 |
82
+ | `$.ui.ask` | 抛(还没有作答面) |
83
+
84
+ 插件注册的工具名是 `mcp__<插件>__<工具>`(Claude Code 的命名空间约定),产品侧按 `direct` 暴露,
85
+ 所以模型能直接看到并调用。但它的 `execute` 是占位体(一定 reject):真正的结果必须由
86
+ `on('tool.call', { tool: 'mcp__<插件>__<工具>' }, …)` 那个 hook 回答;链上没人回答时,模型读到的
87
+ 就是那句「no tool.call hook answered it」——这是可诊断的失败,不是空结果。
88
+
89
+ **逐条的接入矩阵**(9 个事件 × 36 个 `$` 方法,含「为什么没接」)见
90
+ [`docs/claude-code-mods-wiring.md`](../../docs/claude-code-mods-wiring.md)。改任何一方都要同步那张表。
91
+
92
+ ## 事件
93
+
94
+ | 事件 | 本仓由谁触发 | 钩子能做 |
95
+ | ------------------------------ | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
96
+ | `tool.call` | **已接**:`ToolPipeline.onPre` / `onExecute` / `onPost` | 观察、`{ deny }` 拒绝、派发前 `{ result }` 直接作答(工具体不跑)、`next` 之后 `{ result }` 改写结果 |
97
+ | `session.start` | **已接**:harness 组合,`createAgent()` 返回前 | 观察;注册命令与工具 |
98
+ | `prompt.submit` | **已接**:harness 组合,`continueTurn` 之前 | 改写 `text`、追加 `context`、`{ drop }` 丢弃该轮 |
99
+ | `turn.start` / `turn.complete` | **已接**:harness 组合,`continueTurn` 前后 | 观察;`{ text }` 在宿主日志里写一行 |
100
+ | `command.run` | **已接**:`$.command.run` 解析名字时;harness 组合在输入框打 `/name` 时 | 以 `{ text }` 或 `{}` 作答 |
101
+ | `ui.render` | ✅ AbovePrompt 横幅(`session/band` + `ModBandDock`) | 返回 `Box`/`Text`/`Button` 树,或 `next` 让出 |
102
+ | `session.end` | **已接**:harness 组合,`dispose()` 最先 | 观察;结束前 `$.state` 仍可读 |
103
+
104
+ 未接线的事件不是「静默失败」:它们可以被注册,链里永远不触发,加载时会以警告点名——
105
+ 这和 Claude Code 对未知事件的处理一致。
106
+
107
+ 工具名双向翻译:插件写 `Bash`/`Read`/`Edit`,本仓登记的是 `bash`/`read`/`edit`;
108
+ `e.tool` 与 `{ tool: 'Bash' }` 匹配器都走这张表(`tool-names.ts`)。
109
+
110
+ ## `$` 能力面
111
+
112
+ | 命名空间 | 状态 | 依托 |
113
+ | ----------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
114
+ | `$.plugin` | ✅ `name` / `root` | 插件清单 |
115
+ | `$.ui` | ✅ `log` / `toast` / `status` / `invalidate` / `open` / `close` / `panes` / `ask` | 宿主日志;`ask` 还需 `userQuestions` |
116
+ | `$.command` | ✅ `register` / `run` / `list`(**需 `commands` 服务**;harness 组合自带一张,并把它挂到 handle 上给 Face 用) | `ctx.get('commands')` |
117
+ | `$.tool` | ✅ `register` / `call` / `list` | `ctx.get('tools')`(产品:真实注册表 + `ToolPipeline`) |
118
+ | `$.prompt` | ✅ `submit` | `agent.followup()` |
119
+ | `$.session` | ✅ `id` / `cwd` / `root` / `model` / `turns` / `messages` / `usage` / `version` | `deriveMessages(events)` + `workingDirectory` |
120
+ | `$.state` | ✅ `get` / `set` | 按会话内存 |
121
+ | `$.store` | ✅ `get` / `set` / `delete` / `keys` | `storageDomain`(本包自带 `createJsonStorageDomain`) |
122
+ | `$.clock` | ✅ `now` / `sleep` / `after` / `every` | — |
123
+ | `$.fs` | ✅ `read` / `write` / `list` / `exists` / `stat` | `@xrkseek/exec-fs`(已限定在 workspace 根内) |
124
+ | `$.process` | ✅ `run` | `@xrkseek/exec-subprocess`(argv,无 shell) |
125
+ | `$.http` | ✅ `fetch` | 进程 `fetch`,正文上限 4 MiB |
126
+ | `$.env` | ✅ `get` / `set` | 进程环境变量 |
127
+
128
+ 这张表说的是**桥实现了什么**,不是产品组合里每一格都真的能跑——哪些能跑、哪些按服务名拒绝,
129
+ 见矩阵文档。服务未组合时按包名拒绝;表外的命名空间/方法一律
130
+ `no implementation for <namespace>.<method>`——宁可调用点炸,也不让插件读到 `undefined` 后算出错误结论。
131
+
132
+ **安全边界**:插件以本进程全部权限运行。`$.env` 读写宿主环境变量,`$.http.fetch` 可访问任意 URL,
133
+ `$.fs` 与 `$.tool.call` 以会话身份行动。只挂载你愿意当代码运行的插件。
134
+
135
+ ## 与上游桥的差异
136
+
137
+ 本包移植自 DSH 的 `@deepseek-ai/dsh-experimental-claude-code-mods`(v0.2.1-rc.3),
138
+ 链/引擎/`$` 语义保持一致,差异只在**宿主接缝**和**三处自建依赖**:
139
+
140
+ | 处 | 上游 | 本仓 | 原因 |
141
+ | ----------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
142
+ | 事件来源 | Cordis 事件 `agent/created`、`agent/pre-step`、`tools/execute` | `ToolPipeline.onPre/onPost` + 宿主显式 `dispatch` | 本仓运行时走 `core-agent` / `core-tools`,不发那三个 Cordis 事件 |
143
+ | `$.session.turns` | `ctx.agents.turnBoundaryOf()` | 派生会话面上 assistant 消息数 | 本仓无 `agents` 服务;`deriveMessages` 是同一份数据 |
144
+ | `$.session.usage` 的 `window` | `tokenMeter.contextPressure()` | `tokenMeter.measure().window`(harness 组合读 `request/header`,其余宿主留空) | DSH 从压力回调里拿;本仓把窗口写在 `request/header`,读得到的就报,读不到才留 0 |
145
+ | `$.fs` | `dsh-fs` 的 `resolve/readText/listDir` | `exec-fs` 的 `resolvePath/read/list` | 本仓 fs 已按 workspace 根限定,路径只解析一次 |
146
+ | storage domain | `dsh-storage-domain` 服务 | 本包 `storage-domain.ts` + JSON 后端 | 本仓尚无该服务;契约保持一致(同步读、异步写) |
147
+ | working directory | `dsh-working-directory` | 本包 `working-directory.ts`(读 `session.header.cwd`) | 本仓会话已把它作为绝对路径校验并持久化 |
148
+ | `ui.render` 横幅 | Remote 流 + 客户端渲染器 | `SurfaceTable` + Face `session/band` + 壳 `ModBandDock` | Pane 仍诚实降级到横幅 |
149
+ | `@Remote({ mode: 'stream' })` | 上游 typert 支持流 | `@Remote('watchBand')` | 本仓 typert 的 `Remote` 只接受名字 |
150
+
151
+ ## 测试
152
+
153
+ 63 条,全部跑在自己的 Vento 测试进程里,包括**真实插件目录 + 真实 ToolPipeline**:
154
+
155
+ ```
156
+ npx vitest run packages/claude-code-mods/tests
157
+ ```
158
+
159
+ - `plugin-dir.test.ts` — 清单解析、路径逃逸拒绝、模块顺序、缺 `register` 拒绝
160
+ - `attach.test.ts` — 拒绝 → 工具错误、放行 → 工具体执行、`next` 后改写结果、卸载后管线复原
161
+ - `chain.test.ts` / `module.test.ts` / `matcher.test.ts` — 链语义、`next` 单次、超时、错误隔离、`on` 的重复规则
162
+ - `define-mod.test.ts` / `testing.test.ts` — 插件包装、测试工具包
163
+ - `elements.test.ts` — 横幅元素构造器与序列化
164
+
165
+ ## 环境
166
+
167
+ - Node ≥ 22(`Promise.withResolvers`、`AbortSignal.any`)
168
+ - 本包 tsconfig 的 `lib` 为 `ES2024`,`target` 仍随仓库基线
169
+
170
+ ## 许可
171
+
172
+ MIT
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The `$` a hook receives. Each method shapes its arguments into the mods API
3
+ * event of the same name and hands it to the binding's `invoke`, which runs
4
+ * the mods loaded before this one and then the engine's implementation. The
5
+ * hook's running-time clock pauses while a call is awaited, except for
6
+ * `$.clock.sleep`, which Claude Code counts as the hook's own time.
7
+ * @module
8
+ */
9
+ import type { BudgetClock, LoadedMod } from "./chain.js";
10
+ import type { ModsApi, ModTimer } from "./types.js";
11
+ /** Timers the engine owns on a mod's behalf, so disposal and reload can cancel them. */
12
+ export interface TimerHost {
13
+ after(ms: number, fn: () => unknown): ModTimer;
14
+ every(ms: number, fn: () => unknown): ModTimer;
15
+ }
16
+ /** What one `$` instance is bound to. */
17
+ export interface ApiBinding {
18
+ readonly mod: LoadedMod;
19
+ /** The running hook's clock, paused while mods API calls are awaited; absent outside a hook. */
20
+ readonly clock: BudgetClock | undefined;
21
+ /**
22
+ * Raise one mods API call as its event and resolve to the value the chain
23
+ * answered with; a `{ deny }` answer rejects with the reason.
24
+ */
25
+ readonly invoke: (op: string, input: unknown) => Promise<unknown>;
26
+ readonly timers: TimerHost;
27
+ /** Receives a rejected fire-and-forget call's reason. */
28
+ readonly report: (line: string) => void;
29
+ }
30
+ /**
31
+ * Build the `$` for one hook invocation.
32
+ * @param binding - the mod, clock, and engine entry points this instance uses.
33
+ * @returns the mods API.
34
+ */
35
+ export declare function createModsApi(binding: ApiBinding): ModsApi;
36
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,KAAK,EASV,OAAO,EAUP,QAAQ,EAMT,MAAM,YAAY,CAAC;AAEpB,wFAAwF;AACxF,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC;IAC/C,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC;CAChD;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,gGAAgG;IAChG,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAkJ1D"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * The `$` a hook receives. Each method shapes its arguments into the mods API
3
+ * event of the same name and hands it to the binding's `invoke`, which runs
4
+ * the mods loaded before this one and then the engine's implementation. The
5
+ * hook's running-time clock pauses while a call is awaited, except for
6
+ * `$.clock.sleep`, which Claude Code counts as the hook's own time.
7
+ * @module
8
+ */
9
+ import { uiElements } from "./elements.js";
10
+ import { messageOf } from "./values.js";
11
+ /**
12
+ * Build the `$` for one hook invocation.
13
+ * @param binding - the mod, clock, and engine entry points this instance uses.
14
+ * @returns the mods API.
15
+ */
16
+ export function createModsApi(binding) {
17
+ const { mod, clock, timers } = binding;
18
+ async function call(op, input) {
19
+ clock?.pause();
20
+ try {
21
+ return (await binding.invoke(op, input));
22
+ }
23
+ finally {
24
+ clock?.resume();
25
+ }
26
+ }
27
+ function fire(op, input) {
28
+ call(op, input).catch((error) => {
29
+ binding.report(`${mod.name}: $.${op} failed: ${messageOf(error)}`);
30
+ });
31
+ }
32
+ // Not frozen: the proxy below returns a wrapped namespace, which a frozen target's invariant would forbid.
33
+ const served = {
34
+ plugin: Object.freeze({ name: mod.name, root: mod.root }),
35
+ ui: Object.freeze({
36
+ log(text, options) {
37
+ fire("ui.log", { text, to: options?.to ?? "transcript" });
38
+ },
39
+ toast(text, options) {
40
+ fire("ui.toast", {
41
+ text,
42
+ ...(options?.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
43
+ });
44
+ },
45
+ status(text) {
46
+ fire("ui.status", { text });
47
+ },
48
+ invalidate(event) {
49
+ fire("ui.invalidate", { event });
50
+ },
51
+ open(pane) {
52
+ return call("ui.open", pane);
53
+ },
54
+ close(pane) {
55
+ return call("ui.close", { id: pane.id, origin: "plugin" });
56
+ },
57
+ panes() {
58
+ return call("ui.panes", {});
59
+ },
60
+ ask(question, options) {
61
+ const normalized = Array.isArray(options)
62
+ ? { options }
63
+ : (options ?? {});
64
+ return call("ui.ask", { question, ...normalized });
65
+ },
66
+ resolve: () => uiElements(),
67
+ }),
68
+ command: Object.freeze({
69
+ register(command) {
70
+ return call("command.register", command);
71
+ },
72
+ run(input) {
73
+ return call("command.run", { command: input.command, args: input.args ?? "" });
74
+ },
75
+ list() {
76
+ return call("command.list", {});
77
+ },
78
+ }),
79
+ tool: Object.freeze({
80
+ register(tool) {
81
+ return call("tool.register", tool);
82
+ },
83
+ call(input) {
84
+ return call("tool.call", input);
85
+ },
86
+ list() {
87
+ return call("tool.list", {});
88
+ },
89
+ }),
90
+ prompt: Object.freeze({
91
+ submit(input) {
92
+ return call("prompt.submit", {
93
+ text: input.text,
94
+ asUser: input.asUser === true,
95
+ });
96
+ },
97
+ }),
98
+ session: Object.freeze({
99
+ id: () => call("session.id", {}),
100
+ cwd: () => call("session.cwd", {}),
101
+ root: () => call("session.root", {}),
102
+ model: () => call("session.model", {}),
103
+ turns: () => call("session.turns", {}),
104
+ messages: () => call("session.messages", {}),
105
+ usage: () => call("session.usage", {}),
106
+ version: () => call("session.version", {}),
107
+ }),
108
+ state: Object.freeze({
109
+ get(ref) {
110
+ return call("state.get", { plugin: ref.plugin, key: ref.key });
111
+ },
112
+ set(ref, value) {
113
+ return call("state.set", { plugin: ref.plugin, key: ref.key, value });
114
+ },
115
+ }),
116
+ store: Object.freeze({
117
+ get: (key) => call("store.get", { key }),
118
+ set: (key, value) => call("store.set", { key, value }),
119
+ delete: (key) => call("store.delete", { key }),
120
+ keys: () => call("store.keys", {}),
121
+ }),
122
+ clock: Object.freeze({
123
+ now: () => call("clock.now", {}),
124
+ // Counted as the hook's own time, so the clock is not paused.
125
+ sleep: (ms) => binding.invoke("clock.sleep", { ms }),
126
+ after: (ms, fn) => timers.after(ms, fn),
127
+ every: (ms, fn) => timers.every(ms, fn),
128
+ }),
129
+ fs: Object.freeze({
130
+ read: (path) => call("fs.read", { path, as: "text" }),
131
+ write: (path, text) => call("fs.write", { path, text }),
132
+ list: (path) => call("fs.list", { path: path ?? "." }),
133
+ exists: (path) => call("fs.exists", { path }),
134
+ stat: (path) => call("fs.stat", { path, resolve: true }),
135
+ }),
136
+ process: Object.freeze({
137
+ run(argv, init) {
138
+ return call("process.run", { argv, ...(init === undefined ? {} : { init }) });
139
+ },
140
+ }),
141
+ http: Object.freeze({
142
+ fetch(url, init) {
143
+ return call("http.fetch", { url, ...(init === undefined ? {} : { init }) });
144
+ },
145
+ }),
146
+ env: Object.freeze({
147
+ get: (name) => call("env.get", { name }),
148
+ set: (name, value) => call("env.set", { name, ...(value === undefined ? {} : { value }) }),
149
+ }),
150
+ };
151
+ return withUnservedMembers(served, mod.name);
152
+ }
153
+ /** The method namespaces Claude Code's `$` has; `plugin` holds facts, not methods, and stays as served. */
154
+ const METHOD_NAMESPACES = new Set([
155
+ "ui",
156
+ "command",
157
+ "tool",
158
+ "prompt",
159
+ "session",
160
+ "state",
161
+ "store",
162
+ "clock",
163
+ "fs",
164
+ "process",
165
+ "http",
166
+ "env",
167
+ "model",
168
+ "agent",
169
+ "config",
170
+ "settings",
171
+ "mcp",
172
+ "audio",
173
+ "telemetry",
174
+ "turn",
175
+ ]);
176
+ /**
177
+ * Give `$` Claude Code's full namespace set: a served member is itself; any
178
+ * other member of a method namespace is a function whose call rejects with
179
+ * `no implementation for <namespace>.<member>`, so a mod that reaches past
180
+ * this host fails with the gap named, not with a TypeError.
181
+ * @param served - the frozen object of served namespaces.
182
+ * @param modName - the mod the `$` belongs to, for the rejection text.
183
+ * @returns the `$` a hook receives.
184
+ */
185
+ function withUnservedMembers(served, modName) {
186
+ const namespaces = new Map();
187
+ const namespaceOf = (name, base) => {
188
+ let wrapped = namespaces.get(name);
189
+ if (wrapped === undefined) {
190
+ wrapped = new Proxy(base, {
191
+ get(target, member, receiver) {
192
+ const own = Reflect.get(target, member, receiver);
193
+ if (own !== undefined || typeof member !== "string" || member === "then")
194
+ return own;
195
+ return () => Promise.reject(new Error(`${modName}: no implementation for ${name}.${member}`));
196
+ },
197
+ });
198
+ namespaces.set(name, wrapped);
199
+ }
200
+ return wrapped;
201
+ };
202
+ return new Proxy(served, {
203
+ get(target, namespace, receiver) {
204
+ const own = Reflect.get(target, namespace, receiver);
205
+ if (typeof namespace !== "string" || !METHOD_NAMESPACES.has(namespace))
206
+ return own;
207
+ return namespaceOf(namespace, typeof own === "object" && own !== null ? own : Object.freeze({}));
208
+ },
209
+ // `$` is read-only, as the frozen object was.
210
+ set: () => false,
211
+ defineProperty: () => false,
212
+ deleteProperty: () => false,
213
+ });
214
+ }
215
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}