Huginn/schemas/cultnet/huginn.mind_response.v1.schema.json

4982 lines
No EOL
125 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "HuginnMindResponse",
"description": "Every answer a mind gives. A refusal is data in the response, never a\ntransport failure: the read side carries `Refused`, the write side carries\nthe outcome's own `Refused`.",
"oneOf": [
{
"type": "object",
"properties": {
"Whoami": {
"$ref": "#/$defs/MindStatus"
}
},
"additionalProperties": false,
"required": [
"Whoami"
]
},
{
"type": "object",
"properties": {
"Admit": {
"$ref": "#/$defs/PipelineAdmissionOutcome"
}
},
"additionalProperties": false,
"required": [
"Admit"
]
},
{
"type": "object",
"properties": {
"View": {
"anyOf": [
{
"$ref": "#/$defs/PipelineDocumentView"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"required": [
"View"
]
},
{
"type": "object",
"properties": {
"Query": {
"$ref": "#/$defs/PipelineSelectionPage"
}
},
"additionalProperties": false,
"required": [
"Query"
]
},
{
"type": "object",
"properties": {
"Refused": {
"$ref": "#/$defs/MindRefusal"
}
},
"additionalProperties": false,
"required": [
"Refused"
]
},
{
"type": "object",
"properties": {
"Persona": {
"anyOf": [
{
"$ref": "#/$defs/PersonaStateView"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"required": [
"Persona"
]
},
{
"type": "object",
"properties": {
"PersonaPut": {
"$ref": "#/$defs/PersonaPutOutcome"
}
},
"additionalProperties": false,
"required": [
"PersonaPut"
]
},
{
"type": "object",
"properties": {
"Sources": {
"$ref": "#/$defs/SourceHits"
}
},
"additionalProperties": false,
"required": [
"Sources"
]
},
{
"type": "object",
"properties": {
"Activity": {
"$ref": "#/$defs/RepoActivity"
}
},
"additionalProperties": false,
"required": [
"Activity"
]
},
{
"type": "object",
"properties": {
"RootsTouched": {
"type": "array",
"items": {
"$ref": "#/$defs/RootTouched"
}
}
},
"additionalProperties": false,
"required": [
"RootsTouched"
]
},
{
"description": "The answer did not fit one send and is being held for the client to\nfetch. Nothing in a mind produces this: the daemon's serve module does,\nin place of an answer, and the answer it stands for is the named\nMessagePack of the `HuginnMindResponse` the mind gave.",
"type": "object",
"properties": {
"Deferred": {
"$ref": "#/$defs/DeferredAnswer"
}
},
"additionalProperties": false,
"required": [
"Deferred"
]
}
],
"$defs": {
"AdmissionFacts": {
"description": "What admission recorded about a document when it landed: the receipt that\nwrote it, the `now` that receipt was taken at, who asked, and the\nreceipt's ordinal, which is the read side's order and its snapshot\nposition.",
"type": "object",
"properties": {
"admitted_at": {
"type": "string"
},
"ordinal": {
"type": "integer",
"format": "uint64",
"minimum": 1
},
"provenance": {
"$ref": "#/$defs/PipelineProvenance"
},
"receipt_id": {
"type": "string"
}
},
"required": [
"receipt_id",
"admitted_at",
"provenance",
"ordinal"
]
},
"AuthorityMap": {
"type": "object",
"properties": {
"deletion_line": {
"$ref": "#/$defs/Line"
},
"derived_state": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 16
},
"forbidden_writers": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 16
},
"inputs": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 16
},
"outputs": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 16
},
"owner": {
"$ref": "#/$defs/Line"
},
"shared_paths": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 16
}
},
"required": [
"owner",
"inputs",
"outputs",
"derived_state",
"forbidden_writers",
"shared_paths",
"deletion_line"
]
},
"CitationRole": {
"description": "The referring field of a citation edge, one per leaf field that names\nanother document. The wire spelling is the field's own name, so a client\nreads an edge's role as the field it came from.",
"type": "string",
"enum": [
"raised_in",
"answers",
"rulings",
"questions",
"cut_spec",
"forks",
"cut_report",
"findings",
"verdict",
"source",
"subject",
"superseded_by",
"resolved_by",
"deferred_to",
"documents",
"claims",
"consolidates"
]
},
"ClaimOutcome": {
"type": "string",
"enum": [
"Holds",
"Falsified",
"Unproven"
]
},
"CodeLocation": {
"type": "object",
"properties": {
"end_line": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0
},
"line": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"path": {
"$ref": "#/$defs/Short"
},
"symbol": {
"anyOf": [
{
"$ref": "#/$defs/Symbol"
},
{
"type": "null"
}
]
}
},
"required": [
"path",
"line"
]
},
"CommitRange": {
"type": "object",
"properties": {
"base": {
"$ref": "#/$defs/Sha"
},
"head": {
"$ref": "#/$defs/Sha"
}
},
"required": [
"base",
"head"
]
},
"CutDelete": {
"type": "object",
"properties": {
"lines": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"note": {
"$ref": "#/$defs/Line"
},
"path": {
"$ref": "#/$defs/Short"
}
},
"required": [
"path",
"lines",
"note"
]
},
"CutVerification": {
"type": "object",
"properties": {
"builds": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 64
},
"negative": {
"type": "array",
"items": {
"$ref": "#/$defs/NegativeCheck"
},
"maxItems": 64
},
"operator": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 64
},
"tests": {
"type": "array",
"items": {
"$ref": "#/$defs/VerificationTest"
},
"maxItems": 64
}
},
"required": [
"builds",
"tests",
"negative",
"operator"
]
},
"Date": {
"description": "A calendar date, `YYYY-MM-DD`.",
"type": "string",
"maxLength": 10
},
"DeferredAnswer": {
"description": "Where the body of an answer that did not fit one send can be fetched: the\nreference's own manifest, whose `contentHash` is the SHA-256 of the answer's\nencoded bytes and whose chunks are asked for, one at a time, on the session\nthis arrived on. Row-level facts come from asking again with a header\nprojection; there is no summary.",
"type": "object",
"properties": {
"manifest": {
"description": "gamecult.mesh.cdn_artifact_manifest.v1, the C# reference's CultMeshCdnArtifactManifest as its positional array: [artifactId, kind, version, contentHash, sizeBytes, mimeType, createdAtUtc, chunks[[chunkHash, offset, sizeBytes, recordKey]], tags, metadata].",
"type": "array"
}
},
"required": [
"manifest"
]
},
"Deviation": {
"type": "object",
"properties": {
"what": {
"$ref": "#/$defs/Line"
},
"why": {
"$ref": "#/$defs/Line"
}
},
"required": [
"what",
"why"
]
},
"DocRef": {
"type": "object",
"properties": {
"commit": {
"$ref": "#/$defs/Sha"
},
"end_line": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"path": {
"$ref": "#/$defs/Short"
},
"start_line": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"path",
"start_line",
"end_line",
"commit"
]
},
"Evidence": {
"type": "object",
"properties": {
"kind": {
"$ref": "#/$defs/EvidenceKind"
},
"locator": {
"$ref": "#/$defs/Line"
},
"result": {
"$ref": "#/$defs/Line"
}
},
"required": [
"kind",
"locator",
"result"
]
},
"EvidenceKind": {
"type": "string",
"enum": [
"Command",
"Test",
"Mutation",
"Probe",
"SourceRead",
"Capture"
]
},
"Faculty": {
"description": "Which faculty a batch was admitted as. Attribution, not authority\n(ruling 18): no admission rule trusts it, and Cut 9's views read it back\nfrom the receipt.",
"type": "string",
"enum": [
"SelfFaculty",
"Imagination",
"Hands",
"Soul",
"Life",
"Eyes",
"Operator"
]
},
"FileChange": {
"type": "object",
"properties": {
"change": {
"$ref": "#/$defs/Line"
},
"location": {
"$ref": "#/$defs/CodeLocation"
}
},
"required": [
"location",
"change"
]
},
"FindingConfidence": {
"type": "string",
"enum": [
"Confirmed",
"Plausible"
]
},
"FindingOrigin": {
"type": "string",
"enum": [
"Introduced",
"PreExisting"
]
},
"FindingSeverity": {
"type": "string",
"enum": [
"Blocker",
"High",
"Medium",
"Low"
]
},
"ForeignRef": {
"description": "A citation of a document in another repo's pipeline store (D6).",
"type": "object",
"properties": {
"commit": {
"$ref": "#/$defs/FullSha"
},
"id": {
"$ref": "#/$defs/Short"
},
"kind": {
"$ref": "#/$defs/PipelineKind"
},
"payload_sha256": {
"$ref": "#/$defs/Sha256Hex"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
}
},
"required": [
"repo",
"commit",
"kind",
"id",
"payload_sha256"
]
},
"FullSha": {
"description": "A full git commit id: exactly 40 lowercase hex characters.",
"type": "string",
"maxLength": 40
},
"IndexStatus": {
"description": "How far the semantic index has caught up with the mind. The mind decides\nnone of it: the daemon's index worker reports it, in memory, and a restart\nrecomputes it. `pending` counts documents not yet known to be in the index.",
"oneOf": [
{
"description": "The worker has not yet compared the mind with the collection.",
"type": "object",
"properties": {
"Reconciling": {
"type": "object",
"properties": {
"pending": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"pending"
]
}
},
"additionalProperties": false,
"required": [
"Reconciling"
]
},
{
"description": "Every indexable document is in the collection.",
"type": "string",
"const": "Current"
},
{
"description": "Reconciled, and indexing what is still pending.",
"type": "object",
"properties": {
"Behind": {
"type": "object",
"properties": {
"pending": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"pending"
]
}
},
"additionalProperties": false,
"required": [
"Behind"
]
},
{
"description": "The last attempt failed (the embedder or the vector store is\nunreachable, or refused); it is retried with a backoff and nothing is\ndropped. `attempts` counts consecutive failures.",
"type": "object",
"properties": {
"Failing": {
"type": "object",
"properties": {
"attempts": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"error": {
"type": "string"
},
"pending": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"pending",
"attempts",
"error"
]
}
},
"additionalProperties": false,
"required": [
"Failing"
]
},
{
"description": "The collection belongs to another writer. The worker never recreates\nit; it re-reads it on the same backoff.",
"type": "object",
"properties": {
"Refused": {
"type": "object",
"properties": {
"attempts": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"pending": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"reason": {
"type": "string"
}
},
"required": [
"pending",
"attempts",
"reason"
]
}
},
"additionalProperties": false,
"required": [
"Refused"
]
}
]
},
"Label": {
"description": "A key label: `[A-Za-z0-9_-]{1,64}`.",
"type": "string",
"maxLength": 64
},
"LandedName": {
"description": "A name the cut landed, and where it lives.",
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/Short"
},
"path": {
"$ref": "#/$defs/Short"
}
},
"required": [
"name",
"path"
]
},
"Line": {
"description": "Text of at most 1,000 UTF-8 bytes.",
"type": "string",
"maxLength": 1000
},
"MemoryOrigin": {
"description": "Where a memory came from and whom she heard it from. The organ derives it\nfrom the batch of the turn that wrote the memory; the model never writes it.\n`about` names whom a memory concerns, this names the room and the voices.",
"oneOf": [
{
"description": "A turn in rooms: their aliases comma-joined, and the batch's other senders.",
"type": "object",
"properties": {
"Room": {
"type": "object",
"properties": {
"heard_from": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 8
},
"rooms": {
"$ref": "#/$defs/Short"
}
},
"required": [
"rooms",
"heard_from"
]
}
},
"additionalProperties": false,
"required": [
"Room"
]
},
{
"description": "A direct message: the DM's room id, and the others who spoke in it (whom\nshe heard it from in confidence).",
"type": "object",
"properties": {
"Direct": {
"type": "object",
"properties": {
"room": {
"$ref": "#/$defs/Short"
},
"with": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 8
}
},
"required": [
"room",
"with"
]
}
},
"additionalProperties": false,
"required": [
"Direct"
]
},
{
"description": "A wake: no one spoke.",
"type": "string",
"const": "Wake"
},
{
"description": "A Self run of hers, by its label.",
"type": "object",
"properties": {
"SelfRun": {
"type": "object",
"properties": {
"run": {
"$ref": "#/$defs/Short"
}
},
"required": [
"run"
]
}
},
"additionalProperties": false,
"required": [
"SelfRun"
]
}
]
},
"MemorySort": {
"type": "string",
"enum": [
"Asked",
"Decided",
"Committed",
"Learned",
"Did",
"Idea",
"Rapport"
]
},
"MindRefusal": {
"description": "Every way a mind refuses. `Document` wraps the leaf's four (bounds,\nformats, key identity, foreign type); the rest are the organ's: store\nidentity, epoch, ownership, batch shape, references, and every cross-field\nand cross-document rule of admission.\n\nThe two sequenced kinds refuse in the same pair of shapes: an\n`OutOfSequence` when the writer's `sequence` is not the previous plus one,\nand `AlreadyResolved`/`AlreadyStewarded` when a record of that scope is\nstill in force.",
"oneOf": [
{
"type": "string",
"enum": [
"MissingIdentity",
"EmptySupersession",
"FindingWithoutRange",
"FindingWithoutEvidence"
]
},
{
"type": "object",
"properties": {
"Document": {
"$ref": "#/$defs/PipelineRefusal"
}
},
"additionalProperties": false,
"required": [
"Document"
]
},
{
"type": "object",
"properties": {
"ForeignInstance": {
"type": "object",
"properties": {
"declared": {
"type": "string"
},
"mind": {
"type": "string"
}
},
"required": [
"declared",
"mind"
]
}
},
"additionalProperties": false,
"required": [
"ForeignInstance"
]
},
{
"type": "object",
"properties": {
"ForeignEpoch": {
"type": "object",
"properties": {
"expected": {
"type": "string"
},
"found": {
"type": "string"
}
},
"required": [
"found",
"expected"
]
}
},
"additionalProperties": false,
"required": [
"ForeignEpoch"
]
},
{
"type": "object",
"properties": {
"ForeignStore": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
]
}
},
"additionalProperties": false,
"required": [
"ForeignStore"
]
},
{
"type": "object",
"properties": {
"MindAlreadyOwned": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
]
}
},
"additionalProperties": false,
"required": [
"MindAlreadyOwned"
]
},
{
"type": "object",
"properties": {
"BatchSize": {
"type": "object",
"properties": {
"actual": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"actual"
]
}
},
"additionalProperties": false,
"required": [
"BatchSize"
]
},
{
"type": "object",
"properties": {
"IdentityCollision": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"kind": {
"$ref": "#/$defs/PipelineKind"
}
},
"required": [
"kind",
"id"
]
}
},
"additionalProperties": false,
"required": [
"IdentityCollision"
]
},
{
"type": "object",
"properties": {
"MissingReference": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"kind": {
"$ref": "#/$defs/PipelineKind"
}
},
"required": [
"kind",
"id"
]
}
},
"additionalProperties": false,
"required": [
"MissingReference"
]
},
{
"type": "object",
"properties": {
"AlreadyResolved": {
"type": "object",
"properties": {
"subject": {
"type": "string"
}
},
"required": [
"subject"
]
}
},
"additionalProperties": false,
"required": [
"AlreadyResolved"
]
},
{
"type": "object",
"properties": {
"ResolutionOutOfSequence": {
"type": "object",
"properties": {
"actual": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"expected": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"subject": {
"type": "string"
}
},
"required": [
"subject",
"expected",
"actual"
]
}
},
"additionalProperties": false,
"required": [
"ResolutionOutOfSequence"
]
},
{
"type": "object",
"properties": {
"AlreadyStewarded": {
"type": "object",
"properties": {
"repo": {
"type": "string"
}
},
"required": [
"repo"
]
}
},
"additionalProperties": false,
"required": [
"AlreadyStewarded"
]
},
{
"type": "object",
"properties": {
"StewardshipOutOfSequence": {
"type": "object",
"properties": {
"actual": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"expected": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"repo": {
"type": "string"
}
},
"required": [
"repo",
"expected",
"actual"
]
}
},
"additionalProperties": false,
"required": [
"StewardshipOutOfSequence"
]
},
{
"type": "object",
"properties": {
"IncompatibleResolution": {
"type": "object",
"properties": {
"outcome": {
"type": "string"
},
"subject_kind": {
"$ref": "#/$defs/PipelineKind"
}
},
"required": [
"subject_kind",
"outcome"
]
}
},
"additionalProperties": false,
"required": [
"IncompatibleResolution"
]
},
{
"type": "object",
"properties": {
"WouldReinstateOverLater": {
"type": "object",
"properties": {
"later": {
"type": "string"
},
"subject": {
"type": "string"
}
},
"required": [
"subject",
"later"
]
}
},
"additionalProperties": false,
"required": [
"WouldReinstateOverLater"
]
},
{
"type": "object",
"properties": {
"CitesResolvedDocument": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"kind": {
"$ref": "#/$defs/PipelineKind"
}
},
"required": [
"kind",
"id"
]
}
},
"additionalProperties": false,
"required": [
"CitesResolvedDocument"
]
},
{
"type": "object",
"properties": {
"UnknownSupersessor": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}
},
"additionalProperties": false,
"required": [
"UnknownSupersessor"
]
},
{
"type": "object",
"properties": {
"RevisionWithoutSupersession": {
"type": "object",
"properties": {
"kind": {
"$ref": "#/$defs/PipelineKind"
},
"revision": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"kind",
"revision"
]
}
},
"additionalProperties": false,
"required": [
"RevisionWithoutSupersession"
]
},
{
"type": "object",
"properties": {
"DuplicateLabel": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"field",
"label"
]
}
},
"additionalProperties": false,
"required": [
"DuplicateLabel"
]
},
{
"type": "object",
"properties": {
"InvalidOptions": {
"type": "object",
"properties": {
"question": {
"type": "string"
}
},
"required": [
"question"
]
}
},
"additionalProperties": false,
"required": [
"InvalidOptions"
]
},
{
"type": "object",
"properties": {
"InvalidChoice": {
"type": "object",
"properties": {
"choice": {
"type": "string"
},
"ruling": {
"type": "string"
}
},
"required": [
"ruling",
"choice"
]
}
},
"additionalProperties": false,
"required": [
"InvalidChoice"
]
},
{
"type": "object",
"properties": {
"QuoteWithoutOperator": {
"type": "object",
"properties": {
"ruling": {
"type": "string"
}
},
"required": [
"ruling"
]
}
},
"additionalProperties": false,
"required": [
"QuoteWithoutOperator"
]
},
{
"description": "`campaign` names the refused document: a campaign, or a target revision that empties its predecessor's repos.",
"type": "object",
"properties": {
"EmptyRepos": {
"type": "object",
"properties": {
"campaign": {
"type": "string"
}
},
"required": [
"campaign"
]
}
},
"additionalProperties": false,
"required": [
"EmptyRepos"
]
},
{
"type": "object",
"properties": {
"RepoNotInCampaign": {
"type": "object",
"properties": {
"repo": {
"type": "string"
}
},
"required": [
"repo"
]
}
},
"additionalProperties": false,
"required": [
"RepoNotInCampaign"
]
},
{
"type": "object",
"properties": {
"UnknownDependency": {
"type": "object",
"properties": {
"cut": {
"type": "string"
}
},
"required": [
"cut"
]
}
},
"additionalProperties": false,
"required": [
"UnknownDependency"
]
},
{
"type": "object",
"properties": {
"CutReportWithoutSpec": {
"type": "object",
"properties": {
"report": {
"type": "string"
}
},
"required": [
"report"
]
}
},
"additionalProperties": false,
"required": [
"CutReportWithoutSpec"
]
},
{
"type": "object",
"properties": {
"SpecMismatch": {
"type": "object",
"properties": {
"field": {
"type": "string"
}
},
"required": [
"field"
]
}
},
"additionalProperties": false,
"required": [
"SpecMismatch"
]
},
{
"type": "object",
"properties": {
"RangeOutsideCommits": {
"type": "object",
"properties": {
"head": {
"type": "string"
}
},
"required": [
"head"
]
}
},
"additionalProperties": false,
"required": [
"RangeOutsideCommits"
]
},
{
"type": "object",
"properties": {
"FalsifiedClaimWithoutConfirmedFinding": {
"type": "object",
"properties": {
"claim": {
"type": "string"
}
},
"required": [
"claim"
]
}
},
"additionalProperties": false,
"required": [
"FalsifiedClaimWithoutConfirmedFinding"
]
},
{
"type": "object",
"properties": {
"UnprovenClaimWithConfirmedFinding": {
"type": "object",
"properties": {
"claim": {
"type": "string"
}
},
"required": [
"claim"
]
}
},
"additionalProperties": false,
"required": [
"UnprovenClaimWithConfirmedFinding"
]
},
{
"type": "object",
"properties": {
"PromiseWithoutVerdict": {
"type": "object",
"properties": {
"promise": {
"type": "string"
}
},
"required": [
"promise"
]
}
},
"additionalProperties": false,
"required": [
"PromiseWithoutVerdict"
]
},
{
"type": "object",
"properties": {
"UnknownMutationLabel": {
"type": "object",
"properties": {
"label": {
"type": "string"
}
},
"required": [
"label"
]
}
},
"additionalProperties": false,
"required": [
"UnknownMutationLabel"
]
},
{
"type": "object",
"properties": {
"UnknownInvariant": {
"type": "object",
"properties": {
"label": {
"type": "string"
}
},
"required": [
"label"
]
}
},
"additionalProperties": false,
"required": [
"UnknownInvariant"
]
},
{
"type": "object",
"properties": {
"NotStewarded": {
"type": "object",
"properties": {
"repo": {
"type": "string"
}
},
"required": [
"repo"
]
}
},
"additionalProperties": false,
"required": [
"NotStewarded"
]
},
{
"description": "The persona document fails the published schema: `path` is the\ndocument location (a key the schema does not declare is `*`) and\n`message` the schema keyword that failed. Never the offending value.",
"type": "object",
"properties": {
"PersonaInvalid": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"path",
"message"
]
}
},
"additionalProperties": false,
"required": [
"PersonaInvalid"
]
},
{
"description": "The document's `personaId` is not this mind's instance, which is\n`instance`.",
"type": "object",
"properties": {
"PersonaForeign": {
"type": "object",
"properties": {
"instance": {
"type": "string"
}
},
"required": [
"instance"
]
}
},
"additionalProperties": false,
"required": [
"PersonaForeign"
]
},
{
"description": "The put's `expected_updated_at` is not the stored document's\n`updatedAt`, which is `stored` (none when no persona is stored).",
"type": "object",
"properties": {
"PersonaStale": {
"type": "object",
"properties": {
"stored": {
"type": [
"string",
"null"
]
}
}
}
},
"additionalProperties": false,
"required": [
"PersonaStale"
]
},
{
"description": "The document's `provenance.authority` is not `canonical`: a projection\nor an import is not the mind's persona.",
"type": "string",
"const": "PersonaNotCanonical"
},
{
"description": "A run claims work another run in force already holds: `item` is the\nclaimed document's id and `run` the id of the run that holds it.",
"type": "object",
"properties": {
"AlreadyClaimed": {
"type": "object",
"properties": {
"item": {
"type": "string"
},
"run": {
"$ref": "#/$defs/RunId"
}
},
"required": [
"item",
"run"
]
}
},
"additionalProperties": false,
"required": [
"AlreadyClaimed"
]
},
{
"description": "A run of hers opens, or is reinstated, while another in-force run of\nhers of the same instance and turn is live: `run` is the holder's id\n(ruling one-live-self-run).",
"type": "object",
"properties": {
"AlreadyLive": {
"type": "object",
"properties": {
"run": {
"$ref": "#/$defs/RunId"
}
},
"required": [
"run"
]
}
},
"additionalProperties": false,
"required": [
"AlreadyLive"
]
},
{
"description": "The one refusal a mind never raises: the answer exceeds the largest\nbody the organ will deliver by any plane, one send or a deferred body.\nIt lives here because a refusal rides the response schema and there is\none of those, so a client reads it the way it reads every other refusal\nrather than parsing a second vocabulary. `bytes` is the encoded answer\n(the payload, not its envelope) and `limit` is the largest body the\ndaemon defers, both so a caller can narrow its own request; nothing is\ntruncated or paginated on its behalf. The daemon owns it and its\ndeferral bound decides it; no rule of the mind is involved.",
"type": "object",
"properties": {
"ResponseTooLarge": {
"type": "object",
"properties": {
"bytes": {
"type": "integer",
"format": "uint64",
"minimum": 0
},
"limit": {
"type": "integer",
"format": "uint64",
"minimum": 0
}
},
"required": [
"bytes",
"limit"
]
}
},
"additionalProperties": false,
"required": [
"ResponseTooLarge"
]
},
{
"description": "A selection the substrate or the organ's value door refused: `field`\nis the selection field the client sent, `value` the offending part.",
"type": "object",
"properties": {
"SelectionInvalid": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"message": {
"type": "string"
},
"value": {
"type": [
"string",
"null"
]
}
},
"required": [
"field",
"message"
]
}
},
"additionalProperties": false,
"required": [
"SelectionInvalid"
]
},
{
"description": "A cursor that does not decode, does not belong to this selection or\nwas not minted by this process, or names a snapshot this mind has not\nreached.",
"type": "object",
"properties": {
"CursorInvalid": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": [
"message"
]
}
},
"additionalProperties": false,
"required": [
"CursorInvalid"
]
},
{
"type": "object",
"properties": {
"Unavailable": {
"type": "object",
"properties": {
"detail": {
"type": "string"
}
},
"required": [
"detail"
]
}
},
"additionalProperties": false,
"required": [
"Unavailable"
]
}
]
},
"MindStatus": {
"description": "What a mind says about itself: the typed state a dashboard projects.",
"type": "object",
"properties": {
"documents": {
"description": "Pipeline documents in the image; the epoch record and the receipts are\nnot documents and are not counted here.",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"index": {
"$ref": "#/$defs/IndexStatus"
},
"instance": {
"$ref": "#/$defs/Slug"
},
"persona": {
"description": "The persona door as `PersonaGet` would find it.",
"$ref": "#/$defs/PersonaStatus"
},
"receipts": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"schema_epoch": {
"type": "string"
}
},
"required": [
"instance",
"schema_epoch",
"documents",
"receipts",
"index",
"persona"
]
},
"MutationRecord": {
"description": "One mutation a report ran: a key-safe label a verdict claim can name,\nthe exact edit, and the tree it was applied to.",
"type": "object",
"properties": {
"after": {
"$ref": "#/$defs/Line"
},
"before": {
"$ref": "#/$defs/Line"
},
"commit": {
"$ref": "#/$defs/Sha"
},
"failed_as_expected": {
"type": "boolean"
},
"label": {
"$ref": "#/$defs/Label"
},
"location": {
"$ref": "#/$defs/CodeLocation"
},
"rule": {
"$ref": "#/$defs/Line"
}
},
"required": [
"label",
"rule",
"location",
"before",
"after",
"commit",
"failed_as_expected"
]
},
"NegativeCheck": {
"type": "object",
"properties": {
"pattern": {
"$ref": "#/$defs/Short"
},
"scope": {
"$ref": "#/$defs/Line"
}
},
"required": [
"pattern",
"scope"
]
},
"OpenPr": {
"description": "A pull request open on the forge.",
"type": "object",
"properties": {
"author": {
"$ref": "#/$defs/Short"
},
"number": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"updated_at": {
"description": "Unix milliseconds.",
"type": "integer",
"format": "uint64",
"minimum": 0
}
},
"required": [
"repo",
"number",
"author",
"updated_at"
]
},
"OrgRepo": {
"description": "A GitHub repository as `Org/Repo`, at most 140 UTF-8 bytes (39 + 1 +\n100). The owner is 1 to 39 `[A-Za-z0-9-]` bytes with no leading or\ntrailing hyphen; the repo is 1 to 100 `[A-Za-z0-9._-]` bytes, is never\n`.` or `..`, and does not end in `.git`, ASCII-case-insensitively.\nIdentity is case-insensitive: `GameCult/Epiphany` and `gamecult/epiphany`\nare the same repository.",
"type": "string",
"maxLength": 140
},
"Para": {
"description": "Text of at most 4,000 UTF-8 bytes; longer narrative is cited by `DocRef`.",
"type": "string",
"maxLength": 4000
},
"PersonaPutOutcome": {
"description": "How a put ended. A refusal is an answer, as for `admit`.",
"oneOf": [
{
"type": "object",
"properties": {
"Committed": {
"type": "object",
"properties": {
"receipt_id": {
"type": "string"
}
},
"required": [
"receipt_id"
]
}
},
"additionalProperties": false,
"required": [
"Committed"
]
},
{
"type": "object",
"properties": {
"Refused": {
"$ref": "#/$defs/MindRefusal"
}
},
"additionalProperties": false,
"required": [
"Refused"
]
}
]
},
"PersonaStateView": {
"description": "What `PersonaGet` answers: the stored document, its `updatedAt`, and the\nreceipt of the put that wrote it.",
"type": "object",
"properties": {
"receipt_id": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"value": true
},
"required": [
"value",
"updated_at",
"receipt_id"
]
},
"PersonaStatus": {
"description": "What the persona door holds, in the one vocabulary the door itself answers\nin: nothing yet, a document with this `updatedAt`, or a stored document the\ndoor cannot read (`PersonaGet` and every put answer `Unavailable`).",
"oneOf": [
{
"type": "string",
"enum": [
"Absent",
"Unreadable"
]
},
{
"type": "object",
"properties": {
"Stored": {
"type": "object",
"properties": {
"updated_at": {
"type": "string"
}
},
"required": [
"updated_at"
]
}
},
"additionalProperties": false,
"required": [
"Stored"
]
}
]
},
"PipelineAdmissionOutcome": {
"description": "How admission ended. `Committed.writes` names every document the batch\nlanded, derived writes included; Cut 11 indexes from it after `admit`\nreturns, and never inside it.",
"oneOf": [
{
"type": "object",
"properties": {
"Committed": {
"type": "object",
"properties": {
"committed_at": {
"type": "string"
},
"receipt_id": {
"type": "string"
},
"writes": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineRef"
}
}
},
"required": [
"receipt_id",
"committed_at",
"writes"
]
}
},
"additionalProperties": false,
"required": [
"Committed"
]
},
{
"type": "object",
"properties": {
"AlreadyAdmitted": {
"type": "object",
"properties": {
"receipt_id": {
"type": "string"
}
},
"required": [
"receipt_id"
]
}
},
"additionalProperties": false,
"required": [
"AlreadyAdmitted"
]
},
{
"type": "object",
"properties": {
"Refused": {
"$ref": "#/$defs/MindRefusal"
}
},
"additionalProperties": false,
"required": [
"Refused"
]
},
{
"type": "object",
"properties": {
"Conflict": {
"type": "object",
"properties": {
"identities": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineRef"
}
}
},
"required": [
"identities"
]
}
},
"additionalProperties": false,
"required": [
"Conflict"
]
}
]
},
"PipelineCampaign": {
"type": "object",
"properties": {
"repos": {
"type": "array",
"items": {
"$ref": "#/$defs/OrgRepo"
},
"maxItems": 8
},
"slug": {
"$ref": "#/$defs/Slug"
},
"target_doc": {
"$ref": "#/$defs/DocRef"
},
"title": {
"$ref": "#/$defs/Title"
},
"working_branch": {
"$ref": "#/$defs/Short"
}
},
"required": [
"slug",
"title",
"repos",
"working_branch",
"target_doc"
]
},
"PipelineCutReport": {
"type": "object",
"properties": {
"attempt": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"branch": {
"$ref": "#/$defs/Short"
},
"campaign": {
"$ref": "#/$defs/Slug"
},
"commits": {
"type": "array",
"items": {
"$ref": "#/$defs/ReportCommit"
},
"maxItems": 128
},
"cut_spec": {
"$ref": "#/$defs/Short"
},
"deviations": {
"type": "array",
"items": {
"$ref": "#/$defs/Deviation"
},
"maxItems": 32
},
"forks": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 8
},
"landed_names": {
"type": "array",
"items": {
"$ref": "#/$defs/LandedName"
},
"maxItems": 128
},
"mutations": {
"type": "array",
"items": {
"$ref": "#/$defs/MutationRecord"
},
"maxItems": 64
},
"promises": {
"type": "array",
"items": {
"$ref": "#/$defs/Promise"
},
"maxItems": 64
},
"range": {
"$ref": "#/$defs/CommitRange"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"structural_delta": {
"$ref": "#/$defs/StructuralDelta"
},
"undone": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 32
},
"verification": {
"type": "array",
"items": {
"$ref": "#/$defs/Evidence"
},
"maxItems": 64
}
},
"required": [
"campaign",
"cut_spec",
"attempt",
"repo",
"branch",
"commits",
"range",
"verification",
"mutations",
"deviations",
"forks",
"structural_delta",
"landed_names",
"undone",
"promises"
]
},
"PipelineCutSpec": {
"type": "object",
"properties": {
"adds": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 64
},
"authority_map": {
"anyOf": [
{
"$ref": "#/$defs/AuthorityMap"
},
{
"type": "null"
}
]
},
"base": {
"$ref": "#/$defs/Sha"
},
"branch": {
"$ref": "#/$defs/Short"
},
"campaign": {
"$ref": "#/$defs/Slug"
},
"cut": {
"$ref": "#/$defs/Label"
},
"deletes": {
"type": "array",
"items": {
"$ref": "#/$defs/CutDelete"
},
"maxItems": 64
},
"depends_on": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 8
},
"estimate": {
"$ref": "#/$defs/StructuralDelta"
},
"file_changes": {
"type": "array",
"items": {
"$ref": "#/$defs/FileChange"
},
"maxItems": 256
},
"first": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 16
},
"keeps_moves": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 64
},
"questions": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 16
},
"reads": {
"type": "array",
"items": {
"$ref": "#/$defs/ReadAnchor"
},
"maxItems": 16
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"revision": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"rulings": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 32
},
"title": {
"$ref": "#/$defs/Title"
},
"verification": {
"$ref": "#/$defs/CutVerification"
}
},
"required": [
"campaign",
"cut",
"revision",
"title",
"repo",
"branch",
"base",
"depends_on",
"first",
"deletes",
"keeps_moves",
"adds",
"file_changes",
"verification",
"estimate",
"rulings",
"questions"
]
},
"PipelineDocument": {
"description": "The envelope enum, adjacently tagged on the kind name: a document\non a wire is `{ kind, value }`, and `kind` is exactly what\n`PipelineKind::name()` returns, so a reader dispatches on the kind\nsegment it already knows from the key and needs no second registry\nmapping variant spellings to kinds. Adjacent rather than internal\nbecause a value is a named map of its own and an internal tag would\nhave to be merged into it; the tag stays beside the value instead.\nThis is not a published schema: `schemas/cultnet` publishes the\nsixteen per-kind value documents, and the envelope is the wire's\nshape, not a document's.",
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "campaign"
},
"value": {
"$ref": "#/$defs/PipelineCampaign"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "target"
},
"value": {
"$ref": "#/$defs/PipelineTarget"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "question"
},
"value": {
"$ref": "#/$defs/PipelineQuestion"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "ruling"
},
"value": {
"$ref": "#/$defs/PipelineRuling"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cut_spec"
},
"value": {
"$ref": "#/$defs/PipelineCutSpec"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cut_report"
},
"value": {
"$ref": "#/$defs/PipelineCutReport"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "verdict"
},
"value": {
"$ref": "#/$defs/PipelineVerdict"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "finding"
},
"value": {
"$ref": "#/$defs/PipelineFinding"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "follow_up"
},
"value": {
"$ref": "#/$defs/PipelineFollowUp"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "resolution"
},
"value": {
"$ref": "#/$defs/PipelineResolution"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "instance"
},
"value": {
"$ref": "#/$defs/PipelineInstance"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "stewardship"
},
"value": {
"$ref": "#/$defs/PipelineStewardship"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "hand_off"
},
"value": {
"$ref": "#/$defs/PipelineHandOff"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "run"
},
"value": {
"$ref": "#/$defs/PipelineRun"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "pulse"
},
"value": {
"$ref": "#/$defs/PipelinePulse"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "memory"
},
"value": {
"$ref": "#/$defs/PipelineMemory"
}
},
"required": [
"kind",
"value"
]
}
]
},
"PipelineDocumentSummary": {
"description": "The organ's meaning of `projection: header`: a document's id, the facts of\nits admission, its status and the few fields of its kind a caller triages\nby. Derived per read and bounded by `SUMMARY_MAX_BYTES`.",
"type": "object",
"properties": {
"admission": {
"$ref": "#/$defs/AdmissionFacts"
},
"facts": {
"$ref": "#/$defs/PipelineFacts"
},
"id": {
"$ref": "#/$defs/PipelineRef"
},
"status": {
"$ref": "#/$defs/PipelineStatusSummary"
}
},
"required": [
"id",
"admission",
"status",
"facts"
]
},
"PipelineDocumentView": {
"description": "One document as a reader gets it: its id, the document, the facts of its\nadmission and its status. The id travels with the document because a\n`PipelineDocument` does not carry its key and a client must never derive\none.",
"type": "object",
"properties": {
"admission": {
"$ref": "#/$defs/AdmissionFacts"
},
"document": {
"$ref": "#/$defs/PipelineDocument"
},
"id": {
"$ref": "#/$defs/PipelineRef"
},
"status": {
"$ref": "#/$defs/PipelineStatus"
}
},
"required": [
"id",
"document",
"admission",
"status"
]
},
"PipelineEdge": {
"description": "One citation edge a hop traversed: the organ's typing of the substrate's\nedge, whose ends are record keys and whose role is a string.",
"type": "object",
"properties": {
"from": {
"$ref": "#/$defs/PipelineRef"
},
"role": {
"$ref": "#/$defs/CitationRole"
},
"to": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"from",
"role",
"to"
]
},
"PipelineFacts": {
"description": "The triage fields of each kind, in the leaf's own envelope spelling. Prose\n(`Para`) and unbounded lists are not carried; `finding.claim` and\n`follow_up.item` are, because the leaf typed them as one-line statements.",
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "campaign"
},
"value": {
"type": "object",
"properties": {
"repos": {
"type": "array",
"items": {
"$ref": "#/$defs/OrgRepo"
}
},
"title": {
"$ref": "#/$defs/Title"
}
},
"required": [
"title",
"repos"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "target"
},
"value": {
"type": "object",
"properties": {
"invariants": {
"type": "array",
"items": {
"$ref": "#/$defs/Label"
}
},
"revision": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"revision",
"invariants"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "question"
},
"value": {
"type": "object",
"properties": {
"asked_on": {
"$ref": "#/$defs/Date"
},
"label": {
"$ref": "#/$defs/Label"
},
"options": {
"type": "array",
"items": {
"$ref": "#/$defs/Label"
}
},
"raised_in": {
"anyOf": [
{
"$ref": "#/$defs/PipelineRef"
},
{
"type": "null"
}
]
},
"recommended": {
"$ref": "#/$defs/Label"
},
"title": {
"$ref": "#/$defs/Title"
}
},
"required": [
"label",
"title",
"options",
"recommended",
"asked_on"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "ruling"
},
"value": {
"type": "object",
"properties": {
"answers": {
"anyOf": [
{
"$ref": "#/$defs/Short"
},
{
"type": "null"
}
]
},
"authority": {
"$ref": "#/$defs/RulingAuthority"
},
"choice": {
"anyOf": [
{
"$ref": "#/$defs/Label"
},
{
"type": "null"
}
]
},
"label": {
"$ref": "#/$defs/Label"
},
"ruled_on": {
"$ref": "#/$defs/Date"
},
"title": {
"$ref": "#/$defs/Title"
}
},
"required": [
"label",
"title",
"authority",
"ruled_on"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cut_spec"
},
"value": {
"type": "object",
"properties": {
"base": {
"$ref": "#/$defs/Sha"
},
"branch": {
"$ref": "#/$defs/Short"
},
"cut": {
"$ref": "#/$defs/Label"
},
"depends_on": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
}
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"revision": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"title": {
"$ref": "#/$defs/Title"
}
},
"required": [
"cut",
"revision",
"title",
"repo",
"branch",
"base",
"depends_on"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cut_report"
},
"value": {
"type": "object",
"properties": {
"attempt": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"branch": {
"$ref": "#/$defs/Short"
},
"cut_spec": {
"$ref": "#/$defs/Short"
},
"range": {
"$ref": "#/$defs/CommitRange"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
}
},
"required": [
"cut_spec",
"attempt",
"repo",
"branch",
"range"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "verdict"
},
"value": {
"type": "object",
"properties": {
"cut_report": {
"$ref": "#/$defs/Short"
},
"outcomes": {
"type": "array",
"items": {
"$ref": "#/$defs/ClaimOutcome"
}
},
"pass": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"range": {
"$ref": "#/$defs/CommitRange"
}
},
"required": [
"cut_report",
"pass",
"range",
"outcomes"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "finding"
},
"value": {
"type": "object",
"properties": {
"claim": {
"$ref": "#/$defs/Line"
},
"confidence": {
"$ref": "#/$defs/FindingConfidence"
},
"invariants": {
"type": "array",
"items": {
"$ref": "#/$defs/Label"
}
},
"label": {
"$ref": "#/$defs/Label"
},
"origin": {
"$ref": "#/$defs/FindingOrigin"
},
"range": {
"$ref": "#/$defs/CommitRange"
},
"severity": {
"$ref": "#/$defs/FindingSeverity"
},
"verdict": {
"$ref": "#/$defs/Short"
}
},
"required": [
"verdict",
"label",
"confidence",
"severity",
"origin",
"claim",
"invariants",
"range"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "follow_up"
},
"value": {
"type": "object",
"properties": {
"item": {
"$ref": "#/$defs/Line"
},
"label": {
"$ref": "#/$defs/Label"
},
"owner": {
"$ref": "#/$defs/Short"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"source": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"label",
"source",
"repo",
"owner",
"item"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "resolution"
},
"value": {
"type": "object",
"properties": {
"outcome": {
"$ref": "#/$defs/ResolutionOutcome"
},
"resolved_on": {
"$ref": "#/$defs/Date"
},
"sequence": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"subject": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"subject",
"sequence",
"outcome",
"resolved_on"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "instance"
},
"value": {
"type": "object",
"properties": {
"created_at": {
"$ref": "#/$defs/Date"
},
"display_name": {
"$ref": "#/$defs/Short"
},
"host": {
"$ref": "#/$defs/Short"
},
"instance": {
"$ref": "#/$defs/Slug"
}
},
"required": [
"instance",
"display_name",
"host",
"created_at"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "stewardship"
},
"value": {
"type": "object",
"properties": {
"assigned_on": {
"$ref": "#/$defs/Date"
},
"instance": {
"$ref": "#/$defs/Slug"
},
"note": {
"$ref": "#/$defs/Line"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"sequence": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"instance",
"repo",
"sequence",
"assigned_on",
"note"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "hand_off"
},
"value": {
"type": "object",
"properties": {
"from_instance": {
"$ref": "#/$defs/Slug"
},
"handed_on": {
"$ref": "#/$defs/Date"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"to_instance": {
"$ref": "#/$defs/Slug"
}
},
"required": [
"from_instance",
"to_instance",
"repo",
"handed_on"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "run"
},
"value": {
"type": "object",
"properties": {
"claims": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineRef"
}
},
"label": {
"$ref": "#/$defs/Label"
},
"operated_by": {
"$ref": "#/$defs/RunOperator"
},
"started_on": {
"$ref": "#/$defs/Date"
},
"turn": {
"$ref": "#/$defs/RunTurn"
}
},
"required": [
"label",
"operated_by",
"turn",
"started_on",
"claims"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "pulse"
},
"value": {
"type": "object",
"properties": {
"label": {
"$ref": "#/$defs/Label"
},
"tempo_vote_beat_s": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0
},
"tempo_vote_withdrawn": {
"type": "boolean",
"default": false
},
"urgency_permille": {
"type": [
"integer",
"null"
],
"format": "uint16",
"maximum": 65535,
"minimum": 0
}
},
"required": [
"label"
]
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "memory"
},
"value": {
"type": "object",
"properties": {
"about": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
}
},
"label": {
"$ref": "#/$defs/Label"
},
"origin": {
"$ref": "#/$defs/MemoryOrigin"
},
"salience_permille": {
"type": "integer",
"format": "uint16",
"maximum": 65535,
"minimum": 0
},
"sort": {
"$ref": "#/$defs/MemorySort"
}
},
"required": [
"label",
"sort",
"about",
"origin",
"salience_permille"
]
}
},
"required": [
"kind",
"value"
]
}
]
},
"PipelineFinding": {
"type": "object",
"properties": {
"campaign": {
"$ref": "#/$defs/Slug"
},
"claim": {
"$ref": "#/$defs/Line"
},
"confidence": {
"$ref": "#/$defs/FindingConfidence"
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/$defs/Evidence"
},
"maxItems": 16
},
"failure_scenario": {
"$ref": "#/$defs/Para"
},
"invariants": {
"type": "array",
"items": {
"$ref": "#/$defs/Label"
},
"maxItems": 8
},
"label": {
"$ref": "#/$defs/Label"
},
"locations": {
"type": "array",
"items": {
"$ref": "#/$defs/CodeLocation"
},
"maxItems": 16
},
"origin": {
"$ref": "#/$defs/FindingOrigin"
},
"precedents": {
"type": "array",
"items": {
"$ref": "#/$defs/ForeignRef"
},
"maxItems": 8
},
"range": {
"$ref": "#/$defs/CommitRange"
},
"severity": {
"$ref": "#/$defs/FindingSeverity"
},
"verdict": {
"$ref": "#/$defs/Short"
}
},
"required": [
"campaign",
"verdict",
"label",
"range",
"confidence",
"severity",
"claim",
"invariants",
"locations",
"failure_scenario",
"evidence",
"precedents",
"origin"
]
},
"PipelineFollowUp": {
"type": "object",
"properties": {
"campaign": {
"$ref": "#/$defs/Slug"
},
"item": {
"$ref": "#/$defs/Line"
},
"label": {
"$ref": "#/$defs/Label"
},
"locations": {
"type": "array",
"items": {
"$ref": "#/$defs/CodeLocation"
},
"maxItems": 16
},
"owner": {
"$ref": "#/$defs/Short"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"source": {
"$ref": "#/$defs/PipelineRef"
},
"why_it_can_wait": {
"$ref": "#/$defs/Line"
}
},
"required": [
"campaign",
"label",
"source",
"repo",
"locations",
"item",
"why_it_can_wait",
"owner"
]
},
"PipelineHandOff": {
"description": "A reassignment of stewardship, recorded in both minds. `documents` names\nwhat travels with it.",
"type": "object",
"properties": {
"documents": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 256
},
"from_instance": {
"$ref": "#/$defs/Slug"
},
"handed_on": {
"$ref": "#/$defs/Date"
},
"reason": {
"$ref": "#/$defs/Para"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"to_instance": {
"$ref": "#/$defs/Slug"
}
},
"required": [
"from_instance",
"to_instance",
"repo",
"documents",
"reason",
"handed_on"
]
},
"PipelineInstance": {
"description": "A mind's identity document. A store is canonical to exactly one\ninstance, and this says which; identity lives in the state, not in a\npath.",
"type": "object",
"properties": {
"created_at": {
"$ref": "#/$defs/Date"
},
"display_name": {
"$ref": "#/$defs/Short"
},
"host": {
"$ref": "#/$defs/Short"
},
"instance": {
"$ref": "#/$defs/Slug"
}
},
"required": [
"instance",
"display_name",
"created_at",
"host"
]
},
"PipelineKind": {
"type": "string",
"enum": [
"Campaign",
"Target",
"Question",
"Ruling",
"CutSpec",
"CutReport",
"Verdict",
"Finding",
"FollowUp",
"Resolution",
"Instance",
"Stewardship",
"HandOff",
"Run",
"Pulse",
"Memory"
]
},
"PipelineMemory": {
"description": "One thing a Mind keeps for herself, in her own mind: what she was asked,\ndecided, committed to, learned or did, an idea, or the rapport between\nher and another Mind or person. `text` is her own words. `about` names\nthe Matrix users it concerns (Minds included) and nothing about where it\ncame from; `origin` is where and from whom she learned it, and `sources`\nthe event ids, commits or documents it rests on; the organ fills both,\nnot the model. `salience_permille` ranks it and decides nothing.\n`consolidates` names the memories a consolidating memory replaces.\nInstance-rooted: the key is `<instance>:memory:<label>`.",
"type": "object",
"properties": {
"about": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 8
},
"consolidates": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineRef"
},
"maxItems": 16
},
"instance": {
"$ref": "#/$defs/Slug"
},
"label": {
"$ref": "#/$defs/Label"
},
"origin": {
"$ref": "#/$defs/MemoryOrigin"
},
"salience_permille": {
"type": "integer",
"format": "uint16",
"maximum": 65535,
"minimum": 0
},
"sort": {
"$ref": "#/$defs/MemorySort"
},
"sources": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 8
},
"text": {
"$ref": "#/$defs/Line"
}
},
"required": [
"instance",
"label",
"sort",
"text",
"about",
"origin",
"sources",
"salience_permille",
"consolidates"
]
},
"PipelinePageItems": {
"description": "The items of a page, chosen once by the selection's `projection`.",
"oneOf": [
{
"type": "object",
"properties": {
"Headers": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineDocumentSummary"
}
}
},
"additionalProperties": false,
"required": [
"Headers"
]
},
{
"type": "object",
"properties": {
"Documents": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineDocumentView"
}
}
},
"additionalProperties": false,
"required": [
"Documents"
]
}
]
},
"PipelineProvenance": {
"description": "Who admitted a batch: the faculty, the agent, its session and the tool.\nA field on the receipt and nothing else; the digest excludes it.",
"type": "object",
"properties": {
"agent": {
"$ref": "#/$defs/Short"
},
"faculty": {
"$ref": "#/$defs/Faculty"
},
"session": {
"$ref": "#/$defs/Short"
},
"tool": {
"$ref": "#/$defs/Short"
}
},
"required": [
"faculty",
"agent",
"session",
"tool"
]
},
"PipelinePulse": {
"description": "One Mind's heartbeat vote, in her own mind: the beat she wants (the swarm's\ntempo is the lower median of every Mind's newest vote), the withdrawal of\nher standing vote (`tempo_vote_withdrawn`, an explicit null: she counts as\nsilent again), and the urgency she declares for herself until her next\nPersona turn. A pulse says at least one of the three; a withdrawal and a\nbeat are never both. Instance-rooted: the key is `<instance>:pulse:<label>`, the label\ntime-ordered like a run's.",
"type": "object",
"properties": {
"instance": {
"$ref": "#/$defs/Slug"
},
"label": {
"$ref": "#/$defs/Label"
},
"note": {
"$ref": "#/$defs/Line"
},
"tempo_vote_beat_s": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0
},
"tempo_vote_withdrawn": {
"type": "boolean"
},
"urgency_permille": {
"type": [
"integer",
"null"
],
"format": "uint16",
"maximum": 65535,
"minimum": 0
}
},
"required": [
"instance",
"label",
"note"
]
},
"PipelineQuestion": {
"type": "object",
"properties": {
"asked_on": {
"$ref": "#/$defs/Date"
},
"campaign": {
"$ref": "#/$defs/Slug"
},
"depends": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 8
},
"label": {
"$ref": "#/$defs/Label"
},
"options": {
"type": "array",
"items": {
"$ref": "#/$defs/QuestionOption"
},
"maxItems": 8
},
"question": {
"$ref": "#/$defs/Para"
},
"raised_in": {
"anyOf": [
{
"$ref": "#/$defs/PipelineRef"
},
{
"type": "null"
}
]
},
"recommended": {
"$ref": "#/$defs/Label"
},
"title": {
"$ref": "#/$defs/Title"
}
},
"required": [
"campaign",
"label",
"title",
"question",
"options",
"recommended",
"depends",
"asked_on"
]
},
"PipelineRef": {
"description": "A reference to another document. The id is parsed as a full pipeline id of\nthe declared `kind`, so the kind and the id's kind segment cannot disagree.",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/Short"
},
"kind": {
"$ref": "#/$defs/PipelineKind"
}
},
"required": [
"kind",
"id"
]
},
"PipelineRefusal": {
"description": "Typed refusals of the pipeline documents: bounds, formats and key identity\n(D2's document half), and `ForeignStore`, raised by `decode` for an\nenvelope of any other type. This is every refusal the leaf decides; a\nstore's identity and its schema epoch are not decided here, since this\ncrate owns no store, and belong to the organ that will admit these\ndocuments.\n\nSerialised externally tagged, serde's default for an enum: each variant is\na one-key map from the variant's name to its named fields, so `field` and\n`value` are on the wire under their own names and a reader of a refusal\ncarried over a wire reads the same parts a local caller matches on. No\nattribute buys that, which is why there is none: an internal or adjacent\ntag would move the fields under a content key without making any of them\nmore visible.",
"oneOf": [
{
"type": "object",
"properties": {
"FieldBound": {
"type": "object",
"properties": {
"actual": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"field": {
"type": "string"
},
"limit": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"field",
"limit",
"actual"
]
}
},
"additionalProperties": false,
"required": [
"FieldBound"
]
},
{
"type": "object",
"properties": {
"InvalidFormat": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"field",
"value"
]
}
},
"additionalProperties": false,
"required": [
"InvalidFormat"
]
},
{
"type": "object",
"properties": {
"InvalidIdentity": {
"type": "object",
"properties": {
"expected": {
"type": "string"
},
"key": {
"type": "string"
},
"kind": {
"$ref": "#/$defs/PipelineKind"
}
},
"required": [
"kind",
"key",
"expected"
]
}
},
"additionalProperties": false,
"required": [
"InvalidIdentity"
]
},
{
"type": "object",
"properties": {
"DuplicateRepo": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"repo": {
"type": "string"
}
},
"required": [
"field",
"repo"
]
}
},
"additionalProperties": false,
"required": [
"DuplicateRepo"
]
},
{
"type": "object",
"properties": {
"ForeignStore": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
]
}
},
"additionalProperties": false,
"required": [
"ForeignStore"
]
}
]
},
"PipelineResolution": {
"description": "The record of how a subject was closed and by what. `sequence` is per\nsubject and set by the writer, `1` for the first, and it is the last\npart of the key, so a subject's resolutions share a prefix and a\nwithdrawn one is kept under its subject rather than overwritten.\nWhether a sequence is the previous plus one, and whether an earlier\nresolution still stands, are admission's rules: this crate refuses\nneither `0` nor a gap, exactly as it refuses neither `revision: 0` nor\na `revision` with no predecessor.",
"type": "object",
"properties": {
"outcome": {
"$ref": "#/$defs/ResolutionOutcome"
},
"rationale": {
"$ref": "#/$defs/Para"
},
"resolved_on": {
"$ref": "#/$defs/Date"
},
"sequence": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"subject": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"subject",
"sequence",
"outcome",
"rationale",
"resolved_on"
]
},
"PipelineRuling": {
"type": "object",
"properties": {
"answers": {
"anyOf": [
{
"$ref": "#/$defs/Short"
},
{
"type": "null"
}
]
},
"authority": {
"$ref": "#/$defs/RulingAuthority"
},
"campaign": {
"$ref": "#/$defs/Slug"
},
"choice": {
"anyOf": [
{
"$ref": "#/$defs/Label"
},
{
"type": "null"
}
]
},
"label": {
"$ref": "#/$defs/Label"
},
"operator_quote": {
"anyOf": [
{
"$ref": "#/$defs/Para"
},
{
"type": "null"
}
]
},
"precedents": {
"type": "array",
"items": {
"$ref": "#/$defs/ForeignRef"
},
"maxItems": 8
},
"ruled_on": {
"$ref": "#/$defs/Date"
},
"ruling": {
"$ref": "#/$defs/Para"
},
"title": {
"$ref": "#/$defs/Title"
}
},
"required": [
"campaign",
"label",
"title",
"ruling",
"ruled_on",
"precedents",
"authority"
]
},
"PipelineRun": {
"description": "One launch of a Self or a Persona turn: the one record of what it took\non. `claims` are the work it holds, and a claim is live while its run\nhas no resolution in force. `budget_usd` is a canonical decimal string,\n`0` for an interactive run. Instance-rooted like stewardship: the key\nis `<instance>:run:<label>`. Whether a claim is free is admission's rule.",
"type": "object",
"properties": {
"budget_usd": {
"$ref": "#/$defs/Short"
},
"campaigns": {
"type": "array",
"items": {
"$ref": "#/$defs/Slug"
},
"maxItems": 8
},
"claims": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineRef"
},
"maxItems": 64
},
"host": {
"$ref": "#/$defs/Short"
},
"instance": {
"$ref": "#/$defs/Slug"
},
"label": {
"$ref": "#/$defs/Label"
},
"operated_by": {
"$ref": "#/$defs/RunOperator"
},
"started_on": {
"$ref": "#/$defs/Date"
},
"turn": {
"$ref": "#/$defs/RunTurn"
}
},
"required": [
"instance",
"label",
"operated_by",
"turn",
"host",
"started_on",
"budget_usd",
"claims",
"campaigns"
]
},
"PipelineSelectionPage": {
"description": "One page of a selection. `matched` is the count before paging, `as_of` the\nsnapshot the page and every cursor of its walk are exact as of, `edges`\nis present exactly when the selection follows a hop, and `scores` exactly\nwhen the answer is semantic: one cosine similarity per item, in order\n(higher is nearer), for display and thresholding. It is never stored.",
"type": "object",
"properties": {
"as_of": {
"type": "integer",
"format": "uint64",
"minimum": 0
},
"edges": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/PipelineEdge"
}
},
"items": {
"$ref": "#/$defs/PipelinePageItems"
},
"matched": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"next": {
"type": [
"string",
"null"
]
},
"scores": {
"type": [
"array",
"null"
],
"items": {
"type": "number",
"format": "float"
}
}
},
"required": [
"matched",
"as_of",
"items"
]
},
"PipelineStatus": {
"description": "Whether a document still stands, and if not, what closed it. Derived at\nread time; no document carries a status field and no admission writes one.\nThe whole closing record travels, not only its outcome, because a reader\nrehydrating wants why.",
"oneOf": [
{
"type": "string",
"enum": [
"InForce"
]
},
{
"type": "object",
"properties": {
"Resolved": {
"type": "object",
"properties": {
"record": {
"$ref": "#/$defs/PipelineResolution"
},
"resolution": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"resolution",
"record"
]
}
},
"additionalProperties": false,
"required": [
"Resolved"
]
}
]
},
"PipelineStatusSummary": {
"description": "Whether a summarised document stands: the closing record's outcome, not its\nrationale. A caller who wants why opens the resolution.",
"oneOf": [
{
"type": "string",
"enum": [
"InForce"
]
},
{
"type": "object",
"properties": {
"Resolved": {
"type": "object",
"properties": {
"outcome": {
"$ref": "#/$defs/ResolutionOutcome"
},
"resolution": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"resolution",
"outcome"
]
}
},
"additionalProperties": false,
"required": [
"Resolved"
]
}
]
},
"PipelineStewardship": {
"description": "Stewardship over a repo, as an assignment recorded in a mind. One\ninstance may steward several repos, so the repo is part of the key.\n`sequence` is per `(instance, repo)`, set by the writer, `1` for the\nfirst, so a repo transferred away and back is two records under one\nprefix rather than one document overwriting the other. `assigned_on`\nis a field, not a key part. As on a resolution, whether the sequence\nis the previous plus one, and which assignment is in force, are\nadmission's rules and not this crate's.",
"type": "object",
"properties": {
"assigned_on": {
"$ref": "#/$defs/Date"
},
"instance": {
"$ref": "#/$defs/Slug"
},
"note": {
"$ref": "#/$defs/Line"
},
"repo": {
"$ref": "#/$defs/OrgRepo"
},
"sequence": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"instance",
"repo",
"sequence",
"assigned_on",
"note"
]
},
"PipelineTarget": {
"description": "`repos`, when non-empty, is the campaign's whole repo set from this\nrevision on; empty keeps the previous set (ruling campaign-repo-set-home).",
"type": "object",
"properties": {
"campaign": {
"$ref": "#/$defs/Slug"
},
"canonical_implementations": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 16
},
"doc": {
"$ref": "#/$defs/DocRef"
},
"invariants": {
"type": "array",
"items": {
"$ref": "#/$defs/TargetInvariant"
},
"maxItems": 32
},
"not_in_scope": {
"type": "array",
"items": {
"$ref": "#/$defs/Line"
},
"maxItems": 32
},
"repos": {
"type": "array",
"items": {
"$ref": "#/$defs/OrgRepo"
},
"maxItems": 16
},
"revision": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"campaign",
"revision",
"invariants",
"not_in_scope",
"canonical_implementations",
"doc"
]
},
"PipelineVerdict": {
"type": "object",
"properties": {
"campaign": {
"$ref": "#/$defs/Slug"
},
"claims": {
"type": "array",
"items": {
"$ref": "#/$defs/VerdictClaim"
},
"maxItems": 64
},
"cut_report": {
"$ref": "#/$defs/Short"
},
"pass": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"range": {
"$ref": "#/$defs/CommitRange"
}
},
"required": [
"campaign",
"cut_report",
"pass",
"range",
"claims"
]
},
"PrAction": {
"description": "What a pull-request event did. The words are the forge's op names, nothing\na person wrote.",
"type": "string",
"enum": [
"Opened",
"Merged",
"Closed",
"Reopened",
"Commented",
"Approved",
"Rejected",
"AutoMerge"
]
},
"Promise": {
"description": "A promise a report makes about what it landed. Not a document and not\nresolvable: it is identified by its report's id and its label, as a\n`TargetInvariant` is by its target's. Soul measures every one (ruling\nA), and the rule that every one is measured is admission's.",
"type": "object",
"properties": {
"label": {
"$ref": "#/$defs/Label"
},
"text": {
"$ref": "#/$defs/Line"
}
},
"required": [
"label",
"text"
]
},
"QuestionOption": {
"type": "object",
"properties": {
"label": {
"$ref": "#/$defs/Label"
},
"text": {
"$ref": "#/$defs/Line"
}
},
"required": [
"label",
"text"
]
},
"ReadAnchor": {
"description": "Code Hands must see but not change, in the spec's repo at the spec's base.",
"type": "object",
"properties": {
"location": {
"$ref": "#/$defs/CodeLocation"
},
"why": {
"$ref": "#/$defs/Short"
}
},
"required": [
"location",
"why"
]
},
"RepoActivity": {
"description": "The answer to an activity read. `events` are other people's changes only,\nthe asker's own login already dropped, and on a read with no `after` only\nthose of the last 72 hours: the reader filters nothing again. `head` is the\nnewest feed id the read saw in those repos, whether or not any event\nsurvived the filter, an entry older than the window too: the cursor to ask\n`after` next. `capped` names the repos whose feed the read stopped reading at its page limit: their older entries were not read.\n`open_prs` comes only on a read with no `after`; `unseen` and `moved` come on every read, because a repo can go dark in the middle of a session.",
"type": "object",
"properties": {
"capped": {
"type": "array",
"items": {
"$ref": "#/$defs/OrgRepo"
}
},
"events": {
"type": "array",
"items": {
"$ref": "#/$defs/RepoEvent"
}
},
"head": {
"type": "integer",
"format": "uint64",
"minimum": 0
},
"moved": {
"description": "Of those, the ones whose feed answered a redirect to the forge's own feed route for another repo. The redirect is not followed; a `Location` that is anything else names nothing.",
"type": "array",
"items": {
"$ref": "#/$defs/RepoMoved"
}
},
"open_prs": {
"type": "array",
"items": {
"$ref": "#/$defs/OpenPr"
}
},
"unseen": {
"description": "Repos asked about that the anonymous read cannot see: their feed answered 404 or a redirect, and on a read with no `after` the org listing does not hold them either. A repo the listing holds whose feed is dark, and a read with an `after` in which every repo is dark, are not told here: they fail the read.",
"type": "array",
"items": {
"$ref": "#/$defs/OrgRepo"
}
}
},
"required": [
"head",
"events",
"capped",
"open_prs",
"unseen",
"moved"
]
},
"RepoChange": {
"description": "What an event was. No field carries text a person wrote: a title, a comment\nor a commit message is another person's word and has no place here.",
"oneOf": [
{
"description": "A push to the repo's default branch of `commits` commits.",
"type": "object",
"properties": {
"Pushed": {
"type": "object",
"properties": {
"commits": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"commits"
]
}
},
"additionalProperties": false,
"required": [
"Pushed"
]
},
{
"type": "object",
"properties": {
"Pr": {
"type": "object",
"properties": {
"action": {
"$ref": "#/$defs/PrAction"
},
"number": {
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"number",
"action"
]
}
},
"additionalProperties": false,
"required": [
"Pr"
]
}
]
},
"RepoEvent": {
"description": "One thing someone else did in a repo of the asker's.",
"type": "object",
"properties": {
"actor": {
"description": "The forge login that did it.",
"$ref": "#/$defs/Short"
},
"at": {
"description": "When it happened, Unix milliseconds.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"change": {
"$ref": "#/$defs/RepoChange"
},
"id": {
"description": "The forge's own monotonic feed id.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"repo": {
"$ref": "#/$defs/OrgRepo"
}
},
"required": [
"id",
"at",
"repo",
"actor",
"change"
]
},
"RepoMoved": {
"description": "A redirect the forge answered for a repo's feed: it points at `to`.",
"type": "object",
"properties": {
"from": {
"$ref": "#/$defs/OrgRepo"
},
"to": {
"$ref": "#/$defs/OrgRepo"
}
},
"required": [
"from",
"to"
]
},
"ReportCommit": {
"type": "object",
"properties": {
"builds": {
"type": "boolean"
},
"sha": {
"$ref": "#/$defs/Sha"
},
"subject": {
"$ref": "#/$defs/Line"
}
},
"required": [
"sha",
"subject",
"builds"
]
},
"ResolutionOutcome": {
"description": "How a subject was resolved. Every referent is a parsed `PipelineRef`, so a\nresolution names its records by ids of the kinds they declare, validated\nwhere every other referent is; a `Fixed` commit is a `Sha` whose referent\nis outside the document set (ruling B). Whether a named document exists,\nand how many may supersede one subject, are admission's rules.",
"oneOf": [
{
"description": "Overturned, in whole or in part, by later records. The list is bounded\nhere because the enum is outside `value_types!`, the only place a list\nmaximum is emitted automatically.",
"type": "object",
"properties": {
"Superseded": {
"type": "object",
"properties": {
"by": {
"type": "array",
"items": {
"$ref": "#/$defs/PipelineRef"
},
"maxItems": 8
}
},
"required": [
"by"
]
}
},
"additionalProperties": false,
"required": [
"Superseded"
]
},
{
"type": "object",
"properties": {
"Answered": {
"type": "object",
"properties": {
"by": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"by"
]
}
},
"additionalProperties": false,
"required": [
"Answered"
]
},
{
"type": "object",
"properties": {
"Fixed": {
"type": "object",
"properties": {
"by": {
"anyOf": [
{
"$ref": "#/$defs/PipelineRef"
},
{
"type": "null"
}
]
},
"commit": {
"$ref": "#/$defs/Sha"
}
},
"required": [
"commit"
]
}
},
"additionalProperties": false,
"required": [
"Fixed"
]
},
{
"type": "object",
"properties": {
"Deferred": {
"type": "object",
"properties": {
"to": {
"$ref": "#/$defs/PipelineRef"
}
},
"required": [
"to"
]
}
},
"additionalProperties": false,
"required": [
"Deferred"
]
},
{
"type": "object",
"properties": {
"Recorded": {
"type": "object",
"properties": {
"reason": {
"$ref": "#/$defs/Line"
}
},
"required": [
"reason"
]
}
},
"additionalProperties": false,
"required": [
"Recorded"
]
},
{
"type": "object",
"properties": {
"Withdrawn": {
"type": "object",
"properties": {
"reason": {
"$ref": "#/$defs/Line"
}
},
"required": [
"reason"
]
}
},
"additionalProperties": false,
"required": [
"Withdrawn"
]
}
]
},
"RootTouched": {
"description": "A root of the mind and the newest admission under it. `repos` is the repo set in force of a root that is an in-force campaign,\nand empty for any other root.",
"type": "object",
"properties": {
"admitted_at": {
"type": "string"
},
"ordinal": {
"type": "integer",
"format": "uint64",
"minimum": 1
},
"repos": {
"type": "array",
"items": {
"$ref": "#/$defs/OrgRepo"
}
},
"root": {
"$ref": "#/$defs/Slug"
}
},
"required": [
"root",
"admitted_at",
"ordinal",
"repos"
]
},
"RulingAuthority": {
"type": "string",
"enum": [
"Operator",
"Standing",
"Defaulted",
"Mind"
]
},
"RunId": {
"description": "The id of a run: a full pipeline id of kind Run. A refusal that names a\nholder carries one, so a reader gets a run's id from the wire only if it\nparses as one; a peer cannot fill it with any other string. The only ways\nin are `TryFrom<String>`, which every deserialized value passes, and the\nadmission rules, which name a run the mind holds. The error is a fixed\nmessage: it never echoes the offered value.",
"type": "string"
},
"RunOperator": {
"type": "string",
"enum": [
"Operator",
"Mind"
]
},
"RunTurn": {
"type": "string",
"enum": [
"PersonaTurn",
"SelfRun"
]
},
"Sha": {
"description": "A git commit id: 7-40 lowercase hex characters.",
"type": "string",
"maxLength": 40
},
"Sha256Hex": {
"description": "A SHA-256 digest: exactly 64 lowercase hex characters.",
"type": "string",
"maxLength": 64
},
"Short": {
"description": "Text of at most 200 UTF-8 bytes.",
"type": "string",
"maxLength": 200
},
"Slug": {
"description": "A campaign slug or key segment: label parts joined by `.`.",
"type": "string",
"maxLength": 64
},
"SourceHit": {
"description": "One chunk the index holds, as the index holds it: the repo it belongs to,\nthe path in that repo, the commit whose blob it was cut from, its 1-based\ninclusive line range, and its text.",
"type": "object",
"properties": {
"commit": {
"type": "string"
},
"line_end": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"line_start": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"path": {
"type": "string"
},
"repo": {
"type": "string"
},
"score": {
"type": "number",
"format": "float"
},
"text": {
"type": "string"
}
},
"required": [
"repo",
"path",
"commit",
"line_start",
"line_end",
"score",
"text"
]
},
"SourceHits": {
"description": "The answer to a source search, nearest first.",
"type": "object",
"properties": {
"hits": {
"type": "array",
"items": {
"$ref": "#/$defs/SourceHit"
}
},
"indexed_under": {
"$ref": "#/$defs/SourceModel"
}
},
"required": [
"indexed_under",
"hits"
]
},
"SourceModel": {
"description": "The model a source collection was built under, and so the one a query must\nbe embedded by. The address of the embedder is no part of it.",
"type": "object",
"properties": {
"digest": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"name",
"digest"
]
},
"StructuralDelta": {
"type": "object",
"properties": {
"dependencies_added": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 64
},
"dependencies_removed": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 64
},
"formats_added": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 64
},
"formats_removed": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 64
},
"lines_added": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"lines_removed": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"targets_added": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 64
},
"targets_removed": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 64
}
},
"required": [
"lines_added",
"lines_removed",
"dependencies_added",
"dependencies_removed",
"formats_added",
"formats_removed",
"targets_added",
"targets_removed"
]
},
"Symbol": {
"description": "A name the location's lines must contain as written there (an\nidentifier or a YAML `&fileID`); not an identity. 1 to 128 bytes, no\nwhitespace and no control character.",
"type": "string",
"maxLength": 128,
"minLength": 1
},
"TargetInvariant": {
"type": "object",
"properties": {
"label": {
"$ref": "#/$defs/Label"
},
"statement": {
"$ref": "#/$defs/Line"
}
},
"required": [
"label",
"statement"
]
},
"Title": {
"description": "A title: 1 to 200 UTF-8 bytes, enforced by admission; JSON Schema\nlength counts characters. Holds at least one alphanumeric character,\nno control character, and no bidi control character (`U+061C`,\n`U+200E`, `U+200F`, `U+202A`-`U+202E`, `U+2066`-`U+2069`).",
"type": "string",
"maxLength": 200,
"minLength": 1
},
"VerdictClaim": {
"description": "The promise this claim measured, and the report's mutations it ran. An\n`Unproven` claim with a promise is one Soul could not reach.",
"type": "object",
"properties": {
"claim": {
"$ref": "#/$defs/Line"
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/$defs/Evidence"
},
"maxItems": 8
},
"findings": {
"type": "array",
"items": {
"$ref": "#/$defs/Short"
},
"maxItems": 16
},
"mutations": {
"type": "array",
"items": {
"$ref": "#/$defs/Label"
},
"maxItems": 8
},
"outcome": {
"$ref": "#/$defs/ClaimOutcome"
},
"promise": {
"anyOf": [
{
"$ref": "#/$defs/Label"
},
{
"type": "null"
}
]
}
},
"required": [
"claim",
"outcome",
"evidence",
"findings",
"mutations"
]
},
"VerificationTest": {
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/Short"
},
"pins": {
"$ref": "#/$defs/Line"
}
},
"required": [
"name",
"pins"
]
}
}
}