openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
116 lines (115 loc) • 5.29 kB
JavaScript
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 };