@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
55 lines • 2.34 kB
TypeScript
import { z } from 'zod';
import type { Claim, Claimant, Decision, HandOff, Occurrence, Outcome } from '../policy/types.ts';
import { type Wire } from './policy.ts';
/** Decode one stateless approval result from the shared policy stream. */
export declare function approvalQuery<T>(query: Wire, result: z.ZodType<T>): T;
/** One existing record, with an invocation-local identity distinct from its public id. */
export declare function recordWire(record: Decision, key: number, rule: number | null, argv: readonly string[], cwd: string): Wire;
/** Mechanical identity transport for a synchronous Rust approval query. */
export declare class ApprovalSnapshot {
private readonly records;
private static readonly RESPONSE;
readonly recordObjects: Decision[];
readonly holderObjects: HandOff[];
readonly claimObjects: Claim[];
readonly occurrenceObjects: Occurrence[];
private readonly recordKeys;
private readonly holderKeys;
private readonly claimKeys;
private readonly occurrenceKeys;
private readonly live;
constructor(records?: readonly Decision[], live?: Iterable<HandOff>, roots?: readonly HandOff[]);
recordKey(record: Decision): number;
holderKey(holder: HandOff): number;
occurrenceKey(occurrence: Occurrence | null): number | null;
record(key: number): Decision;
holder(key: number): HandOff;
private originalClaim;
private recordsWire;
get wire(): Wire;
plan(recordRules: readonly number[], rules: readonly number[], argv: readonly string[], cwd: string, claimant: Claimant | null): {
answers: (Decision | null)[];
denied: number | null;
missing: number[];
once: Decision[];
waiting: (Decision | null)[];
claim: {
records: Decision[];
live: HandOff[];
} | null;
};
waiting(argv: readonly string[], cwd: string): Decision | null;
answer(id: string, outcome: Outcome): Decision | null;
claim(holder: HandOff, records: readonly Decision[]): {
records: Decision[];
live: HandOff[];
};
split(holder: HandOff, scope: Occurrence): Claim[];
handUp(holder: HandOff): {
parent: HandOff;
claims: Claim[];
live: HandOff[];
};
revoke(holder: HandOff): Decision[];
}
//# sourceMappingURL=approvals.d.ts.map