@sema-agent/core
Version:
Stateless, task-oriented AI agent core
27 lines (26 loc) • 1.63 kB
TypeScript
import { type ArtifactCallContext, type ArtifactHost, type ArtifactHostCapabilities, type ArtifactPublishOutcome, type ArtifactPublishRequest, type ArtifactRef } from "../../core/artifact-host.js";
export declare const EVAL_STUB_URL_PREFIX = "eval-stub://artifact/";
export declare const LOCAL_STUB_MAX_FILE_BYTES: number;
export declare const LOCAL_STUB_MAX_TOTAL_BYTES: number;
export interface LocalArtifactStubOptions {
/** The storage directory. Required: the library never guesses a location on the host filesystem. Contract: it must
* lie OUTSIDE every root the run may write or read (the task root, `additionalDirectories`,
* `additionalReadDirectories`); the engine refuses to mount a stub whose store is inside one — a ledger the model
* can edit through the fs tools is not a trust boundary. */
dir: string;
}
export declare class LocalArtifactStub implements ArtifactHost {
#private;
readonly dir: string;
constructor(opts: LocalArtifactStubOptions);
capabilities(): ArtifactHostCapabilities;
onMount(runId: string): void;
/** The slugs a run may name through `url` (inspection; a copy). */
ownMinted(runId: string): ReadonlySet<string>;
publish(req: ArtifactPublishRequest, ctx: ArtifactCallContext): Promise<ArtifactPublishOutcome>;
/** The ledger rows (inspection for hosts and tests; a copy). */
rows(): ReadonlyArray<ArtifactRef>;
/** The published paths of one version (inspection). */
versionFiles(slug: string, version: number): string[];
}
export declare function localArtifactStub(opts: LocalArtifactStubOptions): LocalArtifactStub;