@sema-agent/core
Version:
Stateless, task-oriented AI agent core
27 lines (26 loc) • 1.53 kB
TypeScript
import type { TaskSpec } from "../types.js";
import type { WriteFamily } from "./turn-attachments.js";
import type { Prepared, RunState } from "./contracts.js";
export interface RunToolMountFactsInput {
/** borrowed-readonly — the task spec: the config overrides the manifest frame reports. */
spec: TaskSpec;
/** borrowed-mutable — the leg's prepared seat: `turnSnapshot.onChange` is installed; the roster, the model and the
* prompt manifest are read. */
prepared: Prepared;
/** borrowed-readonly — the run's mutable state: the attachment state's presence gates the mount facts; the
* telemetry is read for the frames. */
rs: RunState;
}
export interface RunToolMountFactsResult {
/** Whether TodoWrite is mounted (and the attachment state exists) — the todo reminder's gate. */
todoToolMounted: boolean;
/** Whether TaskCreate is mounted (and the attachment state exists) — the task reminder's gate. */
taskToolsMounted: boolean;
/** task #51 F2: the alias-aware write-family resolver (mounted name + aliases → canonical family). */
writeFamilyOf: (name: string) => WriteFamily | undefined;
/** Per tool-call id: the execution start time (for the tool_end duration). */
toolStartAt: Map<string, number>;
/** Every tool-call id whose start was observed this run and whose result has not been committed yet. */
startedToolCallIds: Set<string>;
}
export declare function runToolMountFacts(input: RunToolMountFactsInput): RunToolMountFactsResult;