@sema-agent/core
Version:
Stateless, task-oriented AI agent core
12 lines (11 loc) • 1.21 kB
TypeScript
import type { RunnerDeps } from "../types.js";
/** The retired-seat door ({@link assertNoRetiredRunnerDeps}) looks at the caller's own object, where a retired name may sit on
* the prototype or as a non-enumerable property. Then the deps must be a PLAIN object (prototype `Object.prototype` or none):
* every seat is read once as an OWN property — enumerable or not, a getter invoked once — into a copy of enumerable data
* properties, the object the engine keeps and spreads from; the caller's getters are never read again, and a seat a prototype
* would supply is never read, so an object with another prototype is refused rather than wired without that seat. The seats
* whose VALUE is screened at construction and never again are judged on the copy: the declared configuration root must be the
* absolute path of an existing directory — a root that names no directory guards nothing, so it is refused rather than read as
* absent; the media budget must be a non-negative number of bytes — a bad value is refused rather than read as "no budget" by
* the request strip and the `tool_end.output` projection. */
export declare function retainRunnerDeps(deps: RunnerDeps): RunnerDeps;