UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

29 lines (28 loc) • 1.66 kB
import { checkedAgentConfigDir } from "../agent-config-dir.js"; import { checkedMediaByteCap } from "../media-byte-cap.js"; import { receiptRefusal, receiveOwnProperties, refuseProxy } from "../own-property-receipt.js"; import { assertNoRetiredRunnerDeps } from "./retired-runner-deps.js"; import { copyReadDenySeat, READ_DENY_DEPLOYMENT_SEATS } from "../read-face-seats.js"; import { holdOwnCredentialValues } from "../secret-env.js"; export function retainRunnerDeps(deps) { const words = { subject: "RunnerDeps", unit: "seat", moment: "at new Runner" }; refuseProxy(deps, words); assertNoRetiredRunnerDeps(deps); const retained = receiveOwnProperties(deps, words); checkedAgentConfigDir(retained.agentConfigDir, "RunnerDeps.agentConfigDir"); checkedMediaByteCap(retained.mediaByteCapBytes, "RunnerDeps.mediaByteCapBytes"); for (const seat of READ_DENY_DEPLOYMENT_SEATS) { if (Object.hasOwn(retained, seat)) Object.defineProperty(retained, seat, { value: copyReadDenySeat(Reflect.get(retained, seat)), enumerable: true, writable: true, configurable: true }); } let consolidationKey; try { const chat = retained.memoryConsolidationDriver?.chat; consolidationKey = typeof chat === "object" && chat !== null ? Reflect.get(chat, "apiKey") : undefined; } catch { throw receiptRefusal("RunnerDeps.memoryConsolidationDriver.chat threw while its apiKey was read at new Runner — refused (the thrown value is not repeated)"); } holdOwnCredentialValues([typeof consolidationKey === "string" ? consolidationKey : undefined], retained.onNotice); return retained; }