@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
44 lines • 2.41 kB
JavaScript
import { normalizeExposedPort } from "../../session.mjs";
import { isRecord, isStringRecord, readOptionalNumberArray, readOptionalString, readString, } from "../../shared/typeGuards.mjs";
import { rehydrateLocalSnapshotSpec } from "./localSnapshots.mjs";
import { deserializeHostPathGrantRedactionMetadata, deserializeManifest, deserializeMountCredentialRedactionMetadata, } from "./manifestPersistence.mjs";
import { rehydratePersistedEnvironmentForRuntime } from "../../shared/environment.mjs";
export async function deserializeLocalSandboxSessionStateValues(state, configuredSnapshot) {
const manifest = deserializeManifest(state.manifest);
const persistedEnvironment = readEnvironmentState(state.environment);
const runtimeEnvironment = Object.fromEntries(Object.entries(persistedEnvironment).filter(([key]) => !(key in manifest.environment)));
return {
manifest,
workspaceRootPath: readString(state, 'workspaceRootPath'),
workspaceRootOwned: Boolean(state.workspaceRootOwned),
environment: {
...runtimeEnvironment,
...(await rehydratePersistedEnvironmentForRuntime(manifest, persistedEnvironment)),
},
snapshotSpec: rehydrateLocalSnapshotSpec(state.snapshotSpec, configuredSnapshot),
snapshot: state.snapshot ?? null,
snapshotFingerprint: readOptionalString(state, 'snapshotFingerprint') ??
readOptionalString(state, 'snapshot_fingerprint') ??
null,
snapshotFingerprintVersion: readOptionalString(state, 'snapshotFingerprintVersion') ??
readOptionalString(state, 'snapshot_fingerprint_version') ??
null,
configuredExposedPorts: normalizeExposedPorts(readOptionalNumberArray(state.configuredExposedPorts)),
exposedPorts: readExposedPortsState(state),
...deserializeHostPathGrantRedactionMetadata(state),
...deserializeMountCredentialRedactionMetadata(state),
};
}
export function readExposedPortsState(state) {
const exposedPorts = state.exposedPorts;
return isRecord(exposedPorts)
? exposedPorts
: undefined;
}
export function normalizeExposedPorts(ports) {
return [...new Set((ports ?? []).map((port) => normalizeExposedPort(port)))];
}
function readEnvironmentState(value) {
return isStringRecord(value) ? { ...value } : {};
}
//# sourceMappingURL=sessionStateValues.mjs.map