SourceQuery gains `texts` (one to eight, SOURCE_TEXTS_MAX) beside the transitional `text`; check() refuses neither, both, more than eight and blank entries, naming `texts`. SourceHit.score documents cosine versus reciprocal-rank sum. Published request and response schemas regenerated. Cut gamecult-chat:cut_spec:cut-source-query-texts.r1, commit 1. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
3243 lines
No EOL
82 KiB
JSON
3243 lines
No EOL
82 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "HuginnMindRequest",
|
|
"description": "Every operation a mind answers. `Admit` carries the batch whole because the\nbatch already names the instance and the asker; a second `instance` beside\nit would be two declarations. Every read names the instance because ruling\n14 refuses another mind's identity whatever the transport, and a read of\nthe wrong mind is that same collision on the read side. `Whoami` names\nnone: it is how a client learns which mind it reached.",
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"Whoami"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Admit": {
|
|
"$ref": "#/$defs/PipelineAdmissionBatch"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Admit"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"View": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"id"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"View"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Query": {
|
|
"type": "object",
|
|
"properties": {
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"selection": {
|
|
"$ref": "https://github.com/GameCult/CultLib/contracts/cultnet/cultnet.selection.schema.json"
|
|
},
|
|
"semantic": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/SemanticQuery"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"selection"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Query"
|
|
]
|
|
},
|
|
{
|
|
"description": "The mind's persona document, if one is stored.",
|
|
"type": "object",
|
|
"properties": {
|
|
"PersonaGet": {
|
|
"type": "object",
|
|
"properties": {
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"PersonaGet"
|
|
]
|
|
},
|
|
{
|
|
"description": "Replaces the mind's persona document whole. `expected_updated_at` is\nthe stored document's `updatedAt`, none for the first put. The\nprovenance is the asker's, as for `Admit`.",
|
|
"type": "object",
|
|
"properties": {
|
|
"PersonaPut": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expected_updated_at": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"provenance": {
|
|
"$ref": "#/$defs/PipelineProvenance"
|
|
},
|
|
"state": true
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"provenance",
|
|
"state"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"PersonaPut"
|
|
]
|
|
},
|
|
{
|
|
"description": "Semantic search over the source index: the public forge repos' code and\ndocs, which no mind holds. The daemon embeds the text and asks the\nindex it does not write.",
|
|
"type": "object",
|
|
"properties": {
|
|
"SearchSources": {
|
|
"type": "object",
|
|
"properties": {
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"query": {
|
|
"$ref": "#/$defs/SourceQuery"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"query"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"SearchSources"
|
|
]
|
|
},
|
|
{
|
|
"description": "What others did in `repos` on the forge since the `after` cursor: the\ndaemon reads the forge and no document of the mind, and answers\n`Refused(Unavailable)` when it has no forge or the forge does not answer\nin time. The repos are the asker's to name (her stewardships); the\ninstance's own login is dropped from the answer.",
|
|
"type": "object",
|
|
"properties": {
|
|
"StewardedActivity": {
|
|
"type": "object",
|
|
"properties": {
|
|
"after": {
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
],
|
|
"format": "uint64",
|
|
"minimum": 0
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"repos": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/OrgRepo"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"repos"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"StewardedActivity"
|
|
]
|
|
},
|
|
{
|
|
"description": "Every root the mind holds a document under, with its newest admission and a campaign's repos in force: the mind's own\nrecords, one pass at the head.",
|
|
"type": "object",
|
|
"properties": {
|
|
"RootsTouched": {
|
|
"type": "object",
|
|
"properties": {
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"RootsTouched"
|
|
]
|
|
}
|
|
],
|
|
"$defs": {
|
|
"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"
|
|
]
|
|
},
|
|
"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
|
|
},
|
|
"DeskAuthority": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Operator",
|
|
"Steward",
|
|
"Member"
|
|
]
|
|
},
|
|
"DeskOutcome": {
|
|
"description": "The one tagged outcome of a desk answer. A retraction is a variant, so a\nretraction without a target and a target without a retraction cannot be\nstored. `of` and `retracts` name desk answers by answer id (the record key).",
|
|
"oneOf": [
|
|
{
|
|
"description": "The answer that counts for its fork when it was admitted.",
|
|
"type": "string",
|
|
"const": "Counted"
|
|
},
|
|
{
|
|
"description": "A later passing answer, kept visible; `of` is the counted answer it followed.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Revision": {
|
|
"type": "object",
|
|
"properties": {
|
|
"of": {
|
|
"$ref": "#/$defs/Short"
|
|
}
|
|
},
|
|
"required": [
|
|
"of"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Revision"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Retraction": {
|
|
"type": "object",
|
|
"properties": {
|
|
"retracts": {
|
|
"$ref": "#/$defs/Short"
|
|
}
|
|
},
|
|
"required": [
|
|
"retracts"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Retraction"
|
|
]
|
|
},
|
|
{
|
|
"description": "A request the desk would not count, kept with what it was sent with. `retracts` is the\ntarget a refused retraction named, as sent and unchecked (it may name no answer at all);\nit is `None` on a refused answer, and it is never a citation.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Refused": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"$ref": "#/$defs/DeskRefusal"
|
|
},
|
|
"retracts": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"code"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Refused"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"DeskRefusal": {
|
|
"type": "string",
|
|
"enum": [
|
|
"StaleFork",
|
|
"NotADecider",
|
|
"ForkClosed",
|
|
"ChoiceInvalid",
|
|
"BadRetraction",
|
|
"AlreadyRetracted"
|
|
]
|
|
},
|
|
"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. `Member` and `Steward` name a desk answerer who is neither the\noperator nor a faculty; they confer no admission right anywhere (a test admits a\nbatch under each and checks the outcomes match).",
|
|
"type": "string",
|
|
"enum": [
|
|
"SelfFaculty",
|
|
"Imagination",
|
|
"Hands",
|
|
"Soul",
|
|
"Life",
|
|
"Eyes",
|
|
"Operator",
|
|
"Member",
|
|
"Steward"
|
|
]
|
|
},
|
|
"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
|
|
},
|
|
"ImportSource": {
|
|
"description": "The receipt a batch replays and the mind it came from: a quotation of the source receipt, which\nstays the primary record. `faculty`, `agent`, `session` and `tool` are the source's, the batch's\nown being the importer's. `external` lists the referents the batch cites that this mind does not\nhold and does not import: each is treated as in force and nothing reads its content.",
|
|
"type": "object",
|
|
"properties": {
|
|
"agent": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"committed_at": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"external": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"maxItems": 256
|
|
},
|
|
"faculty": {
|
|
"$ref": "#/$defs/Faculty"
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"ordinal": {
|
|
"type": "integer",
|
|
"format": "uint64",
|
|
"minimum": 0
|
|
},
|
|
"receipt_id": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"session": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"tool": {
|
|
"$ref": "#/$defs/Short"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"receipt_id",
|
|
"ordinal",
|
|
"committed_at",
|
|
"faculty",
|
|
"agent",
|
|
"session",
|
|
"tool",
|
|
"external"
|
|
]
|
|
},
|
|
"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 Persona turn's batch came from and whom she heard it from: a\nmemory's origin and a brief's. The organ derives it from the batch of the\nturn; 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"
|
|
]
|
|
},
|
|
{
|
|
"description": "Her Sleep run, by its label: a memory she formed in her night.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Sleep": {
|
|
"type": "object",
|
|
"properties": {
|
|
"run": {
|
|
"$ref": "#/$defs/Short"
|
|
}
|
|
},
|
|
"required": [
|
|
"run"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Sleep"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"MemorySort": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Asked",
|
|
"Decided",
|
|
"Committed",
|
|
"Learned",
|
|
"Did",
|
|
"Idea",
|
|
"Rapport"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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
|
|
},
|
|
"PipelineAdmissionBatch": {
|
|
"description": "One admission request: the mind it is for, who asks, and the documents.\nRides the wire whole (`wire::HuginnMindRequest::Admit`).",
|
|
"type": "object",
|
|
"properties": {
|
|
"documents": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/PipelineDocument"
|
|
}
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"provenance": {
|
|
"$ref": "#/$defs/PipelineProvenance"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"provenance",
|
|
"documents"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"PipelineDeskAnswer": {
|
|
"description": "One answer the fork desk's receiver passed to the Mind, refused ones included.\n`answerer` and `authority` (an attribution, never a decision) are stamped by the\nMind from the verified caller and are absent from the request type; `answered_at`\nis the client's claim kept as written, display only: order is `sequence`, the\nreceiver's order. `received_at` is the Mind's admission time (UTC) and\n`claim_in_future` is set when `answered_at` is more than five minutes after it.\n`request_id` is the client's retry token and `body_sha256` the digest of the\nrequest it came with: the pair that makes a retry the same answer, never a new\none; the key is `(answerer, request_id)`. A record holds no card: a replayed\n`stale_fork` is shown the current card. `sequence` is per question and is the\nlast part of the key (the answer id). `choice`, `note` and (for a retraction) the\ntarget are kept as sent whether the request was counted or refused, so a refused\n`choice_invalid` keeps a choice that is no option label; which answer counts now is\nderived by the reader, never stored here.",
|
|
"type": "object",
|
|
"properties": {
|
|
"answered_at": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"answerer": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"authority": {
|
|
"$ref": "#/$defs/DeskAuthority"
|
|
},
|
|
"body_sha256": {
|
|
"$ref": "#/$defs/Sha256Hex"
|
|
},
|
|
"campaign": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"choice": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"claim_in_future": {
|
|
"type": "boolean"
|
|
},
|
|
"fork": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Words"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"options_hash": {
|
|
"$ref": "#/$defs/Sha256Hex"
|
|
},
|
|
"outcome": {
|
|
"$ref": "#/$defs/DeskOutcome"
|
|
},
|
|
"received_at": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"request_id": {
|
|
"$ref": "#/$defs/RequestId"
|
|
},
|
|
"sequence": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"campaign",
|
|
"fork",
|
|
"sequence",
|
|
"options_hash",
|
|
"answered_at",
|
|
"received_at",
|
|
"claim_in_future",
|
|
"request_id",
|
|
"body_sha256",
|
|
"answerer",
|
|
"authority",
|
|
"outcome"
|
|
]
|
|
},
|
|
"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\neighteen 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"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "research"
|
|
},
|
|
"value": {
|
|
"$ref": "#/$defs/PipelineResearch"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"value"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "idea"
|
|
},
|
|
"value": {
|
|
"$ref": "#/$defs/PipelineIdea"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"value"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "reply"
|
|
},
|
|
"value": {
|
|
"$ref": "#/$defs/PipelineReply"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"value"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "thought"
|
|
},
|
|
"value": {
|
|
"$ref": "#/$defs/PipelineThought"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"value"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "desk_answer"
|
|
},
|
|
"value": {
|
|
"$ref": "#/$defs/PipelineDeskAnswer"
|
|
}
|
|
},
|
|
"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": {
|
|
"description": "A follow-up. `origin` is where the Persona turn that admitted it was\nasked, as the organ derived it: a brief records the conversation whose\nmessage started it. Absent on follow-ups no Persona turn admitted and\non briefs admitted before it existed.",
|
|
"type": "object",
|
|
"properties": {
|
|
"campaign": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"item": {
|
|
"$ref": "#/$defs/Line"
|
|
},
|
|
"label": {
|
|
"$ref": "#/$defs/Label"
|
|
},
|
|
"locations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/CodeLocation"
|
|
},
|
|
"maxItems": 16
|
|
},
|
|
"origin": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/MemoryOrigin"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"PipelineIdea": {
|
|
"description": "One thing that could be, including options rejected and ideas no cut\nuses yet. `rests_on` is what it stands on (a reader selects the ideas\nresting on a stale note with `cites`); `toward` is the fork, ruling or\nfollow-up it was made for, and empty is legal. It stores no status:\ntaken up is its Deferred resolution, rejected its Recorded one.\nCampaign-rooted: `<campaign>:idea:<pass>.<label>`.",
|
|
"type": "object",
|
|
"properties": {
|
|
"campaign": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"idea": {
|
|
"$ref": "#/$defs/Para"
|
|
},
|
|
"label": {
|
|
"$ref": "#/$defs/Label"
|
|
},
|
|
"pass": {
|
|
"$ref": "#/$defs/Label"
|
|
},
|
|
"proposed_on": {
|
|
"$ref": "#/$defs/Date"
|
|
},
|
|
"rests_on": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"maxItems": 16
|
|
},
|
|
"title": {
|
|
"$ref": "#/$defs/Title"
|
|
},
|
|
"toward": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"maxItems": 8
|
|
},
|
|
"tradeoffs": {
|
|
"$ref": "#/$defs/Para"
|
|
}
|
|
},
|
|
"required": [
|
|
"campaign",
|
|
"pass",
|
|
"label",
|
|
"title",
|
|
"idea",
|
|
"tradeoffs",
|
|
"rests_on",
|
|
"toward",
|
|
"proposed_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",
|
|
"Research",
|
|
"Idea",
|
|
"Reply",
|
|
"Thought",
|
|
"DeskAnswer"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
},
|
|
"imported_from": {
|
|
"description": "Set when the batch replays another mind's receipt: the source it quotes. Absent on every\nother admission, and then absent from the stored receipt too.",
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/ImportSource"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"PipelineReply": {
|
|
"description": "One result of her Self session, as its actuator heard it: the words her\nSelf ended a turn with, and the follow-ups (briefs) the turn answers.\nInstance-rooted: the key is `<instance>:reply:<label>`. Not semantically\nindexed. Whether the run is hers is admission's rule.",
|
|
"type": "object",
|
|
"properties": {
|
|
"answers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"maxItems": 64
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"label": {
|
|
"$ref": "#/$defs/Label"
|
|
},
|
|
"run": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"text": {
|
|
"$ref": "#/$defs/Para"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"label",
|
|
"run",
|
|
"answers",
|
|
"text"
|
|
]
|
|
},
|
|
"PipelineResearch": {
|
|
"description": "One claim a pass found, with the sources it stands on, grouped by `pass`.\nWhat is so, never what to do: a recommendation is an idea. `inferred`\nmarks a claim read from its sources rather than seen in them. It stores\nno status: whether a note is current, superseded or wrong is its\nresolutions'. `serves` names the question, cut or campaign document it\nwas gathered for. The pass's method and what it did not search is its\nfirst note, labelled `scope`. Campaign-rooted:\n`<campaign>:research:<pass>.<label>`.",
|
|
"type": "object",
|
|
"properties": {
|
|
"campaign": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"claim": {
|
|
"$ref": "#/$defs/Line"
|
|
},
|
|
"detail": {
|
|
"$ref": "#/$defs/Para"
|
|
},
|
|
"inferred": {
|
|
"type": "boolean"
|
|
},
|
|
"label": {
|
|
"$ref": "#/$defs/Label"
|
|
},
|
|
"observed_on": {
|
|
"$ref": "#/$defs/Date"
|
|
},
|
|
"pass": {
|
|
"$ref": "#/$defs/Label"
|
|
},
|
|
"serves": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"maxItems": 8
|
|
},
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/ResearchSource"
|
|
},
|
|
"maxItems": 16
|
|
}
|
|
},
|
|
"required": [
|
|
"campaign",
|
|
"pass",
|
|
"label",
|
|
"claim",
|
|
"detail",
|
|
"inferred",
|
|
"sources",
|
|
"serves",
|
|
"observed_on"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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.\n`names` are the chat names that address her for this repo, matched exactly\nas written; none means the repo's own name, matched in any case.",
|
|
"type": "object",
|
|
"properties": {
|
|
"assigned_on": {
|
|
"$ref": "#/$defs/Date"
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"names": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"maxItems": 8
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"PipelineThought": {
|
|
"description": "One tick of her stream of thought, offline: the words a base model\ncontinued from a projection of her own state, with the whole trace that\nmade them (the seed, the projection, every candidate and how near each\nwas to her earlier thoughts). `text` is the chosen candidate. `reads`\nare the documents the seed was drawn from. A thought is divergence for\ndelivery to weigh, never a memory: its words reach a later seed only\nthrough something she wrote. Instance-rooted: the key is\n`<instance>:thought:<label>`, the label `t<unix seconds>` of the tick.\nSemantically indexed on `text` only. `nearest_permille` is 1000 where she\nhad no earlier thought. `prompt_version` names the fixed parts of both\nprompts (the Projector's builder revision, guidance and word budget, and\nthe continuer's frame), so the exact prompts of an old thought can be\nrebuilt from the trace.",
|
|
"type": "object",
|
|
"properties": {
|
|
"base_model": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"candidates": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/Line"
|
|
},
|
|
"maxItems": 4
|
|
},
|
|
"chosen": {
|
|
"type": "integer",
|
|
"format": "uint8",
|
|
"maximum": 255,
|
|
"minimum": 0
|
|
},
|
|
"context": {
|
|
"$ref": "#/$defs/Para"
|
|
},
|
|
"continuer_ms": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"minimum": 0
|
|
},
|
|
"identity": {
|
|
"$ref": "#/$defs/Line"
|
|
},
|
|
"instance": {
|
|
"$ref": "#/$defs/Slug"
|
|
},
|
|
"label": {
|
|
"$ref": "#/$defs/Label"
|
|
},
|
|
"max_tokens": {
|
|
"type": "integer",
|
|
"format": "uint16",
|
|
"maximum": 65535,
|
|
"minimum": 0
|
|
},
|
|
"min_p_permille": {
|
|
"type": "integer",
|
|
"format": "uint16",
|
|
"maximum": 65535,
|
|
"minimum": 0
|
|
},
|
|
"nearest_permille": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer",
|
|
"format": "uint16",
|
|
"maximum": 65535,
|
|
"minimum": 0
|
|
},
|
|
"maxItems": 4
|
|
},
|
|
"persona_receipt": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"projection": {
|
|
"$ref": "#/$defs/Para"
|
|
},
|
|
"projector_model": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"projector_ms": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"minimum": 0
|
|
},
|
|
"prompt_version": {
|
|
"$ref": "#/$defs/Line"
|
|
},
|
|
"reads": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
"maxItems": 64
|
|
},
|
|
"stimulus": {
|
|
"$ref": "#/$defs/Para"
|
|
},
|
|
"temperature_permille": {
|
|
"type": "integer",
|
|
"format": "uint16",
|
|
"maximum": 65535,
|
|
"minimum": 0
|
|
},
|
|
"text": {
|
|
"$ref": "#/$defs/Para"
|
|
}
|
|
},
|
|
"required": [
|
|
"instance",
|
|
"label",
|
|
"text",
|
|
"reads",
|
|
"persona_receipt",
|
|
"identity",
|
|
"context",
|
|
"stimulus",
|
|
"projector_model",
|
|
"projection",
|
|
"base_model",
|
|
"temperature_permille",
|
|
"min_p_permille",
|
|
"max_tokens",
|
|
"candidates",
|
|
"nearest_permille",
|
|
"chosen",
|
|
"projector_ms",
|
|
"continuer_ms",
|
|
"prompt_version"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"ReportCommit": {
|
|
"type": "object",
|
|
"properties": {
|
|
"builds": {
|
|
"type": "boolean"
|
|
},
|
|
"sha": {
|
|
"$ref": "#/$defs/Sha"
|
|
},
|
|
"subject": {
|
|
"$ref": "#/$defs/Line"
|
|
}
|
|
},
|
|
"required": [
|
|
"sha",
|
|
"subject",
|
|
"builds"
|
|
]
|
|
},
|
|
"RequestId": {
|
|
"description": "A client's retry token: a lowercase D-format UUID.",
|
|
"type": "string",
|
|
"maxLength": 36
|
|
},
|
|
"ResearchSource": {
|
|
"description": "Where a research claim comes from. A `Repo` pin and a `Web` page are\noutside the document set; an `Observed` result reuses a finding's evidence;\na `Document` is the one source that is a citation edge.",
|
|
"oneOf": [
|
|
{
|
|
"description": "A pinned file range in a repo.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Repo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"at": {
|
|
"$ref": "#/$defs/DocRef"
|
|
},
|
|
"repo": {
|
|
"$ref": "#/$defs/OrgRepo"
|
|
}
|
|
},
|
|
"required": [
|
|
"repo",
|
|
"at"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Repo"
|
|
]
|
|
},
|
|
{
|
|
"description": "A page read on the web: its address, the work it belongs to, and when.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Web": {
|
|
"type": "object",
|
|
"properties": {
|
|
"retrieved_on": {
|
|
"$ref": "#/$defs/Date"
|
|
},
|
|
"url": {
|
|
"$ref": "#/$defs/Line"
|
|
},
|
|
"work": {
|
|
"$ref": "#/$defs/Short"
|
|
}
|
|
},
|
|
"required": [
|
|
"url",
|
|
"work",
|
|
"retrieved_on"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Web"
|
|
]
|
|
},
|
|
{
|
|
"description": "A command, probe, read or capture the pass ran itself.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Observed": {
|
|
"type": "object",
|
|
"properties": {
|
|
"evidence": {
|
|
"$ref": "#/$defs/Evidence"
|
|
}
|
|
},
|
|
"required": [
|
|
"evidence"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Observed"
|
|
]
|
|
},
|
|
{
|
|
"description": "Another document in the mind.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Document": {
|
|
"type": "object",
|
|
"properties": {
|
|
"reference": {
|
|
"$ref": "#/$defs/PipelineRef"
|
|
}
|
|
},
|
|
"required": [
|
|
"reference"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Document"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
{
|
|
"description": "How a Sleep run ended when the ledger took her reply: `line` is her one line, `day_through` the last memory\nof her day she was shown (none when the day was empty). It is the one place a night's cut line is kept.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Slept": {
|
|
"type": "object",
|
|
"properties": {
|
|
"day_through": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/PipelineRef"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"line": {
|
|
"$ref": "#/$defs/Line"
|
|
}
|
|
},
|
|
"required": [
|
|
"line"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Slept"
|
|
]
|
|
},
|
|
{
|
|
"description": "A campaign's history left this mind for `to`, the mind that now keeps it. Final: the campaign and every\ndocument under its root read resolved by this and take no further writes here.",
|
|
"type": "object",
|
|
"properties": {
|
|
"Moved": {
|
|
"type": "object",
|
|
"properties": {
|
|
"to": {
|
|
"$ref": "#/$defs/Slug"
|
|
}
|
|
},
|
|
"required": [
|
|
"to"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Moved"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"RulingAuthority": {
|
|
"description": "Who decided a ruling, and under what. `Mind` is this mind's own decision, admitted by her Self. `Steward` is\na named peer's decision inside the peer's stewardship, as this mind heard it: `steward` is the deciding Mind's\nMatrix id, `repo` the stewardship she decided under, `words` her own words copied from the line this mind heard,\n`event` that line's Matrix event id when it was a delivery. The four unit variants stay bare strings on the wire.",
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"Operator",
|
|
"Standing",
|
|
"Defaulted",
|
|
"Mind"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Steward": {
|
|
"type": "object",
|
|
"properties": {
|
|
"event": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"repo": {
|
|
"$ref": "#/$defs/OrgRepo"
|
|
},
|
|
"steward": {
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
"words": {
|
|
"$ref": "#/$defs/Para"
|
|
}
|
|
},
|
|
"required": [
|
|
"steward",
|
|
"repo",
|
|
"words"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"Steward"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"RunOperator": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Operator",
|
|
"Mind"
|
|
]
|
|
},
|
|
"RunTurn": {
|
|
"type": "string",
|
|
"enum": [
|
|
"PersonaTurn",
|
|
"SelfRun",
|
|
"Sleep"
|
|
]
|
|
},
|
|
"SemanticQuery": {
|
|
"description": "A semantic query: the text to find documents near, and how many. The index\nowns which fields of each kind are text (`index_text`), so no substring\nfilter lives here to become a second answer to that question. `top_k` is\nthe most rows answered, all of them members of the selection: the\nselection decides membership before the index is asked.",
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"$ref": "#/$defs/Line"
|
|
},
|
|
"top_k": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"text",
|
|
"top_k"
|
|
]
|
|
},
|
|
"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
|
|
},
|
|
"SourceQuery": {
|
|
"description": "A source search: the texts to find chunks near (one to `SOURCE_TEXTS_MAX`,\neach a topic; several answer with their ranked lists fused), how many,\noptionally the one forge repo (by name) to look in, and whether to look\nonly in repos' front-page files (`FRONT_PAGE_FILES` at the repo root). An\nold client's request has no `front` and means false.",
|
|
"type": "object",
|
|
"properties": {
|
|
"front": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"repo": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Short"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"text": {
|
|
"description": "Transitional: an old client's single text, read as `texts` of one. Exactly\none of `text` and `texts` is given. To be deleted once no client sends it.",
|
|
"$ref": "#/$defs/Line",
|
|
"default": ""
|
|
},
|
|
"texts": {
|
|
"description": "The topics to search by, one to `SOURCE_TEXTS_MAX`.",
|
|
"type": "array",
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/$defs/Line"
|
|
}
|
|
},
|
|
"top_k": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"top_k"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"Words": {
|
|
"description": "A person's words, verbatim: 1 to 4,000 UTF-8 bytes, not blank (CultLib PR #72, `answer.note`).",
|
|
"type": "string",
|
|
"maxLength": 4000,
|
|
"minLength": 1
|
|
}
|
|
}
|
|
} |