@humain/humain-code-contracts 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/README.md +92 -0
- package/dist/index.d.ts +224 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +218 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestration.d.ts +327 -0
- package/dist/orchestration.d.ts.map +1 -0
- package/dist/orchestration.js +307 -0
- package/dist/orchestration.js.map +1 -0
- package/dist/rpc.d.ts +63 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +147 -0
- package/dist/rpc.js.map +1 -0
- package/dist/subagent-progress.d.ts +106 -0
- package/dist/subagent-progress.d.ts.map +1 -0
- package/dist/subagent-progress.js +440 -0
- package/dist/subagent-progress.js.map +1 -0
- package/dist/testing.d.ts +390 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +431 -0
- package/dist/testing.js.map +1 -0
- package/dist/trace-api.d.ts +293 -0
- package/dist/trace-api.d.ts.map +1 -0
- package/dist/trace-api.js +202 -0
- package/dist/trace-api.js.map +1 -0
- package/dist/trace-artifact.d.ts +94 -0
- package/dist/trace-artifact.d.ts.map +1 -0
- package/dist/trace-artifact.js +168 -0
- package/dist/trace-artifact.js.map +1 -0
- package/dist/trace-canonical.d.ts +23 -0
- package/dist/trace-canonical.d.ts.map +1 -0
- package/dist/trace-canonical.js +240 -0
- package/dist/trace-canonical.js.map +1 -0
- package/dist/trace-export.d.ts +94 -0
- package/dist/trace-export.d.ts.map +1 -0
- package/dist/trace-export.js +374 -0
- package/dist/trace-export.js.map +1 -0
- package/dist/trace-http.d.ts +1294 -0
- package/dist/trace-http.d.ts.map +1 -0
- package/dist/trace-http.js +1481 -0
- package/dist/trace-http.js.map +1 -0
- package/dist/trace-payload.d.ts +425 -0
- package/dist/trace-payload.d.ts.map +1 -0
- package/dist/trace-payload.js +1519 -0
- package/dist/trace-payload.js.map +1 -0
- package/dist/trace.d.ts +257 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +1014 -0
- package/dist/trace.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-payload.js","sourceRoot":"","sources":["../src/trace-payload.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Static, type TSchema, Type } from \"typebox\";\nimport {\n\tDH_COVERAGE_REASONS,\n\tDH_COVERAGE_STATES,\n\tDH_EVENT_KINDS,\n\tDH_OUTCOMES,\n\tDhAgentIdSchema,\n\tDhArtifactIdSchema,\n\ttype DhArtifactV1,\n\tDhAttemptIdSchema,\n\tDhEventIdSchema,\n\ttype DhEventKind,\n\ttype DhEventV1,\n\ttype DhTerminalOwnership,\n\tresolveDhEffectiveTerminals,\n} from \"./trace.ts\";\nimport { DhContractError } from \"./trace-canonical.ts\";\nimport { DH_CONTROL_ACTIONS, DH_CONTROL_REJECT_REASONS, DH_CONTROL_STATES, dhStrictDtoParser } from \"./trace-http.ts\";\n\n/*\n * C0 typed payload contracts. `payload.schema` carries a `dh.payload.<name>/1` id; the registry maps\n * (event kind, payload schema id) to a strict parser. The event envelope stays `dh.event/1`: payloads\n * remain JSON objects bounded by assertJsonPayload, and these parsers only tighten them.\n *\n * Rules\n * - Event kinds that existed before this freeze (DH_LEGACY_FREEFORM_PAYLOAD_KINDS) may still carry a\n * legacy freeform payload WITHOUT `schema`, so current CLI/Flow producer output stays valid. If such a\n * payload has `schema`, it must be a registered id for that kind (no typo can masquerade as legacy).\n * - Kinds added by this freeze (DH_PAYLOAD_REQUIRED_KINDS) have no legacy shape: `schema` is required.\n * - Field names already emitted by the CLI (callId, toolName, stopReason, nonTextBlockCount, childAgentId,\n * spawnedByEventId, nextAttemptNumber, delayMs, ...) keep their spelling.\n * - Coverage and loss stay in the envelope `fields`; payload schemas never duplicate them, they only\n * require that an absent value has explicit loss coverage.\n * - Raw file paths never appear in typed payloads: a file is referenced by artifact.\n * - This module is loaded through the trace.ts <-> trace-http.ts import cycle: NOTHING here reads an\n * imported value at module top level. Schemas and parsers are built lazily on first use.\n */\n\nexport const DH_PAYLOAD_SCHEMA_IDS = Object.freeze({\n\tagentRelation: \"dh.payload.agent-relation/1\",\n\tagentSpawn: \"dh.payload.agent-spawn/1\",\n\tamendment: \"dh.payload.amendment/1\",\n\tattemptLifecycle: \"dh.payload.attempt-lifecycle/1\",\n\tcaptureHealth: \"dh.payload.capture-health/1\",\n\tcontinuationDecision: \"dh.payload.continuation-decision/1\",\n\tcontrolCorrelation: \"dh.payload.control-correlation/1\",\n\tfileEvidence: \"dh.payload.file-evidence/1\",\n\tflowDecision: \"dh.payload.flow-decision/1\",\n\tlocalCancellation: \"dh.payload.local-cancellation/1\",\n\tmodelResponse: \"dh.payload.model-response/1\",\n\tmodelSubmission: \"dh.payload.model-submission/1\",\n\ttoolCall: \"dh.payload.tool-call/1\",\n\ttoolResult: \"dh.payload.tool-result/1\",\n\tusage: \"dh.payload.usage/1\",\n} as const);\nexport type DhPayloadSchemaId = (typeof DH_PAYLOAD_SCHEMA_IDS)[keyof typeof DH_PAYLOAD_SCHEMA_IDS];\n\n/** Kinds that existed before typed payloads. They may keep a freeform payload without `schema`. */\nexport const DH_LEGACY_FREEFORM_PAYLOAD_KINDS: readonly DhEventKind[] = Object.freeze([\n\t\"generation.started\",\n\t\"generation.finished\",\n\t\"agent.spawned\",\n\t\"attempt.started\",\n\t\"attempt.finished\",\n\t\"attempt.retry_scheduled\",\n\t\"model.request\",\n\t\"model.response\",\n\t\"tool.call\",\n\t\"tool.result\",\n\t\"file.change\",\n\t\"orchestration.decision\",\n\t\"cancellation.requested\",\n\t\"cancellation.outcome\",\n\t\"usage.reported\",\n]);\n\n/** Kinds introduced with typed payloads; `payload.schema` is mandatory. */\nexport const DH_PAYLOAD_REQUIRED_KINDS: readonly DhEventKind[] = Object.freeze([\n\t\"capture.health\",\n\t\"control.correlation\",\n\t\"event.amendment\",\n]);\n\n/**\n * Continuation decisions recorded on `orchestration.decision` (dh.payload.continuation-decision/1).\n * `consumed` is the only consumption event type: a control `continue` is `applied` only when the addressed\n * target recorded `continuation.consumed` for that request (admitted, pending and rejected are not consumption).\n */\nexport const DH_CONTINUATION_DECISIONS = [\n\t\"continuation.pending\",\n\t\"continuation.admitted\",\n\t\"continuation.rejected\",\n\t\"continuation.consumed\",\n] as const;\nexport type DhContinuationDecision = (typeof DH_CONTINUATION_DECISIONS)[number];\n\n/** Delivery channel of a continuation. `queue-steering` is never a live continuation of a running child. */\nexport const DH_CONTINUATION_CHANNELS = [\n\t\"live-child\",\n\t\"native-descendant\",\n\t\"run-root\",\n\t\"queue-steering\",\n\t\"internal\",\n] as const;\nexport type DhContinuationChannel = (typeof DH_CONTINUATION_CHANNELS)[number];\n\n/** Named observations from the existing local process-cancellation seam; never arbitrary diagnostic text. */\nexport const DH_LOCAL_CANCELLATION_DIAGNOSTICS = [\n\t\"cancelled_before_spawn\",\n\t\"logical_cancellation_observed\",\n\t\"process_closed_after_signal\",\n] as const;\nexport type DhLocalCancellationDiagnostic = (typeof DH_LOCAL_CANCELLATION_DIAGNOSTICS)[number];\n\nconst IDS = DH_PAYLOAD_SCHEMA_IDS;\n/** Which event kinds each payload schema id may appear on. */\nconst REGISTRATIONS: readonly { readonly id: DhPayloadSchemaId; readonly kinds: readonly DhEventKind[] }[] = [\n\t{ id: IDS.modelSubmission, kinds: [\"model.request\"] },\n\t{ id: IDS.modelResponse, kinds: [\"model.response\"] },\n\t{ id: IDS.toolCall, kinds: [\"tool.call\"] },\n\t{ id: IDS.toolResult, kinds: [\"tool.result\"] },\n\t{ id: IDS.fileEvidence, kinds: [\"file.change\"] },\n\t{ id: IDS.agentSpawn, kinds: [\"agent.spawned\"] },\n\t{ id: IDS.agentRelation, kinds: [\"agent.spawned\"] },\n\t{ id: IDS.attemptLifecycle, kinds: [\"attempt.started\", \"attempt.finished\", \"attempt.retry_scheduled\"] },\n\t{ id: IDS.flowDecision, kinds: [\"orchestration.decision\"] },\n\t{ id: IDS.continuationDecision, kinds: [\"orchestration.decision\"] },\n\t{ id: IDS.usage, kinds: [\"usage.reported\"] },\n\t{ id: IDS.captureHealth, kinds: [\"capture.health\"] },\n\t{ id: IDS.controlCorrelation, kinds: [\"control.correlation\", \"cancellation.requested\", \"cancellation.outcome\"] },\n\t{ id: IDS.localCancellation, kinds: [\"cancellation.requested\", \"cancellation.outcome\"] },\n\t{ id: IDS.amendment, kinds: [\"event.amendment\"] },\n];\n\n/** Payload schema ids accepted on a kind (empty for kinds that only carry legacy freeform payloads). */\nexport function dhPayloadSchemaIdsForKind(kind: DhEventKind): readonly DhPayloadSchemaId[] {\n\treturn REGISTRATIONS.filter((entry) => entry.kinds.includes(kind)).map((entry) => entry.id);\n}\n\n// ---------------------------------------------------------------------------\n// Shared schema pieces (only `typebox` values at top level; everything else is lazy)\n// ---------------------------------------------------------------------------\n\nconst strict = <const T extends Parameters<typeof Type.Object>[0]>(properties: T) =>\n\tType.Object(properties, { additionalProperties: false });\nconst count = Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER });\nconst positive = Type.Integer({ minimum: 1, maximum: Number.MAX_SAFE_INTEGER });\nconst digest = Type.String({ pattern: \"^[a-f0-9]{64}$\" });\nconst text = Type.String({ minLength: 1, maxLength: 256 });\n/** Opaque producer-side identifier (request, submission, call, logical task). */\nconst ident = Type.String({ minLength: 1, maxLength: 128, pattern: \"^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$\" });\nconst code = Type.String({ pattern: \"^[a-z][a-z0-9_.-]{0,63}$\", maxLength: 64 });\nconst revision = Type.String({ pattern: \"^[a-f0-9]{40}(?:[a-f0-9]{24})?$\" });\nconst requestId = Type.String({ pattern: \"^ctl_[A-Za-z0-9_-]{8,128}$\", maxLength: 132 });\nconst FIELD_PATH = \"^[A-Za-z][A-Za-z0-9_-]*(?:\\\\.[A-Za-z0-9_-]+)*$\";\nconst FORBIDDEN_SEGMENTS: ReadonlySet<string> = new Set([\"__proto__\", \"constructor\", \"prototype\"]);\nconst LOSS_STATES: ReadonlySet<string> = new Set([\"unavailable\", \"redacted\", \"truncated\"]);\nconst MAX_LIST = 64;\n\nconst artifactRef = () => strict({ artifactId: DhArtifactIdSchema, sha256: digest, sizeBytes: Type.Optional(count) });\n\nconst coverageGap = () =>\n\tstrict({\n\t\tpath: Type.String({ minLength: 1, maxLength: 256, pattern: FIELD_PATH }),\n\t\tstate: Type.Enum(DH_COVERAGE_STATES),\n\t\treason: Type.Optional(Type.Enum(DH_COVERAGE_REASONS)),\n\t});\n\nconst usageOrigin = () =>\n\tType.Union([\n\t\tstrict({ owner: Type.Literal(\"submission\"), submissionId: ident }),\n\t\tstrict({ owner: Type.Literal(\"attempt\"), attemptId: DhAttemptIdSchema }),\n\t\tstrict({ owner: Type.Literal(\"flow-aggregate\"), inclusive: Type.Literal(true) }),\n\t]);\n\n/** Unknown is explicit (`state: unknown`); an absent count is unknown, never zero; price is known-with-provenance or unknown. */\nconst measurement = () =>\n\tType.Union([\n\t\tstrict({ state: Type.Literal(\"unknown\") }),\n\t\tstrict({\n\t\t\tstate: Type.Literal(\"reported\"),\n\t\t\tinput: Type.Optional(count),\n\t\t\toutput: Type.Optional(count),\n\t\t\tcacheRead: Type.Optional(count),\n\t\t\tcacheWrite: Type.Optional(count),\n\t\t\treasoning: Type.Optional(count),\n\t\t\ttotalTokens: Type.Optional(count),\n\t\t\tdurationMs: Type.Optional(count),\n\t\t\tcost: Type.Union([\n\t\t\t\tstrict({ state: Type.Literal(\"unknown\") }),\n\t\t\t\tstrict({\n\t\t\t\t\tstate: Type.Literal(\"known\"),\n\t\t\t\t\tamount: Type.Number({ minimum: 0 }),\n\t\t\t\t\tcurrency: Type.String({ pattern: \"^[A-Z]{3}$\" }),\n\t\t\t\t\tpriceProvenance: text,\n\t\t\t\t}),\n\t\t\t]),\n\t\t}),\n\t]);\n\nconst snapshot = () =>\n\tType.Union([\n\t\tstrict({ state: Type.Literal(\"observed\"), sha256: digest, sizeBytes: count }),\n\t\tstrict({\n\t\t\tstate: Type.Literal(\"unavailable\"),\n\t\t\treason: Type.Enum([\"missing\", \"denied\", \"oversized\", \"binary\", \"unsupported\", \"read-failed\"] as const),\n\t\t}),\n\t]);\n\n// ---------------------------------------------------------------------------\n// Check helpers\n// ---------------------------------------------------------------------------\n\nfunction bad(id: string, reason: string): never {\n\tthrow new DhContractError(\"schema_invalid\", `Invalid ${id}: ${reason}`);\n}\n\nfunction listed(event: DhEventV1, artifactId: string): boolean {\n\treturn (event.artifacts ?? []).includes(artifactId);\n}\n\nfunction assertListed(id: string, event: DhEventV1, artifactId: string): void {\n\tif (!listed(event, artifactId)) bad(id, \"artifact is not listed in event artifacts\");\n}\n\nfunction assertLossCovered(id: string, event: DhEventV1, path: string): void {\n\tconst coverage = event.fields[path];\n\tif (coverage === undefined || !LOSS_STATES.has(coverage.state)) {\n\t\tbad(id, \"absent field requires unavailable, redacted or truncated coverage\");\n\t}\n}\n\nfunction assertEventAttempt(id: string, event: DhEventV1, attemptId: string): void {\n\tif (event.attemptId === undefined) bad(id, \"attemptId is required on the event\");\n\tif (event.attemptId !== attemptId) bad(id, \"attemptId does not match the event attemptId\");\n}\n\nfunction assertGaps(id: string, gaps: readonly { path: string; state: string; reason?: string }[]): void {\n\tfor (const gap of gaps) {\n\t\tif (gap.state === \"captured\" || gap.reason === undefined) {\n\t\t\tbad(id, \"coverage entries must describe a loss state and give a reason\");\n\t\t}\n\t\tif (gap.path.split(\".\").some((segment) => FORBIDDEN_SEGMENTS.has(segment))) {\n\t\t\tbad(id, \"coverage path is not a valid field path\");\n\t\t}\n\t}\n}\n\ntype Measurement = Static<ReturnType<typeof measurement>>;\nfunction assertMeasurement(id: string, value: Measurement): void {\n\tif (value.state !== \"reported\") return;\n\tconst tokens = [value.input, value.output, value.cacheRead, value.cacheWrite, value.reasoning, value.totalTokens];\n\tif (tokens.every((token) => token === undefined) && value.cost.state !== \"known\") {\n\t\tbad(id, \"measurement reports no token count and no known cost; use state unknown\");\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Parsers\n// ---------------------------------------------------------------------------\n\ninterface PayloadParser {\n\treadonly check: (event: DhEventV1) => void;\n}\n\n/**\n * `semantic` sees the payload only; `envelope` also sees the event envelope. Both run after the shared\n * strict DTO parser (plain-JSON wire gate, schema check, clone, re-check).\n */\nfunction define<T extends TSchema>(\n\tid: string,\n\tschema: () => T,\n\tsemantic: ((payload: Static<T>) => void) | undefined,\n\tenvelope: ((payload: Static<T>, event: DhEventV1) => void) | undefined,\n): PayloadParser {\n\tconst parse = dhStrictDtoParser(id, schema, semantic);\n\treturn {\n\t\tcheck: (event) => {\n\t\t\tconst payload = parse(event.payload);\n\t\t\tenvelope?.(payload, event);\n\t\t},\n\t};\n}\n\n// -- model submission / response ---------------------------------------------------------------\n\nfunction modelSubmissionSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.modelSubmission),\n\t\trequestId: ident,\n\t\tsubmissionId: ident,\n\t\tattemptId: DhAttemptIdSchema,\n\t\ttransportRetryIndex: Type.Integer({ minimum: 0, maximum: 1000 }),\n\t\tprovider: text,\n\t\tapi: text,\n\t\tmodel: text,\n\t\toperation: Type.Enum([\"chat\", \"image\", \"classifier\", \"auxiliary\"] as const),\n\t\tpurpose: Type.Optional(Type.Enum([\"chat\", \"compaction\", \"branch-summary\", \"cache-warming\"] as const)),\n\t\ttransport: Type.Enum([\"http\", \"websocket\"] as const),\n\t\trepresentation: Type.Enum([\"json-body\", \"json-frame\"] as const),\n\t\tadapterVersion: Type.Optional(text),\n\t\trequestArtifact: Type.Optional(artifactRef()),\n\t});\n}\nexport type DhModelSubmissionPayload = Static<ReturnType<typeof modelSubmissionSchema>>;\n\nfunction modelResponseSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.modelResponse),\n\t\tsubmissionId: ident,\n\t\tattemptId: DhAttemptIdSchema,\n\t\tstopReason: Type.Enum([\"pending\", \"stop\", \"length\", \"toolUse\", \"error\", \"aborted\", \"deferred\"] as const),\n\t\tprovider: Type.Optional(text),\n\t\tapi: Type.Optional(text),\n\t\tmodel: Type.Optional(text),\n\t\tresponseModel: Type.Optional(text),\n\t\ttoolCallCount: Type.Optional(count),\n\t\ttext: Type.Optional(Type.String({ maxLength: 65536 })),\n\t\treasoning: Type.Optional(Type.String({ maxLength: 65536 })),\n\t\terrorMessage: Type.Optional(Type.String({ maxLength: 4096 })),\n\t\tresponseArtifact: Type.Optional(artifactRef()),\n\t\tusage: Type.Optional(strict({ origin: usageOrigin(), measurement: measurement() })),\n\t});\n}\nexport type DhModelResponsePayload = Static<ReturnType<typeof modelResponseSchema>>;\n\n// -- tool calls --------------------------------------------------------------------------------\n\n/**\n * The typed call carries no free `arguments` object: the shared DTO parser scans every nested key for\n * instant-named fields (`startedAt`, `occurredAt`, ...), so arbitrary tool arguments would be rejected on a\n * name collision. Arguments travel as a bounded redacted JSON-text preview and/or a complete artifact; a\n * truncated preview is marked in the envelope `fields` at `payload.argumentsPreview`.\n */\nfunction toolCallSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.toolCall),\n\t\tcallId: ident,\n\t\ttoolName: text,\n\t\targumentsPreview: Type.Optional(Type.String({ maxLength: 4096 })),\n\t\targumentsArtifact: Type.Optional(artifactRef()),\n\t\t/** Provenance of a nested call: the enclosing call's id and (when recorded) its tool.call event. */\n\t\tparentCallId: Type.Optional(ident),\n\t\tparentEventId: Type.Optional(DhEventIdSchema),\n\t});\n}\nexport type DhToolCallPayload = Static<ReturnType<typeof toolCallSchema>>;\n\n// -- tool results ------------------------------------------------------------------------------\n\nfunction toolResultSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.toolResult),\n\t\tcallId: ident,\n\t\ttoolName: text,\n\t\tstage: Type.Enum([\"original\", \"final\"] as const),\n\t\tsource: Type.Enum([\"executed\", \"blocked\", \"synthetic\"] as const),\n\t\tisError: Type.Boolean(),\n\t\tmodified: Type.Optional(Type.Boolean()),\n\t\toriginalResultEventId: Type.Optional(DhEventIdSchema),\n\t\tparentCallId: Type.Optional(ident),\n\t\toutput: Type.Optional(Type.String({ maxLength: 65536 })),\n\t\toutputArtifact: Type.Optional(artifactRef()),\n\t\tnonTextBlockCount: count,\n\t\tnonTextArtifacts: Type.Optional(Type.Array(artifactRef(), { maxItems: MAX_LIST })),\n\t\tchildAgentId: Type.Optional(DhAgentIdSchema),\n\t\tchildAgentIds: Type.Optional(Type.Array(DhAgentIdSchema, { maxItems: MAX_LIST, uniqueItems: true })),\n\t});\n}\nexport type DhToolResultPayload = Static<ReturnType<typeof toolResultSchema>>;\n\n// -- file evidence -----------------------------------------------------------------------------\n\nfunction fileEvidenceSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.fileEvidence),\n\t\tcallId: ident,\n\t\ttoolName: text,\n\t\toperation: Type.Enum([\"write\", \"edit\", \"delete\"] as const),\n\t\toutcome: Type.Enum([\"succeeded\", \"failed\", \"cancelled\"] as const),\n\t\tintent: strict({\n\t\t\tcontentSha256: Type.Optional(digest),\n\t\t\tcontentBytes: Type.Optional(count),\n\t\t\tpatchSha256: Type.Optional(digest),\n\t\t}),\n\t\tobserved: strict({ before: snapshot(), after: snapshot(), effectObserved: Type.Boolean() }),\n\t\tpathRef: artifactRef(),\n\t\tevidence: Type.Optional(\n\t\t\tType.Array(\n\t\t\t\tstrict({\n\t\t\t\t\tartifactId: DhArtifactIdSchema,\n\t\t\t\t\tsha256: digest,\n\t\t\t\t\tsizeBytes: Type.Optional(count),\n\t\t\t\t\trole: Type.Enum([\"diff\", \"snapshot\"] as const),\n\t\t\t\t}),\n\t\t\t\t{ maxItems: 8 },\n\t\t\t),\n\t\t),\n\t\tworktree: Type.Optional(\n\t\t\tstrict({\n\t\t\t\tmode: Type.Enum([\"shared\", \"isolated\", \"degraded-to-shared\"] as const),\n\t\t\t\tbaseRevision: Type.Optional(revision),\n\t\t\t\tendRevision: Type.Optional(revision),\n\t\t\t\tbaseObserved: Type.Boolean(),\n\t\t\t}),\n\t\t),\n\t});\n}\nexport type DhFileEvidencePayload = Static<ReturnType<typeof fileEvidenceSchema>>;\n\n// -- lifecycle ---------------------------------------------------------------------------------\n\nfunction agentSpawnSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.agentSpawn),\n\t\tvia: Type.Enum([\"subagent\", \"flow\"] as const),\n\t\tspawnedByEventId: Type.Optional(DhEventIdSchema),\n\t\tlaunchedByToolCallEventId: Type.Optional(DhEventIdSchema),\n\t\tcommand: Type.Optional(strict({ name: text, decisionEventId: Type.Optional(DhEventIdSchema) })),\n\t\tlogicalTaskId: Type.Optional(ident),\n\t\tnativeLaunchId: Type.Optional(ident),\n\t});\n}\nexport type DhAgentSpawnPayload = Static<ReturnType<typeof agentSpawnSchema>>;\n\n/** Cross-agent relation (native Code retry): a NEW agent linked to its source, never a same-agent retryOfAttemptId. */\nfunction agentRelationSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.agentRelation),\n\t\tvia: Type.Literal(\"native-code\"),\n\t\trelation: Type.Literal(\"native-retry\"),\n\t\tsourceAgentId: DhAgentIdSchema,\n\t\tsourceAttemptId: DhAttemptIdSchema,\n\t\treasonCode: Type.Optional(code),\n\t});\n}\nexport type DhAgentRelationPayload = Static<ReturnType<typeof agentRelationSchema>>;\n\nconst PHASE_KIND: Readonly<Record<string, DhEventKind>> = {\n\tstarted: \"attempt.started\",\n\tfinished: \"attempt.finished\",\n\t\"retry-scheduled\": \"attempt.retry_scheduled\",\n};\n\nfunction attemptLifecycleSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.attemptLifecycle),\n\t\tphase: Type.Enum([\"started\", \"finished\", \"retry-scheduled\"] as const),\n\t\tagentId: DhAgentIdSchema,\n\t\tattemptId: DhAttemptIdSchema,\n\t\tattemptNumber: Type.Optional(positive),\n\t\tretryOfAttemptId: Type.Optional(DhAttemptIdSchema),\n\t\tretryReason: Type.Optional(code),\n\t\tnextAttemptNumber: Type.Optional(positive),\n\t\tdelayMs: Type.Optional(count),\n\t\tspawnOutcome: Type.Optional(Type.Enum([\"spawned\", \"failed-to-spawn\", \"unknown\"] as const)),\n\t\tterminationConfirmed: Type.Optional(Type.Boolean()),\n\t});\n}\nexport type DhAttemptLifecyclePayload = Static<ReturnType<typeof attemptLifecycleSchema>>;\n\n// -- flow decisions ----------------------------------------------------------------------------\n\nfunction flowDecisionSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.flowDecision),\n\t\tdecision: Type.Enum([\"schedule\", \"delegate\", \"dependency-not-launched\", \"dependency-released\", \"retry\"] as const),\n\t\tissuer: Type.Literal(\"flow\"),\n\t\tvia: Type.Literal(\"flow\"),\n\t\tmode: Type.Enum([\"single\", \"parallel\", \"chain\", \"hierarchy\"] as const),\n\t\t/** A command launch has no tool call: the two variants share no event-id field. */\n\t\tprovenance: Type.Union([\n\t\t\tstrict({ source: Type.Literal(\"tool-call\"), toolCallEventId: DhEventIdSchema }),\n\t\t\tstrict({ source: Type.Literal(\"command\"), command: text, commandEventId: Type.Optional(DhEventIdSchema) }),\n\t\t\tstrict({ source: Type.Literal(\"internal\") }),\n\t\t]),\n\t\tlogicalTaskId: Type.Optional(ident),\n\t\tdependencies: Type.Optional(Type.Array(ident, { maxItems: MAX_LIST })),\n\t\tcauseEventId: Type.Optional(DhEventIdSchema),\n\t\tchildAgentId: Type.Optional(DhAgentIdSchema),\n\t\tfailedAttemptId: Type.Optional(DhAttemptIdSchema),\n\t\tnextAttemptNumber: Type.Optional(positive),\n\t\tdelayMs: Type.Optional(count),\n\t\twave: Type.Optional(count),\n\t\torder: Type.Optional(count),\n\t\tpolicyVersion: Type.Optional(text),\n\t\treasonCode: Type.Optional(code),\n\t});\n}\nexport type DhFlowDecisionPayload = Static<ReturnType<typeof flowDecisionSchema>>;\n\n/**\n * A continuation decision about one addressed target (agent + attempt). `pending` and `consumed` are recorded\n * by the target itself; `admitted` and `rejected` may be recorded by the admitting authority. `requestId`\n * links a decision to a control `continue` request; a continuation that no request caused names none. Message\n * text never appears here: it is content, and would also be free text inside a typed payload.\n */\nfunction continuationDecisionSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.continuationDecision),\n\t\tdecision: Type.Enum(DH_CONTINUATION_DECISIONS),\n\t\ttarget: strict({ agentId: DhAgentIdSchema, attemptId: DhAttemptIdSchema }),\n\t\trequestId: Type.Optional(requestId),\n\t\tchannel: Type.Enum(DH_CONTINUATION_CHANNELS),\n\t\treason: Type.Optional(Type.Enum(DH_CONTROL_REJECT_REASONS)),\n\t});\n}\nexport type DhContinuationDecisionPayload = Static<ReturnType<typeof continuationDecisionSchema>>;\n\n// -- usage, health, control, amendment ---------------------------------------------------------\n\nfunction usageSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.usage),\n\t\tusageId: ident,\n\t\torigin: usageOrigin(),\n\t\tmeasurement: measurement(),\n\t});\n}\nexport type DhUsagePayload = Static<ReturnType<typeof usageSchema>>;\n\nfunction captureHealthSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.captureHealth),\n\t\tstatus: Type.Enum([\"healthy\", \"degraded\", \"failed\", \"recovered\"] as const),\n\t\tcondition: Type.Enum([\n\t\t\t\"none\",\n\t\t\t\"dropped\",\n\t\t\t\"write_failed\",\n\t\t\t\"redaction_failed\",\n\t\t\t\"unsupported_adapter\",\n\t\t\t\"flush_timeout\",\n\t\t\t\"lost_observer\",\n\t\t\t\"recovery\",\n\t\t] as const),\n\t\tdroppedEvents: Type.Optional(count),\n\t\tdroppedArtifacts: Type.Optional(count),\n\t\tadapter: Type.Optional(strict({ name: text, version: text })),\n\t\taffectedKinds: Type.Optional(Type.Array(Type.Enum(DH_EVENT_KINDS), { maxItems: 32, uniqueItems: true })),\n\t\tcoverageGaps: Type.Optional(Type.Array(coverageGap(), { maxItems: 32 })),\n\t\tsequenceRange: Type.Optional(strict({ from: count, to: count })),\n\t});\n}\nexport type DhCaptureHealthPayload = Static<ReturnType<typeof captureHealthSchema>>;\n\nfunction controlCorrelationSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.controlCorrelation),\n\t\trequestId,\n\t\taction: Type.Enum(DH_CONTROL_ACTIONS),\n\t\tphase: Type.Enum([\"requested\", \"observed\"] as const),\n\t\tstate: Type.Enum(DH_CONTROL_STATES),\n\t\treason: Type.Optional(Type.Enum(DH_CONTROL_REJECT_REASONS)),\n\t\tterminationConfirmed: Type.Optional(Type.Boolean()),\n\t\tobserved: Type.Optional(\n\t\t\tstrict({\n\t\t\t\tstartedAgentId: Type.Optional(DhAgentIdSchema),\n\t\t\t\tstartedAttemptId: Type.Optional(DhAttemptIdSchema),\n\t\t\t\tconsumingEventId: Type.Optional(DhEventIdSchema),\n\t\t\t}),\n\t\t),\n\t});\n}\nexport type DhControlCorrelationPayload = Static<ReturnType<typeof controlCorrelationSchema>>;\n\n/** Local cancellation is not a Code control request: there is deliberately no requestId. */\nfunction localCancellationSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.localCancellation),\n\t\trequester: Type.Literal(\"local\"),\n\t\tscope: Type.Enum([\"selected\", \"whole-run\"] as const),\n\t\tphase: Type.Enum([\"requested\", \"observed\"] as const),\n\t\tstate: Type.Enum([\"requested\", \"applied\", \"rejected\", \"unsupported\", \"unknown\"] as const),\n\t\treason: Type.Optional(Type.Enum(DH_CONTROL_REJECT_REASONS)),\n\t\tdiagnosticCode: Type.Optional(Type.Enum(DH_LOCAL_CANCELLATION_DIAGNOSTICS)),\n\t\tterminationConfirmed: Type.Optional(Type.Boolean()),\n\t\texitCode: Type.Optional(Type.Integer({ minimum: Number.MIN_SAFE_INTEGER, maximum: Number.MAX_SAFE_INTEGER })),\n\t});\n}\nexport type DhLocalCancellationPayload = Static<ReturnType<typeof localCancellationSchema>>;\n\nfunction amendmentSchema() {\n\treturn strict({\n\t\tschema: Type.Literal(IDS.amendment),\n\t\tamendsEventId: DhEventIdSchema,\n\t\tamendsKind: Type.Enum(DH_EVENT_KINDS),\n\t\trelation: Type.Enum([\"supersedes\", \"resolves-unknown\"] as const),\n\t\treasonCode: code,\n\t\tcoverage: Type.Optional(Type.Array(coverageGap(), { minItems: 1, maxItems: 32 })),\n\t\treplacement: Type.Optional(strict({ outcome: Type.Enum(DH_OUTCOMES), failureCode: Type.Optional(code) })),\n\t});\n}\nexport type DhAmendmentPayload = Static<ReturnType<typeof amendmentSchema>>;\n\n// ---------------------------------------------------------------------------\n// Registry\n// ---------------------------------------------------------------------------\n\nfunction buildParsers(): ReadonlyMap<string, PayloadParser> {\n\tconst submission = define(IDS.modelSubmission, modelSubmissionSchema, undefined, (payload, event) => {\n\t\tconst id = IDS.modelSubmission;\n\t\tassertEventAttempt(id, event, payload.attemptId);\n\t\tif (payload.requestArtifact !== undefined) {\n\t\t\tassertListed(id, event, payload.requestArtifact.artifactId);\n\t\t} else assertLossCovered(id, event, \"payload.requestArtifact\");\n\t});\n\n\tconst response = define(\n\t\tIDS.modelResponse,\n\t\tmodelResponseSchema,\n\t\t(payload) => {\n\t\t\tif (payload.usage !== undefined) assertMeasurement(IDS.modelResponse, payload.usage.measurement);\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.modelResponse;\n\t\t\tassertEventAttempt(id, event, payload.attemptId);\n\t\t\tconst origin = payload.usage?.origin;\n\t\t\tif (origin !== undefined && (origin.owner !== \"submission\" || origin.submissionId !== payload.submissionId)) {\n\t\t\t\tbad(id, \"usage origin must be the submission this response answers\");\n\t\t\t}\n\t\t\tif (payload.responseArtifact !== undefined) assertListed(id, event, payload.responseArtifact.artifactId);\n\t\t},\n\t);\n\n\tconst toolCall = define(\n\t\tIDS.toolCall,\n\t\ttoolCallSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.toolCall;\n\t\t\tif (payload.parentEventId !== undefined && payload.parentCallId === undefined) {\n\t\t\t\tbad(id, \"parentEventId requires parentCallId\");\n\t\t\t}\n\t\t\tif (payload.parentCallId === payload.callId) bad(id, \"a call cannot be its own parent\");\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.toolCall;\n\t\t\tif (payload.argumentsArtifact !== undefined) {\n\t\t\t\tassertListed(id, event, payload.argumentsArtifact.artifactId);\n\t\t\t} else if (payload.argumentsPreview === undefined) assertLossCovered(id, event, \"payload.argumentsArtifact\");\n\t\t},\n\t);\n\n\tconst toolResult = define(\n\t\tIDS.toolResult,\n\t\ttoolResultSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.toolResult;\n\t\t\tif (payload.stage === \"original\") {\n\t\t\t\tif (payload.originalResultEventId !== undefined) {\n\t\t\t\t\tbad(id, \"originalResultEventId is only allowed on a final result\");\n\t\t\t\t}\n\t\t\t\tif (payload.modified !== undefined) bad(id, \"modified is only allowed on a final result\");\n\t\t\t} else if (payload.originalResultEventId === undefined) {\n\t\t\t\tbad(id, \"originalResultEventId is required on a final result\");\n\t\t\t}\n\t\t\tif (payload.childAgentId !== undefined && payload.childAgentIds !== undefined) {\n\t\t\t\tbad(id, \"use childAgentId or childAgentIds, not both\");\n\t\t\t}\n\t\t\tif ((payload.nonTextArtifacts?.length ?? 0) > 0 && payload.nonTextBlockCount === 0) {\n\t\t\t\tbad(id, \"nontext artifacts require nonTextBlockCount above zero\");\n\t\t\t}\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.toolResult;\n\t\t\tif (payload.stage === \"original\") {\n\t\t\t\t// The untouched executed result keeps the real execution outcome, independent of later hooks.\n\t\t\t\tif (event.outcome === undefined) bad(id, \"outcome is required on an original tool result\");\n\t\t\t\tif (event.outcome === \"succeeded\" && payload.isError) bad(id, \"isError contradicts outcome succeeded\");\n\t\t\t\tif (event.outcome === \"failed\" && !payload.isError) bad(id, \"isError contradicts outcome failed\");\n\t\t\t}\n\t\t\tif (payload.outputArtifact !== undefined) assertListed(id, event, payload.outputArtifact.artifactId);\n\t\t\tif (payload.nonTextBlockCount > 0) {\n\t\t\t\tconst artifacts = payload.nonTextArtifacts ?? [];\n\t\t\t\tfor (const ref of artifacts) assertListed(id, event, ref.artifactId);\n\t\t\t\tif (artifacts.length === 0) {\n\t\t\t\t\tconst coverage = event.fields[\"payload.nonTextContent\"];\n\t\t\t\t\tif (coverage === undefined || !LOSS_STATES.has(coverage.state)) {\n\t\t\t\t\t\tbad(id, \"nontext content has neither artifacts nor loss coverage at payload.nonTextContent\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t);\n\n\tconst file = define(\n\t\tIDS.fileEvidence,\n\t\tfileEvidenceSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.fileEvidence;\n\t\t\tconst { before, after, effectObserved } = payload.observed;\n\t\t\tif (effectObserved && after.state !== \"observed\") {\n\t\t\t\tbad(id, \"effectObserved requires an observed after snapshot\");\n\t\t\t}\n\t\t\tif (before.state === \"observed\" && after.state === \"observed\") {\n\t\t\t\tconst changed = before.sha256 !== after.sha256;\n\t\t\t\tif (changed !== effectObserved)\n\t\t\t\t\tbad(id, \"effectObserved must match the snapshot change when both snapshots are observed\");\n\t\t\t}\n\t\t\tconst tree = payload.worktree;\n\t\t\tif (tree !== undefined) {\n\t\t\t\tif (!tree.baseObserved && tree.baseRevision !== undefined) {\n\t\t\t\t\tbad(id, \"baseRevision must not be recorded when the base was not observed\");\n\t\t\t\t}\n\t\t\t\tif (tree.mode === \"isolated\" && (!tree.baseObserved || tree.baseRevision === undefined)) {\n\t\t\t\t\tbad(id, \"an isolated worktree needs an observed baseRevision\");\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.fileEvidence;\n\t\t\tassertListed(id, event, payload.pathRef.artifactId);\n\t\t\tfor (const ref of payload.evidence ?? []) assertListed(id, event, ref.artifactId);\n\t\t},\n\t);\n\n\tconst spawn = define(\n\t\tIDS.agentSpawn,\n\t\tagentSpawnSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.agentSpawn;\n\t\t\tif (payload.via === \"subagent\") {\n\t\t\t\tif (payload.command !== undefined) bad(id, \"a subagent spawn cannot carry command\");\n\t\t\t\tif (payload.launchedByToolCallEventId !== undefined) {\n\t\t\t\t\tbad(id, \"a subagent spawn uses spawnedByEventId, not launchedByToolCallEventId\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (payload.spawnedByEventId !== undefined) bad(id, \"a flow launch does not use spawnedByEventId\");\n\t\t\tif ((payload.launchedByToolCallEventId === undefined) === (payload.command === undefined)) {\n\t\t\t\tbad(id, \"exactly one of launchedByToolCallEventId or command is required\");\n\t\t\t}\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.agentSpawn;\n\t\t\tif (payload.via === \"flow\") {\n\t\t\t\tif (event.producer.issuer !== \"flow\") bad(id, \"a flow launch requires producer issuer flow\");\n\t\t\t} else if (payload.spawnedByEventId === undefined) assertLossCovered(id, event, \"payload.spawnedByEventId\");\n\t\t},\n\t);\n\n\tconst relation = define(IDS.agentRelation, agentRelationSchema, undefined, (payload, event) => {\n\t\tconst id = IDS.agentRelation;\n\t\tif (payload.sourceAgentId === event.agentId) {\n\t\t\tbad(id, \"a cross-agent relation needs a sourceAgentId different from the event agentId\");\n\t\t}\n\t\tif (event.retryOfAttemptId !== undefined) {\n\t\t\tbad(id, \"retryOfAttemptId is a same-agent link and cannot accompany a cross-agent relation\");\n\t\t}\n\t\tif (event.producer.issuer !== \"code\") bad(id, \"native retry requires Code issuer\");\n\t});\n\n\tconst lifecycle = define(\n\t\tIDS.attemptLifecycle,\n\t\tattemptLifecycleSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.attemptLifecycle;\n\t\t\tif (payload.retryOfAttemptId !== undefined) {\n\t\t\t\tif (payload.phase !== \"started\") bad(id, \"retryOfAttemptId is only allowed in phase started\");\n\t\t\t\tif (payload.retryOfAttemptId === payload.attemptId) bad(id, \"retryOfAttemptId cannot equal attemptId\");\n\t\t\t}\n\t\t\tif (payload.phase === \"retry-scheduled\") {\n\t\t\t\tif (payload.delayMs === undefined) bad(id, \"delayMs is required in phase retry-scheduled\");\n\t\t\t\tif (payload.nextAttemptNumber === undefined || payload.nextAttemptNumber < 2) {\n\t\t\t\t\tbad(id, \"nextAttemptNumber of at least 2 is required in phase retry-scheduled\");\n\t\t\t\t}\n\t\t\t} else if (payload.nextAttemptNumber !== undefined || payload.delayMs !== undefined) {\n\t\t\t\tbad(id, \"nextAttemptNumber and delayMs are only allowed in phase retry-scheduled\");\n\t\t\t}\n\t\t\tif (payload.terminationConfirmed !== undefined && payload.phase !== \"finished\") {\n\t\t\t\tbad(id, \"terminationConfirmed is only allowed in phase finished\");\n\t\t\t}\n\t\t\tif (payload.spawnOutcome !== undefined && payload.phase !== \"started\") {\n\t\t\t\tbad(id, \"spawnOutcome is only allowed in phase started\");\n\t\t\t}\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.attemptLifecycle;\n\t\t\tif (PHASE_KIND[payload.phase] !== event.kind) bad(id, \"phase does not match event kind\");\n\t\t\tif (payload.agentId !== event.agentId) bad(id, \"agentId does not match the event agentId\");\n\t\t\tassertEventAttempt(id, event, payload.attemptId);\n\t\t\tif (payload.attemptNumber !== undefined && payload.attemptNumber !== event.attemptNumber) {\n\t\t\t\tbad(id, \"attemptNumber does not match the event attemptNumber\");\n\t\t\t}\n\t\t\tif (payload.retryOfAttemptId !== event.retryOfAttemptId) {\n\t\t\t\tbad(id, \"retryOfAttemptId must match the event retryOfAttemptId\");\n\t\t\t}\n\t\t\tif (payload.phase === \"finished\" && event.outcome === undefined)\n\t\t\t\tbad(id, \"outcome is required on attempt finish\");\n\t\t},\n\t);\n\n\tconst decision = define(\n\t\tIDS.flowDecision,\n\t\tflowDecisionSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.flowDecision;\n\t\t\tconst kind = payload.decision;\n\t\t\tif (payload.logicalTaskId === undefined) bad(id, \"logicalTaskId is required\");\n\t\t\tif (payload.childAgentId !== undefined && kind !== \"delegate\") {\n\t\t\t\tbad(id, \"childAgentId is only allowed on delegate\");\n\t\t\t}\n\t\t\tconst retryFields =\n\t\t\t\tpayload.failedAttemptId !== undefined ||\n\t\t\t\tpayload.nextAttemptNumber !== undefined ||\n\t\t\t\tpayload.delayMs !== undefined;\n\t\t\tif (retryFields && kind !== \"retry\")\n\t\t\t\tbad(id, \"failedAttemptId, nextAttemptNumber and delayMs are only allowed on retry\");\n\t\t\tconst dependencies = payload.dependencies ?? [];\n\t\t\tif (new Set(dependencies).size !== dependencies.length || dependencies.includes(payload.logicalTaskId)) {\n\t\t\t\tbad(id, \"dependencies must be unique logical tasks other than the task itself\");\n\t\t\t}\n\t\t\tif (kind === \"dependency-not-launched\" || kind === \"dependency-released\") {\n\t\t\t\tif (dependencies.length === 0) bad(id, \"dependency decision requires dependencies\");\n\t\t\t\tif (payload.causeEventId === undefined) bad(id, \"dependency decision requires causeEventId\");\n\t\t\t}\n\t\t\tif (kind === \"retry\") {\n\t\t\t\tif (payload.failedAttemptId === undefined) bad(id, \"retry requires failedAttemptId\");\n\t\t\t\tif (payload.nextAttemptNumber === undefined || payload.nextAttemptNumber < 2) {\n\t\t\t\t\tbad(id, \"retry requires nextAttemptNumber of at least 2\");\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t(_payload, event) => {\n\t\t\tif (event.producer.issuer !== \"flow\") bad(IDS.flowDecision, \"a flow decision requires producer issuer flow\");\n\t\t},\n\t);\n\n\tconst continuation = define(\n\t\tIDS.continuationDecision,\n\t\tcontinuationDecisionSchema,\n\t\t(payload) => {\n\t\t\tif (\n\t\t\t\tpayload.decision === \"continuation.consumed\" &&\n\t\t\t\tpayload.channel === \"queue-steering\" &&\n\t\t\t\tpayload.requestId !== undefined\n\t\t\t)\n\t\t\t\tbad(IDS.continuationDecision, \"queue-steering cannot certify consumption\");\n\t\t\tif ((payload.decision === \"continuation.rejected\") !== (payload.reason !== undefined)) {\n\t\t\t\tbad(\n\t\t\t\t\tIDS.continuationDecision,\n\t\t\t\t\t\"reason is required when the decision is continuation.rejected, and only then\",\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t(payload, event) => {\n\t\t\t// Pending and consumed are facts the target itself observes; admission and rejection may come from the authority.\n\t\t\tif (payload.decision !== \"continuation.pending\" && payload.decision !== \"continuation.consumed\") return;\n\t\t\tif (event.agentId !== payload.target.agentId || event.attemptId !== payload.target.attemptId) {\n\t\t\t\tbad(\n\t\t\t\t\tIDS.continuationDecision,\n\t\t\t\t\t\"pending or consumed continuation must be recorded on the addressed target agent and attempt\",\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t);\n\n\tconst usage = define(\n\t\tIDS.usage,\n\t\tusageSchema,\n\t\t(payload) => assertMeasurement(IDS.usage, payload.measurement),\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.usage;\n\t\t\tconst origin = payload.origin;\n\t\t\tif (origin.owner === \"attempt\" && event.attemptId !== origin.attemptId) {\n\t\t\t\tbad(id, \"usage origin attemptId does not match the event attemptId\");\n\t\t\t}\n\t\t\tif (origin.owner === \"submission\" && event.attemptId === undefined) {\n\t\t\t\tbad(id, \"usage origin needs the submission's attemptId on the event\");\n\t\t\t}\n\t\t},\n\t);\n\n\tconst health = define(\n\t\tIDS.captureHealth,\n\t\tcaptureHealthSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.captureHealth;\n\t\t\tif ((payload.status === \"healthy\") !== (payload.condition === \"none\")) {\n\t\t\t\tbad(id, \"condition none is required for, and only for, status healthy\");\n\t\t\t}\n\t\t\tif (payload.sequenceRange !== undefined && payload.sequenceRange.from > payload.sequenceRange.to) {\n\t\t\t\tbad(id, \"sequenceRange.from must not exceed sequenceRange.to\");\n\t\t\t}\n\t\t\tassertGaps(id, payload.coverageGaps ?? []);\n\t\t},\n\t\tundefined,\n\t);\n\n\tconst control = define(\n\t\tIDS.controlCorrelation,\n\t\tcontrolCorrelationSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.controlCorrelation;\n\t\t\tif (payload.phase === \"requested\" && payload.state !== \"requested\" && payload.state !== \"accepted\") {\n\t\t\t\tbad(id, \"phase requested allows only states requested or accepted\");\n\t\t\t}\n\t\t\tif (payload.phase === \"observed\" && payload.state === \"requested\") {\n\t\t\t\tbad(id, \"phase observed cannot be in state requested\");\n\t\t\t}\n\t\t\tif ((payload.state === \"rejected\") !== (payload.reason !== undefined)) {\n\t\t\t\tbad(id, \"reason is required when state is rejected, and only then\");\n\t\t\t}\n\t\t\tif (payload.terminationConfirmed !== undefined) {\n\t\t\t\tif (payload.action !== \"cancel\") bad(id, \"terminationConfirmed is only valid for the cancel action\");\n\t\t\t\tif (payload.terminationConfirmed && payload.state !== \"applied\") {\n\t\t\t\t\tbad(id, \"terminationConfirmed true requires state applied\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst applied = payload.state === \"applied\";\n\t\t\tif (payload.observed !== undefined && !(applied && payload.action !== \"cancel\")) {\n\t\t\t\tbad(id, \"observed is only valid for an applied retry or continue\");\n\t\t\t}\n\t\t\tif (applied && payload.action === \"retry\") {\n\t\t\t\tif (payload.observed?.startedAgentId === undefined || payload.observed?.startedAttemptId === undefined) {\n\t\t\t\t\tbad(id, \"an applied retry needs both observed.startedAgentId and observed.startedAttemptId\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (applied && payload.action === \"continue\" && payload.observed?.consumingEventId === undefined) {\n\t\t\t\tbad(id, \"an applied continue needs observed.consumingEventId\");\n\t\t\t}\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst id = IDS.controlCorrelation;\n\t\t\tif (event.kind === \"cancellation.requested\" || event.kind === \"cancellation.outcome\") {\n\t\t\t\tif (payload.action !== \"cancel\") bad(id, \"cancellation event carries only the cancel action\");\n\t\t\t\tconst phase = event.kind === \"cancellation.requested\" ? \"requested\" : \"observed\";\n\t\t\t\tif (payload.phase !== phase) bad(id, \"phase does not match cancellation event kind\");\n\t\t\t}\n\t\t\t// The graph links a claim to observed facts of the addressed attempt, so the claim must name it.\n\t\t\tconst claim =\n\t\t\t\tpayload.terminationConfirmed === true || (payload.state === \"applied\" && payload.action !== \"cancel\");\n\t\t\tif (claim && event.attemptId === undefined) {\n\t\t\t\tbad(id, \"a termination, retry or continue claim needs the addressed attemptId on the event\");\n\t\t\t}\n\t\t},\n\t);\n\n\tconst localCancellation = define(\n\t\tIDS.localCancellation,\n\t\tlocalCancellationSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.localCancellation;\n\t\t\tif (payload.phase === \"requested\") {\n\t\t\t\tif (\n\t\t\t\t\tpayload.state !== \"requested\" ||\n\t\t\t\t\tpayload.reason !== undefined ||\n\t\t\t\t\tpayload.diagnosticCode !== undefined ||\n\t\t\t\t\tpayload.terminationConfirmed !== undefined ||\n\t\t\t\t\tpayload.exitCode !== undefined\n\t\t\t\t) {\n\t\t\t\t\tbad(\n\t\t\t\t\t\tid,\n\t\t\t\t\t\t\"phase requested requires state requested and forbids reason, diagnosticCode, terminationConfirmed and exitCode\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (payload.state === \"requested\") bad(id, \"phase observed cannot be in state requested\");\n\t\t\tif (payload.terminationConfirmed === undefined) bad(id, \"phase observed requires terminationConfirmed\");\n\t\t\tif (payload.terminationConfirmed && payload.state !== \"applied\")\n\t\t\t\tbad(id, \"terminationConfirmed true requires state applied\");\n\t\t\tif ((payload.state === \"rejected\") !== (payload.reason !== undefined)) {\n\t\t\t\tbad(id, \"reason is required when state is rejected, and only then\");\n\t\t\t}\n\t\t},\n\t\t(payload, event) => {\n\t\t\tconst phase = event.kind === \"cancellation.requested\" ? \"requested\" : \"observed\";\n\t\t\tif (payload.phase !== phase) bad(IDS.localCancellation, \"phase does not match cancellation event kind\");\n\t\t\tif (payload.terminationConfirmed === true && event.attemptId === undefined) {\n\t\t\t\tbad(IDS.localCancellation, \"a termination claim needs the addressed attemptId on the event\");\n\t\t\t}\n\t\t},\n\t);\n\n\tconst amendment = define(\n\t\tIDS.amendment,\n\t\tamendmentSchema,\n\t\t(payload) => {\n\t\t\tconst id = IDS.amendment;\n\t\t\tconst replacement = payload.replacement;\n\t\t\tif (payload.relation === \"supersedes\") {\n\t\t\t\tif (replacement !== undefined) bad(id, \"supersedes cannot carry a replacement outcome\");\n\t\t\t\tif (payload.coverage === undefined) bad(id, \"an amendment needs coverage or a replacement outcome\");\n\t\t\t} else {\n\t\t\t\tif (replacement === undefined) bad(id, \"resolves-unknown requires a replacement outcome\");\n\t\t\t\tif (replacement.outcome === \"unknown\") bad(id, \"resolves-unknown requires a known replacement outcome\");\n\t\t\t}\n\t\t\tif (replacement?.failureCode !== undefined && replacement.outcome !== \"failed\") {\n\t\t\t\tbad(id, \"failureCode is only allowed when the replacement outcome is failed\");\n\t\t\t}\n\t\t\tassertGaps(id, payload.coverage ?? []);\n\t\t},\n\t\t(payload, event) => {\n\t\t\tif (payload.amendsEventId === event.eventId) bad(IDS.amendment, \"an amendment cannot amend itself\");\n\t\t},\n\t);\n\n\treturn new Map<string, PayloadParser>([\n\t\t[IDS.modelSubmission, submission],\n\t\t[IDS.modelResponse, response],\n\t\t[IDS.toolCall, toolCall],\n\t\t[IDS.toolResult, toolResult],\n\t\t[IDS.fileEvidence, file],\n\t\t[IDS.agentSpawn, spawn],\n\t\t[IDS.agentRelation, relation],\n\t\t[IDS.attemptLifecycle, lifecycle],\n\t\t[IDS.flowDecision, decision],\n\t\t[IDS.continuationDecision, continuation],\n\t\t[IDS.usage, usage],\n\t\t[IDS.captureHealth, health],\n\t\t[IDS.controlCorrelation, control],\n\t\t[IDS.localCancellation, localCancellation],\n\t\t[IDS.amendment, amendment],\n\t]);\n}\n\nlet parsers: ReadonlyMap<string, PayloadParser> | undefined;\n\n/**\n * Enforces the payload contract on one event. Legacy kinds without `payload.schema` pass; everything\n * else must name a registered (kind, schema id) pair and satisfy that schema and its envelope rules.\n * Called by `parseDhEvent` on the trusted clone.\n */\nexport function assertDhEventPayload(event: DhEventV1): void {\n\tconst id: unknown = event.payload.schema;\n\tif (id === undefined) {\n\t\tif (DH_LEGACY_FREEFORM_PAYLOAD_KINDS.includes(event.kind)) return;\n\t\tthrow new DhContractError(\"schema_invalid\", \"Invalid dh.event/1: event kind requires a payload schema\");\n\t}\n\tif (typeof id !== \"string\")\n\t\tthrow new DhContractError(\"schema_invalid\", \"Invalid dh.event/1: payload.schema must be a string\");\n\tconst registration = REGISTRATIONS.find((entry) => entry.id === id);\n\tif (registration === undefined)\n\t\tthrow new DhContractError(\"schema_invalid\", \"Invalid dh.event/1: unknown payload schema\");\n\tif (!registration.kinds.includes(event.kind)) {\n\t\tthrow new DhContractError(\"schema_invalid\", \"Invalid dh.event/1: payload schema is not registered for kind\");\n\t}\n\tparsers ??= buildParsers();\n\tparsers.get(id)?.check(event);\n}\n\n// ---------------------------------------------------------------------------\n// Cross-event payload graph\n// ---------------------------------------------------------------------------\n\nfunction str(value: unknown): string | undefined {\n\treturn typeof value === \"string\" ? value : undefined;\n}\n\ninterface Obj {\n\treadonly [key: string]: unknown;\n}\nfunction obj(value: unknown): Obj | undefined {\n\treturn value !== null && typeof value === \"object\" && !Array.isArray(value) ? (value as Obj) : undefined;\n}\n\nconst typed = (event: DhEventV1, id: DhPayloadSchemaId): boolean => event.payload.schema === id;\n\n/** Generation, agent and attempt: what a control request addresses. */\nconst targetKey = (event: DhEventV1): string =>\n\tJSON.stringify([event.generationId, event.agentId, event.attemptId ?? null]);\n\n/** A cancellation.outcome that observed the target terminate for a control cancel request. */\nconst confirmsTermination = (event: DhEventV1): boolean =>\n\tevent.kind === \"cancellation.outcome\" &&\n\ttyped(event, IDS.controlCorrelation) &&\n\tevent.payload.action === \"cancel\" &&\n\tevent.payload.phase === \"observed\" &&\n\tevent.payload.state === \"applied\" &&\n\tevent.payload.terminationConfirmed === true;\n\n/** The only consumption event type: the addressed target recorded that it consumed the continuation. */\nconst consumesContinuation = (event: DhEventV1): boolean =>\n\tevent.kind === \"orchestration.decision\" &&\n\ttyped(event, IDS.continuationDecision) &&\n\tevent.payload.decision === \"continuation.consumed\";\n\ninterface ArtifactRef {\n\treadonly artifactId?: unknown;\n\treadonly sha256?: unknown;\n\treadonly sizeBytes?: unknown;\n}\n\n/** Every artifact reference a typed payload carries, with the payload field that names it. */\nfunction* artifactRefs(event: DhEventV1): Generator<[string, ArtifactRef]> {\n\tconst { payload } = event;\n\tfor (const field of [\n\t\t\"requestArtifact\",\n\t\t\"responseArtifact\",\n\t\t\"argumentsArtifact\",\n\t\t\"outputArtifact\",\n\t\t\"pathRef\",\n\t] as const) {\n\t\tconst ref = obj(payload[field]);\n\t\tif (ref !== undefined) yield [field, ref];\n\t}\n\tfor (const field of [\"nonTextArtifacts\", \"evidence\"] as const) {\n\t\tconst list = payload[field];\n\t\tif (!Array.isArray(list)) continue;\n\t\tfor (const item of list) {\n\t\t\tconst ref = obj(item);\n\t\t\tif (ref !== undefined) yield [field, ref];\n\t\t}\n\t}\n}\n\n/**\n * A reference carries the sha256 (and optionally size) the producer claims for the artifact; the artifact\n * metadata is the stored fact. A mismatch means the reference does not describe that artifact. Artifacts\n * missing from the metadata are reported by the bundle's own link check, not here.\n */\nfunction validateArtifactRefs(\n\tevents: readonly DhEventV1[],\n\tartifacts: readonly DhArtifactV1[],\n\terr: (event: DhEventV1, message: string) => void,\n): void {\n\tconst byId = new Map<string, DhArtifactV1>();\n\tfor (const artifact of artifacts) if (!byId.has(artifact.artifactId)) byId.set(artifact.artifactId, artifact);\n\tfor (const event of events) {\n\t\tif (typeof event.payload.schema !== \"string\") continue;\n\t\tfor (const [field, ref] of artifactRefs(event)) {\n\t\t\tconst id = str(ref.artifactId) ?? \"\";\n\t\t\tconst artifact = byId.get(id);\n\t\t\tif (artifact === undefined) continue;\n\t\t\tif (ref.sha256 !== artifact.sha256) err(event, `${field} sha256 does not match artifact metadata`);\n\t\t\tif (typeof ref.sizeBytes === \"number\" && ref.sizeBytes !== artifact.sizeBytes) {\n\t\t\t\terr(event, `${field} sizeBytes does not match artifact metadata`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Cross-event rules over already-parsed events. Legacy freeform events are ignored. Returns one message per\n * violation (never throws); `validateDhTraceBundle` appends these to its own errors. Nothing here rewrites or\n * reinterprets an original event: amendments are separate events that point at their target.\n *\n * One pass builds the indexes (events by id, attempts by agent, attempt starts, relations, confirmed\n * terminations); every rule after it is a Map/Set lookup, so the cost is linear in the number of events\n * (no per-event scan of `events`, no per-event array copy).\n */\nexport function validateDhPayloadGraph(\n\tevents: readonly DhEventV1[],\n\tartifacts?: readonly DhArtifactV1[],\n\townership?: DhTerminalOwnership,\n): string[] {\n\tconst errors: string[] = [];\n\tconst err = (_event: DhEventV1, message: string) => errors.push(message);\n\tif (artifacts !== undefined) validateArtifactRefs(events, artifacts, err);\n\n\tconst byId = new Map<string, DhEventV1>();\n\tconst attemptsByAgent = new Map<string, Set<string>>();\n\tconst attemptStarts = new Map<string, DhEventV1>();\n\tconst effectiveTerminals = resolveDhEffectiveTerminals(events, ownership);\n\tconst failedAttempts = new Set(\n\t\t[...effectiveTerminals]\n\t\t\t.filter(([, terminal]) => terminal.outcome === \"failed\" && !terminal.conflict && !terminal.authorityUnresolved)\n\t\t\t.map(([id]) => id),\n\t);\n\tconst confirmedFinishes = new Set<string>();\n\tconst relationsByAgent = new Map<string, DhEventV1>();\n\tconst confirmedCancels = new Map<string, Set<string>>();\n\tfor (const event of events) {\n\t\tif (!byId.has(event.eventId)) byId.set(event.eventId, event);\n\t\tlet attempts = attemptsByAgent.get(event.agentId);\n\t\tif (attempts === undefined) {\n\t\t\tattempts = new Set<string>();\n\t\t\tattemptsByAgent.set(event.agentId, attempts);\n\t\t}\n\t\tif (event.attemptId !== undefined) {\n\t\t\tattempts.add(event.attemptId);\n\t\t\tif (event.kind === \"attempt.started\" && !attemptStarts.has(event.attemptId)) {\n\t\t\t\tattemptStarts.set(event.attemptId, event);\n\t\t\t}\n\t\t\tif (event.kind === \"attempt.finished\") {\n\t\t\t\tif (typed(event, IDS.attemptLifecycle) && event.payload.terminationConfirmed === true) {\n\t\t\t\t\tconfirmedFinishes.add(targetKey(event));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typed(event, IDS.agentRelation) && !relationsByAgent.has(event.agentId)) {\n\t\t\trelationsByAgent.set(event.agentId, event);\n\t\t}\n\t\tif (confirmsTermination(event)) {\n\t\t\tconst request = str(event.payload.requestId) ?? \"\";\n\t\t\tconst targets = confirmedCancels.get(request) ?? new Set<string>();\n\t\t\ttargets.add(targetKey(event));\n\t\t\tconfirmedCancels.set(request, targets);\n\t\t}\n\t}\n\n\tconst submissions = new Map<string, DhEventV1>();\n\tconst requests = new Map<string, { attemptId: string | undefined; indexes: Set<number> }>();\n\tconst responses = new Map<string, DhEventV1[]>();\n\tfor (const event of events) {\n\t\tif (typed(event, IDS.modelSubmission)) {\n\t\t\tconst submissionId = str(event.payload.submissionId) ?? \"\";\n\t\t\tif (submissions.has(submissionId)) err(event, \"duplicate submissionId\");\n\t\t\telse submissions.set(submissionId, event);\n\t\t\tconst requestKey = str(event.payload.requestId) ?? \"\";\n\t\t\tconst attemptId = str(event.payload.attemptId);\n\t\t\tconst entry = requests.get(requestKey) ?? { attemptId, indexes: new Set<number>() };\n\t\t\tif (entry.attemptId !== attemptId) err(event, \"requestId spans attempts\");\n\t\t\tconst index = Number(event.payload.transportRetryIndex);\n\t\t\tif (entry.indexes.has(index)) err(event, \"duplicate transportRetryIndex for requestId\");\n\t\t\tentry.indexes.add(index);\n\t\t\trequests.set(requestKey, entry);\n\t\t} else if (typed(event, IDS.modelResponse)) {\n\t\t\tconst submissionId = str(event.payload.submissionId) ?? \"\";\n\t\t\tconst list = responses.get(submissionId);\n\t\t\tif (list === undefined) responses.set(submissionId, [event]);\n\t\t\telse list.push(event);\n\t\t}\n\t}\n\tfor (const [submissionId, list] of responses) {\n\t\tconst submission = submissions.get(submissionId);\n\t\tfor (const event of list) {\n\t\t\tif (submission === undefined) {\n\t\t\t\terr(event, \"model response has no matching model submission\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (submission.payload.attemptId !== event.payload.attemptId) {\n\t\t\t\terr(event, \"response attempt differs from the submission attempt\");\n\t\t\t}\n\t\t\tif (submission.agentId !== event.agentId) {\n\t\t\t\terr(event, \"response agent differs from the submission agent\");\n\t\t\t}\n\t\t}\n\t\tfor (let index = 1; index < list.length; index++) {\n\t\t\tconst event = list[index];\n\t\t\tif (event !== undefined) err(event, \"more than one model response for submission\");\n\t\t}\n\t}\n\n\t// Each usage measurement has exactly one owner; aggregates are inclusive and never counted.\n\tconst owned = new Map<string, DhEventV1>();\n\tconst submissionUsageAttempts = new Set<string>();\n\tconst attemptUsage: { event: DhEventV1; attemptId: string }[] = [];\n\tconst own = (event: DhEventV1, key: string) => {\n\t\tif (owned.has(key)) err(event, \"usage is owned by more than one event (double count)\");\n\t\telse owned.set(key, event);\n\t};\n\tfor (const event of events) {\n\t\tlet origin: Obj | undefined;\n\t\tif (typed(event, IDS.modelResponse)) origin = obj(obj(event.payload.usage)?.origin);\n\t\telse if (typed(event, IDS.usage)) origin = obj(event.payload.origin);\n\t\tif (origin === undefined) continue;\n\t\tif (origin.owner === \"submission\") {\n\t\t\tconst submissionId = str(origin.submissionId) ?? \"\";\n\t\t\town(event, `submission:${submissionId}`);\n\t\t\tif (typed(event, IDS.usage)) {\n\t\t\t\t// A response's submission link is checked above; a usage event names its submission on its own.\n\t\t\t\tconst submission = submissions.get(submissionId);\n\t\t\t\tif (submission === undefined) {\n\t\t\t\t\terr(event, \"usage.reported references no model submission\");\n\t\t\t\t} else {\n\t\t\t\t\tif (submission.attemptId !== event.attemptId) {\n\t\t\t\t\t\terr(event, \"usage submission belongs to a different attempt\");\n\t\t\t\t\t}\n\t\t\t\t\tif (submission.agentId !== event.agentId) {\n\t\t\t\t\t\terr(event, \"usage submission belongs to a different agent\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst attemptId = str(event.payload.attemptId) ?? event.attemptId;\n\t\t\tif (attemptId !== undefined) submissionUsageAttempts.add(attemptId);\n\t\t} else if (origin.owner === \"attempt\") {\n\t\t\tconst attemptId = str(origin.attemptId) ?? \"\";\n\t\t\town(event, `attempt:${attemptId}`);\n\t\t\tattemptUsage.push({ event, attemptId });\n\t\t}\n\t}\n\tfor (const { event, attemptId } of attemptUsage) {\n\t\tif (submissionUsageAttempts.has(attemptId)) {\n\t\t\terr(event, \"usage for attempt duplicates submission-owned usage in the same attempt (double count)\");\n\t\t}\n\t}\n\n\t// Tool calls: a nested call names a real enclosing tool.call.\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.toolCall)) continue;\n\t\tconst parentId = str(event.payload.parentEventId);\n\t\tif (parentId === undefined) continue;\n\t\tconst parent = byId.get(parentId);\n\t\tif (parent?.kind !== \"tool.call\") {\n\t\t\terr(event, \"parentEventId is not a tool.call in this bundle\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (parent.generationId !== event.generationId) {\n\t\t\terr(event, \"parent tool.call belongs to a different generation\");\n\t\t}\n\t\tconst parentCallId = str(event.payload.parentCallId);\n\t\tconst expected = str(parent.payload.callId);\n\t\tif (parentCallId !== expected) {\n\t\t\terr(event, \"parentCallId differs from the parent tool.call callId\");\n\t\t}\n\t}\n\n\t// Original and final tool results.\n\tconst originals = new Map<string, DhEventV1>();\n\tconst finalsFor = new Set<string>();\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.toolResult) || event.payload.stage !== \"original\") continue;\n\t\tconst key = JSON.stringify([event.agentId, event.attemptId ?? null, event.payload.callId]);\n\t\tif (originals.has(key)) err(event, \"duplicate original tool.result for call\");\n\t\telse originals.set(key, event);\n\t}\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.toolResult) || event.payload.stage !== \"final\") continue;\n\t\tconst targetId = str(event.payload.originalResultEventId) ?? \"\";\n\t\tconst target = byId.get(targetId);\n\t\tif (target === undefined || target.kind !== \"tool.result\") {\n\t\t\terr(event, \"originalResultEventId references no original tool.result\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (!typed(target, IDS.toolResult) || target.payload.stage !== \"original\") {\n\t\t\terr(event, \"originalResultEventId is not an original tool.result\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (target.payload.callId !== event.payload.callId) {\n\t\t\terr(event, \"final result callId differs from the original call\");\n\t\t} else if (target.agentId !== event.agentId || target.attemptId !== event.attemptId) {\n\t\t\terr(event, \"final result agent or attempt differs from the original\");\n\t\t}\n\t\tif (finalsFor.has(targetId)) err(event, \"duplicate final tool.result for original\");\n\t\tfinalsFor.add(targetId);\n\t}\n\n\t// Flow decisions.\n\tconst notLaunched = new Set<string>();\n\tconst released = new Set<string>();\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.flowDecision)) continue;\n\t\tconst provenance = obj(event.payload.provenance);\n\t\tconst cause = str(event.payload.causeEventId);\n\t\tif (cause !== undefined && !byId.has(cause)) err(event, \"causeEventId references no event\");\n\t\tif (provenance?.source === \"tool-call\") {\n\t\t\tconst target = byId.get(str(provenance.toolCallEventId) ?? \"\");\n\t\t\tif (target?.kind !== \"tool.call\") err(event, \"provenance toolCallEventId is not a tool.call in this bundle\");\n\t\t\telse if (target.generationId !== event.generationId) {\n\t\t\t\terr(event, \"provenance toolCallEventId is in a different generation\");\n\t\t\t}\n\t\t} else if (provenance?.source === \"command\") {\n\t\t\tconst commandEvent = str(provenance.commandEventId);\n\t\t\tif (commandEvent !== undefined && !byId.has(commandEvent)) {\n\t\t\t\terr(event, \"provenance commandEventId references no event\");\n\t\t\t}\n\t\t}\n\t\tconst task = str(event.payload.logicalTaskId) ?? \"\";\n\t\tif (event.payload.decision === \"dependency-not-launched\") notLaunched.add(task);\n\t\tif (event.payload.decision === \"dependency-released\") released.add(task);\n\t\tif (event.payload.decision === \"retry\") {\n\t\t\tconst failed = str(event.payload.failedAttemptId) ?? \"\";\n\t\t\tif (!failedAttempts.has(failed)) err(event, \"retry failedAttemptId has no failed attempt.finished\");\n\t\t}\n\t}\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.agentSpawn)) continue;\n\t\tconst task = str(event.payload.logicalTaskId);\n\t\tif (task !== undefined && notLaunched.has(task) && !released.has(task)) {\n\t\t\terr(event, \"task was decided not launched and has no dependency-released decision\");\n\t\t}\n\t\t// A Flow launch from a tool call names a real tool.call of the same generation made by the parent agent.\n\t\tconst callId = event.payload.via === \"flow\" ? str(event.payload.launchedByToolCallEventId) : undefined;\n\t\tif (callId === undefined) continue;\n\t\tconst call = byId.get(callId);\n\t\tif (call?.kind !== \"tool.call\") {\n\t\t\terr(event, \"launchedByToolCallEventId is not a tool.call in this bundle\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (call.generationId !== event.generationId) {\n\t\t\terr(event, \"launching tool.call belongs to a different generation\");\n\t\t}\n\t\tif (event.parentAgentId === undefined) err(event, \"a flow launch from a tool call needs parentAgentId\");\n\t\telse if (call.agentId !== event.parentAgentId) {\n\t\t\terr(event, \"launching tool.call belongs to an agent other than the parent agent\");\n\t\t}\n\t\tif (call.streamId === event.streamId && call.sequence >= event.sequence) {\n\t\t\terr(event, \"flow launch precedes its launching tool.call in the producer stream\");\n\t\t}\n\t}\n\n\t// Full graph eligibility; a partial ingest may retain unresolved relations, never invent a failure.\n\tconst nativeClaims = new Map<string, string>();\n\tconst latestByAgent = new Map<string, DhEventV1>();\n\tfor (const start of attemptStarts.values()) {\n\t\tconst latest = latestByAgent.get(start.agentId);\n\t\tif (!latest || (start.attemptNumber ?? 0) > (latest.attemptNumber ?? 0)) latestByAgent.set(start.agentId, start);\n\t}\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.agentRelation)) continue;\n\t\tconst source = str(event.payload.sourceAgentId) ?? \"\";\n\t\tconst attempt = str(event.payload.sourceAttemptId) ?? \"\";\n\t\tconst known = attemptsByAgent.get(source);\n\t\tif (known === undefined) err(event, \"sourceAgentId has no events in this bundle\");\n\t\telse if (!known.has(attempt)) err(event, \"sourceAttemptId is not an attempt of sourceAgentId\");\n\t\tconst start = attemptStarts.get(attempt);\n\t\tconst terminal = effectiveTerminals.get(attempt);\n\t\tif (\n\t\t\t!start ||\n\t\t\t!terminal ||\n\t\t\tterminal.outcome !== \"failed\" ||\n\t\t\tterminal.conflict ||\n\t\t\tterminal.authorityUnresolved ||\n\t\t\tterminal.event.agentId !== source ||\n\t\t\tlatestByAgent.get(source)?.attemptId !== attempt\n\t\t)\n\t\t\terr(event, \"not_eligible: native source must be the latest finished failed attempt\");\n\t\tif (event.producer.issuer !== \"code\" || event.agentId === source || event.retryOfAttemptId !== undefined)\n\t\t\terr(event, \"schema_invalid: invalid native relation authority or identity\");\n\t\tif (\n\t\t\tstart &&\n\t\t\t(start.generationId !== event.generationId ||\n\t\t\t\tstart.tenantScope.environmentId !== event.tenantScope.environmentId ||\n\t\t\t\tstart.tenantScope.projectId !== event.tenantScope.projectId)\n\t\t)\n\t\t\terr(event, \"not_eligible: native source has a foreign generation or scope\");\n\t\tif (\n\t\t\tterminal &&\n\t\t\t(terminal.event.generationId !== event.generationId ||\n\t\t\t\tterminal.event.tenantScope.environmentId !== event.tenantScope.environmentId ||\n\t\t\t\tterminal.event.tenantScope.projectId !== event.tenantScope.projectId)\n\t\t)\n\t\t\terr(event, \"not_eligible: native terminal has a foreign generation or scope\");\n\t\tconst targets = [...(attemptsByAgent.get(event.agentId) ?? [])].map((id) => attemptStarts.get(id));\n\t\tconst first = targets.filter((start) => start?.attemptNumber === 1);\n\t\tconst target = first.length === 1 ? first[0] : undefined;\n\t\tif (\n\t\t\t!target ||\n\t\t\ttargets.some((start) => start?.attemptNumber === undefined) ||\n\t\t\ttarget.retryOfAttemptId !== undefined ||\n\t\t\ttarget.generationId !== event.generationId ||\n\t\t\ttarget.tenantScope.environmentId !== event.tenantScope.environmentId ||\n\t\t\ttarget.tenantScope.projectId !== event.tenantScope.projectId\n\t\t)\n\t\t\terr(event, \"not_eligible: native target must start one fresh attempt at number 1\");\n\t\tif (relationsByAgent.get(event.agentId) !== event || nativeClaims.has(attempt))\n\t\t\terr(event, \"not_eligible: native source or target already claimed\");\n\t\tnativeClaims.set(attempt, event.agentId);\n\t}\n\n\t// Amendments point at originals of the same producer and stream and never overwrite a known outcome.\n\tconst resolved = new Set<string>();\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.amendment)) continue;\n\t\tconst targetId = str(event.payload.amendsEventId) ?? \"\";\n\t\tconst target = byId.get(targetId);\n\t\tif (target === undefined) {\n\t\t\terr(event, \"amendsEventId references no event\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (target.kind === \"event.amendment\") err(event, \"cannot amend an amendment\");\n\t\telse if (target.kind !== event.payload.amendsKind) {\n\t\t\terr(event, \"amendsKind differs from the amended event kind\");\n\t\t}\n\t\tif (target.agentId !== event.agentId) err(event, \"amendment and amended event belong to different agents\");\n\t\tif (target.generationId !== event.generationId) {\n\t\t\terr(event, \"amendment and amended event belong to different generations\");\n\t\t}\n\t\t// Producer identity is the issuer bound at authentication; version and mode are claims and are not compared.\n\t\tif (target.producer.issuer !== event.producer.issuer) {\n\t\t\terr(event, \"amendment issuer differs from the amended event issuer\");\n\t\t}\n\t\tif (target.streamId !== event.streamId) {\n\t\t\terr(event, \"amendment stream differs from the amended event stream\");\n\t\t} else if (target.sequence >= event.sequence) {\n\t\t\terr(event, \"amendment precedes the amended event in the producer stream\");\n\t\t}\n\t\tif (event.payload.relation === \"resolves-unknown\") {\n\t\t\tif (target.outcome !== \"unknown\") {\n\t\t\t\terr(event, \"resolves-unknown targets an event whose outcome is not unknown\");\n\t\t\t} else if (resolved.has(targetId)) err(event, \"outcome is already resolved by another amendment\");\n\t\t\tresolved.add(targetId);\n\t\t}\n\t}\n\n\t// Continuation decisions address a known target attempt; a request is consumed at most once.\n\tconst consumedRequests = new Set<string>();\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.continuationDecision)) continue;\n\t\tconst target = obj(event.payload.target);\n\t\tconst agent = str(target?.agentId) ?? \"\";\n\t\tconst attempt = str(target?.attemptId) ?? \"\";\n\t\tconst known = attemptsByAgent.get(agent);\n\t\tif (known === undefined) err(event, \"continuation target agent has no events in this bundle\");\n\t\telse if (!known.has(attempt)) err(event, \"continuation target attempt is not an attempt of target agent\");\n\t\tconst request = str(event.payload.requestId);\n\t\tif (consumesContinuation(event) && request !== undefined) {\n\t\t\tif (consumedRequests.has(request)) err(event, \"duplicate continuation.consumed for request\");\n\t\t\tconsumedRequests.add(request);\n\t\t}\n\t}\n\n\t// One local origin per target AND scope: selected and whole-run are distinct requests.\n\t// Index the earliest sequence per stream so duplicate-origin diagnostics never make array order chronology.\n\tconst localKey = (event: DhEventV1): string => JSON.stringify([targetKey(event), event.payload.scope]);\n\tconst localRequests = new Map<string, Map<string, number>>();\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.localCancellation) || event.kind !== \"cancellation.requested\") continue;\n\t\tconst key = localKey(event);\n\t\tlet streams = localRequests.get(key);\n\t\tif (streams !== undefined) err(event, \"duplicate local cancellation.requested for target and scope\");\n\t\telse {\n\t\t\tstreams = new Map<string, number>();\n\t\t\tlocalRequests.set(key, streams);\n\t\t}\n\t\tstreams.set(event.streamId, Math.min(streams.get(event.streamId) ?? event.sequence, event.sequence));\n\t}\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.localCancellation) || event.kind !== \"cancellation.outcome\") continue;\n\t\tconst streams = localRequests.get(localKey(event));\n\t\tif (streams === undefined) {\n\t\t\terr(event, \"no matching local cancellation.requested for target and scope\");\n\t\t} else {\n\t\t\tconst sequence = streams.get(event.streamId);\n\t\t\t// Different streams have no shared sequence clock. Do not infer order from timestamps.\n\t\t\tif (sequence !== undefined && sequence >= event.sequence) {\n\t\t\t\terr(event, \"observation precedes its local cancellation.requested in the producer stream\");\n\t\t\t}\n\t\t}\n\t}\n\n\t// Control correlation: a claim of termination, consumption or a started retry needs observed linkage.\n\tfor (const event of events) {\n\t\tif (!typed(event, IDS.controlCorrelation) || event.payload.state !== \"applied\") continue;\n\t\tconst request = str(event.payload.requestId) ?? \"\";\n\t\tconst observed = obj(event.payload.observed);\n\t\tif (event.payload.action === \"cancel\") {\n\t\t\t// A cancellation.outcome is itself the observation; any other event must point at one.\n\t\t\tif (event.payload.terminationConfirmed !== true || event.kind === \"cancellation.outcome\") continue;\n\t\t\tconst outcome = confirmedCancels.get(request)?.has(targetKey(event)) ?? false;\n\t\t\tif (!outcome && !confirmedFinishes.has(targetKey(event))) {\n\t\t\t\terr(\n\t\t\t\t\tevent,\n\t\t\t\t\t\"terminationConfirmed is claimed without a matching observed cancellation.outcome or confirmed attempt.finished for request\",\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (event.payload.action === \"continue\") {\n\t\t\tconst proofError = dhAppliedControlEvidenceError(\n\t\t\t\t{\n\t\t\t\t\tgenerationId: event.generationId,\n\t\t\t\t\tagentId: event.agentId,\n\t\t\t\t\tattemptId: event.attemptId,\n\t\t\t\t\trequestId: request,\n\t\t\t\t},\n\t\t\t\t\"continue\",\n\t\t\t\t{ consumingEventId: str(observed?.consumingEventId) },\n\t\t\t\t{ attemptStarts, relationsByAgent, byId },\n\t\t\t);\n\t\t\tif (proofError) err(event, proofError);\n\t\t\tconst consumingId = str(observed?.consumingEventId) ?? \"\";\n\t\t\tconst consumer = byId.get(consumingId);\n\t\t\tif (consumer === undefined) {\n\t\t\t\terr(event, \"consumingEventId references no event\");\n\t\t\t} else if (!consumesContinuation(consumer)) {\n\t\t\t\terr(event, \"consumingEventId is not a continuation.consumed decision\");\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tconsumer.generationId !== event.generationId ||\n\t\t\t\t\tconsumer.agentId !== event.agentId ||\n\t\t\t\t\tconsumer.attemptId !== event.attemptId\n\t\t\t\t) {\n\t\t\t\t\terr(\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\"consuming event belongs to a different generation, agent or attempt than the addressed target\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst answered = str(consumer.payload.requestId);\n\t\t\t\tif (answered !== request) {\n\t\t\t\t\terr(event, \"consuming event answers a different request\");\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (event.payload.action === \"retry\") {\n\t\t\tconst proofError = dhAppliedControlEvidenceError(\n\t\t\t\tevent,\n\t\t\t\t\"retry\",\n\t\t\t\t{ startedAgentId: str(observed?.startedAgentId), startedAttemptId: str(observed?.startedAttemptId) },\n\t\t\t\t{ attemptStarts, relationsByAgent, byId },\n\t\t\t);\n\t\t\tif (proofError) err(event, proofError);\n\t\t\tconst startedAgent = str(observed?.startedAgentId);\n\t\t\tconst startedAttempt = str(observed?.startedAttemptId);\n\t\t\tif (startedAgent !== undefined && startedAgent !== event.agentId) {\n\t\t\t\t// Native Code retry: a new agent linked to the addressed agent and attempt by a cross-agent relation.\n\t\t\t\tconst relation = relationsByAgent.get(startedAgent);\n\t\t\t\tif (relation === undefined) {\n\t\t\t\t\terr(event, \"startedAgentId has no agent.spawned relation in this bundle\");\n\t\t\t\t} else if (\n\t\t\t\t\trelation.payload.sourceAgentId !== event.agentId ||\n\t\t\t\t\trelation.payload.sourceAttemptId !== event.attemptId\n\t\t\t\t) {\n\t\t\t\t\terr(event, \"started agent is related to a different agent or attempt than the addressed target\");\n\t\t\t\t}\n\t\t\t\tif (startedAttempt !== undefined && attemptStarts.get(startedAttempt)?.agentId !== startedAgent) {\n\t\t\t\t\terr(event, \"startedAttemptId has no attempt.started for startedAgentId\");\n\t\t\t\t}\n\t\t\t} else if (startedAttempt === undefined) {\n\t\t\t\terr(event, \"a same-agent retry needs observed.startedAttemptId\");\n\t\t\t} else {\n\t\t\t\t// Same agent, new attempt: the start event retries the addressed attempt.\n\t\t\t\tconst start = attemptStarts.get(startedAttempt);\n\t\t\t\tif (start === undefined) {\n\t\t\t\t\terr(event, \"startedAttemptId has no attempt.started in this bundle\");\n\t\t\t\t} else {\n\t\t\t\t\tif (start.agentId !== event.agentId) {\n\t\t\t\t\t\terr(event, \"started attempt belongs to a different agent\");\n\t\t\t\t\t}\n\t\t\t\t\tif (start.retryOfAttemptId !== event.attemptId) {\n\t\t\t\t\t\terr(event, \"started attempt does not retry the addressed attempt\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn errors;\n}\n\ninterface DhControlEvidenceTarget {\n\treadonly generationId: string;\n\treadonly agentId: string;\n\treadonly attemptId?: string;\n\treadonly requestId?: string;\n}\ninterface DhControlObserved {\n\treadonly startedAgentId?: string;\n\treadonly startedAttemptId?: string;\n\treadonly consumingEventId?: string;\n}\ninterface DhControlEvidenceIndexes {\n\treadonly attemptStarts: ReadonlyMap<string, DhEventV1>;\n\treadonly relationsByAgent: ReadonlyMap<string, DhEventV1>;\n\treadonly byId: ReadonlyMap<string, DhEventV1>;\n}\n/** Shared status/graph linkage check. Supplied records are evidence, never an allocation alone. */\nfunction dhAppliedControlEvidenceError(\n\ttarget: DhControlEvidenceTarget,\n\taction: \"retry\" | \"continue\",\n\tobserved: DhControlObserved,\n\tindex: DhControlEvidenceIndexes,\n): string | undefined {\n\tif (action === \"continue\") {\n\t\tconst consumer = observed.consumingEventId ? index.byId.get(observed.consumingEventId) : undefined;\n\t\tif (\n\t\t\t!consumer ||\n\t\t\t!consumesContinuation(consumer) ||\n\t\t\tconsumer.payload.channel === \"queue-steering\" ||\n\t\t\tconsumer.generationId !== target.generationId ||\n\t\t\tconsumer.agentId !== target.agentId ||\n\t\t\tconsumer.attemptId !== target.attemptId ||\n\t\t\tconsumer.payload.requestId !== target.requestId\n\t\t)\n\t\t\treturn \"not_eligible: no matching target consumption\";\n\t\treturn;\n\t}\n\tconst start = observed.startedAttemptId ? index.attemptStarts.get(observed.startedAttemptId) : undefined;\n\tconst source = target.attemptId ? index.attemptStarts.get(target.attemptId) : undefined;\n\tif (!observed.startedAgentId || !start || start.agentId !== observed.startedAgentId)\n\t\treturn \"not_eligible: no matching observed start pair\";\n\tif (\n\t\t!source ||\n\t\tsource.agentId !== target.agentId ||\n\t\tsource.generationId !== target.generationId ||\n\t\tstart.generationId !== target.generationId ||\n\t\tsource.tenantScope.environmentId !== start.tenantScope.environmentId ||\n\t\tsource.tenantScope.projectId !== start.tenantScope.projectId\n\t)\n\t\treturn \"not_eligible: observed start has wrong generation or scope\";\n\tif (start.agentId === target.agentId) {\n\t\tif (\n\t\t\tstart.retryOfAttemptId !== target.attemptId ||\n\t\t\tsource.attemptNumber === undefined ||\n\t\t\tstart.attemptNumber !== source.attemptNumber + 1\n\t\t)\n\t\t\treturn \"not_eligible: observed start has wrong retry linkage or number\";\n\t} else {\n\t\tconst relation = index.relationsByAgent.get(start.agentId);\n\t\tif (\n\t\t\tstart.attemptNumber !== 1 ||\n\t\t\tstart.retryOfAttemptId !== undefined ||\n\t\t\t!relation ||\n\t\t\trelation.producer.issuer !== \"code\" ||\n\t\t\trelation.generationId !== target.generationId ||\n\t\t\trelation.payload.sourceAgentId !== target.agentId ||\n\t\t\trelation.payload.sourceAttemptId !== target.attemptId ||\n\t\t\trelation.tenantScope.environmentId !== source.tenantScope.environmentId ||\n\t\t\trelation.tenantScope.projectId !== source.tenantScope.projectId\n\t\t)\n\t\t\treturn \"not_eligible: no admitted native relation for observed start\";\n\t}\n}\nexport function assertDhAppliedControlEvidence(\n\ttarget: DhControlEvidenceTarget,\n\taction: \"retry\" | \"continue\",\n\tobserved: DhControlObserved,\n\tevents: readonly DhEventV1[],\n): void {\n\tconst attemptStarts = new Map<string, DhEventV1>(),\n\t\trelationsByAgent = new Map<string, DhEventV1>(),\n\t\tbyId = new Map<string, DhEventV1>();\n\tfor (const event of events) {\n\t\tbyId.set(event.eventId, event);\n\t\tif (event.kind === \"attempt.started\" && event.attemptId) attemptStarts.set(event.attemptId, event);\n\t\tif (typed(event, IDS.agentRelation)) relationsByAgent.set(event.agentId, event);\n\t}\n\tif (dhAppliedControlEvidenceError(target, action, observed, { attemptStarts, relationsByAgent, byId }))\n\t\tthrow new DhContractError(\"not_eligible\");\n}\n"]}
|
package/dist/trace.d.ts
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { type Static, Type } from "typebox";
|
|
2
|
+
export * from "./trace-api.ts";
|
|
3
|
+
export * from "./trace-artifact.ts";
|
|
4
|
+
export * from "./trace-canonical.ts";
|
|
5
|
+
export * from "./trace-export.ts";
|
|
6
|
+
export * from "./trace-http.ts";
|
|
7
|
+
export * from "./trace-payload.ts";
|
|
8
|
+
export declare const DH_TRACE_CONTRACT_VERSION: 1;
|
|
9
|
+
export declare const DH_EVENT_SCHEMA_ID: "dh.event/1";
|
|
10
|
+
export declare const DH_ARTIFACT_SCHEMA_ID: "dh.artifact/1";
|
|
11
|
+
export declare const DH_ACK_SCHEMA_ID: "dh.ack/1";
|
|
12
|
+
export declare const DH_EVENT_MAX_UTF8_BYTES = 65536;
|
|
13
|
+
export declare const DH_ARTIFACT_MAX_BYTES: number;
|
|
14
|
+
export declare const DH_MAX_EXTERNAL_IDS = 16;
|
|
15
|
+
export declare const DH_MAX_PAYLOAD_PROPERTIES = 128;
|
|
16
|
+
export declare const DH_MAX_FIELD_COVERAGE_ENTRIES = 64;
|
|
17
|
+
export declare const DH_MAX_ARTIFACT_REFS = 32;
|
|
18
|
+
export declare const DH_MAX_REMOVED_FIELD_PATHS = 256;
|
|
19
|
+
export declare const DH_MAX_ACK_IDS = 1000;
|
|
20
|
+
/** Maximum container nesting of `payload` (the payload object itself is depth 1). */
|
|
21
|
+
export declare const DH_PAYLOAD_MAX_DEPTH = 16;
|
|
22
|
+
/** Maximum number of JSON values (containers and scalars, root included) in one `payload`. */
|
|
23
|
+
export declare const DH_PAYLOAD_MAX_NODES = 4096;
|
|
24
|
+
/** Maximum length of any object key inside `payload`, at any depth. */
|
|
25
|
+
export declare const DH_PAYLOAD_MAX_KEY_LENGTH = 128;
|
|
26
|
+
/** Maximum length of a `fields` key (field path). */
|
|
27
|
+
export declare const DH_FIELD_PATH_MAX_LENGTH = 256;
|
|
28
|
+
export declare const DH_ISSUERS: readonly ["code", "cli", "flow"];
|
|
29
|
+
export type DhIssuer = (typeof DH_ISSUERS)[number];
|
|
30
|
+
export declare const DhIssuerSchema: Type.TEnum<["code", "cli", "flow"]>;
|
|
31
|
+
/** Producer-native id mapped onto the canonical trace id space (e.g. code.run, cli.session, flow.launch). */
|
|
32
|
+
export declare const DhExternalIdSchema: Type.TObject<{
|
|
33
|
+
readonly issuer: Type.TEnum<["code", "cli", "flow"]>;
|
|
34
|
+
readonly namespace: Type.TString;
|
|
35
|
+
readonly value: Type.TString;
|
|
36
|
+
readonly mappingVersion: Type.TInteger;
|
|
37
|
+
}>;
|
|
38
|
+
export type DhExternalId = Static<typeof DhExternalIdSchema>;
|
|
39
|
+
export declare const DhGenerationIdSchema: Type.TString;
|
|
40
|
+
export declare const DhAgentIdSchema: Type.TString;
|
|
41
|
+
export declare const DhAttemptIdSchema: Type.TString;
|
|
42
|
+
export declare const DhEventIdSchema: Type.TString;
|
|
43
|
+
export declare const DhArtifactIdSchema: Type.TString;
|
|
44
|
+
export declare const DH_COVERAGE_STATES: readonly ["captured", "redacted", "truncated", "unavailable", "not-applicable", "inferred"];
|
|
45
|
+
export type DhCoverageState = (typeof DH_COVERAGE_STATES)[number];
|
|
46
|
+
export declare const DH_COVERAGE_REASONS: readonly ["secret_redacted", "policy_redacted", "size_limit", "producer_lost", "worker_exited_before_flush", "legacy_producer", "not_captured_by_version", "provider_hidden", "not_applicable", "derived_from_summary"];
|
|
47
|
+
export type DhCoverageReason = (typeof DH_COVERAGE_REASONS)[number];
|
|
48
|
+
/**
|
|
49
|
+
* Per-field or per-artifact capture coverage. A `reason` is REQUIRED for every state except
|
|
50
|
+
* `captured` (enforced by the parse functions, not by the schema alone).
|
|
51
|
+
*
|
|
52
|
+
* `inferred` means the value was derived (e.g. from a summary) rather than recorded. Consumers
|
|
53
|
+
* MUST NOT present an `inferred` value as a recorded fact.
|
|
54
|
+
*/
|
|
55
|
+
export declare const DhCoverageSchema: Type.TObject<{
|
|
56
|
+
readonly state: Type.TEnum<["captured", "redacted", "truncated", "unavailable", "not-applicable", "inferred"]>;
|
|
57
|
+
readonly reason: Type.TOptional<Type.TEnum<["secret_redacted", "policy_redacted", "size_limit", "producer_lost", "worker_exited_before_flush", "legacy_producer", "not_captured_by_version", "provider_hidden", "not_applicable", "derived_from_summary"]>>;
|
|
58
|
+
readonly detail: Type.TOptional<Type.TString>;
|
|
59
|
+
}>;
|
|
60
|
+
export type DhCoverage = Static<typeof DhCoverageSchema>;
|
|
61
|
+
export declare const DhRedactionSchema: Type.TObject<{
|
|
62
|
+
readonly policyId: Type.TString;
|
|
63
|
+
readonly policyVersion: Type.TString;
|
|
64
|
+
readonly removedFieldPaths: Type.TArray<Type.TString>;
|
|
65
|
+
}>;
|
|
66
|
+
export type DhRedaction = Static<typeof DhRedactionSchema>;
|
|
67
|
+
/** Producer-declared scope. The server re-checks it against the authenticated producer binding. */
|
|
68
|
+
export declare const DH_SCOPE_ID_PATTERN = "^[A-Za-z0-9][A-Za-z0-9_.-]{0,255}$";
|
|
69
|
+
export declare const DhScopeIdSchema: Type.TString;
|
|
70
|
+
export declare const DhStreamIdSchema: Type.TString;
|
|
71
|
+
export declare const DhTenantScopeSchema: Type.TObject<{
|
|
72
|
+
readonly environmentId: Type.TString;
|
|
73
|
+
readonly projectId: Type.TString;
|
|
74
|
+
}>;
|
|
75
|
+
export type DhTenantScope = Static<typeof DhTenantScopeSchema>;
|
|
76
|
+
export declare const DH_EVENT_KINDS: readonly ["generation.started", "generation.finished", "agent.spawned", "attempt.started", "attempt.finished", "attempt.retry_scheduled", "model.request", "model.response", "tool.call", "tool.result", "file.change", "orchestration.decision", "cancellation.requested", "cancellation.outcome", "usage.reported", "capture.health", "control.correlation", "event.amendment"];
|
|
77
|
+
export type DhEventKind = (typeof DH_EVENT_KINDS)[number];
|
|
78
|
+
export declare const DH_OUTCOMES: readonly ["succeeded", "failed", "cancelled", "unknown"];
|
|
79
|
+
export type DhOutcome = (typeof DH_OUTCOMES)[number];
|
|
80
|
+
export declare const DhFailureSchema: Type.TObject<{
|
|
81
|
+
readonly code: Type.TString;
|
|
82
|
+
readonly message: Type.TOptional<Type.TString>;
|
|
83
|
+
}>;
|
|
84
|
+
export type DhFailure = Static<typeof DhFailureSchema>;
|
|
85
|
+
export declare const DhEventV1Schema: Type.TObject<{
|
|
86
|
+
readonly schema: Type.TLiteral<"dh.event/1">;
|
|
87
|
+
readonly eventId: Type.TString;
|
|
88
|
+
readonly generationId: Type.TString;
|
|
89
|
+
readonly agentId: Type.TString;
|
|
90
|
+
readonly attemptId: Type.TOptional<Type.TString>;
|
|
91
|
+
readonly parentAgentId: Type.TOptional<Type.TString>;
|
|
92
|
+
readonly producer: Type.TObject<{
|
|
93
|
+
readonly issuer: Type.TEnum<["code", "cli", "flow"]>;
|
|
94
|
+
readonly version: Type.TString;
|
|
95
|
+
readonly mode: Type.TString;
|
|
96
|
+
}>;
|
|
97
|
+
readonly externalIds: Type.TArray<Type.TObject<{
|
|
98
|
+
readonly issuer: Type.TEnum<["code", "cli", "flow"]>;
|
|
99
|
+
readonly namespace: Type.TString;
|
|
100
|
+
readonly value: Type.TString;
|
|
101
|
+
readonly mappingVersion: Type.TInteger;
|
|
102
|
+
}>>;
|
|
103
|
+
/** Monotonic per producer stream. */
|
|
104
|
+
readonly sequence: Type.TInteger;
|
|
105
|
+
readonly streamId: Type.TString;
|
|
106
|
+
readonly occurredAt: Type.TString;
|
|
107
|
+
readonly recordedAt: Type.TString;
|
|
108
|
+
readonly kind: Type.TEnum<["generation.started", "generation.finished", "agent.spawned", "attempt.started", "attempt.finished", "attempt.retry_scheduled", "model.request", "model.response", "tool.call", "tool.result", "file.change", "orchestration.decision", "cancellation.requested", "cancellation.outcome", "usage.reported", "capture.health", "control.correlation", "event.amendment"]>;
|
|
109
|
+
readonly outcome: Type.TOptional<Type.TEnum<["succeeded", "failed", "cancelled", "unknown"]>>;
|
|
110
|
+
readonly failure: Type.TOptional<Type.TObject<{
|
|
111
|
+
readonly code: Type.TString;
|
|
112
|
+
readonly message: Type.TOptional<Type.TString>;
|
|
113
|
+
}>>;
|
|
114
|
+
readonly retryOfAttemptId: Type.TOptional<Type.TString>;
|
|
115
|
+
readonly attemptNumber: Type.TOptional<Type.TInteger>;
|
|
116
|
+
/**
|
|
117
|
+
* JSON-safe values only. TypeBox cannot express the depth, node, key-length or forbidden-key
|
|
118
|
+
* limits (and drops `maxLength` on Record key schemas), so `parseDhEvent` enforces them with
|
|
119
|
+
* `assertJsonPayload` before cloning.
|
|
120
|
+
*/
|
|
121
|
+
readonly payload: Type.TRecord<"^.*$", Type.TUnknown>;
|
|
122
|
+
/**
|
|
123
|
+
* Field path (e.g. `payload.messages`) -> coverage for that field. Key length and pattern are
|
|
124
|
+
* enforced by `parseDhEvent` (`assertFieldPaths`), not by the schema.
|
|
125
|
+
*/
|
|
126
|
+
readonly fields: Type.TRecord<"^.*$", Type.TObject<{
|
|
127
|
+
readonly state: Type.TEnum<["captured", "redacted", "truncated", "unavailable", "not-applicable", "inferred"]>;
|
|
128
|
+
readonly reason: Type.TOptional<Type.TEnum<["secret_redacted", "policy_redacted", "size_limit", "producer_lost", "worker_exited_before_flush", "legacy_producer", "not_captured_by_version", "provider_hidden", "not_applicable", "derived_from_summary"]>>;
|
|
129
|
+
readonly detail: Type.TOptional<Type.TString>;
|
|
130
|
+
}>>;
|
|
131
|
+
readonly artifacts: Type.TOptional<Type.TArray<Type.TString>>;
|
|
132
|
+
readonly redaction: Type.TObject<{
|
|
133
|
+
readonly policyId: Type.TString;
|
|
134
|
+
readonly policyVersion: Type.TString;
|
|
135
|
+
readonly removedFieldPaths: Type.TArray<Type.TString>;
|
|
136
|
+
}>;
|
|
137
|
+
readonly tenantScope: Type.TObject<{
|
|
138
|
+
readonly environmentId: Type.TString;
|
|
139
|
+
readonly projectId: Type.TString;
|
|
140
|
+
}>;
|
|
141
|
+
}>;
|
|
142
|
+
export type DhJsonValue = null | boolean | number | string | readonly DhJsonValue[] | {
|
|
143
|
+
readonly [key: string]: DhJsonValue;
|
|
144
|
+
};
|
|
145
|
+
export type DhEventV1 = Omit<Static<typeof DhEventV1Schema>, "payload"> & {
|
|
146
|
+
payload: {
|
|
147
|
+
readonly [key: string]: DhJsonValue;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
export declare const DH_ARTIFACT_KINDS: readonly ["file-diff", "file-snapshot", "tool-output", "model-context", "log", "bundle"];
|
|
151
|
+
export type DhArtifactKind = (typeof DH_ARTIFACT_KINDS)[number];
|
|
152
|
+
export declare const DH_ARTIFACT_MEDIA_TYPES: readonly ["text/plain", "text/x-diff", "application/json", "application/octet-stream"];
|
|
153
|
+
export type DhArtifactMediaType = (typeof DH_ARTIFACT_MEDIA_TYPES)[number];
|
|
154
|
+
export declare const DhArtifactV1Schema: Type.TObject<{
|
|
155
|
+
readonly schema: Type.TLiteral<"dh.artifact/1">;
|
|
156
|
+
readonly artifactId: Type.TString;
|
|
157
|
+
readonly generationId: Type.TString;
|
|
158
|
+
readonly agentId: Type.TString;
|
|
159
|
+
readonly attemptId: Type.TOptional<Type.TString>;
|
|
160
|
+
readonly eventId: Type.TString;
|
|
161
|
+
readonly kind: Type.TEnum<["file-diff", "file-snapshot", "tool-output", "model-context", "log", "bundle"]>;
|
|
162
|
+
readonly mediaType: Type.TEnum<["text/plain", "text/x-diff", "application/json", "application/octet-stream"]>;
|
|
163
|
+
readonly sizeBytes: Type.TInteger;
|
|
164
|
+
readonly sha256: Type.TString;
|
|
165
|
+
readonly logicalPath: Type.TOptional<Type.TString>;
|
|
166
|
+
readonly coverage: Type.TObject<{
|
|
167
|
+
readonly state: Type.TEnum<["captured", "redacted", "truncated", "unavailable", "not-applicable", "inferred"]>;
|
|
168
|
+
readonly reason: Type.TOptional<Type.TEnum<["secret_redacted", "policy_redacted", "size_limit", "producer_lost", "worker_exited_before_flush", "legacy_producer", "not_captured_by_version", "provider_hidden", "not_applicable", "derived_from_summary"]>>;
|
|
169
|
+
readonly detail: Type.TOptional<Type.TString>;
|
|
170
|
+
}>;
|
|
171
|
+
readonly redaction: Type.TObject<{
|
|
172
|
+
readonly policyId: Type.TString;
|
|
173
|
+
readonly policyVersion: Type.TString;
|
|
174
|
+
readonly removedFieldPaths: Type.TArray<Type.TString>;
|
|
175
|
+
}>;
|
|
176
|
+
readonly tenantScope: Type.TObject<{
|
|
177
|
+
readonly environmentId: Type.TString;
|
|
178
|
+
readonly projectId: Type.TString;
|
|
179
|
+
}>;
|
|
180
|
+
}>;
|
|
181
|
+
export type DhArtifactV1 = Static<typeof DhArtifactV1Schema>;
|
|
182
|
+
export declare const DH_REJECTION_CODES: readonly ["duplicate_conflict", "schema_invalid", "scope_denied", "tombstoned", "too_large", "rate_limited"];
|
|
183
|
+
export type DhRejectionCode = (typeof DH_REJECTION_CODES)[number];
|
|
184
|
+
/**
|
|
185
|
+
* Server acknowledgement for a producer stream. Delivering an identical record again is accepted
|
|
186
|
+
* idempotently (it appears in `accepted`); delivering the same id with different content is
|
|
187
|
+
* rejected as `duplicate_conflict` and never overwrites the stored record.
|
|
188
|
+
*/
|
|
189
|
+
export declare const DhAckV1Schema: Type.TObject<{
|
|
190
|
+
readonly schema: Type.TLiteral<"dh.ack/1">;
|
|
191
|
+
readonly streamId: Type.TString;
|
|
192
|
+
readonly ackedThroughSequence: Type.TInteger;
|
|
193
|
+
readonly accepted: Type.TObject<{
|
|
194
|
+
readonly eventIds: Type.TArray<Type.TString>;
|
|
195
|
+
readonly artifactIds: Type.TArray<Type.TString>;
|
|
196
|
+
}>;
|
|
197
|
+
readonly rejected: Type.TArray<Type.TObject<{
|
|
198
|
+
readonly id: Type.TString;
|
|
199
|
+
readonly code: Type.TEnum<["duplicate_conflict", "schema_invalid", "scope_denied", "tombstoned", "too_large", "rate_limited"]>;
|
|
200
|
+
readonly retryable: Type.TBoolean;
|
|
201
|
+
}>>;
|
|
202
|
+
readonly receivedAt: Type.TString;
|
|
203
|
+
}>;
|
|
204
|
+
export type DhAckV1 = Static<typeof DhAckV1Schema>;
|
|
205
|
+
/**
|
|
206
|
+
* The input is validated, serialized exactly once, and the serialized string is parsed and fully
|
|
207
|
+
* re-validated. The shared descriptor gate rejects getters and toJSON before invocation.
|
|
208
|
+
* The byte limit is measured on the same canonical string returned by serialization.
|
|
209
|
+
*/
|
|
210
|
+
export declare function parseDhEvent(value: unknown): DhEventV1;
|
|
211
|
+
export declare function parseDhArtifact(value: unknown): DhArtifactV1;
|
|
212
|
+
export declare function parseDhAck(value: unknown): DhAckV1;
|
|
213
|
+
export interface DhReceiptOwner {
|
|
214
|
+
readonly bindingId: string;
|
|
215
|
+
readonly originProducerInstanceId: string;
|
|
216
|
+
readonly originStreamId: string;
|
|
217
|
+
readonly originIssuer: DhIssuer;
|
|
218
|
+
}
|
|
219
|
+
export interface DhTerminalOwnership {
|
|
220
|
+
readonly authorizedAmendmentEventIds: ReadonlySet<string>;
|
|
221
|
+
readonly receiptOwners: ReadonlyMap<string, DhReceiptOwner>;
|
|
222
|
+
}
|
|
223
|
+
export interface DhRetryAdmissionContext extends DhTerminalOwnership {
|
|
224
|
+
readonly starts: readonly DhEventV1[];
|
|
225
|
+
readonly terminals: readonly DhEventV1[];
|
|
226
|
+
readonly amendments: readonly DhEventV1[];
|
|
227
|
+
readonly retryClaims: ReadonlyMap<string, string>;
|
|
228
|
+
}
|
|
229
|
+
export interface DhEffectiveTerminal {
|
|
230
|
+
readonly event: DhEventV1;
|
|
231
|
+
readonly outcome: DhOutcome | undefined;
|
|
232
|
+
readonly resolutionEventId?: string;
|
|
233
|
+
readonly conflict: boolean;
|
|
234
|
+
readonly authorityUnresolved: boolean;
|
|
235
|
+
}
|
|
236
|
+
/** Single-record shape only. It never treats a retry link as proof that its source failed. */
|
|
237
|
+
export declare function assertDhManagedLifecycle(input: DhEventV1): void;
|
|
238
|
+
/** Original terminals remain immutable. Only committed, explicitly authorized same-owner resolutions apply. */
|
|
239
|
+
export declare function resolveDhEffectiveTerminals(events: readonly DhEventV1[], ownership?: DhTerminalOwnership): ReadonlyMap<string, DhEffectiveTerminal>;
|
|
240
|
+
/** Eligibility uses durable authenticated context, not source absence or producer timestamps. */
|
|
241
|
+
export declare function assertDhRetryAdmission(start: DhEventV1, context: DhRetryAdmissionContext): void;
|
|
242
|
+
export interface DhTraceBundle {
|
|
243
|
+
events: readonly DhEventV1[];
|
|
244
|
+
artifacts: readonly DhArtifactV1[];
|
|
245
|
+
}
|
|
246
|
+
export type DhTraceBundleValidation = {
|
|
247
|
+
ok: true;
|
|
248
|
+
} | {
|
|
249
|
+
ok: false;
|
|
250
|
+
errors: string[];
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* Validates cross-record integrity of already-parsed records. Does not re-run schema checks, but
|
|
254
|
+
* reports (rather than compares) timestamps that are not calendar-valid UTC instants.
|
|
255
|
+
*/
|
|
256
|
+
export declare function validateDhTraceBundle(bundle: DhTraceBundle, ownership?: DhTerminalOwnership): DhTraceBundleValidation;
|
|
257
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}
|