UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

116 lines (115 loc) • 5.29 kB
import { a as captureRuntimeStateEnvironment } from "./paths-FklbMVOH.mjs"; import { _ as resolveEffectiveAgentDir } from "./agent-scope-config-BU4qc9bA.mjs"; import "./agent-runtime-id-D81oHQZ0.mjs"; import { i as resolveLegacyInheritedAuthAgentId } from "./legacy-inherited-auth-dir-DjhhoIYi.mjs"; import { n as getRegisteredAgentHarness } from "./registry-DT4lh31t.mjs"; import { t as isCliProvider } from "./model-selection-cli-CcvQtbMp.mjs"; import { h as resolveSessionPinnedHarnessId } from "./agent-harness-session-key-B7mhXqKs.mjs"; import { s as resolveCliRuntimeExecutionProvider } from "./model-runtime-aliases-CudQPq--.mjs"; import { i as resolveSessionRuntimeOverrideForProvider } from "./session-runtime-compat-DTppZ784.mjs"; import { a as resolveEffectiveAgentRuntime } from "./thinking-runtime-l52KMIQv.mjs"; import { s as resolveGatewaySessionStoreTargetWithStore, t as createGatewaySessionEntryReader } from "./session-utils-store-lookup-66QGnJ43.mjs"; import { t as resolveSessionSelectedModelRef } from "./session-utils-model-selection-B0IMvuAv.mjs"; //#region src/gateway/worker-environments/placement-capabilities.ts /** Returns the bounded placement contract declared by one active agent runtime. */ function resolveWorkerPlacementCapabilities(runtime) { const runtimeId = runtime.trim(); if (runtimeId === "openclaw") return { executionMode: "worker-turn", devicePlacement: { requiredNodeCommands: [], consumesWorkerSlot: true } }; const placement = getRegisteredAgentHarness(runtimeId)?.harness.cloudPlacement; if (!placement) return {}; const requirement = placement.devicePlacement; if (!requirement) return { executionMode: placement.mode }; const requiredNodeCommands = [...new Set(requirement.requiredNodeCommands)].toSorted(); if (requiredNodeCommands.length > 32 || requiredNodeCommands.some((command) => command.length === 0 || command.length > 128 || command.trim() !== command)) return { executionMode: placement.mode }; return { executionMode: placement.mode, devicePlacement: { requiredNodeCommands, consumesWorkerSlot: requirement.consumesWorkerSlot } }; } //#endregion //#region src/gateway/worker-environments/placement-session-runtime.ts function resolveWorkerPlacementSessionRuntime(params) { const { provider, model } = resolveSessionSelectedModelRef({ ...params, source: { entry: params.entry, readSourceEntry: (key) => { const target = resolveGatewaySessionStoreTargetWithStore({ ...params, key: params.sessionKey, clone: false, readOnly: true, exactRead: true }); return createGatewaySessionEntryReader({ ...target, cfg: params.cfg })(key); } } }); return resolveWorkerPlacementModelRuntime({ ...params, provider, model }); } function resolveWorkerPlacementModelRuntime(params) { const sessionRuntimeOverride = resolveSessionRuntimeOverrideForProvider(params); const pinnedHarnessId = resolveSessionPinnedHarnessId(params.entry); const pinnedCliRuntime = !(pinnedHarnessId !== void 0 && pinnedHarnessId === sessionRuntimeOverride) && sessionRuntimeOverride && isCliProvider(sessionRuntimeOverride, params.cfg, params.metadataSnapshot) ? sessionRuntimeOverride : void 0; const cliExecutionProvider = pinnedCliRuntime ?? (sessionRuntimeOverride ? void 0 : resolveCliRuntimeExecutionProvider({ ...params, modelId: params.model, authProfileId: params.entry.authProfileOverride, preparedAuthDirectories: { env: params.preparedEnvironment ?? captureRuntimeStateEnvironment(), get agentDir() { return resolveEffectiveAgentDir(params.cfg, params.agentId, { env: this.env }); }, get inheritedAuthDir() { return resolveEffectiveAgentDir(params.cfg, resolveLegacyInheritedAuthAgentId(params.cfg), { env: this.env }); } } })); return pinnedCliRuntime !== void 0 || !sessionRuntimeOverride && isCliProvider(cliExecutionProvider ?? params.provider, params.cfg, params.metadataSnapshot) ? cliExecutionProvider ?? params.provider : resolveEffectiveAgentRuntime({ cfg: params.cfg, provider: params.provider, modelId: params.model, agentScope: { kind: "prepared", agentId: params.agentId }, sessionKey: params.sessionKey, sessionEntry: params.entry }); } function resolveWorkerPlacementExecutionMode(runtime) { return resolveWorkerPlacementCapabilities(runtime).executionMode; } function resolveWorkerPlacementSessionRuntimeCapabilities(params) { return resolveWorkerPlacementCapabilities(resolveWorkerPlacementSessionRuntime(params)); } function projectWorkerPlacementAgentRuntime(runtime) { const { source, ...identity } = runtime; const { executionMode, devicePlacement } = resolveWorkerPlacementCapabilities(runtime.id); return { ...identity, cloudPlacementSupported: executionMode !== void 0, ...executionMode ? { cloudPlacementExecutionMode: executionMode } : {}, ...devicePlacement ? { devicePlacement } : {}, devicePlacementSupported: devicePlacement !== void 0, source }; } //#endregion export { resolveWorkerPlacementSessionRuntimeCapabilities as a, resolveWorkerPlacementSessionRuntime as i, resolveWorkerPlacementExecutionMode as n, resolveWorkerPlacementCapabilities as o, resolveWorkerPlacementModelRuntime as r, projectWorkerPlacementAgentRuntime as t };