@xrkseek/harness 0.4.2 → 0.4.4
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/a2a/README.md +43 -0
- package/node_modules/@xrkseek/a2a/dist/client.d.ts +35 -0
- package/node_modules/@xrkseek/a2a/dist/client.d.ts.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/client.js +229 -0
- package/node_modules/@xrkseek/a2a/dist/client.js.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/inbound.d.ts +42 -0
- package/node_modules/@xrkseek/a2a/dist/inbound.d.ts.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/inbound.js +263 -0
- package/node_modules/@xrkseek/a2a/dist/inbound.js.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/index.d.ts +6 -0
- package/node_modules/@xrkseek/a2a/dist/index.d.ts.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/index.js +6 -0
- package/node_modules/@xrkseek/a2a/dist/index.js.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/peers.d.ts +25 -0
- package/node_modules/@xrkseek/a2a/dist/peers.d.ts.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/peers.js +90 -0
- package/node_modules/@xrkseek/a2a/dist/peers.js.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/protocol.d.ts +45 -0
- package/node_modules/@xrkseek/a2a/dist/protocol.d.ts.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/protocol.js +172 -0
- package/node_modules/@xrkseek/a2a/dist/protocol.js.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/tools.d.ts +10 -0
- package/node_modules/@xrkseek/a2a/dist/tools.d.ts.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/tools.js +145 -0
- package/node_modules/@xrkseek/a2a/dist/tools.js.map +1 -0
- package/node_modules/@xrkseek/a2a/package.json +28 -0
- package/node_modules/@xrkseek/attachment/README.md +23 -17
- package/node_modules/@xrkseek/attachment/dist/image-tokens.d.ts +30 -0
- package/node_modules/@xrkseek/attachment/dist/image-tokens.d.ts.map +1 -0
- package/node_modules/@xrkseek/attachment/dist/image-tokens.js +142 -0
- package/node_modules/@xrkseek/attachment/dist/image-tokens.js.map +1 -0
- package/node_modules/@xrkseek/attachment/dist/index.d.ts +2 -0
- package/node_modules/@xrkseek/attachment/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/attachment/dist/index.js +2 -0
- package/node_modules/@xrkseek/attachment/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/attachment/dist/request-projection.d.ts +20 -0
- package/node_modules/@xrkseek/attachment/dist/request-projection.d.ts.map +1 -0
- package/node_modules/@xrkseek/attachment/dist/request-projection.js +49 -0
- package/node_modules/@xrkseek/attachment/dist/request-projection.js.map +1 -0
- package/node_modules/@xrkseek/attachment-local/dist/request-image.d.ts +2 -11
- package/node_modules/@xrkseek/attachment-local/dist/request-image.d.ts.map +1 -1
- package/node_modules/@xrkseek/attachment-local/dist/request-image.js +3 -29
- package/node_modules/@xrkseek/attachment-local/dist/request-image.js.map +1 -1
- package/node_modules/@xrkseek/checkpoint/README.md +4 -2
- package/node_modules/@xrkseek/checkpoint/dist/process-git.d.ts +6 -0
- package/node_modules/@xrkseek/checkpoint/dist/process-git.d.ts.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/process-git.js +23 -1
- package/node_modules/@xrkseek/checkpoint/dist/process-git.js.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/store.d.ts +30 -2
- package/node_modules/@xrkseek/checkpoint/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/store.js +58 -15
- package/node_modules/@xrkseek/checkpoint/dist/store.js.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/types.d.ts +14 -4
- package/node_modules/@xrkseek/checkpoint/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/checkpoint/dist/types.js.map +1 -1
- package/node_modules/@xrkseek/checkpoint/package.json +4 -1
- package/node_modules/@xrkseek/context-fragments/dist/index.d.ts +14 -0
- package/node_modules/@xrkseek/context-fragments/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/context-fragments/dist/index.js +33 -0
- package/node_modules/@xrkseek/context-fragments/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent/dist/index.d.ts +7 -0
- package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent/dist/index.js +6 -0
- package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/compaction.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/compaction.js +1 -0
- package/node_modules/@xrkseek/core-agent-loop/dist/compaction.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +18 -0
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +98 -50
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.d.ts +7 -2
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.js +7 -3
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +23 -2
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.js +50 -3
- package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/drain-hub.d.ts +2 -2
- package/node_modules/@xrkseek/core-session/dist/drain-hub.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/drain-hub.js +2 -2
- package/node_modules/@xrkseek/core-session/dist/drain-hub.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.js +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/latch.d.ts +25 -3
- package/node_modules/@xrkseek/core-session/dist/latch.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/latch.js +33 -12
- package/node_modules/@xrkseek/core-session/dist/latch.js.map +1 -1
- package/node_modules/@xrkseek/core-session/package.json +1 -0
- package/node_modules/@xrkseek/core-system-prompt/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/core-system-prompt/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-system-prompt/dist/index.js +1 -0
- package/node_modules/@xrkseek/core-system-prompt/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-system-prompt/dist/time-context.d.ts +22 -0
- package/node_modules/@xrkseek/core-system-prompt/dist/time-context.d.ts.map +1 -0
- package/node_modules/@xrkseek/core-system-prompt/dist/time-context.js +47 -0
- package/node_modules/@xrkseek/core-system-prompt/dist/time-context.js.map +1 -0
- package/node_modules/@xrkseek/core-tools/dist/definition.d.ts +14 -0
- package/node_modules/@xrkseek/core-tools/dist/definition.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/definition.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/core-tools/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/index.js +1 -1
- package/node_modules/@xrkseek/core-tools/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/materialize.d.ts +9 -3
- package/node_modules/@xrkseek/core-tools/dist/materialize.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/materialize.js +38 -8
- package/node_modules/@xrkseek/core-tools/dist/materialize.js.map +1 -1
- package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts +2 -0
- package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-computer-use/dist/format.js +4 -1
- package/node_modules/@xrkseek/exec-computer-use/dist/format.js.map +1 -1
- package/node_modules/@xrkseek/exec-environment/README.md +21 -0
- package/node_modules/@xrkseek/exec-environment/dist/http.d.ts +34 -0
- package/node_modules/@xrkseek/exec-environment/dist/http.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/http.js +259 -0
- package/node_modules/@xrkseek/exec-environment/dist/http.js.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/index.d.ts +5 -0
- package/node_modules/@xrkseek/exec-environment/dist/index.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/index.js +4 -0
- package/node_modules/@xrkseek/exec-environment/dist/index.js.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/local.d.ts +11 -0
- package/node_modules/@xrkseek/exec-environment/dist/local.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/local.js +30 -0
- package/node_modules/@xrkseek/exec-environment/dist/local.js.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts +23 -0
- package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/resolve.js +39 -0
- package/node_modules/@xrkseek/exec-environment/dist/resolve.js.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/types.d.ts +33 -0
- package/node_modules/@xrkseek/exec-environment/dist/types.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-environment/dist/types.js +9 -0
- package/node_modules/@xrkseek/exec-environment/dist/types.js.map +1 -0
- package/node_modules/@xrkseek/exec-environment/package.json +28 -0
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.js +1 -0
- package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/present.d.ts +5 -2
- package/node_modules/@xrkseek/exec-fs/dist/present.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/present.js +22 -4
- package/node_modules/@xrkseek/exec-fs/dist/present.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/README.md +6 -4
- package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/format.js +6 -3
- package/node_modules/@xrkseek/exec-image-gen/dist/format.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts +4 -2
- package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/index.js +4 -2
- package/node_modules/@xrkseek/exec-image-gen/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/memory.d.ts +4 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/memory.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/memory.js +16 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/memory.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts +5 -2
- package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js +88 -38
- package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts +21 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/references.js +145 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/references.js.map +1 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts +15 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/schema.js +67 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/schema.js.map +1 -0
- package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts +5 -2
- package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/tools.js +38 -36
- package/node_modules/@xrkseek/exec-image-gen/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts +34 -2
- package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/types.js +16 -1
- package/node_modules/@xrkseek/exec-image-gen/dist/types.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/README.md +3 -2
- package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +2 -1
- package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/index.js +2 -1
- package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/provider.d.ts +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/provider.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts +15 -4
- package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/resolve.js +13 -3
- package/node_modules/@xrkseek/exec-memory/dist/resolve.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/sqlite.d.ts +19 -0
- package/node_modules/@xrkseek/exec-memory/dist/sqlite.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-memory/dist/sqlite.js +190 -0
- package/node_modules/@xrkseek/exec-memory/dist/sqlite.js.map +1 -0
- package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts +21 -0
- package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/write-path.js +128 -25
- package/node_modules/@xrkseek/exec-memory/dist/write-path.js.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.d.ts +8 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.js +3 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/README.md +27 -19
- package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts +16 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js +90 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/format.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/format.js +3 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/format.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts +5 -2
- package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/index.js +5 -2
- package/node_modules/@xrkseek/exec-video-gen/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/memory.d.ts +3 -2
- package/node_modules/@xrkseek/exec-video-gen/dist/memory.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/memory.js +45 -4
- package/node_modules/@xrkseek/exec-video-gen/dist/memory.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts +3 -6
- package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js +81 -2
- package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/references.d.ts +24 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/references.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/references.js +151 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/references.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/schema.d.ts +15 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/schema.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/schema.js +104 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/schema.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-gen/dist/tools.d.ts +4 -2
- package/node_modules/@xrkseek/exec-video-gen/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/tools.js +99 -70
- package/node_modules/@xrkseek/exec-video-gen/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts +73 -2
- package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/types.js +20 -1
- package/node_modules/@xrkseek/exec-video-gen/dist/types.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/README.md +2 -2
- package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts +3 -0
- package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/browser-tools.js +3 -0
- package/node_modules/@xrkseek/exec-web/dist/browser-tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.d.ts +32 -0
- package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.js +141 -0
- package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.js.map +1 -0
- package/node_modules/@xrkseek/exec-web/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/exec-web/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/index.js +1 -0
- package/node_modules/@xrkseek/exec-web/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-deepseek/dist/index.js +2 -1
- package/node_modules/@xrkseek/llm-deepseek/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.d.ts +13 -3
- package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.js +27 -4
- package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/README.md +8 -8
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +11 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +11 -3
- 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-minimal/README.md +2 -2
- package/node_modules/@xrkseek/preset-minimal/dist/preset.js +1 -1
- 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 +5 -5
- package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-server/dist/preset.js +3 -2
- 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/dist/session-events.d.ts +9 -0
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.js +9 -0
- package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
- package/node_modules/@xrkseek/server-config/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/server-config/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-config/dist/index.js +1 -0
- package/node_modules/@xrkseek/server-config/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-config/dist/json-text.d.ts +8 -0
- package/node_modules/@xrkseek/server-config/dist/json-text.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-config/dist/json-text.js +12 -0
- package/node_modules/@xrkseek/server-config/dist/json-text.js.map +1 -0
- package/node_modules/@xrkseek/server-cron/README.md +3 -2
- package/node_modules/@xrkseek/server-cron/dist/executions.d.ts +31 -0
- package/node_modules/@xrkseek/server-cron/dist/executions.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-cron/dist/executions.js +95 -0
- package/node_modules/@xrkseek/server-cron/dist/executions.js.map +1 -0
- package/node_modules/@xrkseek/server-cron/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/server-cron/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-cron/dist/index.js +6 -0
- package/node_modules/@xrkseek/server-cron/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-cron/dist/scheduler.d.ts +4 -0
- package/node_modules/@xrkseek/server-cron/dist/scheduler.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-cron/dist/scheduler.js +33 -24
- package/node_modules/@xrkseek/server-cron/dist/scheduler.js.map +1 -1
- package/node_modules/@xrkseek/server-cron/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-cron/dist/tools.js +44 -6
- package/node_modules/@xrkseek/server-cron/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/context.d.ts +2 -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 +2 -0
- package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.d.ts +37 -2
- package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.js +191 -28
- package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js +31 -5
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts +10 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js +33 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts +9 -0
- 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 +13 -7
- package/node_modules/@xrkseek/server-face/dist/host-open-path.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/llm-provider-context.d.ts +2 -0
- package/node_modules/@xrkseek/server-face/dist/llm-provider-context.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/llm-provider-context.js +13 -0
- package/node_modules/@xrkseek/server-face/dist/llm-provider-context.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/llm-resolve.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/llm-resolve.js +3 -1
- package/node_modules/@xrkseek/server-face/dist/llm-resolve.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +4 -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 +24 -5
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/presets-catalog.js +5 -5
- package/node_modules/@xrkseek/server-face/dist/presets-catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +14 -2
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/select-session-model.js +8 -0
- package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts +11 -0
- package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-model-store.js +66 -0
- package/node_modules/@xrkseek/server-face/dist/session-model-store.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +64 -13
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.js +173 -5
- package/node_modules/@xrkseek/server-face/dist/session-status.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 +4 -5
- 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 +36 -4
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +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 +33 -2
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts +15 -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 +35 -7
- package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts +11 -0
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js +22 -0
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js.map +1 -0
- package/node_modules/@xrkseek/server-host/dist/drain-status.d.ts +2 -2
- package/node_modules/@xrkseek/server-host/dist/drain-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/drain-status.js +2 -2
- package/node_modules/@xrkseek/server-host/dist/drain-status.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +19 -0
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +248 -33
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/mcp-wire.js +3 -3
- package/node_modules/@xrkseek/server-host/dist/mcp-wire.js.map +1 -1
- package/node_modules/@xrkseek/server-host/package.json +2 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts +13 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js +24 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts +1 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js +18 -2
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts +6 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +26 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.d.ts +2 -2
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.js +9 -4
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.d.ts +37 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.js +125 -9
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.js.map +1 -1
- package/node_modules/@xrkseek/spill/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/spill/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/spill/dist/index.js +1 -1
- package/node_modules/@xrkseek/spill/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/spill/dist/policy.d.ts +35 -0
- package/node_modules/@xrkseek/spill/dist/policy.d.ts.map +1 -1
- package/node_modules/@xrkseek/spill/dist/policy.js +45 -4
- package/node_modules/@xrkseek/spill/dist/policy.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.js +1 -0
- package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-curator.d.ts +46 -0
- package/node_modules/@xrkseek/workspace/dist/skill-curator.d.ts.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/skill-curator.js +114 -0
- package/node_modules/@xrkseek/workspace/dist/skill-curator.js.map +1 -0
- package/package.json +5 -1
|
@@ -3,14 +3,16 @@ import { createMemorySessionStore, createPersistentSessionStore, createSessionDr
|
|
|
3
3
|
import { createProviderRegistry } from "@xrkseek/llm-registry";
|
|
4
4
|
import { loadPolicyRulesetFile } from "@xrkseek/policy";
|
|
5
5
|
import { flattenText, isHumanUserMessageSource } from "@xrkseek/protocol";
|
|
6
|
-
import {
|
|
6
|
+
import { effectiveSandboxMode, shouldConfineSandbox, } from "@xrkseek/protocol";
|
|
7
|
+
import { consolidateCuratedMemoryPhase1, consolidateCuratedMemoryPhase2, createCuratedMemoryStore, } from "@xrkseek/exec-memory";
|
|
7
8
|
import { resolveSecretStore } from "@xrkseek/secrets";
|
|
8
9
|
import { hostSettingsPath, defaultSpillDir, resolveXrkHome } from "@xrkseek/server-config";
|
|
9
10
|
import { installOutboundHttpProxy } from "./http-proxy.js";
|
|
10
11
|
import { mountInvariantsFailFast } from "./invariants-fail-fast.js";
|
|
11
12
|
import { watchPolicyFile } from "./policy-file-watch.js";
|
|
13
|
+
import { createA2aInboundPublicHandler } from "./a2a-inbound-public.js";
|
|
12
14
|
import { applyXrkProductBootPolicy, chainPublicHandlers, ensureDshCompatHostPlugin, createLiveHostPluginsPublicHandler, createHttpServer, createXrkPluginPublicHandler, createSidebarPublicHandler, prewarmDshCompatAdapters, shutdownDshCompatServices, applyHostPackageByName, stopHostPackageFiber, listHostAppliedPackages, invokeDshCompatRpc, attachDshCompatUpgrades, DSH_SETTINGS_NAMESPACES, DSH_SETTINGS_DEFAULTS, runPluginMutate, ensureXrkPlatformClientBootEntries, injectBootIntoHtml, injectMobileAccessShellIntoHtml, loadBootManifestFromWebDist, mergeWebBootManifests, resolveWebBootManifest, createXrkWalletPort, createMobileAccessGateChecker, createMobileAccessGateHandler, loadSidebarPrefs, } from "@xrkseek/server-http";
|
|
13
|
-
import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, effectiveHostApiKey, isLoopbackAddress, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, canonicalAgentPresetId, resolveAgentPresetProfile, DEFAULT_MAX_DEPTH, DEFAULT_MAX_ACTIVE_CHILDREN, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, } from "@xrkseek/server-face";
|
|
15
|
+
import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, effectiveHostApiKey, isLoopbackAddress, listCredentialSlots, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, canonicalAgentPresetId, resolveAgentPresetProfile, DEFAULT_MAX_DEPTH, DEFAULT_MAX_ACTIVE_CHILDREN, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, } from "@xrkseek/server-face";
|
|
14
16
|
import { createPluginLoader, composeHostPolicyEngine, wireCompositionChannels, wireCompositionLlm, collectChannelPluginRegistrations, } from "@xrkseek/server-loader";
|
|
15
17
|
import { existsSync } from "node:fs";
|
|
16
18
|
import { access } from "node:fs/promises";
|
|
@@ -35,14 +37,26 @@ import { createMcpDeferredDispose } from "./mcp-deferred-dispose.js";
|
|
|
35
37
|
import { createStandingToolRegistry } from "./standing-tools.js";
|
|
36
38
|
import { createDefaultPtyAccess } from "@xrkseek/exec-pty";
|
|
37
39
|
import { createLocalShell } from "@xrkseek/exec-shell";
|
|
38
|
-
import {
|
|
40
|
+
import { createSandboxStack, parseSandboxProduct, } from "@xrkseek/exec-sandbox";
|
|
41
|
+
import { createBrowserRuntimeRegistry, setOutboundAllowlistAuditObserver } from "@xrkseek/exec-web";
|
|
39
42
|
import { createLocalSubprocess } from "@xrkseek/exec-subprocess";
|
|
43
|
+
import { resolveExecEnvironment, } from "@xrkseek/exec-environment";
|
|
40
44
|
import { createSshExecutionWorld, resolveSshConfig, } from "@xrkseek/exec-ssh";
|
|
41
45
|
/** True while an unattended cron agent turn is running — skip cron tools to avoid recursion. */
|
|
42
46
|
const cronAgentDepth = new AsyncLocalStorage();
|
|
43
47
|
export { createHostAgentCache, HOST_PLUGINS_KEY } from "./agent-cache.js";
|
|
44
48
|
export { createStandingToolRegistry } from "./standing-tools.js";
|
|
45
49
|
export { loadMcpToolPlugins, mcpDraftsToSpecs, mcpFingerprint, parseMcpServersEnv, readMcpAllowFromHostSettings, readMcpServersFromHostSettings, reconcileMcpToolPlugins, resetLastGoodHostMcpWireCaches, } from "./mcp-wire.js";
|
|
50
|
+
/**
|
|
51
|
+
* AbortError with a readable reason. Used by the session drain snapshot race
|
|
52
|
+
* so a cancellation that interrupts a stuck git/fs call surfaces as a normal
|
|
53
|
+
* AbortError instead of a bare string or DOMException mismatch.
|
|
54
|
+
*/
|
|
55
|
+
function hostAbortError(reason) {
|
|
56
|
+
const err = new Error(reason === undefined ? "aborted" : String(reason));
|
|
57
|
+
err.name = "AbortError";
|
|
58
|
+
return err;
|
|
59
|
+
}
|
|
46
60
|
function logMcpReconcile(log, label, result) {
|
|
47
61
|
if (!log)
|
|
48
62
|
return;
|
|
@@ -99,6 +113,38 @@ function resolveMcpAllowConnect(config, faceAllow) {
|
|
|
99
113
|
return false;
|
|
100
114
|
return readMcpAllowFromHostSettings(hostSettingsPath());
|
|
101
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* `prepareArgv` for the Host-wide shared shell. Resolves the sandbox stack
|
|
118
|
+
* lazily at spawn time so Face settings (arriving after shell creation) and
|
|
119
|
+
* per-session `sandboxMode` are honored — `danger-full-access` unlocks, every
|
|
120
|
+
* other mode confines. This is the production confine path: the harness
|
|
121
|
+
* preset's own `sharedShell ?? createLocalShell(prepareArgv)` branch would
|
|
122
|
+
* otherwise run bash completely unsandboxed.
|
|
123
|
+
*/
|
|
124
|
+
export function createHostShellPrepareArgv(options) {
|
|
125
|
+
let cachedStack;
|
|
126
|
+
let cachedProductKey = "";
|
|
127
|
+
return async (argv, cwd, signal, ctx) => {
|
|
128
|
+
const settings = options.readSandboxSettings();
|
|
129
|
+
const product = parseSandboxProduct(settings);
|
|
130
|
+
const productKey = JSON.stringify(product ?? null);
|
|
131
|
+
if (!cachedStack || cachedProductKey !== productKey) {
|
|
132
|
+
cachedStack = createSandboxStack({
|
|
133
|
+
workspaceRoot: options.workspaceRoot,
|
|
134
|
+
...(product ? { product } : {}),
|
|
135
|
+
env: options.env,
|
|
136
|
+
...(options.remoteExecution ? { remoteExecution: true } : {}),
|
|
137
|
+
});
|
|
138
|
+
cachedProductKey = productKey;
|
|
139
|
+
}
|
|
140
|
+
// Per-session unlock: `danger-full-access` runs bash untouched.
|
|
141
|
+
const mode = options.readSandboxMode(ctx?.ownerSessionId);
|
|
142
|
+
if (!shouldConfineSandbox(mode))
|
|
143
|
+
return argv;
|
|
144
|
+
const confined = await cachedStack.confine(argv, cwd, signal);
|
|
145
|
+
return confined;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
102
148
|
export function createHostManager() {
|
|
103
149
|
const instances = new Map();
|
|
104
150
|
let seq = 0;
|
|
@@ -299,24 +345,43 @@ export function createHostManager() {
|
|
|
299
345
|
// Local Host + remote cwd: swap fs/shell (Hermes/DSH provider pattern).
|
|
300
346
|
// Env `XRK_SSH_HOST` CI-bypasses Face; else peek settings.yaml before Face
|
|
301
347
|
// (SSH world must own workspaceRoot before createFaceRuntime).
|
|
348
|
+
// Optional HTTP ExecEnvironment (Modal/e2b-style sidecar) when SSH is off.
|
|
302
349
|
let sshWorld;
|
|
350
|
+
let httpWorld;
|
|
303
351
|
/** Local Host cwd before SSH workspace swap (browse/settings anchor). */
|
|
304
352
|
let localHostRoot;
|
|
353
|
+
let execWorldKind;
|
|
305
354
|
try {
|
|
306
355
|
const sshProduct = peekSettingsYamlSection(resolveXrkHome(), "ssh-remote");
|
|
307
356
|
const sshConfig = resolveSshConfig(process.env, sshProduct);
|
|
308
357
|
if (sshConfig) {
|
|
358
|
+
execWorldKind = "ssh";
|
|
309
359
|
localHostRoot = config.runtime.workspaceRoot;
|
|
310
360
|
sshWorld = createSshExecutionWorld({ config: sshConfig });
|
|
311
361
|
// Tool coordinates are the remote workspace; Face session cwd follows.
|
|
312
362
|
config.runtime.workspaceRoot =
|
|
313
363
|
sshWorld.workspaceRoot;
|
|
314
364
|
}
|
|
365
|
+
else if (String(process.env.XRK_EXEC_ENVIRONMENT ?? "")
|
|
366
|
+
.trim()
|
|
367
|
+
.toLowerCase() === "http") {
|
|
368
|
+
execWorldKind = "http";
|
|
369
|
+
const provider = resolveExecEnvironment({ env: process.env });
|
|
370
|
+
httpWorld = await provider.createWorld({
|
|
371
|
+
workspaceRoot: config.runtime.workspaceRoot,
|
|
372
|
+
});
|
|
373
|
+
}
|
|
315
374
|
}
|
|
316
375
|
catch (err) {
|
|
317
376
|
const message = err instanceof Error ? err.message : String(err);
|
|
318
|
-
throw new Error(
|
|
377
|
+
throw new Error(execWorldKind === "http"
|
|
378
|
+
? `HTTP exec environment: ${message}`
|
|
379
|
+
: `SSH remote workspace: ${message}`, { cause: err });
|
|
319
380
|
}
|
|
381
|
+
// Codex-shaped outbound allowlist audit → Host logger (not MITM).
|
|
382
|
+
setOutboundAllowlistAuditObserver((ev) => {
|
|
383
|
+
log?.debug(`web-fetch-allowlist ${ev.decision} ${ev.host} (${ev.source}: ${ev.reason})`);
|
|
384
|
+
});
|
|
320
385
|
const sharedPty = !sshWorld &&
|
|
321
386
|
(config.runtime.preset === "harness" ||
|
|
322
387
|
config.runtime.preset === "server")
|
|
@@ -328,8 +393,29 @@ export function createHostManager() {
|
|
|
328
393
|
? createLocalShell({
|
|
329
394
|
subprocess: sshWorld
|
|
330
395
|
? sshWorld.subprocess
|
|
331
|
-
:
|
|
396
|
+
: httpWorld
|
|
397
|
+
? httpWorld.subprocess
|
|
398
|
+
: createLocalSubprocess(),
|
|
332
399
|
defaultCwd: config.runtime.workspaceRoot,
|
|
400
|
+
// Host-wide shared registry — sandbox confine resolves lazily so
|
|
401
|
+
// Face settings + per-session sandboxMode are read at spawn time,
|
|
402
|
+
// not at shell creation (faceBox.runtime arrives later). This is
|
|
403
|
+
// the production path the harness preset's `sharedShell ??`
|
|
404
|
+
// branch would otherwise bypass entirely.
|
|
405
|
+
prepareArgv: createHostShellPrepareArgv({
|
|
406
|
+
workspaceRoot: config.runtime.workspaceRoot,
|
|
407
|
+
readSandboxSettings: () => {
|
|
408
|
+
const rt = faceBox.runtime;
|
|
409
|
+
if (!rt)
|
|
410
|
+
return undefined;
|
|
411
|
+
return rt.settingsNamespaces.view("sandbox").value;
|
|
412
|
+
},
|
|
413
|
+
readSandboxMode: (sessionId) => effectiveSandboxMode(sessionId
|
|
414
|
+
? readSessionEvents(store, sessionId)
|
|
415
|
+
: []),
|
|
416
|
+
remoteExecution: sshWorld !== undefined,
|
|
417
|
+
env: process.env,
|
|
418
|
+
}),
|
|
333
419
|
})
|
|
334
420
|
: undefined;
|
|
335
421
|
/** Session-keyed browser pages — survives agent invalidate (Hermes task_id map). */
|
|
@@ -338,34 +424,63 @@ export function createHostManager() {
|
|
|
338
424
|
: undefined;
|
|
339
425
|
const ensureSession = (sid) => newSession(store, sid).id;
|
|
340
426
|
const faceBox = {};
|
|
341
|
-
/** Session-end Phase1: fold leftover
|
|
427
|
+
/** Session-end Phase1 (+ optional Phase2 LLM): fold leftover notes into MEMORY.md. */
|
|
342
428
|
const consolidateCuratedMemoryForSession = (sessionId) => {
|
|
343
429
|
try {
|
|
344
430
|
const rt = faceBox.runtime;
|
|
345
431
|
const memEnvRaw = String(process.env.XRK_CURATED_MEMORY ?? "").trim();
|
|
346
432
|
let enabled = memEnvRaw !== "" ? memEnvRaw !== "0" : true;
|
|
433
|
+
let phase2Llm = false;
|
|
347
434
|
if (memEnvRaw === "" && rt) {
|
|
348
435
|
const memNs = rt.settingsNamespaces.view("curated-memory")
|
|
349
436
|
.value;
|
|
350
437
|
enabled = memNs.enabled !== false;
|
|
438
|
+
phase2Llm = memNs.phase2Llm === true;
|
|
439
|
+
}
|
|
440
|
+
const phase2Env = String(process.env.XRK_CURATED_MEMORY_PHASE2 ?? "").trim();
|
|
441
|
+
if (phase2Env === "1" || phase2Env.toLowerCase() === "true") {
|
|
442
|
+
phase2Llm = true;
|
|
351
443
|
}
|
|
352
444
|
if (!enabled)
|
|
353
445
|
return;
|
|
354
446
|
const userTexts = [];
|
|
447
|
+
const assistantTexts = [];
|
|
355
448
|
for (const event of readSessionEvents(store, sessionId)) {
|
|
356
|
-
if (event.type
|
|
449
|
+
if (event.type === "user/message") {
|
|
450
|
+
if (!isHumanUserMessageSource(event.source))
|
|
451
|
+
continue;
|
|
452
|
+
const text = flattenText(event.content).trim();
|
|
453
|
+
if (text)
|
|
454
|
+
userTexts.push(text);
|
|
357
455
|
continue;
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
456
|
+
}
|
|
457
|
+
if (event.type === "assistant/message") {
|
|
458
|
+
const text = flattenText(event.content ?? "").trim();
|
|
459
|
+
if (text)
|
|
460
|
+
assistantTexts.push(text);
|
|
461
|
+
}
|
|
363
462
|
}
|
|
364
463
|
if (userTexts.length === 0)
|
|
365
464
|
return;
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
465
|
+
const memStore = createCuratedMemoryStore();
|
|
466
|
+
void (async () => {
|
|
467
|
+
await consolidateCuratedMemoryPhase1(memStore, { userTexts });
|
|
468
|
+
if (!phase2Llm)
|
|
469
|
+
return;
|
|
470
|
+
const llm = llmResolverBox.resolve?.(sessionId);
|
|
471
|
+
if (!llm?.chat)
|
|
472
|
+
return;
|
|
473
|
+
await consolidateCuratedMemoryPhase2(memStore, {
|
|
474
|
+
userTexts,
|
|
475
|
+
assistantTexts,
|
|
476
|
+
complete: async (prompt) => {
|
|
477
|
+
const out = await llm.chat({
|
|
478
|
+
messages: [{ role: "user", content: prompt }],
|
|
479
|
+
});
|
|
480
|
+
return String(out.content ?? "");
|
|
481
|
+
},
|
|
482
|
+
});
|
|
483
|
+
})();
|
|
369
484
|
}
|
|
370
485
|
catch {
|
|
371
486
|
/* best-effort — Host stop / archive must continue */
|
|
@@ -429,6 +544,26 @@ export function createHostManager() {
|
|
|
429
544
|
remoteExecution: true,
|
|
430
545
|
codeRuntime: sshWorld.codeRuntime,
|
|
431
546
|
}
|
|
547
|
+
: httpWorld
|
|
548
|
+
? { fs: httpWorld.fs }
|
|
549
|
+
: {}),
|
|
550
|
+
...(faceBox.runtime
|
|
551
|
+
? {
|
|
552
|
+
browserVault: {
|
|
553
|
+
list() {
|
|
554
|
+
return listCredentialSlots(faceBox.runtime)
|
|
555
|
+
.filter((s) => s.configured)
|
|
556
|
+
.map((s) => ({
|
|
557
|
+
handle: s.id,
|
|
558
|
+
label: s.label,
|
|
559
|
+
kind: "credential",
|
|
560
|
+
}));
|
|
561
|
+
},
|
|
562
|
+
peek(handle) {
|
|
563
|
+
return faceBox.runtime?.credentials.peek(handle);
|
|
564
|
+
},
|
|
565
|
+
},
|
|
566
|
+
}
|
|
432
567
|
: {}),
|
|
433
568
|
...(llmResolverBox.resolve
|
|
434
569
|
? { resolveLlm: llmResolverBox.resolve }
|
|
@@ -439,6 +574,16 @@ export function createHostManager() {
|
|
|
439
574
|
...(pluginSettings.maxSteps !== undefined
|
|
440
575
|
? { maxSteps: pluginSettings.maxSteps }
|
|
441
576
|
: {}),
|
|
577
|
+
...(pluginSettings.autoContinueOnMaxTokens !== undefined
|
|
578
|
+
? {
|
|
579
|
+
autoContinueOnMaxTokens: pluginSettings.autoContinueOnMaxTokens,
|
|
580
|
+
}
|
|
581
|
+
: {}),
|
|
582
|
+
...(pluginSettings.autoContinueMaxRounds !== undefined
|
|
583
|
+
? {
|
|
584
|
+
autoContinueMaxRounds: pluginSettings.autoContinueMaxRounds,
|
|
585
|
+
}
|
|
586
|
+
: {}),
|
|
442
587
|
...(pluginSettings.toolOrder !== undefined
|
|
443
588
|
? { toolOrder: pluginSettings.toolOrder }
|
|
444
589
|
: {}),
|
|
@@ -459,6 +604,9 @@ export function createHostManager() {
|
|
|
459
604
|
toolResultMaxInlineBytes: pluginSettings.toolResultMaxInlineBytes,
|
|
460
605
|
}
|
|
461
606
|
: {}),
|
|
607
|
+
...(pluginSettings.guardianFragments !== undefined
|
|
608
|
+
? { guardianFragments: pluginSettings.guardianFragments }
|
|
609
|
+
: {}),
|
|
462
610
|
...(pluginSettings.locale
|
|
463
611
|
? { locale: pluginSettings.locale }
|
|
464
612
|
: {}),
|
|
@@ -569,6 +717,17 @@ export function createHostManager() {
|
|
|
569
717
|
};
|
|
570
718
|
const hub = createSessionDrainHub({
|
|
571
719
|
createDrain: (sessionId) => async ({ signal }) => {
|
|
720
|
+
const snapshot = () => {
|
|
721
|
+
const face = faceBox.runtime;
|
|
722
|
+
// Best-effort and self-bounded: snapshotSessionWorkspace races its
|
|
723
|
+
// own deadline (SNAPSHOT_TIMEOUT_MS), so a hung git/fs call
|
|
724
|
+
// degrades to "no checkpoint" instead of blocking the turn. The
|
|
725
|
+
// drain loop's abort check covers cancellation; no shared state
|
|
726
|
+
// here, so no signal listener bookkeeping is needed.
|
|
727
|
+
if (!face || signal.aborted)
|
|
728
|
+
return Promise.resolve();
|
|
729
|
+
return snapshotSessionWorkspace(face, sessionId).then(() => undefined);
|
|
730
|
+
};
|
|
572
731
|
try {
|
|
573
732
|
const agent = await resolveAgent(sessionId);
|
|
574
733
|
// Delivery queue rule (docs/session-delivery.md §3):
|
|
@@ -576,14 +735,11 @@ export function createHostManager() {
|
|
|
576
735
|
// without promoting further inbox items. Loop until inbox empty.
|
|
577
736
|
while (agent.pendingAdmits().length > 0) {
|
|
578
737
|
if (signal.aborted) {
|
|
579
|
-
throw
|
|
738
|
+
throw hostAbortError(signal.reason);
|
|
580
739
|
}
|
|
581
740
|
// Worktree snapshot before tools mutate files (Hermes-style
|
|
582
741
|
// checkpoint). Best-effort — never blocks the turn.
|
|
583
|
-
|
|
584
|
-
if (face) {
|
|
585
|
-
await snapshotSessionWorkspace(face, sessionId);
|
|
586
|
-
}
|
|
742
|
+
await snapshot();
|
|
587
743
|
const result = await agent.continueTurn({ signal });
|
|
588
744
|
lastDrainResult.set(sessionId, result);
|
|
589
745
|
}
|
|
@@ -626,16 +782,36 @@ export function createHostManager() {
|
|
|
626
782
|
}
|
|
627
783
|
return cronAgentDepth.run(true, async () => {
|
|
628
784
|
const session = store.create();
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
785
|
+
try {
|
|
786
|
+
const agent = await resolveAgent(session.id);
|
|
787
|
+
const result = await agent.continueTurn({
|
|
788
|
+
text: `[cron ${job.id}${job.name ? ` ${job.name}` : ""}]\n${run.prompt}`,
|
|
789
|
+
...(signal ? { signal } : {}),
|
|
790
|
+
});
|
|
791
|
+
return {
|
|
792
|
+
ok: true,
|
|
793
|
+
output: result.text,
|
|
794
|
+
sessionId: session.id,
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
finally {
|
|
798
|
+
// Ephemeral cron sessions must not retain AgentHandle in agentCache
|
|
799
|
+
// (each composition is heavy; ticker would OOM over hours).
|
|
800
|
+
lastDrainResult.delete(session.id);
|
|
801
|
+
hub.forget(session.id);
|
|
802
|
+
try {
|
|
803
|
+
await faceBox.runtime?.onSessionFinalize?.(session.id);
|
|
804
|
+
}
|
|
805
|
+
catch {
|
|
806
|
+
// best-effort memory/browser cleanup
|
|
807
|
+
}
|
|
808
|
+
if (faceBox.runtime?.invalidateAgent) {
|
|
809
|
+
await faceBox.runtime.invalidateAgent(session.id);
|
|
810
|
+
}
|
|
811
|
+
else {
|
|
812
|
+
await agentCache.invalidate(session.id);
|
|
813
|
+
}
|
|
814
|
+
}
|
|
639
815
|
});
|
|
640
816
|
},
|
|
641
817
|
onError: (err) => {
|
|
@@ -870,7 +1046,7 @@ export function createHostManager() {
|
|
|
870
1046
|
: {}),
|
|
871
1047
|
drain: {
|
|
872
1048
|
wake: (sessionId) => drain.wake(sessionId),
|
|
873
|
-
cancel: (sessionId) => drain.cancel(sessionId),
|
|
1049
|
+
cancel: (sessionId, opts) => drain.cancel(sessionId, opts),
|
|
874
1050
|
isActive: (sessionId) => drain.isActive(sessionId),
|
|
875
1051
|
run: (sessionId) => hub.run(sessionId),
|
|
876
1052
|
},
|
|
@@ -951,6 +1127,14 @@ export function createHostManager() {
|
|
|
951
1127
|
loop.maxSteps > 0
|
|
952
1128
|
? Math.floor(loop.maxSteps)
|
|
953
1129
|
: undefined;
|
|
1130
|
+
const autoContinueOnMaxTokens = loop.autoContinueOnMaxTokens === true;
|
|
1131
|
+
const autoContinueMaxRoundsRaw = loop.autoContinueMaxRounds;
|
|
1132
|
+
const autoContinueMaxRounds = typeof autoContinueMaxRoundsRaw === "number" &&
|
|
1133
|
+
Number.isFinite(autoContinueMaxRoundsRaw) &&
|
|
1134
|
+
autoContinueMaxRoundsRaw >= 1 &&
|
|
1135
|
+
autoContinueMaxRoundsRaw <= 10
|
|
1136
|
+
? Math.floor(autoContinueMaxRoundsRaw)
|
|
1137
|
+
: undefined;
|
|
954
1138
|
const toolOrderRaw = loop.toolOrder;
|
|
955
1139
|
const toolOrder = Array.isArray(toolOrderRaw) &&
|
|
956
1140
|
toolOrderRaw.length > 0 &&
|
|
@@ -982,6 +1166,16 @@ export function createHostManager() {
|
|
|
982
1166
|
loop.bufferTokens >= 0
|
|
983
1167
|
? Math.floor(loop.bufferTokens)
|
|
984
1168
|
: undefined;
|
|
1169
|
+
const compactionStrategyRaw = String(loop.compactionStrategy ?? "").trim();
|
|
1170
|
+
const compactionStrategy = compactionStrategyRaw === "prune-summary" ||
|
|
1171
|
+
compactionStrategyRaw === "prune-only" ||
|
|
1172
|
+
compactionStrategyRaw === "summary-only" ||
|
|
1173
|
+
compactionStrategyRaw === "off"
|
|
1174
|
+
? compactionStrategyRaw
|
|
1175
|
+
: undefined;
|
|
1176
|
+
const guardianFragments = typeof loop.guardianFragments === "boolean"
|
|
1177
|
+
? loop.guardianFragments
|
|
1178
|
+
: undefined;
|
|
985
1179
|
const toolResultMaxInlineBytes = typeof loop.toolResultMaxInlineBytes === "number" &&
|
|
986
1180
|
Number.isFinite(loop.toolResultMaxInlineBytes) &&
|
|
987
1181
|
loop.toolResultMaxInlineBytes >= 0
|
|
@@ -1197,12 +1391,19 @@ export function createHostManager() {
|
|
|
1197
1391
|
return {
|
|
1198
1392
|
...(maxParallelToolCalls !== undefined ? { maxParallelToolCalls } : {}),
|
|
1199
1393
|
...(maxSteps !== undefined ? { maxSteps } : {}),
|
|
1394
|
+
...(autoContinueOnMaxTokens
|
|
1395
|
+
? { autoContinueOnMaxTokens: true }
|
|
1396
|
+
: {}),
|
|
1397
|
+
...(autoContinueMaxRounds !== undefined
|
|
1398
|
+
? { autoContinueMaxRounds }
|
|
1399
|
+
: {}),
|
|
1200
1400
|
...(toolOrder !== undefined ? { toolOrder } : {}),
|
|
1201
1401
|
...(toolSettle !== undefined ? { toolSettle } : {}),
|
|
1202
1402
|
...(llmRetryMaxRetries !== undefined ? { llmRetryMaxRetries } : {}),
|
|
1203
1403
|
...(maxRequestTokens !== undefined ||
|
|
1204
1404
|
keepTokens !== undefined ||
|
|
1205
|
-
bufferTokens !== undefined
|
|
1405
|
+
bufferTokens !== undefined ||
|
|
1406
|
+
compactionStrategy !== undefined
|
|
1206
1407
|
? {
|
|
1207
1408
|
compaction: {
|
|
1208
1409
|
...(maxRequestTokens !== undefined
|
|
@@ -1210,12 +1411,16 @@ export function createHostManager() {
|
|
|
1210
1411
|
: {}),
|
|
1211
1412
|
...(keepTokens !== undefined ? { keepTokens } : {}),
|
|
1212
1413
|
...(bufferTokens !== undefined ? { bufferTokens } : {}),
|
|
1414
|
+
...(compactionStrategy !== undefined
|
|
1415
|
+
? { strategy: compactionStrategy }
|
|
1416
|
+
: {}),
|
|
1213
1417
|
},
|
|
1214
1418
|
}
|
|
1215
1419
|
: {}),
|
|
1216
1420
|
...(toolResultMaxInlineBytes !== undefined
|
|
1217
1421
|
? { toolResultMaxInlineBytes }
|
|
1218
1422
|
: {}),
|
|
1423
|
+
...(guardianFragments !== undefined ? { guardianFragments } : {}),
|
|
1219
1424
|
...(maxSubagentDepth !== undefined ? { maxSubagentDepth } : {}),
|
|
1220
1425
|
...(maxActiveSubagents !== undefined ? { maxActiveSubagents } : {}),
|
|
1221
1426
|
bashLimits: {
|
|
@@ -1349,6 +1554,13 @@ export function createHostManager() {
|
|
|
1349
1554
|
...(url ? { url } : {}),
|
|
1350
1555
|
...(token ? { token } : {}),
|
|
1351
1556
|
...(collection ? { collection } : {}),
|
|
1557
|
+
...(typeof ns.embeddingsUrl === "string" && ns.embeddingsUrl.trim()
|
|
1558
|
+
? { embeddingsUrl: ns.embeddingsUrl.trim() }
|
|
1559
|
+
: {}),
|
|
1560
|
+
...(typeof ns.embeddingsModel === "string" &&
|
|
1561
|
+
ns.embeddingsModel.trim()
|
|
1562
|
+
? { embeddingsModel: ns.embeddingsModel.trim() }
|
|
1563
|
+
: {}),
|
|
1352
1564
|
};
|
|
1353
1565
|
},
|
|
1354
1566
|
tokenLedger: {
|
|
@@ -1387,7 +1599,10 @@ export function createHostManager() {
|
|
|
1387
1599
|
ensureSession,
|
|
1388
1600
|
resolveAgent,
|
|
1389
1601
|
drain,
|
|
1390
|
-
tryHandlePublic: chainPublicHandlers(
|
|
1602
|
+
tryHandlePublic: chainPublicHandlers(createA2aInboundPublicHandler({
|
|
1603
|
+
host: config.runtime.host,
|
|
1604
|
+
port: config.runtime.port,
|
|
1605
|
+
}), createMobileAccessGateHandler({ xrkHome: resolveXrkHome() }), createSidebarPublicHandler({
|
|
1391
1606
|
xrkHome: resolveXrkHome(),
|
|
1392
1607
|
defaultCwd: faceRuntime.workspaceRoot,
|
|
1393
1608
|
resolveSessionCwd: (sessionId) => resolveSessionCwd(faceRuntime, sessionId),
|