import { Type, type Static } from "typebox"; export declare const LinkSchema: Type.TObject<{ url: Type.TString; note: Type.TOptional; }>; export declare const LineageSchema: Type.TObject<{ spec: Type.TString; reason: Type.TString; }>; export declare const OpenDecisionSchema: Type.TObject<{ id: Type.TString; question: Type.TString; tripwire: Type.TString; decides: Type.TString; }>; /** * An advisory a spec author has considered and accepted, with the reason a reviewer * reads. Modelled on the criterion amendment record: an act with a named authority * and a timestamp, never a silent flag. * * It cannot reach an error. Dispositioning an error would be exactly the blanket * suppression this field exists instead of. */ export declare const AdvisoryDispositionSchema: Type.TObject<{ /** The advisory finding code this accepts, for example touches-concentration. */ code: Type.TString; /** The specific subject the advisory named, so one reason cannot cover a whole class. */ target: Type.TString; reason: Type.TString; authority: Type.TString; at: Type.TString; }>; export declare const RefSchema: Type.TObject<{ path: Type.TString; lines: Type.TOptional; why: Type.TString; }>; /** The complete execution block in Workspec v2. No other keys are permitted. */ export declare const WorkerSchema: Type.TObject<{ profile: Type.TOptional; agent: Type.TOptional; skills: Type.TOptional>; model: Type.TOptional; }>; export declare const CommandExpectationSchema: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; export declare const CommandEvidenceSchema: Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>; export declare const AgentEvidenceSchema: Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>; export declare const UserEvidenceSchema: Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>; export declare const EvidenceSchema: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; export declare const CriterionAmendmentSchema: Type.TObject<{ criterion_id: Type.TString; before: Type.TString; after: Type.TString; reason: Type.TString; authority: Type.TString; at: Type.TString; }>; export declare const AcceptanceCriterionSchema: Type.TObject<{ id: Type.TString; statement: Type.TString; amendments: Type.TOptional>>; evidence: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; }>; /** The recursive runtime schema and its inferred recursive static type. */ export declare const WorkNodeSchema: Type.TCyclic<{ WorkNode: Type.TUnion<[Type.TObject<{ acceptance: Type.TArray>>; evidence: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; }>>; checklist: Type.TOptional; work: Type.TOptional; id: Type.TString; task: Type.TString; description: Type.TOptional; depends_on: Type.TOptional>; touches: Type.TOptional>; refs: Type.TOptional; why: Type.TString; }>>>; worker: Type.TOptional; agent: Type.TOptional; skills: Type.TOptional>; model: Type.TOptional; }>>; }>, Type.TObject<{ acceptance: Type.TArray>>; evidence: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; }>>; checklist: Type.TArray; work: Type.TOptional; id: Type.TString; task: Type.TString; description: Type.TOptional; depends_on: Type.TOptional>; touches: Type.TOptional>; refs: Type.TOptional; why: Type.TString; }>>>; worker: Type.TOptional; agent: Type.TOptional; skills: Type.TOptional>; model: Type.TOptional; }>>; }>, Type.TObject<{ checklist: Type.TOptional; work: Type.TArray>; id: Type.TString; task: Type.TString; description: Type.TOptional; depends_on: Type.TOptional>; touches: Type.TOptional>; refs: Type.TOptional; why: Type.TString; }>>>; worker: Type.TOptional; agent: Type.TOptional; skills: Type.TOptional>; model: Type.TOptional; }>>; acceptance: Type.TOptional>>; evidence: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; }>>>; }>]>; }, "WorkNode">; export type WorkNode = Static; export declare const WorkspecSchema: Type.TObject<{ title: Type.TString; description: Type.TString; intent: Type.TString; links: Type.TOptional; }>>>; corrects: Type.TOptional>>; supersedes: Type.TOptional>>; open_decisions: Type.TOptional>>; advisory_dispositions: Type.TOptional>>; work: Type.TArray>>; evidence: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; }>>; checklist: Type.TOptional; work: Type.TOptional; id: Type.TString; task: Type.TString; description: Type.TOptional; depends_on: Type.TOptional>; touches: Type.TOptional>; refs: Type.TOptional; why: Type.TString; }>>>; worker: Type.TOptional; agent: Type.TOptional; skills: Type.TOptional>; model: Type.TOptional; }>>; }>, Type.TObject<{ acceptance: Type.TArray>>; evidence: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; }>>; checklist: Type.TArray; work: Type.TOptional; id: Type.TString; task: Type.TString; description: Type.TOptional; depends_on: Type.TOptional>; touches: Type.TOptional>; refs: Type.TOptional; why: Type.TString; }>>>; worker: Type.TOptional; agent: Type.TOptional; skills: Type.TOptional>; model: Type.TOptional; }>>; }>, Type.TObject<{ checklist: Type.TOptional; work: Type.TArray>; id: Type.TString; task: Type.TString; description: Type.TOptional; depends_on: Type.TOptional>; touches: Type.TOptional>; refs: Type.TOptional; why: Type.TString; }>>>; worker: Type.TOptional; agent: Type.TOptional; skills: Type.TOptional>; model: Type.TOptional; }>>; acceptance: Type.TOptional>>; evidence: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"command">; run: Type.TString; inherit_env: Type.TOptional>; expect: Type.TObject<{ exit: Type.TInteger; output_includes: Type.TString; }>; timeout_ms: Type.TOptional; }>, Type.TObject<{ kind: Type.TLiteral<"agent">; agent: Type.TString; inputs: Type.TArray; rubric: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"user">; prompt: Type.TString; }>]>; }>>>; }>]>; }, "WorkNode">>; }>; export type Link = Static; export type Lineage = Static; export type OpenDecision = Static; export type AdvisoryDisposition = Static; export type Ref = Static; export type Worker = Static; export type CommandExpectation = Static; export type CommandEvidence = Static; export type AgentEvidence = Static; export type UserEvidence = Static; export type Evidence = Static; export type CriterionAmendment = Static; export type AcceptanceCriterion = Static; export type Workspec = Static; /** Keys of a union, rather than only keys common to every member. */ export type KeysOfUnion = T extends T ? keyof T : never; export type WorkNodeField = KeysOfUnion; /** A compile-time contract for downstream total projectors (issue #4). */ export type WorkNodeProjector = Record>;