@xrkseek/harness 0.6.23 → 0.7.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@xrkseek/a2a/README.md +45 -45
- package/node_modules/@xrkseek/attachment/README.md +23 -23
- package/node_modules/@xrkseek/attachment-local/README.md +6 -6
- package/node_modules/@xrkseek/attachment-local/package.json +26 -26
- package/node_modules/@xrkseek/checkpoint/README.md +90 -90
- package/node_modules/@xrkseek/checkpoint/dist/process-git.d.ts +5 -0
- package/node_modules/@xrkseek/checkpoint/dist/process-git.d.ts.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/process-git.js +59 -2
- package/node_modules/@xrkseek/checkpoint/dist/process-git.js.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/store.d.ts +45 -0
- package/node_modules/@xrkseek/checkpoint/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/store.js +221 -60
- package/node_modules/@xrkseek/checkpoint/dist/store.js.map +1 -1
- package/node_modules/@xrkseek/checkpoint/package.json +26 -26
- package/node_modules/@xrkseek/claude-code-mods/README.md +152 -0
- package/node_modules/@xrkseek/claude-code-mods/README.zh.md +172 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/api.d.ts +36 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/api.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/api.js +215 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/api.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/attach.d.ts +92 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/attach.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/attach.js +106 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/attach.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/chain.d.ts +105 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/chain.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/chain.js +324 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/chain.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.d.ts +39 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.js +39 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/define-mod.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/elements.d.ts +96 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/elements.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/elements.js +171 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/elements.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/engine.d.ts +155 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/engine.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/engine.js +356 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/engine.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.d.ts +72 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.js +603 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/host-ops.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/index.d.ts +112 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/index.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/index.js +654 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/index.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/matcher.d.ts +45 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/matcher.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/matcher.js +195 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/matcher.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/module.d.ts +74 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/module.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/module.js +167 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/module.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/native-import.d.ts +31 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/native-import.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/native-import.js +32 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/native-import.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.d.ts +70 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.js +167 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/plugin-dir.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.d.ts +57 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.js +85 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/product-agent.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/runtime.d.ts +117 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/runtime.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/runtime.js +252 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/runtime.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.d.ts +68 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.js +104 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/storage-domain.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.d.ts +82 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.js +243 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/surfaces.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/testing.d.ts +157 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/testing.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/testing.js +266 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/testing.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.d.ts +21 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.js +37 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/tool-names.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/types.d.ts +592 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/types.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/types.js +10 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/types.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/values.d.ts +58 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/values.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/values.js +75 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/values.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.d.ts +45 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.d.ts.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.js +29 -0
- package/node_modules/@xrkseek/claude-code-mods/dist/working-directory.js.map +1 -0
- package/node_modules/@xrkseek/claude-code-mods/package.json +47 -0
- package/node_modules/@xrkseek/code-runtime/README.md +20 -20
- package/node_modules/@xrkseek/core-agent/dist/index.d.ts +87 -0
- package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +62 -32
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/package.json +42 -42
- package/node_modules/@xrkseek/core-session/README.md +35 -35
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +46 -2
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.js +124 -49
- package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/freeze.d.ts +6 -0
- package/node_modules/@xrkseek/core-session/dist/freeze.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/freeze.js +9 -0
- package/node_modules/@xrkseek/core-session/dist/freeze.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts +20 -4
- package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.js +55 -14
- package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/list-hints.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/list-hints.js +14 -4
- package/node_modules/@xrkseek/core-session/dist/list-hints.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.d.ts +8 -1
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js +14 -4
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts +55 -0
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +670 -92
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/store.d.ts +38 -0
- package/node_modules/@xrkseek/core-session/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/surface-estimate.d.ts +6 -0
- package/node_modules/@xrkseek/core-session/dist/surface-estimate.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/surface-estimate.js +23 -0
- package/node_modules/@xrkseek/core-session/dist/surface-estimate.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/surface-fold.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/surface-fold.js +5 -7
- package/node_modules/@xrkseek/core-session/dist/surface-fold.js.map +1 -1
- package/node_modules/@xrkseek/core-session/package.json +34 -34
- package/node_modules/@xrkseek/core-system-prompt/README.md +14 -14
- package/node_modules/@xrkseek/core-tools/dist/session-query-prompt.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/session-query-prompt.js +3 -2
- package/node_modules/@xrkseek/core-tools/dist/session-query-prompt.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/std-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/std-tools.js +1 -13
- package/node_modules/@xrkseek/core-tools/dist/std-tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-computer-use/README.md +14 -14
- package/node_modules/@xrkseek/exec-computer-use/dist/windows-uia.js +402 -402
- package/node_modules/@xrkseek/exec-computer-use/package.json +26 -26
- package/node_modules/@xrkseek/exec-fs/README.md +12 -12
- package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts +7 -0
- package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/read-image.js +33 -15
- package/node_modules/@xrkseek/exec-fs/dist/read-image.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/README.md +13 -13
- package/node_modules/@xrkseek/exec-image-gen/package.json +28 -28
- package/node_modules/@xrkseek/exec-memory/README.md +14 -14
- package/node_modules/@xrkseek/exec-memory/dist/live-fragment.d.ts +11 -0
- package/node_modules/@xrkseek/exec-memory/dist/live-fragment.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-memory/dist/live-fragment.js +40 -0
- package/node_modules/@xrkseek/exec-memory/dist/live-fragment.js.map +1 -0
- package/node_modules/@xrkseek/exec-memory/package.json +28 -28
- package/node_modules/@xrkseek/exec-sandbox/README.md +15 -15
- package/node_modules/@xrkseek/exec-ssh/README.md +19 -19
- package/node_modules/@xrkseek/exec-subprocess/README.md +10 -10
- package/node_modules/@xrkseek/exec-video-analyze/README.md +11 -11
- package/node_modules/@xrkseek/exec-video-analyze/package.json +26 -26
- package/node_modules/@xrkseek/exec-video-gen/README.md +26 -26
- package/node_modules/@xrkseek/exec-voice/README.md +25 -25
- package/node_modules/@xrkseek/exec-web/README.md +11 -11
- package/node_modules/@xrkseek/exec-web/dist/fetch-http.d.ts +8 -0
- package/node_modules/@xrkseek/exec-web/dist/fetch-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/fetch-http.js +5 -1
- package/node_modules/@xrkseek/exec-web/dist/fetch-http.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/format.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/format.js +1 -0
- package/node_modules/@xrkseek/exec-web/dist/format.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/exec-web/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/index.js +2 -2
- package/node_modules/@xrkseek/exec-web/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/search-duckduckgo.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/search-duckduckgo.js +15 -8
- package/node_modules/@xrkseek/exec-web/dist/search-duckduckgo.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/search-parallel-free.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/search-parallel-free.js +21 -13
- package/node_modules/@xrkseek/exec-web/dist/search-parallel-free.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/search-providers.d.ts +16 -3
- package/node_modules/@xrkseek/exec-web/dist/search-providers.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/search-providers.js +113 -7
- package/node_modules/@xrkseek/exec-web/dist/search-providers.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/tools.js +15 -2
- package/node_modules/@xrkseek/exec-web/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/types.d.ts +6 -0
- package/node_modules/@xrkseek/exec-web/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-deepseek/README.md +22 -22
- package/node_modules/@xrkseek/llm-deepseek/package.json +30 -30
- package/node_modules/@xrkseek/llm-registry/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/llm-registry/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/index.js +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/models-dev-catalog.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/models-dev-catalog.js +13 -2
- package/node_modules/@xrkseek/llm-registry/dist/models-dev-catalog.js.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/registry.d.ts +6 -0
- package/node_modules/@xrkseek/llm-registry/dist/registry.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/registry.js +6 -0
- package/node_modules/@xrkseek/llm-registry/dist/registry.js.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/types.d.ts +29 -0
- package/node_modules/@xrkseek/llm-registry/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/types.js +21 -0
- package/node_modules/@xrkseek/llm-registry/dist/types.js.map +1 -1
- package/node_modules/@xrkseek/mcp/README.md +78 -78
- package/node_modules/@xrkseek/policy/README.md +18 -18
- package/node_modules/@xrkseek/policy/package.json +31 -31
- package/node_modules/@xrkseek/preset-harness/README.md +7 -7
- package/node_modules/@xrkseek/preset-harness/dist/mods.d.ts +68 -0
- package/node_modules/@xrkseek/preset-harness/dist/mods.d.ts.map +1 -0
- package/node_modules/@xrkseek/preset-harness/dist/mods.js +510 -0
- package/node_modules/@xrkseek/preset-harness/dist/mods.js.map +1 -0
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +12 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +73 -26
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-harness/package.json +9 -8
- package/node_modules/@xrkseek/preset-minimal/README.md +6 -6
- package/node_modules/@xrkseek/preset-minimal/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/preset.js +9 -3
- package/node_modules/@xrkseek/preset-minimal/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/README.md +4 -4
- package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-server/dist/preset.js +2 -1
- package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/README.md +34 -34
- package/node_modules/@xrkseek/protocol/dist/content.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/content.js +6 -1
- package/node_modules/@xrkseek/protocol/dist/content.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.d.ts +3 -2
- package/node_modules/@xrkseek/protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.js +1 -0
- package/node_modules/@xrkseek/protocol/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts +12 -0
- package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/json-schema.js +9 -0
- package/node_modules/@xrkseek/protocol/dist/json-schema.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/json-value.d.ts +25 -0
- package/node_modules/@xrkseek/protocol/dist/json-value.d.ts.map +1 -0
- package/node_modules/@xrkseek/protocol/dist/json-value.js +181 -0
- package/node_modules/@xrkseek/protocol/dist/json-value.js.map +1 -0
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +21 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.js +1 -0
- package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.d.ts +4 -1
- package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.js +28 -2
- package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
- package/node_modules/@xrkseek/schemastery/lib/index.cjs +597 -597
- package/node_modules/@xrkseek/schemastery/lib/index.mjs +597 -597
- package/node_modules/@xrkseek/schemastery/lib/types/index.d.ts +203 -203
- package/node_modules/@xrkseek/schemastery/src/index.d.ts +203 -203
- package/node_modules/@xrkseek/schemastery/src/index.ts +906 -906
- package/node_modules/@xrkseek/server-config/package.json +28 -28
- package/node_modules/@xrkseek/server-cron/README.md +12 -12
- package/node_modules/@xrkseek/server-cron/package.json +26 -26
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts +22 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js +40 -3
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +2 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts +1 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js +2 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts +5 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js +7 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts +31 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js +71 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home-boundary.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home.d.ts +18 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home.js +64 -0
- package/node_modules/@xrkseek/server-face/dist/agent-home.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts +41 -2
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +200 -28
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/attach-http.js +9 -0
- package/node_modules/@xrkseek/server-face/dist/attach-http.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.d.ts +55 -0
- package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.js +167 -0
- package/node_modules/@xrkseek/server-face/dist/boss-status-broadcast.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts +12 -0
- package/node_modules/@xrkseek/server-face/dist/collab-board.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/collab-board.js +101 -19
- package/node_modules/@xrkseek/server-face/dist/collab-board.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/community-llm-sync.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/community-llm-sync.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/community-llm-sync.js +19 -7
- package/node_modules/@xrkseek/server-face/dist/community-llm-sync.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/context.d.ts +29 -0
- package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.js +4 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/face-schema.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/face-schema.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/face-schema.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/fork-cut.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/fork-cut.js +15 -3
- package/node_modules/@xrkseek/server-face/dist/fork-cut.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/fork-lineage.d.ts +7 -0
- package/node_modules/@xrkseek/server-face/dist/fork-lineage.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/fork-lineage.js +23 -8
- package/node_modules/@xrkseek/server-face/dist/fork-lineage.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/band.d.ts +7 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/band.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/band.js +40 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/band.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/checkpoint.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/checkpoint.js +81 -3
- package/node_modules/@xrkseek/server-face/dist/handlers/checkpoint.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js +20 -7
- package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts +2 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js +236 -62
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/team.js +100 -9
- package/node_modules/@xrkseek/server-face/dist/handlers/team.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-open-in-app.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-open-in-app.js +9 -0
- package/node_modules/@xrkseek/server-face/dist/host-open-in-app.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts +8 -3
- package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-open-path.js +61 -19
- package/node_modules/@xrkseek/server-face/dist/host-open-path.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-pick-directory.d.ts +2 -1
- package/node_modules/@xrkseek/server-face/dist/host-pick-directory.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/host-pick-directory.js +12 -2
- package/node_modules/@xrkseek/server-face/dist/host-pick-directory.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +6 -2
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +6 -2
- package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.d.ts +19 -0
- package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.js +28 -0
- package/node_modules/@xrkseek/server-face/dist/instruction-authority-fragment.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/log-cut-reset.d.ts +3 -0
- package/node_modules/@xrkseek/server-face/dist/log-cut-reset.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/log-cut-reset.js +22 -0
- package/node_modules/@xrkseek/server-face/dist/log-cut-reset.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js +60 -5
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/index.js +2 -2
- package/node_modules/@xrkseek/server-face/dist/projections/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.d.ts +50 -4
- package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js +167 -19
- package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts +21 -1
- package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js +21 -1
- package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/context-pressure.d.ts +8 -4
- package/node_modules/@xrkseek/server-face/dist/projections/units/context-pressure.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/context-pressure.js +2 -7
- package/node_modules/@xrkseek/server-face/dist/projections/units/context-pressure.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js +58 -0
- package/node_modules/@xrkseek/server-face/dist/projections/units/context-timeline.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.js +85 -0
- package/node_modules/@xrkseek/server-face/dist/projections/units/cost-usage.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js +14 -0
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/title.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/title.js +14 -0
- package/node_modules/@xrkseek/server-face/dist/projections/units/title.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js +24 -0
- package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts +11 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +118 -15
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/seat-identity.d.ts +26 -0
- package/node_modules/@xrkseek/server-face/dist/seat-identity.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/seat-identity.js +137 -0
- package/node_modules/@xrkseek/server-face/dist/seat-identity.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/seat-titles.d.ts +29 -0
- package/node_modules/@xrkseek/server-face/dist/seat-titles.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/seat-titles.js +74 -0
- package/node_modules/@xrkseek/server-face/dist/seat-titles.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-capability.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-capability.js +9 -6
- package/node_modules/@xrkseek/server-face/dist/session-capability.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-event-window.d.ts +37 -0
- package/node_modules/@xrkseek/server-face/dist/session-event-window.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-event-window.js +88 -0
- package/node_modules/@xrkseek/server-face/dist/session-event-window.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-identity-store.d.ts +20 -0
- package/node_modules/@xrkseek/server-face/dist/session-identity-store.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-identity-store.js +82 -0
- package/node_modules/@xrkseek/server-face/dist/session-identity-store.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-posture.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-posture.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-posture.js +20 -5
- package/node_modules/@xrkseek/server-face/dist/session-posture.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-query-tools.d.ts +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-query-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-query-tools.js +172 -25
- package/node_modules/@xrkseek/server-face/dist/session-query-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-search.d.ts +20 -2
- package/node_modules/@xrkseek/server-face/dist/session-search.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-search.js +125 -19
- package/node_modules/@xrkseek/server-face/dist/session-search.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +6 -0
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.js +161 -21
- package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js +5 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/session-tool-copy.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +43 -3
- package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.js +4 -0
- package/node_modules/@xrkseek/server-face/dist/settings-document.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +76 -11
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-documents.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-documents.js +14 -4
- package/node_modules/@xrkseek/server-face/dist/skill-documents.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts +4 -2
- package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-list.js +10 -4
- package/node_modules/@xrkseek/server-face/dist/skill-list.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-read.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-read.js +9 -2
- package/node_modules/@xrkseek/server-face/dist/skill-read.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-source.d.ts +2 -1
- package/node_modules/@xrkseek/server-face/dist/skill-source.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-source.js +12 -2
- package/node_modules/@xrkseek/server-face/dist/skill-source.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/slash.d.ts +10 -1
- package/node_modules/@xrkseek/server-face/dist/slash.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/slash.js +118 -26
- package/node_modules/@xrkseek/server-face/dist/slash.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.js +53 -0
- package/node_modules/@xrkseek/server-face/dist/status-snapshot-cache.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +7 -2
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/types.d.ts +23 -0
- package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts +17 -2
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +111 -10
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-face.js +19 -14
- package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-member-look.d.ts +22 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-member-look.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-member-look.js +35 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-member-look.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts +3 -2
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js +74 -57
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts +31 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-registry.js +109 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-registry.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts +2 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-store.js +7 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-store.js.map +1 -1
- package/node_modules/@xrkseek/server-face/package.json +60 -60
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +37 -6
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +182 -28
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/log.d.ts +6 -0
- package/node_modules/@xrkseek/server-host/dist/log.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +17 -2
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/standing-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/standing-tools.js +3 -3
- package/node_modules/@xrkseek/server-host/dist/standing-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-host/package.json +75 -75
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts +5 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-tool-pre.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui-browser-runtime.js +188 -188
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js +292 -24
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js +12 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts +16 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js +47 -2
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-center.d.ts +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/token-usage-stats-dash.js +53 -53
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts +9 -4
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js +39 -20
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.d.ts +2 -1
- package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.js +2 -1
- package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts +55 -0
- package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js +176 -0
- package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js.map +1 -0
- package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.d.ts +2 -0
- package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js +7 -3
- package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js.map +1 -1
- package/node_modules/@xrkseek/server-http/package.json +72 -72
- package/node_modules/@xrkseek/server-loader/dist/load.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-loader/dist/load.js +132 -0
- package/node_modules/@xrkseek/server-loader/dist/load.js.map +1 -1
- package/node_modules/@xrkseek/session-projection/README.md +26 -26
- package/node_modules/@xrkseek/session-projection/dist/index.d.ts +31 -2
- package/node_modules/@xrkseek/session-projection/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/session-projection/dist/index.js +135 -19
- package/node_modules/@xrkseek/session-projection/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/session-telemetry/README.md +11 -11
- package/node_modules/@xrkseek/session-telemetry/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/session-telemetry/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/session-telemetry/dist/index.js +1 -0
- package/node_modules/@xrkseek/session-telemetry/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/session-telemetry/dist/redact.d.ts +14 -0
- package/node_modules/@xrkseek/session-telemetry/dist/redact.d.ts.map +1 -0
- package/node_modules/@xrkseek/session-telemetry/dist/redact.js +58 -0
- package/node_modules/@xrkseek/session-telemetry/dist/redact.js.map +1 -0
- package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.d.ts +7 -0
- package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.js +43 -12
- package/node_modules/@xrkseek/session-telemetry/dist/wrap-store.js.map +1 -1
- package/node_modules/@xrkseek/session-telemetry/package.json +27 -27
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts +13 -0
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js +40 -4
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts +10 -9
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js +67 -19
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.d.ts +19 -20
- package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.js +43 -20
- package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts +2 -0
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js +23 -12
- package/node_modules/@xrkseek/workspace/dist/inject-fingerprint.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/inject-sources.d.ts +7 -4
- package/node_modules/@xrkseek/workspace/dist/inject-sources.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/inject-sources.js +10 -0
- package/node_modules/@xrkseek/workspace/dist/inject-sources.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/instruction-authority.d.ts +27 -0
- package/node_modules/@xrkseek/workspace/dist/instruction-authority.d.ts.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/instruction-authority.js +78 -0
- package/node_modules/@xrkseek/workspace/dist/instruction-authority.js.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts +7 -0
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.js +4 -2
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts +13 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.js +45 -5
- package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts +26 -0
- package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.d.ts.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js +80 -0
- package/node_modules/@xrkseek/workspace/dist/standing-skill-dirs.js.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts +7 -1
- package/node_modules/@xrkseek/workspace/dist/workspace-anchor.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js +21 -1
- package/node_modules/@xrkseek/workspace/dist/workspace-anchor.js.map +1 -1
- package/node_modules/@xrkseek/workspace/package.json +28 -28
- package/node_modules/@xrkseek/xrk-agent/lib/index.js +1 -793
- package/node_modules/@xrkseek/xrk-agent/lib/invariant.js +1 -23
- package/node_modules/@xrkseek/xrk-attachment/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-attachment/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-attachment/lib/types/brand.js +10 -0
- package/node_modules/@xrkseek/xrk-attachment/lib/types/error.js +48 -0
- package/node_modules/@xrkseek/xrk-attachment/lib/types/index.js +42 -0
- package/node_modules/@xrkseek/xrk-attachment/lib/types/invariant.js +16 -0
- package/node_modules/@xrkseek/xrk-attachment/lib/types/types.d.ts +6 -0
- package/node_modules/@xrkseek/xrk-attachment/lib/types/types.js +3 -0
- package/node_modules/@xrkseek/xrk-attachment/package.json +1 -0
- package/node_modules/@xrkseek/xrk-brand/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-brand/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-brand/lib/types/index.js +24 -0
- package/node_modules/@xrkseek/xrk-brand/lib/types/invariant.js +22 -0
- package/node_modules/@xrkseek/xrk-brand/package.json +1 -0
- package/node_modules/@xrkseek/xrk-commands/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-commands/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-file-reference-local/README.md +46 -46
- package/node_modules/@xrkseek/xrk-file-reference-local/README.zh.md +46 -46
- package/node_modules/@xrkseek/xrk-file-reference-local/package.json +30 -30
- package/node_modules/@xrkseek/xrk-invariants/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-invariants/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-invariants/lib/types/index.js +148 -0
- package/node_modules/@xrkseek/xrk-invariants/lib/types/invariant.js +22 -0
- package/node_modules/@xrkseek/xrk-invariants/package.json +1 -0
- package/node_modules/@xrkseek/xrk-llm/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-llm/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-llm/lib/types/index.js +4 -0
- package/node_modules/@xrkseek/xrk-llm/lib/types/types.d.ts +11 -0
- package/node_modules/@xrkseek/xrk-permission-presets/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-permission-presets/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-scope/lib/index.js +1 -0
- package/node_modules/@xrkseek/xrk-scope/lib/types/index.d.ts +129 -0
- package/node_modules/@xrkseek/xrk-scope/lib/types/index.js +243 -0
- package/node_modules/@xrkseek/xrk-scope/package.json +34 -0
- package/node_modules/@xrkseek/xrk-session/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-session/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-session-projection/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-session-projection/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-session-reference/README.md +50 -50
- package/node_modules/@xrkseek/xrk-session-reference/README.zh.md +50 -50
- package/node_modules/@xrkseek/xrk-session-reference/dist/prepare-face.js +13 -13
- package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js +2 -2
- package/node_modules/@xrkseek/xrk-session-reference/package.json +56 -56
- package/node_modules/@xrkseek/xrk-settings/lib/index.js +1 -638
- package/node_modules/@xrkseek/xrk-settings/lib/invariant.js +1 -67
- package/node_modules/@xrkseek/xrk-system-prompt/package.json +15 -15
- package/node_modules/@xrkseek/xrk-system-prompt/src/index.ts +144 -144
- package/node_modules/@xrkseek/xrk-token-meter/README.i18n.yaml +6 -0
- package/node_modules/@xrkseek/xrk-token-meter/README.md +68 -0
- package/node_modules/@xrkseek/xrk-token-meter/README.zh.md +68 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/index.js +1 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/breakdown-projection.d.ts +29 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/breakdown-projection.js +56 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/client.d.ts +9 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/client.js +7 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/estimate.d.ts +42 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/estimate.js +79 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/index.d.ts +62 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/index.js +250 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/invariant.d.ts +16 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/invariant.js +30 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/projection.d.ts +74 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/projection.js +7 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-fold.d.ts +38 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-fold.js +47 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-projection.d.ts +59 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/surface-projection.js +66 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/turn-usage.d.ts +33 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/turn-usage.js +247 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/types.d.ts +44 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/types.js +7 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/usage-projection.d.ts +64 -0
- package/node_modules/@xrkseek/xrk-token-meter/lib/types/usage-projection.js +161 -0
- package/node_modules/@xrkseek/xrk-token-meter/package.json +57 -0
- package/node_modules/@xrkseek/xrk-tools/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-tools/lib/invariant.js +1 -1
- package/node_modules/@xrkseek/xrk-tools/src/presentation.ts +39 -39
- package/node_modules/@xrkseek/xrk-typert-protocol/lib/index.js +1 -1
- package/node_modules/@xrkseek/xrk-typert-protocol/lib/invariant.js +1 -0
- package/node_modules/@xrkseek/xrk-workflow/README.md +73 -73
- package/node_modules/@xrkseek/xrk-workflow/README.zh.md +72 -72
- package/node_modules/@xrkseek/xrk-workflow/lib/types/index.js +118 -118
- package/package.json +7 -1
- package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts +0 -14
- package/node_modules/@xrkseek/llm/dist/reasoning-effort.d.ts.map +0 -1
- package/node_modules/@xrkseek/llm/dist/reasoning-effort.js +0 -21
- package/node_modules/@xrkseek/llm/dist/reasoning-effort.js.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.mts +0 -3734
- package/node_modules/@xrkseek/server-face/dist/index.d.mts.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/index.mjs +0 -22085
- package/node_modules/@xrkseek/server-face/dist/index.mjs.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts +0 -51
- package/node_modules/@xrkseek/server-face/dist/model-reasoning.d.ts.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/model-reasoning.js +0 -104
- package/node_modules/@xrkseek/server-face/dist/model-reasoning.js.map +0 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts +0 -2
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.d.ts.map +0 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js +0 -98
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-agent.js.map +0 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts +0 -18
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.d.ts.map +0 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js +0 -141
- package/node_modules/@xrkseek/server-host/dist/sidebar-pty-worker.js.map +0 -1
- package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts +0 -30
- package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.d.ts.map +0 -1
- package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js +0 -96
- package/node_modules/@xrkseek/server-host/dist/win-fd-inherit.js.map +0 -1
|
@@ -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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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attach point for this product's runtime.
|
|
3
|
+
*
|
|
4
|
+
* The bridge itself (`ClaudeCodeMods`) raises events; what it cannot know is
|
|
5
|
+
* *which* seams this host has. Upstream those seams were Cordis events
|
|
6
|
+
* (`agent/created`, `agent/pre-step`, `tools/execute`) published by its own
|
|
7
|
+
* agent and tool services. Our shipped runtime drives `core-agent` and
|
|
8
|
+
* `core-tools` instead, whose extension point for per-call interception is
|
|
9
|
+
* `ToolPipeline` — so this module wires the bridge onto that pipeline and
|
|
10
|
+
* exposes the remaining dispatches for the seams a caller owns.
|
|
11
|
+
*
|
|
12
|
+
* What is wired here:
|
|
13
|
+
*
|
|
14
|
+
* - **`tool.call`** — through `pipeline.onPre` (refusals) and `pipeline.onPost`
|
|
15
|
+
* (result replacement), so a plugin observes and can veto every tool call the
|
|
16
|
+
* agent makes, in both directions.
|
|
17
|
+
*
|
|
18
|
+
* What a caller dispatches through {@link AttachedClaudeCodeMods.dispatch}:
|
|
19
|
+
*
|
|
20
|
+
* - `session.start` / `session.end` — wherever the host creates and disposes an
|
|
21
|
+
* agent (one call each).
|
|
22
|
+
* - `prompt.submit` / `turn.start` / `turn.complete` — the same place the host
|
|
23
|
+
* admits a prompt and observes a completed turn.
|
|
24
|
+
* - `command.run` / `ui.render` — raised by the command registry and the band,
|
|
25
|
+
* respectively, once those are wired; the engine serves both already.
|
|
26
|
+
*
|
|
27
|
+
* The bridge does not invent these calls: an unattached event is simply one no
|
|
28
|
+
* plugin sees, which is the honest state rather than a silently partial one.
|
|
29
|
+
* @module
|
|
30
|
+
*/
|
|
31
|
+
import type { Context } from "@xrkseek/cordis";
|
|
32
|
+
import type { ToolPipeline, ToolPipelineContext } from "@xrkseek/core-tools";
|
|
33
|
+
import { type Config } from "./index.js";
|
|
34
|
+
import type { LoadedMod } from "./chain.js";
|
|
35
|
+
import { type ToolNameAliases } from "./tool-names.js";
|
|
36
|
+
import type { ModAgent } from "./types.js";
|
|
37
|
+
export interface AttachClaudeCodeModsOptions {
|
|
38
|
+
readonly ctx: Context;
|
|
39
|
+
/**
|
|
40
|
+
* The composition's existing tool pipeline. Omitted for a host that wants the
|
|
41
|
+
* bridge without tool interception (for example a `plugin validate` run).
|
|
42
|
+
*/
|
|
43
|
+
readonly pipeline?: ToolPipeline;
|
|
44
|
+
/**
|
|
45
|
+
* Which agent a tool call belongs to.
|
|
46
|
+
*
|
|
47
|
+
* `ToolCall` carries no session identity, so this is the host's knowledge to
|
|
48
|
+
* supply. Returning `undefined` is allowed: mods still see the call, but
|
|
49
|
+
* `$.session.*` and `$.prompt.submit` refuse for that event because there is
|
|
50
|
+
* no session to speak for.
|
|
51
|
+
*/
|
|
52
|
+
readonly agentOf?: (context: ToolPipelineContext) => ModAgent | undefined;
|
|
53
|
+
/** Plugin directories to load, in chain order. */
|
|
54
|
+
readonly dirs?: readonly string[];
|
|
55
|
+
/** Bridge configuration (timeouts, tool aliases). */
|
|
56
|
+
readonly config?: Config;
|
|
57
|
+
/**
|
|
58
|
+
* Claude Code ↔ harness tool-name translation.
|
|
59
|
+
*
|
|
60
|
+
* A plugin's matchers and `e.tool` use Claude Code's names (`Bash`, `Read`),
|
|
61
|
+
* while our registry names tools in lowercase; without translation a
|
|
62
|
+
* `{ tool: 'Bash' }` matcher would never match. Defaults to the built-in table.
|
|
63
|
+
*/
|
|
64
|
+
readonly toolAliases?: ToolNameAliases;
|
|
65
|
+
}
|
|
66
|
+
export interface AttachedClaudeCodeMods {
|
|
67
|
+
/** The loaded mods in chain order. */
|
|
68
|
+
readonly mods: readonly LoadedMod[];
|
|
69
|
+
/**
|
|
70
|
+
* Raise one engine event from a seam this module did not wire itself.
|
|
71
|
+
* @param event - engine event name (`session.start`, `turn.complete`, …).
|
|
72
|
+
* @param input - the payload mods receive.
|
|
73
|
+
* @param fallback - the answer when no mod decides.
|
|
74
|
+
* @param options - agent binding and cancellation for the dispatch.
|
|
75
|
+
* @returns the chain's answer.
|
|
76
|
+
*/
|
|
77
|
+
dispatch<I, R>(event: string, input: I, fallback: (input: I) => R, options?: {
|
|
78
|
+
readonly agent?: ModAgent;
|
|
79
|
+
readonly signal?: AbortSignal;
|
|
80
|
+
}): Promise<R>;
|
|
81
|
+
/** Undo every handler this attach installed. Loaded mods stay loaded. */
|
|
82
|
+
dispose(): void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Mount the bridge on this composition and wire `tool.call` to its pipeline.
|
|
86
|
+
*
|
|
87
|
+
* Mounting is `await`ed to completion: a plugin whose `register` throws must
|
|
88
|
+
* fail here, at composition time, rather than half-loading and surfacing later
|
|
89
|
+
* as hooks that never fire.
|
|
90
|
+
*/
|
|
91
|
+
export declare function attachClaudeCodeMods(options: AttachClaudeCodeModsOptions): Promise<AttachedClaudeCodeMods>;
|
|
92
|
+
//# sourceMappingURL=attach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../src/attach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAuB,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAiC,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,QAAQ,GAAG,SAAS,CAAC;IAC1E,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,EAAE,CAAC,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACzB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACrE,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,yEAAyE;IACzE,OAAO,IAAI,IAAI,CAAC;CACjB;AAKD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAsFjC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attach point for this product's runtime.
|
|
3
|
+
*
|
|
4
|
+
* The bridge itself (`ClaudeCodeMods`) raises events; what it cannot know is
|
|
5
|
+
* *which* seams this host has. Upstream those seams were Cordis events
|
|
6
|
+
* (`agent/created`, `agent/pre-step`, `tools/execute`) published by its own
|
|
7
|
+
* agent and tool services. Our shipped runtime drives `core-agent` and
|
|
8
|
+
* `core-tools` instead, whose extension point for per-call interception is
|
|
9
|
+
* `ToolPipeline` — so this module wires the bridge onto that pipeline and
|
|
10
|
+
* exposes the remaining dispatches for the seams a caller owns.
|
|
11
|
+
*
|
|
12
|
+
* What is wired here:
|
|
13
|
+
*
|
|
14
|
+
* - **`tool.call`** — through `pipeline.onPre` (refusals) and `pipeline.onPost`
|
|
15
|
+
* (result replacement), so a plugin observes and can veto every tool call the
|
|
16
|
+
* agent makes, in both directions.
|
|
17
|
+
*
|
|
18
|
+
* What a caller dispatches through {@link AttachedClaudeCodeMods.dispatch}:
|
|
19
|
+
*
|
|
20
|
+
* - `session.start` / `session.end` — wherever the host creates and disposes an
|
|
21
|
+
* agent (one call each).
|
|
22
|
+
* - `prompt.submit` / `turn.start` / `turn.complete` — the same place the host
|
|
23
|
+
* admits a prompt and observes a completed turn.
|
|
24
|
+
* - `command.run` / `ui.render` — raised by the command registry and the band,
|
|
25
|
+
* respectively, once those are wired; the engine serves both already.
|
|
26
|
+
*
|
|
27
|
+
* The bridge does not invent these calls: an unattached event is simply one no
|
|
28
|
+
* plugin sees, which is the honest state rather than a silently partial one.
|
|
29
|
+
* @module
|
|
30
|
+
*/
|
|
31
|
+
import ClaudeCodeMods, {} from "./index.js";
|
|
32
|
+
import { definePluginDir } from "./plugin-dir.js";
|
|
33
|
+
import { createToolNameAliases } from "./tool-names.js";
|
|
34
|
+
import { record } from "./values.js";
|
|
35
|
+
/** A signal that never aborts, for a host seam that supplies none. */
|
|
36
|
+
const DETACHED = new AbortController().signal;
|
|
37
|
+
/**
|
|
38
|
+
* Mount the bridge on this composition and wire `tool.call` to its pipeline.
|
|
39
|
+
*
|
|
40
|
+
* Mounting is `await`ed to completion: a plugin whose `register` throws must
|
|
41
|
+
* fail here, at composition time, rather than half-loading and surfacing later
|
|
42
|
+
* as hooks that never fire.
|
|
43
|
+
*/
|
|
44
|
+
export async function attachClaudeCodeMods(options) {
|
|
45
|
+
const { ctx, pipeline, agentOf } = options;
|
|
46
|
+
const aliases = options.toolAliases ?? createToolNameAliases();
|
|
47
|
+
await ctx.plugin(ClaudeCodeMods, options.config ?? {});
|
|
48
|
+
for (const dir of options.dirs ?? []) {
|
|
49
|
+
await ctx.plugin(await definePluginDir(dir), {});
|
|
50
|
+
}
|
|
51
|
+
const bridge = ctx.claudeCodeMods;
|
|
52
|
+
const disposers = [];
|
|
53
|
+
const bindingOf = (context) => {
|
|
54
|
+
const agent = agentOf?.(context);
|
|
55
|
+
return agent === undefined ? { agent: undefined } : { agent };
|
|
56
|
+
};
|
|
57
|
+
if (pipeline !== undefined) {
|
|
58
|
+
// Before dispatch: a mod may refuse, and its refusal becomes the tool error
|
|
59
|
+
// the model reads — the same place the host's own policy denies.
|
|
60
|
+
disposers.push(pipeline.onPre(async (context) => {
|
|
61
|
+
const input = {
|
|
62
|
+
tool: aliases.toMod(context.call.name),
|
|
63
|
+
tool_use_id: context.call.id,
|
|
64
|
+
...record(context.args),
|
|
65
|
+
};
|
|
66
|
+
const answer = await bridge.raise("tool.call", input, () => ({ result: undefined }), { binding: bindingOf(context), signal: context.signal ?? DETACHED });
|
|
67
|
+
if (answer.deny !== undefined)
|
|
68
|
+
return { action: "deny", reason: answer.deny };
|
|
69
|
+
return { action: "continue", args: context.args };
|
|
70
|
+
}));
|
|
71
|
+
// After dispatch: a mod may replace the result the model will read. `deny`
|
|
72
|
+
// is meaningless here — the call already ran — so only `{ result }` is
|
|
73
|
+
// honoured, and an explicit `isError` survives as a failure.
|
|
74
|
+
disposers.push(pipeline.onPost(async (context) => {
|
|
75
|
+
const input = {
|
|
76
|
+
tool: aliases.toMod(context.call.name),
|
|
77
|
+
tool_use_id: context.call.id,
|
|
78
|
+
...record(context.args),
|
|
79
|
+
};
|
|
80
|
+
const answer = await bridge.raise("tool.call", input, () => ({ result: undefined }), { binding: bindingOf(context), signal: context.signal ?? DETACHED });
|
|
81
|
+
if (answer.result === undefined)
|
|
82
|
+
return { action: "accept" };
|
|
83
|
+
return {
|
|
84
|
+
action: "replace",
|
|
85
|
+
content: typeof answer.result === "string"
|
|
86
|
+
? answer.result
|
|
87
|
+
: JSON.stringify(answer.result),
|
|
88
|
+
...(answer.isError === true ? { isError: true } : {}),
|
|
89
|
+
};
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
mods: bridge.mods,
|
|
94
|
+
dispatch: (event, input, fallback, dispatchOptions = {}) => bridge.raise(event, input, fallback, {
|
|
95
|
+
binding: {
|
|
96
|
+
agent: dispatchOptions.agent,
|
|
97
|
+
},
|
|
98
|
+
signal: dispatchOptions.signal ?? DETACHED,
|
|
99
|
+
}),
|
|
100
|
+
dispose() {
|
|
101
|
+
for (const dispose of disposers.splice(0))
|
|
102
|
+
dispose();
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=attach.js.map
|