import { type Static, type TObject, type TProperties } from "@sinclair/typebox"; import { type EventOfTypeV3Base, type EventTypeV3Base, type EventV3Base, ObservationV3BaseSchema } from "./base-contract.js"; export declare const EVENT_V3_CONTRACT_NAME: "harnery.event"; export declare const EVENT_V3_CONTRACT_MAJOR: 3; export declare const EVENT_V3_SCHEMA_ID = "https://harnery.com/schemas/event-v3.schema.json"; export declare const ObservationV3Schema: typeof ObservationV3BaseSchema; export declare const OutcomeV3Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"succeeded">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"cancelled">, import("@sinclair/typebox").TLiteral<"timed_out">, import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"interrupted">, import("@sinclair/typebox").TLiteral<"unknown">]>; export declare const RecoveryV3Schema: TObject<{ reason: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"request_not_observed">, import("@sinclair/typebox").TLiteral<"completion_not_observed_before_turn_end">, import("@sinclair/typebox").TLiteral<"completion_not_observed_before_next_turn">, import("@sinclair/typebox").TLiteral<"span_cap_pressure">, import("@sinclair/typebox").TLiteral<"explicit_end_salvage">, import("@sinclair/typebox").TLiteral<"command_completion_not_observed">]>; requested_event_id: import("@sinclair/typebox").TOptional; elapsed_upper_bound_ms: import("@sinclair/typebox").TOptional; value: import("@sinclair/typebox").TInteger; attestation: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"native">, import("@sinclair/typebox").TLiteral<"derived">, import("@sinclair/typebox").TLiteral<"inferred">]>; confidence: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"exact">, import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"unsupported">; capability: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"expected_but_missing">; capability: import("@sinclair/typebox").TString; reason: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"redacted">; reason: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"unknown">; reason: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"not_applicable">; }>]>>; }>; declare const ContractV3Schema: TObject<{ name: import("@sinclair/typebox").TLiteral<"harnery.event">; major: import("@sinclair/typebox").TLiteral<3>; schema_digest: import("@sinclair/typebox").TString; }>; export declare const SpanSummaryV3Schema: TObject<{ span_id: import("@sinclair/typebox").TString; parent_span_id: import("@sinclair/typebox").TOptional; opened_at: import("@sinclair/typebox").TString; duration_ms: import("@sinclair/typebox").TUnion<[TObject<{ state: import("@sinclair/typebox").TLiteral<"observed">; value: import("@sinclair/typebox").TInteger; attestation: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"native">, import("@sinclair/typebox").TLiteral<"derived">, import("@sinclair/typebox").TLiteral<"inferred">]>; confidence: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"exact">, import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"unsupported">; capability: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"expected_but_missing">; capability: import("@sinclair/typebox").TString; reason: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"redacted">; reason: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"unknown">; reason: import("@sinclair/typebox").TString; }>, TObject<{ state: import("@sinclair/typebox").TLiteral<"not_applicable">; }>]>; open_event_id: import("@sinclair/typebox").TOptional; }>; export declare const TurnUsageV3Schema: TObject<{ input_tokens: import("@sinclair/typebox").TInteger; output_tokens: import("@sinclair/typebox").TInteger; cache_read_tokens: import("@sinclair/typebox").TOptional; cache_write_tokens: import("@sinclair/typebox").TOptional; method: import("@sinclair/typebox").TString; }>; export declare const TurnInferenceV3Schema: TObject<{ api_time_ms: import("@sinclair/typebox").TInteger; request_count: import("@sinclair/typebox").TInteger; }>; export declare const TurnHarnessV3Schema: TObject<{ hook_time_ms: import("@sinclair/typebox").TInteger; hook_count: import("@sinclair/typebox").TInteger; slowest_hook: import("@sinclair/typebox").TOptional; slowest_hook_ms: import("@sinclair/typebox").TOptional; }>; export declare const WaitKindV3Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"permission">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"decision">, import("@sinclair/typebox").TLiteral<"approval">, import("@sinclair/typebox").TLiteral<"scheduled">, import("@sinclair/typebox").TLiteral<"rate_limit">, import("@sinclair/typebox").TLiteral<"unknown">]>; export declare const SessionEndedV3Schema: TObject; export declare const TurnCompletedV3Schema: TObject; export declare const ToolCompletedV3Schema: TObject; export declare const CommandCompletedV3Schema: TObject; export declare const AgentCompletedV3Schema: TObject; export declare const AgentStartedV3Schema: TObject; export declare const WaitStartedV3Schema: TObject; export declare const WaitEndedV3Schema: TObject; export declare const HealthCapabilityDriftV3Schema: TObject; export declare const EventV3Schema: import("@sinclair/typebox").TUnion<[...(TObject | TObject<{ contract: TObject<{ name: import("@sinclair/typebox").TLiteral<"harnery.event">; major: import("@sinclair/typebox").TLiteral<3>; schema_digest: import("@sinclair/typebox").TString; }>; }>)[], TObject, TObject, TObject, TObject, TObject, TObject, TObject, TObject]>; export declare const EVENT_V3_CORE_EVENT_TYPES: readonly [...("session.started" | "session.ended" | "turn.started" | "turn.completed" | "agent.started" | "agent.completed" | "tool.requested" | "tool.completed" | "context.compaction_started" | "context.compaction_completed" | "ledger.genesis" | "ledger.activated" | "ledger.schema_advanced" | "ledger.comparability_advanced" | "session.attestation_changed" | "session.resumed" | "session.termination_observed" | "run.started" | "run.completed" | "command.started" | "command.output_observed" | "command.completed" | "context.observed" | "context.checkpointed" | "context.recovery_injected" | "agent.delegated" | "artifact.observed" | "progress.observed" | "coord.task_changed" | "coord.lifecycle_changed" | "coord.status_observed" | "coord.claim_changed" | "coord.presence_changed" | "coord.message_observed" | "coord.identity_attested" | "council.state_changed" | "decision.state_changed" | "lifecycle.recovered" | "lifecycle.sweep_observed" | "health.observed")[], "wait.started", "wait.ended", "health.capability_drift"]; export type EventTypeV3 = (typeof EVENT_V3_CORE_EVENT_TYPES)[number]; type ContractV3 = Static; type WithContractV3 = T extends object ? Omit & { contract: ContractV3; } : never; type ReplaceEventV3 = Omit>, "event_type" | "payload"> & { event_type: U; payload: P; }; type SpanSummaryValueV3 = Static; type SessionEndedEventV3 = ReplaceEventV3<"session.ended", "session.ended", EventOfTypeV3Base<"session.ended">["payload"] & { span: SpanSummaryValueV3; }>; type TurnCompletedEventV3 = ReplaceEventV3<"turn.completed", "turn.completed", EventOfTypeV3Base<"turn.completed">["payload"] & { span: SpanSummaryValueV3; usage: Static>>; inference: Static>>; harness: Static>>; }>; type ToolCompletedEventV3 = ReplaceEventV3<"tool.completed", "tool.completed", Omit["payload"], "duration_ms"> & { duration_ms: SpanSummaryValueV3["duration_ms"]; span: SpanSummaryValueV3; }>; type CommandCompletedEventV3 = ReplaceEventV3<"command.completed", "command.completed", Omit["payload"], "duration_ms"> & { duration_ms: SpanSummaryValueV3["duration_ms"]; span: SpanSummaryValueV3; }>; type AgentStartedEventV3 = Omit>, "links"> & { links: EventOfTypeV3Base<"agent.started">["links"] & { span_id: `span_${string}`; parent_span_id: `span_${string}`; }; }; type AgentCompletedEventV3 = ReplaceEventV3<"agent.completed", "agent.completed", EventOfTypeV3Base<"agent.completed">["payload"] & { span: SpanSummaryValueV3; }>; type WaitStartedEventV3 = ReplaceEventV3<"wait.started", "wait.started", { wait_id: string; kind: Static; authority_reference?: string; wake_at?: string; }>; type WaitEndedEventV3 = ReplaceEventV3<"wait.ended", "wait.ended", EventOfTypeV3Base<"wait.ended">["payload"] & { span: SpanSummaryValueV3; }>; type HealthCapabilityDriftEventV3 = ReplaceEventV3<"health.observed", "health.capability_drift", { signal: string; promised: "native" | "derived" | "conditional"; expected_count: number; observed_count: number; generation_ended: boolean; }>; export type EventOfTypeV3 = T extends "session.ended" ? SessionEndedEventV3 : T extends "turn.completed" ? TurnCompletedEventV3 : T extends "tool.completed" ? ToolCompletedEventV3 : T extends "command.completed" ? CommandCompletedEventV3 : T extends "agent.started" ? AgentStartedEventV3 : T extends "agent.completed" ? AgentCompletedEventV3 : T extends "wait.started" ? WaitStartedEventV3 : T extends "wait.ended" ? WaitEndedEventV3 : T extends "health.capability_drift" ? HealthCapabilityDriftEventV3 : T extends EventTypeV3Base ? WithContractV3> : never; /** * TypeBox cannot preserve the discriminated union through the generated * schema-branch spread above. Rebuild the static union from the authoritative * event-type map so producer and projection code retains event narrowing. */ type ReplacedEventTypeV3Base = "session.ended" | "turn.completed" | "tool.completed" | "command.completed" | "agent.started" | "agent.completed" | "wait.started" | "wait.ended"; type UnchangedEventV3 = WithContractV3>; export type EventV3 = UnchangedEventV3 | SessionEndedEventV3 | TurnCompletedEventV3 | ToolCompletedEventV3 | CommandCompletedEventV3 | AgentStartedEventV3 | AgentCompletedEventV3 | WaitStartedEventV3 | WaitEndedEventV3 | HealthCapabilityDriftEventV3; export type EventPayloadV3 = EventOfTypeV3["payload"]; export type SpanSummaryV3 = Static; export type TurnUsageV3 = Static; export type TurnInferenceV3 = Static; export type TurnHarnessV3 = Static; export type WaitKindV3 = Static; export type RuntimeAttestationV3 = EventPayloadV3<"session.started">["runtime_attestation"]; export {}; //# sourceMappingURL=contract.d.ts.map