# Arxo inspection 0.1 A read-only view over an already computed evaluation document and its pinned run context. It computes nothing, enters no hashes, and issues no new semantic verdicts; missing data is a limit state of the explanation, never a denial. ## Versions No accepted version marker is declared. ## Top-level fields No top-level properties: the schema root is no constraint. ## Enumerations | location | values | |---|---| | `$defs/Schema` | `"law.inspection/0.1"` | | `$defs/Operation` | `"summary"`, `"slice"`, `"diff"`, `"locate"` | | `$defs/LimitState` | `"no_evidence"`, `"not_asked"`, `"unsupported"`, `"truncated"`, `"evaluation_failed"`, `"source_unavailable"`, `"hash_mismatch"` | | `$defs/VerificationState` | `"verified"`, `"mismatch"`, `"unavailable"` | | `$defs/Context/properties/route` | `"cli"`, `"mcp"`, `"wasm"`, `"sdk"`, `"case"` | | `$defs/Select/properties/watch/items/properties/kind` | `"applied"`, `"defeated"`, `"judgment"`, `"interpretation"`, `"stage"`, `"status"` | | `$defs/Request/if/properties/operation` | `"diff"` | | `$defs/Answer/properties/ok` | `true` | | `$defs/Answer/properties/verification/properties/index` | `"bound"`, `"consistent"`, `"mismatch"`, `"unavailable"` | | `$defs/RequestError/properties/ok` | `false` | | `$defs/RequestError/properties/error/properties/code` | `"REQUEST_NOT_OBJECT"`, `"SCHEMA_MISSING"`, `"SCHEMA_MISMATCH"`, `"OPERATION_MISSING"`, `"OPERATION_UNKNOWN"`, `"DOCUMENT_MISSING"`, `"AGAINST_MISSING"`, `"AGAINST_NOT_OBJECT"`, `"AGAINST_DOCUMENT_MISSING"`, `"SELECT_NOT_OBJECT"`, `"PAGE_NOT_OBJECT"` | | `$defs/Bundle/properties/schema` | `"law.inspection-bundle/0.1"` | | `$defs/Bundle/properties/index/anyOf/1/properties/inputMode` | `"single-input"`, `"reread"` | ## Raw schema [`https://law.arxo.io/schema/inspection.schema.json`](https://law.arxo.io/schema/inspection.schema.json) ## `Schema` Values: `"law.inspection/0.1"`. ## `Operation` Values: `"summary"`, `"slice"`, `"diff"`, `"locate"`. ## `LimitState` The seven limit states of an explanation. Values: `"no_evidence"`, `"not_asked"`, `"unsupported"`, `"truncated"`, `"evaluation_failed"`, `"source_unavailable"`, `"hash_mismatch"`. ## `VerificationState` Values: `"verified"`, `"mismatch"`, `"unavailable"`. ## `EvaluationDocument` An evaluation document in either evaluation form, or a refusal document of the form {"error": ...} with no graph; only the object shape is checked here. ## `Context` The pinned run context: lockfile, resources, semantics release, and route. Any field may be absent — the inspector then answers with a source_unavailable limit state naming the field. Type: `object`. | name | type-or-$ref | description | |---|---|---| | `route` | enum (5) | — | | `release` | `string` | — | | `programHash` | `string` | — | | `resolutionHash` | `string` | — | | `lock` | — | — | | `resources` | `array` | — | | `packages` | `array` | — | ## `Side` Type: `object`. Required: `document`. | name | type-or-$ref | description | |---|---|---| | `document` | [`#/$defs/EvaluationDocument`](#evaluationdocument) | — | | `snapshot` | `object` or `null` | A snapshot of the compiled program. Without it, labels and resolved names are read from the document URNs and marked source_unavailable. | | `context` | anyOf (2) | — | ## `Select` The address of a slice: at least one field, or watch alone (watching the whole answer). Empty means a slice over every result of the document. Type: `object`. | name | type-or-$ref | description | |---|---|---| | `query` | `string` | A query id or a result id. | | `rule` | `string` | The stable id of a rule. | | `position` | `string` | A position id. | | `node` | `string` | A proof-node id. | | `watch` | `array` | Watch conditions — filters over the slice, never new nodes: applied (a rule fired), defeated (defeated), judgment (a judgment was requested), interpretation (a reading was chosen), stage (round nodes), status (position status history). | ## `Page` Type: `object`. | name | type-or-$ref | description | |---|---|---| | `cursor` | `string` or `null` | — | | `budgetBytes` | `integer` | — | ## `Request` Type: `object`. Required: `schema`, `operation`, `document`. | name | type-or-$ref | description | |---|---|---| | `schema` | [`#/$defs/Schema`](#schema) | — | | `operation` | [`#/$defs/Operation`](#operation) | — | | `document` | [`#/$defs/EvaluationDocument`](#evaluationdocument) | — | | `snapshot` | `object` or `null` | — | | `context` | anyOf (2) | — | | `against` | anyOf (2) | The second side of a diff; ignored by every other operation. | | `select` | anyOf (2) | — | | `page` | anyOf (2) | — | | `bundle` | anyOf (2) | — | | `index` | `object` or `null` | The program editor index; read only when the verification index state is bound. | | `sources` | `object` or `null` | Current digests of author files, uri to sha256, as presented by the adapter; the inspector never reads files itself. | ## `Limit` Type: `object`. Required: `state`, `address`, `note`. | name | type-or-$ref | description | |---|---|---| | `state` | [`#/$defs/LimitState`](#limitstate) | — | | `address` | `string` | The address of what is missing or truncated: a document path, a snapshot path, a context field, or an operation name. | | `note` | `string` | — | ## `Answer` Type: `object`. Required: `schema`, `ok`, `operation`, `verification`, `limits`, `page`. | name | type-or-$ref | description | |---|---|---| | `schema` | [`#/$defs/Schema`](#schema) | — | | `ok` | `true` | — | | `operation` | [`#/$defs/Operation`](#operation) | — | | `verification` | `object` | — | | `limits` | `array` | — | | `page` | `object` | — | | `summary` | `object` | The summary body: origin card, queries, positions, issues, conflicts, and judgment requests. | | `slice` | `object` | The slice body. | | `diff` | `object` | The diff body: context, result, and justification. | | `locate` | `object` | The locate body: the declaration address and its source spans. | | `runId` | `string` | The id of a saved run — consumed by the law.inspect language-server route. | ## `RequestError` The single error path: the request cannot be read. Everything else is a limit state inside a well-formed answer. Type: `object`. Required: `schema`, `ok`, `error`. | name | type-or-$ref | description | |---|---|---| | `schema` | [`#/$defs/Schema`](#schema) | — | | `ok` | `false` | — | | `error` | `object` | — | ## `Bundle` A bundle of the document, the exact snapshot, and the editor index, written by the compiler adapter that ran the evaluation, with machine output saved. Hashes keep the parts checkable; the link between them is vouched for by the producer, never by a field’s own claim. Type: `object`. Required: `schema`, `producer`, `document`, `snapshot`, `index`. | name | type-or-$ref | description | |---|---|---| | `schema` | `"law.inspection-bundle/0.1"` | — | | `producer` | `object` | — | | `document` | `object` | — | | `snapshot` | `object` | — | | `index` | anyOf (2) | — | | `indexUnavailable` | `string` | — | | `sources` | `array` | — | | `question` | `object` | — | | `inputs` | `object` | — |