/** * Constructs a {@link WorldModel} from runtime context. This is intentionally * pure / synchronous — async resolvers (DB lookups, IMDS, GitHub) populate * fields upstream and pass them in. The build function does the layout and * fills in the time block and policy defaults. * * The resolvers themselves live separately so they can be unit-tested without * pulling in this module's prompt-shape concerns. */ import { type CredentialEntry, type HeartbeatBlock, type SelfRuntime, type SessionBlock, type User, type UserResource, type WorldModel } from "./types.js"; export type BuildWorldModelInput = { koiId?: string; orgId?: string; plan?: string; model?: string; runtime?: SelfRuntime; user?: User; userResources?: UserResource[]; credentialsInScope?: CredentialEntry[]; session?: SessionBlock; heartbeat?: HeartbeatBlock; /** Override "now" for tests. */ nowMs?: number; }; /** * Build a world-model snapshot. Safe to call on every prompt-assembly pass — * the cost is one Date + a few Intl format calls. */ export declare function buildWorldModel(input: BuildWorldModelInput): WorldModel;