@xrkseek/harness 0.6.3 → 0.6.5
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/core-agent/dist/index.d.ts +6 -2
- 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 +9 -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 +23 -5
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +91 -11
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +30 -0
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.js +15 -0
- package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts +1 -1
- 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/search-text.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/search-text.js +6 -0
- package/node_modules/@xrkseek/core-session/dist/search-text.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts +5 -2
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +155 -29
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.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 +2 -1
- package/node_modules/@xrkseek/core-tools/dist/std-tools.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/tool-exposure.d.ts +6 -2
- package/node_modules/@xrkseek/core-tools/dist/tool-exposure.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/tool-exposure.js +10 -3
- package/node_modules/@xrkseek/core-tools/dist/tool-exposure.js.map +1 -1
- package/node_modules/@xrkseek/exec-environment/dist/http.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-environment/dist/http.js +2 -0
- package/node_modules/@xrkseek/exec-environment/dist/http.js.map +1 -1
- package/node_modules/@xrkseek/exec-environment/dist/memory.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-environment/dist/memory.js +13 -9
- package/node_modules/@xrkseek/exec-environment/dist/memory.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/edit-text.d.ts +6 -1
- package/node_modules/@xrkseek/exec-fs/dist/edit-text.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/edit-text.js +139 -11
- package/node_modules/@xrkseek/exec-fs/dist/edit-text.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +7 -2
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.js +36 -9
- package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/open-nofollow.d.ts +13 -0
- package/node_modules/@xrkseek/exec-fs/dist/open-nofollow.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-fs/dist/open-nofollow.js +90 -0
- package/node_modules/@xrkseek/exec-fs/dist/open-nofollow.js.map +1 -0
- package/node_modules/@xrkseek/exec-pty/dist/env.d.ts +3 -23
- package/node_modules/@xrkseek/exec-pty/dist/env.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/env.js +3 -48
- package/node_modules/@xrkseek/exec-pty/dist/env.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/package.json +2 -1
- package/node_modules/@xrkseek/exec-ssh/dist/fs.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-ssh/dist/fs.js +2 -1
- package/node_modules/@xrkseek/exec-ssh/dist/fs.js.map +1 -1
- package/node_modules/@xrkseek/exec-subprocess/dist/env.d.ts +26 -0
- package/node_modules/@xrkseek/exec-subprocess/dist/env.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-subprocess/dist/env.js +65 -0
- package/node_modules/@xrkseek/exec-subprocess/dist/env.js.map +1 -0
- package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-subprocess/dist/index.js +5 -1
- package/node_modules/@xrkseek/exec-subprocess/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/failure.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm/dist/failure.js +7 -2
- package/node_modules/@xrkseek/llm/dist/failure.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/llm/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm/dist/index.js +1 -0
- package/node_modules/@xrkseek/llm/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/retry-policy.js +1 -1
- package/node_modules/@xrkseek/llm/dist/retry-policy.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/trace-context.d.ts +32 -0
- package/node_modules/@xrkseek/llm/dist/trace-context.d.ts.map +1 -0
- package/node_modules/@xrkseek/llm/dist/trace-context.js +89 -0
- package/node_modules/@xrkseek/llm/dist/trace-context.js.map +1 -0
- package/node_modules/@xrkseek/llm-anthropic/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-anthropic/dist/index.js +3 -3
- package/node_modules/@xrkseek/llm-anthropic/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-gemini/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-gemini/dist/index.js +3 -3
- package/node_modules/@xrkseek/llm-gemini/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-openai-compatible/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js +2 -2
- package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-openai-responses/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-openai-responses/dist/index.js +3 -3
- package/node_modules/@xrkseek/llm-openai-responses/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/discover.d.ts +11 -0
- package/node_modules/@xrkseek/llm-registry/dist/discover.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/discover.js +61 -0
- package/node_modules/@xrkseek/llm-registry/dist/discover.js.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm-registry/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/policy/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/policy/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/policy/dist/index.js +1 -0
- package/node_modules/@xrkseek/policy/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/policy/dist/ruleset.d.ts +6 -0
- package/node_modules/@xrkseek/policy/dist/ruleset.d.ts.map +1 -1
- package/node_modules/@xrkseek/policy/dist/ruleset.js +67 -14
- package/node_modules/@xrkseek/policy/dist/ruleset.js.map +1 -1
- package/node_modules/@xrkseek/policy/dist/schema.d.ts +6 -0
- package/node_modules/@xrkseek/policy/dist/schema.d.ts.map +1 -1
- package/node_modules/@xrkseek/policy/dist/schema.js +6 -0
- package/node_modules/@xrkseek/policy/dist/schema.js.map +1 -1
- package/node_modules/@xrkseek/policy/dist/when-expr.d.ts +30 -0
- package/node_modules/@xrkseek/policy/dist/when-expr.d.ts.map +1 -0
- package/node_modules/@xrkseek/policy/dist/when-expr.js +514 -0
- package/node_modules/@xrkseek/policy/dist/when-expr.js.map +1 -0
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +68 -14
- 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/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +3 -3
- package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts +15 -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 +108 -8
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/context.d.ts +5 -0
- package/node_modules/@xrkseek/server-face/dist/context.d.ts.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 +69 -19
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/subagent.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js +7 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +3 -2
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +3 -2
- package/node_modules/@xrkseek/server-face/dist/index.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 +2 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/peer-session-wait.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/peer-session-wait.js +16 -9
- package/node_modules/@xrkseek/server-face/dist/peer-session-wait.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/ralph-tool.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/ralph-tool.js +19 -20
- package/node_modules/@xrkseek/server-face/dist/ralph-tool.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 +58 -13
- 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 +33 -1
- package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-message.d.ts +5 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-message.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-message.js +8 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-message.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 +4 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.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 +32 -5
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.d.ts +7 -0
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.js +21 -5
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.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 +79 -149
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wait-drain-idle.d.ts +32 -0
- package/node_modules/@xrkseek/server-face/dist/wait-drain-idle.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/wait-drain-idle.js +138 -0
- package/node_modules/@xrkseek/server-face/dist/wait-drain-idle.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/wire/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/index.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/loopback.d.ts +5 -0
- package/node_modules/@xrkseek/server-face/dist/wire/loopback.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/loopback.js +14 -0
- package/node_modules/@xrkseek/server-face/dist/wire/loopback.js.map +1 -1
- 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 +2 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts +26 -4
- package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/agent-cache.js +63 -16
- package/node_modules/@xrkseek/server-host/dist/agent-cache.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +98 -25
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/workflow-engine-mount.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/workflow-engine-mount.js +16 -21
- package/node_modules/@xrkseek/server-host/dist/workflow-engine-mount.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.d.ts +2 -2
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js +7 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-llm-host-sync.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-llm-host-sync.js +49 -11
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-llm-host-sync.js.map +1 -1
- package/node_modules/@xrkseek/server-loader/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-loader/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-loader/dist/index.js +1 -1
- package/node_modules/@xrkseek/server-loader/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-loader/dist/shell-hooks.d.ts +31 -1
- package/node_modules/@xrkseek/server-loader/dist/shell-hooks.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-loader/dist/shell-hooks.js +126 -14
- package/node_modules/@xrkseek/server-loader/dist/shell-hooks.js.map +1 -1
- package/node_modules/@xrkseek/session-projection/dist/index.d.ts +7 -0
- package/node_modules/@xrkseek/session-projection/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/session-projection/dist/index.js +16 -0
- package/node_modules/@xrkseek/session-projection/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts +10 -0
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js +38 -0
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js +23 -11
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.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/scan-guards.d.ts +21 -0
- package/node_modules/@xrkseek/workspace/dist/scan-guards.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/scan-guards.js +48 -0
- package/node_modules/@xrkseek/workspace/dist/scan-guards.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-select.d.ts +29 -0
- package/node_modules/@xrkseek/workspace/dist/skill-select.d.ts.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/skill-select.js +77 -0
- package/node_modules/@xrkseek/workspace/dist/skill-select.js.map +1 -0
- package/package.json +1 -1
|
@@ -16,12 +16,12 @@ import { createA2aInboundPublicHandler } from "./a2a-inbound-public.js";
|
|
|
16
16
|
import { createCronApiHandler } from "./cron-http.js";
|
|
17
17
|
import { tryMountHostIsolatingWorkflowEngine } from "./workflow-engine-mount.js";
|
|
18
18
|
import { applyXrkProductBootPolicy, chainPublicHandlers, ensureDshCompatHostPlugin, DSH_COMPAT_HOST_PLUGIN_ID, createLiveHostPluginsPublicHandler, createHttpServer, createXrkPluginPublicHandler, createSidebarPublicHandler, prewarmDshCompatAdapters, shutdownDshCompatServices, applyHostPackageByName, stopHostPackage, listHostAppliedPackages, invokeDshCompatRpc, attachDshCompatUpgrades, DSH_SETTINGS_NAMESPACES, DSH_SETTINGS_DEFAULTS, runPluginMutate, ensureXrkPlatformClientBootEntries, injectBootIntoHtml, injectBootThemeIntoHtml, injectMobileAccessShellIntoHtml, loadBootManifestFromWebDist, mergeWebBootManifests, resolveWebBootManifest, createXrkWalletPort, createMobileAccessGateChecker, createMobileAccessGateHandler, loadSidebarPrefs, createAutoReviewToolPre, isAutoReviewEnabled, setAutoReviewEnabled, setImFaceAdmitHook, } from "@xrkseek/server-http";
|
|
19
|
-
import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, IM_AGENT_PRESET_ID, IM_WORKSPACE_ID, QICHUANG_AGENT_PRESET_ID, XIANGYANG_WORKSPACE_ID, isOrchestrationWorkspaceId, effectiveHostApiKey, ensureMcpLiveIfIdle, isLoopbackAddress, listCredentialSlots, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, ensureSessionWorkingDirectory, setSessionWorkingDirectory, createSessionWorktree, canonicalAgentPresetId, resolveAgentPresetProfile, effectiveSessionAgentPreset, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, SNAPSHOT_DRAIN_BUDGET_MS, applyRosterToolPolicy, migrateAutoSessionsToFullAccess, approvePendingAutoReview, createCollabBoardFragmentProvider, createSessionCapabilityFragmentProvider, createSessionPostureFragmentProvider, canvasWorkspaceIdForSession, resolveSessionModelSelection, credentialsSet, settingsMutateFace, communityLoopbackBaseUrlCollision, existingPiAiProvider, mergeCommunityProviderModels, } from "@xrkseek/server-face";
|
|
19
|
+
import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, IM_AGENT_PRESET_ID, IM_WORKSPACE_ID, QICHUANG_AGENT_PRESET_ID, XIANGYANG_WORKSPACE_ID, isOrchestrationWorkspaceId, effectiveHostApiKey, ensureMcpLiveIfIdle, isLoopbackAddress, timingSafeStringEqual, listCredentialSlots, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, ensureSessionWorkingDirectory, setSessionWorkingDirectory, createSessionWorktree, canonicalAgentPresetId, resolveAgentPresetProfile, effectiveSessionAgentPreset, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, SNAPSHOT_DRAIN_BUDGET_MS, applyRosterToolPolicy, migrateAutoSessionsToFullAccess, approvePendingAutoReview, createCollabBoardFragmentProvider, createSessionCapabilityFragmentProvider, createSessionPostureFragmentProvider, canvasWorkspaceIdForSession, resolveSessionModelSelection, credentialsSet, settingsMutateFace, communityLoopbackBaseUrlCollision, existingPiAiProvider, mergeCommunityProviderModels, } from "@xrkseek/server-face";
|
|
20
20
|
import { createPluginLoader, composeHostPolicyEngine, wireCompositionChannels, wireCompositionLlm, collectChannelPluginRegistrations, isOptionalBundleEnabledAt, } from "@xrkseek/server-loader";
|
|
21
21
|
import { existsSync } from "node:fs";
|
|
22
22
|
import { access } from "node:fs/promises";
|
|
23
23
|
import path from "node:path";
|
|
24
|
-
import { createHostAgentCache } from "./agent-cache.js";
|
|
24
|
+
import { createHostAgentCache, deferBusyAgentInvalidate } from "./agent-cache.js";
|
|
25
25
|
import { createHostCron } from "@xrkseek/server-cron";
|
|
26
26
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
27
27
|
import { wireDrainStatus, publishDrainIdle } from "./drain-status.js";
|
|
@@ -48,7 +48,7 @@ import { resolveExecEnvironment, } from "@xrkseek/exec-environment";
|
|
|
48
48
|
import { createSshExecutionWorldReady, resolveSshConfig, } from "@xrkseek/exec-ssh";
|
|
49
49
|
/** True while an unattended cron agent turn is running — skip cron tools to avoid recursion. */
|
|
50
50
|
const cronAgentDepth = new AsyncLocalStorage();
|
|
51
|
-
export { createHostAgentCache, HOST_PLUGINS_KEY } from "./agent-cache.js";
|
|
51
|
+
export { createHostAgentCache, deferBusyAgentInvalidate, HOST_PLUGINS_KEY } from "./agent-cache.js";
|
|
52
52
|
export { createStandingToolRegistry } from "./standing-tools.js";
|
|
53
53
|
export { a2aInboundSessionId, createA2aInboundPublicHandler, resolveA2aInboundEnabled, } from "./a2a-inbound-public.js";
|
|
54
54
|
import { createImFaceAdmitHook } from "./im-face-admit.js";
|
|
@@ -467,6 +467,11 @@ export function createHostManager() {
|
|
|
467
467
|
pendingAgentInvalidate.add(sessionId);
|
|
468
468
|
return true;
|
|
469
469
|
},
|
|
470
|
+
// Idle parent of a busy nested worker: hold until the child drains,
|
|
471
|
+
// else parent.dispose cascades and paints the worker 「已停止」.
|
|
472
|
+
onHold: (sessionId) => {
|
|
473
|
+
pendingAgentInvalidate.add(sessionId);
|
|
474
|
+
},
|
|
470
475
|
});
|
|
471
476
|
await mcpDeferred.flush();
|
|
472
477
|
};
|
|
@@ -801,15 +806,29 @@ export function createHostManager() {
|
|
|
801
806
|
}
|
|
802
807
|
return pathAccessModeFromSandbox(effectiveSandboxMode(readSessionEvents(store, sessionId)));
|
|
803
808
|
},
|
|
804
|
-
readSessionPathAllowlist: () =>
|
|
809
|
+
readSessionPathAllowlist: () => {
|
|
810
|
+
const rt = faceBox.runtime;
|
|
811
|
+
if (!rt)
|
|
812
|
+
return [];
|
|
813
|
+
// Resident eviction forgets the in-memory map; cron/IM/drain
|
|
814
|
+
// turns may never call session.history — refill from the log.
|
|
815
|
+
rt.pathAllowlist.hydrate(rt.store, sessionId);
|
|
816
|
+
return rt.pathAllowlist.list(sessionId);
|
|
817
|
+
},
|
|
805
818
|
clearSessionPathOnce: () => {
|
|
806
819
|
faceBox.runtime?.pathAllowlist.clearOnce(sessionId);
|
|
807
820
|
},
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
821
|
+
// Always register tool_search — even while Face is still booting.
|
|
822
|
+
// Omitting toolSearchState used to dump every deferred MCP schema
|
|
823
|
+
// onto the wire (~100k+ tokens). Live getters attach to Face
|
|
824
|
+
// disclosure once runtime is assigned.
|
|
825
|
+
toolSearchState: {
|
|
826
|
+
listExpanded: () => faceBox.runtime?.toolDisclosure.listExpanded(sessionId) ??
|
|
827
|
+
new Set(),
|
|
828
|
+
expand: (names) => {
|
|
829
|
+
faceBox.runtime?.toolDisclosure.expand(sessionId, names);
|
|
830
|
+
},
|
|
831
|
+
},
|
|
813
832
|
routeAllowsImage: () => faceForModality.current
|
|
814
833
|
? liveRouteAllowsImageInput(faceForModality.current, sessionId)
|
|
815
834
|
: false,
|
|
@@ -1252,15 +1271,16 @@ export function createHostManager() {
|
|
|
1252
1271
|
if (!running &&
|
|
1253
1272
|
"flush" in store &&
|
|
1254
1273
|
typeof store.flush === "function") {
|
|
1255
|
-
store.flush();
|
|
1256
|
-
}
|
|
1257
|
-
if (!running && pendingAgentInvalidate.has(sid)) {
|
|
1258
|
-
pendingAgentInvalidate.delete(sid);
|
|
1259
|
-
void agentCache.invalidate(sid).then(() => mcpDeferred.flush());
|
|
1274
|
+
store.flush(sid);
|
|
1260
1275
|
}
|
|
1261
|
-
|
|
1262
|
-
//
|
|
1263
|
-
//
|
|
1276
|
+
if (!running) {
|
|
1277
|
+
// Invalidate this session if it was deferred mid-turn, then flush
|
|
1278
|
+
// other pending ids that are idle (incl. parents held only to
|
|
1279
|
+
// protect a nested busy child — see agent-cache onHold).
|
|
1280
|
+
if (pendingAgentInvalidate.has(sid)) {
|
|
1281
|
+
pendingAgentInvalidate.delete(sid);
|
|
1282
|
+
void agentCache.invalidate(sid).then(() => mcpDeferred.flush());
|
|
1283
|
+
}
|
|
1264
1284
|
for (const pending of [...pendingAgentInvalidate]) {
|
|
1265
1285
|
if (pending === sid)
|
|
1266
1286
|
continue;
|
|
@@ -1268,10 +1288,19 @@ export function createHostManager() {
|
|
|
1268
1288
|
agentCache.isBusy(pending)) {
|
|
1269
1289
|
continue;
|
|
1270
1290
|
}
|
|
1291
|
+
// Idle parent held only for a nested worker: wait until that
|
|
1292
|
+
// child is no longer protected, else parent.dispose cascades.
|
|
1293
|
+
if (agentCache.hasProtectedNestedChild(pending, (id) => pendingAgentInvalidate.has(id) ||
|
|
1294
|
+
drainActiveBox.isActive(id) ||
|
|
1295
|
+
agentCache.isBusy(id))) {
|
|
1296
|
+
continue;
|
|
1297
|
+
}
|
|
1271
1298
|
pendingAgentInvalidate.delete(pending);
|
|
1272
1299
|
void agentCache.invalidate(pending);
|
|
1273
1300
|
}
|
|
1274
|
-
|
|
1301
|
+
if (!pendingAgentInvalidate.has(sid)) {
|
|
1302
|
+
void mcpDeferred.flush();
|
|
1303
|
+
}
|
|
1275
1304
|
}
|
|
1276
1305
|
hostStatusBox.publish?.(sid, running);
|
|
1277
1306
|
});
|
|
@@ -1594,7 +1623,15 @@ export function createHostManager() {
|
|
|
1594
1623
|
...(config.runtime.policyFile
|
|
1595
1624
|
? { settingsDocumentPath: path.resolve(config.runtime.policyFile) }
|
|
1596
1625
|
: {}),
|
|
1597
|
-
invalidateAgent: (sessionId) =>
|
|
1626
|
+
invalidateAgent: (sessionId) => deferBusyAgentInvalidate({
|
|
1627
|
+
sessionId,
|
|
1628
|
+
drainActive: drainActiveBox.isActive(sessionId),
|
|
1629
|
+
busy: agentCache.isBusy(sessionId),
|
|
1630
|
+
defer: (id) => {
|
|
1631
|
+
pendingAgentInvalidate.add(id);
|
|
1632
|
+
},
|
|
1633
|
+
invalidate: (id) => agentCache.invalidate(id),
|
|
1634
|
+
}),
|
|
1598
1635
|
onSessionFinalize: (sessionId) => {
|
|
1599
1636
|
consolidateCuratedMemoryForSession(sessionId);
|
|
1600
1637
|
sharedBrowser?.drop(sessionId);
|
|
@@ -1720,6 +1757,22 @@ export function createHostManager() {
|
|
|
1720
1757
|
compactionStrategyRaw === "off"
|
|
1721
1758
|
? compactionStrategyRaw
|
|
1722
1759
|
: undefined;
|
|
1760
|
+
const softBudgetTriggerPercent = typeof loop.softBudgetTriggerPercent === "number" &&
|
|
1761
|
+
Number.isFinite(loop.softBudgetTriggerPercent) &&
|
|
1762
|
+
loop.softBudgetTriggerPercent >= 50 &&
|
|
1763
|
+
loop.softBudgetTriggerPercent <= 100
|
|
1764
|
+
? Math.floor(loop.softBudgetTriggerPercent)
|
|
1765
|
+
: undefined;
|
|
1766
|
+
const compactRecentMaxTokens = typeof loop.compactRecentMaxTokens === "number" &&
|
|
1767
|
+
Number.isFinite(loop.compactRecentMaxTokens) &&
|
|
1768
|
+
loop.compactRecentMaxTokens >= 2_000
|
|
1769
|
+
? Math.floor(loop.compactRecentMaxTokens)
|
|
1770
|
+
: undefined;
|
|
1771
|
+
const softBudgetPeelAttempts = typeof loop.softBudgetPeelAttempts === "number" &&
|
|
1772
|
+
Number.isFinite(loop.softBudgetPeelAttempts) &&
|
|
1773
|
+
loop.softBudgetPeelAttempts >= 0
|
|
1774
|
+
? Math.floor(loop.softBudgetPeelAttempts)
|
|
1775
|
+
: undefined;
|
|
1723
1776
|
const toolResultMaxInlineBytes = typeof loop.toolResultMaxInlineBytes === "number" &&
|
|
1724
1777
|
Number.isFinite(loop.toolResultMaxInlineBytes) &&
|
|
1725
1778
|
loop.toolResultMaxInlineBytes >= 0
|
|
@@ -2035,8 +2088,28 @@ export function createHostManager() {
|
|
|
2035
2088
|
...(toolOrder !== undefined ? { toolOrder } : {}),
|
|
2036
2089
|
...(toolSettle !== undefined ? { toolSettle } : {}),
|
|
2037
2090
|
...(llmRetryMaxRetries !== undefined ? { llmRetryMaxRetries } : {}),
|
|
2038
|
-
...(compactionStrategy !== undefined
|
|
2039
|
-
|
|
2091
|
+
...(compactionStrategy !== undefined ||
|
|
2092
|
+
softBudgetTriggerPercent !== undefined ||
|
|
2093
|
+
compactRecentMaxTokens !== undefined ||
|
|
2094
|
+
softBudgetPeelAttempts !== undefined
|
|
2095
|
+
? {
|
|
2096
|
+
compaction: {
|
|
2097
|
+
...(compactionStrategy !== undefined
|
|
2098
|
+
? { strategy: compactionStrategy }
|
|
2099
|
+
: {}),
|
|
2100
|
+
...(softBudgetTriggerPercent !== undefined
|
|
2101
|
+
? {
|
|
2102
|
+
softBudgetTriggerRatio: softBudgetTriggerPercent / 100,
|
|
2103
|
+
}
|
|
2104
|
+
: {}),
|
|
2105
|
+
...(compactRecentMaxTokens !== undefined
|
|
2106
|
+
? { compactRecentMaxTokens }
|
|
2107
|
+
: {}),
|
|
2108
|
+
...(softBudgetPeelAttempts !== undefined
|
|
2109
|
+
? { softBudgetPeelAttempts }
|
|
2110
|
+
: {}),
|
|
2111
|
+
},
|
|
2112
|
+
}
|
|
2040
2113
|
: {}),
|
|
2041
2114
|
...(toolResultMaxInlineBytes !== undefined
|
|
2042
2115
|
? { toolResultMaxInlineBytes }
|
|
@@ -2123,9 +2196,9 @@ export function createHostManager() {
|
|
|
2123
2196
|
}
|
|
2124
2197
|
}
|
|
2125
2198
|
});
|
|
2126
|
-
//
|
|
2127
|
-
//
|
|
2128
|
-
//
|
|
2199
|
+
// Summoning session id is for identity / workspace inject only.
|
|
2200
|
+
// Agent scopes stay siblings under the host root so one session's
|
|
2201
|
+
// dispose cannot abort another.
|
|
2129
2202
|
lineage.parentOf = (sessionId) => {
|
|
2130
2203
|
const link = faceRuntime.subagents.getByChild(sessionId);
|
|
2131
2204
|
if (!link || link.mode === "fork")
|
|
@@ -2162,7 +2235,7 @@ export function createHostManager() {
|
|
|
2162
2235
|
? auth.slice("Bearer ".length)
|
|
2163
2236
|
: undefined;
|
|
2164
2237
|
const key = bearer ?? (typeof headerKey === "string" ? headerKey : undefined);
|
|
2165
|
-
if (key
|
|
2238
|
+
if (timingSafeStringEqual(key, expected))
|
|
2166
2239
|
return true;
|
|
2167
2240
|
// DSH Web 同源不带 Authorization;本机回环放行。
|
|
2168
2241
|
return !key && isLoopbackAddress(r.socket.remoteAddress);
|