augur-schema 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,23 @@
1
+ """Augur schema package.
2
+
3
+ Canonical JSON Schemas live under `augur_schema/json/`. This module exposes
4
+ loaders and a small validation helper.
5
+ """
6
+
7
+ from augur_schema._loader import (
8
+ SCHEMA_VERSION,
9
+ SchemaError,
10
+ list_schemas,
11
+ load_schema,
12
+ schemas_dir,
13
+ validator_for,
14
+ )
15
+
16
+ __all__ = [
17
+ "SCHEMA_VERSION",
18
+ "SchemaError",
19
+ "list_schemas",
20
+ "load_schema",
21
+ "schemas_dir",
22
+ "validator_for",
23
+ ]
@@ -0,0 +1,102 @@
1
+ """Schema loader.
2
+
3
+ The JSON Schemas are the source of truth. This loader caches them and
4
+ returns a `jsonschema` validator that resolves cross-schema `$ref`s against
5
+ the on-disk schema directory.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import json
11
+ from functools import cache
12
+ from importlib import resources
13
+ from pathlib import Path
14
+ from typing import Any
15
+
16
+ from jsonschema import Draft202012Validator
17
+ from jsonschema.exceptions import ValidationError
18
+ from referencing import Registry, Resource
19
+ from referencing.jsonschema import DRAFT202012
20
+
21
+ SCHEMA_VERSION = "0.1"
22
+
23
+ # Map short names → schema filenames. Keep names stable; consumers depend on them.
24
+ _SCHEMA_FILES: dict[str, str] = {
25
+ "manifest": "manifest.schema.json",
26
+ "trace": "trace.schema.json",
27
+ "debug_session": "debug_session.schema.json",
28
+ "step_trace": "step_trace.schema.json",
29
+ "observation": "observation.schema.json",
30
+ "decision_event": "decision_event.schema.json",
31
+ "replay_fixture": "replay_fixture.schema.json",
32
+ "prior_steps": "prior_steps.schema.json",
33
+ "modelio": "modelio.schema.json",
34
+ "preference": "preference.schema.json",
35
+ "diagnostic_finding": "diagnostic_finding.schema.json",
36
+ "coordinate_space": "coordinate_space.schema.json",
37
+ "provenance": "provenance.schema.json",
38
+ "capture_mode": "capture_mode.schema.json",
39
+ "failure_class": "failure_class.schema.json",
40
+ }
41
+
42
+
43
+ class SchemaError(Exception):
44
+ """Wraps schema lookup and validation failures."""
45
+
46
+
47
+ def schemas_dir() -> Path:
48
+ """Return the on-disk path to the bundled JSON Schemas."""
49
+ return Path(resources.files("augur_schema") / "json") # type: ignore[arg-type]
50
+
51
+
52
+ def list_schemas() -> list[str]:
53
+ """Return the supported schema short names."""
54
+ return sorted(_SCHEMA_FILES)
55
+
56
+
57
+ @cache
58
+ def load_schema(name: str) -> dict[str, Any]:
59
+ """Load a schema by short name (e.g. `manifest`) or filename."""
60
+ filename = _SCHEMA_FILES.get(name, name)
61
+ path = schemas_dir() / filename
62
+ if not path.exists():
63
+ raise SchemaError(f"unknown schema: {name!r}")
64
+ with path.open() as f:
65
+ loaded: dict[str, Any] = json.load(f)
66
+ return loaded
67
+
68
+
69
+ @cache
70
+ def _registry() -> Registry:
71
+ """Registry that lets cross-schema `$ref`s resolve against bundled files.
72
+
73
+ Schemas use relative refs like `coordinate_space.schema.json`. Draft 2020-12
74
+ resolves those against the base URI of the containing schema's `$id`. We
75
+ pre-register every schema under both its `$id` and its plain filename so
76
+ relative refs work no matter which one a producer used.
77
+ """
78
+ resources_list: list[tuple[str, Resource[Any]]] = []
79
+ for short, filename in _SCHEMA_FILES.items():
80
+ schema = load_schema(short)
81
+ resource = DRAFT202012.create_resource(schema)
82
+ if "$id" in schema:
83
+ resources_list.append((schema["$id"], resource))
84
+ resources_list.append((filename, resource))
85
+ return Registry().with_resources(resources_list)
86
+
87
+
88
+ def validator_for(name: str) -> Draft202012Validator:
89
+ """Return a Draft 2020-12 validator for the named schema."""
90
+ schema = load_schema(name)
91
+ return Draft202012Validator(schema, registry=_registry())
92
+
93
+
94
+ __all__ = [
95
+ "SCHEMA_VERSION",
96
+ "SchemaError",
97
+ "ValidationError",
98
+ "list_schemas",
99
+ "load_schema",
100
+ "schemas_dir",
101
+ "validator_for",
102
+ ]
@@ -0,0 +1 @@
1
+ """JSON Schemas (data). Imported via importlib.resources, not as Python."""
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/capture_mode.schema.json",
4
+ "title": "CaptureMode",
5
+ "description": "Augur capture mode (spec §7). Ordered from least to most coverage.",
6
+ "type": "string",
7
+ "enum": [
8
+ "off",
9
+ "metadata",
10
+ "trace",
11
+ "screenshots",
12
+ "video",
13
+ "model_io",
14
+ "dispatch",
15
+ "replay",
16
+ "full"
17
+ ]
18
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/coordinate_space.schema.json",
4
+ "title": "CoordinateSpace",
5
+ "description": "Coordinate space registry (spec §4, §9, issue #9). Every coordinate MUST be tagged with one of these spaces so viewers can render overlays correctly across viewport sizes and device pixel ratios.",
6
+ "type": "string",
7
+ "enum": [
8
+ "viewport_css_px",
9
+ "device_px",
10
+ "screenshot_px",
11
+ "dom_client_rect"
12
+ ],
13
+ "x-conversions": {
14
+ "note": "Conversion rules are non-normative here. See packages/sdk-python/src/augur_sdk/coordinates.py for the reference impl.",
15
+ "viewport_css_px<->device_px": "multiply by device_scale_factor on the source observation",
16
+ "viewport_css_px<->screenshot_px": "screenshots are captured at viewport scale by default; otherwise multiply by screenshot_scale",
17
+ "dom_client_rect": "Diagnostic-only space. MUST be paired with provenance=dom. Never a runtime input (spec §4)."
18
+ }
19
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/debug_session.schema.json",
4
+ "title": "DebugSession",
5
+ "description": "One CUA run from the debugger's point of view. Spec §8.",
6
+ "type": "object",
7
+ "required": [
8
+ "schema_version",
9
+ "debug_session_id",
10
+ "run_id",
11
+ "client",
12
+ "capture_mode",
13
+ "started_at",
14
+ "status"
15
+ ],
16
+ "additionalProperties": false,
17
+ "properties": {
18
+ "schema_version": {
19
+ "type": "string",
20
+ "description": "Augur schema version that this record conforms to. See docs/versioning.md.",
21
+ "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$"
22
+ },
23
+ "debug_session_id": {
24
+ "type": "string",
25
+ "pattern": "^dbg_[A-Za-z0-9_\\-]+$"
26
+ },
27
+ "run_id": {
28
+ "type": "string",
29
+ "description": "Adapter-supplied run id. Often `run_<uuid>` but the format is not enforced."
30
+ },
31
+ "client": {
32
+ "type": "object",
33
+ "required": ["name"],
34
+ "additionalProperties": false,
35
+ "properties": {
36
+ "name": {"type": "string", "description": "Adapter name, e.g. `mantis`."},
37
+ "version": {"type": "string"},
38
+ "git_sha": {"type": "string"}
39
+ }
40
+ },
41
+ "capture_mode": {"$ref": "capture_mode.schema.json"},
42
+ "started_at": {"type": "string", "format": "date-time"},
43
+ "ended_at": {"type": ["string", "null"], "format": "date-time"},
44
+ "status": {
45
+ "type": "string",
46
+ "enum": ["running", "succeeded", "failed", "cancelled", "halted"]
47
+ },
48
+ "artifact_root": {
49
+ "type": "string",
50
+ "description": "URI to the artifact root. file:// for local bundles, s3:// or https:// otherwise."
51
+ },
52
+ "trace_uri": {"type": "string"},
53
+ "live": {
54
+ "type": ["object", "null"],
55
+ "description": "Live attach endpoints. Only populated while the run is active (spec §7, Phase 4).",
56
+ "additionalProperties": false,
57
+ "properties": {
58
+ "status_url": {"type": "string"},
59
+ "video_url": {"type": "string"},
60
+ "reasoning_url": {"type": "string"}
61
+ }
62
+ },
63
+ "tags": {
64
+ "type": "object",
65
+ "additionalProperties": {"type": "string"},
66
+ "description": "Free-form key/value tags (tenant, environment, plan signature, etc.)."
67
+ },
68
+ "costs": {
69
+ "type": "object",
70
+ "additionalProperties": false,
71
+ "description": "Run-level cost rollup. Producers MAY also stamp `cost_usd` as a string in `tags` for back-compat with the runs-list display path; servers/viewers prefer this structured form when present. Closes #58.",
72
+ "properties": {
73
+ "total_usd": {"type": "number", "minimum": 0},
74
+ "model_usd": {"type": "number", "minimum": 0},
75
+ "gpu_usd": {"type": "number", "minimum": 0},
76
+ "proxy_usd": {"type": "number", "minimum": 0},
77
+ "tokens_in": {"type": "integer", "minimum": 0},
78
+ "tokens_out": {"type": "integer", "minimum": 0},
79
+ "cache_hit_tokens": {"type": "integer", "minimum": 0}
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/decision_event.schema.json",
4
+ "title": "DecisionEvent",
5
+ "description": "An ordered record from planner, verifier, recovery, routing, or dispatch layers (spec §8). Stored one-per-line in JSONL files under events/.",
6
+ "type": "object",
7
+ "required": ["ts", "layer", "kind", "summary"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "ts": {
11
+ "type": "string",
12
+ "format": "date-time",
13
+ "description": "ISO-8601 UTC timestamp."
14
+ },
15
+ "step_index": {
16
+ "type": "integer",
17
+ "minimum": 0,
18
+ "description": "Optional — events MAY be associated with a step or stand alone."
19
+ },
20
+ "layer": {
21
+ "type": "string",
22
+ "enum": [
23
+ "planner",
24
+ "grounding",
25
+ "model",
26
+ "dispatch",
27
+ "verifier",
28
+ "step_recovery",
29
+ "routing",
30
+ "runner",
31
+ "adapter"
32
+ ]
33
+ },
34
+ "kind": {
35
+ "type": "string",
36
+ "enum": ["decision", "observation", "error", "info", "metric"]
37
+ },
38
+ "summary": {
39
+ "type": "string",
40
+ "description": "One-line human summary. The detail object carries the structured payload."
41
+ },
42
+ "detail": {
43
+ "type": "object",
44
+ "description": "Layer-specific structured payload. Schema is intentionally open here; adapters MAY define their own shapes.",
45
+ "additionalProperties": true
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/diagnostic_finding.schema.json",
4
+ "title": "DiagnosticFinding",
5
+ "description": "One output of the diagnostic rules engine. Spec §15.",
6
+ "type": "object",
7
+ "required": ["rule_id", "severity", "summary", "evidence"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "rule_id": {
11
+ "type": "string",
12
+ "description": "Stable rule identifier. Generic rules use `cua.*`; adapter packs MUST namespace under `<adapter>.*`.",
13
+ "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$"
14
+ },
15
+ "severity": {
16
+ "type": "string",
17
+ "enum": ["info", "low", "medium", "high", "critical"]
18
+ },
19
+ "summary": {"type": "string"},
20
+ "recommendation": {"type": "string"},
21
+ "step_index": {"type": "integer", "minimum": 0},
22
+ "evidence": {
23
+ "type": "array",
24
+ "minItems": 1,
25
+ "description": "At least one evidence reference. Each MUST point at a bundle-relative path. Optional `#L<n>` or `#L<a>-L<b>` anchors are honored for log refs.",
26
+ "items": {
27
+ "type": "object",
28
+ "required": ["type", "ref"],
29
+ "additionalProperties": false,
30
+ "properties": {
31
+ "type": {
32
+ "type": "string",
33
+ "enum": ["log", "step", "event", "screenshot", "diff", "crop", "trace"]
34
+ },
35
+ "ref": {"type": "string"}
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/failure_class.schema.json",
4
+ "title": "FailureClass",
5
+ "description": "Generic CUA failure taxonomy. Adapter-specific failure classes MUST namespace under `<adapter>.<class>` (e.g. `mantis.modal_signature_missing`). Open string so adapters can extend without a schema bump; the diagnostic rules engine owns the authoritative list per pack.",
6
+ "type": "string",
7
+ "examples": [
8
+ "no_state_change",
9
+ "click_outside_viewport",
10
+ "coordinate_space_mismatch",
11
+ "verifier_disagrees",
12
+ "dispatch_ok_state_fail",
13
+ "invalid_action_schema",
14
+ "missing_observation",
15
+ "infra_failure",
16
+ "model_timeout",
17
+ "som_clicked_container",
18
+ "tab_walk_target_absent"
19
+ ],
20
+ "minLength": 1
21
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/manifest.schema.json",
4
+ "title": "BundleManifest",
5
+ "description": "Envelope for an Augur debug bundle. Spec §11. Lives at `manifest.json` at the bundle root.",
6
+ "type": "object",
7
+ "required": [
8
+ "schema_version",
9
+ "bundle_format",
10
+ "run_id",
11
+ "debug_session_id",
12
+ "client",
13
+ "capture_mode",
14
+ "created_at",
15
+ "trace",
16
+ "step_count",
17
+ "paths"
18
+ ],
19
+ "additionalProperties": false,
20
+ "properties": {
21
+ "schema_version": {
22
+ "type": "string",
23
+ "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$",
24
+ "description": "Augur schema version that every record in this bundle conforms to."
25
+ },
26
+ "bundle_format": {
27
+ "type": "string",
28
+ "const": "augur-bundle",
29
+ "description": "Constant discriminator so consumers can sniff Augur bundles without parsing the rest."
30
+ },
31
+ "run_id": {"type": "string"},
32
+ "debug_session_id": {
33
+ "type": "string",
34
+ "pattern": "^dbg_[A-Za-z0-9_\\-]+$"
35
+ },
36
+ "client": {
37
+ "type": "object",
38
+ "required": ["name"],
39
+ "additionalProperties": false,
40
+ "properties": {
41
+ "name": {"type": "string"},
42
+ "version": {"type": "string"},
43
+ "git_sha": {"type": "string"}
44
+ }
45
+ },
46
+ "capture_mode": {"$ref": "capture_mode.schema.json"},
47
+ "created_at": {"type": "string", "format": "date-time"},
48
+ "redaction": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "required": ["policy_id"],
52
+ "properties": {
53
+ "policy_id": {"type": "string"},
54
+ "applied": {"type": "boolean", "default": true}
55
+ }
56
+ },
57
+ "trace": {
58
+ "type": "string",
59
+ "description": "Bundle-relative path to the trace document (see trace.schema.json).",
60
+ "const": "trace.json"
61
+ },
62
+ "step_count": {"type": "integer", "minimum": 0},
63
+ "paths": {
64
+ "type": "object",
65
+ "description": "Path-stability map. Producers MUST emit exactly these top-level paths so consumers can rely on them.",
66
+ "additionalProperties": false,
67
+ "required": ["steps", "screenshots", "events", "logs"],
68
+ "properties": {
69
+ "steps": {"type": "string", "const": "steps/"},
70
+ "screenshots": {"type": "string", "const": "screenshots/"},
71
+ "crops": {"type": "string", "const": "crops/"},
72
+ "diffs": {"type": "string", "const": "diffs/"},
73
+ "events": {"type": "string", "const": "events/"},
74
+ "logs": {"type": "string", "const": "logs/"},
75
+ "replay": {"type": "string", "const": "replay/"},
76
+ "diagnostics": {"type": "string", "const": "diagnostics/"},
77
+ "modelio": {"type": "string", "const": "modelio/"},
78
+ "preferences": {"type": "string", "const": "preferences/"},
79
+ "schema": {"type": "string", "const": "schema/"},
80
+ "agent": {"type": "string", "const": "AGENT.md"}
81
+ }
82
+ },
83
+ "costs": {
84
+ "type": "object",
85
+ "additionalProperties": false,
86
+ "description": "Run-level cost rollup mirrored from the session record so cost-aware consumers (run-list dashboards, training pipelines) can read the manifest alone. Closes #58.",
87
+ "properties": {
88
+ "total_usd": {"type": "number", "minimum": 0},
89
+ "model_usd": {"type": "number", "minimum": 0},
90
+ "gpu_usd": {"type": "number", "minimum": 0},
91
+ "proxy_usd": {"type": "number", "minimum": 0},
92
+ "tokens_in": {"type": "integer", "minimum": 0},
93
+ "tokens_out": {"type": "integer", "minimum": 0},
94
+ "cache_hit_tokens": {"type": "integer", "minimum": 0}
95
+ }
96
+ },
97
+ "signatures": {
98
+ "type": "object",
99
+ "description": "Optional content hashes for integrity. Keys are bundle-relative file paths; values are sha256 hex digests.",
100
+ "additionalProperties": {
101
+ "type": "string",
102
+ "pattern": "^[0-9a-f]{64}$"
103
+ }
104
+ },
105
+ "missing": {
106
+ "type": "array",
107
+ "description": "Bundle-relative paths that are explicitly absent (e.g. screenshots before late-attach point). Consumers MUST treat anything not listed and not present as a producer bug.",
108
+ "items": {"type": "string"}
109
+ }
110
+ }
111
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/modelio.schema.json",
4
+ "title": "ModelIORecord",
5
+ "description": "One model call's full input + output (closes #56). Stored at `modelio/<step_index:04d>-<layer>-<seq>.json` so multiple calls per step (planner + grounding + verifier) each get a file. Required only when capture_mode is `model_io` or `full`; producers running at lower capture modes MAY omit modelio/ entirely. This is the canonical training-data shape — pinned so downstream SFT/DPO pipelines don't need adapter-specific parsers.",
6
+ "type": "object",
7
+ "required": ["schema_version", "layer", "ts", "request", "response"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "schema_version": {
11
+ "type": "string",
12
+ "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$",
13
+ "description": "Modelio record schema version. Independent of the bundle schema_version so this shape can evolve without forcing a full bundle bump."
14
+ },
15
+ "step_index": {
16
+ "type": ["integer", "null"],
17
+ "minimum": 0,
18
+ "description": "Step this call belongs to, or null for run-scoped calls (e.g. an initial plan that precedes any step)."
19
+ },
20
+ "layer": {
21
+ "type": "string",
22
+ "enum": ["planner", "grounding", "model", "verifier", "step_recovery", "judge"],
23
+ "description": "Which agent layer produced this call. `model` is the catch-all for adapters whose architecture doesn't split into planner/grounding."
24
+ },
25
+ "ts": {"type": "string", "format": "date-time"},
26
+ "request": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["model"],
30
+ "properties": {
31
+ "model": {
32
+ "type": "string",
33
+ "description": "Vendor model identifier exactly as sent (e.g. `claude-sonnet-4-7-20260120`, `gpt-5-2026-04`)."
34
+ },
35
+ "system": {
36
+ "type": ["string", "null"],
37
+ "description": "System prompt. May be null when the vendor API has no separate system slot."
38
+ },
39
+ "messages": {
40
+ "type": "array",
41
+ "description": "OpenAI/Anthropic-style message log. `content` is provider-shaped (text blocks, image_url, tool_result, etc.) — schema-free so we can store any vendor's encoding verbatim.",
42
+ "items": {
43
+ "type": "object",
44
+ "required": ["role"],
45
+ "additionalProperties": true,
46
+ "properties": {
47
+ "role": {"type": "string"},
48
+ "content": {}
49
+ }
50
+ }
51
+ },
52
+ "tools": {
53
+ "type": "array",
54
+ "description": "Tool / function definitions sent with the request. Provider-shaped.",
55
+ "items": {"type": "object", "additionalProperties": true}
56
+ },
57
+ "params": {
58
+ "type": "object",
59
+ "additionalProperties": true,
60
+ "description": "Sampling + generation parameters (temperature, top_p, max_tokens, stop, …). Provider-shaped."
61
+ }
62
+ }
63
+ },
64
+ "response": {
65
+ "type": "object",
66
+ "additionalProperties": false,
67
+ "properties": {
68
+ "text": {"type": ["string", "null"]},
69
+ "tool_calls": {
70
+ "type": "array",
71
+ "description": "Tool / function calls the model emitted. Provider-shaped.",
72
+ "items": {"type": "object", "additionalProperties": true}
73
+ },
74
+ "stop_reason": {"type": "string"},
75
+ "usage": {
76
+ "type": "object",
77
+ "additionalProperties": false,
78
+ "properties": {
79
+ "prompt_tokens": {"type": "integer", "minimum": 0},
80
+ "completion_tokens": {"type": "integer", "minimum": 0},
81
+ "cache_hit_tokens": {"type": "integer", "minimum": 0},
82
+ "cache_creation_tokens": {"type": "integer", "minimum": 0}
83
+ }
84
+ }
85
+ }
86
+ },
87
+ "prompt_hash": {
88
+ "type": "string",
89
+ "description": "SHA-256 hex digest of the request blob (canonical-JSON-serialized). Used for de-duplication across runs that share a common prompt template."
90
+ },
91
+ "redaction_applied": {
92
+ "type": "boolean",
93
+ "description": "Whether the redaction policy was applied to this record before persistence. When true, fields the policy marks sensitive (passwords, tokens, etc.) MAY have been replaced with masks."
94
+ },
95
+ "duration_ms": {
96
+ "type": "integer",
97
+ "minimum": 0,
98
+ "description": "Wall-clock latency from request send to response receive."
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/observation.schema.json",
4
+ "title": "Observation",
5
+ "description": "A captured screenshot with enough metadata to render overlays correctly (spec §8).",
6
+ "type": "object",
7
+ "required": [
8
+ "artifact",
9
+ "media_type",
10
+ "width",
11
+ "height",
12
+ "coordinate_space"
13
+ ],
14
+ "additionalProperties": false,
15
+ "properties": {
16
+ "artifact": {
17
+ "type": "string",
18
+ "description": "Bundle-relative path or signed URI to the image."
19
+ },
20
+ "media_type": {
21
+ "type": "string",
22
+ "enum": ["image/png", "image/jpeg", "image/webp"]
23
+ },
24
+ "width": {"type": "integer", "minimum": 1},
25
+ "height": {"type": "integer", "minimum": 1},
26
+ "coordinate_space": {"$ref": "coordinate_space.schema.json"},
27
+ "viewport": {
28
+ "type": "object",
29
+ "additionalProperties": false,
30
+ "required": ["width", "height"],
31
+ "properties": {
32
+ "width": {"type": "integer", "minimum": 1},
33
+ "height": {"type": "integer", "minimum": 1},
34
+ "device_scale_factor": {"type": "number", "minimum": 0, "default": 1}
35
+ }
36
+ },
37
+ "url": {"type": "string"},
38
+ "title": {"type": "string"},
39
+ "scroll": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": ["x", "y"],
43
+ "properties": {
44
+ "x": {"type": "integer"},
45
+ "y": {"type": "integer"}
46
+ }
47
+ },
48
+ "hashes": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "properties": {
52
+ "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
53
+ "phash_64": {
54
+ "type": "string",
55
+ "description": "64-bit perceptual hash, hex-encoded."
56
+ }
57
+ }
58
+ },
59
+ "redaction": {
60
+ "type": "object",
61
+ "additionalProperties": false,
62
+ "required": ["applied"],
63
+ "properties": {
64
+ "applied": {"type": "boolean"},
65
+ "policy_id": {"type": "string"},
66
+ "regions": {
67
+ "type": "array",
68
+ "description": "Optional list of regions that were masked.",
69
+ "items": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": ["x1", "y1", "x2", "y2"],
73
+ "properties": {
74
+ "x1": {"type": "integer"},
75
+ "y1": {"type": "integer"},
76
+ "x2": {"type": "integer"},
77
+ "y2": {"type": "integer"},
78
+ "label": {"type": "string"}
79
+ }
80
+ }
81
+ }
82
+ }
83
+ },
84
+ "missing": {
85
+ "type": "boolean",
86
+ "default": false,
87
+ "description": "True if this observation is a placeholder for a frame that was not captured (e.g. late attach). The `artifact` MUST still be present but the consumer MUST NOT render a screenshot."
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/preference.schema.json",
4
+ "title": "Preference",
5
+ "description": "Preference / counterfactual record for DPO + RLHF training data (closes #57). Stored at `preferences/<step_index:04d>.json` (one file per step that has preference data). Decoupled from the immutable trace so preferences can accumulate over time — a human rater may add comparisons days after the run completes.",
6
+ "type": "object",
7
+ "required": ["preference_id", "step_id", "preferred_action", "alternatives"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "preference_id": {
11
+ "type": "string",
12
+ "description": "Globally unique. Convention: `<run_id>/preference/<step_index:04d>` or `<run_id>/preference/<step_index:04d>-<seq>` when multiple preference records exist for one step."
13
+ },
14
+ "step_id": {
15
+ "type": "string",
16
+ "description": "Step this preference is about. MUST match an existing step_id in the run's trace.json."
17
+ },
18
+ "preferred_action": {
19
+ "type": "object",
20
+ "description": "The action the comparator picked as best. Shape matches `step.action` from step_trace.schema.json so downstream pipelines can treat it identically.",
21
+ "required": ["type"],
22
+ "additionalProperties": true,
23
+ "properties": {
24
+ "type": {"type": "string"},
25
+ "params": {"type": "object", "additionalProperties": true},
26
+ "coordinate_space": {"$ref": "coordinate_space.schema.json"},
27
+ "dispatch_backend": {"type": "string"}
28
+ }
29
+ },
30
+ "alternatives": {
31
+ "type": "array",
32
+ "minItems": 1,
33
+ "description": "One or more alternative actions that were considered but not preferred. Each alternative MAY carry a `reward_estimate` (0..1) for ranked DPO; minimum requirement is the action shape.",
34
+ "items": {
35
+ "type": "object",
36
+ "required": ["action"],
37
+ "additionalProperties": false,
38
+ "properties": {
39
+ "action": {
40
+ "type": "object",
41
+ "required": ["type"],
42
+ "additionalProperties": true,
43
+ "properties": {
44
+ "type": {"type": "string"},
45
+ "params": {"type": "object", "additionalProperties": true},
46
+ "coordinate_space": {"$ref": "coordinate_space.schema.json"},
47
+ "dispatch_backend": {"type": "string"}
48
+ }
49
+ },
50
+ "reward_estimate": {
51
+ "type": "number",
52
+ "minimum": 0,
53
+ "maximum": 1,
54
+ "description": "Optional ranking signal in [0,1]. preferred_action is implicitly 1.0; alternatives carry their own estimate for ranked DPO."
55
+ },
56
+ "source_run_id": {
57
+ "type": "string",
58
+ "description": "When this alternative came from a replay run against the same observation, the replay's run_id. Lets training pipelines trace counterfactuals back to their origin."
59
+ }
60
+ }
61
+ }
62
+ },
63
+ "comparator": {
64
+ "type": "string",
65
+ "enum": ["verifier", "model-judge", "human-rater", "replay-diff"],
66
+ "description": "Who decided the preference. `verifier` = automated check, `model-judge` = LLM rater, `human-rater` = manual annotation, `replay-diff` = derived from the replay workbench's verdict (#30/#33)."
67
+ },
68
+ "confidence": {
69
+ "type": "number",
70
+ "minimum": 0,
71
+ "maximum": 1,
72
+ "description": "Comparator's own confidence in the preference. For human raters this MAY be omitted or set to 1.0; for model-judges it SHOULD reflect the underlying log-prob margin."
73
+ },
74
+ "created_at": {
75
+ "type": "string",
76
+ "format": "date-time",
77
+ "description": "When the preference record was written (NOT when the run happened)."
78
+ },
79
+ "notes": {
80
+ "type": "string",
81
+ "description": "Free-form context the rater wants to attach. Optional."
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/prior_steps.schema.json",
4
+ "title": "PriorSteps",
5
+ "description": "Replay-fixture sibling: a compact list of the steps that preceded the fixture's target step in the original run. The replay workbench writes this to `replay/<step_index:04d>.prior.json` whenever a fixture's `prior_steps` is non-null, so the agent under test has the same context the original run had. Schema is intentionally a thin subset of step_trace (action + verdict + intent only) — the producer drops observation, costs, latency, etc. to keep prior context bounded.",
6
+ "type": "array",
7
+ "items": {
8
+ "type": "object",
9
+ "required": ["step_index", "action", "verdict"],
10
+ "additionalProperties": false,
11
+ "properties": {
12
+ "step_index": {
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "description": "0- or 1-based per the producer; MUST be strictly less than the fixture's step_index."
16
+ },
17
+ "intent": {
18
+ "type": ["string", "null"],
19
+ "description": "Natural-language summary of what this step was trying to do. May be null when the original trace didn't carry one."
20
+ },
21
+ "action": {
22
+ "type": "object",
23
+ "description": "Shape matches `step.action` from step_trace.schema.json so downstream pipelines can treat it identically.",
24
+ "required": ["type"],
25
+ "additionalProperties": true,
26
+ "properties": {
27
+ "type": {"type": "string"},
28
+ "params": {"type": "object", "additionalProperties": true},
29
+ "coordinate_space": {"$ref": "coordinate_space.schema.json"},
30
+ "dispatch_backend": {"type": "string"}
31
+ }
32
+ },
33
+ "verdict": {
34
+ "type": "object",
35
+ "description": "Shape matches `step.verdict` from step_trace.schema.json. The verifier's outcome for this prior step, so the agent under test can see what was passed/failed up to its starting point.",
36
+ "required": ["status"],
37
+ "additionalProperties": true,
38
+ "properties": {
39
+ "status": {
40
+ "type": "string",
41
+ "enum": ["passed", "failed", "recoverable", "skipped", "unknown"]
42
+ },
43
+ "reason": {"type": "string"},
44
+ "score": {"type": "number", "minimum": 0, "maximum": 1},
45
+ "comparator": {"type": "string"},
46
+ "evidence_refs": {
47
+ "type": "array",
48
+ "items": {"type": "string"}
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/provenance.schema.json",
4
+ "title": "Provenance",
5
+ "description": "How a coordinate or signal was derived (spec §4). The viewer MUST visually distinguish non-CUA diagnostic evidence (dom, diagnostic).",
6
+ "type": "string",
7
+ "enum": [
8
+ "screenshot",
9
+ "dom",
10
+ "human_override",
11
+ "replay_candidate",
12
+ "diagnostic"
13
+ ]
14
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/replay_fixture.schema.json",
4
+ "title": "ReplayFixture",
5
+ "description": "Seed data for replaying a single step (spec §8, §10). The fixture MUST be self-contained relative to the bundle.",
6
+ "type": "object",
7
+ "required": ["fixture_id", "step_id", "mode", "observation"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "fixture_id": {"type": "string"},
11
+ "step_id": {"type": "string"},
12
+ "mode": {
13
+ "type": "string",
14
+ "enum": [
15
+ "observation_replay",
16
+ "handler_replay",
17
+ "model_replay",
18
+ "sandbox_replay",
19
+ "shadow_replay"
20
+ ]
21
+ },
22
+ "task": {
23
+ "type": "string",
24
+ "description": "Human-readable task/intent string passed back to the agent under test."
25
+ },
26
+ "observation": {
27
+ "type": "string",
28
+ "description": "Bundle-relative path to the observation PNG used as the replay input."
29
+ },
30
+ "prior_steps": {
31
+ "type": ["string", "null"],
32
+ "description": "Bundle-relative path to a JSON file containing the prior steps' summaries (action + verdict only)."
33
+ },
34
+ "expected": {
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "properties": {
38
+ "action_type": {"type": "string"},
39
+ "acceptable_regions": {
40
+ "type": "array",
41
+ "items": {
42
+ "type": "object",
43
+ "required": ["x1", "y1", "x2", "y2"],
44
+ "additionalProperties": false,
45
+ "properties": {
46
+ "x1": {"type": "number"},
47
+ "y1": {"type": "number"},
48
+ "x2": {"type": "number"},
49
+ "y2": {"type": "number"},
50
+ "label": {"type": "string"}
51
+ }
52
+ }
53
+ },
54
+ "verdict_status": {
55
+ "type": "string",
56
+ "enum": ["passed", "failed", "recoverable", "skipped", "unknown"]
57
+ },
58
+ "captured_action": {
59
+ "type": "object",
60
+ "description": "Full action recorded for the target step (not just the type). The echo grounder returns this verbatim; other grounders use it as the round-trip target. Shape matches `step.action` from step_trace.schema.json.",
61
+ "required": ["type"],
62
+ "additionalProperties": true,
63
+ "properties": {
64
+ "type": {"type": "string"},
65
+ "params": {"type": "object", "additionalProperties": true},
66
+ "coordinate_space": {"$ref": "coordinate_space.schema.json"},
67
+ "dispatch_backend": {"type": "string"}
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "captured_versions": {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "description": "Versions in effect when the fixture was captured. Replay output MUST also record the versions in effect at replay time so deltas can be attributed.",
76
+ "properties": {
77
+ "model": {"type": "string"},
78
+ "prompt": {"type": "string"},
79
+ "code_git_sha": {"type": "string"},
80
+ "grounder": {"type": "string"}
81
+ }
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,170 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/step_trace.schema.json",
4
+ "title": "StepTrace",
5
+ "description": "One CUA step. Spec §8.",
6
+ "type": "object",
7
+ "required": [
8
+ "step_id",
9
+ "step_index",
10
+ "step_type",
11
+ "status",
12
+ "started_at"
13
+ ],
14
+ "additionalProperties": false,
15
+ "properties": {
16
+ "step_id": {
17
+ "type": "string",
18
+ "description": "Globally unique step id. Convention: `<run_id>/step/<zero-padded-index>`."
19
+ },
20
+ "step_index": {"type": "integer", "minimum": 0},
21
+ "intent": {"type": "string"},
22
+ "step_type": {
23
+ "type": "string",
24
+ "description": "Action family. Open string so adapters can extend.",
25
+ "examples": ["click", "type", "key", "scroll", "wait", "navigate", "verify", "plan"]
26
+ },
27
+ "required": {
28
+ "type": "boolean",
29
+ "default": true,
30
+ "description": "Whether this step is required for run success."
31
+ },
32
+ "status": {
33
+ "type": "string",
34
+ "enum": ["pending", "running", "succeeded", "failed", "skipped", "recovered"]
35
+ },
36
+ "failure_class": {"$ref": "failure_class.schema.json"},
37
+ "capture_mode": {
38
+ "$ref": "capture_mode.schema.json",
39
+ "description": "Optional per-step override of manifest.capture_mode. Producers MAY change the active capture mode mid-run (e.g. start in `metadata`, upgrade to `screenshots` after the first failed verifier check). When present, this is the mode in effect for THIS step's artifacts. Consumers MUST treat absence as 'inherits the manifest mode'. Closes #36."
40
+ },
41
+ "started_at": {"type": "string", "format": "date-time"},
42
+ "ended_at": {"type": ["string", "null"], "format": "date-time"},
43
+ "duration_ms": {"type": ["integer", "null"], "minimum": 0},
44
+ "costs": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "description": "Per-step cost breakdown for training-data hygiene. All fields optional; absence means the producer didn't measure that dimension. Sum of components SHOULD equal total_usd within float tolerance. Closes #58.",
48
+ "properties": {
49
+ "total_usd": {"type": "number", "minimum": 0},
50
+ "model_usd": {"type": "number", "minimum": 0},
51
+ "gpu_usd": {"type": "number", "minimum": 0},
52
+ "proxy_usd": {"type": "number", "minimum": 0},
53
+ "tokens_in": {"type": "integer", "minimum": 0},
54
+ "tokens_out": {"type": "integer", "minimum": 0},
55
+ "cache_hit_tokens": {"type": "integer", "minimum": 0}
56
+ }
57
+ },
58
+ "latency": {
59
+ "type": "object",
60
+ "additionalProperties": false,
61
+ "description": "Per-step, per-layer latency budget. Closes #58.",
62
+ "properties": {
63
+ "planner_ms": {"type": "integer", "minimum": 0},
64
+ "grounding_ms": {"type": "integer", "minimum": 0},
65
+ "dispatch_ms": {"type": "integer", "minimum": 0},
66
+ "verifier_ms": {"type": "integer", "minimum": 0},
67
+ "recovery_ms": {"type": "integer", "minimum": 0},
68
+ "total_ms": {"type": "integer", "minimum": 0}
69
+ }
70
+ },
71
+ "observation_pre": {
72
+ "type": ["string", "null"],
73
+ "description": "Bundle-relative path to the pre-action observation artifact (PNG). Or null if not captured."
74
+ },
75
+ "observation_post": {
76
+ "type": ["string", "null"],
77
+ "description": "Bundle-relative path to the post-action observation artifact (PNG). Or null if not captured."
78
+ },
79
+ "action": {
80
+ "type": "object",
81
+ "required": ["type"],
82
+ "additionalProperties": false,
83
+ "properties": {
84
+ "type": {"type": "string"},
85
+ "params": {"type": "object", "additionalProperties": true},
86
+ "coordinate_space": {"$ref": "coordinate_space.schema.json"},
87
+ "dispatch_backend": {
88
+ "type": "string",
89
+ "description": "Adapter-specific dispatch backend identifier (e.g. cdp, cdp_som, playwright, pyautogui)."
90
+ }
91
+ }
92
+ },
93
+ "grounding": {
94
+ "type": "object",
95
+ "additionalProperties": false,
96
+ "required": ["provider", "provenance"],
97
+ "properties": {
98
+ "provider": {"type": "string"},
99
+ "target_label": {"type": "string"},
100
+ "coordinates": {
101
+ "type": "object",
102
+ "required": ["x", "y"],
103
+ "additionalProperties": false,
104
+ "properties": {
105
+ "x": {"type": "number"},
106
+ "y": {"type": "number"}
107
+ }
108
+ },
109
+ "confidence": {"type": "number", "minimum": 0, "maximum": 1},
110
+ "evidence": {"type": "string"},
111
+ "provenance": {"$ref": "provenance.schema.json"}
112
+ }
113
+ },
114
+ "verdict": {
115
+ "type": "object",
116
+ "additionalProperties": false,
117
+ "required": ["status"],
118
+ "properties": {
119
+ "status": {
120
+ "type": "string",
121
+ "enum": ["passed", "failed", "recoverable", "skipped", "unknown"]
122
+ },
123
+ "reason": {"type": "string"},
124
+ "evidence_refs": {
125
+ "type": "array",
126
+ "items": {"type": "string"}
127
+ },
128
+ "score": {
129
+ "type": "number",
130
+ "minimum": 0,
131
+ "maximum": 1,
132
+ "description": "Continuous reward signal (0..1). The status enum stays the canonical pass/fail bucket; score is additive metadata for RL/SFT pipelines that need partial credit. Default mapping when absent: passed→1.0, recoverable→0.5, failed/skipped/unknown→0.0. Closes #59."
133
+ },
134
+ "score_components": {
135
+ "type": "object",
136
+ "additionalProperties": true,
137
+ "description": "Optional breakdown of `score` into named contributions (e.g. grounding_accuracy, verifier_confidence, state_change_observed). Schema-free so adapters can extend per-domain."
138
+ },
139
+ "comparator": {
140
+ "type": "string",
141
+ "enum": ["verifier", "model-judge", "exact-match", "human"],
142
+ "description": "Who produced `score`. `verifier` = the producer's automated check, `model-judge` = an external LLM rater, `exact-match` = deterministic string/coord compare, `human` = manual annotation."
143
+ }
144
+ }
145
+ },
146
+ "recovery_decision": {
147
+ "type": ["object", "null"],
148
+ "additionalProperties": false,
149
+ "required": ["type"],
150
+ "properties": {
151
+ "type": {
152
+ "type": "string",
153
+ "enum": ["retry", "alternate_grounding", "skip", "halt", "replan", "human_handoff", "none"]
154
+ },
155
+ "reason": {"type": "string"},
156
+ "attempt": {"type": "integer", "minimum": 1}
157
+ }
158
+ },
159
+ "events": {
160
+ "type": "array",
161
+ "description": "Bundle-relative paths to decision-event JSONL files for this step.",
162
+ "items": {"type": "string"}
163
+ },
164
+ "logs": {
165
+ "type": "array",
166
+ "description": "Bundle-relative log references. May include `#L<line>` or `#L<start>-L<end>` anchors.",
167
+ "items": {"type": "string"}
168
+ }
169
+ }
170
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://augur.dev/schemas/0.1/trace.schema.json",
4
+ "title": "BundleTrace",
5
+ "description": "Single normalized document containing the DebugSession and its ordered StepTrace list. Lives at `trace.json` at the bundle root. Individual steps are also written to `steps/<index>.json` (path-stable, same content).",
6
+ "type": "object",
7
+ "required": ["session", "steps"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "session": {"$ref": "debug_session.schema.json"},
11
+ "steps": {
12
+ "type": "array",
13
+ "items": {"$ref": "step_trace.schema.json"}
14
+ }
15
+ }
16
+ }
augur_schema/py.typed ADDED
File without changes
@@ -0,0 +1,50 @@
1
+ Metadata-Version: 2.4
2
+ Name: augur-schema
3
+ Version: 0.2.0
4
+ Summary: Augur schema package — canonical JSON Schemas for CUA debugger records.
5
+ Project-URL: Homepage, https://github.com/mercurialsolo/augur
6
+ Project-URL: Issues, https://github.com/mercurialsolo/augur/issues
7
+ Project-URL: Changelog, https://github.com/mercurialsolo/augur/blob/main/packages/schema/CHANGELOG.md
8
+ Author-email: Augur Authors <barada@gmail.com>
9
+ License: Apache-2.0
10
+ Keywords: computer-use-agent,cua,debugger,json-schema,observability,schema
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Typing :: Typed
21
+ Requires-Python: >=3.11
22
+ Requires-Dist: jsonschema>=4.22
23
+ Requires-Dist: referencing>=0.35
24
+ Description-Content-Type: text/markdown
25
+
26
+ # augur-schema
27
+
28
+ Canonical JSON Schemas for the Augur CUA debugger.
29
+
30
+ `json/` is the source of truth. Python and TypeScript types are hand-written mirrors
31
+ in `src/augur_schema/` and `ts/` — kept in sync by `tests/test_schema_roundtrip.py`.
32
+
33
+ Records:
34
+
35
+ - `manifest.schema.json` — bundle envelope
36
+ - `debug_session.schema.json` — top-level run/session record
37
+ - `step_trace.schema.json` — one step
38
+ - `observation.schema.json` — screenshot + viewport metadata
39
+ - `decision_event.schema.json` — ordered planner/verifier/recovery decisions
40
+ - `replay_fixture.schema.json` — replay seed for a step
41
+ - `diagnostic_finding.schema.json` — output of the diagnostic rules engine
42
+
43
+ Enums (separate files so they can be `$ref`d):
44
+
45
+ - `coordinate_space.schema.json`
46
+ - `provenance.schema.json`
47
+ - `capture_mode.schema.json`
48
+ - `failure_class.schema.json`
49
+
50
+ Schema version: see [`docs/versioning.md`](../../docs/versioning.md). Current: `0.1`.
@@ -0,0 +1,22 @@
1
+ augur_schema/__init__.py,sha256=GH1i5xk88alBSIFR2j8F8_h9aBBzKP6dTyqjDadkVHE,426
2
+ augur_schema/_loader.py,sha256=EN4FoU-otxUAHd-5m4k7OZyJaQQC9ZkmF_Lpf-kNP9Q,3335
3
+ augur_schema/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ augur_schema/json/__init__.py,sha256=DS4ZgArnIX-y5W-ltfXmGsd4FKzvxAFUSwc5LHWlDY0,76
5
+ augur_schema/json/capture_mode.schema.json,sha256=FGN5D3KMm6y7CwEubAuRLAwv1gxxU1yS3wCKxKYdbtM,411
6
+ augur_schema/json/coordinate_space.schema.json,sha256=E4KlencYJ6GiOkdlWV4O-78WA3dgKSjP3e59mmS3eNQ,1012
7
+ augur_schema/json/debug_session.schema.json,sha256=z_IRuVb04LNNmATnqdqsAsXW4SkcQqX6IcXKIqx89g8,3027
8
+ augur_schema/json/decision_event.schema.json,sha256=YkOFC74ijxynRb3L7VOc8JCr0J0L6R8a7lU2kpc1xCY,1448
9
+ augur_schema/json/diagnostic_finding.schema.json,sha256=uYWw4aE_EZrLOoa2vZ12IB8em28xYJOOrnBPLRQZ9_M,1430
10
+ augur_schema/json/failure_class.schema.json,sha256=RUTLOGIbrmey2u10BFeyU-a-E2tarWcd4xORfJ0s3CM,805
11
+ augur_schema/json/manifest.schema.json,sha256=S3ItKmpXuKeJUbx6WpW4Fcv33Qzd7BgluWBTvKkqH3c,4213
12
+ augur_schema/json/modelio.schema.json,sha256=KOYceoH2pT0VK3MZIro7CjTlg9QdvNNNSWvno-YUE3w,4481
13
+ augur_schema/json/observation.schema.json,sha256=dET-sgbbDzZcvNvHmKy5BPkwNYuBUbk5Rapp9Z3MFbs,2787
14
+ augur_schema/json/preference.schema.json,sha256=MPlqtqi7RF8WYBp-3elLS40EmxPO4faGxBxCdF1qdFw,3910
15
+ augur_schema/json/prior_steps.schema.json,sha256=VqAAob_TW0N1z7awQv8W1I5HVtZWrEsCXhLRN4gihBI,2501
16
+ augur_schema/json/provenance.schema.json,sha256=M09I627a7p2bqQQWsPedQlSB7Kfcdv3IVRC0vYbShc4,438
17
+ augur_schema/json/replay_fixture.schema.json,sha256=dD4owlH8fHcvJNd1opaoLDuLi0bTavAR6sUAErtCEzQ,3053
18
+ augur_schema/json/step_trace.schema.json,sha256=-JilRdXHnRhZAdbF-8tCARs579g3HKlFhQxmaMWpMAU,6879
19
+ augur_schema/json/trace.schema.json,sha256=Qjidno4RvYXRE-U5t4Srj_iwgS3o3fqVjESr0ayzLIo,646
20
+ augur_schema-0.2.0.dist-info/METADATA,sha256=M9yXy5lVt-9g6A-RljRvDUgTb-vNJVP5z-tk5r8Yqx0,2072
21
+ augur_schema-0.2.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
22
+ augur_schema-0.2.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any