observatory.replay
Záznam scén mesh, který repozitář nese v .ai/repo/observatory/recording.json, a který Observatoř kreslí, označený jako přehrání, kde žádný mesh neběží. Absence je present: false; soubor, který nelze přečíst, je chyba.
Záznam scén mesh, který repozitář nese v .ai/repo/observatory/recording.json, a který Observatoř kreslí, označený jako přehrání, kde žádný mesh neběží. Absence je present: false; soubor, který nelze přečíst, je chyba.
- query
- behaviorally_verified
- module observatory
- #observatory
- #mesh
- #ui
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_observatory_replay |
| HTTP | GET /api/v1/observatory/replay operationId observatory.replay |
| příkazová řádka | — |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
vstup · Prázdné
Žádné vlastnosti: schopnost nebere žádný vstup.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}výstup · ObservatoryReplay
use majordomus_cli::capability::builtin::observatory::{replay_at, ObservatoryReplay, RECORDING};
let dir = tempfile::tempdir().unwrap();
let none: ObservatoryReplay = replay_at(dir.path()).unwrap();
assert!(!none.present && none.recording.is_none());
assert_eq!(none.path, RECORDING);| vlastnost | typ | povinné | popis |
|---|---|---|---|
| path | string | ano | Soubor, ze kterého se čte. |
| přítomno | boolean | ano | Zda repozitář nese záznam. |
| zaznamenávání | jedno ze 2 | ne | Nahrávka. |
JSON Schema
{
"$defs": {
"ObservatoryRecording": {
"description": "The mesh scenes of one process at one moment, fit for publication.\n\n```\nuse majordomus_cli::capability::builtin::observatory::ObservatoryRecording;\nlet r: ObservatoryRecording = serde_json::from_value(serde_json::json!({\n \"schema\": \"observatory-recording/v1\", \"recorded_at\": \"2026-10-14T05:00:00Z\", \"scenes\": {},\n \"manifest\": { \"sources\": [], \"removed\": [] },\n})).unwrap();\nassert!(r.scenes.is_empty() && r.revision.is_none());\n```",
"properties": {
"manifest": {
"$ref": "#/$defs/RecordingManifest",
"description": "What the recording is a record of, and what it leaves out."
},
"recorded_at": {
"description": "When the scenes were read.",
"type": "string"
},
"revision": {
"description": "The commit the recording process stood at, short; absent when it could not say.",
"type": [
"string",
"null"
]
},
"scenes": {
"additionalProperties": true,
"description": "Each recorded scene's model, by scene id; a scene the process had nothing live for is\nabsent, never empty.",
"type": "object"
},
"schema": {
"description": "`RECORDING_SCHEMA`.",
"type": "string"
}
},
"required": [
"schema",
"recorded_at",
"scenes",
"manifest"
],
"type": "object"
},
"RecordingManifest": {
"description": "What a recording is a record of: the capabilities read, the window of events it holds,\nand what was removed from what they answered, with the reason.\n\n```\nuse majordomus_cli::capability::builtin::observatory::RecordingManifest;\nlet m: RecordingManifest = serde_json::from_value(serde_json::json!({\n \"sources\": [\"mesh.events\"], \"removed\": [\"event bodies\"],\n})).unwrap();\nassert!(m.window.is_none(), \"a recording that holds no event has no window\");\n```",
"properties": {
"removed": {
"description": "Every kind of thing removed before publication, and why.",
"items": {
"type": "string"
},
"type": "array"
},
"sources": {
"description": "The capabilities whose answers the recorded scenes were projected from.",
"items": {
"type": "string"
},
"type": "array"
},
"window": {
"anyOf": [
{
"$ref": "#/$defs/RecordingWindow"
},
{
"type": "null"
}
],
"description": "The first and last event the recording holds, by time and by logical clock; absent\nwhen it holds none."
}
},
"required": [
"sources",
"removed"
],
"type": "object"
},
"RecordingWindow": {
"description": "The events a recording holds, from first to last.\n\n```\nuse majordomus_cli::capability::builtin::observatory::RecordingWindow;\nlet w = RecordingWindow { events: 2, from_at: Some(100), to_at: Some(160), from_lamport: Some(9), to_lamport: Some(10) };\nassert_eq!(w.to_at.unwrap() - w.from_at.unwrap(), 60, \"a minute of the journal\");\n```",
"properties": {
"events": {
"description": "How many events.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"from_at": {
"description": "The earliest event's time, in seconds since the epoch.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"from_lamport": {
"description": "The smallest logical clock.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"to_at": {
"description": "The latest event's time, in seconds since the epoch.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"to_lamport": {
"description": "The largest logical clock.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"events"
],
"type": "object"
}
},
"description": "The recording the repository carries, or that it carries none.\n\n```\nuse majordomus_cli::capability::builtin::observatory::{replay_at, ObservatoryReplay, RECORDING};\nlet dir = tempfile::tempdir().unwrap();\nlet none: ObservatoryReplay = replay_at(dir.path()).unwrap();\nassert!(!none.present && none.recording.is_none());\nassert_eq!(none.path, RECORDING);\n```",
"properties": {
"path": {
"description": "The file it is read from.",
"type": "string"
},
"present": {
"description": "Whether the repository carries a recording.",
"type": "boolean"
},
"recording": {
"anyOf": [
{
"$ref": "#/$defs/ObservatoryRecording"
},
{
"type": "null"
}
],
"description": "The recording."
}
},
"required": [
"present",
"path"
],
"title": "ObservatoryReplay",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- vypnuto — každé volání spustí handler
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.