@xrkseek/harness 0.6.21 → 0.7.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/store.d.ts +21 -0
- package/node_modules/@xrkseek/checkpoint/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/store.js +33 -0
- 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 +9 -1
- 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.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.js +62 -37
- 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 +18 -2
- package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.js +53 -12
- 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/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.js +4 -4
- 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/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/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/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/context.d.ts +25 -2
- 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 +6 -2
- 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 +4 -1
- 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/handlers/worktree.d.ts +8 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js +15 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +5 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +5 -1
- 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/managed-worktree.d.ts +66 -4
- package/node_modules/@xrkseek/server-face/dist/managed-worktree.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/managed-worktree.js +147 -5
- package/node_modules/@xrkseek/server-face/dist/managed-worktree.js.map +1 -1
- 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-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 +4 -2
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +127 -17
- 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-cwd.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-cwd.js +3 -1
- package/node_modules/@xrkseek/server-face/dist/session-cwd.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 +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.js +143 -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 +10 -2
- package/node_modules/@xrkseek/server-face/dist/settings-credentials.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 +48 -10
- 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 +97 -22
- 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 +10 -5
- 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 +6 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +17 -1
- 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/agent-cache.d.ts +16 -2
- package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/agent-cache.js +84 -36
- package/node_modules/@xrkseek/server-host/dist/agent-cache.js.map +1 -1
- 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 +124 -27
- 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/generic-plugin-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js +41 -6
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js.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 +11 -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 +85 -0
- package/node_modules/@xrkseek/server-http/dist/sunflower-free/ensure.js.map +1 -0
- 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,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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"}
|